gpt4 book ai didi

java - ANTLR标签异构替代品?

转载 作者:行者123 更新时间:2023-11-30 07:36:30 26 4
gpt4 key购买 nike

我想创建一个语法来定义事件的替代方案。

这个

    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
;

我尝试了空字符串,因为不接受任何类型。

通过此修改,可以得到一个简单的日期不再被识别。

有没有办法让(异构的)标签更加一致?

最佳答案

是的。干脆不要在不合格的替代品中提供标签。 Antlr 将在 time 上下文中生成一个 type token 变量;对于非限定替代方案,Token type 的值为 null。

或者更好:

time: type=('before'|'after')? date  ;

关于java - ANTLR标签异构替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35323173/

26 4 0