函数声明和用法的bison语法示例

时间:2015-11-10 08:11:02

标签: compiler-construction bison context-free-grammar bisonc++

有人可以举例说明函数声明和函数用法的bison语法,如果声明和用法中的参数数量不同,解析器会产生错误吗?

1 个答案:

答案 0 :(得分:2)

这种决定不能通过无上下文语法来完成,也就是说不可能将它写成Bison使用的“纯粹”语法(“纯粹”意味着语法只包含符号规则而没有嵌入动作)。 / p>

要完成您的任务,您需要将semantic actions添加到语法的相应规则中,该规则使用symbol table来传达有关声明和使用该函数之间的函数数量的信息。 (在声明规则中,您将条目表添加到符号表中,并在函数使用规则中检查参数的数量)。

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