2011-01-07 28 views
1

我得有像這樣的規則的語法ANTLR:如何創建給定形狀的反轉樹?

rule: 
ID (COMMA ID)* 
; 

其中,ID是匹配一個典型的變量名和逗號是一個逗號匹配的詞法規則詞法規則。因此,規則匹配的一個或多個逗號分隔的變量

我想創建一個樹,看起來像這樣:

ITEM 
    ID 
ITEM 
    ID 
.... 

其中項目是我在每個ID是前面插入一個虛節點找到。

我該如何用樹重寫語法來做這樣的事情?

通常,如果我想收集所有的ID我只用

rule: 
ID (COMMA ID)* -> ^(ITEM ID+) 
; 

但這產生了樹:

ITEM 
    ID 
    ID 
    .... 

我使用C#如果它的事項作爲實現的langauge和ANTLR 3.1.3

回答

1

我問了一個問題後很快就明白了。

爲了讓樹形態,我想我需要使用重寫語法像這樣:

rule: 
ID (COMMA ID)* -> ^(ITEM ID)+ 
;