如何有一个数字的范围

How to have a range for a number

我正在使用 javaCC 生成我的解析器。 但我想有一个这种格式的日期:“01/02”或“05/12”或“30/11”

TOKEN :
{
  < CONSTANT : (< DIGIT >)+ >
| < STRING : ( ["A"-"Z","a"-"z"] )+ >
| < #DIGIT : [ "0"-"9" ] >
| < SLASH: "/" >
}

我有类似的东西:

(< CONSTANT > <SLASH > < CONSTANT >)

但是它接受 999/888 ... 我怎样才能只接受斜线左侧的 0-31 和斜线右侧的 0-12

非常感谢您的帮助

我可能会在解析器中大致如下处理这个问题

void date() throws AnException : {
    Token t ;
    int m;
    int d ;
}{
    t=<CONSTANT>   { d = Integer.parse(t.image) ; }
    <SLASH>
    t=<CONSTANT>   { m = Integer.parse(t.image) ; }
    {   if( m > 12 ) throw AnException() ;
        if( d > 31 ) throw AnException() ;
    }
 }