Antlr c ++目标样本

时间:2016-05-25 10:11:06

标签: c++ visual-studio-2013 antlr antlr3 antlrworks

我是antlr的新手。

有人可以为antlr中的C ++目标提供任何简单语法的工作示例。我尝试了antlrworks并创建了词法分析器和解析器。但是在编译时我无法继续。在codeproject中也搜索了一个工作样本,但是dint找不到。

我计划使用Visual Studio 2013.提前感谢...

2 个答案:

答案 0 :(得分:0)

我已经使用ANTLR3 in a C++ application多年了,但实际上使用的是C目标,而不是C ++。后者证明在编译速度(对于高度复杂的解析器)和复杂性(都基于模板)方面都是一个问题。所以我选择了C目标,它很容易集成到C ++应用程序中。您只需要为您的应用程序使用一个小的C ++包装器,您将获得一个非常快速的解析器。

答案 1 :(得分:0)

如果是C ++目标,请尝试此分支:https://github.com/ibre5041/antlr3/tree/master/runtime/Cpp/tests。这是更新版本,包括各种性能错误修复,内存泄漏修复以及AST生成。

tests目录中,您可以找到一些示例。

  • 现在我不确定它是否适用于MSVC 2013,我记得我使用了一些C ++ 11。
  • 最好是从这些来源编译整个工具,不仅运行时间不同,而且生成的源代码略有不同。
  • 不要使用Java 8来编译和运行antlr工具。出于一些神秘的原因,当使用相同的工具.jar。
  • 时,JRE8会生成与JRE7不同的源
  • 编译语法(生成源)时,你必须创建一个traits类,用作"配置"对于生成的来源。