如何在单行操作中修改解析器规则返回文本

时间:2013-05-03 14:36:38

标签: antlr

假设我有以下语法:

rule1 : sub1  sub2 sub3
    ;

假设我只想返回规则sub2的文本而我的目标语言是C.我试过:

rule1 : sub1  sub2 sub3
    {$text = $sub2.text;}
    ;

但这不对。我想我在某个地方看到了一些我可以简单地改变属性的例子,但谷歌找不到它。

感谢您的帮助。

我使用的是ANTLR v3.4,目标语言是C(我认为这个例子不使用任何C函数)。

1 个答案:

答案 0 :(得分:0)

试试这个:

{$rule1.setText($sub2.text);}

我认为分配给$ text不会影响规则的返回值。