c语句在yacc文件中无法识别

时间:2009-12-04 01:09:16

标签: c compiler-construction yacc

在我编译yacc程序的某些linux机器上,它运行正常。但是,在其他机器上,我注意到没有任何插入语法规则的c语句被执行,甚至是printf。可能是什么问题呢?我注意到在这些机器上我必须取出-ly选项,因为如果我尝试用它编译就会出错。

以下是一个例子:

 declaration : var_declaration
             | fun_declaration 
             | '$' {printTable();} ;

最后一行通常无效。

1 个答案:

答案 0 :(得分:2)

你确定你在那里安装了Yacc吗?奇怪的是-ly是不必要的,因为它将Yacc的库与您的代码链接起来。也可能是Yacc很老或者在这些机器上坏了。

您可以尝试以下内容:在有问题的平台上,在.y文件上以独立模式运行yacc并检查生成的代码。尝试在那里找到你的C语句。为了简单起见,先从小玩具语法开始,然后转到你的真实/大文法。