@freelog/freelog-cg-collection 1.0.8 → 1.0.10

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.
@@ -2,12 +2,13 @@ const {CollectionPolicyVisitor} = require("./gen/CollectionPolicyVisitor");
2
2
  const {ExpHelper} = require("./dist/helper/ExpHelper");
3
3
  const {FunctionHelper} = require("./dist/helper/FunctionHelper");
4
4
  const system_keywords = require("./resources/context_config/system_keywords.json");
5
- const function_configs = require("./resources/context_config/function_configs.json");
5
+ const service_state_configs = require("./resources/context_config/service_state_configs.json");
6
6
  const event_configs = require("./resources/context_config/event_configs.json");
7
7
 
8
8
  class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
9
- constructor() {
9
+ constructor(serviceName) {
10
10
  super();
11
+ this.serviceName = serviceName;
11
12
  // 签约条件
12
13
  this.audienceSection = {};
13
14
  // 全局定义(变量)声明
@@ -19,10 +20,25 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
19
20
  this.currentState = null;
20
21
  this.currentStateObj = null;
21
22
  this.currentEventElem = null;
23
+ this.parseState = {inActionSection: 0};
22
24
 
23
25
  this.expHelper = new ExpHelper();
24
26
  this.functionHelper = new FunctionHelper();
25
27
  this.functionHelper.setExpHelper(this.expHelper);
28
+ this.expHelper.setFunctionHelper(this.functionHelper);
29
+ }
30
+
31
+ generateVarValueTypeList(varValueList) {
32
+ let varValueListTmp = [...varValueList].reverse();
33
+ return varValueListTmp.map(vv => {
34
+ return {
35
+ varName: vv["varName"], varValueType: vv["varValueType"]
36
+ };
37
+ });
38
+ }
39
+
40
+ getVarDeclarationValueTypeList() {
41
+ return this.generateVarValueTypeList(this.varDeclarationList);
26
42
  }
27
43
 
28
44
  visitAudience_clause(ctx) {
@@ -36,9 +52,11 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
36
52
  let conditions = this.visitExpression_param_list(ctx.expression_param_list());
37
53
  for (let condition of conditions) {
38
54
  if (condition["paramName"] == null) {
39
- throw new Error(`参数名不可为空 ${condition}`);
55
+ throw new Error(`参数名不可为空 ${condition["content"]}`);
56
+ }
57
+ if (["echoSubject", "labels", "exps"].indexOf(condition["paramName"]) === -1) {
58
+ throw new Error(`无效的参数名 ${condition["content"]}`);
40
59
  }
41
- console.log(condition);
42
60
  }
43
61
  this.audienceSection["conditions"] = conditions;
44
62
  } else {
@@ -65,6 +83,9 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
65
83
  } else {
66
84
  this.varDeclarationMap.set(varElem.varName, varElem);
67
85
  }
86
+ varElem["varValueType"] = this.expHelper.guessBaseTypeByExpType(varElem["varValueObj"], this.getVarDeclarationValueTypeList());
87
+ console.debug(`>> ${ctx.getText()} --> ${varElem["varValueType"]}`);
88
+
68
89
  this.varDeclarationList.push(varElem);
69
90
 
70
91
  return varElem;
@@ -87,6 +108,9 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
87
108
  } else {
88
109
  this.varDeclarationMap.set(varElem.varName, varElem);
89
110
  }
111
+ varElem["varValueType"] = this.expHelper.guessBaseTypeByExpType(varElem["varValueObj"], this.getVarDeclarationValueTypeList());
112
+ console.debug(`>> ${ctx.getText()} --> ${varElem["varValueType"]}`);
113
+
90
114
  this.varDeclarationList.push(varElem);
91
115
 
92
116
  return varElem;
