10

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

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

我查看了ANTLR 语法页面,看起来这里列出了 Sun Microsystems 创建的一个

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

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

4

1 回答 1

1

C++ 解析器很难构建。

我无法谈论使用ANTLR 的 C++ 语法的经验。在这里,我通过阅读我在 ANTLR 网站上看到的笔记所附的笔记来讨论我学到的东西;实质上,作者产生了一个不完整的语法。这仅适用于 C++98。我已经有一段时间没有看了;可能还有其他人。

我们的DMS 软件再工程工具包具有强大的 C++ 前端

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

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

[编辑:3/2015:现在处理 GCC 和 MS 变体中的 C++14。 在 SO 上查看一些解析树]

“只是”一个解析器实际上并不是很有用。除了“仅解析”之外,我们的前端还将构建 AST、构建准确的符号表(对于 C++,这非常困难)、执行函数局部流分析,并允许您执行程序转换等。请参阅解析后的生活

[编辑:5/2019:现在处理 ANSI、GCC 和 MS 变体中的 C++17。跨编译单元完成名称和类型解析。用于跨 3000 个编译单元的系统自动进行大规模的神级重构/拆分。]

于 2010-02-24T21:16:09.633 回答