@freelog/freelog-cg-collection 1.0.5 → 1.0.7
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/CollectionPolicyCustomVisitor.js +112 -8
- package/dist/calculator/CalculatorFactory.d.ts +21 -0
- package/dist/calculator/CalculatorFactory.js +59 -0
- package/dist/calculator/CalculatorFactoryBuilder.d.ts +12 -0
- package/dist/calculator/CalculatorFactoryBuilder.js +25 -0
- package/dist/calculator/ExpArgsGroupCalculator.d.ts +3 -3
- package/dist/calculator/ExpArgsGroupCalculator.js +1 -1
- package/dist/calculator/ExpBooleanCalculator.d.ts +5 -5
- package/dist/calculator/ExpBooleanCalculator.js +15 -1
- package/dist/calculator/ExpCalculator.d.ts +5 -5
- package/dist/calculator/ExpCalculator.js +1 -1
- package/dist/calculator/ExpConditionCalculator.d.ts +3 -3
- package/dist/calculator/ExpConditionCalculator.js +1 -1
- package/dist/function-executor/ApiFunctionExecutor.d.ts +11 -0
- package/dist/function-executor/ApiFunctionExecutor.js +16 -0
- package/dist/function-executor/DefaultFunctionExecutor.d.ts +5 -0
- package/dist/function-executor/DefaultFunctionExecutor.js +13 -0
- package/dist/function-executor/DefaultFunctionInvoke.d.ts +5 -0
- package/dist/function-executor/DefaultFunctionInvoke.js +13 -0
- package/dist/function-executor/DynamicFunctionExecutor.d.ts +9 -0
- package/dist/function-executor/DynamicFunctionExecutor.js +41 -0
- package/dist/function-executor/FunFunctionExecutor.d.ts +10 -0
- package/dist/function-executor/FunFunctionExecutor.js +30 -0
- package/dist/function-executor/FunctionHandle.js +2 -1
- package/dist/function-executor/KitFunctionExecutor.d.ts +8 -0
- package/dist/function-executor/KitFunctionExecutor.js +28 -0
- package/dist/function-executor/QueryFunctionExecutor.d.ts +32 -0
- package/dist/function-executor/QueryFunctionExecutor.js +36 -0
- package/dist/function-executor/TimeFunctionExecutor.d.ts +6 -0
- package/dist/function-executor/TimeFunctionExecutor.js +25 -0
- package/dist/helper/ExpHelper.d.ts +4 -6
- package/dist/helper/ExpHelper.js +48 -34
- package/dist/helper/FunctionHelper.d.ts +11 -5
- package/dist/helper/FunctionHelper.js +38 -21
- package/dist/helper/PolicyHelper.d.ts +9 -4
- package/dist/helper/PolicyHelper.js +34 -14
- package/dist/interface/ExpHelperAware.d.ts +4 -0
- package/dist/interface/ExpHelperAware.js +3 -0
- package/dist/interface/FunctionHelperAware.d.ts +4 -0
- package/dist/interface/FunctionHelperAware.js +3 -0
- package/dist/model/policy/VarDeclarationInfo.d.ts +2 -1
- package/gen/CollectionPolicyLexer.js +544 -561
- package/gen/CollectionPolicyListener.js +0 -9
- package/gen/CollectionPolicyParser.js +704 -807
- package/gen/CollectionPolicyVisitor.js +0 -6
- package/gen/LexToken.js +569 -585
- package/index.js +11 -1
- package/package.json +1 -1
- package/resources/context_config/event_configs.json +120 -0
- package/resources/context_config/function_configs.json +224 -0
- package/resources/context_config/system_keywords.json +23 -0
- package/resources/zhaojn.json +1129 -29
- package/resources/zhaojn.sc +50 -6
- package/src/calculator/CalculatorFactory.ts +78 -0
- package/src/calculator/CalculatorFactoryBuilder.ts +33 -0
- package/src/calculator/ExpArgsGroupCalculator.ts +3 -2
- package/src/calculator/ExpBooleanCalculator.ts +21 -3
- package/src/calculator/ExpCalculator.ts +5 -3
- package/src/calculator/ExpConditionCalculator.ts +3 -2
- package/src/function-executor/ApiFunctionExecutor.ts +14 -0
- package/src/{interface/DefaultFunctionInvoke.ts → function-executor/DefaultFunctionExecutor.ts} +2 -2
- package/src/function-executor/DynamicFunctionExecutor.ts +41 -0
- package/src/function-executor/FunFunctionExecutor.ts +31 -0
- package/src/function-executor/KitFunctionExecutor.ts +29 -0
- package/src/function-executor/QueryFunctionExecutor.ts +45 -0
- package/src/function-executor/TimeFunctionExecutor.ts +25 -0
- package/src/helper/ExpHelper.ts +58 -43
- package/src/helper/FunctionHelper.ts +50 -29
- package/src/helper/PolicyHelper.ts +39 -15
- package/src/interface/ExpHelperAware.ts +5 -0
- package/src/interface/FunctionHelperAware.ts +5 -0
- package/src/model/policy/VarDeclarationInfo.ts +3 -1
- package/test/calculator/CalculatorTest.test.ts +10 -2
- package/test/function/FunAddElements.ts +4 -2
- package/test/function/FunctionFunExecutorTest.test.ts +2 -2
- package/test/helper/ExpHelperTest.test.ts +8 -3
- package/test/helper/FunctionHelperTest.test.ts +9 -1
- package/resources/function_definite.json +0 -79
- package/src/function-executor/FunctionHandle.ts +0 -45
- package/src/function-executor/api/FunctionApiExecutor.ts +0 -11
- package/src/function-executor/fun/FunctionFunExecutor.ts +0 -31
- package/src/function-executor/kit/FunctionKitExecutor.ts +0 -11
- package/src/function-executor/query/FunctionQueryExecutor.ts +0 -11
- package/src/function-executor/time/FunctionTimeExecutor.ts +0 -11
- package/test/function/FunctionHandleTest.test.ts +0 -9
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
const {CollectionPolicyVisitor} = require("./gen/CollectionPolicyVisitor");
|
|
2
|
+
const {ExpHelper} = require("./dist/helper/ExpHelper");
|
|
3
|
+
const {FunctionHelper} = require("./dist/helper/FunctionHelper");
|
|
4
|
+
const system_keywords = require("./resources/context_config/system_keywords.json");
|
|
5
|
+
const function_configs = require("./resources/context_config/function_configs.json");
|
|
6
|
+
const event_configs = require("./resources/context_config/event_configs.json");
|
|
2
7
|
|
|
3
8
|
class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
4
9
|
constructor() {
|
|
5
10
|
super();
|
|
11
|
+
// 签约条件
|
|
6
12
|
this.audienceSection = {};
|
|
13
|
+
// 全局定义(变量)声明
|
|
7
14
|
this.varDeclarationList = [];
|
|
15
|
+
this.varDeclarationMap = new Map();
|
|
16
|
+
// 状态机
|
|
8
17
|
this.stateMachine = [];
|
|
9
18
|
|
|
10
19
|
this.currentState = null;
|
|
11
20
|
this.currentStateObj = null;
|
|
12
21
|
this.currentEventElem = null;
|
|
22
|
+
|
|
23
|
+
this.expHelper = new ExpHelper();
|
|
24
|
+
this.functionHelper = new FunctionHelper();
|
|
25
|
+
this.functionHelper.setExpHelper(this.expHelper);
|
|
13
26
|
}
|
|
14
27
|
|
|
15
28
|
visitAudience_clause(ctx) {
|
|
@@ -37,6 +50,14 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
37
50
|
varValueObj: this.visitAssignment_clause(ctx.assignment_clause())
|
|
38
51
|
};
|
|
39
52
|
|
|
53
|
+
if (system_keywords.varList.indexOf(varElem.varName) !== -1) {
|
|
54
|
+
throw new Error(`不能和系统关键字同名 --- ${varElem.varName}`);
|
|
55
|
+
}
|
|
56
|
+
if (this.varDeclarationMap.has(varElem.varName)) {
|
|
57
|
+
throw new Error(`不能重复定义同名的全局变量 --- ${varElem.varName}`);
|
|
58
|
+
} else {
|
|
59
|
+
this.varDeclarationMap.set(varElem.varName, varElem);
|
|
60
|
+
}
|
|
40
61
|
this.varDeclarationList.push(varElem);
|
|
41
62
|
|
|
42
63
|
return varElem;
|
|
@@ -51,6 +72,14 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
51
72
|
varValueObj: this.visitAssignment_clause(ctx.assignment_clause())
|
|
52
73
|
};
|
|
53
74
|
|
|
75
|
+
if (system_keywords.varList.indexOf(varElem.varName) !== -1) {
|
|
76
|
+
throw new Error(`不能和系统关键字同名 --- ${varElem.varName}`);
|
|
77
|
+
}
|
|
78
|
+
if (this.varDeclarationMap.has(varElem.varName)) {
|
|
79
|
+
throw new Error(`不能重复定义同名的全局变量 --- ${varElem.varName}`);
|
|
80
|
+
} else {
|
|
81
|
+
this.varDeclarationMap.set(varElem.varName, varElem);
|
|
82
|
+
}
|
|
54
83
|
this.varDeclarationList.push(varElem);
|
|
55
84
|
|
|
56
85
|
return varElem;
|
|
@@ -73,6 +102,14 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
73
102
|
}
|
|
74
103
|
varElem["paramList"] = paramList;
|
|
75
104
|
|
|
105
|
+
if (system_keywords.varList.indexOf(varElem.varName) !== -1) {
|
|
106
|
+
throw new Error(`不能和系统关键字同名 --- ${varElem.varName}`);
|
|
107
|
+
}
|
|
108
|
+
if (this.varDeclarationMap.has(varElem.varName)) {
|
|
109
|
+
throw new Error(`不能重复定义同名的全局变量 --- ${varElem.varName}`);
|
|
110
|
+
} else {
|
|
111
|
+
this.varDeclarationMap.set(varElem.varName, varElem);
|
|
112
|
+
}
|
|
76
113
|
this.varDeclarationList.push(varElem);
|
|
77
114
|
|
|
78
115
|
return varElem;
|
|
@@ -90,11 +127,19 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
90
127
|
let assignmentElem = {
|
|
91
128
|
type: "varAssigment",
|
|
92
129
|
content: ctx.getText(),
|
|
93
|
-
varName: ctx.variable_assignment().
|
|
130
|
+
varName: ctx.variable_assignment().ID().getText(),
|
|
94
131
|
varValue: ctx.variable_assignment().assignment_clause().getText(),
|
|
95
132
|
varValueObj: super.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
|
|
96
133
|
};
|
|
97
134
|
|
|
135
|
+
if (this.varDeclarationMap.has(assignmentElem.varName)) {
|
|
136
|
+
throw new Error(`全局变量不可以被再次赋值 --- ${assignmentElem.varName}`);
|
|
137
|
+
}
|
|
138
|
+
if (this.currentStateObj["assignments"].find(elem => {
|
|
139
|
+
return elem.varName === assignmentElem.varName;
|
|
140
|
+
}) == null) {
|
|
141
|
+
throw new Error(`该局部变量未声明 --- ${assignmentElem.varName}`);
|
|
142
|
+
}
|
|
98
143
|
this.currentStateObj["assignments"].push(assignmentElem);
|
|
99
144
|
|
|
100
145
|
return assignmentElem;
|
|
@@ -109,6 +154,14 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
109
154
|
varValueObj: super.visitAssignment_clause(ctx.assignment_clause())
|
|
110
155
|
};
|
|
111
156
|
|
|
157
|
+
if (this.varDeclarationMap.has(assignmentElem.varName)) {
|
|
158
|
+
throw new Error(`局部变量不可以和全局变量同名 --- ${assignmentElem.varName}`);
|
|
159
|
+
}
|
|
160
|
+
if (this.currentStateObj["assignments"].find(elem => {
|
|
161
|
+
return elem.varName === assignmentElem.varName;
|
|
162
|
+
}) != null) {
|
|
163
|
+
throw new Error(`该局部变量已声明 --- ${assignmentElem.varName}`);
|
|
164
|
+
}
|
|
112
165
|
this.currentStateObj["assignments"].push(assignmentElem);
|
|
113
166
|
|
|
114
167
|
return assignmentElem;
|
|
@@ -132,6 +185,24 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
132
185
|
this.visitAction_section(ctx.action_section());
|
|
133
186
|
}
|
|
134
187
|
|
|
188
|
+
let event_config = event_configs.find(ec => {
|
|
189
|
+
let suitable = true;
|
|
190
|
+
if (this.currentEventElem["eventPath"] != null) {
|
|
191
|
+
if (this.currentEventElem["eventPath"] !== ec["path"]) {
|
|
192
|
+
suitable = false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
if (this.currentEventElem["eventName"] !== ec["name"]) {
|
|
196
|
+
suitable = false;
|
|
197
|
+
}
|
|
198
|
+
return suitable;
|
|
199
|
+
});
|
|
200
|
+
if (event_config != null) {
|
|
201
|
+
if (!this.functionHelper.argsMatch(this.currentEventElem["eventParamList"], event_config["paramList"])) {
|
|
202
|
+
throw new Error(`参数列表错误 ----- ${ctx.event().getText()}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
135
206
|
this.currentStateObj["events"].push(this.currentEventElem);
|
|
136
207
|
|
|
137
208
|
return this.currentEventElem;
|
|
@@ -172,7 +243,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
172
243
|
type: "varAssignment",
|
|
173
244
|
content: "ctx.getText()",
|
|
174
245
|
actionObj: {
|
|
175
|
-
varName: ctx.variable_assignment().
|
|
246
|
+
varName: ctx.variable_assignment().ID().getText(),
|
|
176
247
|
varValue: ctx.variable_assignment().assignment_clause().getText(),
|
|
177
248
|
varValueObj: this.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
|
|
178
249
|
}
|
|
@@ -199,6 +270,20 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
199
270
|
}
|
|
200
271
|
}
|
|
201
272
|
|
|
273
|
+
visitExpression_collection_clause(ctx) {
|
|
274
|
+
if (ctx.function_call() != null) {
|
|
275
|
+
return this.visitFunction_call(ctx.function_call());
|
|
276
|
+
} else if (ctx.variable_chain() != null) {
|
|
277
|
+
return this.visitVariable_chain(ctx.variable_chain());
|
|
278
|
+
} else if (ctx.condition_expression() != null) {
|
|
279
|
+
return this.visitCondition_expression(ctx.condition_expression());
|
|
280
|
+
} else if (ctx.collection_expression() != null) {
|
|
281
|
+
return this.visitCollection_expression(ctx.collection_expression());
|
|
282
|
+
} else {
|
|
283
|
+
return super.visitExpression_collection_clause(ctx);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
202
287
|
visitExpression(ctx) {
|
|
203
288
|
if (ctx.expression_op() != null) {
|
|
204
289
|
return {
|
|
@@ -331,8 +416,8 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
331
416
|
visitExpBooleanOpCollection(ctx) {
|
|
332
417
|
return {
|
|
333
418
|
expType: "expBooleanOpCollection",
|
|
334
|
-
var1: this.visitBoolean_atom_or_expression(ctx.boolean_atom_or_expression()),
|
|
335
|
-
var2:
|
|
419
|
+
var1: this.visitBoolean_atom_or_expression(ctx.boolean_atom_or_expression(0)),
|
|
420
|
+
var2: this.visitExpression_collection_clause(ctx.expression_collection_clause()),
|
|
336
421
|
op: ctx.boolean_op_collection().getText()
|
|
337
422
|
};
|
|
338
423
|
}
|
|
@@ -499,6 +584,24 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
499
584
|
result["varChain"] = ctx.variable_chain().getText();
|
|
500
585
|
}
|
|
501
586
|
|
|
587
|
+
let function_config = function_configs.find(fc => {
|
|
588
|
+
let suitable = true;
|
|
589
|
+
if (result["varChain"] != null) {
|
|
590
|
+
if (result["varChain"] !== fc["varChain"]) {
|
|
591
|
+
suitable = false;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
if (result["funcName"] !== fc["funcName"]) {
|
|
595
|
+
suitable = false;
|
|
596
|
+
}
|
|
597
|
+
return suitable;
|
|
598
|
+
});
|
|
599
|
+
if (function_config != null) {
|
|
600
|
+
if (!this.functionHelper.argsMatch(result["paramList"], function_config["paramList"])) {
|
|
601
|
+
throw new Error(`参数列表错误 ----- ${ctx.getText()}`);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
|
|
502
605
|
return result;
|
|
503
606
|
}
|
|
504
607
|
|
|
@@ -530,14 +633,15 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
|
|
|
530
633
|
|
|
531
634
|
visitVariable_chain(ctx) {
|
|
532
635
|
let varType = "normal";
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
}
|
|
636
|
+
let content = ctx.getText();
|
|
637
|
+
|
|
536
638
|
if (ctx.variable().environment_event() != null) {
|
|
537
639
|
varType = "event";
|
|
640
|
+
} else if (content === "policy" || content === "contract") {
|
|
641
|
+
varType = "context";
|
|
538
642
|
}
|
|
539
643
|
|
|
540
|
-
return {expType: "variableChain", varType: varType, content:
|
|
644
|
+
return {expType: "variableChain", varType: varType, content: content};
|
|
541
645
|
}
|
|
542
646
|
}
|
|
543
647
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FunctionHelperAware } from "../interface/FunctionHelperAware";
|
|
2
|
+
import { FunctionHelper } from "../helper/FunctionHelper";
|
|
3
|
+
import { ExpHelperAware } from "../interface/ExpHelperAware";
|
|
4
|
+
import { ExpHelper } from "../helper/ExpHelper";
|
|
5
|
+
import { Calculator } from "../interface/Calculator";
|
|
6
|
+
export declare class CalculatorFactory implements FunctionHelperAware, ExpHelperAware {
|
|
7
|
+
private expTypeMap;
|
|
8
|
+
private expCalculator;
|
|
9
|
+
private expBooleanCalculator;
|
|
10
|
+
private expConditionCalculator;
|
|
11
|
+
private expArgsGroupCalculator;
|
|
12
|
+
constructor();
|
|
13
|
+
getCalculatorByExpType(expType: string): Calculator;
|
|
14
|
+
init(): void;
|
|
15
|
+
private initExp;
|
|
16
|
+
private initExpBoolean;
|
|
17
|
+
private initExpCondition;
|
|
18
|
+
private initExpArgsGroup;
|
|
19
|
+
setFunctionHelper(functionHelper: FunctionHelper): void;
|
|
20
|
+
setExpHelper(expHelper: ExpHelper): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CalculatorFactory = void 0;
|
|
4
|
+
const ExpCalculator_1 = require("./ExpCalculator");
|
|
5
|
+
const ExpBooleanCalculator_1 = require("./ExpBooleanCalculator");
|
|
6
|
+
const ExpConditionCalculator_1 = require("./ExpConditionCalculator");
|
|
7
|
+
const ExpArgsGroupCalculator_1 = require("./ExpArgsGroupCalculator");
|
|
8
|
+
class CalculatorFactory {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.expTypeMap = new Map();
|
|
11
|
+
this.expCalculator = new ExpCalculator_1.ExpCalculator();
|
|
12
|
+
this.expBooleanCalculator = new ExpBooleanCalculator_1.ExpBooleanCalculator();
|
|
13
|
+
this.expConditionCalculator = new ExpConditionCalculator_1.ExpConditionCalculator();
|
|
14
|
+
this.expArgsGroupCalculator = new ExpArgsGroupCalculator_1.ExpArgsGroupCalculator();
|
|
15
|
+
}
|
|
16
|
+
getCalculatorByExpType(expType) {
|
|
17
|
+
return this.expTypeMap.get(expType);
|
|
18
|
+
}
|
|
19
|
+
init() {
|
|
20
|
+
this.initExp();
|
|
21
|
+
this.initExpBoolean();
|
|
22
|
+
this.initExpCondition();
|
|
23
|
+
this.initExpArgsGroup();
|
|
24
|
+
}
|
|
25
|
+
initExp() {
|
|
26
|
+
this.expTypeMap.set("expOp", this.expCalculator);
|
|
27
|
+
this.expTypeMap.set("number", this.expCalculator);
|
|
28
|
+
this.expTypeMap.set("string", this.expCalculator);
|
|
29
|
+
this.expTypeMap.set("entity", this.expCalculator);
|
|
30
|
+
this.expTypeMap.set("variableChain", this.expCalculator);
|
|
31
|
+
this.expTypeMap.set("functionCall", this.expCalculator);
|
|
32
|
+
this.expTypeMap.set("expParen", this.expCalculator);
|
|
33
|
+
this.expTypeMap.set("expSigned", this.expCalculator);
|
|
34
|
+
}
|
|
35
|
+
initExpBoolean() {
|
|
36
|
+
this.expTypeMap.set("expBooleanOpLogic", this.expBooleanCalculator);
|
|
37
|
+
this.expTypeMap.set("expBooleanOpCollection", this.expBooleanCalculator);
|
|
38
|
+
this.expTypeMap.set("expBooleanOpCompare", this.expBooleanCalculator);
|
|
39
|
+
this.expTypeMap.set("expBooleanParen", this.expBooleanCalculator);
|
|
40
|
+
this.expTypeMap.set("boolean", this.expBooleanCalculator);
|
|
41
|
+
}
|
|
42
|
+
initExpCondition() {
|
|
43
|
+
this.expTypeMap.set("expCondition", this.expConditionCalculator);
|
|
44
|
+
}
|
|
45
|
+
initExpArgsGroup() {
|
|
46
|
+
this.expTypeMap.set("expArgsGroup", this.expArgsGroupCalculator);
|
|
47
|
+
}
|
|
48
|
+
setFunctionHelper(functionHelper) {
|
|
49
|
+
this.expCalculator.setFunctionHelper(functionHelper);
|
|
50
|
+
}
|
|
51
|
+
setExpHelper(expHelper) {
|
|
52
|
+
this.expCalculator.setExpHelper(expHelper);
|
|
53
|
+
this.expBooleanCalculator.setExpHelper(expHelper);
|
|
54
|
+
this.expConditionCalculator.setExpHelper(expHelper);
|
|
55
|
+
this.expArgsGroupCalculator.setExpHelper(expHelper);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.CalculatorFactory = CalculatorFactory;
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsY3VsYXRvckZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FsY3VsYXRvci9DYWxjdWxhdG9yRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBOEM7QUFDOUMsaUVBQTREO0FBQzVELHFFQUFnRTtBQUNoRSxxRUFBZ0U7QUFPaEUsTUFBYSxpQkFBaUI7SUFZMUI7UUFWUSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7UUFXL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLDZCQUFhLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSwyQ0FBb0IsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLCtDQUFzQixFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksK0NBQXNCLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBZTtRQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxPQUFPO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsaUJBQWlCLENBQUMsY0FBOEI7UUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW9CO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDSjtBQW5FRCw4Q0FtRUMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FunctionHelperAware } from "../interface/FunctionHelperAware";
|
|
2
|
+
import { ExpHelperAware } from "../interface/ExpHelperAware";
|
|
3
|
+
import { FunctionHelper } from "../helper/FunctionHelper";
|
|
4
|
+
import { ExpHelper } from "../helper/ExpHelper";
|
|
5
|
+
import { CalculatorFactory } from "./CalculatorFactory";
|
|
6
|
+
export declare class CalculatorFactoryBuilder implements FunctionHelperAware, ExpHelperAware {
|
|
7
|
+
private functionHelper;
|
|
8
|
+
private expHelper;
|
|
9
|
+
build(): CalculatorFactory;
|
|
10
|
+
setFunctionHelper(functionHelper: FunctionHelper): void;
|
|
11
|
+
setExpHelper(expHelper: ExpHelper): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CalculatorFactoryBuilder = void 0;
|
|
4
|
+
const CalculatorFactory_1 = require("./CalculatorFactory");
|
|
5
|
+
class CalculatorFactoryBuilder {
|
|
6
|
+
build() {
|
|
7
|
+
let calculatorFactory = new CalculatorFactory_1.CalculatorFactory();
|
|
8
|
+
if (this.functionHelper != null) {
|
|
9
|
+
calculatorFactory.setFunctionHelper(this.functionHelper);
|
|
10
|
+
}
|
|
11
|
+
if (this.expHelper != null) {
|
|
12
|
+
calculatorFactory.setExpHelper(this.expHelper);
|
|
13
|
+
}
|
|
14
|
+
calculatorFactory.init();
|
|
15
|
+
return calculatorFactory;
|
|
16
|
+
}
|
|
17
|
+
setFunctionHelper(functionHelper) {
|
|
18
|
+
this.functionHelper = functionHelper;
|
|
19
|
+
}
|
|
20
|
+
setExpHelper(expHelper) {
|
|
21
|
+
this.expHelper = expHelper;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.CalculatorFactoryBuilder = CalculatorFactoryBuilder;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsY3VsYXRvckZhY3RvcnlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NhbGN1bGF0b3IvQ2FsY3VsYXRvckZhY3RvcnlCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLDJEQUFzRDtBQUV0RCxNQUFhLHdCQUF3QjtJQU1qQyxLQUFLO1FBQ0QsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLHFDQUFpQixFQUFFLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzlCLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pCLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpCLE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQThCO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBMUJELDREQTBCQyJ9
|
|
@@ -2,10 +2,10 @@ import { Calculator } from "../interface/Calculator";
|
|
|
2
2
|
import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
|
|
3
3
|
import { VarContextCapable } from "../interface/VarContextCapable";
|
|
4
4
|
import { ExpHelper } from "../helper/ExpHelper";
|
|
5
|
-
import {
|
|
6
|
-
export declare class ExpArgsGroupCalculator implements Calculator {
|
|
5
|
+
import { ExpHelperAware } from "../interface/ExpHelperAware";
|
|
6
|
+
export declare class ExpArgsGroupCalculator implements Calculator, ExpHelperAware {
|
|
7
7
|
private expHelper;
|
|
8
8
|
getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any;
|
|
9
|
-
generateExpArgsGroupValue
|
|
9
|
+
private generateExpArgsGroupValue;
|
|
10
10
|
setExpHelper(expHelper: ExpHelper): void;
|
|
11
11
|
}
|
|
@@ -23,4 +23,4 @@ class ExpArgsGroupCalculator {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
exports.ExpArgsGroupCalculator = ExpArgsGroupCalculator;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQXJnc0dyb3VwQ2FsY3VsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWxjdWxhdG9yL0V4cEFyZ3NHcm91cENhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsTUFBYSxzQkFBc0I7SUFJL0IsV0FBVyxDQUFDLE1BQTRCLEVBQUUsaUJBQXlDO1FBQy9FLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxZQUEwQixFQUFFLGlCQUF5QztRQUNuRyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBYTtRQUNiLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2pHLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBM0JELHdEQTJCQyJ9
|
|
@@ -2,12 +2,12 @@ import { Calculator } from "../interface/Calculator";
|
|
|
2
2
|
import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
|
|
3
3
|
import { VarContextCapable } from "../interface/VarContextCapable";
|
|
4
4
|
import { ExpHelper } from "../helper/ExpHelper";
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
export declare class ExpBooleanCalculator implements Calculator {
|
|
5
|
+
import { ExpHelperAware } from "../interface/ExpHelperAware";
|
|
6
|
+
export declare class ExpBooleanCalculator implements Calculator, ExpHelperAware {
|
|
8
7
|
private expHelper;
|
|
9
8
|
getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): boolean;
|
|
10
|
-
calculateExpBooleanOpLogic
|
|
11
|
-
|
|
9
|
+
private calculateExpBooleanOpLogic;
|
|
10
|
+
private calculateExpBooleanOpCollection;
|
|
11
|
+
private calculateExpBooleanOpCompare;
|
|
12
12
|
setExpHelper(expHelper: ExpHelper): void;
|
|
13
13
|
}
|
|
@@ -6,9 +6,15 @@ class ExpBooleanCalculator {
|
|
|
6
6
|
if (varObj.expType == "expBooleanOpLogic") {
|
|
7
7
|
return this.calculateExpBooleanOpLogic(varObj, varContextCapable);
|
|
8
8
|
}
|
|
9
|
+
if (varObj.expType == "expBooleanOpCollection") {
|
|
10
|
+
return this.calculateExpBooleanOpCollection(varObj, varContextCapable);
|
|
11
|
+
}
|
|
9
12
|
if (varObj.expType == "expBooleanOpCompare") {
|
|
10
13
|
return this.calculateExpBooleanOpCompare(varObj, varContextCapable);
|
|
11
14
|
}
|
|
15
|
+
if (varObj.expType == "expBooleanParen") {
|
|
16
|
+
return this.expHelper.getExpValue(varObj["var1"], varContextCapable);
|
|
17
|
+
}
|
|
12
18
|
if (varObj.expType == "boolean") {
|
|
13
19
|
return varObj["value"] == "true";
|
|
14
20
|
}
|
|
@@ -30,6 +36,14 @@ class ExpBooleanCalculator {
|
|
|
30
36
|
}
|
|
31
37
|
return false;
|
|
32
38
|
}
|
|
39
|
+
calculateExpBooleanOpCollection(expBooleanOpCollection, varContextCapable) {
|
|
40
|
+
let var1 = this.expHelper.getExpValue(expBooleanOpCollection.var1, varContextCapable);
|
|
41
|
+
let var2 = this.expHelper.getExpValue(expBooleanOpCollection.var2, varContextCapable);
|
|
42
|
+
if (expBooleanOpCollection.op == "in") {
|
|
43
|
+
return var2.indexOf(var1) != -1;
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
33
47
|
calculateExpBooleanOpCompare(expBooleanOpCompare, varContextCapable) {
|
|
34
48
|
let var1 = this.expHelper.getExpValue(expBooleanOpCompare.var1, varContextCapable);
|
|
35
49
|
let var2 = this.expHelper.getExpValue(expBooleanOpCompare.var2, varContextCapable);
|
|
@@ -64,4 +78,4 @@ class ExpBooleanCalculator {
|
|
|
64
78
|
}
|
|
65
79
|
}
|
|
66
80
|
exports.ExpBooleanCalculator = ExpBooleanCalculator;
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQm9vbGVhbkNhbGN1bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FsY3VsYXRvci9FeHBCb29sZWFuQ2FsY3VsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFTQSxNQUFhLG9CQUFvQjtJQUk3QixXQUFXLENBQUMsTUFBNEIsRUFBRSxpQkFBeUM7UUFDL0UsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1lBQzdDLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLE1BQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNyQyxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxpQkFBb0MsRUFBRSxpQkFBeUM7UUFDOUcsSUFBSSxJQUFJ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
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { ExpOp } from "../model/exp/ExpOp";
|
|
2
1
|
import { VarContextCapable } from "../interface/VarContextCapable";
|
|
3
2
|
import { FunctionHelper } from "../helper/FunctionHelper";
|
|
4
3
|
import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
|
|
5
4
|
import { Calculator } from "../interface/Calculator";
|
|
6
5
|
import { ExpHelper } from "../helper/ExpHelper";
|
|
7
|
-
import {
|
|
8
|
-
|
|
6
|
+
import { FunctionHelperAware } from "../interface/FunctionHelperAware";
|
|
7
|
+
import { ExpHelperAware } from "../interface/ExpHelperAware";
|
|
8
|
+
export declare class ExpCalculator implements Calculator, FunctionHelperAware, ExpHelperAware {
|
|
9
9
|
private functionHelper;
|
|
10
10
|
private expHelper;
|
|
11
11
|
getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any;
|
|
12
|
-
calculateExpOp
|
|
13
|
-
calculateExpSigned
|
|
12
|
+
private calculateExpOp;
|
|
13
|
+
private calculateExpSigned;
|
|
14
14
|
setFunctionHelper(functionHelper: FunctionHelper): void;
|
|
15
15
|
setExpHelper(expHelper: ExpHelper): void;
|
|
16
16
|
}
|
|
@@ -52,4 +52,4 @@ class ExpCalculator {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
exports.ExpCalculator = ExpCalculator;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQ2FsY3VsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWxjdWxhdG9yL0V4cENhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsTUFBYSxhQUFhO0lBTXRCLFdBQVcsQ0FBQyxNQUE0QixFQUFFLGlCQUF5QztRQUMvRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7WUFDN0IsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM3QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEMsT0FBTyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQVksRUFBRSxpQkFBeUM7UUFDMUUsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNyRSxJQUFJLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxTQUFvQixFQUFFLGlCQUF5QztRQUN0RixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDekUsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQThCO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBM0RELHNDQTJEQyJ9
|
|
@@ -2,10 +2,10 @@ import { Calculator } from "../interface/Calculator";
|
|
|
2
2
|
import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
|
|
3
3
|
import { VarContextCapable } from "../interface/VarContextCapable";
|
|
4
4
|
import { ExpHelper } from "../helper/ExpHelper";
|
|
5
|
-
import {
|
|
6
|
-
export declare class ExpConditionCalculator implements Calculator {
|
|
5
|
+
import { ExpHelperAware } from "../interface/ExpHelperAware";
|
|
6
|
+
export declare class ExpConditionCalculator implements Calculator, ExpHelperAware {
|
|
7
7
|
private expHelper;
|
|
8
8
|
getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any;
|
|
9
|
-
generateExpConditionValue
|
|
9
|
+
private generateExpConditionValue;
|
|
10
10
|
setExpHelper(expHelper: ExpHelper): void;
|
|
11
11
|
}
|
|
@@ -33,4 +33,4 @@ class ExpConditionCalculator {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
exports.ExpConditionCalculator = ExpConditionCalculator;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQ29uZGl0aW9uQ2FsY3VsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWxjdWxhdG9yL0V4cENvbmRpdGlvbkNhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsTUFBYSxzQkFBc0I7SUFJL0IsV0FBVyxDQUFDLE1BQTRCLEVBQUUsaUJBQXlDO1FBQy9FLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxZQUEwQixFQUFFLGlCQUF5QztRQUNuRyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBYTtRQUNiLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25DLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRSxDQUFDO29CQUNsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7b0JBQ2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLENBQUM7cUJBQU0sQ0FBQztvQkFDSixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztvQkFDcEYsSUFBSSxNQUFNLEVBQUUsQ0FBQzt3QkFDVCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7d0JBQ2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hCLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBcENELHdEQW9DQyJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DynamicFunctionExecutor } from "./DynamicFunctionExecutor";
|
|
2
|
+
export declare class ApiFunctionExecutor extends DynamicFunctionExecutor {
|
|
3
|
+
getFunctionCodeMap(): Map<string, string>;
|
|
4
|
+
F_001(args: {
|
|
5
|
+
node?: string;
|
|
6
|
+
subject?: any;
|
|
7
|
+
policyId?: string;
|
|
8
|
+
status?: number;
|
|
9
|
+
licensee?: any;
|
|
10
|
+
}): number;
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiFunctionExecutor = void 0;
|
|
4
|
+
const DynamicFunctionExecutor_1 = require("./DynamicFunctionExecutor");
|
|
5
|
+
class ApiFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExecutor {
|
|
6
|
+
getFunctionCodeMap() {
|
|
7
|
+
return new Map([
|
|
8
|
+
["api.contract.querySignCount", "F_001"]
|
|
9
|
+
]);
|
|
10
|
+
}
|
|
11
|
+
F_001(args) {
|
|
12
|
+
throw new Error("该函数未实现【api.contract.querySignCount】");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.ApiFunctionExecutor = ApiFunctionExecutor;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpRnVuY3Rpb25FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdW5jdGlvbi1leGVjdXRvci9BcGlGdW5jdGlvbkV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFrRTtBQUVsRSxNQUFhLG1CQUFvQixTQUFRLGlEQUF1QjtJQUU1RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLDZCQUE2QixFQUFFLE9BQU8sQ0FBQztTQUMzQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQTBGO1FBQzVGLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0o7QUFYRCxrREFXQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultFunctionExecutor = void 0;
|
|
4
|
+
class DefaultFunctionExecutor {
|
|
5
|
+
invoke(functionName, args) {
|
|
6
|
+
throw new Error("这是个空实现,不能被调用!");
|
|
7
|
+
}
|
|
8
|
+
invokeEnable(functionName) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.DefaultFunctionExecutor = DefaultFunctionExecutor;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBc0IsdUJBQXVCO0lBRXpDLE1BQU0sQ0FBQyxZQUFvQixFQUFFLElBQVc7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQW9CO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSjtBQVRELDBEQVNDIn0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultFunctionInvoke = void 0;
|
|
4
|
+
class DefaultFunctionInvoke {
|
|
5
|
+
invoke(functionName, args) {
|
|
6
|
+
throw new Error("这是个空实现,不能被调用!");
|
|
7
|
+
}
|
|
8
|
+
invokeEnable(functionName) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.DefaultFunctionInvoke = DefaultFunctionInvoke;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEZ1bmN0aW9uSW52b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Z1bmN0aW9uLWV4ZWN1dG9yL0RlZmF1bHRGdW5jdGlvbkludm9rZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFzQixxQkFBcUI7SUFFdkMsTUFBTSxDQUFDLFlBQW9CLEVBQUUsSUFBVztRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZLENBQUMsWUFBb0I7UUFDN0IsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKO0FBVEQsc0RBU0MifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DefaultFunctionExecutor } from "./DefaultFunctionExecutor";
|
|
2
|
+
import { FunctionInvoke } from "../interface/FunctionInvoke";
|
|
3
|
+
export declare class DynamicFunctionExecutor extends DefaultFunctionExecutor {
|
|
4
|
+
protected executorsMap: Map<string, FunctionInvoke>;
|
|
5
|
+
invokeEnable(functionName: string): boolean;
|
|
6
|
+
invoke(functionName: string, args: any[]): any;
|
|
7
|
+
addExecutor(functionName: string, executor: FunctionInvoke): void;
|
|
8
|
+
getFunctionCodeMap(): Map<string, string>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DynamicFunctionExecutor = void 0;
|
|
4
|
+
const DefaultFunctionExecutor_1 = require("./DefaultFunctionExecutor");
|
|
5
|
+
class DynamicFunctionExecutor extends DefaultFunctionExecutor_1.DefaultFunctionExecutor {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.executorsMap = new Map();
|
|
9
|
+
}
|
|
10
|
+
invokeEnable(functionName) {
|
|
11
|
+
return this.executorsMap.has(functionName) || this.getFunctionCodeMap().has(functionName);
|
|
12
|
+
}
|
|
13
|
+
invoke(functionName, args) {
|
|
14
|
+
if (this.executorsMap.has(functionName)) {
|
|
15
|
+
return this.executorsMap.get(functionName).invoke(functionName, args);
|
|
16
|
+
}
|
|
17
|
+
if (this.getFunctionCodeMap().has(functionName)) {
|
|
18
|
+
let functionCode = this.getFunctionCodeMap().get(functionName);
|
|
19
|
+
let argsStr = "";
|
|
20
|
+
for (let i = 0; i < args.length; i++) {
|
|
21
|
+
if (i == 0) {
|
|
22
|
+
argsStr = JSON.stringify(args[i]);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
argsStr = argsStr + "," + JSON.stringify(args[i]);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
let expStr = `this.${functionCode}(${argsStr})`;
|
|
29
|
+
return eval(expStr);
|
|
30
|
+
}
|
|
31
|
+
throw new Error("该函数未实现");
|
|
32
|
+
}
|
|
33
|
+
addExecutor(functionName, executor) {
|
|
34
|
+
this.executorsMap.set(functionName, executor);
|
|
35
|
+
}
|
|
36
|
+
getFunctionCodeMap() {
|
|
37
|
+
return new Map();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.DynamicFunctionExecutor = DynamicFunctionExecutor;
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY0Z1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvRHluYW1pY0Z1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUVBQWtFO0FBR2xFLE1BQWEsdUJBQXdCLFNBQVEsaURBQXVCO0lBQXBFOztRQUVjLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFtQy9ELENBQUM7SUFqQ0csWUFBWSxDQUFDLFlBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBb0IsRUFBRSxJQUFXO1FBQ3BDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDOUMsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9ELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDVCxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU8sR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxNQUFNLEdBQUcsUUFBUSxZQUFZLElBQUksT0FBTyxHQUFHLENBQUM7WUFFaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxZQUFvQixFQUFFLFFBQXdCO1FBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUNyQyxDQUFDO0NBQ0o7QUFyQ0QsMERBcUNDIn0=
|