是否有适用于ANTLR的C ++语法文件?

时间:2010-02-24 21:10:54

标签: c++ antlr lexer

ANTLR是否有现有的C ++语法文件?

我正在寻找lex,而不是解析一些C ++源代码文件。

我查看了ANTLR grammar page,看起来有一个是由Sun Microsystems here创建的。

然而,它似乎是一个生成的Parser。

有人能指出我的C ++ ANTLR词法分析器或语法文件吗?

1 个答案:

答案 0 :(得分:2)

C ++解析器难以构建。

我不能说有关使用 ANTLR的C ++语法的经验。 Here I discuss通过阅读我在ANTLR网站上看到的那些笔记所学到的知识;实质上,作者产生了一个不完整的语法。这仅适用于C ++ 98。我看了已经有一段时间了;可能还有其他人。

我们的DMS Software Reengineering Toolkit有一个robust C++ front end

词法分析器处理ANSI,GCC3,MS Visual Studio 2008的所有副本,包括大精度浮点数等。

[编辑:12/2011。现在处理C ++ 11和OpenMP指令]

[编辑:2015年3月:现在处理GCC和MS变种中的C ++ 14。 See some parse trees here on SO]

拥有“只是”解析器实际上并不是非常有用。除了“正在解析”之外,我们的前端将构建AST,构建精确的符号表(对于C ++,这是非常难做的),执行功能本地流分析,并允许您执行程序转换等。 Life After Parsing

[编辑:5/2019:现在处理ANSI,GCC和MS变体中的C ++ 17。是否在编译单元之间完成名称和类型解析。用于跨3000个编译单元的系统自动化large scale God-class refactoring/splitting。]