我想创建一个语法来定义
事件的替代品。
这
time:
type='at ' date
| type='before ' date
| type='vor ' date
;
date:
SIMPLEDATE
;
DAY: ('0'[1-9]|[12][0-9]|'3'[01]);
MONTH: ('0' [1-9]|'1'[012]);
YEAR: [0-2] [890] NUMBER NUMBER;
SIMPLEDATE: DAY [- /.] MONTH [- /.] YEAR;
似乎工作正常。
但我想减少第一个
像这样的替代方案:
time:
type='' date
| type='before' date
| type='after' date
;
我尝试了空字符串,因为
no type 不被接受。
有了这个修改一个简单的日期
不再被识别。
有没有办法将(异质的)标签更一致?
最佳答案
是的。只是不要在不合格的替代品中提供标签。 Antlr 将生成 type
time
中的 token 变量语境;对于不合格的替代方案,Token type
的值将为空。
或更好:
time: type=('before'|'after')? date ;
关于java - ANTLR 标签异质替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35323173/