Ich versuche, eine reine Lexer-Grammatik in Antlr zu definieren, die 32-Bit in hexadezimaler Schreibweise erkennt.Wie definiert man eine Regel eines Musters mit einer festen Anzahl von Wiederholungen mit Antlr reinen Lexer Grammatik
für jetzt habe ich:
lexer grammar Grammar;
WS : [ \r\t\n]+ -> skip;
fragment HexDigit : ([0-9]|[A-f]|[a-f]);
fragment HexDigitNoZero : ([1-9]|[A-f]|[a-f]);
fragment HexNumber : (HexDigitNoZero)(HexDigit)*;
fragment Eight : HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit;
Hex :'0x'Eight;
ich Theres wissen möchten, wenn irgendeine Art und Weise eine Reihe 8 in einer reinen Lexer Grammatik zu definieren. Wie Flex mit 'a' {8}.
Thx für die Beratung: Ich habe Hex: {getText() .length() == 8}? '0x' (HexDigitNoZero) (HexDigit) *; und es hat perfekt funktioniert. –
Gern geschehen. Wenn Sie die Antwort akzeptieren könnten, wäre das geat. :) – cantSleepNow