2011-06-08 69 views
0

解析我有一個規則迭代/處理標記列表中ANTLR

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

如果cns=IDENT被替換這將正常工作由「CNS + = IDENT」。在這種情況下,我如何才能以$cns.text的身份訪問cns

回答

0

要存儲所有IDENT,而不僅僅是最後一個cns=IDENT必須更改爲cns+=IDENT

現在,如果您瀏覽解析器ANTLR生成的Java代碼cns是一個通用的ArrayList,其中所有存儲的項目類型爲Token

現在,這個名單可以通過使用一個循環迭代,你可以使用代碼做的項目類似的東西

$cns.get(index) 

此產品是Object類型的,但並可以鑄造(這是正確的術語?) Token對象爲Token特定任務。