【问题标题】:c statements not recognized in yacc fileyacc 文件中无法识别的 c 语句
【发布时间】:2009-12-04 01:09:15
【问题描述】:

在一些 linux 机器上,当我编译我的 yacc 程序时,它运行良好。然而,在其他机器上,我注意到没有一个散布着语法规则的 c 语句被执行,甚至 printf。可能是什么问题呢?我注意到在这些机器上我必须去掉 -ly 选项,因为如果我尝试用它编译它会出错。

一个例子如下:

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

通常运行良好的最后一行不会执行。

【问题讨论】:

  • 有没有示例语法/输出sn-p
  • 这显然是一个错误,但指出这是一个错误的人却被否决了。

标签: c compiler-construction yacc


【解决方案1】:

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

您可以尝试以下操作:在有问题的平台上,在 .y 文件上以独立模式运行 yacc 并检查生成的代码。尝试在那里找到你的 C 语句。为了让这一切变得更简单,从一个小玩具语法开始,然后转向你真正的/大语法。

【讨论】:

  • 我在代码工作的机器上尝试不使用 -ly,但它停止工作。所以我认为问题在于 -ly 没有被使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 2015-10-04
  • 2013-10-18
  • 2021-08-19
  • 2017-09-05
  • 2020-09-06
  • 2020-02-15
相关资源
最近更新 更多