@@ -125,9 +149,33 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
125
149
  visitState_definition(ctx) {
126
150
  this.currentState = ctx.state_name().getText();
127
151
  this.currentStateObj = {stateName: this.currentState, assignments: [], events: []};
152
+ if (ctx.service_state_section() != null) {
153
+ this.currentStateObj["serviceStateSection"] = this.visitService_state_section(ctx.service_state_section());
154
+ }
155
+ if (ctx.state_context_args_section() != null) {
156
+ this.currentStateObj["stateContextArgs"] = ctx.state_context_args_section().ID().map(i => i.getText());
157
+ }
128
158
  this.stateMachine.push(this.currentStateObj);
129
159
 
130
- return super.visitState_definition(ctx);
160
+ let result = super.visitState_definition(ctx);
161
+ this.currentState = null;
162
+ this.currentStateObj = null;
163
+ return result;
164
+ }
165
+
166
+ visitService_state_section(ctx) {
167
+ let serviceStateSection = {};
168
+ if (ctx.service_state() != null) {
169
+ serviceStateSection["serviceState"] = ctx.service_state().getText();
170
+ if (service_state_configs[this.serviceName].indexOf(serviceStateSection["serviceState"]) === -1) {
171
+ throw new Error(`该颜色态颜色不被允许 --- ${serviceStateSection["serviceState"]}`);
172
+ }
173
+ }
174
+ if (ctx.service_state_collection() != null) {
175
+ serviceStateSection["serviceStateCollection"] = ctx.service_state_collection().ID().map(i => i.getText());
176
+ }
177
+
178
+ return serviceStateSection;
131
179
  }
132
180
 
133
181
  visitFsmVarAssignment(ctx) {
@@ -136,7 +184,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
136
184
  content: ctx.getText(),
137
185
  varName: ctx.variable_assignment().ID().getText(),
138
186
  varValue: ctx.variable_assignment().assignment_clause().getText(),
139
- varValueObj: super.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
187
+ varValueObj: this.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
140
188
  };
141
189
 
142
190
  if (this.varDeclarationMap.has(assignmentElem.varName)) {
@@ -147,6 +195,17 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
147
195
  }) == null) {
148
196
  throw new Error(`该局部变量未声明 --- ${assignmentElem.varName}`);
149
197
  }
198
+ let varValueTypeList = [...this.varDeclarationList, ...this.currentStateObj["assignments"]];
199
+ assignmentElem["varValueType"] = this.expHelper.guessBaseTypeByExpType(assignmentElem["varValueObj"], this.generateVarValueTypeList(varValueTypeList));
200
+ console.debug(`| ${this.currentState} | ${ctx.getText()} --> ${assignmentElem["varValueType"]}`);
201
+ let varValueTypeListTmp = [...varValueTypeList].reverse();
202
+ let varValueTypeObj = varValueTypeListTmp.find(elem => {
203
+ return elem.varName === assignmentElem.varName;
204
+ });
205
+ if (assignmentElem["varValueType"] !== varValueTypeObj.varValueType) {
206
+ throw new Error(`类型验证不通过 >| ${ctx.getText()}`);
207
+ }
208
+
150
209
  this.currentStateObj["assignments"].push(assignmentElem);
151
210
 
152
211
  return assignmentElem;
@@ -158,7 +217,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
158
217
  content: ctx.getText(),
159
218
  varName: ctx.local_variable_name().getText(),
160
219
  varValue: ctx.assignment_clause().getText(),
161
- varValueObj: super.visitAssignment_clause(ctx.assignment_clause())
220
+ varValueObj: this.visitAssignment_clause(ctx.assignment_clause())
162
221
  };
163
222
 
164
223
  if (this.varDeclarationMap.has(assignmentElem.varName)) {
@@ -169,12 +228,19 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
169
228
  }) != null) {
170
229
  throw new Error(`该局部变量已声明 --- ${assignmentElem.varName}`);
171
230
  }
231
+ let varValueTypeList = [...this.varDeclarationList, ...this.currentStateObj["assignments"]];
232
+ assignmentElem["varValueType"] = this.expHelper.guessBaseTypeByExpType(assignmentElem["varValueObj"], this.generateVarValueTypeList(varValueTypeList));
233
+
234
+ console.debug(`| ${this.currentState} | ${ctx.getText()} --> ${assignmentElem["varValueType"]}`);
235
+
172
236
  this.currentStateObj["assignments"].push(assignmentElem);
173
237
 
174
238
  return assignmentElem;
175
239
  }
176
240
 
177
241
  visitEventNormal(ctx) {
242
+ console.debug(`>> ${ctx.event().getText()}`);
243
+
178
244
  let builtInFunctionResult = this.visitBuilt_in_function(ctx.event().built_in_function());
179
245
 
180
246
  this.currentEventElem = {
@@ -188,6 +254,16 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
188
254
  if (ctx.event().event_path() != null) {
189
255
  this.currentEventElem["eventPath"] = ctx.event().event_path().getText();
190
256
  }
257
+ if (ctx.state_context_args_section() != null) {
258
+ this.currentEventElem["stateContextArgs"] = ctx.state_context_args_section().ID().map(elem => {
259
+ let elemStr = elem.getText();
260
+ if (!this.varDeclarationMap.has(elemStr) && this.currentStateObj["assignments"].find(elem => elem.varName === elemStr) == null) {
261
+ throw new Error(`该环境参数未声明 --- ${elemStr}`);
262
+ }
263
+
264
+ return elemStr;
265
+ });
266
+ }
191
267
  if (ctx.action_section() != null) {
192
268
  this.visitAction_section(ctx.action_section());
193
269
  }
@@ -206,7 +282,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
206
282
  });
