// // Numbers // DIGIT: "0".."9" HEXDIGIT: "a".."f"|"A".."F"|DIGIT INT: DIGIT+ SIGNED_INT: ["+"|"-"] INT DECIMAL: INT "." INT? | "." INT // float = /-?\d+(\.\d+)?([eE][+-]?\d+)?/ _EXP: ("e"|"E") SIGNED_INT FLOAT: INT _EXP | DECIMAL _EXP? NUMBER: FLOAT | INT SIGNED_NUMBER: ["+"|"-"] NUMBER // // Strings // STRING_INNER: ("\\\""|/[^"]/) ESCAPED_STRING: "\"" STRING_INNER* "\"" // // Names (Variables) // LCASE_LETTER: "a".."z" UCASE_LETTER: "A".."Z" LETTER: UCASE_LETTER | LCASE_LETTER CNAME: ("_"|LETTER) ("_"|LETTER|DIGIT)* // // Whitespace // WS_INLINE: (" "|/\t/)+ WS: /[ \t\f\r\n]/+ CR : /\r/ LF : /\n/ NEWLINE: (CR? LF)+