1

ルールがあります

((cns=IDENT '->')* IDENT | (cns=IDENT '->')* 'STOP') -> ^(PREFIX ^(EVENTS $cns*) ^(ENDS $procn? STOP?)  ) 

cns=IDENT'cns + = IDENT'に置き換えると、これは正しく機能します。その場合、どうすればとしてアクセスできます cns$cns.text

4

1 に答える 1

1

すべてのIDを保存するには、最後のIDだけでなくcns=IDENTをに変更する必要がありcns+=IDENTます。

ここで、パーサーを調べると、ANTLRによって生成されたJavaコードcnsはジェネリックArrayListであり、格納されているすべてのアイテムはタイプTokenです。

これで、このリストをループを使用して繰り返すことができ、次のようなコードを使用してアイテムに対して何でも実行できます。

$cns.get(index)

ただし、このアイテムはオブジェクトタイプであり、特定のタスクのTokenオブジェクトにキャストできます(これは正しい用語ですか?) 。Token

于 2011-06-09T15:42:02.883 に答える