問題是關於如何訪問語法中{"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