我知道如何让 YACC 生成 AST,但你如何真正得到它?我的意思是,您实际上如何从 YACC 获取根节点的值?
最佳答案
Yacc 一次只返回一个节点,而且它总是您刚刚在较早的时间给 yacc 的东西,即您想要从减少的生产中返回的任何东西或任何您想要的东西从终端符号返回。 (抱歉,您说过您知道这一点,但有些阅读本文的人可能不知道。)
因此,从根规则或顶级规则中获取您想要返回的任何内容,并以您喜欢的任何方式保存它(在您附加的 C 缩减代码中)。
关于c++ - 如何从 YACC 获取 AST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5641199/