如何获得'返回'使用Yacc / Bison的语法起始规则的值($$
变量?
yyparse
返回解析器的错误代码。
答案 0 :(得分:3)
最简单的解决方案是将值存储在yyparse
的附加参数中。通常,您会将此值存储在启动规则的操作中;有时,定义一个带有单位生产的额外开始非终端来保持行动是有用的。
如果你正在使用bison,你可以使用%parse-param
指令来定义额外的参数,然后你只需要用变量的地址调用yyparse
到哪个结果中应该存储。
您仍然需要检查yyparse
的返回值;如果它没有表示成功,那么通过out参数返回的值将不正确。