繁体   English   中英

使用ANTLR3 C ++代码生成

[英]Using ANTLR3 C++ code generation

我想在我的C ++程序中使用ANTLR 3.5,但是我在实际使用生成的解析器和词法分析器方面遇到了麻烦。 使用类似于此处的语法,我可以执行类似SimpleCalcParser.expr()的操作。 但是,如果我想做一些更复杂的事情(例如,分析一种语言,它不仅会导致单一的值,而且会带来更多的命令性或声明性),那么使用C ++目标似乎很困难。 据我所知,没有能力输出AST或模板。 没有这个,除了确定输入是否正确解析之外,我不确定您将如何做。 有谁知道如何使用C ++目标来做到这一点,还是会使用C目标来生成AST并在C ++中使用它是一个更好的选择?

前一段时间,我为C ++目标创建了一些补丁(请参阅github)。 应该添加了AST生成(但不是100%完成),还添加了一些测试,您可以作为示例。 在当前的ATLR 3.5中,每个规则都必须返回一些复杂的类作为值。 而且,您必须使用规则操作手动“构建”树。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM