我有一条规则
((cns=IDENT '->')* IDENT | (cns=IDENT '->')* 'STOP') -> ^(PREFIX ^(EVENTS $cns*) ^(ENDS $procn? STOP?) ) 如果将cns=IDENT替换为'cns+=IDENT‘,则可以正常工作。在这种情况下,我如何以$cns.text身份访问cns。
发布于 2011-06-09 23:42:03
为了存储所有的标识,而不仅仅是最后一个标识,必须将cns=IDENT更改为cns+=IDENT。
现在,如果您探索由ANTLR代码生成的解析器,cns是一个通用的ArrayList,其中所有存储的项都是Token类型。
现在可以使用循环遍历该列表,并且可以使用如下代码对这些项执行任何操作
$cns.get(index)这个项目是Object类型的,可以进行强制转换(这是正确的术语吗?)为特定于Token的任务设置Token对象。
https://stackoverflow.com/questions/6279853
复制相似问题