函数声明和使用的野牛语法示例

Example of bison grammar for function declaration and usage

有人可以给出一个关于函数声明和函数使用的 bison 语法的例子,这样如果声明中的参数数量和使用不同,解析器就会产生错误吗?

这样的决定不能通过上下文无关文法来完成,即不可能将其写入 Bison 使用的 "pure" 文法("pure" 意味着文法只包含带有符号和规则的规则无嵌入式操作)。

为了完成您的任务,您需要添加 semantic actions to appropriate rules of your grammar that use a symbol table 以传达有关函数声明和使用该函数之间的函数参数数量的信息(在声明规则中,您将条目添加到符号 table,并在函数使用规则中检查参数的数量)。

传统上,此类检查被认为是语义分析的一部分,通常在语法分析(解析)之后的单独步骤中完成。