2011-01-07 9 views
1

は、私はそうのようなルールを持っているANTLR文法を持っている:IDは、典型的な変数名を照合し、コンマはコンマと一致するレクサー・ルールであるためレクサールールがある特定の形状のantlrツリーを作成するにはどうすればよいですか?

rule: 
ID (COMMA ID)* 
; 

。だから、ルールは、一つ以上のコンマに一致し、私はそうのように見えるツリーを作成したい変数

を分離:

ITEMは、私は、各IDの前に挿入する仮想ノードである
ITEM 
    ID 
ITEM 
    ID 
.... 

見つかりました。

ツリーリライト構文を使用するとどうなりますか?

ITEM 
    ID 
    ID 
    .... 

それは実装のlangaugeとして重要ならば、私はC#を使用しています:私はちょうど

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

を使用したいすべてのIDを収集するために望んでいたが、これは木を生成する場合

通常、 ANTLR 3.1.3

答えて

1

私は質問をしてすぐに私の感覚になった。

ツリー状を取得するために、私はそうのように書き換え構文を使用する必要がありたいと思います:

rule: 
ID (COMMA ID)* -> ^(ITEM ID)+ 
; 
関連する問題