@ibyar/expressions 0.3.0 → 0.3.8
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 +79 -6
- package/api/abstract.d.ts +5 -7
- package/api/abstract.js +2 -5
- package/api/abstract.js.map +1 -1
- package/api/app/class.d.ts +99 -8
- package/api/app/class.js +250 -29
- package/api/app/class.js.map +1 -1
- package/api/app/program.d.ts +1 -2
- package/api/app/program.js +1 -4
- package/api/app/program.js.map +1 -1
- package/api/computing/call.d.ts +4 -4
- package/api/computing/call.js +20 -22
- package/api/computing/call.js.map +1 -1
- package/api/computing/new.d.ts +1 -2
- package/api/computing/new.js +4 -7
- package/api/computing/new.js.map +1 -1
- package/api/computing/rest.d.ts +16 -0
- package/api/computing/rest.js +40 -0
- package/api/computing/rest.js.map +1 -0
- package/api/computing/return.d.ts +1 -2
- package/api/computing/return.js +2 -5
- package/api/computing/return.js.map +1 -1
- package/api/computing/spread.d.ts +1 -2
- package/api/computing/spread.js +3 -9
- package/api/computing/spread.js.map +1 -1
- package/api/computing/throw.d.ts +3 -6
- package/api/computing/throw.js +5 -14
- package/api/computing/throw.js.map +1 -1
- package/api/definition/array.d.ts +12 -10
- package/api/definition/array.js +44 -16
- package/api/definition/array.js.map +1 -1
- package/api/definition/bind.d.ts +21 -0
- package/api/definition/bind.js +81 -0
- package/api/definition/bind.js.map +1 -0
- package/api/definition/comment.d.ts +1 -2
- package/api/definition/comment.js +1 -4
- package/api/definition/comment.js.map +1 -1
- package/api/definition/function.d.ts +12 -15
- package/api/definition/function.js +49 -58
- package/api/definition/function.js.map +1 -1
- package/api/definition/member.d.ts +8 -5
- package/api/definition/member.js +40 -31
- package/api/definition/member.js.map +1 -1
- package/api/definition/object.d.ts +16 -17
- package/api/definition/object.js +24 -16
- package/api/definition/object.js.map +1 -1
- package/api/definition/statement.d.ts +1 -2
- package/api/definition/statement.js +2 -5
- package/api/definition/statement.js.map +1 -1
- package/api/definition/values.d.ts +12 -11
- package/api/definition/values.js +17 -12
- package/api/definition/values.js.map +1 -1
- package/api/expression.d.ts +8 -4
- package/api/expression.js.map +1 -1
- package/api/index.d.ts +7 -6
- package/api/index.js +7 -6
- package/api/index.js.map +1 -1
- package/api/module/export.d.ts +1 -2
- package/api/module/export.js +1 -4
- package/api/module/export.js.map +1 -1
- package/api/module/import.d.ts +1 -2
- package/api/module/import.js +1 -4
- package/api/module/import.js.map +1 -1
- package/api/module/module.d.ts +1 -2
- package/api/module/module.js +2 -5
- package/api/module/module.js.map +1 -1
- package/api/operators/assignment.js +2 -2
- package/api/operators/assignment.js.map +1 -1
- package/api/operators/await.d.ts +1 -2
- package/api/operators/await.js +2 -5
- package/api/operators/await.js.map +1 -1
- package/api/operators/binary.js +4 -4
- package/api/operators/binary.js.map +1 -1
- package/api/operators/chaining.d.ts +9 -13
- package/api/operators/chaining.js +14 -48
- package/api/operators/chaining.js.map +1 -1
- package/api/operators/comma.d.ts +1 -2
- package/api/operators/comma.js +2 -5
- package/api/operators/comma.js.map +1 -1
- package/api/operators/grouping.d.ts +1 -2
- package/api/operators/grouping.js +2 -5
- package/api/operators/grouping.js.map +1 -1
- package/api/operators/logical.js.map +1 -1
- package/api/operators/pipeline.d.ts +4 -5
- package/api/operators/pipeline.js +23 -25
- package/api/operators/pipeline.js.map +1 -1
- package/api/operators/ternary.d.ts +1 -2
- package/api/operators/ternary.js +1 -4
- package/api/operators/ternary.js.map +1 -1
- package/api/operators/unary.d.ts +1 -2
- package/api/operators/unary.js +2 -5
- package/api/operators/unary.js.map +1 -1
- package/api/operators/update.d.ts +1 -2
- package/api/operators/update.js +2 -5
- package/api/operators/update.js.map +1 -1
- package/api/statement/{controlflow → control}/block.d.ts +1 -2
- package/api/statement/{controlflow → control}/block.js +2 -5
- package/api/statement/control/block.js.map +1 -0
- package/api/statement/{controlflow → control}/empty.d.ts +1 -2
- package/api/statement/{controlflow → control}/empty.js +1 -4
- package/api/statement/control/empty.js.map +1 -0
- package/api/statement/{controlflow → control}/if.d.ts +1 -2
- package/api/statement/{controlflow → control}/if.js +2 -5
- package/api/statement/control/if.js.map +1 -0
- package/api/statement/{controlflow → control}/switch.d.ts +2 -4
- package/api/statement/{controlflow → control}/switch.js +5 -11
- package/api/statement/control/switch.js.map +1 -0
- package/api/statement/{controlflow → control}/terminate.d.ts +1 -2
- package/api/statement/{controlflow → control}/terminate.js +1 -4
- package/api/statement/control/terminate.js.map +1 -0
- package/api/statement/declarations/declares.d.ts +13 -14
- package/api/statement/declarations/declares.js +10 -9
- package/api/statement/declarations/declares.js.map +1 -1
- package/api/statement/iterations/for.d.ts +14 -14
- package/api/statement/iterations/for.js +12 -24
- package/api/statement/iterations/for.js.map +1 -1
- package/api/statement/iterations/while.d.ts +2 -4
- package/api/statement/iterations/while.js +4 -10
- package/api/statement/iterations/while.js.map +1 -1
- package/package.json +18 -4
- package/scope/scope.d.ts +23 -3
- package/scope/scope.js +67 -1
- package/scope/scope.js.map +1 -1
- package/scope/stack.d.ts +14 -3
- package/scope/stack.js +61 -1
- package/scope/stack.js.map +1 -1
- package/v8/app.js.map +1 -1
- package/v8/nodes.d.ts +1 -2
- package/v8/nodes.js +2 -11
- package/v8/nodes.js.map +1 -1
- package/v8/parser.d.ts +5 -4
- package/v8/parser.js +165 -69
- package/v8/parser.js.map +1 -1
- package/v8/stream.js +20 -6
- package/v8/stream.js.map +1 -1
- package/v8/token.d.ts +3 -0
- package/v8/token.js +9 -0
- package/v8/token.js.map +1 -1
- package/api/operators/destruct.d.ts +0 -19
- package/api/operators/destruct.js +0 -95
- package/api/operators/destruct.js.map +0 -1
- package/api/statement/controlflow/block.js.map +0 -1
- package/api/statement/controlflow/empty.js.map +0 -1
- package/api/statement/controlflow/if.js.map +0 -1
- package/api/statement/controlflow/switch.js.map +0 -1
- package/api/statement/controlflow/terminate.js.map +0 -1
package/api/operators/binary.js
CHANGED
|
@@ -22,15 +22,15 @@ BinaryExpression.Evaluations = {
|
|
|
22
22
|
'!=': (evalNode) => { return evalNode.left != evalNode.right; },
|
|
23
23
|
'===': (evalNode) => { return evalNode.left === evalNode.right; },
|
|
24
24
|
'!==': (evalNode) => { return evalNode.left !== evalNode.right; },
|
|
25
|
+
'<': (evalNode) => { return evalNode.left < evalNode.right; },
|
|
26
|
+
'<=': (evalNode) => { return evalNode.left <= evalNode.right; },
|
|
27
|
+
'>': (evalNode) => { return evalNode.left > evalNode.right; },
|
|
28
|
+
'>=': (evalNode) => { return evalNode.left >= evalNode.right; },
|
|
25
29
|
'*': (evalNode) => { return evalNode.left * evalNode.right; },
|
|
26
30
|
'/': (evalNode) => { return evalNode.left / evalNode.right; },
|
|
27
31
|
'%': (evalNode) => { return evalNode.left % evalNode.right; },
|
|
28
32
|
'+': (evalNode) => { return evalNode.left + evalNode.right; },
|
|
29
33
|
'-': (evalNode) => { return evalNode.left - evalNode.right; },
|
|
30
|
-
'<': (evalNode) => { return evalNode.left < evalNode.right; },
|
|
31
|
-
'<=': (evalNode) => { return evalNode.left <= evalNode.right; },
|
|
32
|
-
'>': (evalNode) => { return evalNode.left > evalNode.right; },
|
|
33
|
-
'>=': (evalNode) => { return evalNode.left >= evalNode.right; },
|
|
34
34
|
'in': (evalNode) => { return evalNode.left in evalNode.right; },
|
|
35
35
|
'instanceof': (evalNode) => { return evalNode.left instanceof evalNode.right; },
|
|
36
36
|
'<<': (evalNode) => { return evalNode.left << evalNode.right; },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/binary.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAY7D,IAAa,gBAAgB,wBAA7B,MAAa,gBAAiB,SAAQ,mBAAmC;IACxE,MAAM,CAAC,QAAQ,CAAC,IAAsB,EAAE,YAA8B;QACrE,OAAO,IAAI,kBAAgB,CAC1B,IAAI,CAAC,QAAQ,EACb,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CACxB,CAAC;IACH,CAAC;IAoDD,GAAG,CAAC,OAAe,EAAE,KAAU;QAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,CAAC,QAAQ,0BAA0B,CAAC,CAAC;IAClG,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,QAAQ,GAAiB;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;SAC5B,CAAC;QACF,OAAO,kBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;CACD,CAAA;AA7DO,4BAAW,GAAiB;IAClC,IAAI,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,IAAI,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7E,KAAK,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,KAAK,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/E,GAAG,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/binary.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EvaluateNode, EvaluateType } from './types.js';\nimport type { Stack } from '../../scope/stack.js';\nimport type { NodeDeserializer } from '../expression.js';\nimport { InfixExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\nexport type BinaryOperator =\n\t'==' | '!=' | '===' | '!=='\n\t| '<' | '<=' | '>' | '>='\n\t| '<<' | '>>' | '>>>'\n\t| '+' | '-' | '*' | '/' | '%'\n\t| '|' | '^' | '&' | 'in'\n\t| 'instanceof'\n\t| '**' | '%%' | '>?' | '<?' | '<=>';\n\n@Deserializer('BinaryExpression')\nexport class BinaryExpression extends InfixExpressionNode<BinaryOperator> {\n\tstatic fromJSON(node: BinaryExpression, deserializer: NodeDeserializer): BinaryExpression {\n\t\treturn new BinaryExpression(\n\t\t\tnode.operator,\n\t\t\tdeserializer(node.left),\n\t\t\tdeserializer(node.right)\n\t\t);\n\t}\n\tstatic Evaluations: EvaluateType = {\n\t\t'==': (evalNode: EvaluateNode) => { return evalNode.left == evalNode.right; },\n\t\t'!=': (evalNode: EvaluateNode) => { return evalNode.left != evalNode.right; },\n\n\t\t'===': (evalNode: EvaluateNode) => { return evalNode.left === evalNode.right; },\n\t\t'!==': (evalNode: EvaluateNode) => { return evalNode.left !== evalNode.right; },\n\n\t\t'<': (evalNode: EvaluateNode) => { return evalNode.left < evalNode.right; },\n\t\t'<=': (evalNode: EvaluateNode) => { return evalNode.left <= evalNode.right; },\n\n\t\t'>': (evalNode: EvaluateNode) => { return evalNode.left > evalNode.right; },\n\t\t'>=': (evalNode: EvaluateNode) => { return evalNode.left >= evalNode.right; },\n\n\t\t'*': (evalNode: EvaluateNode) => { return evalNode.left * evalNode.right; },\n\t\t'/': (evalNode: EvaluateNode) => { return evalNode.left / evalNode.right; },\n\t\t'%': (evalNode: EvaluateNode) => { return evalNode.left % evalNode.right; },\n\n\t\t'+': (evalNode: EvaluateNode) => { return evalNode.left + evalNode.right; },\n\t\t'-': (evalNode: EvaluateNode) => { return evalNode.left - evalNode.right; },\n\n\t\t'in': (evalNode: EvaluateNode) => { return evalNode.left in evalNode.right; },\n\t\t'instanceof': (evalNode: EvaluateNode) => { return evalNode.left instanceof evalNode.right; },\n\n\t\t'<<': (evalNode: EvaluateNode) => { return evalNode.left << evalNode.right; },\n\t\t'>>': (evalNode: EvaluateNode) => { return evalNode.left >> evalNode.right; },\n\t\t'>>>': (evalNode: EvaluateNode) => { return evalNode.left >>> evalNode.right; },\n\n\t\t'&': (evalNode: EvaluateNode) => { return evalNode.left & evalNode.right; },\n\t\t'^': (evalNode: EvaluateNode) => { return evalNode.left ^ evalNode.right; },\n\t\t'|': (evalNode: EvaluateNode) => { return evalNode.left | evalNode.right; },\n\n\t\t'**': (evalNode: EvaluateNode) => { return evalNode.left ** evalNode.right; },\n\t\t'%%': (evalNode: EvaluateNode) => { return ((evalNode.left % evalNode.right) + evalNode.right) % evalNode.right; },\n\t\t'>?': (evalNode: EvaluateNode) => { return evalNode.left > evalNode.right ? evalNode.left : evalNode.right; },\n\t\t'<?': (evalNode: EvaluateNode) => { return evalNode.left > evalNode.right ? evalNode.right : evalNode.left; },\n\t\t'<=>': (evalNode: EvaluateNode) => {\n\t\t\tif ((evalNode.left === null || evalNode.right === null) || (typeof evalNode.left != typeof evalNode.right)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (typeof evalNode.left === 'string') {\n\t\t\t\treturn evalNode.left.localeCompare(evalNode.right);\n\t\t\t} else {\n\t\t\t\tif (evalNode.left > evalNode.right) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else if (evalNode.left < evalNode.right) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t};\n\tset(context: object, value: any) {\n\t\tthrow new Error(`BinaryExpression#set() for operator:(${this.operator}) has no implementation.`);\n\t}\n\tget(stack: Stack): any {\n\t\tconst evalNode: EvaluateNode = {\n\t\t\tleft: this.left.get(stack),\n\t\t\tright: this.right.get(stack)\n\t\t};\n\t\treturn BinaryExpression.Evaluations[this.operator](evalNode);\n\t}\n}\n"]}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
import type { NodeDeserializer, ExpressionNode } from '../expression.js';
|
|
1
|
+
import type { NodeDeserializer, ExpressionNode, CanFindScope } from '../expression.js';
|
|
2
|
+
import type { Scope } from '../../scope/scope.js';
|
|
2
3
|
import type { Stack } from '../../scope/stack.js';
|
|
3
4
|
import { AbstractExpressionNode } from '../abstract.js';
|
|
4
|
-
export declare
|
|
5
|
-
|
|
6
|
-
private optional;
|
|
7
|
-
private property;
|
|
8
|
-
private type;
|
|
5
|
+
export declare class ChainExpression extends AbstractExpressionNode implements CanFindScope {
|
|
6
|
+
private expression;
|
|
9
7
|
static fromJSON(node: ChainExpression, deserializer: NodeDeserializer): ChainExpression;
|
|
10
|
-
constructor(
|
|
11
|
-
|
|
12
|
-
getProperty(): ExpressionNode;
|
|
13
|
-
getType(): ChainingType;
|
|
8
|
+
constructor(expression: ExpressionNode);
|
|
9
|
+
getExpression(): ExpressionNode;
|
|
14
10
|
set(stack: Stack, value: any): void;
|
|
15
11
|
get(stack: Stack, thisContext?: any): any;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
findScope<T extends object>(stack: Stack): Scope<T>;
|
|
13
|
+
findScope<T extends object>(stack: Stack, scope: Scope<any>): Scope<T>;
|
|
14
|
+
events(parent?: string): string[];
|
|
19
15
|
toString(): string;
|
|
20
16
|
toJson(): object;
|
|
21
17
|
}
|
|
@@ -3,74 +3,40 @@ import { __decorate, __metadata } from "tslib";
|
|
|
3
3
|
import { AbstractExpressionNode } from '../abstract.js';
|
|
4
4
|
import { Deserializer } from '../deserialize/deserialize.js';
|
|
5
5
|
let ChainExpression = ChainExpression_1 = class ChainExpression extends AbstractExpressionNode {
|
|
6
|
-
constructor(
|
|
6
|
+
constructor(expression) {
|
|
7
7
|
super();
|
|
8
|
-
this.
|
|
9
|
-
this.property = property;
|
|
10
|
-
this.type = type;
|
|
8
|
+
this.expression = expression;
|
|
11
9
|
}
|
|
12
10
|
static fromJSON(node, deserializer) {
|
|
13
|
-
return new ChainExpression_1(deserializer(node.
|
|
11
|
+
return new ChainExpression_1(deserializer(node.expression));
|
|
14
12
|
}
|
|
15
|
-
|
|
16
|
-
return this.
|
|
17
|
-
}
|
|
18
|
-
getProperty() {
|
|
19
|
-
return this.property;
|
|
20
|
-
}
|
|
21
|
-
getType() {
|
|
22
|
-
return this.type;
|
|
13
|
+
getExpression() {
|
|
14
|
+
return this.expression;
|
|
23
15
|
}
|
|
24
16
|
set(stack, value) {
|
|
25
|
-
throw new Error(`
|
|
17
|
+
throw new Error(`ChainExpression.#set() has no implementation.`);
|
|
26
18
|
}
|
|
27
19
|
get(stack, thisContext) {
|
|
28
|
-
|
|
29
|
-
if (thisContext) {
|
|
30
|
-
value = this.property.get(stack, thisContext);
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
const object = this.optional.get(stack);
|
|
34
|
-
if (object === null || object === undefined) {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
switch (this.type) {
|
|
38
|
-
case 'property':
|
|
39
|
-
case 'function':
|
|
40
|
-
value = this.property.get(stack, object);
|
|
41
|
-
case 'expression':
|
|
42
|
-
value = object[this.property.get(stack, object)];
|
|
43
|
-
}
|
|
44
|
-
thisContext = object;
|
|
45
|
-
}
|
|
46
|
-
if (typeof value === 'function') {
|
|
47
|
-
return value.bind(thisContext);
|
|
48
|
-
}
|
|
49
|
-
return value;
|
|
50
|
-
}
|
|
51
|
-
getThis(stack) {
|
|
52
|
-
return this.optional.get(stack);
|
|
20
|
+
return this.expression.get(stack, thisContext);
|
|
53
21
|
}
|
|
54
|
-
|
|
55
|
-
return
|
|
22
|
+
findScope(stack, objectScope) {
|
|
23
|
+
return this.expression.findScope(stack, objectScope);
|
|
56
24
|
}
|
|
57
|
-
|
|
58
|
-
return
|
|
25
|
+
events(parent) {
|
|
26
|
+
return this.expression.events();
|
|
59
27
|
}
|
|
60
28
|
toString() {
|
|
61
|
-
return
|
|
29
|
+
return this.expression.toString();
|
|
62
30
|
}
|
|
63
31
|
toJson() {
|
|
64
32
|
return {
|
|
65
|
-
|
|
66
|
-
property: this.property.toJSON(),
|
|
67
|
-
type: this.type
|
|
33
|
+
expression: this.expression.toJSON(),
|
|
68
34
|
};
|
|
69
35
|
}
|
|
70
36
|
};
|
|
71
37
|
ChainExpression = ChainExpression_1 = __decorate([
|
|
72
38
|
Deserializer('ChainExpression'),
|
|
73
|
-
__metadata("design:paramtypes", [Object
|
|
39
|
+
__metadata("design:paramtypes", [Object])
|
|
74
40
|
], ChainExpression);
|
|
75
41
|
export { ChainExpression };
|
|
76
42
|
//# sourceMappingURL=chaining.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chaining.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/chaining.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"chaining.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/chaining.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,IAAa,eAAe,uBAA5B,MAAa,eAAgB,SAAQ,sBAAsB;IAI1D,YAAoB,UAA0B;QAC7C,KAAK,EAAE,CAAC;QADW,eAAU,GAAV,UAAU,CAAgB;IAE9C,CAAC;IALD,MAAM,CAAC,QAAQ,CAAC,IAAqB,EAAE,YAA8B;QACpE,OAAO,IAAI,iBAAe,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,CAAC;IAID,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IACjE,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,WAAiB;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IAGD,SAAS,CAAmB,KAAY,EAAE,WAAwB;QACjE,OAAQ,IAAI,CAAC,UAA4C,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,CAAC,MAAe;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IACD,QAAQ;QACP,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IACD,MAAM;QACL,OAAO;YACN,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;SACpC,CAAC;IACH,CAAC;CACD,CAAA;AAhCY,eAAe;IAD3B,YAAY,CAAC,iBAAiB,CAAC;;GACnB,eAAe,CAgC3B;SAhCY,eAAe","sourcesContent":["import type { NodeDeserializer, ExpressionNode, CanFindScope } 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(deserializer(node.expression));\n\t}\n\tconstructor(private expression: ExpressionNode) {\n\t\tsuper();\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\tevents(parent?: string): string[] {\n\t\treturn this.expression.events();\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.d.ts
CHANGED
|
@@ -8,8 +8,7 @@ export declare class SequenceExpression extends AbstractExpressionNode {
|
|
|
8
8
|
getExpressions(): ExpressionNode[];
|
|
9
9
|
set(stack: Stack): void;
|
|
10
10
|
get(stack: Stack): any;
|
|
11
|
-
|
|
12
|
-
event(parent?: string): string[];
|
|
11
|
+
events(parent?: string): string[];
|
|
13
12
|
toString(): string;
|
|
14
13
|
toJson(): object;
|
|
15
14
|
}
|
package/api/operators/comma.js
CHANGED
|
@@ -19,11 +19,8 @@ let SequenceExpression = SequenceExpression_1 = class SequenceExpression extends
|
|
|
19
19
|
get(stack) {
|
|
20
20
|
return this.expressions.map(expr => expr.get(stack)).pop();
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
return [...this.expressions.flatMap(expression => expression.
|
|
24
|
-
}
|
|
25
|
-
event(parent) {
|
|
26
|
-
return [...this.expressions.flatMap(expression => expression.event())];
|
|
22
|
+
events(parent) {
|
|
23
|
+
return [...this.expressions.flatMap(expression => expression.events())];
|
|
27
24
|
}
|
|
28
25
|
toString() {
|
|
29
26
|
return this.expressions.map(key => key.toString()).join(', ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comma.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/comma.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,IAAa,kBAAkB,0BAA/B,MAAa,kBAAmB,SAAQ,sBAAsB;IAI7D,YAAoB,WAA6B;QAChD,KAAK,EAAE,CAAC;QADW,gBAAW,GAAX,WAAW,CAAkB;IAEjD,CAAC;IALD,MAAM,CAAC,QAAQ,CAAC,IAAwB,EAAE,YAA8B;QACvE,OAAO,IAAI,oBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,UAAiB,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC;IAID,cAAc;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACrE,CAAC;IACD,GAAG,CAAC,KAAY;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"comma.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/comma.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,IAAa,kBAAkB,0BAA/B,MAAa,kBAAmB,SAAQ,sBAAsB;IAI7D,YAAoB,WAA6B;QAChD,KAAK,EAAE,CAAC;QADW,gBAAW,GAAX,WAAW,CAAkB;IAEjD,CAAC;IALD,MAAM,CAAC,QAAQ,CAAC,IAAwB,EAAE,YAA8B;QACvE,OAAO,IAAI,oBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,UAAiB,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC;IAID,cAAc;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACrE,CAAC;IACD,GAAG,CAAC,KAAY;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;IACD,MAAM,CAAC,MAAe;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,QAAQ;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM;QACL,OAAO;YACN,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;SACpE,CAAC;IACH,CAAC;CACD,CAAA;AA3BY,kBAAkB;IAD9B,YAAY,CAAC,oBAAoB,CAAC;;GACtB,kBAAkB,CA2B9B;SA3BY,kBAAkB","sourcesContent":["import type { NodeDeserializer, ExpressionNode } 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(node.expressions.map(expression => deserializer(expression as any)));\n\t}\n\tconstructor(private expressions: ExpressionNode[]) {\n\t\tsuper();\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\tevents(parent?: string): string[] {\n\t\treturn [...this.expressions.flatMap(expression => expression.events())];\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,8 +8,7 @@ export declare class GroupingExpression extends AbstractExpressionNode {
|
|
|
8
8
|
getNode(): ExpressionNode;
|
|
9
9
|
set(stack: Stack, value: any): void;
|
|
10
10
|
get(stack: Stack): any;
|
|
11
|
-
|
|
12
|
-
event(parent?: string): string[];
|
|
11
|
+
events(parent?: string): string[];
|
|
13
12
|
toString(): string;
|
|
14
13
|
toJson(): object;
|
|
15
14
|
}
|
|
@@ -19,11 +19,8 @@ let GroupingExpression = GroupingExpression_1 = class GroupingExpression extends
|
|
|
19
19
|
get(stack) {
|
|
20
20
|
return this.node.get(stack);
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
return this.node.
|
|
24
|
-
}
|
|
25
|
-
event(parent) {
|
|
26
|
-
return this.node.event(parent);
|
|
22
|
+
events(parent) {
|
|
23
|
+
return this.node.events(parent);
|
|
27
24
|
}
|
|
28
25
|
toString() {
|
|
29
26
|
return `(${this.node.toString()})`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/grouping.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAU7D,IAAa,kBAAkB,0BAA/B,MAAa,kBAAmB,SAAQ,sBAAsB;IAI7D,YAAoB,IAAoB;QACvC,KAAK,EAAE,CAAC;QADW,SAAI,GAAJ,IAAI,CAAgB;IAExC,CAAC;IALD,MAAM,CAAC,QAAQ,CAAC,IAAwB,EAAE,YAA8B;QACvE,OAAO,IAAI,oBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC,CAAC;IAC/D,CAAC;IAID,OAAO;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,GAAG,CAAC,KAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/grouping.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAU7D,IAAa,kBAAkB,0BAA/B,MAAa,kBAAmB,SAAQ,sBAAsB;IAI7D,YAAoB,IAAoB;QACvC,KAAK,EAAE,CAAC;QADW,SAAI,GAAJ,IAAI,CAAgB;IAExC,CAAC;IALD,MAAM,CAAC,QAAQ,CAAC,IAAwB,EAAE,YAA8B;QACvE,OAAO,IAAI,oBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC,CAAC;IAC/D,CAAC;IAID,OAAO;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,GAAG,CAAC,KAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,CAAC,MAAe;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,QAAQ;QACP,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;IACpC,CAAC;IACD,MAAM;QACL,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IACrC,CAAC;CACD,CAAA;AAzBY,kBAAkB;IAD9B,YAAY,CAAC,oBAAoB,CAAC;;GACtB,kBAAkB,CAyB9B;SAzBY,kBAAkB","sourcesContent":["import type { NodeDeserializer, ExpressionNode } 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(deserializer(node.node as any));\n\t}\n\tconstructor(private node: ExpressionNode) {\n\t\tsuper();\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\tevents(parent?: string): string[] {\n\t\treturn this.node.events(parent);\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"]}
|
|
@@ -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;AAK7D,IAAa,iBAAiB,yBAA9B,MAAa,iBAAkB,SAAQ,mBAAoC;IAC1E,MAAM,CAAC,QAAQ,CAAC,IAAuB,EAAE,YAA8B;QACtE,OAAO,IAAI,mBAAiB,CAC3B,IAAI,CAAC,QAAQ,EACb,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CACxB,CAAC;IACH,CAAC;IA4BD,GAAG,CAAC,OAAe;QAClB,OAAO,mBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;CACD,CAAA;AA9BO,6BAAW,GAAqE;IAEtF,IAAI,EAAE,CAAC,GAAsB,EAAE,OAAY,EAAE,EAAE;QAC9C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE;YACV,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,EAAE,CAAC,GAAsB,EAAE,OAAY,EAAE,EAAE;QAC9C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE;YACX,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,EAAE,CAAC,GAAsB,EAAE,OAAY,EAAE,EAAE;QAC9C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YAC1C,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;IACd,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;AAK7D,IAAa,iBAAiB,yBAA9B,MAAa,iBAAkB,SAAQ,mBAAoC;IAC1E,MAAM,CAAC,QAAQ,CAAC,IAAuB,EAAE,YAA8B;QACtE,OAAO,IAAI,mBAAiB,CAC3B,IAAI,CAAC,QAAQ,EACb,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CACxB,CAAC;IACH,CAAC;IA4BD,GAAG,CAAC,OAAe;QAClB,OAAO,mBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;CACD,CAAA;AA9BO,6BAAW,GAAqE;IAEtF,IAAI,EAAE,CAAC,GAAsB,EAAE,OAAY,EAAE,EAAE;QAC9C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE;YACV,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,EAAE,CAAC,GAAsB,EAAE,OAAY,EAAE,EAAE;QAC9C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE;YACX,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,EAAE,CAAC,GAAsB,EAAE,OAAY,EAAE,EAAE;QAC9C,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YAC1C,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;IACd,CAAC;CAEA,CAAA;AAlCU,iBAAiB;IAD7B,YAAY,CAAC,mBAAmB,CAAC;GACrB,iBAAiB,CAsC7B;SAtCY,iBAAiB","sourcesContent":["import type { NodeDeserializer } 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);\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"]}
|
|
@@ -4,16 +4,15 @@ import { AbstractExpressionNode } from '../abstract.js';
|
|
|
4
4
|
export declare class PipelineExpression extends AbstractExpressionNode {
|
|
5
5
|
private left;
|
|
6
6
|
private right;
|
|
7
|
-
private params;
|
|
8
7
|
static fromJSON(node: PipelineExpression, deserializer: NodeDeserializer): PipelineExpression;
|
|
8
|
+
private arguments;
|
|
9
9
|
constructor(left: ExpressionNode, right: ExpressionNode, params?: (ExpressionNode | '?' | '...?')[]);
|
|
10
10
|
getLeft(): ExpressionNode;
|
|
11
11
|
getRight(): ExpressionNode;
|
|
12
|
-
|
|
12
|
+
getArguments(): (ExpressionNode | "?" | "...?")[];
|
|
13
13
|
set(stack: Stack, value: any): void;
|
|
14
|
-
get(stack: Stack
|
|
15
|
-
|
|
16
|
-
event(parent?: string): string[];
|
|
14
|
+
get(stack: Stack): any;
|
|
15
|
+
events(parent?: string): string[];
|
|
17
16
|
toString(): string;
|
|
18
17
|
toJson(): object;
|
|
19
18
|
}
|
|
@@ -3,15 +3,16 @@ import { __decorate, __metadata } from "tslib";
|
|
|
3
3
|
import { AbstractExpressionNode } from '../abstract.js';
|
|
4
4
|
import { Deserializer } from '../deserialize/deserialize.js';
|
|
5
5
|
import { SpreadElement } from '../computing/spread.js';
|
|
6
|
+
import { MemberExpression } from '../definition/member.js';
|
|
6
7
|
let PipelineExpression = PipelineExpression_1 = class PipelineExpression extends AbstractExpressionNode {
|
|
7
8
|
constructor(left, right, params = []) {
|
|
8
9
|
super();
|
|
9
10
|
this.left = left;
|
|
10
11
|
this.right = right;
|
|
11
|
-
this.
|
|
12
|
+
this.arguments = params;
|
|
12
13
|
}
|
|
13
14
|
static fromJSON(node, deserializer) {
|
|
14
|
-
return new PipelineExpression_1(deserializer(node.left), deserializer(node.right), node.
|
|
15
|
+
return new PipelineExpression_1(deserializer(node.left), deserializer(node.right), node.arguments.map(arg => typeof arg === 'string' ? arg : deserializer(arg)));
|
|
15
16
|
}
|
|
16
17
|
getLeft() {
|
|
17
18
|
return this.left;
|
|
@@ -19,18 +20,17 @@ let PipelineExpression = PipelineExpression_1 = class PipelineExpression extends
|
|
|
19
20
|
getRight() {
|
|
20
21
|
return this.right;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
-
return this.
|
|
23
|
+
getArguments() {
|
|
24
|
+
return this.arguments;
|
|
24
25
|
}
|
|
25
26
|
set(stack, value) {
|
|
26
27
|
throw new Error(`PipelineNode#set() has no implementation.`);
|
|
27
28
|
}
|
|
28
|
-
get(stack
|
|
29
|
+
get(stack) {
|
|
29
30
|
const paramValue = this.left.get(stack);
|
|
30
|
-
const funCallBack = this.right.get(stack, thisContext);
|
|
31
31
|
const parameters = [];
|
|
32
32
|
let indexed = false;
|
|
33
|
-
for (const arg of this.
|
|
33
|
+
for (const arg of this.arguments) {
|
|
34
34
|
if (arg === '?') {
|
|
35
35
|
parameters.push(paramValue);
|
|
36
36
|
indexed = true;
|
|
@@ -41,42 +41,40 @@ let PipelineExpression = PipelineExpression_1 = class PipelineExpression extends
|
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
43
43
|
if (arg instanceof SpreadElement) {
|
|
44
|
-
stack.pushBlockScopeFor(parameters);
|
|
44
|
+
const paramScope = stack.pushBlockScopeFor(parameters);
|
|
45
45
|
arg.get(stack);
|
|
46
|
-
stack.
|
|
46
|
+
stack.clearTo(paramScope);
|
|
47
47
|
}
|
|
48
48
|
else {
|
|
49
49
|
parameters.push(arg.get(stack));
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
if (indexed) {
|
|
54
|
-
|
|
53
|
+
if (!indexed) {
|
|
54
|
+
parameters.unshift(paramValue);
|
|
55
55
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
...this.params.filter(param => (param !== '?' && param !== '...?')).flatMap(param => param.entry())
|
|
63
|
-
];
|
|
56
|
+
const funCallBack = this.right.get(stack);
|
|
57
|
+
if (this.right instanceof MemberExpression) {
|
|
58
|
+
const thisArg = this.right.getObject().get(stack);
|
|
59
|
+
return funCallBack.apply(thisArg, parameters);
|
|
60
|
+
}
|
|
61
|
+
return funCallBack(...parameters);
|
|
64
62
|
}
|
|
65
|
-
|
|
63
|
+
events(parent) {
|
|
66
64
|
return [
|
|
67
|
-
...this.right.
|
|
68
|
-
...this.left.
|
|
69
|
-
...this.
|
|
65
|
+
...this.right.events(),
|
|
66
|
+
...this.left.events(),
|
|
67
|
+
...this.arguments.filter(arg => (arg !== '?' && arg !== '...?')).flatMap(param => param.events())
|
|
70
68
|
];
|
|
71
69
|
}
|
|
72
70
|
toString() {
|
|
73
|
-
return `${this.left.toString()} |> ${this.right.toString()}${this.
|
|
71
|
+
return `${this.left.toString()} |> ${this.right.toString()}${this.arguments.flatMap(arg => `:${arg.toString()}`).join('')}`;
|
|
74
72
|
}
|
|
75
73
|
toJson() {
|
|
76
74
|
return {
|
|
77
75
|
left: this.left.toJSON(),
|
|
78
76
|
right: this.right.toJSON(),
|
|
79
|
-
|
|
77
|
+
arguments: this.arguments.map(arg => typeof arg === 'string' ? arg : arg.toJSON())
|
|
80
78
|
};
|
|
81
79
|
}
|
|
82
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/pipeline.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/pipeline.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeDeserializer, ExpressionNode } 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);\n\t}\n\tprivate arguments: (ExpressionNode | '?' | '...?')[];\n\tconstructor(private left: ExpressionNode, private right: ExpressionNode, params: (ExpressionNode | '?' | '...?')[] = []) {\n\t\tsuper();\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\tevents(parent?: string): string[] {\n\t\treturn [\n\t\t\t...this.right.events(),\n\t\t\t...this.left.events(),\n\t\t\t...(this.arguments.filter(arg => (arg !== '?' && arg !== '...?')) as ExpressionNode[]).flatMap(param => param.events!())\n\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"]}
|
|
@@ -12,8 +12,7 @@ export declare class ConditionalExpression extends AbstractExpressionNode {
|
|
|
12
12
|
getConsequent(): ExpressionNode;
|
|
13
13
|
set(stack: Stack, value: any): void;
|
|
14
14
|
get(stack: Stack): any;
|
|
15
|
-
|
|
16
|
-
event(parent?: string): string[];
|
|
15
|
+
events(parent?: string): string[];
|
|
17
16
|
toString(): string;
|
|
18
17
|
toJson(): object;
|
|
19
18
|
}
|
package/api/operators/ternary.js
CHANGED
|
@@ -27,10 +27,7 @@ let ConditionalExpression = ConditionalExpression_1 = class ConditionalExpressio
|
|
|
27
27
|
get(stack) {
|
|
28
28
|
return this.test.get(stack) ? this.consequent.get(stack) : this.alternate.get(stack);
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
return [...this.test.entry(), ...this.alternate.entry(), ...this.consequent.entry()];
|
|
32
|
-
}
|
|
33
|
-
event(parent) {
|
|
30
|
+
events(parent) {
|
|
34
31
|
return [];
|
|
35
32
|
}
|
|
36
33
|
toString() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ternary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/ternary.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,IAAa,qBAAqB,6BAAlC,MAAa,qBAAsB,SAAQ,sBAAsB;IAQhE,YAAoB,IAAoB,EAAU,SAAyB,EAAU,UAA0B;QAC9G,KAAK,EAAE,CAAC;QADW,SAAI,GAAJ,IAAI,CAAgB;QAAU,cAAS,GAAT,SAAS,CAAgB;QAAU,eAAU,GAAV,UAAU,CAAgB;IAE/G,CAAC;IATD,MAAM,CAAC,QAAQ,CAAC,IAA2B,EAAE,YAA8B;QAC1E,OAAO,IAAI,uBAAqB,CAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAC5B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAC7B,CAAC;IACH,CAAC;IAID,OAAO;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,YAAY;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IACD,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IACD,GAAG,CAAC,KAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"ternary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/ternary.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,IAAa,qBAAqB,6BAAlC,MAAa,qBAAsB,SAAQ,sBAAsB;IAQhE,YAAoB,IAAoB,EAAU,SAAyB,EAAU,UAA0B;QAC9G,KAAK,EAAE,CAAC;QADW,SAAI,GAAJ,IAAI,CAAgB;QAAU,cAAS,GAAT,SAAS,CAAgB;QAAU,eAAU,GAAV,UAAU,CAAgB;IAE/G,CAAC;IATD,MAAM,CAAC,QAAQ,CAAC,IAA2B,EAAE,YAA8B;QAC1E,OAAO,IAAI,uBAAqB,CAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAC5B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAC7B,CAAC;IACH,CAAC;IAID,OAAO;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,YAAY;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IACD,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IACD,GAAG,CAAC,KAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,CAAC,MAAe;QACrB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,QAAQ;QACP,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;IACnG,CAAC;IACD,MAAM;QACL,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAClC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;SACpC,CAAC;IACH,CAAC;CACD,CAAA;AAvCY,qBAAqB;IADjC,YAAY,CAAC,uBAAuB,CAAC;;GACzB,qBAAqB,CAuCjC;SAvCY,qBAAqB","sourcesContent":["import type { NodeDeserializer, ExpressionNode } 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);\n\t}\n\tconstructor(private test: ExpressionNode, private alternate: ExpressionNode, private consequent: ExpressionNode) {\n\t\tsuper();\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\tevents(parent?: string): string[] {\n\t\treturn [];\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.d.ts
CHANGED
|
@@ -15,8 +15,7 @@ export declare class UnaryExpression extends AbstractExpressionNode {
|
|
|
15
15
|
set(stack: Stack, value: any): any;
|
|
16
16
|
get(stack: Stack, thisContext?: any): any;
|
|
17
17
|
private getDelete;
|
|
18
|
-
|
|
19
|
-
event(parent?: string): string[];
|
|
18
|
+
events(parent?: string): string[];
|
|
20
19
|
toString(): string;
|
|
21
20
|
toJson(): object;
|
|
22
21
|
}
|
package/api/operators/unary.js
CHANGED
|
@@ -41,11 +41,8 @@ let UnaryExpression = UnaryExpression_1 = class UnaryExpression extends Abstract
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
return this.argument.
|
|
46
|
-
}
|
|
47
|
-
event(parent) {
|
|
48
|
-
return this.argument.event(parent);
|
|
44
|
+
events(parent) {
|
|
45
|
+
return this.argument.events(parent);
|
|
49
46
|
}
|
|
50
47
|
toString() {
|
|
51
48
|
switch (this.operator) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/unary.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI3D,IAAa,eAAe,uBAA5B,MAAa,eAAgB,SAAQ,sBAAsB;IAY1D,YAAoB,QAAuB,EAAU,QAAwB;QAC5E,KAAK,EAAE,CAAC;QADW,aAAQ,GAAR,QAAQ,CAAe;QAAU,aAAQ,GAAR,QAAQ,CAAgB;IAE7E,CAAC;IAbD,MAAM,CAAC,QAAQ,CAAC,IAAqB,EAAE,YAA8B;QACpE,OAAO,IAAI,iBAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,CAAC;IAYD,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,WAAiB;QAClC,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACtB,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACzD;gBACC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvC,OAAO,iBAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;SAC1D;IACF,CAAC;IACO,SAAS,CAAC,KAAY,EAAE,WAAiB;QAChD,IAAI,IAAI,CAAC,QAAQ,YAAY,gBAAgB,EAAE;YAC9C,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,KAAK,YAAY,gBAAgB,EAAE;gBAEtC,OAAO,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;aAClE;iBAAM;gBAEN,OAAO,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;aAClE;SACD;IACF,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"unary.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/unary.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeDeserializer, ExpressionNode } from '../expression.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';\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(node.operator, deserializer(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(private operator: UnaryOperator, private argument: ExpressionNode) {\n\t\tsuper();\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.getDelete(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 getDelete(stack: Stack, thisContext?: any) {\n\t\tif (this.argument instanceof MemberExpression) {\n\t\t\tthisContext = thisContext || this.argument.getObject().get(stack);\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\treturn delete thisContext[this.argument.getProperty().get(stack)];\n\t\t\t} else {\n\t\t\t\t// [10], ['string']\n\t\t\t\treturn delete thisContext[this.argument.getProperty().toString()];\n\t\t\t}\n\t\t}\n\t}\n\tevents(parent?: string): string[] {\n\t\treturn this.argument.events(parent);\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"]}
|
|
@@ -22,8 +22,7 @@ export declare class UpdateExpression extends AbstractExpressionNode {
|
|
|
22
22
|
getArgument(): ExpressionNode;
|
|
23
23
|
set(stack: Stack, value: any): void;
|
|
24
24
|
get(stack: Stack): number;
|
|
25
|
-
|
|
26
|
-
event(parent?: string): string[];
|
|
25
|
+
events(parent?: string): string[];
|
|
27
26
|
toString(): string;
|
|
28
27
|
toJson(): object;
|
|
29
28
|
}
|
package/api/operators/update.js
CHANGED
|
@@ -29,11 +29,8 @@ let UpdateExpression = UpdateExpression_1 = class UpdateExpression extends Abstr
|
|
|
29
29
|
this.set(stack, num.value);
|
|
30
30
|
return returnValue;
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
return this.argument.
|
|
34
|
-
}
|
|
35
|
-
event(parent) {
|
|
36
|
-
return this.argument.event(parent);
|
|
32
|
+
events(parent) {
|
|
33
|
+
return this.argument.events(parent);
|
|
37
34
|
}
|
|
38
35
|
toString() {
|
|
39
36
|
if (this.prefix) {
|