如何获取启动规则的返回值

时间:2016-10-17 14:49:27

标签: bison yacc

如何获得'返回'使用Yacc / Bison的语法起始规则的值($$变量?

yyparse返回解析器的错误代码。

1 个答案:

答案 0 :(得分:3)

最简单的解决方案是将值存储在yyparse的附加参数中。通常,您会将此值存储在启动规则的操作中;有时,定义一个带有单位生产的额外开始非终端来保持行动是有用的。

如果你正在使用bison,你可以使用%parse-param指令来定义额外的参数,然后你只需要用变量的地址调用yyparse到哪个结果中应该存储。

您仍然需要检查yyparse的返回值;如果它没有表示成功,那么通过out参数返回的值将不正确。