ANTLR标签异质替代品?

时间:2016-02-10 18:30:51

标签: java parsing antlr4

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

这个

    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  
    ;

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

这个修改是一个简单的日期 不再被承认了。

有没有办法标记(异质)更一致?

1 个答案:

答案 0 :(得分:1)

是。只是不要在不合格的替代品中提供标签。 Antlr将在library(data.table) a[duplicated(rleid(a))] <- NA 上下文中生成type标记变量;对于非限定替代方案,Token time的值将为null。

或者,更好:

type