hoolang/HooLexer.g4

41 lines
916 B
ANTLR

lexer grammar HooLexer;
IDENTIFIER: Letter LetterOrDigit*;
fragment DIGIT: [0-9];
DECIMAL_LITERAL: '0' | ('+' | '-')? [1-9] [0-9]*;
FLOAT_LITERAL: ('+' | '-')? Digits+ '.' Digits+ (
[eE] [+-]? Digits+
)?;
BOOL_LITERAL: 'true' | 'false';
CHAR_LITERAL: '\'' (~['\\\r\n] | EscapeSequence) '\'';
STRING_LITERAL: '"' (~["\\\r\n] | EscapeSequence)* '"';
TEXT_BLOCK: '"""' [ \t]* [\r\n] (. | EscapeSequence)*? '"""';
NULL_LITERAL: 'null';
WS: [ \t\r\n\u000C]+ -> channel(HIDDEN);
COMMENT: '/*' .*? '*/' -> channel(HIDDEN);
LINE_COMMENT: '//' ~[\r\n]* -> channel(HIDDEN);
fragment EscapeSequence:
'\\' 'u005c'? [btnfr"'\\]
| '\\' 'u005c'? ([0-3]? [0-7])? [0-7]
| '\\' 'u'+ HexDigit HexDigit HexDigit HexDigit;
fragment HexDigit: [0-9a-fA-F];
fragment Digits: [0-9];
fragment LetterOrDigit: Letter | [0-9];
fragment Letter:
[a-zA-Z$_]
| ~[\u0000-\u007F\uD800-\uDBFF]
| [\uD800-\uDBFF] [\uDC00-\uDFFF];