如何在没有歧义的情况下为规则创建速记?

时间:2015-06-11 18:37:58

标签: java antlr antlr4

我的语法中有这个:(INF是影响力的缩写)

inftype 
: 'INF' ('Attack'|'A')
| 'INF' ('Defend'|'D') 
| 'INF' ('Recharge'|'R')
;

这导致INFA和INFAttack之间存在歧义。无论如何要解决这个制定两条规则的条款吗?

这也不起作用:

inftype 
: 'INF' ('Attack'|'Defend'|'Recharge')
| 'INF' ('A'|'D'|'R')
;

1 个答案:

答案 0 :(得分:0)

  

inftype       :'INFAttack'       | 'INFDefend'       | 'INFRecharge'       | 'INFA'       | 'INFD'       | 'INFR'       ;

嗯,这是应该怎么做:)我弄明白了。