在lemon中,我能够使用解析函数的第三个参数在起始符号减少时将结果传回给调用者。
我如何在野牛中做同样的事情?在最终调用yypush_parse()
后,是否足以在起始符号的操作代码中将该值分配给$$,并从调用者将其作为“yy minor”值?
解析器是推送和纯粹的。线程安全是必须的。
答案 0 :(得分:1)
如果你想要一个AST,通过创建自己的节点并将它们分配给$$,你几乎必须自己动手做bison / yacc。
http://epaperpress.com/lexandyacc/处的示例(查看计算器中的.y文件 - > Yacc输入)或http://www.progtools.org/compilers/tutorials/cxx_and_bison/cxx_and_bison.html可能会为您提供有关如何执行此操作的建议。