有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java ANTLR标签异构替代方案?

我想用板条箱装一个语法来定义 活动的备选方案

这个

    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) 个答案

  1. # 1 楼答案

    对。只是不要在不合格的备选方案中提供标签。Antlr将在time上下文中生成一个type令牌变量;对于非限定备选方案,令牌type的值将为null

    或者更好:

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