Ich schreibe eine Grammatik für eine mittelgroße Sprache, und ich versuche, Zeitliterale des Formulars hh:mm:ss
zu implementieren.ANTLR: Parsing 2-stellige Zahlen, wenn andere numerische Literale auch möglich sind
Allerdings, wenn ich versuche zu analysieren, zum Beispiel 12:34:56
als timeLiteral
, bekomme ich nicht übereinstimmende Token-Ausnahmen auf den Ziffern. Weiß jemand, was ich falsch machen könnte?
Hier sind die einschlägigen Vorschriften, wie sie derzeit definiert:
timeLiteral
: timePair COLON timePair COLON timePair -> ^(TIMELIT timePair*)
;
timePair
: DecimalDigit DecimalDigit
;
NumericLiteral
: DecimalLiteral
;
fragment DecimalLiteral
: DecimalDigit+ ('.' DecimalDigit+)?
;
fragment DecimalDigit
: ('0'..'9')
;