我想让我在 b 中生成的一些变量在 c 中可用:
a : b c { ...some code...}
一个简单的例子:
b : X { int result = 0; }
| Y { int result = 1; }
这样我就可以稍后用 c 说:
c : D { printf(result + 1); }
| E { printf(result + 2); }
有机会这样做吗?任何帮助将不胜感激!
最佳答案
result
应该是一个全局变量。您可以通过包含来做到这一点
%{
int result;
%}
位于 YACC 文件的顶部。当然,您还应该替换 int result = 0
和int result = 1
与 result = 0
和result = 1
分别。
关于c - Yacc问题: Make Data available in next Non Terminal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/393041/