3

我正在编写自己的脚本语言,我需要一个软件工具来生成用于解析我的语言的 C++ 代码。我需要一个词法分析器和一个生成 C++ 代码的解析器生成器。如果我也能生成一个 Visual C++ 2010 项目,那就太好了。建议?

4

4 回答 4

7

http://en.wikipedia.org/wiki/Comparison_of_parser_generators

对于 C/C++:http ://epaperpress.com/lexandyacc/

或查看:Boost.Spirit:

“Spirit 是一组 C++ 库,用于使用表达式模板和模板元编程实现为特定领域嵌入式语言 (DSEL) 的解析和输出生成。”

你真的需要新语言吗?也许使用一些像Lua,Python这样的知名产品会更好?

于 2013-03-21T08:11:27.647 回答
1

尝试使用 Flex 和 Bison。它们是很好的词法分析器和解析器生成器,可用于定义新语言。

http://en.wikipedia.org/wiki/Flex_lexical_analysisr

于 2013-03-21T08:30:47.330 回答
1

这是一个老问题,但仍然可能相关:因为我对现有选项不满意,所以我最近编写了一个模板 c++ 解析器生成器,它不需要任何外部工具(您包含一个标题并直接在 c++ 源代码中定义语法) . 它使用可读的 PEG 语法,因此不需要单独的词法分析步骤。你可以在Github上查看。

于 2014-12-11T15:35:58.027 回答
0

您有两个选择:是否通过创建AST (抽象语法树)来创建自己的解析器,那么这对您来说将是一个很好的练习,但它很长而且很难实现。或者您可以使用开源解决方案,例如具有 C/C++ 语法的ANTLR解析器生成器以及预处理器。我从来没有使用过它,所以我不能说它对 C++ 的解析有多完整。那么如果你赶时间,想创建一个好的解析器,你最好使用第二种解决方案

于 2013-03-21T09:08:04.917 回答