开发者

Iterating/processing a list of Tokens parsed in ANTLR

I have a rule

((cns=IDENT '->')* IDENT | (cns=IDENT '->')* 'STOP') 开发者_运维知识库-> ^(PREFIX ^(EVENTS $cns*) ^(ENDS $procn? STOP?)  ) 

This will work correctly if cns=IDENT is replaced by 'cns+=IDENT'. In that case how can I access cns as $cns.text.


To store all IDENTs and not only last one cns=IDENT has to be changed to cns+=IDENT.

Now if you explore parser Java code generated by ANTLR cns is a generic ArrayList where all stored items are of type Token.

Now this list can be iterated through using a loop and you can do anything with the items using code like

$cns.get(index)

This item is of Object type though and can be Casted(is this correct terminology?) to Token object for Token specific tasks.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