@ibyar/expressions 1.0.0 → 1.2.0
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/README.md +48 -1
- package/api/abstract.js.map +1 -1
- package/api/class/class.js +143 -93
- package/api/class/class.js.map +1 -1
- package/api/class/decorator.js +8 -3
- package/api/class/decorator.js.map +1 -1
- package/api/computing/call.js +8 -3
- package/api/computing/call.js.map +1 -1
- package/api/computing/debugger.js +8 -3
- package/api/computing/debugger.js.map +1 -1
- package/api/computing/new.js +8 -3
- package/api/computing/new.js.map +1 -1
- package/api/computing/rest.js +8 -3
- package/api/computing/rest.js.map +1 -1
- package/api/computing/return.js +8 -3
- package/api/computing/return.js.map +1 -1
- package/api/computing/spread.js +8 -3
- package/api/computing/spread.js.map +1 -1
- package/api/computing/throw.js +38 -23
- package/api/computing/throw.js.map +1 -1
- package/api/computing/yield.js +8 -3
- package/api/computing/yield.js.map +1 -1
- package/api/definition/array.js +23 -13
- package/api/definition/array.js.map +1 -1
- package/api/definition/bind.js +8 -3
- package/api/definition/bind.js.map +1 -1
- package/api/definition/comment.js +8 -3
- package/api/definition/comment.js.map +1 -1
- package/api/definition/function.js +53 -33
- package/api/definition/function.js.map +1 -1
- package/api/definition/member.js +8 -3
- package/api/definition/member.js.map +1 -1
- package/api/definition/object.js +38 -23
- package/api/definition/object.js.map +1 -1
- package/api/definition/statement.js +8 -3
- package/api/definition/statement.js.map +1 -1
- package/api/definition/values.js +68 -43
- package/api/definition/values.js.map +1 -1
- package/api/deserialize/deserialize.js.map +1 -1
- package/api/expression.d.ts +3 -0
- package/api/expression.d.ts.map +1 -1
- package/api/expression.js.map +1 -1
- package/api/module/common.js +8 -3
- package/api/module/common.js.map +1 -1
- package/api/module/export.js +53 -33
- package/api/module/export.js.map +1 -1
- package/api/module/import.js +68 -43
- package/api/module/import.js.map +1 -1
- package/api/operators/assignment.js +6 -2
- package/api/operators/assignment.js.map +1 -1
- package/api/operators/await.js +8 -3
- package/api/operators/await.js.map +1 -1
- package/api/operators/binary.js +6 -2
- package/api/operators/binary.js.map +1 -1
- package/api/operators/chaining.js +8 -3
- package/api/operators/chaining.js.map +1 -1
- package/api/operators/comma.js +8 -3
- package/api/operators/comma.js.map +1 -1
- package/api/operators/grouping.js +8 -3
- package/api/operators/grouping.js.map +1 -1
- package/api/operators/logical.js +6 -2
- package/api/operators/logical.js.map +1 -1
- package/api/operators/pipeline.js +8 -3
- package/api/operators/pipeline.js.map +1 -1
- package/api/operators/ternary.js +8 -3
- package/api/operators/ternary.js.map +1 -1
- package/api/operators/unary.js +6 -2
- package/api/operators/unary.js.map +1 -1
- package/api/operators/update.js +6 -2
- package/api/operators/update.js.map +1 -1
- package/api/program.js +8 -3
- package/api/program.js.map +1 -1
- package/api/statement/control/block.js +8 -3
- package/api/statement/control/block.js.map +1 -1
- package/api/statement/control/empty.js +8 -3
- package/api/statement/control/empty.js.map +1 -1
- package/api/statement/control/if.js +8 -3
- package/api/statement/control/if.js.map +1 -1
- package/api/statement/control/switch.js +38 -23
- package/api/statement/control/switch.js.map +1 -1
- package/api/statement/control/terminate.js +38 -23
- package/api/statement/control/terminate.js.map +1 -1
- package/api/statement/control/with.js +8 -3
- package/api/statement/control/with.js.map +1 -1
- package/api/statement/declarations/declares.js +23 -13
- package/api/statement/declarations/declares.js.map +1 -1
- package/api/statement/iterations/for.js +53 -33
- package/api/statement/iterations/for.js.map +1 -1
- package/api/statement/iterations/while.js +23 -13
- package/api/statement/iterations/while.js.map +1 -1
- package/bin/cli.d.ts +3 -0
- package/bin/cli.d.ts.map +1 -0
- package/bin/cli.js +73 -0
- package/bin/cli.js.map +1 -0
- package/package.json +8 -5
- package/scope/builder.d.ts +27 -0
- package/scope/builder.d.ts.map +1 -0
- package/scope/builder.js +73 -0
- package/scope/builder.js.map +1 -0
- package/scope/event.js.map +1 -1
- package/scope/finalizer.js.map +1 -1
- package/scope/index.d.ts +1 -0
- package/scope/index.d.ts.map +1 -1
- package/scope/index.js +1 -0
- package/scope/index.js.map +1 -1
- package/scope/pool.js.map +1 -1
- package/scope/proxy.js.map +1 -1
- package/scope/scope.d.ts.map +1 -1
- package/scope/scope.js +4 -3
- package/scope/scope.js.map +1 -1
- package/scope/signal.d.ts +75 -0
- package/scope/signal.d.ts.map +1 -0
- package/scope/signal.js +226 -0
- package/scope/signal.js.map +1 -0
- package/scope/stack.d.ts +1 -1
- package/scope/stack.d.ts.map +1 -1
- package/scope/stack.js +1 -1
- package/scope/stack.js.map +1 -1
- package/scope/variable.d.ts +1 -0
- package/scope/variable.d.ts.map +1 -0
- package/scope/variable.js +2 -0
- package/scope/variable.js.map +1 -0
- package/scope/variables.d.ts +66 -0
- package/scope/variables.d.ts.map +1 -0
- package/scope/variables.js +214 -0
- package/scope/variables.js.map +1 -0
- package/v8/enums.d.ts +5 -5
- package/v8/enums.d.ts.map +1 -1
- package/v8/enums.js +2 -4
- package/v8/enums.js.map +1 -1
- package/v8/factory.js.map +1 -1
- package/v8/inline.js.map +1 -1
- package/v8/parser.js.map +1 -1
- package/v8/stream.js +1 -2
- package/v8/stream.js.map +1 -1
- package/v8/token.js +1 -2
- package/v8/token.js.map +1 -1
- package/visit/visitor.js.map +1 -1
- package/v8/nodes.d.ts +0 -0
- package/v8/nodes.js +0 -2
- package/v8/nodes.js.map +0 -1
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { AbstractExpressionNode } from '../abstract.js';
|
|
3
3
|
import { Deserializer } from '../deserialize/deserialize.js';
|
|
4
|
-
|
|
4
|
+
let ChainExpression = (() => {
|
|
5
5
|
let _classDecorators = [Deserializer('ChainExpression')];
|
|
6
6
|
let _classDescriptor;
|
|
7
7
|
let _classExtraInitializers = [];
|
|
8
8
|
let _classThis;
|
|
9
|
-
|
|
9
|
+
let _classSuper = AbstractExpressionNode;
|
|
10
|
+
var ChainExpression = class extends _classSuper {
|
|
11
|
+
static { _classThis = this; }
|
|
10
12
|
static {
|
|
11
|
-
|
|
13
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
14
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
12
15
|
ChainExpression = _classThis = _classDescriptor.value;
|
|
16
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
13
17
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
14
18
|
}
|
|
15
19
|
expression;
|
|
@@ -52,4 +56,5 @@ export let ChainExpression = (() => {
|
|
|
52
56
|
};
|
|
53
57
|
return ChainExpression = _classThis;
|
|
54
58
|
})();
|
|
59
|
+
export { ChainExpression };
|
|
55
60
|
//# sourceMappingURL=chaining.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chaining.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/chaining.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"chaining.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/chaining.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAGhD,eAAe;4BAD3B,YAAY,CAAC,iBAAiB,CAAC;;;;sBACK,sBAAsB;+BAA9B,SAAQ,WAAsB;;;;YAA3D,6KA6CC;;;YA7CY,uDAAe;;QAYlB,UAAU;QAXnB,MAAM,CAAC,QAAQ,CAAC,IAAqB,EAAE,YAA8B;YACpE,OAAO,IAAI,eAAe,CACzB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAqB,EAAE,SAAwB;YAC3D,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QACD,YACS,UAA0B,EAClC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAHV,eAAU,GAAV,UAAU,CAAgB;QAInC,CAAC;QACD,aAAa;YACZ,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACjE,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,WAAiB;YAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC;QAGD,SAAS,CAAmB,KAAY,EAAE,WAAwB;YACjE,OAAQ,IAAI,CAAC,UAA4C,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACzF,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACnC,CAAC;QACD,MAAM;YACL,OAAO;gBACN,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;aACpC,CAAC;QACH,CAAC;;;;SA5CW,eAAe","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, CanFindScope,\n\tExpressionEventPath, VisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Scope } from '../../scope/scope.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('ChainExpression')\nexport class ChainExpression extends AbstractExpressionNode implements CanFindScope {\n\tstatic fromJSON(node: ChainExpression, deserializer: NodeDeserializer): ChainExpression {\n\t\treturn new ChainExpression(\n\t\t\tdeserializer(node.expression),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ChainExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.expression);\n\t}\n\tconstructor(\n\t\tprivate expression: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetExpression() {\n\t\treturn this.expression;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ChainExpression.#set() has no implementation.`)\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\treturn this.expression.get(stack, thisContext);\n\t}\n\tfindScope<T extends object>(stack: Stack): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, scope: Scope<any>): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, objectScope?: Scope<any>): Scope<T> | undefined {\n\t\treturn (this.expression as ExpressionNode & CanFindScope).findScope(stack, objectScope);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.expression.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.expression.dependencyPath(computed);\n\t}\n\ttoString() {\n\t\treturn this.expression.toString();\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\texpression: this.expression.toJSON(),\n\t\t};\n\t}\n}\n"]}
|
package/api/operators/comma.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { AbstractExpressionNode } from '../abstract.js';
|
|
3
3
|
import { Deserializer } from '../deserialize/deserialize.js';
|
|
4
|
-
|
|
4
|
+
let SequenceExpression = (() => {
|
|
5
5
|
let _classDecorators = [Deserializer('SequenceExpression')];
|
|
6
6
|
let _classDescriptor;
|
|
7
7
|
let _classExtraInitializers = [];
|
|
8
8
|
let _classThis;
|
|
9
|
-
|
|
9
|
+
let _classSuper = AbstractExpressionNode;
|
|
10
|
+
var SequenceExpression = class extends _classSuper {
|
|
11
|
+
static { _classThis = this; }
|
|
10
12
|
static {
|
|
11
|
-
|
|
13
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
14
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
12
15
|
SequenceExpression = _classThis = _classDescriptor.value;
|
|
16
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
13
17
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
14
18
|
}
|
|
15
19
|
expressions;
|
|
@@ -49,4 +53,5 @@ export let SequenceExpression = (() => {
|
|
|
49
53
|
};
|
|
50
54
|
return SequenceExpression = _classThis;
|
|
51
55
|
})();
|
|
56
|
+
export { SequenceExpression };
|
|
52
57
|
//# sourceMappingURL=comma.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comma.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/comma.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"comma.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/comma.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAGhD,kBAAkB;4BAD9B,YAAY,CAAC,oBAAoB,CAAC;;;;sBACK,sBAAsB;kCAA9B,SAAQ,WAAsB;;;;YAA9D,6KAwCC;;;YAxCY,uDAAkB;;QAYrB,WAAW;QAXpB,MAAM,CAAC,QAAQ,CAAC,IAAwB,EAAE,YAA8B;YACvE,OAAO,IAAI,kBAAkB,CAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAClC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAwB,EAAE,SAAwB;YAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QACD,YACS,WAA6B,EACrC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAHV,gBAAW,GAAX,WAAW,CAAkB;QAItC,CAAC;QACD,cAAc;YACb,OAAO,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACrE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5D,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM;YACL,OAAO;gBACN,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aACpE,CAAC;QACH,CAAC;;;;SAvCW,kBAAkB","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('SequenceExpression')\nexport class SequenceExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: SequenceExpression, deserializer: NodeDeserializer): SequenceExpression {\n\t\treturn new SequenceExpression(\n\t\t\tnode.expressions.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: SequenceExpression, visitNode: VisitNodeType): void {\n\t\tnode.expressions.forEach(visitNode);\n\t}\n\tconstructor(\n\t\tprivate expressions: ExpressionNode[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetExpressions() {\n\t\treturn this.expressions;\n\t}\n\tset(stack: Stack) {\n\t\tthrow new Error(`SequenceExpression.#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\treturn this.expressions.map(expr => expr.get(stack)).pop();\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.expressions.flatMap(exp => exp.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.expressions.flatMap(expression => expression.dependencyPath(computed));\n\t}\n\ttoString() {\n\t\treturn this.expressions.map(key => key.toString()).join(', ');\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\texpressions: this.expressions.map(expression => expression.toJSON())\n\t\t};\n\t}\n}\n"]}
|
|
@@ -8,15 +8,19 @@ import { Deserializer } from '../deserialize/deserialize.js';
|
|
|
8
8
|
* before an expression with higher priority.
|
|
9
9
|
* As it sounds, it groups what's inside of the parentheses.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
let GroupingExpression = (() => {
|
|
12
12
|
let _classDecorators = [Deserializer('GroupingExpression')];
|
|
13
13
|
let _classDescriptor;
|
|
14
14
|
let _classExtraInitializers = [];
|
|
15
15
|
let _classThis;
|
|
16
|
-
|
|
16
|
+
let _classSuper = AbstractExpressionNode;
|
|
17
|
+
var GroupingExpression = class extends _classSuper {
|
|
18
|
+
static { _classThis = this; }
|
|
17
19
|
static {
|
|
18
|
-
|
|
20
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
21
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
19
22
|
GroupingExpression = _classThis = _classDescriptor.value;
|
|
23
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
20
24
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
21
25
|
}
|
|
22
26
|
node;
|
|
@@ -54,4 +58,5 @@ export let GroupingExpression = (() => {
|
|
|
54
58
|
};
|
|
55
59
|
return GroupingExpression = _classThis;
|
|
56
60
|
})();
|
|
61
|
+
export { GroupingExpression };
|
|
57
62
|
//# sourceMappingURL=grouping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/grouping.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/grouping.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;;;GAMG;IAEU,kBAAkB;4BAD9B,YAAY,CAAC,oBAAoB,CAAC;;;;sBACK,sBAAsB;kCAA9B,SAAQ,WAAsB;;;;YAA9D,6KAsCC;;;YAtCY,uDAAkB;;QAYrB,IAAI;QAXb,MAAM,CAAC,QAAQ,CAAC,IAAwB,EAAE,YAA8B;YACvE,OAAO,IAAI,kBAAkB,CAC5B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAwB,EAAE,SAAwB;YAC9D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,YACS,IAAoB,EAC5B,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAHV,SAAI,GAAJ,IAAI,CAAgB;QAI7B,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,GAAG,CAAC,KAAY;YACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;QACpC,CAAC;QACD,MAAM;YACL,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACrC,CAAC;;;;SArCW,kBAAkB","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n/**\n * The grouping operator consists of a pair of parentheses around\n * an expression or sub-expression to override the normal operator\n * precedence so that expressions with lower precedence can be evaluated\n * before an expression with higher priority.\n * As it sounds, it groups what's inside of the parentheses.\n */\n@Deserializer('GroupingExpression')\nexport class GroupingExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: GroupingExpression, deserializer: NodeDeserializer): GroupingExpression {\n\t\treturn new GroupingExpression(\n\t\t\tdeserializer(node.node),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: GroupingExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.node);\n\t}\n\tconstructor(\n\t\tprivate node: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetNode() {\n\t\treturn this.node;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthis.node.set(stack, value);\n\t}\n\tget(stack: Stack,) {\n\t\treturn this.node.get(stack);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.node.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.node.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `(${this.node.toString()})`;\n\t}\n\ttoJson(): object {\n\t\treturn { node: this.node.toJSON() };\n\t}\n}\n"]}
|
package/api/operators/logical.js
CHANGED
|
@@ -6,10 +6,14 @@ let LogicalExpression = (() => {
|
|
|
6
6
|
let _classDescriptor;
|
|
7
7
|
let _classExtraInitializers = [];
|
|
8
8
|
let _classThis;
|
|
9
|
-
|
|
9
|
+
let _classSuper = InfixExpressionNode;
|
|
10
|
+
var LogicalExpression = class extends _classSuper {
|
|
11
|
+
static { _classThis = this; }
|
|
10
12
|
static {
|
|
11
|
-
|
|
13
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
14
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
12
15
|
LogicalExpression = _classThis = _classDescriptor.value;
|
|
16
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
13
17
|
}
|
|
14
18
|
static fromJSON(node, deserializer) {
|
|
15
19
|
return new LogicalExpression(node.operator, deserializer(node.left), deserializer(node.right), node.range, node.loc);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logical.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/logical.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAKhD,iBAAiB;4BAD7B,YAAY,CAAC,mBAAmB,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"logical.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/logical.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAKhD,iBAAiB;4BAD7B,YAAY,CAAC,mBAAmB,CAAC;;;;sBACK,mBAAmB;iCAA3B,SAAQ,WAAoC;;;;YAA3E,6KA4CC;;;;QA3CA,MAAM,CAAC,QAAQ,CAAC,IAAuB,EAAE,YAA8B;YACtE,OAAO,IAAI,iBAAiB,CAC3B,IAAI,CAAC,QAAQ,EACb,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAuB,EAAE,SAAwB;YAC7D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,WAAW,GAAqE;YAEtF,IAAI,EAAE,CAAC,GAAsB,EAAE,OAAY,EAAE,EAAE;gBAC9C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,KAAK,EAAE,CAAC;oBACX,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,KAAK,CAAC;YACd,CAAC;YAED,IAAI,EAAE,CAAC,GAAsB,EAAE,OAAY,EAAE,EAAE;gBAC9C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACZ,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,KAAK,CAAC;YACd,CAAC;YAED,IAAI,EAAE,CAAC,GAAsB,EAAE,OAAY,EAAE,EAAE;gBAC9C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC3C,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,KAAK,CAAC;YACd,CAAC;SAED,CAAC;QACF,GAAG,CAAC,OAAe;YAClB,OAAO,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;;YA3CW,uDAAiB;;;;;SAAjB,iBAAiB","sourcesContent":["import type { NodeDeserializer, VisitNodeType } from '../expression.js';\nimport { InfixExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\nexport type LogicalOperator = '||' | '&&' | '??';\n\n@Deserializer('LogicalExpression')\nexport class LogicalExpression extends InfixExpressionNode<LogicalOperator> {\n\tstatic fromJSON(node: LogicalExpression, deserializer: NodeDeserializer): LogicalExpression {\n\t\treturn new LogicalExpression(\n\t\t\tnode.operator,\n\t\t\tdeserializer(node.left),\n\t\t\tdeserializer(node.right),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: LogicalExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t}\n\tstatic Evaluations: { [key: string]: (exp: LogicalExpression, context: any) => any } = {\n\n\t\t'&&': (exp: LogicalExpression, context: any) => {\n\t\t\tlet value = exp.left.get(context);\n\t\t\tif (value) {\n\t\t\t\tvalue = exp.right.get(context);\n\t\t\t}\n\t\t\treturn value;\n\t\t},\n\n\t\t'||': (exp: LogicalExpression, context: any) => {\n\t\t\tlet value = exp.left.get(context);\n\t\t\tif (!value) {\n\t\t\t\tvalue = exp.right.get(context);\n\t\t\t}\n\t\t\treturn value;\n\t\t},\n\n\t\t'??': (exp: LogicalExpression, context: any) => {\n\t\t\tlet value = exp.left.get(context);\n\t\t\tif (value === undefined || value === null) {\n\t\t\t\tvalue = exp.right.get(context);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\n\t};\n\tget(context: object) {\n\t\treturn LogicalExpression.Evaluations[this.operator](this, context);\n\t}\n}\n"]}
|
|
@@ -15,15 +15,19 @@ import { MemberExpression } from '../definition/member.js';
|
|
|
15
15
|
* param |> func(arg1, ?, arg3)
|
|
16
16
|
* param |> func(arg1, ?, arg3, arg4, ?, arg6)
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
let PipelineExpression = (() => {
|
|
19
19
|
let _classDecorators = [Deserializer('PipelineExpression')];
|
|
20
20
|
let _classDescriptor;
|
|
21
21
|
let _classExtraInitializers = [];
|
|
22
22
|
let _classThis;
|
|
23
|
-
|
|
23
|
+
let _classSuper = AbstractExpressionNode;
|
|
24
|
+
var PipelineExpression = class extends _classSuper {
|
|
25
|
+
static { _classThis = this; }
|
|
24
26
|
static {
|
|
25
|
-
|
|
27
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
28
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
26
29
|
PipelineExpression = _classThis = _classDescriptor.value;
|
|
30
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
27
31
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
28
32
|
}
|
|
29
33
|
left;
|
|
@@ -112,4 +116,5 @@ export let PipelineExpression = (() => {
|
|
|
112
116
|
};
|
|
113
117
|
return PipelineExpression = _classThis;
|
|
114
118
|
})();
|
|
119
|
+
export { PipelineExpression };
|
|
115
120
|
//# sourceMappingURL=pipeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/pipeline.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/pipeline.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;;;;GAWG;IAEU,kBAAkB;4BAD9B,YAAY,CAAC,oBAAoB,CAAC;;;;sBACK,sBAAsB;kCAA9B,SAAQ,WAAsB;;;;YAA9D,6KA8FC;;;YA9FY,uDAAkB;;QAiBrB,IAAI;QACJ,KAAK;QAjBd,MAAM,CAAC,QAAQ,CAAC,IAAwB,EAAE,YAA8B;YACvE,OAAO,IAAI,kBAAkB,CAC5B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAC5E,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAwB,EAAE,SAAwB;YAC9D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,CAAC;QACO,SAAS,CAAoC;QACrD,YACS,IAAoB,EACpB,KAAqB,EAC7B,SAA4C,EAAE,EAC9C,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YALV,SAAI,GAAJ,IAAI,CAAgB;YACpB,UAAK,GAAL,KAAK,CAAgB;YAK7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QACD,YAAY;YACX,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC9D,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,UAAU,GAAU,EAAE,CAAC;YAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;oBACjB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC5B,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;qBAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;oBAC3B,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;oBAC/B,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACP,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;wBAClC,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;wBACvD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACf,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACP,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjC,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAa,CAAC;YACtD,IAAI,IAAI,CAAC,KAAK,YAAY,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAClD,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,WAAW,CAAC,GAAG,UAAU,CAAC,CAAC;QACnC,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;iBACpC,MAAM,CACN,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,CAAsB;iBACjF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAW,CAAC,QAAQ,CAAC,CAAC,CAC/C,CAAC;QACJ,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;iBACxC,MAAM,CACN,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EACjC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,CAAsB;iBACjF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAe,CAAC,QAAQ,CAAC,CAAC,CACnD,CAAC;QACJ,CAAC;QACD,QAAQ;YACP,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7H,CAAC;QACD,MAAM;YACL,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC1B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;aAClF,CAAC;QACH,CAAC;;;;SA7FW,kBAAkB","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { SpreadElement } from '../computing/spread.js';\nimport { MemberExpression } from '../definition/member.js';\n\n/**\n * pipeline ('|>') operator support syntax:\n * param |> func\n * param |> func:arg1:arg2:arg3\n * param |> func:arg1:?:arg3\n * param |> func:arg1:?:arg3:?:arg5\n * param |> func:arg1:...?:arg3\n * \n * param |> func(arg1, arg2, arg3)\n * param |> func(arg1, ?, arg3)\n * param |> func(arg1, ?, arg3, arg4, ?, arg6)\n */\n@Deserializer('PipelineExpression')\nexport class PipelineExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: PipelineExpression, deserializer: NodeDeserializer): PipelineExpression {\n\t\treturn new PipelineExpression(\n\t\t\tdeserializer(node.left),\n\t\t\tdeserializer(node.right),\n\t\t\tnode.arguments.map(arg => typeof arg === 'string' ? arg : deserializer(arg)),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: PipelineExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t\tnode.arguments.forEach(arg => typeof arg == 'object' && visitNode(arg));\n\t}\n\tprivate arguments: (ExpressionNode | '?' | '...?')[];\n\tconstructor(\n\t\tprivate left: ExpressionNode,\n\t\tprivate right: ExpressionNode,\n\t\tparams: (ExpressionNode | '?' | '...?')[] = [],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t\tthis.arguments = params;\n\t}\n\tgetLeft() {\n\t\treturn this.left;\n\t}\n\tgetRight() {\n\t\treturn this.right;\n\t}\n\tgetArguments() {\n\t\treturn this.arguments;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`PipelineNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst paramValue = this.left.get(stack);\n\t\tconst parameters: any[] = [];\n\t\tlet indexed = false;\n\t\tfor (const arg of this.arguments) {\n\t\t\tif (arg === '?') {\n\t\t\t\tparameters.push(paramValue);\n\t\t\t\tindexed = true;\n\t\t\t} else if (arg === '...?') {\n\t\t\t\tparameters.push(...paramValue);\n\t\t\t\tindexed = true;\n\t\t\t} else {\n\t\t\t\tif (arg instanceof SpreadElement) {\n\t\t\t\t\tconst paramScope = stack.pushBlockScopeFor(parameters);\n\t\t\t\t\targ.get(stack);\n\t\t\t\t\tstack.clearTo(paramScope);\n\t\t\t\t} else {\n\t\t\t\t\tparameters.push(arg.get(stack));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!indexed) {\n\t\t\tparameters.unshift(paramValue);\n\t\t}\n\t\tconst funCallBack = this.right.get(stack) as Function;\n\t\tif (this.right instanceof MemberExpression) {\n\t\t\tconst thisArg = this.right.getObject().get(stack);\n\t\t\treturn funCallBack.apply(thisArg, parameters);\n\t\t}\n\t\treturn funCallBack(...parameters);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.right.dependency(computed)\n\t\t\t.concat(\n\t\t\t\tthis.left.dependency(computed),\n\t\t\t\t(this.arguments.filter(arg => (arg !== '?' && arg !== '...?')) as ExpressionNode[])\n\t\t\t\t\t.flatMap(param => param.dependency!(computed))\n\t\t\t);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.right.dependencyPath(computed)\n\t\t\t.concat(\n\t\t\t\tthis.left.dependencyPath(computed),\n\t\t\t\t(this.arguments.filter(arg => (arg !== '?' && arg !== '...?')) as ExpressionNode[])\n\t\t\t\t\t.flatMap(param => param.dependencyPath!(computed))\n\t\t\t);\n\t}\n\ttoString() {\n\t\treturn `${this.left.toString()} |> ${this.right.toString()}${this.arguments.flatMap(arg => `:${arg.toString()}`).join('')}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tleft: this.left.toJSON(),\n\t\t\tright: this.right.toJSON(),\n\t\t\targuments: this.arguments.map(arg => typeof arg === 'string' ? arg : arg.toJSON())\n\t\t};\n\t}\n}\n"]}
|
package/api/operators/ternary.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { AbstractExpressionNode } from '../abstract.js';
|
|
3
3
|
import { Deserializer } from '../deserialize/deserialize.js';
|
|
4
|
-
|
|
4
|
+
let ConditionalExpression = (() => {
|
|
5
5
|
let _classDecorators = [Deserializer('ConditionalExpression')];
|
|
6
6
|
let _classDescriptor;
|
|
7
7
|
let _classExtraInitializers = [];
|
|
8
8
|
let _classThis;
|
|
9
|
-
|
|
9
|
+
let _classSuper = AbstractExpressionNode;
|
|
10
|
+
var ConditionalExpression = class extends _classSuper {
|
|
11
|
+
static { _classThis = this; }
|
|
10
12
|
static {
|
|
11
|
-
|
|
13
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
14
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
12
15
|
ConditionalExpression = _classThis = _classDescriptor.value;
|
|
16
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
13
17
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
14
18
|
}
|
|
15
19
|
test;
|
|
@@ -65,4 +69,5 @@ export let ConditionalExpression = (() => {
|
|
|
65
69
|
};
|
|
66
70
|
return ConditionalExpression = _classThis;
|
|
67
71
|
})();
|
|
72
|
+
export { ConditionalExpression };
|
|
68
73
|
//# sourceMappingURL=ternary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ternary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/ternary.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"ternary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/ternary.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('ConditionalExpression')\nexport class ConditionalExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: ConditionalExpression, deserializer: NodeDeserializer): ConditionalExpression {\n\t\treturn new ConditionalExpression(\n\t\t\tdeserializer(node.test),\n\t\t\tdeserializer(node.alternate),\n\t\t\tdeserializer(node.consequent),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ConditionalExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.test);\n\t\tvisitNode(node.alternate);\n\t\tvisitNode(node.consequent);\n\t}\n\tconstructor(\n\t\tprivate test: ExpressionNode,\n\t\tprivate alternate: ExpressionNode,\n\t\tprivate consequent: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetTest() {\n\t\treturn this.test;\n\t}\n\tgetAlternate() {\n\t\treturn this.alternate;\n\t}\n\tgetConsequent() {\n\t\treturn this.consequent;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ConditionalExpression#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\treturn this.test.get(stack) ? this.consequent.get(stack) : this.alternate.get(stack);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.test.dependency(computed)\n\t\t\t.concat(\n\t\t\t\tthis.alternate.dependency(computed),\n\t\t\t\tthis.consequent.dependency(computed)\n\t\t\t);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.test.dependencyPath(computed)\n\t\t\t.concat(\n\t\t\t\tthis.alternate.dependencyPath(computed),\n\t\t\t\tthis.consequent.dependencyPath(computed)\n\t\t\t);\n\t}\n\ttoString() {\n\t\treturn `${this.test.toString()} ? (${this.alternate.toString()}):(${this.consequent.toString()})`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\ttest: this.test.toJSON(),\n\t\t\talternate: this.alternate.toJSON(),\n\t\t\tconsequent: this.consequent.toJSON()\n\t\t};\n\t}\n}\n"]}
|
package/api/operators/unary.js
CHANGED
|
@@ -8,10 +8,14 @@ let UnaryExpression = (() => {
|
|
|
8
8
|
let _classDescriptor;
|
|
9
9
|
let _classExtraInitializers = [];
|
|
10
10
|
let _classThis;
|
|
11
|
-
|
|
11
|
+
let _classSuper = AbstractExpressionNode;
|
|
12
|
+
var UnaryExpression = class extends _classSuper {
|
|
13
|
+
static { _classThis = this; }
|
|
12
14
|
static {
|
|
13
|
-
|
|
15
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
16
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
14
17
|
UnaryExpression = _classThis = _classDescriptor.value;
|
|
18
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
15
19
|
}
|
|
16
20
|
operator;
|
|
17
21
|
argument;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/unary.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;IAIrC,eAAe;4BAD3B,YAAY,CAAC,iBAAiB,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"unary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/unary.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Context } from '../../scope/scope.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { MemberExpression } from '../definition/member.js';\nimport { Literal } from '../definition/values.js';\n\nexport type UnaryOperator = '-' | '+' | '~' | '!' | 'void' | 'delete' | 'typeof';\n@Deserializer('UnaryExpression')\nexport class UnaryExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: UnaryExpression, deserializer: NodeDeserializer): UnaryExpression {\n\t\treturn new UnaryExpression(\n\t\t\tnode.operator,\n\t\t\tdeserializer(node.argument),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: UnaryExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.argument);\n\t}\n\tstatic Evaluations: { [key: string]: (value: any) => any } = {\n\t\t'+': (value: string) => { return +value; },\n\t\t'-': (value: number) => { return -value; },\n\t\t'~': (value: number) => { return ~value; },\n\t\t'!': (value: any) => { return !value; },\n\t\t'void': (value: any) => { return void value; },\n\t\t'typeof': (value: any) => { return typeof value; },\n\t};\n\tconstructor(\n\t\tprivate operator: UnaryOperator,\n\t\tprivate argument: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetOperator() {\n\t\treturn this.operator;\n\t}\n\tgetArgument() {\n\t\treturn this.argument;\n\t}\n\tset(stack: Stack, value: any) {\n\t\treturn this.argument.set(stack, value);\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\tswitch (this.operator) {\n\t\t\tcase 'delete': return this.executeDelete(stack, thisContext);\n\t\t\tdefault:\n\t\t\t\tconst value = this.argument.get(stack);\n\t\t\t\treturn UnaryExpression.Evaluations[this.operator](value);\n\t\t}\n\t}\n\tprivate executeDelete(stack: Stack, thisContext?: any): boolean {\n\t\tif (this.argument instanceof MemberExpression) {\n\t\t\tconst scope = this.argument.findScope<Context>(stack);\n\t\t\tlet propertyKey: PropertyKey;\n\t\t\tconst right = this.argument.getProperty();\n\t\t\tif (right instanceof MemberExpression) {\n\t\t\t\t// [Symbol.asyncIterator]\n\t\t\t\tpropertyKey = this.argument.getProperty().get(stack);\n\t\t\t} else if (right instanceof Literal) {\n\t\t\t\t// x[10], x['string'], x.name\n\t\t\t\tpropertyKey = right.getValue();\n\t\t\t} else {\n\t\t\t\t// x[u == 3 ? 'y': 'n']\n\t\t\t\tpropertyKey = this.argument.getProperty().get(stack);\n\t\t\t}\n\t\t\treturn scope.delete(propertyKey);\n\t\t}\n\t\treturn false;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.argument.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.argument.dependencyPath(computed);\n\t}\n\ttoString() {\n\t\tswitch (this.operator) {\n\t\t\tcase 'void':\n\t\t\tcase 'delete':\n\t\t\tcase 'typeof':\n\t\t\t\treturn `${this.operator} ${this.argument.toString()}`;\n\t\t\tdefault:\n\t\t\t\treturn `${this.operator}${this.argument.toString()}`;\n\t\t}\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\toperator: this.operator,\n\t\t\targument: this.argument.toJSON(),\n\t\t\tprefix: true\n\t\t};\n\t}\n}\n"]}
|
package/api/operators/update.js
CHANGED
|
@@ -6,10 +6,14 @@ let UpdateExpression = (() => {
|
|
|
6
6
|
let _classDescriptor;
|
|
7
7
|
let _classExtraInitializers = [];
|
|
8
8
|
let _classThis;
|
|
9
|
-
|
|
9
|
+
let _classSuper = AbstractExpressionNode;
|
|
10
|
+
var UpdateExpression = class extends _classSuper {
|
|
11
|
+
static { _classThis = this; }
|
|
10
12
|
static {
|
|
11
|
-
|
|
13
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
14
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
12
15
|
UpdateExpression = _classThis = _classDescriptor.value;
|
|
16
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
13
17
|
}
|
|
14
18
|
operator;
|
|
15
19
|
argument;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/update.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAKhD,gBAAgB;4BAD5B,YAAY,CAAC,kBAAkB,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/update.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\nexport type UpdateOperator = '++' | '--';\n\n@Deserializer('UpdateExpression')\nexport class UpdateExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: UpdateExpression, deserializer: NodeDeserializer): UpdateExpression {\n\t\treturn new UpdateExpression(\n\t\t\tnode.operator,\n\t\t\tdeserializer(node.argument),\n\t\t\tnode.prefix,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: UpdateExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.argument);\n\t}\n\n\tstatic PostfixEvaluations: { [key: string]: (num: { value: number }) => number } = {\n\t\t'++': num => { return num.value++; },\n\t\t'--': num => { return num.value--; }\n\t};\n\n\tstatic PrefixEvaluations: { [key: string]: (num: { value: number }) => number } = {\n\t\t'++': num => { return ++num.value; },\n\t\t'--': num => { return --num.value; }\n\t};\n\n\tconstructor(\n\t\tprivate operator: UpdateOperator,\n\t\tprivate argument: ExpressionNode,\n\t\tprivate prefix: boolean,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetOperator() {\n\t\treturn this.operator;\n\t}\n\tgetArgument() {\n\t\treturn this.argument;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthis.argument.set(stack, value);\n\t}\n\tget(stack: Stack) {\n\t\tconst num = { value: this.argument.get(stack) as number };\n\t\tconst returnValue = this.prefix\n\t\t\t? UpdateExpression.PrefixEvaluations[this.operator](num)\n\t\t\t: UpdateExpression.PostfixEvaluations[this.operator](num);\n\t\tthis.set(stack, num.value);\n\t\treturn returnValue;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.argument.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.argument.dependencyPath(computed);\n\t}\n\ttoString() {\n\t\tif (this.prefix) {\n\t\t\treturn `${this.operator}${this.argument.toString()}`;\n\t\t}\n\t\treturn `${this.argument.toString()}${this.operator}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\toperator: this.operator,\n\t\t\targument: this.argument.toJSON(),\n\t\t\tprefix: this.prefix\n\t\t};\n\t}\n\n}\n"]}
|
package/api/program.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { AbstractExpressionNode } from './abstract.js';
|
|
3
3
|
import { Deserializer } from './deserialize/deserialize.js';
|
|
4
|
-
|
|
4
|
+
let Program = (() => {
|
|
5
5
|
let _classDecorators = [Deserializer('Program')];
|
|
6
6
|
let _classDescriptor;
|
|
7
7
|
let _classExtraInitializers = [];
|
|
8
8
|
let _classThis;
|
|
9
|
-
|
|
9
|
+
let _classSuper = AbstractExpressionNode;
|
|
10
|
+
var Program = class extends _classSuper {
|
|
11
|
+
static { _classThis = this; }
|
|
10
12
|
static {
|
|
11
|
-
|
|
13
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
14
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
12
15
|
Program = _classThis = _classDescriptor.value;
|
|
16
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
13
17
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
14
18
|
}
|
|
15
19
|
sourceType;
|
|
@@ -49,4 +53,5 @@ export let Program = (() => {
|
|
|
49
53
|
};
|
|
50
54
|
return Program = _classThis;
|
|
51
55
|
})();
|
|
56
|
+
export { Program };
|
|
52
57
|
//# sourceMappingURL=program.js.map
|
package/api/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/expressions/api/program.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/expressions/api/program.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;IAK/C,OAAO;4BADnB,YAAY,CAAC,SAAS,CAAC;;;;sBACK,sBAAsB;uBAA9B,SAAQ,WAAsB;;;;YAAnD,6KA0CC;;;YA1CY,uDAAO;;QAaV,UAAU;QACV,IAAI;QAZb,MAAM,CAAC,QAAQ,CAAC,IAAa,EAAE,YAA8B;YAC5D,OAAO,IAAI,OAAO,CACjB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAC3B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CACpB,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAa,EAAE,SAAwB;YACnD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QACD,YACS,UAA6B,EAC7B,IAAsB,EAC9B,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAJV,eAAU,GAAV,UAAU,CAAmB;YAC7B,SAAI,GAAJ,IAAI,CAAkB;QAI/B,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzD,CAAC;QACD,GAAG,CAAC,KAAY;YACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;QACD,MAAM;YACL,OAAO;gBACN,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aACpD,CAAC;QACH,CAAC;;;;SAxCW,OAAO","sourcesContent":["import type {\n\tExpressionEventPath, ExpressionNode, NodeDeserializer,\n\tSourceLocation, VisitNodeType\n} from './expression.js';\nimport type { Stack } from '../scope/stack.js';\nimport { AbstractExpressionNode } from './abstract.js';\nimport { Deserializer } from './deserialize/deserialize.js';\n\nexport type ProgramSourceType = 'script' | 'module';\n\n@Deserializer('Program')\nexport class Program extends AbstractExpressionNode {\n\n\tstatic fromJSON(node: Program, deserializer: NodeDeserializer): Program {\n\t\treturn new Program(\n\t\t\tnode.sourceType,\n\t\t\tnode.body.map(deserializer),\n\t\t\tnode.range, node.loc\n\t\t);\n\t}\n\tstatic visit(node: Program, visitNode: VisitNodeType): void {\n\t\tnode.body.forEach(visitNode);\n\t}\n\tconstructor(\n\t\tprivate sourceType: ProgramSourceType,\n\t\tprivate body: ExpressionNode[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tset(stack: Stack, value: any): any {\n\t\tthrow new Error(`Program#set() has no implementation.`);\n\t}\n\tget(stack: Stack): any {\n\t\treturn this.body.map(statement => statement.get(stack)).at(-1);\n\t}\n\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.body.flatMap(statement => statement.dependency());\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.body.flatMap(statement => statement.dependencyPath());\n\t}\n\ttoString(): string {\n\t\treturn this.body.map(statement => statement.toString()).join('\\n');\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tsourceType: this.sourceType,\n\t\t\tbody: this.body.map(statement => statement.toJSON())\n\t\t};\n\t}\n\n}\n"]}
|
|
@@ -7,15 +7,19 @@ import { isDeclarationExpression } from '../../utils.js';
|
|
|
7
7
|
* A block statement (or compound statement in other languages) is used to group zero or more statements.
|
|
8
8
|
* The block is delimited by a pair of braces ("curly brackets") and may optionally be labelled:
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
let BlockStatement = (() => {
|
|
11
11
|
let _classDecorators = [Deserializer('BlockStatement')];
|
|
12
12
|
let _classDescriptor;
|
|
13
13
|
let _classExtraInitializers = [];
|
|
14
14
|
let _classThis;
|
|
15
|
-
|
|
15
|
+
let _classSuper = AbstractExpressionNode;
|
|
16
|
+
var BlockStatement = class extends _classSuper {
|
|
17
|
+
static { _classThis = this; }
|
|
16
18
|
static {
|
|
17
|
-
|
|
19
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
20
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
18
21
|
BlockStatement = _classThis = _classDescriptor.value;
|
|
22
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
19
23
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
20
24
|
}
|
|
21
25
|
body;
|
|
@@ -69,4 +73,5 @@ export let BlockStatement = (() => {
|
|
|
69
73
|
};
|
|
70
74
|
return BlockStatement = _classThis;
|
|
71
75
|
})();
|
|
76
|
+
export { BlockStatement };
|
|
72
77
|
//# sourceMappingURL=block.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../../src/expressions/api/statement/control/block.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;;GAGG;
|
|
1
|
+
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../../src/expressions/api/statement/control/block.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../../expression.js';\nimport type { Stack } from '../../../scope/stack.js';\nimport { AbstractExpressionNode, ReturnValue } from '../../abstract.js';\nimport { Deserializer } from '../../deserialize/deserialize.js';\nimport { TerminateReturnType } from './terminate.js';\nimport { isDeclarationExpression } from '../../utils.js';\n\n/**\n * A block statement (or compound statement in other languages) is used to group zero or more statements.\n * The block is delimited by a pair of braces (\"curly brackets\") and may optionally be labelled:\n */\n@Deserializer('BlockStatement')\nexport class BlockStatement extends AbstractExpressionNode {\n\tstatic fromJSON(node: BlockStatement, deserializer: NodeDeserializer): BlockStatement {\n\t\treturn new BlockStatement(\n\t\t\tnode.body.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: BlockStatement, visitNode: VisitNodeType): void {\n\t\tnode.body.forEach(visitNode);\n\t}\n\tconstructor(\n\t\tprotected body: ExpressionNode[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`BlockStatement#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst blockScope = stack.pushBlockScope();\n\t\tlet value: any;\n\t\tfor (const node of this.body) {\n\t\t\tvalue = node.get(stack);\n\t\t\tif (value instanceof ReturnValue) {\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t\treturn value.value;\n\t\t\t}\n\t\t\tif (value instanceof TerminateReturnType) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t\tstack.clearTo(blockScope);\n\t\treturn value;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.body.flatMap(exp => exp.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.body.flatMap(node => node.dependencyPath(computed));\n\t}\n\ttoString(): string {\n\t\treturn `{\\n${this.body\n\t\t\t.map(node => ({ insert: !isDeclarationExpression(node), string: node.toString() }))\n\t\t\t.map(ref => ` ${ref.string}${ref.insert ? ';' : ''}`)\n\t\t\t.join('\\n')}\\n}`;\n\t}\n\ttoJson(): object {\n\t\treturn { body: this.body.map(node => node.toJSON()) };\n\t}\n}\n"]}
|
|
@@ -8,15 +8,19 @@ import { Deserializer } from '../../deserialize/deserialize.js';
|
|
|
8
8
|
* but JavaScript only allows a single one, is possible using a block statement,
|
|
9
9
|
* which combines several statements into a single one.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
let EmptyStatement = (() => {
|
|
12
12
|
let _classDecorators = [Deserializer('EmptyStatement')];
|
|
13
13
|
let _classDescriptor;
|
|
14
14
|
let _classExtraInitializers = [];
|
|
15
15
|
let _classThis;
|
|
16
|
-
|
|
16
|
+
let _classSuper = AbstractExpressionNode;
|
|
17
|
+
var EmptyStatement = class extends _classSuper {
|
|
18
|
+
static { _classThis = this; }
|
|
17
19
|
static {
|
|
18
|
-
|
|
20
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
21
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
19
22
|
EmptyStatement = _classThis = _classDescriptor.value;
|
|
23
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
20
24
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
21
25
|
}
|
|
22
26
|
static fromJSON(node) {
|
|
@@ -46,4 +50,5 @@ export let EmptyStatement = (() => {
|
|
|
46
50
|
};
|
|
47
51
|
return EmptyStatement = _classThis;
|
|
48
52
|
})();
|
|
53
|
+
export { EmptyStatement };
|
|
49
54
|
//# sourceMappingURL=empty.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty.js","sourceRoot":"","sources":["../../../../../src/expressions/api/statement/control/empty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"empty.js","sourceRoot":"","sources":["../../../../../src/expressions/api/statement/control/empty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE;;;;;;GAMG;IAEU,cAAc;4BAD1B,YAAY,CAAC,gBAAgB,CAAC;;;;sBACK,sBAAsB;8BAA9B,SAAQ,WAAsB;;;;YAA1D,6KA8BC;;;YA9BY,uDAAc;;QAC1B,MAAM,CAAC,QAAQ,CAAC,IAAoB;YACnC,OAAO,IAAI,cAAc,CACxB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,YACC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAChE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,OAAO,KAAK,CAAC,CAAC;QACf,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,EAAE,CAAC;QACX,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,EAAE,CAAC;QACX,CAAC;QACD,QAAQ;YACP,OAAO,GAAG,CAAC;QACZ,CAAC;QACD,MAAM;YACL,OAAO,EAAE,CAAC;QACX,CAAC;;;;SA7BW,cAAc","sourcesContent":["import type { ExpressionEventPath, ExpressionNode, SourceLocation } from '../../expression.js';\nimport type { Stack } from '../../../scope/stack.js';\nimport { AbstractExpressionNode } from '../../abstract.js';\nimport { Deserializer } from '../../deserialize/deserialize.js';\n\n/**\n * The empty statement is a semicolon (;) indicating that no statement will be executed,\n * even if JavaScript syntax requires one.\n * The opposite behavior, where you want multiple statements,\n * but JavaScript only allows a single one, is possible using a block statement,\n * which combines several statements into a single one.\n */\n@Deserializer('EmptyStatement')\nexport class EmptyStatement extends AbstractExpressionNode {\n\tstatic fromJSON(node: EmptyStatement): EmptyStatement {\n\t\treturn new EmptyStatement(\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tconstructor(\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`EmptyStatement#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\treturn void 0;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn [];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn [];\n\t}\n\ttoString(): string {\n\t\treturn ';';\n\t}\n\ttoJson(): object {\n\t\treturn {};\n\t}\n}\n"]}
|
|
@@ -6,15 +6,19 @@ import { Deserializer } from '../../deserialize/deserialize.js';
|
|
|
6
6
|
* If the condition is falsy, another statement can be executed.
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
let IfStatement = (() => {
|
|
10
10
|
let _classDecorators = [Deserializer('IfStatement')];
|
|
11
11
|
let _classDescriptor;
|
|
12
12
|
let _classExtraInitializers = [];
|
|
13
13
|
let _classThis;
|
|
14
|
-
|
|
14
|
+
let _classSuper = AbstractExpressionNode;
|
|
15
|
+
var IfStatement = class extends _classSuper {
|
|
16
|
+
static { _classThis = this; }
|
|
15
17
|
static {
|
|
16
|
-
|
|
18
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
19
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
17
20
|
IfStatement = _classThis = _classDescriptor.value;
|
|
21
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
18
22
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
19
23
|
}
|
|
20
24
|
test;
|
|
@@ -82,4 +86,5 @@ export let IfStatement = (() => {
|
|
|
82
86
|
};
|
|
83
87
|
return IfStatement = _classThis;
|
|
84
88
|
})();
|
|
89
|
+
export { IfStatement };
|
|
85
90
|
//# sourceMappingURL=if.js.map
|