go.ketch.com/lib/goja@v0.0.1/token/token_const.go (about)

     1  package token
     2  
     3  const (
     4  	_ Token = iota
     5  
     6  	ILLEGAL
     7  	EOF
     8  	COMMENT
     9  
    10  	STRING
    11  	NUMBER
    12  
    13  	PLUS      // +
    14  	MINUS     // -
    15  	MULTIPLY  // *
    16  	EXPONENT  // **
    17  	SLASH     // /
    18  	REMAINDER // %
    19  
    20  	AND                  // &
    21  	OR                   // |
    22  	EXCLUSIVE_OR         // ^
    23  	SHIFT_LEFT           // <<
    24  	SHIFT_RIGHT          // >>
    25  	UNSIGNED_SHIFT_RIGHT // >>>
    26  
    27  	ADD_ASSIGN       // +=
    28  	SUBTRACT_ASSIGN  // -=
    29  	MULTIPLY_ASSIGN  // *=
    30  	EXPONENT_ASSIGN  // **=
    31  	QUOTIENT_ASSIGN  // /=
    32  	REMAINDER_ASSIGN // %=
    33  
    34  	AND_ASSIGN                  // &=
    35  	OR_ASSIGN                   // |=
    36  	EXCLUSIVE_OR_ASSIGN         // ^=
    37  	SHIFT_LEFT_ASSIGN           // <<=
    38  	SHIFT_RIGHT_ASSIGN          // >>=
    39  	UNSIGNED_SHIFT_RIGHT_ASSIGN // >>>=
    40  
    41  	LOGICAL_AND // &&
    42  	LOGICAL_OR  // ||
    43  	COALESCE    // ??
    44  	INCREMENT   // ++
    45  	DECREMENT   // --
    46  
    47  	EQUAL        // ==
    48  	STRICT_EQUAL // ===
    49  	LESS         // <
    50  	GREATER      // >
    51  	ASSIGN       // =
    52  	NOT          // !
    53  
    54  	BITWISE_NOT // ~
    55  
    56  	NOT_EQUAL        // !=
    57  	STRICT_NOT_EQUAL // !==
    58  	LESS_OR_EQUAL    // <=
    59  	GREATER_OR_EQUAL // >=
    60  
    61  	LEFT_PARENTHESIS // (
    62  	LEFT_BRACKET     // [
    63  	LEFT_BRACE       // {
    64  	COMMA            // ,
    65  	PERIOD           // .
    66  
    67  	RIGHT_PARENTHESIS // )
    68  	RIGHT_BRACKET     // ]
    69  	RIGHT_BRACE       // }
    70  	SEMICOLON         // ;
    71  	COLON             // :
    72  	QUESTION_MARK     // ?
    73  	QUESTION_DOT      // ?.
    74  	ARROW             // =>
    75  	ELLIPSIS          // ...
    76  	BACKTICK          // `
    77  
    78  	PRIVATE_IDENTIFIER
    79  
    80  	// tokens below (and only them) are syntactically valid identifiers
    81  
    82  	IDENTIFIER
    83  	KEYWORD
    84  	BOOLEAN
    85  	NULL
    86  
    87  	IF
    88  	IN
    89  	OF
    90  	DO
    91  
    92  	VAR
    93  	FOR
    94  	NEW
    95  	TRY
    96  
    97  	THIS
    98  	ELSE
    99  	CASE
   100  	VOID
   101  	WITH
   102  
   103  	CONST
   104  	WHILE
   105  	BREAK
   106  	CATCH
   107  	THROW
   108  	CLASS
   109  	SUPER
   110  
   111  	RETURN
   112  	TYPEOF
   113  	DELETE
   114  	SWITCH
   115  
   116  	DEFAULT
   117  	FINALLY
   118  	EXTENDS
   119  
   120  	FUNCTION
   121  	CONTINUE
   122  	DEBUGGER
   123  
   124  	INSTANCEOF
   125  
   126  	ESCAPED_RESERVED_WORD
   127  	// Non-reserved keywords below
   128  
   129  	LET
   130  	STATIC
   131  )
   132  
   133  var token2string = [...]string{
   134  	ILLEGAL:                     "ILLEGAL",
   135  	EOF:                         "EOF",
   136  	COMMENT:                     "COMMENT",
   137  	KEYWORD:                     "KEYWORD",
   138  	STRING:                      "STRING",
   139  	BOOLEAN:                     "BOOLEAN",
   140  	NULL:                        "NULL",
   141  	NUMBER:                      "NUMBER",
   142  	IDENTIFIER:                  "IDENTIFIER",
   143  	PRIVATE_IDENTIFIER:          "PRIVATE_IDENTIFIER",
   144  	PLUS:                        "+",
   145  	MINUS:                       "-",
   146  	EXPONENT:                    "**",
   147  	MULTIPLY:                    "*",
   148  	SLASH:                       "/",
   149  	REMAINDER:                   "%",
   150  	AND:                         "&",
   151  	OR:                          "|",
   152  	EXCLUSIVE_OR:                "^",
   153  	SHIFT_LEFT:                  "<<",
   154  	SHIFT_RIGHT:                 ">>",
   155  	UNSIGNED_SHIFT_RIGHT:        ">>>",
   156  	ADD_ASSIGN:                  "+=",
   157  	SUBTRACT_ASSIGN:             "-=",
   158  	MULTIPLY_ASSIGN:             "*=",
   159  	EXPONENT_ASSIGN:             "**=",
   160  	QUOTIENT_ASSIGN:             "/=",
   161  	REMAINDER_ASSIGN:            "%=",
   162  	AND_ASSIGN:                  "&=",
   163  	OR_ASSIGN:                   "|=",
   164  	EXCLUSIVE_OR_ASSIGN:         "^=",
   165  	SHIFT_LEFT_ASSIGN:           "<<=",
   166  	SHIFT_RIGHT_ASSIGN:          ">>=",
   167  	UNSIGNED_SHIFT_RIGHT_ASSIGN: ">>>=",
   168  	LOGICAL_AND:                 "&&",
   169  	LOGICAL_OR:                  "||",
   170  	COALESCE:                    "??",
   171  	INCREMENT:                   "++",
   172  	DECREMENT:                   "--",
   173  	EQUAL:                       "==",
   174  	STRICT_EQUAL:                "===",
   175  	LESS:                        "<",
   176  	GREATER:                     ">",
   177  	ASSIGN:                      "=",
   178  	NOT:                         "!",
   179  	BITWISE_NOT:                 "~",
   180  	NOT_EQUAL:                   "!=",
   181  	STRICT_NOT_EQUAL:            "!==",
   182  	LESS_OR_EQUAL:               "<=",
   183  	GREATER_OR_EQUAL:            ">=",
   184  	LEFT_PARENTHESIS:            "(",
   185  	LEFT_BRACKET:                "[",
   186  	LEFT_BRACE:                  "{",
   187  	COMMA:                       ",",
   188  	PERIOD:                      ".",
   189  	RIGHT_PARENTHESIS:           ")",
   190  	RIGHT_BRACKET:               "]",
   191  	RIGHT_BRACE:                 "}",
   192  	SEMICOLON:                   ";",
   193  	COLON:                       ":",
   194  	QUESTION_MARK:               "?",
   195  	QUESTION_DOT:                "?.",
   196  	ARROW:                       "=>",
   197  	ELLIPSIS:                    "...",
   198  	BACKTICK:                    "`",
   199  	IF:                          "if",
   200  	IN:                          "in",
   201  	OF:                          "of",
   202  	DO:                          "do",
   203  	VAR:                         "var",
   204  	LET:                         "let",
   205  	FOR:                         "for",
   206  	NEW:                         "new",
   207  	TRY:                         "try",
   208  	THIS:                        "this",
   209  	ELSE:                        "else",
   210  	CASE:                        "case",
   211  	VOID:                        "void",
   212  	WITH:                        "with",
   213  	CONST:                       "const",
   214  	WHILE:                       "while",
   215  	BREAK:                       "break",
   216  	CATCH:                       "catch",
   217  	THROW:                       "throw",
   218  	CLASS:                       "class",
   219  	SUPER:                       "super",
   220  	RETURN:                      "return",
   221  	TYPEOF:                      "typeof",
   222  	DELETE:                      "delete",
   223  	SWITCH:                      "switch",
   224  	STATIC:                      "static",
   225  	DEFAULT:                     "default",
   226  	FINALLY:                     "finally",
   227  	EXTENDS:                     "extends",
   228  	FUNCTION:                    "function",
   229  	CONTINUE:                    "continue",
   230  	DEBUGGER:                    "debugger",
   231  	INSTANCEOF:                  "instanceof",
   232  }
   233  
   234  var keywordTable = map[string]_keyword{
   235  	"if": {
   236  		token: IF,
   237  	},
   238  	"in": {
   239  		token: IN,
   240  	},
   241  	"do": {
   242  		token: DO,
   243  	},
   244  	"var": {
   245  		token: VAR,
   246  	},
   247  	"for": {
   248  		token: FOR,
   249  	},
   250  	"new": {
   251  		token: NEW,
   252  	},
   253  	"try": {
   254  		token: TRY,
   255  	},
   256  	"this": {
   257  		token: THIS,
   258  	},
   259  	"else": {
   260  		token: ELSE,
   261  	},
   262  	"case": {
   263  		token: CASE,
   264  	},
   265  	"void": {
   266  		token: VOID,
   267  	},
   268  	"with": {
   269  		token: WITH,
   270  	},
   271  	"while": {
   272  		token: WHILE,
   273  	},
   274  	"break": {
   275  		token: BREAK,
   276  	},
   277  	"catch": {
   278  		token: CATCH,
   279  	},
   280  	"throw": {
   281  		token: THROW,
   282  	},
   283  	"return": {
   284  		token: RETURN,
   285  	},
   286  	"typeof": {
   287  		token: TYPEOF,
   288  	},
   289  	"delete": {
   290  		token: DELETE,
   291  	},
   292  	"switch": {
   293  		token: SWITCH,
   294  	},
   295  	"default": {
   296  		token: DEFAULT,
   297  	},
   298  	"finally": {
   299  		token: FINALLY,
   300  	},
   301  	"function": {
   302  		token: FUNCTION,
   303  	},
   304  	"continue": {
   305  		token: CONTINUE,
   306  	},
   307  	"debugger": {
   308  		token: DEBUGGER,
   309  	},
   310  	"instanceof": {
   311  		token: INSTANCEOF,
   312  	},
   313  	"const": {
   314  		token: CONST,
   315  	},
   316  	"class": {
   317  		token: CLASS,
   318  	},
   319  	"enum": {
   320  		token:         KEYWORD,
   321  		futureKeyword: true,
   322  	},
   323  	"export": {
   324  		token:         KEYWORD,
   325  		futureKeyword: true,
   326  	},
   327  	"extends": {
   328  		token: EXTENDS,
   329  	},
   330  	"import": {
   331  		token:         KEYWORD,
   332  		futureKeyword: true,
   333  	},
   334  	"super": {
   335  		token: SUPER,
   336  	},
   337  	/*
   338  		"implements": {
   339  			token:         KEYWORD,
   340  			futureKeyword: true,
   341  			strict:        true,
   342  		},
   343  		"interface": {
   344  			token:         KEYWORD,
   345  			futureKeyword: true,
   346  			strict:        true,
   347  		},*/
   348  	"let": {
   349  		token:  LET,
   350  		strict: true,
   351  	},
   352  	/*"package": {
   353  		token:         KEYWORD,
   354  		futureKeyword: true,
   355  		strict:        true,
   356  	},
   357  	"private": {
   358  		token:         KEYWORD,
   359  		futureKeyword: true,
   360  		strict:        true,
   361  	},
   362  	"protected": {
   363  		token:         KEYWORD,
   364  		futureKeyword: true,
   365  		strict:        true,
   366  	},
   367  	"public": {
   368  		token:         KEYWORD,
   369  		futureKeyword: true,
   370  		strict:        true,
   371  	},*/
   372  	"static": {
   373  		token:  STATIC,
   374  		strict: true,
   375  	},
   376  	"await": {
   377  		token: KEYWORD,
   378  	},
   379  	"yield": {
   380  		token: KEYWORD,
   381  	},
   382  	"false": {
   383  		token: BOOLEAN,
   384  	},
   385  	"true": {
   386  		token: BOOLEAN,
   387  	},
   388  	"null": {
   389  		token: NULL,
   390  	},
   391  }