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 }