【发布时间】:2011-10-24 15:33:43
【问题描述】:
我在我的 C++ 程序中使用 ANTLR 生成的 c 解析器,我希望在解析器中使用我的帮助程序类来编写如下内容:
constant_declaration
: 'const' type_specifier ID ('[' constant_expression ']')? '=' initializer
{
parserHelper->addConstant($type_specifier.text, $ID.text);
}
;
parserHelper 是我的 C++ 辅助对象。但我坚持将这个助手传递给 C 解析器。在面向对象的语言中,简单的方法是使用基本解析器类。这在 C 中是不可能的。我现在唯一的解决方案是在 @members 部分定义全局变量并在解析之前对其进行初始化:
@members
{
ParserHelper* parserHelper;
}
由于某些原因,这对我来说很不方便。有没有办法把这个变量放入ANTLR生成的C解析器结构中?
【问题讨论】: