c++ - 如何从 YACC 获取 AST?

标签 c++ c parsing yacc bison

我知道如何让 YACC 生成 AST,但你如何真正得到它?我的意思是,您实际上如何从 YACC 获取根节点的值?

最佳答案

Yacc 一次只返回一个节点,而且它总是您刚刚在较早的时间给 yacc 的东西,即您想要从减少的生产中返回的任何东西或任何您想要的东西从终端符号返回。 (抱歉,您说过您知道这一点,但有些阅读本文的人可能不知道。)

因此,从根规则或顶级规则中获取您想要返回的任何内容,并以您喜欢的任何方式保存它(在您附加的 C 缩减代码中)。

关于c++ - 如何从 YACC 获取 AST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5641199/

相关文章:

c++ - OS X 和 Linux (C/C++) 之间的差异

无法将参数 1 从 'const char *' 转换为 'LPCWSTR'

c++ - 从 C 程序使用 C++ 共享对象?

c++ - 为 C++ 编写 JSON 解析器

javascript - SpiderMonkey 24 : How to call Reflect. 解析()?

Java正确解析

c++ - 如何管理多个字符数组变量?

c++ - ELI5如何安装像curl这样的外部库?

c++ - 未在 C++ 范围内声明

c - scanf 'maximum field width' 包含空格?