为了返回完全构建的 AST,我被告知应该使用一个全局变量来存储它:
%{
AST::Root* root;
%}
%start program
%%
program:
... { $$ = root = new AST::Root(...) }
...
;
但这是唯一的方法吗?或者有没有更好的方法,也许是直接从yyparse()
返回 AST 的方法?
您可以使用
%parse-param
向yyparse()
添加其他参数。有描述