| OLD | NEW |
| (Empty) | |
| 1 /*!re2c |
| 2 |
| 3 |
| 4 re2c:define:YYCTYPE = "uint8_t"; |
| 5 re2c:define:YYCURSOR = p; |
| 6 re2c:yyfill:enable = 0; |
| 7 re2c:yych:conversion = 0; |
| 8 re2c:indent:top = 1; |
| 9 |
| 10 |
| 11 eof = [\000]; |
| 12 any = [\000-\377]; |
| 13 whitespace_char = [ \h\t\v\f\r]; |
| 14 whitespace = whitespace_char+; |
| 15 identifier_start = [$_\\a-zA-z]; |
| 16 identifier_char = [$_\\a-zA-z0-9]; |
| 17 number_start = [0-9]; |
| 18 line_terminator = [\n\r]+; |
| 19 |
| 20 |
| 21 <NORMAL> "(" { PUSH_T(LPAREN); } |
| 22 <NORMAL> ")" { PUSH_T(RPAREN); } |
| 23 <NORMAL> "[" { PUSH_T(LBRACK); } |
| 24 <NORMAL> "]" { PUSH_T(RBRACK); } |
| 25 <NORMAL> "{" { PUSH_T(LBRACE); } |
| 26 <NORMAL> "}" { PUSH_T(RBRACE); } |
| 27 <NORMAL> ":" { PUSH_T(COLON); } |
| 28 <NORMAL> ";" { PUSH_T(SEMICOLON); } |
| 29 <NORMAL> "." { PUSH_T(PERIOD); } |
| 30 <NORMAL> "?" { PUSH_T(CONDITIONAL); } |
| 31 <NORMAL> "++" { PUSH_T(INC); } |
| 32 <NORMAL> "--" { PUSH_T(DEC); } |
| 33 |
| 34 |
| 35 <NORMAL> "=" { PUSH_T(ASSIGN); } |
| 36 <NORMAL> "|=" { PUSH_T(ASSIGN_BIT_OR); } |
| 37 <NORMAL> "^=" { PUSH_T(ASSIGN_BIT_XOR); } |
| 38 <NORMAL> "&=" { PUSH_T(ASSIGN_BIT_AND); } |
| 39 <NORMAL> "<<=" { PUSH_T(ASSIGN_SHL); } |
| 40 <NORMAL> ">>=" { PUSH_T(ASSIGN_SAR); } |
| 41 <NORMAL> ">>>=" { PUSH_T(ASSIGN_SHR); } |
| 42 <NORMAL> "+=" { PUSH_T(ASSIGN_ADD); } |
| 43 <NORMAL> "-=" { PUSH_T(ASSIGN_SUB); } |
| 44 <NORMAL> "*=" { PUSH_T(ASSIGN_MUL); } |
| 45 <NORMAL> "/=" { PUSH_T(ASSIGN_DIV); } |
| 46 <NORMAL> "%=" { PUSH_T(ASSIGN_MOD); } |
| 47 |
| 48 |
| 49 <NORMAL> "," { PUSH_T(COMMA); } |
| 50 <NORMAL> "||" { PUSH_T(OR); } |
| 51 <NORMAL> "&&" { PUSH_T(AND); } |
| 52 <NORMAL> "|" { PUSH_T(BIT_OR); } |
| 53 <NORMAL> "^" { PUSH_T(BIT_XOR); } |
| 54 <NORMAL> "&" { PUSH_T(BIT_AND); } |
| 55 <NORMAL> "<<" { PUSH_T(SHL); } |
| 56 <NORMAL> ">>" { PUSH_T(SAR); } |
| 57 <NORMAL> "+" { PUSH_T(ADD); } |
| 58 <NORMAL> "-" { PUSH_T(SUB); } |
| 59 <NORMAL> "*" { PUSH_T(MUL); } |
| 60 <NORMAL> "/" { PUSH_T(DIV); } |
| 61 <NORMAL> "%" { PUSH_T(MOD); } |
| 62 |
| 63 |
| 64 <NORMAL> "==" { PUSH_T(EQ); } |
| 65 <NORMAL> "!=" { PUSH_T(NE); } |
| 66 <NORMAL> "===" { PUSH_T(EQ_STRICT); } |
| 67 <NORMAL> "!==" { PUSH_T(NE_STRICT); } |
| 68 <NORMAL> "<" { PUSH_T(LT); } |
| 69 <NORMAL> ">" { PUSH_T(GT); } |
| 70 <NORMAL> "<=" { PUSH_T(LTE); } |
| 71 <NORMAL> ">=" { PUSH_T(GTE); } |
| 72 |
| 73 |
| 74 <NORMAL> "!" { PUSH_T(NOT); } |
| 75 <NORMAL> "~" { PUSH_T(BIT_NOT); } |
| 76 |
| 77 <NORMAL> line_terminator+ { PUSH_LINE_TERMINATOR(); } |
| 78 |
| 79 <NORMAL> whitespace {} |
| 80 |
| 81 |
| 82 <NORMAL> "//" :=> SINGLE_LINE_COMMENT |
| 83 <NORMAL> "/*" :=> MULTILINE_COMMENT |
| 84 <NORMAL> "<!--" :=> HTML_COMMENT |
| 85 |
| 86 |
| 87 <NORMAL> ["] :=> STRING |
| 88 <NORMAL> ['] :=> SINGLE_QUOTE_STRING |
| 89 |
| 90 |
| 91 <NORMAL> identifier_start :=> IDENTIFIER |
| 92 |
| 93 <NORMAL> number_start :=> NUMBER |
| 94 |
| 95 |
| 96 <NORMAL> eof { PUSH_T(EOS); } |
| 97 <NORMAL> any { TERMINATE_ILLEGAL(); } |
| 98 |
| 99 |
| 100 |
| 101 <STRING> "\\\"" {} |
| 102 <STRING> ["] { PUSH_STRING(); TRANSITION(NORMAL); } |
| 103 <STRING> any {} |
| 104 |
| 105 |
| 106 <SINGLE_QUOTE_STRING> "\\'" {} |
| 107 <SINGLE_QUOTE_STRING> "'" { PUSH_STRING(); TRANSITION(NORMAL); } |
| 108 <SINGLE_QUOTE_STRING> any {} |
| 109 |
| 110 |
| 111 |
| 112 <IDENTIFIER> identifier_char+ {} |
| 113 <IDENTIFIER> any { PUSH_IDENTIFIER(); TRANSITION(NORMAL); } |
| 114 |
| 115 |
| 116 |
| 117 <SINGLE_LINE_COMMENT> line_terminator |
| 118 { PUSH_LINE_TERMINATOR(); TRANSITION(NORMAL); } |
| 119 |
| 120 <SINGLE_LINE_COMMENT> any+ {} |
| 121 |
| 122 |
| 123 |
| 124 <MULTILINE_COMMENT> [*][//] { PUSH_LINE_TERMINATOR(); TRANSITION(NORMAL);
} |
| 125 <MULTILINE_COMMENT> eof { TERMINATE_ILLEGAL(); } |
| 126 <MULTILINE_COMMENT> any+ {} |
| 127 |
| 128 */ |
| OLD | NEW |