@ibyar/expressions 0.5.2 → 0.5.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +4 -3
- package/api/abstract.d.ts +5 -6
- package/api/abstract.js +8 -3
- package/api/abstract.js.map +1 -1
- package/api/class/class.d.ts +227 -0
- package/api/class/class.js +662 -0
- package/api/class/class.js.map +1 -0
- package/api/class/decorator.d.ts +20 -0
- package/api/class/decorator.js +48 -0
- package/api/class/decorator.js.map +1 -0
- package/api/computing/call.d.ts +3 -1
- package/api/computing/call.js +16 -4
- package/api/computing/call.js.map +1 -1
- package/api/computing/debugger.d.ts +15 -0
- package/api/computing/debugger.js +35 -0
- package/api/computing/debugger.js.map +1 -0
- package/api/computing/new.d.ts +2 -1
- package/api/computing/new.js +4 -0
- package/api/computing/new.js.map +1 -1
- package/api/computing/rest.d.ts +6 -6
- package/api/computing/rest.js +5 -2
- package/api/computing/rest.js.map +1 -1
- package/api/computing/return.d.ts +6 -1
- package/api/computing/return.js +8 -0
- package/api/computing/return.js.map +1 -1
- package/api/computing/spread.d.ts +2 -1
- package/api/computing/spread.js +5 -2
- package/api/computing/spread.js.map +1 -1
- package/api/computing/throw.d.ts +6 -1
- package/api/computing/throw.js +7 -0
- package/api/computing/throw.js.map +1 -1
- package/api/computing/yield.d.ts +2 -1
- package/api/computing/yield.js +3 -0
- package/api/computing/yield.js.map +1 -1
- package/api/definition/array.d.ts +12 -12
- package/api/definition/array.js +31 -25
- package/api/definition/array.js.map +1 -1
- package/api/definition/bind.d.ts +8 -2
- package/api/definition/bind.js +7 -1
- package/api/definition/bind.js.map +1 -1
- package/api/definition/function.d.ts +40 -51
- package/api/definition/function.js +292 -309
- package/api/definition/function.js.map +1 -1
- package/api/definition/member.d.ts +2 -2
- package/api/definition/member.js +1 -1
- package/api/definition/member.js.map +1 -1
- package/api/definition/object.d.ts +15 -12
- package/api/definition/object.js +43 -13
- package/api/definition/object.js.map +1 -1
- package/api/definition/statement.d.ts +2 -2
- package/api/definition/statement.js +7 -3
- package/api/definition/statement.js.map +1 -1
- package/api/definition/values.d.ts +44 -50
- package/api/definition/values.js +87 -149
- package/api/definition/values.js.map +1 -1
- package/api/deserialize/deserialize.d.ts +7 -1
- package/api/deserialize/deserialize.js +9 -1
- package/api/deserialize/deserialize.js.map +1 -1
- package/api/deserialize/type-store.d.ts +2 -2
- package/api/deserialize/type-store.js.map +1 -1
- package/api/expression.d.ts +159 -18
- package/api/expression.js.map +1 -1
- package/api/index.d.ts +2 -0
- package/api/index.js +2 -0
- package/api/index.js.map +1 -1
- package/api/module/common.d.ts +29 -0
- package/api/module/common.js +71 -0
- package/api/module/common.js.map +1 -0
- package/api/module/export.d.ts +129 -25
- package/api/module/export.js +333 -58
- package/api/module/export.js.map +1 -1
- package/api/module/import.d.ts +114 -25
- package/api/module/import.js +279 -68
- package/api/module/import.js.map +1 -1
- package/api/operators/assignment.d.ts +2 -2
- package/api/operators/assignment.js +1 -1
- package/api/operators/assignment.js.map +1 -1
- package/api/operators/await.d.ts +2 -2
- package/api/operators/await.js +1 -1
- package/api/operators/await.js.map +1 -1
- package/api/operators/binary.d.ts +2 -2
- package/api/operators/binary.js +1 -1
- package/api/operators/binary.js.map +1 -1
- package/api/operators/chaining.d.ts +2 -2
- package/api/operators/chaining.js +1 -1
- package/api/operators/chaining.js.map +1 -1
- package/api/operators/comma.d.ts +2 -2
- package/api/operators/comma.js +2 -2
- package/api/operators/comma.js.map +1 -1
- package/api/operators/grouping.d.ts +9 -2
- package/api/operators/grouping.js +8 -1
- package/api/operators/grouping.js.map +1 -1
- package/api/operators/logical.d.ts +2 -2
- package/api/operators/logical.js +1 -1
- package/api/operators/logical.js.map +1 -1
- package/api/operators/pipeline.d.ts +14 -2
- package/api/operators/pipeline.js +13 -1
- package/api/operators/pipeline.js.map +1 -1
- package/api/operators/ternary.d.ts +2 -2
- package/api/operators/ternary.js +1 -1
- package/api/operators/ternary.js.map +1 -1
- package/api/operators/unary.d.ts +3 -3
- package/api/operators/unary.js +7 -3
- package/api/operators/unary.js.map +1 -1
- package/api/operators/update.d.ts +2 -2
- package/api/operators/update.js +1 -1
- package/api/operators/update.js.map +1 -1
- package/api/{app/program.d.ts → program.d.ts} +8 -9
- package/api/program.js +45 -0
- package/api/program.js.map +1 -0
- package/api/statement/control/block.d.ts +8 -5
- package/api/statement/control/block.js +26 -23
- package/api/statement/control/block.js.map +1 -1
- package/api/statement/control/empty.d.ts +8 -1
- package/api/statement/control/empty.js +7 -0
- package/api/statement/control/empty.js.map +1 -1
- package/api/statement/control/if.d.ts +7 -2
- package/api/statement/control/if.js +6 -1
- package/api/statement/control/if.js.map +1 -1
- package/api/statement/control/switch.d.ts +10 -5
- package/api/statement/control/switch.js +22 -9
- package/api/statement/control/switch.js.map +1 -1
- package/api/statement/control/terminate.d.ts +46 -13
- package/api/statement/control/terminate.js +89 -20
- package/api/statement/control/terminate.js.map +1 -1
- package/api/statement/declarations/declares.d.ts +17 -16
- package/api/statement/declarations/declares.js +24 -19
- package/api/statement/declarations/declares.js.map +1 -1
- package/api/statement/iterations/for.d.ts +10 -5
- package/api/statement/iterations/for.js +42 -23
- package/api/statement/iterations/for.js.map +1 -1
- package/api/statement/iterations/while.d.ts +9 -3
- package/api/statement/iterations/while.js +27 -13
- package/api/statement/iterations/while.js.map +1 -1
- package/api/utils.d.ts +5 -0
- package/api/utils.js +4 -0
- package/api/utils.js.map +1 -0
- package/package.json +5 -5
- package/scope/finalizer.d.ts +4 -0
- package/scope/finalizer.js +11 -0
- package/scope/finalizer.js.map +1 -0
- package/scope/proxy.d.ts +5 -3
- package/scope/proxy.js +26 -26
- package/scope/proxy.js.map +1 -1
- package/scope/scope.d.ts +108 -51
- package/scope/scope.js +72 -134
- package/scope/scope.js.map +1 -1
- package/scope/stack.d.ts +117 -26
- package/scope/stack.js +154 -102
- package/scope/stack.js.map +1 -1
- package/v8/enums.d.ts +204 -0
- package/v8/enums.js +406 -0
- package/v8/enums.js.map +1 -0
- package/v8/index.d.ts +2 -1
- package/v8/index.js +2 -1
- package/v8/index.js.map +1 -1
- package/v8/inline.d.ts +213 -0
- package/v8/inline.js +2375 -0
- package/v8/inline.js.map +1 -0
- package/v8/nodes.d.ts +8 -7
- package/v8/nodes.js +39 -64
- package/v8/nodes.js.map +1 -1
- package/v8/parser.d.ts +49 -151
- package/v8/parser.js +839 -1607
- package/v8/parser.js.map +1 -1
- package/v8/stream.d.ts +39 -3
- package/v8/stream.js +685 -171
- package/v8/stream.js.map +1 -1
- package/v8/token.d.ts +244 -9
- package/v8/token.js +315 -47
- package/v8/token.js.map +1 -1
- package/visit/visitor.d.ts +3 -0
- package/visit/visitor.js +4 -7
- package/visit/visitor.js.map +1 -1
- package/api/app/class.d.ts +0 -117
- package/api/app/class.js +0 -292
- package/api/app/class.js.map +0 -1
- package/api/app/program.js +0 -39
- package/api/app/program.js.map +0 -1
- package/api/module/module.d.ts +0 -26
- package/api/module/module.js +0 -63
- package/api/module/module.js.map +0 -1
- package/v8/app.d.ts +0 -0
- package/v8/app.js +0 -2
- package/v8/app.js.map +0 -1
package/v8/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/expressions/v8/token.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExpressionNode } from '../api/expression.js';\n\nexport class Token {\n\n\t/**\n\t * ___ ? ___ : ___\n\t */\n\tpublic static readonly CONDITIONAL = new Token('?', 3);\n\n\t/**\n\t * ___ ?? ___\n\t */\n\tpublic static readonly NULLISH = new Token('??', 3);\n\n\t/**\n\t * ___ |> ___ : ___ : ?\n\t * ___ |> ___ ( ___, ___ , ?)\n\t */\n\tpublic static readonly PIPELINE = new Token('|>', 3);\n\n\t/**\n\t * ___ || ___\n\t */\n\tpublic static readonly OR = new Token('||', 4);\n\n\t/**\n\t * ___ && ___\n\t */\n\tpublic static readonly AND = new Token('&&', 5);\n\n\t/**\n\t * ___ | ___\n\t */\n\tpublic static readonly BIT_OR = new Token('|', 6);\n\n\t/**\n\t * ___ ^ ___\n\t */\n\tpublic static readonly BIT_XOR = new Token('^', 7);\n\n\t/**\n\t * ___ | ___\n\t */\n\tpublic static readonly BIT_AND = new Token('&', 8);\n\n\t/**\n\t * ___ << ___\n\t */\n\tpublic static readonly SHL = new Token('<<', 11);\n\n\t/**\n\t * ___ >> ___\n\t */\n\tpublic static readonly SAR = new Token('>>', 11);\n\n\t/**\n\t * ___ >>> ___\n\t */\n\tpublic static readonly SHR = new Token('>>>', 11);\n\n\t/**\n\t * ___ * ___\n\t */\n\tpublic static readonly MUL = new Token('*', 13);\n\n\t/**\n\t * ___ / ___\n\t */\n\tpublic static readonly DIV = new Token('/', 13);\n\n\t/**\n\t * ___ % ___\n\t */\n\tpublic static readonly MOD = new Token('%', 13);\n\n\t/**\n\t * ___ %% ___\n\t */\n\tpublic static readonly MODULO = new Token('%%', 13);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly LARGER = new Token('>?', 13);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly SMALLER = new Token('<?', 13);\n\n\t/**\n\t * ___ ** ___\n\t */\n\tpublic static readonly EXP = new Token('**', 14);\n\n\t/**\n\t * ___ + ___\n\t */\n\tpublic static readonly ADD = new Token('+', 12);\n\n\t/**\n\t * ___ - ___\n\t */\n\tpublic static readonly SUB = new Token('-', 12);\n\n\t/**\n\t * ! ___\n\t */\n\tpublic static readonly NOT = new Token('!', 0);\n\n\t/**\n\t * ~ ___\n\t */\n\tpublic static readonly BIT_NOT = new Token('~', 0);\n\n\t/**\n\t * ___ < ___\n\t */\n\tpublic static readonly LT = new Token('<', 10);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly GT = new Token('>', 10);\n\n\t/**\n\t * ___++\n\t * \n\t * ++___\n\t */\n\tpublic static readonly INC = new Token('++', 0);\n\n\t/**\n\t * ___--\n\t * \n\t * --___\n\t */\n\tpublic static readonly DEC = new Token('--', 0);\n\n\t/**\n\t * ___ == ___\n\t */\n\tpublic static readonly EQ = new Token('==', 9);\n\n\t/**\n\t * ___ === ___\n\t */\n\tpublic static readonly EQ_STRICT = new Token('===', 9);\n\n\t/**\n\t * ___ != ___\n\t */\n\tpublic static readonly NE = new Token('!=', 9);\n\n\t/**\n\t * ___ !== ___\n\t */\n\tpublic static readonly NE_STRICT = new Token('!==', 9);\n\n\t/**\n\t * ___ <= ___\n\t */\n\tpublic static readonly LTE = new Token('<=', 10);\n\n\t/**\n\t * ___ >= ___\n\t */\n\tpublic static readonly GTE = new Token('>=', 10);\n\n\t/**\n\t * ___ <=> ___\n\t */\n\tpublic static readonly SPACESHIP = new Token('<=>', 10);\n\n\t/**\n\t * ___ = ___\n\t */\n\tpublic static readonly ASSIGN = new Token('=', 2);\n\n\t/**\n\t * ___ += ___\n\t */\n\tpublic static readonly ADD_ASSIGN = new Token('+=', 2);\n\n\t/**\n\t * ___ -= ___\n\t */\n\tpublic static readonly SUB_ASSIGN = new Token('-=', 2);\n\n\t/**\n\t * ___ *= ___\n\t */\n\tpublic static readonly MUL_ASSIGN = new Token('*=', 2);\n\n\t/**\n\t * ___ /= ___\n\t */\n\tpublic static readonly DIV_ASSIGN = new Token('/=', 2);\n\n\t/**\n\t * ___ %= ___\n\t */\n\tpublic static readonly MOD_ASSIGN = new Token('%=', 2);\n\n\t/**\n\t * ___ %% ___\n\t */\n\tpublic static readonly MODULO_ASSIGN = new Token('%%=', 2);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly LARGER_ASSIGN = new Token('>?=', 2);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly SMALLER_ASSIGN = new Token('<?=', 2);\n\n\t/**\n\t * ___ **= ___\n\t */\n\tpublic static readonly EXP_ASSIGN = new Token('**=', 2);\n\n\t/**\n\t * ___ ^= ___\n\t */\n\tpublic static readonly BIT_XOR_ASSIGN = new Token('^=', 2);\n\n\t/**\n\t * ___ &= ___\n\t */\n\tpublic static readonly BIT_AND_ASSIGN = new Token('&=', 2);\n\n\t/**\n\t * ___ |= ___\n\t */\n\tpublic static readonly BIT_OR_ASSIGN = new Token('|=', 2);\n\n\t/**\n\t * ___ &&= ___\n\t */\n\tpublic static readonly AND_ASSIGN = new Token('&&=', 2);\n\n\t/**\n\t * ___ ||= ___\n\t */\n\tpublic static readonly OR_ASSIGN = new Token('||=', 2);\n\n\t/**\n\t * ___ ??= ___\n\t */\n\tpublic static readonly NULLISH_ASSIGN = new Token('??=', 2);\n\n\t/**\n\t * ___ <<= ___\n\t */\n\tpublic static readonly SHL_ASSIGN = new Token('<<=', 2);\n\n\t/**\n\t * ___ >>= ___\n\t */\n\tpublic static readonly SAR_ASSIGN = new Token('>>=', 2);\n\n\t/**\n\t * ___ >>>= ___\n\t */\n\tpublic static readonly SHR_ASSIGN = new Token('>>>=', 2);\n\n\t/**\n\t * ___ . ___\n\t */\n\tpublic static readonly PERIOD = new Token('.', 0);\n\n\t/**\n\t * ___ ?. ___\n\t * \n\t * ___?.[___]\n\t * \n\t * ___?.()\n\t */\n\tpublic static readonly QUESTION_PERIOD = new Token('?.', 0);\n\n\t/**\n\t * ___ :: ___\n\t */\n\tpublic static readonly BIND = new Token('::', 0);\n\n\t/**\n\t * ___ ?:: ___\n\t * \n\t * ___?::[___]\n\t * \n\t * ___?::()\n\t */\n\tpublic static readonly QUESTION_BIND = new Token('?::', 0);\n\n\t/**\n\t * (\n\t */\n\tpublic static readonly L_PARENTHESES = new Token('(', 0);\n\n\t/**\n\t * )\n\t */\n\tpublic static readonly R_PARENTHESES = new Token(')', 0);\n\n\t/**\n\t * [\n\t */\n\tpublic static readonly L_BRACKETS = new Token('[', 0);\n\n\t/**\n\t * ]\n\t */\n\tpublic static readonly R_BRACKETS = new Token(']', 0);\n\n\t/**\n\t * {\n\t */\n\tpublic static readonly L_CURLY = new Token('{', 0);\n\n\t/**\n\t * }\n\t */\n\tpublic static readonly R_CURLY = new Token('}', 0);\n\n\t/**\n\t * :\n\t */\n\tpublic static readonly COLON = new Token(':', 0);\n\n\t/**\n\t * ...\n\t */\n\tpublic static readonly ELLIPSIS = new Token('...', 0);\n\n\t/**\n\t * ;\n\t */\n\tpublic static readonly SEMICOLON = new Token(';', 0);\n\n\t/**\n\t * end of source\n\t */\n\tpublic static readonly EOS = new Token('EOS', 0);\n\n\t/**\n\t * =>\n\t */\n\tpublic static readonly ARROW = new Token('=>', 0);\n\n\t/**\n\t * ___, ___, ___\n\t */\n\tpublic static readonly COMMA = new Token(',', 1);\n\tpublic static readonly ASYNC = new Token('async', 0);\n\tpublic static readonly AWAIT = new Token('await', 0);\n\tpublic static readonly BREAK = new Token('break', 0);\n\tpublic static readonly CASE = new Token('case', 0);\n\tpublic static readonly CATCH = new Token('catch', 0);\n\tpublic static readonly CLASS = new Token('class', 0);\n\tpublic static readonly CONST = new Token('const', 0);\n\tpublic static readonly CONTINUE = new Token('continue', 0);\n\tpublic static readonly DEBUGGER = new Token('debugger', 0);\n\tpublic static readonly DEFAULT = new Token('default', 0);\n\tpublic static readonly DELETE = new Token('delete', 0);\n\tpublic static readonly DO = new Token('do', 0);\n\tpublic static readonly ELSE = new Token('else', 0);\n\tpublic static readonly ENUM = new Token('enum', 0);\n\tpublic static readonly EXPORT = new Token('export', 0);\n\tpublic static readonly EXTENDS = new Token('extends', 0);\n\tpublic static readonly FALSE_LITERAL = new Token('false', 0);\n\tpublic static readonly FINALLY = new Token('finally', 0);\n\tpublic static readonly FOR = new Token('for', 0);\n\tpublic static readonly FUNCTION = new Token('function', 0);\n\tpublic static readonly GET = new Token('get', 0);\n\tpublic static readonly IF = new Token('if', 0);\n\tpublic static readonly IMPLEMENTS = new Token('implements', 0);\n\tpublic static readonly IMPORT = new Token('import', 0);\n\tpublic static readonly PRIVATE_NAME = new Token('PRIVATE_NAME', 0);\n\tpublic static readonly IN = new Token('in', 10);\n\tpublic static readonly INSTANCEOF = new Token('instanceof', 10);\n\tpublic static readonly LET = new Token('let', 0);\n\tpublic static readonly NEW = new Token('new', 0);\n\tpublic static readonly NULL_LITERAL = new Token('null', 0);\n\tpublic static readonly UNDEFINED_LITERAL = new Token('undefined', 0);\n\tpublic static readonly PACKAGE = new Token('package', 0);\n\tpublic static readonly INTERFACE = new Token('interface', 0);\n\tpublic static readonly PRIVATE = new Token('private', 0);\n\tpublic static readonly PROTECTED = new Token('protected', 0);\n\tpublic static readonly PUBLIC = new Token('public', 0);\n\tpublic static readonly RETURN = new Token('return', 0);\n\tpublic static readonly SET = new Token('set', 0);\n\tpublic static readonly STATIC = new Token('static', 0);\n\tpublic static readonly SUPER = new Token('super', 0);\n\tpublic static readonly SWITCH = new Token('switch', 0);\n\tpublic static readonly THIS = new Token('this', 0);\n\tpublic static readonly THROW = new Token('throw', 0);\n\tpublic static readonly TRUE_LITERAL = new Token('true', 0);\n\tpublic static readonly TRY = new Token('try', 0);\n\tpublic static readonly TYPEOF = new Token('typeof', 0);\n\tpublic static readonly VAR = new Token('var', 0);\n\tpublic static readonly VOID = new Token('void', 0);\n\tpublic static readonly WHILE = new Token('while', 0);\n\tpublic static readonly YIELD = new Token('yield', 0);\n\tpublic static readonly NUMBER = new Token('NUMBER', 0);\n\tpublic static readonly BIGINT = new Token('BIGINT', 0);\n\tpublic static readonly STRING = new Token('STRING', 0);\n\tpublic static readonly IDENTIFIER = new Token('IDENTIFIER', 0);\n\tpublic static readonly TEMPLATE_LITERALS = new Token('TEMPLATE_LITERALS', 0);\n\tpublic static readonly ILLEGAL = new Token('ILLEGAL', 0);\n\tpublic static readonly ESCAPED_KEYWORD = new Token('ESCAPED_KEYWORD', 0);\n\tpublic static readonly WHITESPACE = new Token('WHITESPACE', 0);\n\tpublic static readonly REGEXP_LITERAL = new Token('REGEXP_LITERAL', 0);\n\n\n\tpublic static isPair(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.L_PARENTHESES:\n\t\t\tcase Token.L_BRACKETS:\n\t\t\tcase Token.L_CURLY:\n\t\t\tcase Token.R_CURLY:\n\t\t\tcase Token.R_BRACKETS:\n\t\t\tcase Token.R_PARENTHESES:\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\tpublic static isOpenPair(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.L_PARENTHESES:\n\t\t\tcase Token.L_BRACKETS:\n\t\t\tcase Token.L_CURLY:\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\tpublic static isClosePair(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.R_CURLY:\n\t\t\tcase Token.R_BRACKETS:\n\t\t\tcase Token.R_PARENTHESES:\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\tpublic static openOf(token: Token): Token {\n\t\tswitch (token) {\n\t\t\tcase Token.R_CURLY:\n\t\t\t\treturn Token.L_CURLY;\n\t\t\tcase Token.R_BRACKETS:\n\t\t\t\treturn Token.L_BRACKETS;\n\t\t\tcase Token.R_PARENTHESES:\n\t\t\t\treturn Token.L_PARENTHESES;\n\t\t}\n\t\treturn token;\n\t}\n\tpublic static closeOf(token: Token): Token {\n\t\tswitch (token) {\n\t\t\tcase Token.L_CURLY:\n\t\t\t\treturn Token.R_CURLY;\n\t\t\tcase Token.L_BRACKETS:\n\t\t\t\treturn Token.R_BRACKETS;\n\t\t\tcase Token.L_PARENTHESES:\n\t\t\t\treturn Token.R_PARENTHESES;\n\t\t}\n\t\treturn token;\n\t}\n\tpublic static isAnyIdentifier(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.IDENTIFIER:\n\t\t\tcase Token.GET:\n\t\t\tcase Token.SET:\n\t\t\tcase Token.ASYNC:\n\t\t\tcase Token.AWAIT:\n\t\t\tcase Token.YIELD:\n\t\t\tcase Token.LET:\n\t\t\tcase Token.STATIC:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isIdentifier(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.IDENTIFIER:\n\t\t\tcase Token.GET:\n\t\t\tcase Token.SET:\n\t\t\tcase Token.ASYNC:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isLiteral(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.UNDEFINED_LITERAL:\n\t\t\tcase Token.NULL_LITERAL:\n\t\t\tcase Token.TRUE_LITERAL:\n\t\t\tcase Token.FALSE_LITERAL:\n\t\t\tcase Token.NUMBER:\n\t\t\tcase Token.BIGINT:\n\t\t\tcase Token.STRING:\n\t\t\tcase Token.REGEXP_LITERAL:\n\t\t\t\t// case Token.SMI:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isArrowOrAssignmentOp(token: Token) {\n\t\treturn token === Token.ARROW || this.isAssignment(token);\n\t}\n\tpublic static isAssignment(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.ASSIGN:\n\t\t\tcase Token.ADD_ASSIGN:\n\t\t\tcase Token.SUB_ASSIGN:\n\t\t\tcase Token.MUL_ASSIGN:\n\t\t\tcase Token.DIV_ASSIGN:\n\t\t\tcase Token.MOD_ASSIGN:\n\t\t\tcase Token.MODULO_ASSIGN:\n\t\t\tcase Token.EXP_ASSIGN:\n\t\t\tcase Token.BIT_XOR_ASSIGN:\n\t\t\tcase Token.BIT_AND_ASSIGN:\n\t\t\tcase Token.BIT_OR_ASSIGN:\n\t\t\tcase Token.AND_ASSIGN:\n\t\t\tcase Token.OR_ASSIGN:\n\t\t\tcase Token.NULLISH_ASSIGN:\n\t\t\tcase Token.SHL_ASSIGN:\n\t\t\tcase Token.SAR_ASSIGN:\n\t\t\tcase Token.SHR_ASSIGN:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isLogicalAssignmentOp(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.AND_ASSIGN:\n\t\t\tcase Token.OR_ASSIGN:\n\t\t\tcase Token.NULLISH_ASSIGN:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isAutoSemicolon(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.SEMICOLON:\n\t\t\tcase Token.R_CURLY:\n\t\t\tcase Token.EOS:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isMember(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.TEMPLATE_LITERALS:\n\t\t\tcase Token.PERIOD:\n\t\t\tcase Token.L_BRACKETS:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isTemplate(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.TEMPLATE_LITERALS:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isNextLetKeyword(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.L_CURLY:\n\t\t\tcase Token.L_BRACKETS:\n\t\t\tcase Token.IDENTIFIER:\n\t\t\tcase Token.STATIC:\n\t\t\tcase Token.LET: // `let let;` is disallowed by static semantics, but the\n\t\t\t// token must be first interpreted as a keyword in order\n\t\t\t// for those semantics to apply. This ensures that ASI is\n\t\t\t// not honored when a LineTerminator separates the tokens.\n\t\t\tcase Token.YIELD:\n\t\t\tcase Token.AWAIT:\n\t\t\tcase Token.GET:\n\t\t\tcase Token.SET:\n\t\t\tcase Token.ASYNC:\n\t\t\t\treturn true;\n\t\t\t// case Token.FUTURE_STRICT_RESERVED_WORD:\n\t\t\t// return is_sloppy(language_mode());\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\tpublic static isPropertyOrCall(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.TEMPLATE_LITERALS:\n\t\t\tcase Token.PERIOD:\n\t\t\tcase Token.L_BRACKETS:\n\t\t\tcase Token.QUESTION_PERIOD:\n\t\t\tcase Token.L_PARENTHESES:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isPropertyName(token: Token) {\n\t\treturn /\\w/.test(token.getName());\n\t}\n\tprivate static isInRange(op: number, start: Token, end: Token) {\n\t\treturn op >= start.precedence && op <= end.precedence;\n\t}\n\tpublic static isBinary(token: number | Token) {\n\t\tif (token instanceof Token) {\n\t\t\ttoken = token.precedence;\n\t\t}\n\t\treturn Token.isInRange(token, Token.COMMA, Token.SUB);\n\t}\n\n\tpublic static isCompare(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.EQ:\n\t\t\tcase Token.EQ_STRICT:\n\t\t\tcase Token.NE:\n\t\t\tcase Token.NE_STRICT:\n\t\t\tcase Token.LT:\n\t\t\tcase Token.GT:\n\t\t\tcase Token.LTE:\n\t\t\tcase Token.GTE:\n\t\t\tcase Token.SPACESHIP:\n\t\t\tcase Token.INSTANCEOF:\n\t\t\tcase Token.IN:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isOrderedRelationalCompare(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.LT:\n\t\t\tcase Token.GT:\n\t\t\tcase Token.LTE:\n\t\t\tcase Token.GTE:\n\t\t\tcase Token.SPACESHIP:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isEquality(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.EQ:\n\t\t\tcase Token.EQ_STRICT:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static binaryOpForAssignment(token: Token) {\n\t\tif (Token.isInRange(token.precedence, Token.NULLISH_ASSIGN, Token.SUB_ASSIGN)) {\n\t\t\tconst result = token.precedence - Token.NULLISH_ASSIGN.precedence + Token.NULLISH.precedence;\n\t\t\treturn Token.isBinary(result);\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isBitOp(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.BIT_NOT:\n\t\t\tcase Token.BIT_OR:\n\t\t\tcase Token.BIT_XOR:\n\t\t\tcase Token.BIT_AND:\n\t\t\tcase Token.SHL:\n\t\t\tcase Token.SAR:\n\t\t\tcase Token.SHR:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isUnary(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.ADD:\n\t\t\tcase Token.SUB:\n\t\t\tcase Token.NOT:\n\t\t\tcase Token.BIT_NOT:\n\t\t\tcase Token.DELETE:\n\t\t\tcase Token.AWAIT:\n\t\t\tcase Token.TYPEOF:\n\t\t\tcase Token.VOID:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isCount(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.INC:\n\t\t\tcase Token.DEC:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isUnaryOrCount(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.ADD:\n\t\t\tcase Token.SUB:\n\t\t\tcase Token.INC:\n\t\t\tcase Token.DEC:\n\t\t\tcase Token.NOT:\n\t\t\tcase Token.BIT_NOT:\n\t\t\tcase Token.DELETE:\n\t\t\tcase Token.AWAIT:\n\t\t\tcase Token.TYPEOF:\n\t\t\tcase Token.VOID:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isShift(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.SHL:\n\t\t\tcase Token.SAR:\n\t\t\tcase Token.SHR:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isStrictReservedWord(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.IMPLEMENTS:\n\t\t\tcase Token.INTERFACE:\n\t\t\tcase Token.LET:\n\t\t\tcase Token.PACKAGE:\n\t\t\tcase Token.PRIVATE:\n\t\t\tcase Token.PROTECTED:\n\t\t\tcase Token.PUBLIC:\n\t\t\tcase Token.STATIC:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isPipelineOperator(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.PIPELINE:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isValidIdentifier(token: Token) {\n\t\tif (Token.isInRange(token.precedence, Token.IDENTIFIER, Token.ASYNC)) return true;\n\t\tif (token == Token.AWAIT || token == Token.YIELD) return false;\n\t\treturn Token.isStrictReservedWord(token) && false;\n\t}\n\n\tconstructor(private name: string, private precedence: number) { }\n\tgetName() {\n\t\treturn this.name;\n\t}\n\tgetPrecedence() {\n\t\treturn this.precedence;\n\t}\n}\n\nexport class TokenExpression {\n\tconstructor(public token: Token, public value?: ExpressionNode) { }\n\tgetValue<T extends ExpressionNode>(): T {\n\t\treturn this.value! as T;\n\t}\n\tisType(type: Token) {\n\t\treturn this.token === type;\n\t}\n\tisNotType(type: Token) {\n\t\treturn this.token !== type;\n\t}\n\n\ttest(func: (token: Token) => boolean): boolean {\n\t\treturn func(this.token);\n\t}\n\ttoString(): string {\n\t\treturn JSON.stringify(this);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/expressions/v8/token.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExpressionNode } from '../api/expression.js';\nimport { isSloppy, LanguageMode } from './enums.js';\n\nexport class Token {\n\n\t/**\n\t * ___ ? ___ : ___\n\t */\n\tpublic static readonly CONDITIONAL = new Token('?', 3);\n\n\t/**\n\t * ___ ?? ___\n\t */\n\tpublic static readonly NULLISH = new Token('??', 3);\n\n\t/**\n\t * ___ |> ___ : ___ : ?\n\t * ___ |> ___ ( ___, ___ , ?)\n\t */\n\tpublic static readonly PIPELINE = new Token('|>', 3);\n\n\t/**\n\t * ___ || ___\n\t */\n\tpublic static readonly OR = new Token('||', 4);\n\n\t/**\n\t * ___ && ___\n\t */\n\tpublic static readonly AND = new Token('&&', 5);\n\n\t/**\n\t * ___ | ___\n\t */\n\tpublic static readonly BIT_OR = new Token('|', 6);\n\n\t/**\n\t * ___ ^ ___\n\t */\n\tpublic static readonly BIT_XOR = new Token('^', 7);\n\n\t/**\n\t * ___ | ___\n\t */\n\tpublic static readonly BIT_AND = new Token('&', 8);\n\n\t/**\n\t * ___ << ___\n\t */\n\tpublic static readonly SHL = new Token('<<', 11);\n\n\t/**\n\t * ___ >> ___\n\t */\n\tpublic static readonly SAR = new Token('>>', 11);\n\n\t/**\n\t * ___ >>> ___\n\t */\n\tpublic static readonly SHR = new Token('>>>', 11);\n\n\t/**\n\t * ___ * ___\n\t */\n\tpublic static readonly MUL = new Token('*', 13);\n\n\t/**\n\t * ___ / ___\n\t */\n\tpublic static readonly DIV = new Token('/', 13);\n\n\t/**\n\t * ___ % ___\n\t */\n\tpublic static readonly MOD = new Token('%', 13);\n\n\t/**\n\t * ___ %% ___\n\t */\n\tpublic static readonly MODULO = new Token('%%', 13);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly LARGER = new Token('>?', 13);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly SMALLER = new Token('<?', 13);\n\n\t/**\n\t * ___ ** ___\n\t */\n\tpublic static readonly EXP = new Token('**', 14);\n\n\t/**\n\t * ___ + ___\n\t */\n\tpublic static readonly ADD = new Token('+', 12);\n\n\t/**\n\t * ___ - ___\n\t */\n\tpublic static readonly SUB = new Token('-', 12);\n\n\t/**\n\t * ! ___\n\t */\n\tpublic static readonly NOT = new Token('!', 0);\n\n\t/**\n\t * ~ ___\n\t */\n\tpublic static readonly BIT_NOT = new Token('~', 0);\n\n\t/**\n\t * ___ < ___\n\t */\n\tpublic static readonly LT = new Token('<', 10);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly GT = new Token('>', 10);\n\n\t/**\n\t * ___++\n\t * \n\t * ++___\n\t */\n\tpublic static readonly INC = new Token('++', 0);\n\n\t/**\n\t * ___--\n\t * \n\t * --___\n\t */\n\tpublic static readonly DEC = new Token('--', 0);\n\n\t/**\n\t * ___ == ___\n\t */\n\tpublic static readonly EQ = new Token('==', 9);\n\n\t/**\n\t * ___ === ___\n\t */\n\tpublic static readonly EQ_STRICT = new Token('===', 9);\n\n\t/**\n\t * ___ != ___\n\t */\n\tpublic static readonly NE = new Token('!=', 9);\n\n\t/**\n\t * ___ !== ___\n\t */\n\tpublic static readonly NE_STRICT = new Token('!==', 9);\n\n\t/**\n\t * ___ <= ___\n\t */\n\tpublic static readonly LTE = new Token('<=', 10);\n\n\t/**\n\t * ___ >= ___\n\t */\n\tpublic static readonly GTE = new Token('>=', 10);\n\n\t/**\n\t * ___ <=> ___\n\t */\n\tpublic static readonly SPACESHIP = new Token('<=>', 10);\n\n\t/**\n\t * ___ = ___\n\t */\n\tpublic static readonly ASSIGN = new Token('=', 2);\n\n\t/**\n\t * ___ += ___\n\t */\n\tpublic static readonly ADD_ASSIGN = new Token('+=', 2);\n\n\t/**\n\t * ___ -= ___\n\t */\n\tpublic static readonly SUB_ASSIGN = new Token('-=', 2);\n\n\t/**\n\t * ___ *= ___\n\t */\n\tpublic static readonly MUL_ASSIGN = new Token('*=', 2);\n\n\t/**\n\t * ___ /= ___\n\t */\n\tpublic static readonly DIV_ASSIGN = new Token('/=', 2);\n\n\t/**\n\t * ___ %= ___\n\t */\n\tpublic static readonly MOD_ASSIGN = new Token('%=', 2);\n\n\t/**\n\t * ___ %% ___\n\t */\n\tpublic static readonly MODULO_ASSIGN = new Token('%%=', 2);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly LARGER_ASSIGN = new Token('>?=', 2);\n\n\t/**\n\t * ___ > ___\n\t */\n\tpublic static readonly SMALLER_ASSIGN = new Token('<?=', 2);\n\n\t/**\n\t * ___ **= ___\n\t */\n\tpublic static readonly EXP_ASSIGN = new Token('**=', 2);\n\n\t/**\n\t * ___ ^= ___\n\t */\n\tpublic static readonly BIT_XOR_ASSIGN = new Token('^=', 2);\n\n\t/**\n\t * ___ &= ___\n\t */\n\tpublic static readonly BIT_AND_ASSIGN = new Token('&=', 2);\n\n\t/**\n\t * ___ |= ___\n\t */\n\tpublic static readonly BIT_OR_ASSIGN = new Token('|=', 2);\n\n\t/**\n\t * ___ &&= ___\n\t */\n\tpublic static readonly AND_ASSIGN = new Token('&&=', 2);\n\n\t/**\n\t * ___ ||= ___\n\t */\n\tpublic static readonly OR_ASSIGN = new Token('||=', 2);\n\n\t/**\n\t * ___ ??= ___\n\t */\n\tpublic static readonly NULLISH_ASSIGN = new Token('??=', 2);\n\n\t/**\n\t * ___ <<= ___\n\t */\n\tpublic static readonly SHL_ASSIGN = new Token('<<=', 2);\n\n\t/**\n\t * ___ >>= ___\n\t */\n\tpublic static readonly SAR_ASSIGN = new Token('>>=', 2);\n\n\t/**\n\t * ___ >>>= ___\n\t */\n\tpublic static readonly SHR_ASSIGN = new Token('>>>=', 2);\n\n\t/**\n\t * ___ . ___\n\t */\n\tpublic static readonly PERIOD = new Token('.', 0);\n\n\t/**\n\t * ___ ?. ___\n\t * \n\t * ___?.[___]\n\t * \n\t * ___?.()\n\t */\n\tpublic static readonly QUESTION_PERIOD = new Token('?.', 0);\n\n\t/**\n\t * ___ :: ___\n\t */\n\tpublic static readonly BIND = new Token('::', 0);\n\n\t/**\n\t * ___ ?:: ___\n\t * \n\t * ___?::[___]\n\t * \n\t * ___?::()\n\t */\n\tpublic static readonly QUESTION_BIND = new Token('?::', 0);\n\n\t/**\n\t * (\n\t */\n\tpublic static readonly LPAREN = new Token('(', 0);\n\n\t/**\n\t * )\n\t */\n\tpublic static readonly RPAREN = new Token(')', 0);\n\n\t/**\n\t * [\n\t */\n\tpublic static readonly LBRACK = new Token('[', 0);\n\n\t/**\n\t * ]\n\t */\n\tpublic static readonly RBRACK = new Token(']', 0);\n\n\t/**\n\t * {\n\t */\n\tpublic static readonly LBRACE = new Token('{', 0);\n\n\t/**\n\t * }\n\t */\n\tpublic static readonly RBRACE = new Token('}', 0);\n\n\t/**\n\t * :\n\t */\n\tpublic static readonly COLON = new Token(':', 0);\n\n\t/**\n\t * ...\n\t */\n\tpublic static readonly ELLIPSIS = new Token('...', 0);\n\n\t/**\n\t * ;\n\t */\n\tpublic static readonly SEMICOLON = new Token(';', 0);\n\n\t/**\n\t * end of source\n\t */\n\tpublic static readonly EOS = new Token('EOS', 0);\n\n\t/**\n\t * =>\n\t */\n\tpublic static readonly ARROW = new Token('=>', 0);\n\n\t/**\n\t * ___, ___, ___\n\t */\n\tpublic static readonly COMMA = new Token(',', 1);\n\tpublic static readonly ASYNC = new Token('async', 0);\n\tpublic static readonly AWAIT = new Token('await', 0);\n\tpublic static readonly BREAK = new Token('break', 0);\n\tpublic static readonly CASE = new Token('case', 0);\n\tpublic static readonly CATCH = new Token('catch', 0);\n\tpublic static readonly CLASS = new Token('class', 0);\n\tpublic static readonly CONST = new Token('const', 0);\n\tpublic static readonly CONTINUE = new Token('continue', 0);\n\tpublic static readonly DEBUGGER = new Token('debugger', 0);\n\tpublic static readonly DEFAULT = new Token('default', 0);\n\tpublic static readonly DELETE = new Token('delete', 0);\n\tpublic static readonly DO = new Token('do', 0);\n\tpublic static readonly ELSE = new Token('else', 0);\n\tpublic static readonly ENUM = new Token('enum', 0);\n\tpublic static readonly EXPORT = new Token('export', 0);\n\tpublic static readonly EXTENDS = new Token('extends', 0);\n\tpublic static readonly FALSE_LITERAL = new Token('false', 0);\n\tpublic static readonly FINALLY = new Token('finally', 0);\n\tpublic static readonly FOR = new Token('for', 0);\n\tpublic static readonly FUNCTION = new Token('function', 0);\n\tpublic static readonly GET = new Token('get', 0);\n\tpublic static readonly IF = new Token('if', 0);\n\tpublic static readonly IMPLEMENTS = new Token('implements', 0);\n\tpublic static readonly IMPORT = new Token('import', 0);\n\tpublic static readonly PRIVATE_NAME = new Token('PRIVATE_NAME', 0);\n\tpublic static readonly IN = new Token('in', 10);\n\tpublic static readonly INSTANCEOF = new Token('instanceof', 10);\n\tpublic static readonly LET = new Token('let', 0);\n\tpublic static readonly NEW = new Token('new', 0);\n\tpublic static readonly NULL_LITERAL = new Token('null', 0);\n\tpublic static readonly UNDEFINED_LITERAL = new Token('undefined', 0);\n\tpublic static readonly PACKAGE = new Token('package', 0);\n\tpublic static readonly INTERFACE = new Token('interface', 0);\n\tpublic static readonly PRIVATE = new Token('private', 0);\n\tpublic static readonly PROTECTED = new Token('protected', 0);\n\tpublic static readonly PUBLIC = new Token('public', 0);\n\tpublic static readonly RETURN = new Token('return', 0);\n\tpublic static readonly SET = new Token('set', 0);\n\tpublic static readonly STATIC = new Token('static', 0);\n\tpublic static readonly SUPER = new Token('super', 0);\n\tpublic static readonly SWITCH = new Token('switch', 0);\n\tpublic static readonly THIS = new Token('this', 0);\n\tpublic static readonly THROW = new Token('throw', 0);\n\tpublic static readonly TRUE_LITERAL = new Token('true', 0);\n\tpublic static readonly TRY = new Token('try', 0);\n\tpublic static readonly TYPEOF = new Token('typeof', 0);\n\tpublic static readonly VAR = new Token('var', 0);\n\tpublic static readonly VOID = new Token('void', 0);\n\tpublic static readonly WHILE = new Token('while', 0);\n\tpublic static readonly YIELD = new Token('yield', 0);\n\tpublic static readonly NUMBER = new Token('NUMBER', 0);\n\tpublic static readonly BIGINT = new Token('BIGINT', 0);\n\tpublic static readonly STRING = new Token('STRING', 0);\n\tpublic static readonly IDENTIFIER = new Token('IDENTIFIER', 0);\n\t/**\n\t * TEMPLATE_SPAN ::\n\t * \n\t * \t\t` LiteralChars* ${\n\t * \t\t| } LiteralChars* ${\n\t */\n\tpublic static readonly TEMPLATE_SPAN = new Token('TEMPLATE_SPAN', 0);\n\n\t/**\n\t * TEMPLATE_TAIL ::\n\t * \n\t * \t\t` LiteralChars* `\n\t * \t\t| } LiteralChar* `\n\t */\n\tpublic static readonly TEMPLATE_TAIL = new Token('TEMPLATE_TAIL', 0);\n\tpublic static readonly ILLEGAL = new Token('ILLEGAL', 0);\n\tpublic static readonly ESCAPED_KEYWORD = new Token('ESCAPED_KEYWORD', 0);\n\tpublic static readonly WHITESPACE = new Token('WHITESPACE', 0);\n\tpublic static readonly REGEXP_LITERAL = new Token('REGEXP_LITERAL', 0);\n\n\n\tpublic static isPair(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.LPAREN:\n\t\t\tcase Token.LBRACK:\n\t\t\tcase Token.LBRACE:\n\t\t\tcase Token.RBRACE:\n\t\t\tcase Token.RBRACK:\n\t\t\tcase Token.RPAREN:\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\tpublic static isOpenPair(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.LPAREN:\n\t\t\tcase Token.LBRACK:\n\t\t\tcase Token.LBRACE:\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\tpublic static isClosePair(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.RBRACE:\n\t\t\tcase Token.RBRACK:\n\t\t\tcase Token.RPAREN:\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\tpublic static openOf(token: Token): Token {\n\t\tswitch (token) {\n\t\t\tcase Token.RBRACE:\n\t\t\t\treturn Token.LBRACE;\n\t\t\tcase Token.RBRACK:\n\t\t\t\treturn Token.LBRACK;\n\t\t\tcase Token.RPAREN:\n\t\t\t\treturn Token.LPAREN;\n\t\t}\n\t\treturn token;\n\t}\n\tpublic static closeOf(token: Token): Token {\n\t\tswitch (token) {\n\t\t\tcase Token.LBRACE:\n\t\t\t\treturn Token.RBRACE;\n\t\t\tcase Token.LBRACK:\n\t\t\t\treturn Token.RBRACK;\n\t\t\tcase Token.LPAREN:\n\t\t\t\treturn Token.RPAREN;\n\t\t}\n\t\treturn token;\n\t}\n\tpublic static isAnyIdentifier(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.IDENTIFIER:\n\t\t\tcase Token.GET:\n\t\t\tcase Token.SET:\n\t\t\tcase Token.ASYNC:\n\t\t\tcase Token.AWAIT:\n\t\t\tcase Token.YIELD:\n\t\t\tcase Token.LET:\n\t\t\tcase Token.STATIC:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isIdentifier(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.IDENTIFIER:\n\t\t\tcase Token.GET:\n\t\t\tcase Token.SET:\n\t\t\tcase Token.ASYNC:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isLiteral(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.UNDEFINED_LITERAL:\n\t\t\tcase Token.NULL_LITERAL:\n\t\t\tcase Token.TRUE_LITERAL:\n\t\t\tcase Token.FALSE_LITERAL:\n\t\t\tcase Token.NUMBER:\n\t\t\tcase Token.BIGINT:\n\t\t\tcase Token.STRING:\n\t\t\tcase Token.REGEXP_LITERAL:\n\t\t\t\t// case Token.SMI:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isArrowOrAssignmentOp(token: Token) {\n\t\treturn token === Token.ARROW || this.isAssignment(token);\n\t}\n\tpublic static isAssignment(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.ASSIGN:\n\t\t\tcase Token.ADD_ASSIGN:\n\t\t\tcase Token.SUB_ASSIGN:\n\t\t\tcase Token.MUL_ASSIGN:\n\t\t\tcase Token.DIV_ASSIGN:\n\t\t\tcase Token.MOD_ASSIGN:\n\t\t\tcase Token.MODULO_ASSIGN:\n\t\t\tcase Token.EXP_ASSIGN:\n\t\t\tcase Token.BIT_XOR_ASSIGN:\n\t\t\tcase Token.BIT_AND_ASSIGN:\n\t\t\tcase Token.BIT_OR_ASSIGN:\n\t\t\tcase Token.AND_ASSIGN:\n\t\t\tcase Token.OR_ASSIGN:\n\t\t\tcase Token.NULLISH_ASSIGN:\n\t\t\tcase Token.SHL_ASSIGN:\n\t\t\tcase Token.SAR_ASSIGN:\n\t\t\tcase Token.SHR_ASSIGN:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isLogicalAssignmentOp(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.AND_ASSIGN:\n\t\t\tcase Token.OR_ASSIGN:\n\t\t\tcase Token.NULLISH_ASSIGN:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isAutoSemicolon(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.SEMICOLON:\n\t\t\tcase Token.RBRACE:\n\t\t\tcase Token.EOS:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isMember(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.TEMPLATE_SPAN:\n\t\t\tcase Token.TEMPLATE_TAIL:\n\t\t\tcase Token.PERIOD:\n\t\t\tcase Token.LBRACK:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isTemplate(token: Token): boolean {\n\t\tswitch (token) {\n\t\t\tcase Token.TEMPLATE_SPAN:\n\t\t\tcase Token.TEMPLATE_TAIL:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isNextLetKeyword(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.LBRACE:\n\t\t\tcase Token.LBRACK:\n\t\t\tcase Token.IDENTIFIER:\n\t\t\tcase Token.STATIC:\n\t\t\tcase Token.LET: // `let let;` is disallowed by static semantics, but the\n\t\t\t// token must be first interpreted as a keyword in order\n\t\t\t// for those semantics to apply. This ensures that ASI is\n\t\t\t// not honored when a LineTerminator separates the tokens.\n\t\t\tcase Token.YIELD:\n\t\t\tcase Token.AWAIT:\n\t\t\tcase Token.GET:\n\t\t\tcase Token.SET:\n\t\t\tcase Token.ASYNC:\n\t\t\t\treturn true;\n\t\t\t// case Token.FUTURE_STRICT_RESERVED_WORD:\n\t\t\t// return is_sloppy(language_mode());\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\tpublic static isInRangeIdentifierAndAsync(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.IDENTIFIER:\n\t\t\tcase Token.GET:\n\t\t\tcase Token.SET:\n\t\t\tcase Token.ASYNC:\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\tpublic static isPropertyOrCall(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.TEMPLATE_SPAN:\n\t\t\tcase Token.TEMPLATE_TAIL:\n\t\t\tcase Token.PERIOD:\n\t\t\tcase Token.LBRACK:\n\t\t\tcase Token.QUESTION_PERIOD:\n\t\t\tcase Token.LPAREN:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isPropertyName(token: Token) {\n\t\treturn /\\w/.test(token.getName());\n\t}\n\tprivate static isInRange(op: number, start: Token, end: Token) {\n\t\treturn op >= start.precedence && op <= end.precedence;\n\t}\n\tpublic static isProperty(token: number | Token) {\n\t\tif (token instanceof Token) {\n\t\t\ttoken = token.precedence;\n\t\t}\n\t\treturn Token.isInRange(token, Token.PERIOD, Token.LBRACK);\n\t}\n\tpublic static isBinary(token: number | Token) {\n\t\tif (token instanceof Token) {\n\t\t\ttoken = token.precedence;\n\t\t}\n\t\treturn Token.isInRange(token, Token.COMMA, Token.SUB);\n\t}\n\n\tpublic static isCompare(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.EQ:\n\t\t\tcase Token.EQ_STRICT:\n\t\t\tcase Token.NE:\n\t\t\tcase Token.NE_STRICT:\n\t\t\tcase Token.LT:\n\t\t\tcase Token.GT:\n\t\t\tcase Token.LTE:\n\t\t\tcase Token.GTE:\n\t\t\tcase Token.SPACESHIP:\n\t\t\tcase Token.INSTANCEOF:\n\t\t\tcase Token.IN:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isOrderedRelationalCompare(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.LT:\n\t\t\tcase Token.GT:\n\t\t\tcase Token.LTE:\n\t\t\tcase Token.GTE:\n\t\t\tcase Token.SPACESHIP:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isEquality(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.EQ:\n\t\t\tcase Token.EQ_STRICT:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static binaryOpForAssignment(token: Token) {\n\t\tif (Token.isInRange(token.precedence, Token.NULLISH_ASSIGN, Token.SUB_ASSIGN)) {\n\t\t\tconst result = token.precedence - Token.NULLISH_ASSIGN.precedence + Token.NULLISH.precedence;\n\t\t\treturn Token.isBinary(result);\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isBitOp(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.BIT_NOT:\n\t\t\tcase Token.BIT_OR:\n\t\t\tcase Token.BIT_XOR:\n\t\t\tcase Token.BIT_AND:\n\t\t\tcase Token.SHL:\n\t\t\tcase Token.SAR:\n\t\t\tcase Token.SHR:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isUnary(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.ADD:\n\t\t\tcase Token.SUB:\n\t\t\tcase Token.NOT:\n\t\t\tcase Token.BIT_NOT:\n\t\t\tcase Token.DELETE:\n\t\t\tcase Token.AWAIT:\n\t\t\tcase Token.TYPEOF:\n\t\t\tcase Token.VOID:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isCount(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.INC:\n\t\t\tcase Token.DEC:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isUnaryOrCount(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.ADD:\n\t\t\tcase Token.SUB:\n\t\t\tcase Token.INC:\n\t\t\tcase Token.DEC:\n\t\t\tcase Token.NOT:\n\t\t\tcase Token.BIT_NOT:\n\t\t\tcase Token.DELETE:\n\t\t\tcase Token.AWAIT:\n\t\t\tcase Token.TYPEOF:\n\t\t\tcase Token.VOID:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isShift(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.SHL:\n\t\t\tcase Token.SAR:\n\t\t\tcase Token.SHR:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static isStrictReservedWord(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.IMPLEMENTS:\n\t\t\tcase Token.INTERFACE:\n\t\t\tcase Token.LET:\n\t\t\tcase Token.PACKAGE:\n\t\t\tcase Token.PRIVATE:\n\t\t\tcase Token.PROTECTED:\n\t\t\tcase Token.PUBLIC:\n\t\t\tcase Token.STATIC:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isPipelineOperator(token: Token) {\n\t\tswitch (token) {\n\t\t\tcase Token.PIPELINE:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static isValidIdentifier(token: Token, mode: LanguageMode, isGenerator: boolean, disallowAwait: boolean) {\n\t\tif (Token.isInRangeIdentifierAndAsync(token)) return true;\n\t\tif (token == Token.AWAIT) return !disallowAwait;\n\t\tif (token == Token.YIELD) return !isGenerator;\n\t\treturn Token.isStrictReservedWord(token) && isSloppy(mode);\n\t}\n\n\tpublic static precedence(token: Token, acceptIN: boolean) {\n\t\tif (!acceptIN && Token.IN === token) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn token.getPrecedence();\n\t}\n\n\tconstructor(private name: string, private precedence: number) { }\n\tgetName() {\n\t\treturn this.name;\n\t}\n\tgetPrecedence() {\n\t\treturn this.precedence;\n\t}\n\tequal(token: Token) {\n\t\treturn this === token || this.name === token.name;\n\t}\n}\n\nexport class TokenExpression {\n\tconstructor(public token: Token, public value?: ExpressionNode) { }\n\tgetValue<T extends ExpressionNode>(): T {\n\t\treturn this.value! as T;\n\t}\n\tisType(type: Token) {\n\t\treturn this.token === type;\n\t}\n\tisNotType(type: Token) {\n\t\treturn this.token !== type;\n\t}\n\n\ttest(func: (token: Token, value?: ExpressionNode) => boolean): boolean {\n\t\treturn func(this.token, this.value);\n\t}\n\ttoString(): string {\n\t\treturn JSON.stringify(this);\n\t}\n}\n"]}
|
package/visit/visitor.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { ExpressionNode } from '../api/expression.js';
|
|
2
2
|
export interface VisitorControl {
|
|
3
|
+
/**
|
|
4
|
+
* terminate the traversal
|
|
5
|
+
*/
|
|
3
6
|
abort(): void;
|
|
4
7
|
}
|
|
5
8
|
export declare type VisitorCallback = (expression: ExpressionNode, type: string, control: VisitorControl) => void;
|
package/visit/visitor.js
CHANGED
|
@@ -14,14 +14,11 @@ export class ExpressionVisitor {
|
|
|
14
14
|
};
|
|
15
15
|
const visitNode = (expression) => {
|
|
16
16
|
visitorCallback(expression, this.getType(expression), control);
|
|
17
|
-
this.visitExpressionNode(expression, visitNode
|
|
18
|
-
};
|
|
19
|
-
const visitNodeList = (expressions) => {
|
|
20
|
-
expressions.forEach(visitNode);
|
|
17
|
+
this.visitExpressionNode(expression, visitNode);
|
|
21
18
|
};
|
|
22
19
|
try {
|
|
23
20
|
visitorCallback(node, this.getType(node), control);
|
|
24
|
-
this.visitExpressionNode(node, visitNode
|
|
21
|
+
this.visitExpressionNode(node, visitNode);
|
|
25
22
|
}
|
|
26
23
|
catch (abort) {
|
|
27
24
|
if (!(abort instanceof AbortException)) {
|
|
@@ -29,13 +26,13 @@ export class ExpressionVisitor {
|
|
|
29
26
|
}
|
|
30
27
|
}
|
|
31
28
|
}
|
|
32
|
-
visitExpressionNode(node, visitNode
|
|
29
|
+
visitExpressionNode(node, visitNode) {
|
|
33
30
|
const classType = expressionTypes.get(this.getType(node));
|
|
34
31
|
const visit = classType.visit;
|
|
35
32
|
if (!visit) {
|
|
36
33
|
return;
|
|
37
34
|
}
|
|
38
|
-
visit(node, visitNode
|
|
35
|
+
visit(node, visitNode);
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
38
|
export const expressionVisitor = new ExpressionVisitor();
|
package/visit/visitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../../src/expressions/visit/visitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAclE,CAAC;AAEF,MAAM,cAAe,SAAQ,KAAK;CAEjC;AAID,MAAM,OAAO,iBAAiB;IAErB,OAAO,CAAC,IAAoB;QACnC,OAAQ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../../src/expressions/visit/visitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAclE,CAAC;AAEF,MAAM,cAAe,SAAQ,KAAK;CAEjC;AAID,MAAM,OAAO,iBAAiB;IAErB,OAAO,CAAC,IAAoB;QACnC,OAAQ,IAAI,CAAC,WAAwD,CAAC,IAAI,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,IAAoB,EAAE,eAAgC;QAC3D,MAAM,OAAO,GAAmB;YAC/B,KAAK;gBACJ,MAAM,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;YACvC,CAAC;SACD,CAAC;QACF,MAAM,SAAS,GAAkB,CAAC,UAAU,EAAE,EAAE;YAC/C,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/D,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,IAAI;YACH,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAC1C;QAAC,OAAO,KAAK,EAAE;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC,EAAE;gBACvC,MAAM,KAAK,CAAC;aACZ;SACD;IACF,CAAC;IAEO,mBAAmB,CAAC,IAAoB,EAAE,SAAwB;QACzE,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE;YACX,OAAO;SACP;QACD,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxB,CAAC;CAED;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC","sourcesContent":["import { expressionTypes } from '../api/deserialize/type-store.js';\nimport { ExpressionNode, ExpressionNodConstructor, VisitNodeType } from '../api/expression.js';\n\nexport interface VisitorControl {\n\n\t/**\n\t * terminate the traversal\n\t */\n\tabort(): void;\n\n\t// /**\n\t// * indicate that the traversal need not continue any further down this subtree.\n\t// */\n\t// traverse(): void;\n};\n\nclass AbortException extends Error {\n\n}\n\nexport type VisitorCallback = (expression: ExpressionNode, type: string, control: VisitorControl) => void;\n\nexport class ExpressionVisitor {\n\n\tprivate getType(node: ExpressionNode): string {\n\t\treturn (node.constructor as ExpressionNodConstructor<ExpressionNode>).type;\n\t}\n\n\tvisit(node: ExpressionNode, visitorCallback: VisitorCallback): void {\n\t\tconst control: VisitorControl = {\n\t\t\tabort() {\n\t\t\t\tthrow new AbortException('terminate');\n\t\t\t}\n\t\t};\n\t\tconst visitNode: VisitNodeType = (expression) => {\n\t\t\tvisitorCallback(expression, this.getType(expression), control);\n\t\t\tthis.visitExpressionNode(expression, visitNode);\n\t\t};\n\t\ttry {\n\t\t\tvisitorCallback(node, this.getType(node), control);\n\t\t\tthis.visitExpressionNode(node, visitNode);\n\t\t} catch (abort) {\n\t\t\tif (!(abort instanceof AbortException)) {\n\t\t\t\tthrow abort;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate visitExpressionNode(node: ExpressionNode, visitNode: VisitNodeType): void {\n\t\tconst classType = expressionTypes.get(this.getType(node))!;\n\t\tconst visit = classType.visit;\n\t\tif (!visit) {\n\t\t\treturn;\n\t\t}\n\t\tvisit(node, visitNode);\n\t}\n\n}\n\nexport const expressionVisitor = new ExpressionVisitor();\n"]}
|
package/api/app/class.d.ts
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import type { CanDeclareExpression, ExpressionEventPath, ExpressionNode, NodeDeserializer } from '../expression.js';
|
|
2
|
-
import type { Stack } from '../../scope/stack.js';
|
|
3
|
-
import type { Scope, ScopeType } from '../../scope/scope.js';
|
|
4
|
-
import { AbstractExpressionNode } from '../abstract.js';
|
|
5
|
-
import { Identifier } from '../definition/values.js';
|
|
6
|
-
import { MemberExpression } from '../definition/member.js';
|
|
7
|
-
import { FunctionExpression } from '../definition/function.js';
|
|
8
|
-
export declare class MetaProperty extends MemberExpression {
|
|
9
|
-
private meta;
|
|
10
|
-
static NewTarget: MetaProperty;
|
|
11
|
-
static ImportMeta: MetaProperty;
|
|
12
|
-
private static getJsonName;
|
|
13
|
-
static fromJSON(node: MetaProperty, deserializer: NodeDeserializer<any>): MetaProperty;
|
|
14
|
-
constructor(meta: Identifier, property: Identifier);
|
|
15
|
-
getMeta(): Identifier;
|
|
16
|
-
shareVariables(scopeList: Scope<any>[]): void;
|
|
17
|
-
toString(): string;
|
|
18
|
-
toJson(): {
|
|
19
|
-
[key: string]: any;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
export declare class PrivateIdentifier extends Identifier {
|
|
23
|
-
private privateName;
|
|
24
|
-
static fromJSON(node: PrivateIdentifier): PrivateIdentifier;
|
|
25
|
-
constructor(privateName: string);
|
|
26
|
-
shareVariables(scopeList: Scope<any>[]): void;
|
|
27
|
-
toString(): string;
|
|
28
|
-
toJson(): {
|
|
29
|
-
[key: string]: any;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
export declare type MethodDefinitionKind = 'constructor' | 'method' | 'set' | 'get';
|
|
33
|
-
export declare class MethodDefinition extends AbstractExpressionNode implements CanDeclareExpression {
|
|
34
|
-
private kind;
|
|
35
|
-
private key;
|
|
36
|
-
private value;
|
|
37
|
-
private computed;
|
|
38
|
-
static fromJSON(node: MethodDefinition, deserializer: NodeDeserializer<any>): MethodDefinition;
|
|
39
|
-
private 'static';
|
|
40
|
-
constructor(kind: MethodDefinitionKind, key: ExpressionNode | PrivateIdentifier, value: FunctionExpression, computed: boolean, isStatic: boolean);
|
|
41
|
-
getKind(): MethodDefinitionKind;
|
|
42
|
-
getKey(): ExpressionNode | PrivateIdentifier;
|
|
43
|
-
getValue(): FunctionExpression;
|
|
44
|
-
isComputed(): boolean;
|
|
45
|
-
isStatic(): boolean;
|
|
46
|
-
shareVariables(scopeList: Scope<any>[]): void;
|
|
47
|
-
set(stack: Stack, value: any): void;
|
|
48
|
-
get(stack: Stack, thisContext?: any): void;
|
|
49
|
-
declareVariable(stack: Stack, scopeType: ScopeType, propertyValue?: any): void;
|
|
50
|
-
dependency(computed?: true): ExpressionNode[];
|
|
51
|
-
dependencyPath(computed?: true): ExpressionEventPath[];
|
|
52
|
-
toString(): string;
|
|
53
|
-
toJson(): {
|
|
54
|
-
[key: string]: any;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
export declare class PropertyDefinition extends AbstractExpressionNode implements CanDeclareExpression {
|
|
58
|
-
private key;
|
|
59
|
-
private computed;
|
|
60
|
-
private value?;
|
|
61
|
-
static fromJSON(node: PropertyDefinition, deserializer: NodeDeserializer<any>): PropertyDefinition;
|
|
62
|
-
private 'static';
|
|
63
|
-
constructor(key: ExpressionNode | PrivateIdentifier, computed: boolean, isStatic: boolean, value?: ExpressionNode | undefined);
|
|
64
|
-
getKey(): ExpressionNode | PrivateIdentifier;
|
|
65
|
-
getValue(): ExpressionNode | undefined;
|
|
66
|
-
isComputed(): boolean;
|
|
67
|
-
isStatic(): boolean;
|
|
68
|
-
shareVariables(scopeList: Scope<any>[]): void;
|
|
69
|
-
set(stack: Stack, value: any): void;
|
|
70
|
-
get(stack: Stack, thisContext?: any): void;
|
|
71
|
-
declareVariable(stack: Stack, scopeType: ScopeType, propertyValue?: any): void;
|
|
72
|
-
dependency(computed?: true): ExpressionNode[];
|
|
73
|
-
dependencyPath(computed?: true): ExpressionEventPath[];
|
|
74
|
-
toString(): string;
|
|
75
|
-
toJson(): {
|
|
76
|
-
[key: string]: any;
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
export declare class ClassBody extends AbstractExpressionNode {
|
|
80
|
-
private body;
|
|
81
|
-
static fromJSON(node: ClassBody, deserializer: NodeDeserializer<any>): ClassBody;
|
|
82
|
-
constructor(body: (MethodDefinition | PropertyDefinition)[]);
|
|
83
|
-
getBody(): (MethodDefinition | PropertyDefinition)[];
|
|
84
|
-
shareVariables(scopeList: Scope<any>[]): void;
|
|
85
|
-
set(stack: Stack, value: any): void;
|
|
86
|
-
get(stack: Stack, thisContext?: any): void;
|
|
87
|
-
dependency(computed?: true): ExpressionNode[];
|
|
88
|
-
dependencyPath(computed?: true): ExpressionEventPath[];
|
|
89
|
-
toString(): string;
|
|
90
|
-
toJson(): {
|
|
91
|
-
[key: string]: any;
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
export declare class Class extends AbstractExpressionNode {
|
|
95
|
-
protected body: ClassBody;
|
|
96
|
-
protected id?: Identifier | undefined;
|
|
97
|
-
protected superClass?: ExpressionNode | undefined;
|
|
98
|
-
constructor(body: ClassBody, id?: Identifier | undefined, superClass?: ExpressionNode | undefined);
|
|
99
|
-
getBody(): ClassBody;
|
|
100
|
-
getId(): Identifier | undefined;
|
|
101
|
-
getSuperClass(): ExpressionNode | undefined;
|
|
102
|
-
shareVariables(scopeList: Scope<any>[]): void;
|
|
103
|
-
set(stack: Stack): void;
|
|
104
|
-
get(stack: Stack): void;
|
|
105
|
-
dependency(computed?: true): ExpressionNode[];
|
|
106
|
-
dependencyPath(computed?: true): ExpressionEventPath[];
|
|
107
|
-
toString(): string;
|
|
108
|
-
toJson(): object;
|
|
109
|
-
}
|
|
110
|
-
export declare class ClassDeclaration extends Class implements CanDeclareExpression {
|
|
111
|
-
static fromJSON(node: ClassDeclaration, deserializer: NodeDeserializer<any>): ClassDeclaration;
|
|
112
|
-
protected id: Identifier;
|
|
113
|
-
declareVariable(stack: Stack, scopeType: ScopeType, propertyValue?: any): void;
|
|
114
|
-
}
|
|
115
|
-
export declare class ClassExpression extends Class {
|
|
116
|
-
static fromJSON(node: ClassExpression, deserializer: NodeDeserializer<any>): ClassExpression;
|
|
117
|
-
}
|
package/api/app/class.js
DELETED
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
var MetaProperty_1, PrivateIdentifier_1, MethodDefinition_1, PropertyDefinition_1, ClassBody_1, ClassDeclaration_1, ClassExpression_1;
|
|
2
|
-
import { __decorate, __metadata } from "tslib";
|
|
3
|
-
import { AbstractExpressionNode } from '../abstract.js';
|
|
4
|
-
import { Deserializer } from '../deserialize/deserialize.js';
|
|
5
|
-
import { Identifier } from '../definition/values.js';
|
|
6
|
-
import { MemberExpression } from '../definition/member.js';
|
|
7
|
-
import { FunctionExpression } from '../definition/function.js';
|
|
8
|
-
let MetaProperty = MetaProperty_1 = class MetaProperty extends MemberExpression {
|
|
9
|
-
constructor(meta, property) {
|
|
10
|
-
super(meta, property, false);
|
|
11
|
-
this.meta = meta;
|
|
12
|
-
}
|
|
13
|
-
static getJsonName(identifier) {
|
|
14
|
-
return Reflect.get(identifier, 'name');
|
|
15
|
-
}
|
|
16
|
-
static fromJSON(node, deserializer) {
|
|
17
|
-
if (MetaProperty_1.getJsonName(node.meta) === 'new' && MetaProperty_1.getJsonName(node.property) === 'target') {
|
|
18
|
-
return MetaProperty_1.NewTarget;
|
|
19
|
-
}
|
|
20
|
-
else if (MetaProperty_1.getJsonName(node.meta) === 'new' && MetaProperty_1.getJsonName(node.property) === 'meta') {
|
|
21
|
-
return MetaProperty_1.ImportMeta;
|
|
22
|
-
}
|
|
23
|
-
return new MetaProperty_1(deserializer(node.meta), deserializer(node.property));
|
|
24
|
-
}
|
|
25
|
-
getMeta() {
|
|
26
|
-
return this.meta;
|
|
27
|
-
}
|
|
28
|
-
shareVariables(scopeList) { }
|
|
29
|
-
toString() {
|
|
30
|
-
return `${this.meta.toString()}.${this.property.toString()}`;
|
|
31
|
-
}
|
|
32
|
-
toJson() {
|
|
33
|
-
return {
|
|
34
|
-
meta: this.meta.toJSON(),
|
|
35
|
-
property: this.property.toJSON(),
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
MetaProperty.NewTarget = new MetaProperty_1(new Identifier('new'), new Identifier('target'));
|
|
40
|
-
MetaProperty.ImportMeta = new MetaProperty_1(new Identifier('import'), new Identifier('meta'));
|
|
41
|
-
MetaProperty = MetaProperty_1 = __decorate([
|
|
42
|
-
Deserializer('MetaProperty'),
|
|
43
|
-
__metadata("design:paramtypes", [Identifier, Identifier])
|
|
44
|
-
], MetaProperty);
|
|
45
|
-
export { MetaProperty };
|
|
46
|
-
let PrivateIdentifier = PrivateIdentifier_1 = class PrivateIdentifier extends Identifier {
|
|
47
|
-
constructor(privateName) {
|
|
48
|
-
super('ɵ_' + privateName);
|
|
49
|
-
this.privateName = privateName;
|
|
50
|
-
}
|
|
51
|
-
static fromJSON(node) {
|
|
52
|
-
return new PrivateIdentifier_1(node.name);
|
|
53
|
-
}
|
|
54
|
-
shareVariables(scopeList) { }
|
|
55
|
-
toString() {
|
|
56
|
-
return `#${this.privateName}`;
|
|
57
|
-
}
|
|
58
|
-
toJson() {
|
|
59
|
-
return {
|
|
60
|
-
name: this.privateName
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
PrivateIdentifier = PrivateIdentifier_1 = __decorate([
|
|
65
|
-
Deserializer('PrivateIdentifier'),
|
|
66
|
-
__metadata("design:paramtypes", [String])
|
|
67
|
-
], PrivateIdentifier);
|
|
68
|
-
export { PrivateIdentifier };
|
|
69
|
-
let MethodDefinition = MethodDefinition_1 = class MethodDefinition extends AbstractExpressionNode {
|
|
70
|
-
constructor(kind, key, value, computed, isStatic) {
|
|
71
|
-
super();
|
|
72
|
-
this.kind = kind;
|
|
73
|
-
this.key = key;
|
|
74
|
-
this.value = value;
|
|
75
|
-
this.computed = computed;
|
|
76
|
-
this.static = isStatic;
|
|
77
|
-
}
|
|
78
|
-
static fromJSON(node, deserializer) {
|
|
79
|
-
return new MethodDefinition_1(node.kind, deserializer(node.key), deserializer(node.value), node.computed, node.static);
|
|
80
|
-
}
|
|
81
|
-
getKind() {
|
|
82
|
-
return this.kind;
|
|
83
|
-
}
|
|
84
|
-
getKey() {
|
|
85
|
-
return this.key;
|
|
86
|
-
}
|
|
87
|
-
getValue() {
|
|
88
|
-
return this.value;
|
|
89
|
-
}
|
|
90
|
-
isComputed() {
|
|
91
|
-
return this.computed;
|
|
92
|
-
}
|
|
93
|
-
isStatic() {
|
|
94
|
-
return this.static;
|
|
95
|
-
}
|
|
96
|
-
shareVariables(scopeList) { }
|
|
97
|
-
set(stack, value) {
|
|
98
|
-
throw new Error('Method not implemented.');
|
|
99
|
-
}
|
|
100
|
-
get(stack, thisContext) {
|
|
101
|
-
throw new Error('Method not implemented.');
|
|
102
|
-
}
|
|
103
|
-
declareVariable(stack, scopeType, propertyValue) {
|
|
104
|
-
throw new Error('Method not implemented.');
|
|
105
|
-
}
|
|
106
|
-
dependency(computed) {
|
|
107
|
-
throw new Error('Method not implemented.');
|
|
108
|
-
}
|
|
109
|
-
dependencyPath(computed) {
|
|
110
|
-
throw new Error('Method not implemented.');
|
|
111
|
-
}
|
|
112
|
-
toString() {
|
|
113
|
-
throw new Error('Method not implemented.');
|
|
114
|
-
}
|
|
115
|
-
toJson() {
|
|
116
|
-
return {
|
|
117
|
-
kind: this.kind,
|
|
118
|
-
key: this.key,
|
|
119
|
-
value: this.value,
|
|
120
|
-
computed: this.computed,
|
|
121
|
-
static: this.static,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
MethodDefinition = MethodDefinition_1 = __decorate([
|
|
126
|
-
Deserializer('MethodDefinition'),
|
|
127
|
-
__metadata("design:paramtypes", [String, Object, FunctionExpression, Boolean, Boolean])
|
|
128
|
-
], MethodDefinition);
|
|
129
|
-
export { MethodDefinition };
|
|
130
|
-
let PropertyDefinition = PropertyDefinition_1 = class PropertyDefinition extends AbstractExpressionNode {
|
|
131
|
-
constructor(key, computed, isStatic, value) {
|
|
132
|
-
super();
|
|
133
|
-
this.key = key;
|
|
134
|
-
this.computed = computed;
|
|
135
|
-
this.value = value;
|
|
136
|
-
this.static = isStatic;
|
|
137
|
-
}
|
|
138
|
-
static fromJSON(node, deserializer) {
|
|
139
|
-
return new PropertyDefinition_1(deserializer(node.key), node.computed, node.static, node.value && deserializer(node.value));
|
|
140
|
-
}
|
|
141
|
-
getKey() {
|
|
142
|
-
return this.key;
|
|
143
|
-
}
|
|
144
|
-
getValue() {
|
|
145
|
-
return this.value;
|
|
146
|
-
}
|
|
147
|
-
isComputed() {
|
|
148
|
-
return this.computed;
|
|
149
|
-
}
|
|
150
|
-
isStatic() {
|
|
151
|
-
return this.static;
|
|
152
|
-
}
|
|
153
|
-
shareVariables(scopeList) { }
|
|
154
|
-
set(stack, value) {
|
|
155
|
-
throw new Error('Method not implemented.');
|
|
156
|
-
}
|
|
157
|
-
get(stack, thisContext) {
|
|
158
|
-
throw new Error('Method not implemented.');
|
|
159
|
-
}
|
|
160
|
-
declareVariable(stack, scopeType, propertyValue) {
|
|
161
|
-
throw new Error('Method not implemented.');
|
|
162
|
-
}
|
|
163
|
-
dependency(computed) {
|
|
164
|
-
throw new Error('Method not implemented.');
|
|
165
|
-
}
|
|
166
|
-
dependencyPath(computed) {
|
|
167
|
-
throw new Error('Method not implemented.');
|
|
168
|
-
}
|
|
169
|
-
toString() {
|
|
170
|
-
throw new Error('Method not implemented.');
|
|
171
|
-
}
|
|
172
|
-
toJson() {
|
|
173
|
-
return {
|
|
174
|
-
key: this.key.toJSON(),
|
|
175
|
-
computed: this.computed,
|
|
176
|
-
static: this.static,
|
|
177
|
-
value: this.value?.toJSON()
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
PropertyDefinition = PropertyDefinition_1 = __decorate([
|
|
182
|
-
Deserializer('PropertyDefinition'),
|
|
183
|
-
__metadata("design:paramtypes", [Object, Boolean, Boolean, Object])
|
|
184
|
-
], PropertyDefinition);
|
|
185
|
-
export { PropertyDefinition };
|
|
186
|
-
let ClassBody = ClassBody_1 = class ClassBody extends AbstractExpressionNode {
|
|
187
|
-
constructor(body) {
|
|
188
|
-
super();
|
|
189
|
-
this.body = body;
|
|
190
|
-
}
|
|
191
|
-
static fromJSON(node, deserializer) {
|
|
192
|
-
return new ClassBody_1(node.body.map(deserializer));
|
|
193
|
-
}
|
|
194
|
-
getBody() {
|
|
195
|
-
return this.body;
|
|
196
|
-
}
|
|
197
|
-
shareVariables(scopeList) { }
|
|
198
|
-
set(stack, value) {
|
|
199
|
-
throw new Error('Method not implemented.');
|
|
200
|
-
}
|
|
201
|
-
get(stack, thisContext) {
|
|
202
|
-
throw new Error('Method not implemented.');
|
|
203
|
-
}
|
|
204
|
-
dependency(computed) {
|
|
205
|
-
throw new Error('Method not implemented.');
|
|
206
|
-
}
|
|
207
|
-
dependencyPath(computed) {
|
|
208
|
-
throw new Error('Method not implemented.');
|
|
209
|
-
}
|
|
210
|
-
toString() {
|
|
211
|
-
throw new Error('Method not implemented.');
|
|
212
|
-
}
|
|
213
|
-
toJson() {
|
|
214
|
-
return {
|
|
215
|
-
body: this.body.map(method => method.toJSON())
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
};
|
|
219
|
-
ClassBody = ClassBody_1 = __decorate([
|
|
220
|
-
Deserializer('ClassBody'),
|
|
221
|
-
__metadata("design:paramtypes", [Array])
|
|
222
|
-
], ClassBody);
|
|
223
|
-
export { ClassBody };
|
|
224
|
-
export class Class extends AbstractExpressionNode {
|
|
225
|
-
constructor(body, id, superClass) {
|
|
226
|
-
super();
|
|
227
|
-
this.body = body;
|
|
228
|
-
this.id = id;
|
|
229
|
-
this.superClass = superClass;
|
|
230
|
-
}
|
|
231
|
-
getBody() {
|
|
232
|
-
return this.body;
|
|
233
|
-
}
|
|
234
|
-
getId() {
|
|
235
|
-
return this.id;
|
|
236
|
-
}
|
|
237
|
-
getSuperClass() {
|
|
238
|
-
return this.superClass;
|
|
239
|
-
}
|
|
240
|
-
shareVariables(scopeList) { }
|
|
241
|
-
set(stack) {
|
|
242
|
-
throw new Error(`Class.#set() has no implementation.`);
|
|
243
|
-
}
|
|
244
|
-
get(stack) {
|
|
245
|
-
throw new Error(`Class.#get() has no implementation.`);
|
|
246
|
-
}
|
|
247
|
-
dependency(computed) {
|
|
248
|
-
throw new Error('Method not implemented.');
|
|
249
|
-
}
|
|
250
|
-
dependencyPath(computed) {
|
|
251
|
-
throw new Error('Method not implemented.');
|
|
252
|
-
}
|
|
253
|
-
toString() {
|
|
254
|
-
let classDeclaration = 'class ';
|
|
255
|
-
if (this.id) {
|
|
256
|
-
classDeclaration += this.id.toString();
|
|
257
|
-
}
|
|
258
|
-
if (this.superClass) {
|
|
259
|
-
classDeclaration += ' extends ' + this.superClass.toString();
|
|
260
|
-
}
|
|
261
|
-
return `${classDeclaration} {${this.body.toString()}\n`;
|
|
262
|
-
}
|
|
263
|
-
toJson() {
|
|
264
|
-
return {
|
|
265
|
-
body: this.body.toJSON(),
|
|
266
|
-
id: this.id?.toJSON(),
|
|
267
|
-
superClass: this.superClass?.toJSON(),
|
|
268
|
-
};
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
let ClassDeclaration = ClassDeclaration_1 = class ClassDeclaration extends Class {
|
|
272
|
-
static fromJSON(node, deserializer) {
|
|
273
|
-
return new ClassDeclaration_1(deserializer(node.body), deserializer(node.id), node.superClass && deserializer(node.superClass));
|
|
274
|
-
}
|
|
275
|
-
declareVariable(stack, scopeType, propertyValue) {
|
|
276
|
-
stack.declareVariable(scopeType, this.id.getName(), propertyValue);
|
|
277
|
-
}
|
|
278
|
-
};
|
|
279
|
-
ClassDeclaration = ClassDeclaration_1 = __decorate([
|
|
280
|
-
Deserializer('ClassDeclaration')
|
|
281
|
-
], ClassDeclaration);
|
|
282
|
-
export { ClassDeclaration };
|
|
283
|
-
let ClassExpression = ClassExpression_1 = class ClassExpression extends Class {
|
|
284
|
-
static fromJSON(node, deserializer) {
|
|
285
|
-
return new ClassExpression_1(deserializer(node.body), node.id && deserializer(node.id), node.superClass && deserializer(node.superClass));
|
|
286
|
-
}
|
|
287
|
-
};
|
|
288
|
-
ClassExpression = ClassExpression_1 = __decorate([
|
|
289
|
-
Deserializer('ClassExpression')
|
|
290
|
-
], ClassExpression);
|
|
291
|
-
export { ClassExpression };
|
|
292
|
-
//# sourceMappingURL=class.js.map
|