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

Compiler construction 函数声明和用法的bison语法示例,compiler-construction,bison,context-free-grammar,bisonc++,Compiler Construction,Bison,Context Free Grammar,Bisonc++,有人能举一个函数声明和函数使用的bison语法的例子吗?如果声明和使用中的参数数量不同,解析器就会产生错误。这样的决定不能由上下文无关的语法来完成,也就是说,不可能将其写入bison使用的“纯”语法(“纯”语法)意思是只包含带有符号的规则而没有嵌入动作的语法) 为了完成任务,您需要添加到语法的适当规则中,这些规则使用a在函数的声明和使用之间传递有关函数参数数量的信息(在声明规则中,您向符号表添加条目,在函数使用规则中,您检查参数数量) 传统上,此类检查被视为语义分析的一部分,通常在语法分析(解析

有人能举一个函数声明和函数使用的bison语法的例子吗?如果声明和使用中的参数数量不同,解析器就会产生错误。

这样的决定不能由上下文无关的语法来完成,也就是说,不可能将其写入bison使用的“纯”语法(“纯”语法)意思是只包含带有符号的规则而没有嵌入动作的语法)

为了完成任务,您需要添加到语法的适当规则中,这些规则使用a在函数的声明和使用之间传递有关函数参数数量的信息(在声明规则中,您向符号表添加条目,在函数使用规则中,您检查参数数量)


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

我担心此类决定不是上下文无关的,因此不能由上下文无关的语法来决定。你好,Jiri。请你详细说明一下好吗?根据您的回答,我假设我必须在codegen步骤中检查这种情况,然后扩展为完整答案。