ANTLR:令牌列表有问题

ANTLR:令牌列表有问题,antlr,Antlr,尝试(荣誉+=姓名|荣誉+=数字)+,然后$honor是一个令牌列表 我拿出了$honor for(int r = 0; r < list_honor.size(); r++) honorstr = honorstr + list_honor.get(r).text; for(int r=0;r

尝试
(荣誉+=姓名|荣誉+=数字)+
,然后
$honor
是一个令牌列表

我拿出了
$honor

for(int r = 0; r < list_honor.size(); r++) 
  honorstr = honorstr + list_honor.get(r).text; 
for(int r=0;r
输入:
测试

输出:
[@7522539:2585='test',19:11]


怎么了?

我认为列表在两种备选方案中都已初始化:

rule
 : ( honor+=NAME  /* alternatvie 1 */
   | honor+=DIGIT /* alternatvie 2 */
   )+
 ;
试着这样做:

rule
 : honor+=(NAME | DIGIT)+ 
 ;
rule
 : honor+=sub_rule+
 ;

sub_rule
 : NAME
 | DIGIT 
 ;
或者如果这不起作用,像这样:

rule
 : honor+=(NAME | DIGIT)+ 
 ;
rule
 : honor+=sub_rule+
 ;

sub_rule
 : NAME
 | DIGIT 
 ;