我正在为中等大小的语言编写语法,并且正在尝试实现形式的时间文字hh:mm:ss
。
但是,每当我尝试解析时,例如,12:34:56
我timeLiteral
都会在数字上得到不匹配的令牌异常。有谁知道我可能做错了什么?
以下是当前定义的相关规则:
timeLiteral
: timePair COLON timePair COLON timePair -> ^(TIMELIT timePair*)
;
timePair
: DecimalDigit DecimalDigit
;
NumericLiteral
: DecimalLiteral
;
fragment DecimalLiteral
: DecimalDigit+ ('.' DecimalDigit+)?
;
fragment DecimalDigit
: ('0'..'9')
;