antlr C语法创建AST

Har*_*hna 5 c grammar antlr abstract-syntax-tree

是否有可用的C语法生成AST,其中包括使用"^"和"!"的所有解析器规则.符号?

我阅读了Terence Parr写的这本书来编写这样的语法,但似乎为C语言编写一个这样的语法是一个耗时的过程,所以想知道它是否已经可用,这可以节省大量时间!

(对于较小的C语言子集的语法也很好..)

谢谢 :)

Ira*_*ter 1

两周后没有任何答复。

你是对的,构建一个完整的解析器,构建完整的 AST 并处理 C 的所有细节(包括预处理器),涵盖各种 C 方言(例如 ANSI、GNU C 2/3/4/、Miscrosoft Visual C、Green Hills C)...实际上是很多工作。除非您投入这项工作,否则它不会处理任何真正的 C 程序。

考虑到 ANTLR 的历史,我希望有一个完整的 C 语言 ANTLR 语法可以做到这一点。令人惊讶的是,这里似乎没有人能认出其中一个。您当然希望在 ANTLR 站点上找到它。

我们投入了所需的精力来构建此类 C 解析器(涵盖上述所有方言),并在 DMS 软件重新工程工具包及其中添加了计算符号表、提取控制和数据流、构建调用图、启用分析器和树转换C前端. 该前端已应用于由18,000 个编译单元组成的 C 应用程序,以构建自定义分析工具。