ルールがあります
((cns=IDENT '->')* IDENT | (cns=IDENT '->')* 'STOP') -> ^(PREFIX ^(EVENTS $cns*) ^(ENDS $procn? STOP?) )
cns=IDENT
'cns + = IDENT'に置き換えると、これは正しく機能します。その場合、どうすればとしてアクセスできます cns
か$cns.text
。
ルールがあります
((cns=IDENT '->')* IDENT | (cns=IDENT '->')* 'STOP') -> ^(PREFIX ^(EVENTS $cns*) ^(ENDS $procn? STOP?) )
cns=IDENT
'cns + = IDENT'に置き換えると、これは正しく機能します。その場合、どうすればとしてアクセスできます cns
か$cns.text
。
すべてのIDを保存するには、最後のIDだけでなくcns=IDENT
をに変更する必要がありcns+=IDENT
ます。
ここで、パーサーを調べると、ANTLRによって生成されたJavaコードcns
はジェネリックArrayList
であり、格納されているすべてのアイテムはタイプToken
です。
これで、このリストをループを使用して繰り返すことができ、次のようなコードを使用してアイテムに対して何でも実行できます。
$cns.get(index)
ただし、このアイテムはオブジェクトタイプであり、特定のタスクのToken
オブジェクトにキャストできます(これは正しい用語ですか?) 。Token