antlr C语法创建AST

| 是否有任何C语法可生成AST,其中包括使用\“ ^ \”和\“!\”表示法的所有解析器规则? 我遍历了Terence Parr编写的书,编写了这样一种语法,但是似乎为C lang编写这样一种语法是一个耗时的过程,因此想知道它是否已经可用可以节省很多时间! (较小的C语言子集的语法也可以。) 谢谢 :)     
已邀请:
两周后没有答案。 没错,构建一个完整的解析器以构建完整的AST并处理C的所有细节(包括预处理器) 涵盖各种C语言(例如ANSI,GNU C 2/3/4 /,Miscrosoft Visual C,Green Hills C)...实际上是很多工作。而且,除非您投入这项工作,否则它将不会处理任何实际的C程序。 考虑到ANTLR有多老,我希望C会有完整的ANTLR语法。令人惊讶的是,这里似乎没有人能找到一个。当然,您希望可以在ANTLR网站上找到它。 在DMS Software Reengineering Toolkit中,我们将所需的精力用于构建这样的C解析器(涵盖了所有上述方言),并添加了计算符号表,提取控件和数据流,构建调用图,启用分析器以及树形转换。它的C前端。该前端已应用于包含18,000个编译单元的C应用程序,以构建自定义分析工具。     
看到这个。它直接来自ANTLR 4源库:C11语法。看起来很合规。 当然,它没有预处理器,但是先处理cpp或mcpp文件就很容易了。 它也没有附带AST规则,但是看起来并不太难(尽管很耗时)。     

要回复问题请先登录注册