Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
以下是我的规则,当我用 '=' 替换 $2 时,我的代码有效。我知道默认情况下所有文字标记都使用它们的 ascii 值(因此为什么多字符标记需要定义)
以下不起作用。该函数使用 0 而不是我期望的'='调用。我可以设置一个选项吗?(通过手册页并没有这样显示)
AssignExpr: var '=' rval { $$ = func($1, $2, $3); }
在另一段代码中,我有MathOp: '=' | '+' | '%' ...因此我感兴趣的原因。
MathOp: '=' | '+' | '%' ...
在这种情况下,$2 的值将是 yylex 函数在返回标记“=”之前放入全局变量 yylval 中的任何值。如果词法分析器没有将任何内容放入 yylval,它可能仍为 0,如您所见。
我认为你是对的,Bison 只是不那样工作。
当然,您可以轻松修复它:
=
$$