我想使用ANTLR得到一个C + + AST,如果可能从我的C#代码库。使用ANTLR解析C++与C#
现在,基本的工作流程似乎很清楚:使用ANTLRWorks生成.cs词法分析器和分析器,将它们和ANTLR引用添加到C#项目中,为其提供C++源代码,并使用结果数据结构。
但是,我已经在第二步失败了。我从http://www.antlr.org/grammar/list(我试过Aurelian Melinte的“C++语法”和Ramin Zaghi的“C++语法和代码示踪器ANTLR 3.2”)下载C++语法,并通过设置“language = CSharp3;”生成C#的词法分析器和分析器。在语法的选项中。但是,我无法编译包含解析器和词法分析器文件的C#项目。
一个问题是,我不知道这是我使用的语法还是可用版本的问题......有许多不同版本的ANTLR,C#运行时和C#试图尝试每种组合的目标似乎是一个相当无望的任务。但是,目前的组合似乎工作正常,一个小例子语法出来只有一个错误(C#词法分析器中的“HIDDEN”需要更改为“隐藏”,就是这样),但C++解析器/词法分析器仍然给我很多编译器错误,主要涉及预处理器指令和数组声明。
有没有人设法解析C++与ANTLR生成的C#文件?有谁知道这应该如何工作?
你需要多少C++?在ANTLR中解析C++ 98已经够糟糕了,而C++ 11并没有完全改进。 (例如处理'>>'现在更直观) – MSalters