207
283
  if (event_config != null) {
208
284
  try {
209
- if (!this.functionHelper.argsMatch(this.currentEventElem["eventParamList"], event_config["paramList"])) {
285
+ if (!this.functionHelper.argsMatch(this.currentEventElem["eventParamList"], event_config["paramList"], this.getVarDeclarationValueTypeList())) {
210
286
  throw new Error(`参数列表错误 ----- ${ctx.event().getText()}`);
211
287
  }
212
288
  } catch (e) {
@@ -217,32 +293,36 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
217
293
 
218
294
  this.currentStateObj["events"].push(this.currentEventElem);
219
295
 
220
- return this.currentEventElem;
296
+ let result = this.currentEventElem;
297
+ this.currentEventElem = null;
298
+ return result;
221
299
  }
222
300
 
223
301
  visitEventTerminate(ctx) {
224
302
  this.currentEventElem = {
225
- type: "terminate",
226
- content: ctx.getText(),
227
- eventName: ctx.TERMINATE().getText()
303
+ type: "terminate", content: ctx.getText(), eventName: ctx.TERMINATE().getText()
228
304
  };
229
305
 
230
306
  this.currentStateObj["events"].push(this.currentEventElem);
231
307
 
232
- return this.currentEventElem;
308
+ let result = this.currentEventElem;
309
+ this.currentEventElem = null;
310
+ return result;
233
311
  }
234
312
 
235
313
  visitAction_section(ctx) {
314
+ this.parseState.inActionSection = 1;
315
+
236
316
  this.currentEventElem["actions"] = [];
237
317
 
238
- return super.visitAction_section(ctx);
318
+ let result = super.visitAction_section(ctx);
319
+ this.parseState.inActionSection = 0;
320
+ return result;
239
321
  }
240
322
 
241
323
  visitFsmActionFunctionCall(ctx) {
242
324
  let actionElem = {
243
- type: "functionCall",
244
- content: ctx.getText(),
245
- actionObj: this.visitFunction_call(ctx.function_call())
325
+ type: "functionCall", content: ctx.getText(), actionObj: this.visitFunction_call(ctx.function_call())
246
326
  };
247
327
 
248
328
  this.currentEventElem["actions"].push(actionElem);
@@ -252,15 +332,34 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
252
332
 
253
333
  visitFsmActionVarAssignment(ctx) {
254
334
  let actionElem = {
255
- type: "varAssignment",
256
- content: "ctx.getText()",
257
- actionObj: {
258
- varName: ctx.variable_assignment().ID().getText(),
259
- varValue: ctx.variable_assignment().assignment_clause().getText(),
260
- varValueObj: this.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
261
- }
335
+ type: "varAssignment", content: ctx.getText(),
262
336
  };
337
+ let actionObj = {
338
+ varName: ctx.variable_assignment().ID().getText(),
339
+ varValue: ctx.variable_assignment().assignment_clause().getText(),
340
+ varValueObj: this.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
341
+ };
342
+
343
+ if (this.varDeclarationMap.has(actionObj.varName)) {
344
+ throw new Error(`全局变量不可以被再次赋值 --- ${actionObj.varName}`);
345
+ }
346
+ if (this.currentStateObj["assignments"].find(elem => {
347
+ return elem.varName === actionObj.varName;
348
+ }) == null) {
349
+ throw new Error(`该局部变量未声明 --- ${actionObj.varName}`);
350
+ }
351
+ let varValueTypeList = [...this.varDeclarationList, ...this.currentStateObj["assignments"]];
352
+ actionObj["varValueType"] = this.expHelper.guessBaseTypeByExpType(actionObj["varValueObj"], this.generateVarValueTypeList(varValueTypeList));
353
+ console.debug(`actions -- ${ctx.getText()} --> ${actionObj["varValueType"]}`);
354
+ let varValueTypeListTmp = [...varValueTypeList].reverse();
355
+ let varValueTypeObj = varValueTypeListTmp.find(elem => {
356
+ return elem.varName === actionObj.varName;
357
+ });
358
+ if (actionObj["varValueType"] !== varValueTypeObj.varValueType) {
359
+ throw new Error(`类型验证不通过 >| ${ctx.getText()}`);
360
+ }
263
361
 
362
+ actionElem["actionObj"] = actionObj;
264
363
  this.currentEventElem["actions"].push(actionElem);
265
364
 
266
365
  return actionElem;
@@ -342,9 +441,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
342
441
  return this.visitAtom(ctx.atom());
343
442
  } else if (ctx.signedSymbol != null) {
344
443
  return {
345
- expType: "expSigned",
346
- var1: this.visitSigned_atom(ctx.signed_atom()),
347
- symbol: ctx.signedSymbol.text
444
+ expType: "expSigned", var1: this.visitSigned_atom(ctx.signed_atom()), symbol: ctx.signedSymbol.text
348
445
  };
349
446
  } else {
350
447
  return super.visitSigned_atom(ctx);
@@ -376,8 +473,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
376
473
 
377
474
  if (ctx.LPAREN() != null) {
378
475
  return {
379
- expType: "expBooleanParen",
380
- var1: this.visitBoolean_expression(ctx.boolean_expression(0))
476
+ expType: "expBooleanParen", var1: this.visitBoolean_expression(ctx.boolean_expression(0))
381
477
  };
382
478
  }
383
479
 
@@ -523,8 +619,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
523
619
 
524
620
  visitArgs_group_expression(ctx) {
525
621
  return {
526
- expType: "expArgsGroup",
527
- paramList: this.visitArgs_group_param_list(ctx.args_group_param_list())
622
+ expType: "expArgsGroup", paramList: this.visitArgs_group_param_list(ctx.args_group_param_list())
528
623
  };
529
624
  }
530
625
 
@@ -578,7 +673,8 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
578
673
  ctx.expression_param().forEach(expParam => {
579
674
  let paramElem = {
580
675
  paramValue: expParam.assignment_clause().getText(),
581
- paramValueObj: this.visitAssignment_clause(expParam.assignment_clause())
676
+ paramValueObj: this.visitAssignment_clause(expParam.assignment_clause()),
677
+ content: expParam.getText()
582
678
  };
583
679
  if (expParam.expression_param_name() != null) {
584
680
  paramElem["paramName"] = expParam.expression_param_name().getText();
@@ -590,27 +686,18 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
590
686
  }
591
687
 
592
688
  visitFunction_call(ctx) {
689
+ console.debug(`>> ${ctx.getText()}`);
690
+
593
691
  let result = this.visitBuilt_in_function(ctx.built_in_function());
594
692
  result["expType"] = "functionCall";
595
693
  if (ctx.variable_chain() != null) {
596
694
  result["varChain"] = ctx.variable_chain().getText();
597
695
  }
598
696
 
599
- let function_config = function_configs.find(fc => {
600
- let suitable = true;
601
- if (result["varChain"] != null) {
602
- if (result["varChain"] !== fc["varChain"]) {
603
- suitable = false;
604
- }
605
- }
606
- if (result["funcName"] !== fc["funcName"]) {
607
- suitable = false;
608
- }
609
- return suitable;
610
- });
697
+ let function_config = this.functionHelper.findFunctionConfig(result["varChain"], result["funcName"]);
611
698
  if (function_config != null) {
612
699
  try {
613
- if (!this.functionHelper.argsMatch(result["paramList"], function_config["paramList"])) {
700
+ if (!this.functionHelper.argsMatch(result["paramList"], function_config["paramList"], this.getVarDeclarationValueTypeList())) {
614
701
  throw new Error(`参数列表错误 ----- ${ctx.getText()}`);
615
702
  }
616
703
  } catch (e) {
@@ -655,6 +742,9 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
655
742
  let content = ctx.getText();
656
743
 
657
744
  if (ctx.variable().environment_event() != null) {
745
+ if (this.parseState.inActionSection === 0) {
746
+ throw new Error(`该变量不能出现在除事件动作区以外的任何位置 -- ${ctx.getText()}`);
747
+ }
658
748
  varType = "event";
659
749
  } else if (content === "policy" || content === "contract") {
660
750
  varType = "context";
@@ -4,9 +4,13 @@ import { Calculator } from "../interface/Calculator";
4
4
  import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
5
5
  import { FunctionHelperAware } from "../interface/FunctionHelperAware";
6
6
  export declare class ExpHelper implements Calculator, FunctionHelperAware {
7
+ private functionHelper;
7
8
  private calculatorFactory;
8
9
  constructor();
9
10
  getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any;
10
11
  setFunctionHelper(functionHelper: FunctionHelper): void;
11
- guessBaseTypeByExpType(exp: AssignmentClauseInfo): string;
12
+ guessBaseTypeByExpType(exp: AssignmentClauseInfo, varValueTypeList: {
13
+ varName: string;
14
+ varValueType: string;
15
+ }[]): string;
12
16
  }
@@ -17,12 +17,13 @@ class ExpHelper {
17
17
  throw new Error("getExpValue fail [ExpHelper]...");
18
18
  }
19
19
  setFunctionHelper(functionHelper) {
20
+ this.functionHelper = functionHelper;
20
21
  this.calculatorFactory.setFunctionHelper(functionHelper);
21
22
  }
22
23
  /*
23
24
  * 类型推断
24
25
  */
25
- guessBaseTypeByExpType(exp) {
26
+ guessBaseTypeByExpType(exp, varValueTypeList) {
26
27
  switch (exp.expType) {
27
28
  case "entity":
28
29
  return "entity";
@@ -30,17 +31,38 @@ class ExpHelper {
30
31
  return "number";
31
32
  case "expParen":
32
33
  let expParen = exp;
33
- return this.guessBaseTypeByExpType(expParen.var1);
34
+ return this.guessBaseTypeByExpType(expParen.var1, varValueTypeList);
34
35
  case "expSigned":
35
36
  return "number";
36
37
  case "functionCall":
37
- return "any";
38
+ let functionCallInfo = exp;
39
+ let function_config = this.functionHelper.findFunctionConfig(functionCallInfo.varChain, functionCallInfo.funcName);
40
+ if (function_config != null) {
41
+ return function_config["returnType"];
42
+ }
43
+ else {
44
+ return "any";
45
+ }
38
46
  case "number":
39
47
  return "number";
40
48
  case "string":
41
49
  return "string";
42
50
  case "variableChain":
43
- return "any";
51
+ if (varValueTypeList != null) {
52
+ let variableChainInfo = exp;
53
+ let vvtTemp = varValueTypeList.find(vvt => {
54
+ return variableChainInfo.content == vvt["varName"];
55
+ });
56
+ if (vvtTemp != null) {
57
+ return vvtTemp["varValueType"];
58
+ }
59
+ else {
60
+ return "any";
61
+ }
62
+ }
63
+ else {
64
+ return "any";
65
+ }
44
66
  case "expArgsGroup":
45
67
  return "argsGroup";
46
68
  case "boolean":
@@ -62,4 +84,4 @@ class ExpHelper {
62
84
  }
63
85
  }
64
86
  exports.ExpHelper = ExpHelper;
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9FeHBIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscUZBQWdGO0FBSWhGLE1BQWEsU0FBUztJQUlsQjtRQUNJLElBQUksY0FBYyxHQUFHLElBQUksbURBQXdCLEVBQUUsQ0FBQztRQUNwRCxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUE0QixFQUFFLGlCQUF5QztRQUMvRSxPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVsRSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9FLElBQUksVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUE4QjtRQUM1QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCLENBQUMsR0FBeUI7UUFDNUMsUUFBUSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsS0FBSyxRQUFRO2dCQUNULE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssT0FBTztnQkFDUixPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxRQUFRLEdBQWEsR0FBZSxDQUFDO2dCQUN6QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsS0FBSyxXQUFXO2dCQUNaLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssY0FBYztnQkFDZixPQUFPLEtBQUssQ0FBQztZQUNqQixLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxRQUFRLENBQUM7WUFDcEIsS0FBSyxRQUFRO2dCQUNULE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssZUFBZTtnQkFDaEIsT0FBTyxLQUFLLENBQUM7WUFFakIsS0FBSyxjQUFjO2dCQUNmLE9BQU8sV0FBVyxDQUFDO1lBRXZCLEtBQUksU0FBUztnQkFDVCxPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLHdCQUF3QjtnQkFDekIsT0FBTyxTQUFTLENBQUM7WUFDckIsS0FBSyxxQkFBcUI7Z0JBQ3RCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssbUJBQW1CO2dCQUNwQixPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLGlCQUFpQjtnQkFDbEIsT0FBTyxTQUFTLENBQUM7WUFFckIsS0FBSyxlQUFlO2dCQUNoQixPQUFPLE9BQU8sQ0FBQztZQUVuQixLQUFLLGNBQWM7Z0JBQ2YsT0FBTyxPQUFPLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSjtBQXZFRCw4QkF1RUMifQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9FeHBIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscUZBQWdGO0FBTWhGLE1BQWEsU0FBUztJQU1sQjtRQUNJLElBQUksY0FBYyxHQUFHLElBQUksbURBQXdCLEVBQUUsQ0FBQztRQUNwRCxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUE0QixFQUFFLGlCQUF5QztRQUMvRSxPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVsRSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9FLElBQUksVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUE4QjtRQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCLENBQUMsR0FBeUIsRUFDekIsZ0JBQTZEO1FBQ2hGLFFBQVEsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLEtBQUssUUFBUTtnQkFDVCxPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLE9BQU87Z0JBQ1IsT0FBTyxRQUFRLENBQUM7WUFDcEIsS0FBSyxVQUFVO2dCQUNYLElBQUksUUFBUSxHQUFhLEdBQWUsQ0FBQztnQkFDekMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3hFLEtBQUssV0FBVztnQkFDWixPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLGNBQWM7Z0JBQ2YsSUFBSSxnQkFBZ0IsR0FBcUIsR0FBdUIsQ0FBQztnQkFDakUsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25ILElBQUksZUFBZSxJQUFJLElBQUksRUFBRSxDQUFDO29CQUMxQixPQUFPLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDekMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU8sS0FBSyxDQUFDO2dCQUNqQixDQUFDO1lBQ0wsS0FBSyxRQUFRO2dCQUNULE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssUUFBUTtnQkFDVCxPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLGVBQWU7Z0JBQ2hCLElBQUksZ0JBQWdCLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQzNCLElBQUksaUJBQWlCLEdBQXNCLEdBQXdCLENBQUM7b0JBQ3BFLElBQUksT0FBTyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDdEMsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQzt3QkFDbEIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ25DLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixPQUFPLEtBQUssQ0FBQztvQkFDakIsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxLQUFLLENBQUM7Z0JBQ2pCLENBQUM7WUFDTCxLQUFLLGNBQWM7Z0JBQ2YsT0FBTyxXQUFXLENBQUM7WUFDdkIsS0FBSSxTQUFTO2dCQUNULE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssd0JBQXdCO2dCQUN6QixPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLHFCQUFxQjtnQkFDdEIsT0FBTyxTQUFTLENBQUM7WUFDckIsS0FBSyxtQkFBbUI7Z0JBQ3BCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssaUJBQWlCO2dCQUNsQixPQUFPLFNBQVMsQ0FBQztZQUVyQixLQUFLLGVBQWU7Z0JBQ2hCLE9BQU8sT0FBTyxDQUFDO1lBRW5CLEtBQUssY0FBYztnQkFDZixPQUFPLE9BQU8sQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKO0FBM0ZELDhCQTJGQyJ9
@@ -17,9 +17,14 @@ export declare class FunctionHelper implements FunctionInvoke, ExpHelperAware {
17
17
  addExecutor(executorName: "Query" | "Kit" | "Time" | "fun" | "api", functionName: string, executor: FunctionInvoke): void;
18
18
  setExpHelper(expHelper: ExpHelper): void;
19
19
  argsMatch(paramList: {
20
+ paramValue: string;
20
21
  paramValueObj: AssignmentClauseInfo;
21
22
  }[], paramConfigList: {
22
23
  name: string;
23
24
  type: string;
25
+ }[], varValueTypeList: {
26
+ varName: string;
27
+ varValueType: string;
24
28
  }[]): boolean;
29
+ findFunctionConfig(varChain: string, funcName: string): any;
25
30
  }
@@ -6,6 +6,7 @@ const KitFunctionExecutor_1 = require("../function-executor/KitFunctionExecutor"
6
6
  const TimeFunctionExecutor_1 = require("../function-executor/TimeFunctionExecutor");
7
7
  const FunFunctionExecutor_1 = require("../function-executor/FunFunctionExecutor");
8
8
  const ApiFunctionExecutor_1 = require("../function-executor/ApiFunctionExecutor");
9
+ const function_configs = require("../../resources/context_config/function_configs.json");
9
10
  class FunctionHelper {
10
11
  constructor() {
11
12
  this.funcExecutors = new Map();
@@ -73,20 +74,35 @@ class FunctionHelper {
73
74
  /*
74
75
  * 参数校验
75
76
  */
76
- argsMatch(paramList, paramConfigList) {
77
+ argsMatch(paramList, paramConfigList, varValueTypeList) {
77
78
  if (paramList.length != paramConfigList.length) {
78
79
  return false;
79
80
  }
80
81
  for (let i = 0; i < paramList.length; i++) {
81
82
  let param = paramList[i];
82
83
  let paramConfig = paramConfigList[i];
83
- let paramType = this.expHelper.guessBaseTypeByExpType(param.paramValueObj);
84
+ let paramType = this.expHelper.guessBaseTypeByExpType(param.paramValueObj, varValueTypeList);
85
+ console.debug(`args -- ${param.paramValue} --> ${paramType}`);
84
86
  if (paramType != "any" && paramConfig.type != "any" && paramType != paramConfig.type) {
85
87
  return false;
86
88
  }
87
89
  }
88
90
  return true;
89
91
  }
92
+ findFunctionConfig(varChain, funcName) {
93
+ return function_configs.find(fc => {
94
+ let suitable = true;
95
+ if (varChain != null) {
96
+ if (varChain !== fc["varChain"]) {
97
+ suitable = false;
98
+ }
99
+ }
100
+ if (funcName !== fc["funcName"]) {
101
+ suitable = false;
102
+ }
103
+ return suitable;
104
+ });
105
+ }
90
106
  }
91
107
  exports.FunctionHelper = FunctionHelper;
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnVuY3Rpb25IZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVyL0Z1bmN0aW9uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHNGQUFpRjtBQUNqRixrRkFBNkU7QUFDN0Usb0ZBQStFO0FBQy9FLGtGQUE2RTtBQUM3RSxrRkFBNkU7QUFLN0UsTUFBYSxjQUFjO0lBUXZCO1FBSlEsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUsvRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSw2Q0FBcUIsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUkseUNBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLDJDQUFvQixFQUFFLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSx5Q0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUkseUNBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxZQUFZLENBQUMsU0FBYztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQW9CO1FBQzdCLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6RCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xD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
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnVuY3Rpb25IZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVyL0Z1bmN0aW9uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHNGQUFpRjtBQUNqRixrRkFBNkU7QUFDN0Usb0ZBQStFO0FBQy9FLGtGQUE2RTtBQUM3RSxrRkFBNkU7QUFLN0UsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsc0RBQXNELENBQUMsQ0FBQztBQUV6RixNQUFhLGNBQWM7SUFRdkI7UUFKUSxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBSy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLDZDQUFxQixFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSx5Q0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksMkNBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLHlDQUFtQixFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSx5Q0FBbUIsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFjO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLENBQUMsWUFBb0I7UUFDN0IsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pELE9B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
@@ -12,13 +12,18 @@ export declare class PolicyHelper implements VarContextCapable<any>, Calculator,
12
12
  protected varMacroList: any;
13
13
  protected expHelper: ExpHelper;
14
14
  protected functionHelper: FunctionHelper;
15
+ private audienceInfo;
15
16
  constructor(policyInfo: PolicyInfo);
16
17
  init(varContextCapable: VarContextCapable<any>): void;
17
18
  setVarGlobal(varName: string, varValue: any): void;
18
- setVarGlobalList(varGlobalList: []): void;
19
+ setVarGlobalList(varGlobalList: any[]): void;
19
20
  getVarGlobal(varName: string): any;
20
21
  getVarGlobalList(): any[];
21
22
  getVarMacro(varName: string): any;
23
+ getPolicyInfoResult(): {
24
+ varGlobalList: any;
25
+ audienceInfo: any;
26
+ };
22
27
  getVarContext(varName: string): any;
23
28
  getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any;
24
29
  invokeEnable(functionName: string): boolean;
@@ -13,6 +13,7 @@ class PolicyHelper {
13
13
  this.functionHelper = new FunctionHelper_1.FunctionHelper();
14
14
  this.expHelper.setFunctionHelper(this.functionHelper);
15
15
  this.functionHelper.setExpHelper(this.expHelper);
16
+ this.audienceInfo = {};
16
17
  }
17
18
  // 在合约签约的时候,可签约条件和全局申明的变量是已经计算完毕的,在这里做这件事
18
19
  init(varContextCapable) {
@@ -32,6 +33,11 @@ class PolicyHelper {
32
33
  });
33
34
  }
34
35
  }
36
+ this.audienceInfo["audiences"] = this.policyInfo.audienceSection.audiences;
37
+ this.audienceInfo["condition"] = {};
38
+ for (let c of this.policyInfo.audienceSection.conditions) {
39
+ this.audienceInfo["condition"][c.paramName] = this.getExpValue(c.paramValueObj, varContextCapable);
40
+ }
35
41
  for (let varDeclaration of varDeclarationList) {
36
42
  if (varDeclaration.type == "varGlobal") {
37
43
  if (this.getVarGlobal(varDeclaration.varName) == null) {
@@ -62,6 +68,12 @@ class PolicyHelper {
62
68
  return elem.varName == varName;
63
69
  });
64
70
  }
71
+ getPolicyInfoResult() {
72
+ return {
73
+ varGlobalList: this.varGlobalList,
74
+ audienceInfo: this.audienceInfo
75
+ };
76
+ }
65
77
  getVarContext(varName) {
66
78
  let result = this.getVarGlobal(varName);
67
79
  if (result != null) {
@@ -93,4 +105,4 @@ class PolicyHelper {
93
105
  }
94
106
  }
95
107
  exports.PolicyHelper = PolicyHelper;
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5SGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9Qb2xpY3lIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkNBQXNDO0FBRXRDLHFEQUFnRDtBQU1oRCxNQUFhLFlBQVk7SUFjckIsWUFBWSxVQUFzQjtRQVIxQixpQkFBWSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBU3pELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLCtCQUFjLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxJQUFJLENBQUMsaUJBQXlDO1FBQzFDLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztRQUM1RCxLQUFLLElBQUksY0FBYyxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDNUMsSUFBSSxjQUFjLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7WUFDRCxJQUFJLGNBQWMsQ0FBQyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxD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
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5SGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9Qb2xpY3lIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkNBQXNDO0FBRXRDLHFEQUFnRDtBQU1oRCxNQUFhLFlBQVk7SUFnQnJCLFlBQVksVUFBc0I7UUFWMUIsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztRQVd6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSwrQkFBYyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsSUFBSSxDQUFDLGlCQUF5QztRQUMxQyxJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUM7UUFDNUQsS0FBSyxJQUFJLGNBQWMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQzVDLElBQUksY0FBYyxDQUFDLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsSUFBSSxjQUFjLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxD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
@@ -14,5 +14,6 @@ export interface ActionVarAssignment extends ActionInfo {
14
14
  varName: string;
15
15
  varValue: string;
16
16
  varValueObj: AssignmentClauseInfo;
17
+ varValueType: string;
17
18
  };
18
19
  }
@@ -1,4 +1,5 @@
1
1
  import { AssignmentClauseInfo } from "../AssignmentClauseInfo";
2
+ import { ActionInfo } from "./ActionInfo";
2
3
  export interface EventInfo {
3
4
  type: "normal" | "terminate";
4
5
  content: string;
@@ -11,4 +12,7 @@ export interface EventInfo {
11
12
  paramValueObj: AssignmentClauseInfo;
12
13
  }
13
14
  ];
15
+ toState: string;
16
+ stateContextArgs?: string[];
17
+ actions: ActionInfo[];
14
18
  }
@@ -9,6 +9,7 @@ export interface PolicyInfo {
9
9
  paramName?: string;
10
10
  paramValue: string;
11
11
  paramValueObj: AssignmentClauseInfo;
12
+ content: string;
12
13
  }
13
14
  ];
14
15
  };
@@ -18,6 +19,11 @@ export interface PolicyInfo {
18
19
  stateName: string;
19
20
  assignments: VarDeclarationInfo[];
20
21
  events: EventInfo[];
22
+ serviceStateSection?: {
23
+ serviceState?: string;
24
+ serviceStateCollection?: string[];
25
+ };
26
+ stateContextArgs?: string[];
21
27
  }
22
28
  ];
23
29
  }
@@ -6,4 +6,5 @@ export interface VarDeclarationInfo {
6
6
  paramList?: string[];
7
7
  varValue: string;
8
8
  varValueObj: AssignmentClauseInfo;
9
+ varValueType?: "void" | "boolean" | "number" | "string" | "entity" | "array" | "argsGroup" | "any";
9
10
  }