12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- lexer grammar ApiLexer;
- // Keywords
- ATDOC: '@doc';
- ATHANDLER: '@handler';
- INTERFACE: 'interface{}';
- ATSERVER: '@server';
- // Whitespace and comments
- WS: [ \t\r\n\u000C]+ -> channel(HIDDEN);
- COMMENT: '/*' .*? '*/' -> channel(88);
- LINE_COMMENT: '//' ~[\r\n]* -> channel(88);
- STRING: '"' (~["\\] | EscapeSequence)* '"';
- RAW_STRING: '`' (~[`\\\r\n] | EscapeSequence)+ '`';
- LINE_VALUE: ':' [ \t]* (STRING|(~[\r\n"`]*));
- ID: Letter LetterOrDigit*;
- fragment ExponentPart
- : [eE] [+-]? Digits
- ;
- fragment EscapeSequence
- : '\\' [btnfr"'\\]
- | '\\' ([0-3]? [0-7])? [0-7]
- | '\\' 'u'+ HexDigit HexDigit HexDigit HexDigit
- ;
- fragment HexDigits
- : HexDigit ((HexDigit | '_')* HexDigit)?
- ;
- fragment HexDigit
- : [0-9a-fA-F]
- ;
- fragment Digits
- : [0-9] ([0-9_]* [0-9])?
- ;
- fragment LetterOrDigit
- : Letter
- | [0-9]
- ;
- fragment Letter
- : [a-zA-Z$_] // these are the "java letters" below 0x7F
- | ~[\u0000-\u007F\uD800-\uDBFF] // covers all characters above 0x7F which are not a surrogate
- | [\uD800-\uDBFF] [\uDC00-\uDFFF] // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF
- ;
|