| Index: src/token.h
|
| diff --git a/src/token.h b/src/token.h
|
| index 61560362e3e3641781117ac342cfd24037a4161b..2e7d5d96e974117486689876defa3b31cd9fc4ba 100644
|
| --- a/src/token.h
|
| +++ b/src/token.h
|
| @@ -25,138 +25,139 @@ namespace internal {
|
|
|
| #define IGNORE_TOKEN(name, string, precedence)
|
|
|
| -#define TOKEN_LIST(T, K) \
|
| - /* End of source indicator. */ \
|
| - T(EOS, "EOS", 0) \
|
| - \
|
| - /* Punctuators (ECMA-262, section 7.7, page 15). */ \
|
| - T(LPAREN, "(", 0) \
|
| - T(RPAREN, ")", 0) \
|
| - T(LBRACK, "[", 0) \
|
| - T(RBRACK, "]", 0) \
|
| - T(LBRACE, "{", 0) \
|
| - T(RBRACE, "}", 0) \
|
| - T(COLON, ":", 0) \
|
| - T(SEMICOLON, ";", 0) \
|
| - T(PERIOD, ".", 0) \
|
| - T(CONDITIONAL, "?", 3) \
|
| - T(INC, "++", 0) \
|
| - T(DEC, "--", 0) \
|
| - \
|
| - /* Assignment operators. */ \
|
| - /* IsAssignmentOp() and Assignment::is_compound() relies on */ \
|
| - /* this block of enum values being contiguous and sorted in the */ \
|
| - /* same order! */ \
|
| - T(INIT_VAR, "=init_var", 2) /* AST-use only. */ \
|
| - T(INIT_LET, "=init_let", 2) /* AST-use only. */ \
|
| - T(INIT_CONST, "=init_const", 2) /* AST-use only. */ \
|
| - T(INIT_CONST_LEGACY, "=init_const_legacy", 2) /* AST-use only. */ \
|
| - T(ASSIGN, "=", 2) \
|
| - T(ASSIGN_BIT_OR, "|=", 2) \
|
| - T(ASSIGN_BIT_XOR, "^=", 2) \
|
| - T(ASSIGN_BIT_AND, "&=", 2) \
|
| - T(ASSIGN_SHL, "<<=", 2) \
|
| - T(ASSIGN_SAR, ">>=", 2) \
|
| - T(ASSIGN_SHR, ">>>=", 2) \
|
| - T(ASSIGN_ADD, "+=", 2) \
|
| - T(ASSIGN_SUB, "-=", 2) \
|
| - T(ASSIGN_MUL, "*=", 2) \
|
| - T(ASSIGN_DIV, "/=", 2) \
|
| - T(ASSIGN_MOD, "%=", 2) \
|
| - \
|
| - /* Binary operators sorted by precedence. */ \
|
| - /* IsBinaryOp() relies on this block of enum values */ \
|
| - /* being contiguous and sorted in the same order! */ \
|
| - T(COMMA, ",", 1) \
|
| - T(OR, "||", 4) \
|
| - T(AND, "&&", 5) \
|
| - T(BIT_OR, "|", 6) \
|
| - T(BIT_XOR, "^", 7) \
|
| - T(BIT_AND, "&", 8) \
|
| - T(SHL, "<<", 11) \
|
| - T(SAR, ">>", 11) \
|
| - T(SHR, ">>>", 11) \
|
| - T(ROR, "rotate right", 11) /* only used by Crankshaft */ \
|
| - T(ADD, "+", 12) \
|
| - T(SUB, "-", 12) \
|
| - T(MUL, "*", 13) \
|
| - T(DIV, "/", 13) \
|
| - T(MOD, "%", 13) \
|
| - \
|
| - /* Compare operators sorted by precedence. */ \
|
| - /* IsCompareOp() relies on this block of enum values */ \
|
| - /* being contiguous and sorted in the same order! */ \
|
| - T(EQ, "==", 9) \
|
| - T(NE, "!=", 9) \
|
| - T(EQ_STRICT, "===", 9) \
|
| - T(NE_STRICT, "!==", 9) \
|
| - T(LT, "<", 10) \
|
| - T(GT, ">", 10) \
|
| - T(LTE, "<=", 10) \
|
| - T(GTE, ">=", 10) \
|
| - K(INSTANCEOF, "instanceof", 10) \
|
| - K(IN, "in", 10) \
|
| - \
|
| - /* Unary operators. */ \
|
| - /* IsUnaryOp() relies on this block of enum values */ \
|
| - /* being contiguous and sorted in the same order! */ \
|
| - T(NOT, "!", 0) \
|
| - T(BIT_NOT, "~", 0) \
|
| - K(DELETE, "delete", 0) \
|
| - K(TYPEOF, "typeof", 0) \
|
| - K(VOID, "void", 0) \
|
| - \
|
| - /* Keywords (ECMA-262, section 7.5.2, page 13). */ \
|
| - K(BREAK, "break", 0) \
|
| - K(CASE, "case", 0) \
|
| - K(CATCH, "catch", 0) \
|
| - K(CONTINUE, "continue", 0) \
|
| - K(DEBUGGER, "debugger", 0) \
|
| - K(DEFAULT, "default", 0) \
|
| - /* DELETE */ \
|
| - K(DO, "do", 0) \
|
| - K(ELSE, "else", 0) \
|
| - K(FINALLY, "finally", 0) \
|
| - K(FOR, "for", 0) \
|
| - K(FUNCTION, "function", 0) \
|
| - K(IF, "if", 0) \
|
| - /* IN */ \
|
| - /* INSTANCEOF */ \
|
| - K(NEW, "new", 0) \
|
| - K(RETURN, "return", 0) \
|
| - K(SWITCH, "switch", 0) \
|
| - K(THIS, "this", 0) \
|
| - K(THROW, "throw", 0) \
|
| - K(TRY, "try", 0) \
|
| - /* TYPEOF */ \
|
| - K(VAR, "var", 0) \
|
| - /* VOID */ \
|
| - K(WHILE, "while", 0) \
|
| - K(WITH, "with", 0) \
|
| - \
|
| - /* Literals (ECMA-262, section 7.8, page 16). */ \
|
| - K(NULL_LITERAL, "null", 0) \
|
| - K(TRUE_LITERAL, "true", 0) \
|
| - K(FALSE_LITERAL, "false", 0) \
|
| - T(NUMBER, NULL, 0) \
|
| - T(STRING, NULL, 0) \
|
| - \
|
| - /* Identifiers (not keywords or future reserved words). */ \
|
| - T(IDENTIFIER, NULL, 0) \
|
| - \
|
| - /* Future reserved words (ECMA-262, section 7.6.1.2). */ \
|
| - T(FUTURE_RESERVED_WORD, NULL, 0) \
|
| - T(FUTURE_STRICT_RESERVED_WORD, NULL, 0) \
|
| - K(CONST, "const", 0) \
|
| - K(EXPORT, "export", 0) \
|
| - K(IMPORT, "import", 0) \
|
| - K(LET, "let", 0) \
|
| - K(YIELD, "yield", 0) \
|
| - \
|
| - /* Illegal token - not able to scan. */ \
|
| - T(ILLEGAL, "ILLEGAL", 0) \
|
| - \
|
| - /* Scanner-internal use only. */ \
|
| +#define TOKEN_LIST(T, K) \
|
| + /* End of source indicator. */ \
|
| + T(EOS, "EOS", 0) \
|
| + \
|
| + /* Punctuators (ECMA-262, section 7.7, page 15). */ \
|
| + T(LPAREN, "(", 0) \
|
| + T(RPAREN, ")", 0) \
|
| + T(LBRACK, "[", 0) \
|
| + T(RBRACK, "]", 0) \
|
| + T(LBRACE, "{", 0) \
|
| + T(RBRACE, "}", 0) \
|
| + T(COLON, ":", 0) \
|
| + T(SEMICOLON, ";", 0) \
|
| + T(PERIOD, ".", 0) \
|
| + T(CONDITIONAL, "?", 3) \
|
| + T(INC, "++", 0) \
|
| + T(DEC, "--", 0) \
|
| + T(ARROW, "=>", 0) \
|
| + \
|
| + /* Assignment operators. */ \
|
| + /* IsAssignmentOp() and Assignment::is_compound() relies on */ \
|
| + /* this block of enum values being contiguous and sorted in the */ \
|
| + /* same order! */ \
|
| + T(INIT_VAR, "=init_var", 2) /* AST-use only. */ \
|
| + T(INIT_LET, "=init_let", 2) /* AST-use only. */ \
|
| + T(INIT_CONST, "=init_const", 2) /* AST-use only. */ \
|
| + T(INIT_CONST_LEGACY, "=init_const_legacy", 2) /* AST-use only. */ \
|
| + T(ASSIGN, "=", 2) \
|
| + T(ASSIGN_BIT_OR, "|=", 2) \
|
| + T(ASSIGN_BIT_XOR, "^=", 2) \
|
| + T(ASSIGN_BIT_AND, "&=", 2) \
|
| + T(ASSIGN_SHL, "<<=", 2) \
|
| + T(ASSIGN_SAR, ">>=", 2) \
|
| + T(ASSIGN_SHR, ">>>=", 2) \
|
| + T(ASSIGN_ADD, "+=", 2) \
|
| + T(ASSIGN_SUB, "-=", 2) \
|
| + T(ASSIGN_MUL, "*=", 2) \
|
| + T(ASSIGN_DIV, "/=", 2) \
|
| + T(ASSIGN_MOD, "%=", 2) \
|
| + \
|
| + /* Binary operators sorted by precedence. */ \
|
| + /* IsBinaryOp() relies on this block of enum values */ \
|
| + /* being contiguous and sorted in the same order! */ \
|
| + T(COMMA, ",", 1) \
|
| + T(OR, "||", 4) \
|
| + T(AND, "&&", 5) \
|
| + T(BIT_OR, "|", 6) \
|
| + T(BIT_XOR, "^", 7) \
|
| + T(BIT_AND, "&", 8) \
|
| + T(SHL, "<<", 11) \
|
| + T(SAR, ">>", 11) \
|
| + T(SHR, ">>>", 11) \
|
| + T(ROR, "rotate right", 11) /* only used by Crankshaft */ \
|
| + T(ADD, "+", 12) \
|
| + T(SUB, "-", 12) \
|
| + T(MUL, "*", 13) \
|
| + T(DIV, "/", 13) \
|
| + T(MOD, "%", 13) \
|
| + \
|
| + /* Compare operators sorted by precedence. */ \
|
| + /* IsCompareOp() relies on this block of enum values */ \
|
| + /* being contiguous and sorted in the same order! */ \
|
| + T(EQ, "==", 9) \
|
| + T(NE, "!=", 9) \
|
| + T(EQ_STRICT, "===", 9) \
|
| + T(NE_STRICT, "!==", 9) \
|
| + T(LT, "<", 10) \
|
| + T(GT, ">", 10) \
|
| + T(LTE, "<=", 10) \
|
| + T(GTE, ">=", 10) \
|
| + K(INSTANCEOF, "instanceof", 10) \
|
| + K(IN, "in", 10) \
|
| + \
|
| + /* Unary operators. */ \
|
| + /* IsUnaryOp() relies on this block of enum values */ \
|
| + /* being contiguous and sorted in the same order! */ \
|
| + T(NOT, "!", 0) \
|
| + T(BIT_NOT, "~", 0) \
|
| + K(DELETE, "delete", 0) \
|
| + K(TYPEOF, "typeof", 0) \
|
| + K(VOID, "void", 0) \
|
| + \
|
| + /* Keywords (ECMA-262, section 7.5.2, page 13). */ \
|
| + K(BREAK, "break", 0) \
|
| + K(CASE, "case", 0) \
|
| + K(CATCH, "catch", 0) \
|
| + K(CONTINUE, "continue", 0) \
|
| + K(DEBUGGER, "debugger", 0) \
|
| + K(DEFAULT, "default", 0) \
|
| + /* DELETE */ \
|
| + K(DO, "do", 0) \
|
| + K(ELSE, "else", 0) \
|
| + K(FINALLY, "finally", 0) \
|
| + K(FOR, "for", 0) \
|
| + K(FUNCTION, "function", 0) \
|
| + K(IF, "if", 0) \
|
| + /* IN */ \
|
| + /* INSTANCEOF */ \
|
| + K(NEW, "new", 0) \
|
| + K(RETURN, "return", 0) \
|
| + K(SWITCH, "switch", 0) \
|
| + K(THIS, "this", 0) \
|
| + K(THROW, "throw", 0) \
|
| + K(TRY, "try", 0) \
|
| + /* TYPEOF */ \
|
| + K(VAR, "var", 0) \
|
| + /* VOID */ \
|
| + K(WHILE, "while", 0) \
|
| + K(WITH, "with", 0) \
|
| + \
|
| + /* Literals (ECMA-262, section 7.8, page 16). */ \
|
| + K(NULL_LITERAL, "null", 0) \
|
| + K(TRUE_LITERAL, "true", 0) \
|
| + K(FALSE_LITERAL, "false", 0) \
|
| + T(NUMBER, NULL, 0) \
|
| + T(STRING, NULL, 0) \
|
| + \
|
| + /* Identifiers (not keywords or future reserved words). */ \
|
| + T(IDENTIFIER, NULL, 0) \
|
| + \
|
| + /* Future reserved words (ECMA-262, section 7.6.1.2). */ \
|
| + T(FUTURE_RESERVED_WORD, NULL, 0) \
|
| + T(FUTURE_STRICT_RESERVED_WORD, NULL, 0) \
|
| + K(CONST, "const", 0) \
|
| + K(EXPORT, "export", 0) \
|
| + K(IMPORT, "import", 0) \
|
| + K(LET, "let", 0) \
|
| + K(YIELD, "yield", 0) \
|
| + \
|
| + /* Illegal token - not able to scan. */ \
|
| + T(ILLEGAL, "ILLEGAL", 0) \
|
| + \
|
| + /* Scanner-internal use only. */ \
|
| T(WHITESPACE, NULL, 0)
|
|
|
|
|
|
|