是否存在用于ANTLR的C++语法文件?
我想要对一些C++源代码文件进行词法分析,而不是解析。
我查看了ANTLR grammar页面,似乎有一个由Sun Microsystems创建的已列出的文件在这里。
然而,它似乎是一个生成的解析器。
有人能指向C++ ANTLR词法分析器或语法文件吗?
是否存在用于ANTLR的C++语法文件?
我想要对一些C++源代码文件进行词法分析,而不是解析。
我查看了ANTLR grammar页面,似乎有一个由Sun Microsystems创建的已列出的文件在这里。
然而,它似乎是一个生成的解析器。
有人能指向C++ ANTLR词法分析器或语法文件吗?
C++解析器很难构建。
我没有使用过ANTLR的C++语法,因此无法从经验上发表意见。在这里,我讨论了阅读我在ANTLR网站上看到的注释时学到的内容;实质上,作者制作了一个不完整的语法。而且那只是针对C++98的。我已经有一段时间没有看过了,可能会有其他的。
我们的DMS软件重构工具包拥有一个强大的C++前端。
词法分析器处理了ANSI、GCC3、MS Visual Studio 2008中的所有垃圾,包括大精度浮点数等。
[编辑:12/2011。现在处理C++11和OpenMP指令]
[编辑:2015年3月:现在支持GCC和MS变体的C++14。 在SO上查看一些解析树]
仅有“解析器”实际上并不是非常有用。除了“仅仅解析”之外,我们的前端将构建AST、构建准确的符号表(对于C++来说,这非常难做到),执行函数本地流分析,并允许您进行程序转换等操作。请参见解析后的生活。
[编辑:2019年5月:现在支持ANSI、GCC和MS变体的C++17。可以在编译单元之间完成完整的名称和类型解析。曾用于自动化跨3000个编译单元的大规模God-class重构/拆分系统。]