问题是关于如何访问语法中{"action"}
块内的当前树节点。如何访问语法中的当前树节点?
我谈论Java
目标,所以内部产生规则的方法,我想访问对象root_1
(见下文,生成的标准代码,SUBJECT
这里是我的语法里面的道理,也没关系):
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SUBJECT, "SUBJECT"), root_1);
adaptor.addChild(root_1, stream_noun.nextTree());
adaptor.addChild(root_0, root_1);
}
里面的语法,我想有这样做的能力:
subject : noun -> ^(SUBJECT noun) { ... place code here to work with `root_1` object ... } ;
有人能提出任何想法?谢谢。
恩,谢谢你的回答。但是正如我所看到的,'$ tree'只是变量'root_0'的引用。它也可以只放在'@ after'构造中(在它之前它只包含'null'值)。所以,我的问题仍然是打开的,因为我正在寻找英俊的方式来引用'root_1'变量。 – Andremoniy 2013-03-27 17:17:47
此外,由于'$ tree'实际上是'retval.tree = root_0',它也必须转换为'CommonTree'类型。 – Andremoniy 2013-03-27 17:19:45
@Andremoniy您需要将'$ tree'的'options {ASTLabelType = CommonTree;}'选项设置为该类型。 – 2013-03-27 18:03:59