occam-furtle 2.0.120 → 2.0.122

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.
Files changed (67) hide show
  1. package/lib/dom/assignment/array.js +12 -12
  2. package/lib/dom/assignment/object.js +30 -30
  3. package/lib/dom/assignment/variable.js +13 -13
  4. package/lib/dom/block/return.js +9 -9
  5. package/lib/dom/comparison.js +28 -28
  6. package/lib/dom/every.js +25 -25
  7. package/lib/dom/expression/bitwise.js +186 -0
  8. package/lib/dom/expression/bracketed.js +149 -0
  9. package/lib/dom/expression/negated.js +166 -0
  10. package/lib/dom/expression.js +578 -0
  11. package/lib/dom/expressions.js +210 -0
  12. package/lib/dom/parameter/named.js +9 -9
  13. package/lib/dom/parameter.js +9 -9
  14. package/lib/dom/parameters/named.js +11 -11
  15. package/lib/dom/parameters.js +11 -11
  16. package/lib/dom/procedure/anonymous.js +7 -7
  17. package/lib/dom/procedure.js +12 -12
  18. package/lib/dom/procedureCall.js +17 -17
  19. package/lib/dom/query/node.js +19 -19
  20. package/lib/dom/query/nodes.js +19 -19
  21. package/lib/dom/reduce.js +32 -32
  22. package/lib/dom/some.js +25 -25
  23. package/lib/dom/statement/return.js +12 -12
  24. package/lib/dom/ternary.js +27 -27
  25. package/lib/dom/variable.js +30 -30
  26. package/lib/example/utilities/expressions.js +29 -0
  27. package/lib/example.js +4 -4
  28. package/lib/index.js +9 -9
  29. package/package.json +1 -1
  30. package/src/dom/assignment/array.js +14 -14
  31. package/src/dom/assignment/object.js +33 -33
  32. package/src/dom/assignment/variable.js +15 -15
  33. package/src/dom/block/return.js +7 -7
  34. package/src/dom/comparison.js +39 -39
  35. package/src/dom/every.js +25 -25
  36. package/src/dom/expression/bitwise.js +135 -0
  37. package/src/dom/expression/bracketed.js +73 -0
  38. package/src/dom/expression/negated.js +97 -0
  39. package/src/dom/{value.js → expression.js} +128 -128
  40. package/src/dom/expressions.js +138 -0
  41. package/src/dom/parameter/named.js +7 -7
  42. package/src/dom/parameter.js +7 -7
  43. package/src/dom/parameters/named.js +9 -9
  44. package/src/dom/parameters.js +9 -9
  45. package/src/dom/procedure/anonymous.js +10 -10
  46. package/src/dom/procedure.js +12 -12
  47. package/src/dom/procedureCall.js +19 -19
  48. package/src/dom/query/node.js +19 -19
  49. package/src/dom/query/nodes.js +19 -19
  50. package/src/dom/reduce.js +36 -36
  51. package/src/dom/some.js +25 -25
  52. package/src/dom/statement/return.js +14 -14
  53. package/src/dom/ternary.js +39 -39
  54. package/src/dom/variable.js +31 -31
  55. package/src/example/utilities/{values.js → expressions.js} +4 -4
  56. package/src/example.js +4 -4
  57. package/src/index.js +6 -6
  58. package/lib/dom/value/bitwise.js +0 -186
  59. package/lib/dom/value/bracketed.js +0 -149
  60. package/lib/dom/value/negated.js +0 -166
  61. package/lib/dom/value.js +0 -578
  62. package/lib/dom/values.js +0 -210
  63. package/lib/example/utilities/values.js +0 -29
  64. package/src/dom/value/bitwise.js +0 -135
  65. package/src/dom/value/bracketed.js +0 -73
  66. package/src/dom/value/negated.js +0 -97
  67. package/src/dom/values.js +0 -138
@@ -90,14 +90,14 @@ function _interop_require_wildcard(obj, nodeInterop) {
90
90
  return newObj;
91
91
  }
92
92
  var _Variable;
93
- var someVariableNodeQuery = (0, _query.nodeQuery)("/some/variable"), valueVariableNodeQuery = (0, _query.nodeQuery)("/value/variable"), everyVariableNodeQuery = (0, _query.nodeQuery)("/every/variable"), reduceVariableNodeQuery = (0, _query.nodeQuery)("/reduce/variable"), nodeQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodeQuery/variable"), nodesQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodesQuery/variable"), variableNameTerminalNodeQuery = (0, _query.nodeQuery)("/variable/@name"), arrayAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/arrayAssignment/variable"), objectAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/objectAssignment/variable"), variableAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/variableAssignment/variable");
93
+ var someVariableNodeQuery = (0, _query.nodeQuery)("/some/variable"), everyVariableNodeQuery = (0, _query.nodeQuery)("/every/variable"), reduceVariableNodeQuery = (0, _query.nodeQuery)("/reduce/variable"), nodeQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodeQuery/variable"), expressionVariableNodeQuery = (0, _query.nodeQuery)("/expression/variable"), nodesQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodesQuery/variable"), variableNameTerminalNodeQuery = (0, _query.nodeQuery)("/variable/@name"), arrayAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/arrayAssignment/variable"), objectAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/objectAssignment/variable"), variableAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/variableAssignment/variable");
94
94
  var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
95
- function Variable(string, type, name, value) {
95
+ function Variable(string, type, name, expression) {
96
96
  _class_call_check(this, Variable);
97
97
  this.string = string;
98
98
  this.type = type;
99
99
  this.name = name;
100
- this.value = value;
100
+ this.expression = expression;
101
101
  }
102
102
  _create_class(Variable, [
103
103
  {
@@ -119,9 +119,9 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
119
119
  }
120
120
  },
121
121
  {
122
- key: "getValue",
123
- value: function getValue() {
124
- return this.value;
122
+ key: "getExpression",
123
+ value: function getExpression() {
124
+ return this.expression;
125
125
  }
126
126
  },
127
127
  {
@@ -141,29 +141,29 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
141
141
  var message = "The '".concat(variableString, "; variable is not present.'"), exception = _exception.default.fromMessage(message);
142
142
  throw exception;
143
143
  }
144
- var variable = context.findVariableByVariableName(variableName), value = variable.getValue(), valueString = value.asString(context);
145
- context.debug("...evaluated the '".concat(variableString, "' variable to the ").concat(valueString, " value."));
146
- return value;
144
+ var variable = context.findVariableByVariableName(variableName), expression = variable.getExpression(), expressionString = expression.asString(context);
145
+ context.debug("...evaluated the '".concat(variableString, "' variable to the ").concat(expressionString, " expression."));
146
+ return expression;
147
147
  }
148
148
  },
149
149
  {
150
150
  key: "assign",
151
- value: function assign(value, context) {
152
- var nested = false, valueString = value.asString(context), variableName = this.name, variableString = this.string, variablePresent = context.isVariablePresentByVariableName(variableName, nested);
153
- context.trace("Assigning the ".concat(valueString, " value to the '").concat(variableString, "' variable..."));
151
+ value: function assign(expression, context) {
152
+ var nested = false, expressionString = expression.asString(context), variableName = this.name, variableString = this.string, variablePresent = context.isVariablePresentByVariableName(variableName, nested);
153
+ context.trace("Assigning the ".concat(expressionString, " expression to the '").concat(variableString, "' variable..."));
154
154
  if (variablePresent) {
155
155
  var message = "The '".concat(variableString, "' variable is already present."), exception = _exception.default.fromMessage(message);
156
156
  throw exception;
157
157
  }
158
- var valueType = value.getType(), variableType = this.type;
159
- if (valueType !== variableType) {
160
- var message1 = "The '".concat(variableString, " variable's '").concat(variableType, "' type does not match the value's '").concat(valueType, "' type.'"), exception1 = _exception.default.fromMessage(message1);
158
+ var expressionType = expression.getType(), variableType = this.type;
159
+ if (expressionType !== variableType) {
160
+ var message1 = "The '".concat(variableString, " variable's '").concat(variableType, "' type does not match the expression's '").concat(expressionType, "' type.'"), exception1 = _exception.default.fromMessage(message1);
161
161
  throw exception1;
162
162
  }
163
- this.value = value;
163
+ this.expression = expression;
164
164
  var variable = this; ///
165
165
  context.addVariable(variable);
166
- context.debug("...assigned the ".concat(valueString, " value to the '").concat(variableString, "' variable."));
166
+ context.debug("...assigned the ".concat(expressionString, " expression to the '").concat(variableString, "' variable."));
167
167
  }
168
168
  }
169
169
  ], [
@@ -175,12 +175,12 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
175
175
  }
176
176
  },
177
177
  {
178
- key: "fromValueNode",
179
- value: function fromValueNode(valueNode, context) {
178
+ key: "fromExpressionNode",
179
+ value: function fromExpressionNode(expressionNode, context) {
180
180
  var variable = null;
181
- var valueVariableNode = valueVariableNodeQuery(valueNode);
182
- if (valueVariableNode !== null) {
183
- var variableNode = valueVariableNode; ///
181
+ var expressionVariableNode = expressionVariableNodeQuery(expressionNode);
182
+ if (expressionVariableNode !== null) {
183
+ var variableNode = expressionVariableNode; ///
184
184
  variable = variableFromVariableNode(variableNode, context);
185
185
  }
186
186
  return variable;
@@ -196,7 +196,7 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
196
196
  {
197
197
  key: "fromParameter",
198
198
  value: function fromParameter(parameter, context) {
199
- var type = parameter.getType(), name = parameter.getName(), value = null, string = stringFromName(name, context), variable = new Variable(string, type, name, value);
199
+ var type = parameter.getType(), name = parameter.getName(), expression = null, string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
200
200
  return variable;
201
201
  }
202
202
  },
@@ -224,14 +224,14 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
224
224
  {
225
225
  key: "fromNamedParameter",
226
226
  value: function fromNamedParameter(namedParameter, context) {
227
- var asName = namedParameter.getAsName(), type = namedParameter.getType(), name = asName !== null ? asName : namedParameter.getName(), value = null, string = stringFromName(name, context), variable = new Variable(string, type, name, value);
227
+ var asName = namedParameter.getAsName(), type = namedParameter.getType(), name = asName !== null ? asName : namedParameter.getName(), expression = null, string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
228
228
  return variable;
229
229
  }
230
230
  },
231
231
  {
232
- key: "fromValueAndParameter",
233
- value: function fromValueAndParameter(value, parameter, context) {
234
- var type = parameter.getType(), name = parameter.getName(), string = stringFromName(name, context), variable = new Variable(string, type, name, value);
232
+ key: "fromExpressionAndParameter",
233
+ value: function fromExpressionAndParameter(expression, parameter, context) {
234
+ var type = parameter.getType(), name = parameter.getName(), string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
235
235
  return variable;
236
236
  }
237
237
  },
@@ -260,11 +260,11 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
260
260
  return Variable;
261
261
  }(), _define_property(_Variable, "name", "Variable"), _Variable));
262
262
  function variableFromTypeAndVariableNode(type, variableNode, context) {
263
- var Variable = _dom.default.Variable, name = nameFromVariableNode(variableNode), value = null, string = stringFromName(name, context), variable = new Variable(string, type, name, value);
263
+ var Variable = _dom.default.Variable, name = nameFromVariableNode(variableNode), expression = null, string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
264
264
  return variable;
265
265
  }
266
266
  function variableFromVariableNode(variableNode, context) {
267
- var Variable = _dom.default.Variable, type = null, name = nameFromVariableNode(variableNode), value = null, string = stringFromName(name, context), variable = new Variable(string, type, name, value);
267
+ var Variable = _dom.default.Variable, type = null, name = nameFromVariableNode(variableNode), expression = null, string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
268
268
  return variable;
269
269
  }
270
270
  function nameFromVariableNode(variableNode) {
@@ -276,4 +276,4 @@ function stringFromName(name, context) {
276
276
  return string;
277
277
  }
278
278
 
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCBzb21lVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc29tZS92YXJpYWJsZVwiKSxcbiAgICAgIHZhbHVlVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFsdWUvdmFyaWFibGVcIiksXG4gICAgICBldmVyeVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2V2ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgcmVkdWNlVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcmVkdWNlL3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbm9kZVF1ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL25vZGVzUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZS9AbmFtZVwiKSxcbiAgICAgIGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FycmF5QXNzaWdubWVudC92YXJpYWJsZVwiKSxcbiAgICAgIG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9vYmplY3RBc3NpZ25tZW50L3ZhcmlhYmxlXCIpLFxuICAgICAgdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVBc3NpZ25tZW50L3ZhcmlhYmxlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBWYXJpYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgbWF0Y2hWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSB2YXJpYWJsZU5hbWUpO1xuXG4gICAgcmV0dXJuIG5hbWVNYXRjaGVzO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgbmVzdGVkID0gdHJ1ZSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUsIG5lc3RlZCk7XG5cbiAgICBpZiAoIXZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9OyB2YXJpYWJsZSBpcyBub3QgcHJlc2VudC4nYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpLFxuICAgICAgICAgIHZhbHVlID0gdmFyaWFibGUuZ2V0VmFsdWUoKSxcbiAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmFzU3RyaW5nKGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIHRvIHRoZSAke3ZhbHVlU3RyaW5nfSB2YWx1ZS5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGFzc2lnbih2YWx1ZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5lc3RlZCA9IGZhbHNlLFxuICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuYXNTdHJpbmcoY29udGV4dCksIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZywgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFzc2lnbmluZyB0aGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUgdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGlmICh2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgaXMgYWxyZWFkeSBwcmVzZW50LmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gdGhpcy50eXBlO1xuXG4gICAgaWYgKHZhbHVlVHlwZSAhPT0gdmFyaWFibGVUeXBlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30gdmFyaWFibGUncyAnJHt2YXJpYWJsZVR5cGV9JyB0eXBlIGRvZXMgbm90IG1hdGNoIHRoZSB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXM7ICAvLy9cblxuICAgIGNvbnRleHQuYWRkVmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uYXNzaWduZWQgdGhlICR7dmFsdWVTdHJpbmd9IHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlXCI7XG5cbiAgc3RhdGljIGZyb21Tb21lTm9kZShzb21lTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHNvbWVWYXJpYWJsZU5vZGUgPSBzb21lVmFyaWFibGVOb2RlUXVlcnkoc29tZU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHNvbWVWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlTm9kZSh2YWx1ZU5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29uc3QgdmFsdWVWYXJpYWJsZU5vZGUgPSB2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5KHZhbHVlTm9kZSk7XG5cbiAgICBpZiAodmFsdWVWYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhbHVlVmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUV2ZXJ5Tm9kZShldmVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBldmVyeVZhcmlhYmxlTm9kZSA9IGV2ZXJ5VmFyaWFibGVOb2RlUXVlcnkoZXZlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBldmVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFyYW1ldGVyKHBhcmFtZXRlciwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBwYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBwYXJhbWV0ZXIuZ2V0TmFtZSgpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZShuYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUmVkdWNlTm9kZShyZWR1Y2VOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgcmVkdWNlVmFyaWFibGVOb2RlID0gcmVkdWNlVmFyaWFibGVOb2RlUXVlcnkocmVkdWNlTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gcmVkdWNlVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlUXVlcnlOb2RlKG5vZGVRdWVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlUXVlcnlWYXJpYWJsZU5vZGUgPSBub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeShub2RlUXVlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBub2RlUXVlcnlWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVzUXVlcnlOb2RlKG5vZGVzUXVlcnlOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZXNRdWVyeVZhcmlhYmxlTm9kZSA9IG5vZGVzUXVlcnlWYXJpYWJsZU5vZGVRdWVyeShub2Rlc1F1ZXJ5Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gbm9kZXNRdWVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCBhc05hbWUgPSBuYW1lZFBhcmFtZXRlci5nZXRBc05hbWUoKSxcbiAgICAgICAgICB0eXBlID0gbmFtZWRQYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSAoYXNOYW1lICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgYXNOYW1lIDogLy8vXG4gICAgICAgICAgICAgICAgICAgICBuYW1lZFBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lKG5hbWUsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYWx1ZUFuZFBhcmFtZXRlcih2YWx1ZSwgcGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IHBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZSA9IHBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUFycmF5QXNzaWdubWVudE5vZGUoYXJyYXlBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KGFycmF5QXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT2JqZWN0QXNzaWdubWVudE5vZGUob2JqZWN0QXNzaWdubWVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KG9iamVjdEFzc2lnbm1lbnROb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50Tm9kZSh0eXBlLCB2YXJpYWJsZUFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21UeXBlQW5kVmFyaWFibGVOb2RlKHR5cGUsIHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21UeXBlQW5kVmFyaWFibGVOb2RlKHR5cGUsIHZhcmlhYmxlTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lKG5hbWUsIGNvbnRleHQpLFxuICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlKTtcblxuICByZXR1cm4gdmFyaWFibGU7XG59XG5cbmZ1bmN0aW9uIHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBWYXJpYWJsZSB9ID0gZG9tLFxuICAgICAgICB0eXBlID0gbnVsbCxcbiAgICAgICAgbmFtZSA9IG5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCksXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gIHJldHVybiB2YXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gIGNvbnN0IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5KHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lKG5hbWUsIGNvbnRleHQpIHtcbiAgY29uc3QgbmFtZVN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgc3RyaW5nID0gbmFtZVN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBzdHJpbmc7XG59Il0sIm5hbWVzIjpbInNvbWVWYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZhbHVlVmFyaWFibGVOb2RlUXVlcnkiLCJldmVyeVZhcmlhYmxlTm9kZVF1ZXJ5IiwicmVkdWNlVmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVzUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5IiwiYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkiLCJvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiVmFyaWFibGUiLCJzdHJpbmciLCJ0eXBlIiwibmFtZSIsInZhbHVlIiwiZ2V0U3RyaW5nIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJnZXRWYWx1ZSIsIm1hdGNoVmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lIiwibmFtZU1hdGNoZXMiLCJldmFsdWF0ZSIsImNvbnRleHQiLCJ2YXJpYWJsZVN0cmluZyIsInRyYWNlIiwibmVzdGVkIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJ2YWx1ZVN0cmluZyIsImFzU3RyaW5nIiwiZGVidWciLCJhc3NpZ24iLCJ2YWx1ZVR5cGUiLCJ2YXJpYWJsZVR5cGUiLCJhZGRWYXJpYWJsZSIsImZyb21Tb21lTm9kZSIsInNvbWVOb2RlIiwic29tZVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSIsImZyb21WYWx1ZU5vZGUiLCJ2YWx1ZU5vZGUiLCJ2YWx1ZVZhcmlhYmxlTm9kZSIsImZyb21FdmVyeU5vZGUiLCJldmVyeU5vZGUiLCJldmVyeVZhcmlhYmxlTm9kZSIsImZyb21QYXJhbWV0ZXIiLCJwYXJhbWV0ZXIiLCJzdHJpbmdGcm9tTmFtZSIsImZyb21SZWR1Y2VOb2RlIiwicmVkdWNlTm9kZSIsInJlZHVjZVZhcmlhYmxlTm9kZSIsImZyb21Ob2RlUXVlcnlOb2RlIiwibm9kZVF1ZXJ5Tm9kZSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21Ob2Rlc1F1ZXJ5Tm9kZSIsIm5vZGVzUXVlcnlOb2RlIiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21OYW1lZFBhcmFtZXRlciIsIm5hbWVkUGFyYW1ldGVyIiwiYXNOYW1lIiwiZ2V0QXNOYW1lIiwiZnJvbVZhbHVlQW5kUGFyYW1ldGVyIiwiZnJvbUFycmF5QXNzaWdubWVudE5vZGUiLCJhcnJheUFzc2lnbm1lbnROb2RlIiwiYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbU9iamVjdEFzc2lnbm1lbnROb2RlIiwib2JqZWN0QXNzaWdubWVudE5vZGUiLCJvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnROb2RlIiwidmFyaWFibGVBc3NpZ25tZW50Tm9kZSIsInZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVR5cGVBbmRWYXJpYWJsZU5vZGUiLCJkb20iLCJuYW1lRnJvbVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50IiwibmFtZVN0cmluZyJdLCJtYXBw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
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCBzb21lVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc29tZS92YXJpYWJsZVwiKSxcbiAgICAgIGV2ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXZlcnkvdmFyaWFibGVcIiksXG4gICAgICByZWR1Y2VWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9yZWR1Y2UvdmFyaWFibGVcIiksXG4gICAgICBub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ub2RlUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICBleHByZXNzaW9uVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXhwcmVzc2lvbi92YXJpYWJsZVwiKSxcbiAgICAgIG5vZGVzUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ub2Rlc1F1ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGUvQG5hbWVcIiksXG4gICAgICBhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcnJheUFzc2lnbm1lbnQvdmFyaWFibGVcIiksXG4gICAgICBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvb2JqZWN0QXNzaWdubWVudC92YXJpYWJsZVwiKSxcbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlQXNzaWdubWVudC92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgVmFyaWFibGUge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIHR5cGUsIG5hbWUsIGV4cHJlc3Npb24pIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb247XG4gIH1cblxuICBtYXRjaFZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBuYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IHZhcmlhYmxlTmFtZSk7XG5cbiAgICByZXR1cm4gbmFtZU1hdGNoZXM7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBuZXN0ZWQgPSB0cnVlLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ307IHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgZXhwcmVzc2lvbiA9IHZhcmlhYmxlLmdldEV4cHJlc3Npb24oKSxcbiAgICAgICAgICBleHByZXNzaW9uU3RyaW5nID0gZXhwcmVzc2lvbi5hc1N0cmluZyhjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB0byB0aGUgJHtleHByZXNzaW9uU3RyaW5nfSBleHByZXNzaW9uLmApO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb247XG4gIH1cblxuICBhc3NpZ24oZXhwcmVzc2lvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IG5lc3RlZCA9IGZhbHNlLFxuICAgICAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBleHByZXNzaW9uLmFzU3RyaW5nKGNvbnRleHQpLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmcsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUsIG5lc3RlZCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBBc3NpZ25pbmcgdGhlICR7ZXhwcmVzc2lvblN0cmluZ30gZXhwcmVzc2lvbiB0byB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cHJlc3Npb25UeXBlID0gZXhwcmVzc2lvbi5nZXRUeXBlKCksXG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gdGhpcy50eXBlO1xuXG4gICAgaWYgKGV4cHJlc3Npb25UeXBlICE9PSB2YXJpYWJsZVR5cGUpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfSB2YXJpYWJsZSdzICcke3ZhcmlhYmxlVHlwZX0nIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIGV4cHJlc3Npb24ncyAnJHtleHByZXNzaW9uVHlwZX0nIHR5cGUuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSB0aGlzOyAgLy8vXG5cbiAgICBjb250ZXh0LmFkZFZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmFzc2lnbmVkIHRoZSAke2V4cHJlc3Npb25TdHJpbmd9IGV4cHJlc3Npb24gdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVcIjtcblxuICBzdGF0aWMgZnJvbVNvbWVOb2RlKHNvbWVOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc29tZVZhcmlhYmxlTm9kZSA9IHNvbWVWYXJpYWJsZU5vZGVRdWVyeShzb21lTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gc29tZVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRXhwcmVzc2lvbk5vZGUoZXhwcmVzc2lvbk5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29uc3QgZXhwcmVzc2lvblZhcmlhYmxlTm9kZSA9IGV4cHJlc3Npb25WYXJpYWJsZU5vZGVRdWVyeShleHByZXNzaW9uTm9kZSk7XG5cbiAgICBpZiAoZXhwcmVzc2lvblZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gZXhwcmVzc2lvblZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21FdmVyeU5vZGUoZXZlcnlOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgZXZlcnlWYXJpYWJsZU5vZGUgPSBldmVyeVZhcmlhYmxlTm9kZVF1ZXJ5KGV2ZXJ5Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gZXZlcnlWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcmFtZXRlcihwYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICBleHByZXNzaW9uID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZShuYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIGV4cHJlc3Npb24pO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21SZWR1Y2VOb2RlKHJlZHVjZU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCByZWR1Y2VWYXJpYWJsZU5vZGUgPSByZWR1Y2VWYXJpYWJsZU5vZGVRdWVyeShyZWR1Y2VOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSByZWR1Y2VWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVRdWVyeU5vZGUobm9kZVF1ZXJ5Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGVRdWVyeVZhcmlhYmxlTm9kZSA9IG5vZGVRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5KG5vZGVRdWVyeU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG5vZGVRdWVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZXNRdWVyeU5vZGUobm9kZXNRdWVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlID0gbm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5KG5vZGVzUXVlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lZFBhcmFtZXRlcihuYW1lZFBhcmFtZXRlciwgY29udGV4dCkge1xuICAgIGNvbnN0IGFzTmFtZSA9IG5hbWVkUGFyYW1ldGVyLmdldEFzTmFtZSgpLFxuICAgICAgICAgIHR5cGUgPSBuYW1lZFBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZSA9IChhc05hbWUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICBhc05hbWUgOiAvLy9cbiAgICAgICAgICAgICAgICAgICAgIG5hbWVkUGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICBleHByZXNzaW9uID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZShuYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIGV4cHJlc3Npb24pO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21FeHByZXNzaW9uQW5kUGFyYW1ldGVyKGV4cHJlc3Npb24sIHBhcmFtZXRlciwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBwYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBwYXJhbWV0ZXIuZ2V0TmFtZSgpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lKG5hbWUsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgZXhwcmVzc2lvbik7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUFycmF5QXNzaWdubWVudE5vZGUoYXJyYXlBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KGFycmF5QXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT2JqZWN0QXNzaWdubWVudE5vZGUob2JqZWN0QXNzaWdubWVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KG9iamVjdEFzc2lnbm1lbnROb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50Tm9kZSh0eXBlLCB2YXJpYWJsZUFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21UeXBlQW5kVmFyaWFibGVOb2RlKHR5cGUsIHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21UeXBlQW5kVmFyaWFibGVOb2RlKHR5cGUsIHZhcmlhYmxlTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICBleHByZXNzaW9uID0gbnVsbCxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCksXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIHZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgdHlwZSA9IG51bGwsXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICBleHByZXNzaW9uID0gbnVsbCxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCksXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIHZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpIHtcbiAgY29uc3QgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkodmFyaWFibGVOb2RlKSxcbiAgICAgICAgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudCA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cblxuICByZXR1cm4gbmFtZTtcbn1cblxuZnVuY3Rpb24gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCkge1xuICBjb25zdCBuYW1lU3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICBzdHJpbmcgPSBuYW1lU3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHN0cmluZztcbn0iXSwibmFtZXMiOlsic29tZVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZXZlcnlWYXJpYWJsZU5vZGVRdWVyeSIsInJlZHVjZVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJleHByZXNzaW9uVmFyaWFibGVOb2RlUXVlcnkiLCJub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeSIsImFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5Iiwib2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5IiwidmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkiLCJkb21Bc3NpZ25lZCIsIlZhcmlhYmxlIiwic3RyaW5nIiwidHlwZSIsIm5hbWUiLCJleHByZXNzaW9uIiwiZ2V0U3RyaW5nIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJnZXRFeHByZXNzaW9uIiwibWF0Y2hWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJuYW1lTWF0Y2hlcyIsImV2YWx1YXRlIiwiY29udGV4dCIsInZhcmlhYmxlU3RyaW5nIiwidHJhY2UiLCJuZXN0ZWQiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsImV4cHJlc3Npb25TdHJpbmciLCJhc1N0cmluZyIsImRlYnVnIiwiYXNzaWduIiwiZXhwcmVzc2lvblR5cGUiLCJ2YXJpYWJsZVR5cGUiLCJhZGRWYXJpYWJsZSIsImZyb21Tb21lTm9kZSIsInNvbWVOb2RlIiwic29tZVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSIsImZyb21FeHByZXNzaW9uTm9kZSIsImV4cHJlc3Npb25Ob2RlIiwiZXhwcmVzc2lvblZhcmlhYmxlTm9kZSIsImZyb21FdmVyeU5vZGUiLCJldmVyeU5vZGUiLCJldmVyeVZhcmlhYmxlTm9kZSIsImZyb21QYXJhbWV0ZXIiLCJwYXJhbWV0ZXIiLCJzdHJpbmdGcm9tTmFtZSIsImZyb21SZWR1Y2VOb2RlIiwicmVkdWNlTm9kZSIsInJlZHVjZVZhcmlhYmxlTm9kZSIsImZyb21Ob2RlUXVlcnlOb2RlIiwibm9kZVF1ZXJ5Tm9kZSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21Ob2Rlc1F1ZXJ5Tm9kZSIsIm5vZGVzUXVlcnlOb2RlIiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21OYW1lZFBhcmFtZXRlciIsIm5hbWVkUGFyYW1ldGVyIiwiYXNOYW1lIiwiZ2V0QXNOYW1lIiwiZnJvbUV4cHJlc3Npb25BbmRQYXJhbWV0ZXIiLCJmcm9tQXJyYXlBc3NpZ25tZW50Tm9kZSIsImFycmF5QXNzaWdubWVudE5vZGUiLCJhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUiLCJmcm9tT2JqZWN0QXNzaWdubWVudE5vZGUiLCJvYmplY3RBc3NpZ25tZW50Tm9kZSIsIm9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUiLCJmcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudE5vZGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnROb2RlIiwidmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwidmFyaWFibGVGcm9tVHlwZUFuZFZhcmlhYmxlTm9kZSIsImRvbSIsIm5hbWVGcm9tVmFyaWFibGVOb2RlIiwidmFyaWFibGVOYW1lVGVybWluYWxOb2RlIiwidmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJuYW1lU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFtQkE7OztlQUFBOzs7MkRBakJnQjtnRUFDTTtxQkFFSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHMUIsSUFBTUEsd0JBQXdCQyxJQUFBQSxnQkFBUyxFQUFDLG1CQUNsQ0MseUJBQXlCRCxJQUFBQSxnQkFBUyxFQUFDLG9CQUNuQ0UsMEJBQTBCRixJQUFBQSxnQkFBUyxFQUFDLHFCQUNwQ0csNkJBQTZCSCxJQUFBQSxnQkFBUyxFQUFDLHdCQUN2Q0ksOEJBQThCSixJQUFBQSxnQkFBUyxFQUFDLHlCQUN4Q0ssOEJBQThCTCxJQUFBQSxnQkFBUyxFQUFDLHlCQUN4Q00sZ0NBQWdDTixJQUFBQSxnQkFBUyxFQUFDLG9CQUMxQ08sbUNBQW1DUCxJQUFBQSxnQkFBUyxFQUFDLDhCQUM3Q1Esb0NBQW9DUixJQUFBQSxnQkFBUyxFQUFDLCtCQUM5Q1Msc0NBQXNDVCxJQUFBQSxnQkFBUyxFQUFDO0lBRXRELFdBQWVVLElBQUFBLGdCQUFXLDZCQUFDO2FBQU1DLFNBQ25CQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxVQUFVO2dDQURYSjtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElB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
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "expressionsFromFileContext", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return expressionsFromFileContext;
9
+ }
10
+ });
11
+ var _occamquery = require("occam-query");
12
+ var _index = require("../../index");
13
+ var _necessary = require("necessary");
14
+ var first = _necessary.arrayUtilities.first;
15
+ var freeTermNodeQuery = _occamquery.Query.fromExpressionString("//term[1]"), boundTermNodeQuery = _occamquery.Query.fromExpressionString("//term[0]");
16
+ function expressionsFromFileContext(fileContext) {
17
+ var free = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
18
+ var context = fileContext, nodes = nodesFromFileContext(fileContext, free), expressions = _index.Expressions.fromNodes(nodes, context);
19
+ return expressions;
20
+ }
21
+ function nodesFromFileContext(fileContext, free) {
22
+ var termNodeQuery = free ? freeTermNodeQuery : boundTermNodeQuery, node = fileContext.getNode(), termNodes = termNodeQuery.execute(node), firstTermNode = first(termNodes), termNode = firstTermNode, statementNode = node, nodes = [
23
+ termNode,
24
+ statementNode
25
+ ];
26
+ return nodes;
27
+ }
28
+
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3V0aWxpdGllcy9leHByZXNzaW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwib2NjYW0tcXVlcnlcIjtcbmltcG9ydCB7IEV4cHJlc3Npb25zIH0gZnJvbSBcIi4uLy4uL2luZGV4XCI7IC8vL1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5jb25zdCBmcmVlVGVybU5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiLy90ZXJtWzFdXCIpLFxuICAgICAgYm91bmRUZXJtTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvL3Rlcm1bMF1cIik7XG5cbmV4cG9ydCBmdW5jdGlvbiBleHByZXNzaW9uc0Zyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCwgZnJlZSA9IHRydWUpIHtcbiAgY29uc3QgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgIG5vZGVzID0gbm9kZXNGcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQsIGZyZWUpLFxuICAgICAgICBleHByZXNzaW9ucyA9IEV4cHJlc3Npb25zLmZyb21Ob2Rlcyhub2RlcywgY29udGV4dCk7XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25zO1xufVxuXG5mdW5jdGlvbiBub2Rlc0Zyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCwgZnJlZSkge1xuICBjb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gZnJlZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVUZXJtTm9kZVF1ZXJ5IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZFRlcm1Ob2RlUXVlcnksXG4gICAgICAgIG5vZGUgPSBmaWxlQ29udGV4dC5nZXROb2RlKCksXG4gICAgICAgIHRlcm1Ob2RlcyA9IHRlcm1Ob2RlUXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgZmlyc3RUZXJtTm9kZSA9IGZpcnN0KHRlcm1Ob2RlcyksXG4gICAgICAgIHRlcm1Ob2RlID0gZmlyc3RUZXJtTm9kZSwgLy8vXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgbm9kZXMgPSBbXG4gICAgICAgICAgdGVybU5vZGUsXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZVxuICAgICAgICBdO1xuXG4gIHJldHVybiBub2Rlcztcbn1cbiJdLCJuYW1lcyI6WyJleHByZXNzaW9uc0Zyb21GaWxlQ29udGV4dCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJmcmVlVGVybU5vZGVRdWVyeSIsIlF1ZXJ5IiwiZnJvbUV4cHJlc3Npb25TdHJpbmciLCJib3VuZFRlcm1Ob2RlUXVlcnkiLCJmaWxlQ29udGV4dCIsImZyZWUiLCJjb250ZXh0Iiwibm9kZXMiLCJub2Rlc0Zyb21GaWxlQ29udGV4dCIsImV4cHJlc3Npb25zIiwiRXhwcmVzc2lvbnMiLCJmcm9tTm9kZXMiLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZSIsImdldE5vZGUiLCJ0ZXJtTm9kZXMiLCJleGVjdXRlIiwiZmlyc3RUZXJtTm9kZSIsInRlcm1Ob2RlIiwic3RhdGVtZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV2dCQTs7O2VBQUFBOzs7MEJBVE07cUJBQ007eUJBQ0c7QUFFL0IsSUFBTSxBQUFFQyxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFUixJQUFNRSxvQkFBb0JDLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLGNBQy9DQyxxQkFBcUJGLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDO0FBRS9DLFNBQVNMLDJCQUEyQk8sV0FBVztRQUFFQyxPQUFBQSxpRUFBTztJQUM3RCxJQUFNQyxVQUFVRixhQUNWRyxRQUFRQyxxQkFBcUJKLGFBQWFDLE9BQzFDSSxjQUFjQyxrQkFBVyxDQUFDQyxTQUFTLENBQUNKLE9BQU9EO0lBRWpELE9BQU9HO0FBQ1Q7QUFFQSxTQUFTRCxxQkFBcUJKLFdBQVcsRUFBRUMsSUFBSTtJQUM3QyxJQUFNTyxnQkFBZ0JQLE9BQ0VMLG9CQUNFRyxvQkFDcEJVLE9BQU9ULFlBQVlVLE9BQU8sSUFDMUJDLFlBQVlILGNBQWNJLE9BQU8sQ0FBQ0gsT0FDbENJLGdCQUFnQm5CLE1BQU1pQixZQUN0QkcsV0FBV0QsZUFDWEUsZ0JBQWdCTixNQUNoQk4sUUFBUTtRQUNOVztRQUNBQztLQUNEO0lBRVAsT0FBT1o7QUFDVCJ9
package/lib/example.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  require("./index");
6
6
  var _release = require("./example/context/release");
7
7
  var _furtle = require("./example/utilities/furtle");
8
- var _values = require("./example/utilities/values");
8
+ var _expressions = require("./example/utilities/expressions");
9
9
  var _procedure = require("./example/utilities/procedure");
10
10
  var _nominal = require("./example/utilities/nominal");
11
11
  var releaseContext = _release.ReleaseContext.fromNothing(), furtleFile = (0, _furtle.furtleFileFromNothing)(), file = furtleFile; ///
@@ -13,13 +13,13 @@ releaseContext.addFile(file);
13
13
  releaseContext.verify();
14
14
  var nominalFileContext = (0, _nominal.nominalFileContextFromReleaseContext)(releaseContext), fileContext = nominalFileContext; ///
15
15
  releaseContext.addFileContext(fileContext);
16
- var free = true, values = (0, _values.valuesFromFileContext)(fileContext, free), procedure = (0, _procedure.procedureFromReleaseContext)(releaseContext);
16
+ var free = true, expressions = (0, _expressions.expressionsFromFileContext)(fileContext, free), procedure = (0, _procedure.procedureFromReleaseContext)(releaseContext);
17
17
  // try {
18
- var value = procedure.call(values, fileContext), boolean = value.getBoolean();
18
+ var expression = procedure.call(expressions, fileContext), boolean = expression.getBoolean();
19
19
  console.log(boolean); // } catch (exception) {
20
20
  // const message = exception.getMessage();
21
21
  //
22
22
  // console.log(message);
23
23
  // }
24
24
 
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGFtcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgXCIuL2luZGV4XCI7XG5cbmltcG9ydCB7IFJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vZXhhbXBsZS9jb250ZXh0L3JlbGVhc2VcIjtcblxuaW1wb3J0IHsgZnVydGxlRmlsZUZyb21Ob3RoaW5nIH0gZnJvbSBcIi4vZXhhbXBsZS91dGlsaXRpZXMvZnVydGxlXCI7XG5pbXBvcnQgeyB2YWx1ZXNGcm9tRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9leGFtcGxlL3V0aWxpdGllcy92YWx1ZXNcIjtcbmltcG9ydCB7IHByb2NlZHVyZUZyb21SZWxlYXNlQ29udGV4dCB9IGZyb20gXCIuL2V4YW1wbGUvdXRpbGl0aWVzL3Byb2NlZHVyZVwiO1xuaW1wb3J0IHsgbm9taW5hbEZpbGVDb250ZXh0RnJvbVJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vZXhhbXBsZS91dGlsaXRpZXMvbm9taW5hbFwiO1xuXG5jb25zdCByZWxlYXNlQ29udGV4dCA9IFJlbGVhc2VDb250ZXh0LmZyb21Ob3RoaW5nKCksXG4gICAgICBmdXJ0bGVGaWxlID0gZnVydGxlRmlsZUZyb21Ob3RoaW5nKCksXG4gICAgICBmaWxlID0gZnVydGxlRmlsZTsgIC8vL1xuXG5yZWxlYXNlQ29udGV4dC5hZGRGaWxlKGZpbGUpO1xuXG5yZWxlYXNlQ29udGV4dC52ZXJpZnkoKTtcblxuY29uc3Qgbm9taW5hbEZpbGVDb250ZXh0ID0gbm9taW5hbEZpbGVDb250ZXh0RnJvbVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0KSxcbiAgICAgIGZpbGVDb250ZXh0ID0gbm9taW5hbEZpbGVDb250ZXh0OyAvLy9cblxucmVsZWFzZUNvbnRleHQuYWRkRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG5jb25zdCBmcmVlID0gdHJ1ZSxcbiAgICAgIHZhbHVlcyA9IHZhbHVlc0Zyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCwgZnJlZSksXG4gICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmVGcm9tUmVsZWFzZUNvbnRleHQocmVsZWFzZUNvbnRleHQpO1xuXG4vLyB0cnkge1xuICBjb25zdCB2YWx1ZSA9IHByb2NlZHVyZS5jYWxsKHZhbHVlcywgZmlsZUNvbnRleHQpLFxuICAgICAgICBib29sZWFuID0gdmFsdWUuZ2V0Qm9vbGVhbigpO1xuXG4gIGNvbnNvbGUubG9nKGJvb2xlYW4pO1xuLy8gfSBjYXRjaCAoZXhjZXB0aW9uKSB7XG4vLyAgIGNvbnN0IG1lc3NhZ2UgPSBleGNlcHRpb24uZ2V0TWVzc2FnZSgpO1xuLy9cbi8vICAgY29uc29sZS5sb2cobWVzc2FnZSk7XG4vLyB9XG4iXSwibmFtZXMiOlsicmVsZWFzZUNvbnRleHQiLCJSZWxlYXNlQ29udGV4dCIsImZyb21Ob3RoaW5nIiwiZnVydGxlRmlsZSIsImZ1cnRsZUZpbGVGcm9tTm90aGluZyIsImZpbGUiLCJhZGRGaWxlIiwidmVyaWZ5Iiwibm9taW5hbEZpbGVDb250ZXh0Iiwibm9taW5hbEZpbGVDb250ZXh0RnJvbVJlbGVhc2VDb250ZXh0IiwiZmlsZUNvbnRleHQiLCJhZGRGaWxlQ29udGV4dCIsImZyZWUiLCJ2YWx1ZXMiLCJ2YWx1ZXNGcm9tRmlsZUNvbnRleHQiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVGcm9tUmVsZWFzZUNvbnRleHQiLCJ2YWx1ZSIsImNhbGwiLCJib29sZWFuIiwiZ2V0Qm9vbGVhbiIsImNvbnNvbGUiLCJsb2ciXSwibWFwcGluZ3MiOiJBQUFBOzs7O1FBRU87dUJBRXdCO3NCQUVPO3NCQUNBO3lCQUNNO3VCQUNTO0FBRXJELElBQU1BLGlCQUFpQkMsdUJBQWMsQ0FBQ0MsV0FBVyxJQUMzQ0MsYUFBYUMsSUFBQUEsNkJBQXFCLEtBQ2xDQyxPQUFPRixZQUFhLEdBQUc7QUFFN0JILGVBQWVNLE9BQU8sQ0FBQ0Q7QUFFdkJMLGVBQWVPLE1BQU07QUFFckIsSUFBTUMscUJBQXFCQyxJQUFBQSw2Q0FBb0MsRUFBQ1QsaUJBQzFEVSxjQUFjRixvQkFBb0IsR0FBRztBQUUzQ1IsZUFBZVcsY0FBYyxDQUFDRDtBQUU5QixJQUFNRSxPQUFPLE1BQ1BDLFNBQVNDLElBQUFBLDZCQUFxQixFQUFDSixhQUFhRSxPQUM1Q0csWUFBWUMsSUFBQUEsc0NBQTJCLEVBQUNoQjtBQUU5QyxRQUFRO0FBQ04sSUFBTWlCLFFBQVFGLFVBQVVHLElBQUksQ0FBQ0wsUUFBUUgsY0FDL0JTLFVBQVVGLE1BQU1HLFVBQVU7QUFFaENDLFFBQVFDLEdBQUcsQ0FBQ0gsVUFDZCx3QkFBd0I7Q0FDeEIsNENBQTRDO0NBQzVDLEVBQUU7Q0FDRiwwQkFBMEI7Q0FDMUIsSUFBSSJ9
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGFtcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgXCIuL2luZGV4XCI7XG5cbmltcG9ydCB7IFJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vZXhhbXBsZS9jb250ZXh0L3JlbGVhc2VcIjtcblxuaW1wb3J0IHsgZnVydGxlRmlsZUZyb21Ob3RoaW5nIH0gZnJvbSBcIi4vZXhhbXBsZS91dGlsaXRpZXMvZnVydGxlXCI7XG5pbXBvcnQgeyBleHByZXNzaW9uc0Zyb21GaWxlQ29udGV4dCB9IGZyb20gXCIuL2V4YW1wbGUvdXRpbGl0aWVzL2V4cHJlc3Npb25zXCI7XG5pbXBvcnQgeyBwcm9jZWR1cmVGcm9tUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9leGFtcGxlL3V0aWxpdGllcy9wcm9jZWR1cmVcIjtcbmltcG9ydCB7IG5vbWluYWxGaWxlQ29udGV4dEZyb21SZWxlYXNlQ29udGV4dCB9IGZyb20gXCIuL2V4YW1wbGUvdXRpbGl0aWVzL25vbWluYWxcIjtcblxuY29uc3QgcmVsZWFzZUNvbnRleHQgPSBSZWxlYXNlQ29udGV4dC5mcm9tTm90aGluZygpLFxuICAgICAgZnVydGxlRmlsZSA9IGZ1cnRsZUZpbGVGcm9tTm90aGluZygpLFxuICAgICAgZmlsZSA9IGZ1cnRsZUZpbGU7ICAvLy9cblxucmVsZWFzZUNvbnRleHQuYWRkRmlsZShmaWxlKTtcblxucmVsZWFzZUNvbnRleHQudmVyaWZ5KCk7XG5cbmNvbnN0IG5vbWluYWxGaWxlQ29udGV4dCA9IG5vbWluYWxGaWxlQ29udGV4dEZyb21SZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCksXG4gICAgICBmaWxlQ29udGV4dCA9IG5vbWluYWxGaWxlQ29udGV4dDsgLy8vXG5cbnJlbGVhc2VDb250ZXh0LmFkZEZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuY29uc3QgZnJlZSA9IHRydWUsXG4gICAgICBleHByZXNzaW9ucyA9IGV4cHJlc3Npb25zRnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0LCBmcmVlKSxcbiAgICAgIHByb2NlZHVyZSA9IHByb2NlZHVyZUZyb21SZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCk7XG5cbi8vIHRyeSB7XG4gIGNvbnN0IGV4cHJlc3Npb24gPSBwcm9jZWR1cmUuY2FsbChleHByZXNzaW9ucywgZmlsZUNvbnRleHQpLFxuICAgICAgICBib29sZWFuID0gZXhwcmVzc2lvbi5nZXRCb29sZWFuKCk7XG5cbiAgY29uc29sZS5sb2coYm9vbGVhbik7XG4vLyB9IGNhdGNoIChleGNlcHRpb24pIHtcbi8vICAgY29uc3QgbWVzc2FnZSA9IGV4Y2VwdGlvbi5nZXRNZXNzYWdlKCk7XG4vL1xuLy8gICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbi8vIH1cbiJdLCJuYW1lcyI6WyJyZWxlYXNlQ29udGV4dCIsIlJlbGVhc2VDb250ZXh0IiwiZnJvbU5vdGhpbmciLCJmdXJ0bGVGaWxlIiwiZnVydGxlRmlsZUZyb21Ob3RoaW5nIiwiZmlsZSIsImFkZEZpbGUiLCJ2ZXJpZnkiLCJub21pbmFsRmlsZUNvbnRleHQiLCJub21pbmFsRmlsZUNvbnRleHRGcm9tUmVsZWFzZUNvbnRleHQiLCJmaWxlQ29udGV4dCIsImFkZEZpbGVDb250ZXh0IiwiZnJlZSIsImV4cHJlc3Npb25zIiwiZXhwcmVzc2lvbnNGcm9tRmlsZUNvbnRleHQiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVGcm9tUmVsZWFzZUNvbnRleHQiLCJleHByZXNzaW9uIiwiY2FsbCIsImJvb2xlYW4iLCJnZXRCb29sZWFuIiwiY29uc29sZSIsImxvZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7UUFFTzt1QkFFd0I7c0JBRU87MkJBQ0s7eUJBQ0M7dUJBQ1M7QUFFckQsSUFBTUEsaUJBQWlCQyx1QkFBYyxDQUFDQyxXQUFXLElBQzNDQyxhQUFhQyxJQUFBQSw2QkFBcUIsS0FDbENDLE9BQU9GLFlBQWEsR0FBRztBQUU3QkgsZUFBZU0sT0FBTyxDQUFDRDtBQUV2QkwsZUFBZU8sTUFBTTtBQUVyQixJQUFNQyxxQkFBcUJDLElBQUFBLDZDQUFvQyxFQUFDVCxpQkFDMURVLGNBQWNGLG9CQUFvQixHQUFHO0FBRTNDUixlQUFlVyxjQUFjLENBQUNEO0FBRTlCLElBQU1FLE9BQU8sTUFDUEMsY0FBY0MsSUFBQUEsdUNBQTBCLEVBQUNKLGFBQWFFLE9BQ3RERyxZQUFZQyxJQUFBQSxzQ0FBMkIsRUFBQ2hCO0FBRTlDLFFBQVE7QUFDTixJQUFNaUIsYUFBYUYsVUFBVUcsSUFBSSxDQUFDTCxhQUFhSCxjQUN6Q1MsVUFBVUYsV0FBV0csVUFBVTtBQUVyQ0MsUUFBUUMsR0FBRyxDQUFDSCxVQUNkLHdCQUF3QjtDQUN4Qiw0Q0FBNEM7Q0FDNUMsRUFBRTtDQUNGLDBCQUEwQjtDQUMxQixJQUFJIn0=
package/lib/index.js CHANGED
@@ -9,12 +9,12 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
+ Expressions: function() {
13
+ return _expressions.default;
14
+ },
12
15
  FileContext: function() {
13
16
  return _file.default;
14
17
  },
15
- Values: function() {
16
- return _values.default;
17
- },
18
18
  stringUtilities: function() {
19
19
  return _string.default;
20
20
  }
@@ -23,9 +23,7 @@ var _step = /*#__PURE__*/ _interop_require_default(require("./dom/step"));
23
23
  var _some = /*#__PURE__*/ _interop_require_default(require("./dom/some"));
24
24
  var _label = /*#__PURE__*/ _interop_require_default(require("./dom/label"));
25
25
  var _error = /*#__PURE__*/ _interop_require_default(require("./dom/error"));
26
- var _value = /*#__PURE__*/ _interop_require_default(require("./dom/value"));
27
26
  var _every = /*#__PURE__*/ _interop_require_default(require("./dom/every"));
28
- var _values = /*#__PURE__*/ _interop_require_default(require("./dom/values"));
29
27
  var _reduce = /*#__PURE__*/ _interop_require_default(require("./dom/reduce"));
30
28
  var _ternary = /*#__PURE__*/ _interop_require_default(require("./dom/ternary"));
31
29
  var _variable = /*#__PURE__*/ _interop_require_default(require("./dom/variable"));
@@ -36,18 +34,20 @@ var _parameter = /*#__PURE__*/ _interop_require_default(require("./dom/parameter
36
34
  var _parameters = /*#__PURE__*/ _interop_require_default(require("./dom/parameters"));
37
35
  var _nodes = /*#__PURE__*/ _interop_require_default(require("./dom/query/nodes"));
38
36
  var _comparison = /*#__PURE__*/ _interop_require_default(require("./dom/comparison"));
37
+ var _expression = /*#__PURE__*/ _interop_require_default(require("./dom/expression"));
38
+ var _expressions = /*#__PURE__*/ _interop_require_default(require("./dom/expressions"));
39
39
  var _return = /*#__PURE__*/ _interop_require_default(require("./dom/block/return"));
40
- var _negated = /*#__PURE__*/ _interop_require_default(require("./dom/value/negated"));
41
- var _bitwise = /*#__PURE__*/ _interop_require_default(require("./dom/value/bitwise"));
42
40
  var _procedureCall = /*#__PURE__*/ _interop_require_default(require("./dom/procedureCall"));
43
41
  var _named = /*#__PURE__*/ _interop_require_default(require("./dom/parameter/named"));
44
- var _bracketed = /*#__PURE__*/ _interop_require_default(require("./dom/value/bracketed"));
45
42
  var _array = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/array"));
46
43
  var _return1 = /*#__PURE__*/ _interop_require_default(require("./dom/statement/return"));
47
44
  var _named1 = /*#__PURE__*/ _interop_require_default(require("./dom/parameters/named"));
48
45
  var _object = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/object"));
46
+ var _negated = /*#__PURE__*/ _interop_require_default(require("./dom/expression/negated"));
47
+ var _bitwise = /*#__PURE__*/ _interop_require_default(require("./dom/expression/bitwise"));
49
48
  var _anonymous = /*#__PURE__*/ _interop_require_default(require("./dom/procedure/anonymous"));
50
49
  var _variable1 = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/variable"));
50
+ var _bracketed = /*#__PURE__*/ _interop_require_default(require("./dom/expression/bracketed"));
51
51
  var _variable2 = /*#__PURE__*/ _interop_require_default(require("./dom/assignments/variable"));
52
52
  var _procedure1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/procedure"));
53
53
  var _file = /*#__PURE__*/ _interop_require_default(require("./context/file"));
@@ -58,4 +58,4 @@ function _interop_require_default(obj) {
58
58
  };
59
59
  }
60
60
 
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZG9tL3N0ZXBcIjtcbmltcG9ydCBTb21lIGZyb20gXCIuL2RvbS9zb21lXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vZG9tL2xhYmVsXCI7XG5pbXBvcnQgRXJyb3IgZnJvbSBcIi4vZG9tL2Vycm9yXCI7XG5pbXBvcnQgVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlXCI7XG5pbXBvcnQgRXZlcnkgZnJvbSBcIi4vZG9tL2V2ZXJ5XCI7XG5pbXBvcnQgVmFsdWVzIGZyb20gXCIuL2RvbS92YWx1ZXNcIjtcbmltcG9ydCBSZWR1Y2UgZnJvbSBcIi4vZG9tL3JlZHVjZVwiO1xuaW1wb3J0IFRlcm5hcnkgZnJvbSBcIi4vZG9tL3Rlcm5hcnlcIjtcbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi9kb20vdmFyaWFibGVcIjtcbmltcG9ydCBSZWZlcmVuY2UgZnJvbSBcIi4vZG9tL3JlZmVyZW5jZVwiO1xuaW1wb3J0IFByb2NlZHVyZSBmcm9tIFwiLi9kb20vcHJvY2VkdXJlXCI7XG5pbXBvcnQgTm9kZVF1ZXJ5IGZyb20gXCIuL2RvbS9xdWVyeS9ub2RlXCI7XG5pbXBvcnQgUGFyYW1ldGVyIGZyb20gXCIuL2RvbS9wYXJhbWV0ZXJcIjtcbmltcG9ydCBQYXJhbWV0ZXJzIGZyb20gXCIuL2RvbS9wYXJhbWV0ZXJzXCI7XG5pbXBvcnQgTm9kZXNRdWVyeSBmcm9tIFwiLi9kb20vcXVlcnkvbm9kZXNcIjtcbmltcG9ydCBDb21wYXJpc29uIGZyb20gXCIuL2RvbS9jb21wYXJpc29uXCI7XG5pbXBvcnQgUmV0dXJuQmxvY2sgZnJvbSBcIi4vZG9tL2Jsb2NrL3JldHVyblwiO1xuaW1wb3J0IE5lZ2F0ZWRWYWx1ZSBmcm9tIFwiLi9kb20vdmFsdWUvbmVnYXRlZFwiO1xuaW1wb3J0IEJpdHdpc2VWYWx1ZSBmcm9tIFwiLi9kb20vdmFsdWUvYml0d2lzZVwiO1xuaW1wb3J0IFByb2NlZHVyZUNhbGwgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZUNhbGxcIjtcbmltcG9ydCBOYW1lZFBhcmFtZXRlciBmcm9tIFwiLi9kb20vcGFyYW1ldGVyL25hbWVkXCI7XG5pbXBvcnQgQnJhY2tldGVkVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlL2JyYWNrZXRlZFwiO1xuaW1wb3J0IEFycmF5QXNzaWdtZW50IGZyb20gXCIuL2RvbS9hc3NpZ25tZW50L2FycmF5XCI7XG5pbXBvcnQgUmV0dXJuU3RhdGVtZW50IGZyb20gXCIuL2RvbS9zdGF0ZW1lbnQvcmV0dXJuXCI7XG5pbXBvcnQgTmFtZWRQYXJhbWV0ZXJzIGZyb20gXCIuL2RvbS9wYXJhbWV0ZXJzL25hbWVkXCI7XG5pbXBvcnQgT2JqZWN0QXNzaWdubWVudCBmcm9tIFwiLi9kb20vYXNzaWdubWVudC9vYmplY3RcIjtcbmltcG9ydCBBbm9ueW1vdXNQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZS9hbm9ueW1vdXNcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvdmFyaWFibGVcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnRzIGZyb20gXCIuL2RvbS9hc3NpZ25tZW50cy92YXJpYWJsZVwiO1xuaW1wb3J0IFByb2NlZHVyZURlY2xhcmF0aW9uIGZyb20gXCIuL2RvbS9kZWNsYXJhdGlvbi9wcm9jZWR1cmVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBWYWx1ZXMgfSBmcm9tIFwiLi9kb20vdmFsdWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9maWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN0cmluZ1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbiJdLCJuYW1lcyI6WyJGaWxlQ29udGV4dCIsIlZhbHVlcyIsInN0cmluZ1V0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBbUNvQkEsV0FBVztlQUFYQSxhQUFXOztJQURYQyxNQUFNO2VBQU5BLGVBQU07O0lBRU5DLGVBQWU7ZUFBZkEsZUFBZTs7OzJEQWxDbEI7MkRBQ0E7NERBQ0M7NERBQ0E7NERBQ0E7NERBQ0E7NkRBQ0M7NkRBQ0E7OERBQ0M7K0RBQ0M7Z0VBQ0M7Z0VBQ0E7MkRBQ0E7Z0VBQ0E7aUVBQ0M7NERBQ0E7aUVBQ0E7NkRBQ0M7OERBQ0M7OERBQ0E7b0VBQ0M7NERBQ0M7Z0VBQ0E7NERBQ0E7OERBQ0M7NkRBQ0E7NkRBQ0M7Z0VBQ0U7Z0VBQ0E7Z0VBQ0M7aUVBQ0M7MkRBR007NkRBQ0kifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZG9tL3N0ZXBcIjtcbmltcG9ydCBTb21lIGZyb20gXCIuL2RvbS9zb21lXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vZG9tL2xhYmVsXCI7XG5pbXBvcnQgRXJyb3IgZnJvbSBcIi4vZG9tL2Vycm9yXCI7XG5pbXBvcnQgRXZlcnkgZnJvbSBcIi4vZG9tL2V2ZXJ5XCI7XG5pbXBvcnQgUmVkdWNlIGZyb20gXCIuL2RvbS9yZWR1Y2VcIjtcbmltcG9ydCBUZXJuYXJ5IGZyb20gXCIuL2RvbS90ZXJuYXJ5XCI7XG5pbXBvcnQgVmFyaWFibGUgZnJvbSBcIi4vZG9tL3ZhcmlhYmxlXCI7XG5pbXBvcnQgUmVmZXJlbmNlIGZyb20gXCIuL2RvbS9yZWZlcmVuY2VcIjtcbmltcG9ydCBQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZVwiO1xuaW1wb3J0IE5vZGVRdWVyeSBmcm9tIFwiLi9kb20vcXVlcnkvbm9kZVwiO1xuaW1wb3J0IFBhcmFtZXRlciBmcm9tIFwiLi9kb20vcGFyYW1ldGVyXCI7XG5pbXBvcnQgUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVyc1wiO1xuaW1wb3J0IE5vZGVzUXVlcnkgZnJvbSBcIi4vZG9tL3F1ZXJ5L25vZGVzXCI7XG5pbXBvcnQgQ29tcGFyaXNvbiBmcm9tIFwiLi9kb20vY29tcGFyaXNvblwiO1xuaW1wb3J0IEV4cHJlc3Npb24gZnJvbSBcIi4vZG9tL2V4cHJlc3Npb25cIjtcbmltcG9ydCBFeHByZXNzaW9ucyBmcm9tIFwiLi9kb20vZXhwcmVzc2lvbnNcIjtcbmltcG9ydCBSZXR1cm5CbG9jayBmcm9tIFwiLi9kb20vYmxvY2svcmV0dXJuXCI7XG5pbXBvcnQgUHJvY2VkdXJlQ2FsbCBmcm9tIFwiLi9kb20vcHJvY2VkdXJlQ2FsbFwiO1xuaW1wb3J0IE5hbWVkUGFyYW1ldGVyIGZyb20gXCIuL2RvbS9wYXJhbWV0ZXIvbmFtZWRcIjtcbmltcG9ydCBBcnJheUFzc2lnbWVudCBmcm9tIFwiLi9kb20vYXNzaWdubWVudC9hcnJheVwiO1xuaW1wb3J0IFJldHVyblN0YXRlbWVudCBmcm9tIFwiLi9kb20vc3RhdGVtZW50L3JldHVyblwiO1xuaW1wb3J0IE5hbWVkUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVycy9uYW1lZFwiO1xuaW1wb3J0IE9iamVjdEFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvb2JqZWN0XCI7XG5pbXBvcnQgTmVnYXRlZEV4cHJlc3Npb24gZnJvbSBcIi4vZG9tL2V4cHJlc3Npb24vbmVnYXRlZFwiO1xuaW1wb3J0IEJpdHdpc2VFeHByZXNzaW9uIGZyb20gXCIuL2RvbS9leHByZXNzaW9uL2JpdHdpc2VcIjtcbmltcG9ydCBBbm9ueW1vdXNQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZS9hbm9ueW1vdXNcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvdmFyaWFibGVcIjtcbmltcG9ydCBCcmFja2V0ZWRFeHByZXNzaW9uIGZyb20gXCIuL2RvbS9leHByZXNzaW9uL2JyYWNrZXRlZFwiO1xuaW1wb3J0IFZhcmlhYmxlQXNzaWdubWVudHMgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnRzL3ZhcmlhYmxlXCI7XG5pbXBvcnQgUHJvY2VkdXJlRGVjbGFyYXRpb24gZnJvbSBcIi4vZG9tL2RlY2xhcmF0aW9uL3Byb2NlZHVyZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEV4cHJlc3Npb25zIH0gZnJvbSBcIi4vZG9tL2V4cHJlc3Npb25zXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9maWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN0cmluZ1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbiJdLCJuYW1lcyI6WyJFeHByZXNzaW9ucyIsIkZpbGVDb250ZXh0Iiwic3RyaW5nVXRpbGl0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFrQ29CQSxXQUFXO2VBQVhBLG9CQUFXOztJQUNYQyxXQUFXO2VBQVhBLGFBQVc7O0lBQ1hDLGVBQWU7ZUFBZkEsZUFBZTs7OzJEQWxDbEI7MkRBQ0E7NERBQ0M7NERBQ0E7NERBQ0E7NkRBQ0M7OERBQ0M7K0RBQ0M7Z0VBQ0M7Z0VBQ0E7MkRBQ0E7Z0VBQ0E7aUVBQ0M7NERBQ0E7aUVBQ0E7aUVBQ0E7a0VBQ0M7NkRBQ0E7b0VBQ0U7NERBQ0M7NERBQ0E7OERBQ0M7NkRBQ0E7NkRBQ0M7OERBQ0M7OERBQ0E7Z0VBQ0M7Z0VBQ0E7Z0VBQ0M7Z0VBQ0E7aUVBQ0M7MkRBR007NkRBQ0kifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "2.0.120",
4
+ "version": "2.0.122",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -33,18 +33,18 @@ export default domAssigned(class ArrayAssigment {
33
33
 
34
34
  context.trace(`Evaluating the '${arrayAssignmentString}' array assignment...`);
35
35
 
36
- const value = this.variable.evaluate(context),
37
- valueType = value.getType();
36
+ const expression = this.variable.evaluate(context),
37
+ expressionType = expression.getType();
38
38
 
39
- if (valueType !== NODES_TYPE) {
40
- const valueString = value.asString(context),
41
- message = `The ${valueString} value's '${valueType}' type should be '${NODES_TYPE}'.`,
39
+ if (expressionType !== NODES_TYPE) {
40
+ const expressionString = expression.asString(context),
41
+ message = `The ${expressionString} expression's '${expressionType}' type should be '${NODES_TYPE}'.`,
42
42
  exception = Exception.fromMessage(message);
43
43
 
44
44
  throw exception;
45
45
  }
46
46
 
47
- const nodes = value.getNodes(),
47
+ const nodes = expression.getNodes(),
48
48
  nodesLength = nodes.length,
49
49
  parametersLength = this.parameters.getLength();
50
50
 
@@ -59,22 +59,22 @@ export default domAssigned(class ArrayAssigment {
59
59
 
60
60
  this.parameters.forEachParameter((parameter, index) => {
61
61
  if (parameter !== null) {
62
- const { Value } = dom,
62
+ const { Expression } = dom,
63
63
  node = nodes[index],
64
- value = Value.fromNode(node, context);
64
+ expression = Expression.fromNode(node, context);
65
65
 
66
- this.evaluateParameter(parameter, value, context);
66
+ this.evaluateParameter(parameter, expression, context);
67
67
  }
68
68
  });
69
69
 
70
70
  context.debug(`...evaluated the '${arrayAssignmentString}' array assignment.`);
71
71
  }
72
72
 
73
- evaluateParameter(parameter, value, context) {
74
- const valueString = value.asString(context),
73
+ evaluateParameter(parameter, expression, context) {
74
+ const expressionString = expression.asString(context),
75
75
  parameterString = parameter.getString();
76
76
 
77
- context.trace(`Evaluating the '${parameterString}' parameter against the ${valueString} value...`);
77
+ context.trace(`Evaluating the '${parameterString}' parameter against the ${expressionString} expression...`);
78
78
 
79
79
  const parameterType = parameter.getType();
80
80
 
@@ -88,9 +88,9 @@ export default domAssigned(class ArrayAssigment {
88
88
  const { Variable } = dom,
89
89
  variable = Variable.fromParameter(parameter, context);
90
90
 
91
- variable.assign(value, context);
91
+ variable.assign(expression, context);
92
92
 
93
- context.debug(`...evaluated the '${parameterString}' parameter against the ${valueString} value.`);
93
+ context.debug(`...evaluated the '${parameterString}' parameter against the ${expressionString} expression.`);
94
94
  }
95
95
 
96
96
  static name = "ArrayAssignment";
@@ -35,12 +35,12 @@ export default domAssigned(class ObjectAssigment {
35
35
 
36
36
  context.trace(`Evaluating the '${objectAssignmentString}' object assignment...`);
37
37
 
38
- const value = this.variable.evaluate(context),
39
- valueType = value.getType();
38
+ const expression = this.variable.evaluate(context),
39
+ expressionType = expression.getType();
40
40
 
41
- if (valueType !== NODE_TYPE) {
42
- const valueString = value.asString(context),
43
- message = `The ${valueString} value's '${valueType}' type should be '${NODE_TYPE}'.`,
41
+ if (expressionType !== NODE_TYPE) {
42
+ const expressionString = expression.asString(context),
43
+ message = `The ${expressionString} expression's '${expressionType}' type should be '${NODE_TYPE}'.`,
44
44
  exception = Exception.fromMessage(message);
45
45
 
46
46
  throw exception;
@@ -49,35 +49,35 @@ export default domAssigned(class ObjectAssigment {
49
49
  nodeProperties.matchNamedParameters(this.namedParameters, context);
50
50
 
51
51
  this.namedParameters.forEachNamedParameter((namedParameter) => {
52
- this.evaluateNamedParameter(namedParameter, value, context);
52
+ this.evaluateNamedParameter(namedParameter, expression, context);
53
53
  });
54
54
 
55
55
  context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
56
56
  }
57
57
 
58
- evaluateNamedParameter(namedParameter, value, context) {
59
- const valueString = value.asString(context),
58
+ evaluateNamedParameter(namedParameter, expression, context) {
59
+ const expressionString = expression.asString(context),
60
60
  namedParameterString = namedParameter.getString();
61
61
 
62
- context.trace(`Evaluating the '${namedParameterString}' named parameter against the ${valueString} value...`);
62
+ context.trace(`Evaluating the '${namedParameterString}' named parameter against the ${expressionString} expression...`);
63
63
 
64
64
  const name = namedParameter.getName();
65
65
 
66
66
  switch (name) {
67
67
  case CONTENT_PARAMETER_NAME: {
68
- value = this.evaluateContentNamedParameter(namedParameter, value, context);
68
+ expression = this.evaluateContentNamedParameter(namedParameter, expression, context);
69
69
 
70
70
  break;
71
71
  }
72
72
 
73
73
  case TERMINAL_PARAMETER_NAME: {
74
- value = this.evaluateTerminalNamedParameter(namedParameter, value, context);
74
+ expression = this.evaluateTerminalNamedParameter(namedParameter, expression, context);
75
75
 
76
76
  break;
77
77
  }
78
78
 
79
79
  case CHILD_NODES_PARAMETER_NAME: {
80
- value = this.evaluateChildNodesNamedParameter(namedParameter, value, context);
80
+ expression = this.evaluateChildNodesNamedParameter(namedParameter, expression, context);
81
81
 
82
82
  break;
83
83
  }
@@ -86,12 +86,12 @@ export default domAssigned(class ObjectAssigment {
86
86
  const { Variable } = dom,
87
87
  variable = Variable.fromNamedParameter(namedParameter, context);
88
88
 
89
- variable.assign(value, context);
89
+ variable.assign(expression, context);
90
90
 
91
- context.debug(`...evaluated the '${namedParameterString}' parameter named against the ${valueString} value.`);
91
+ context.debug(`...evaluated the '${namedParameterString}' parameter named against the ${expressionString} expression.`);
92
92
  }
93
93
 
94
- evaluateContentNamedParameter(namedParameter, value, context) {
94
+ evaluateContentNamedParameter(namedParameter, expression, context) {
95
95
  const type = namedParameter.getType();
96
96
 
97
97
  if (type !== STRING_TYPE) {
@@ -102,28 +102,28 @@ export default domAssigned(class ObjectAssigment {
102
102
  throw exception;
103
103
  }
104
104
 
105
- const node = value.getNode(),
105
+ const node = expression.getNode(),
106
106
  nodeTerminalNode = node.isTerminalNode();
107
107
 
108
108
  if (!nodeTerminalNode) {
109
- const valueString = value.asString(context),
110
- message = `The ${valueString} value's node must be terminal.`,
109
+ const expressionString = expression.asString(context),
110
+ message = `The ${expressionString} expression's node must be terminal.`,
111
111
  exception = Exception.fromMessage(message);
112
112
 
113
113
  throw exception;
114
114
  }
115
115
 
116
- const { Value } = dom,
116
+ const { Expression } = dom,
117
117
  terminalNode = node, ///
118
118
  content = terminalNode.getContent(),
119
119
  string = content; ///
120
120
 
121
- value = Value.fromString(string, context); ///
121
+ expression = Expression.fromString(string, context); ///
122
122
 
123
- return value;
123
+ return expression;
124
124
  }
125
125
 
126
- evaluateTerminalNamedParameter(namedParameter, value, context) {
126
+ evaluateTerminalNamedParameter(namedParameter, expression, context) {
127
127
  const type = namedParameter.getType();
128
128
 
129
129
  if (type !== BOOLEAN_TYPE) {
@@ -134,19 +134,19 @@ export default domAssigned(class ObjectAssigment {
134
134
  throw exception;
135
135
  }
136
136
 
137
- const node = value.getNode(),
137
+ const node = expression.getNode(),
138
138
  nodeTerminalNode = node.isTerminalNode(),
139
139
  terminal = nodeTerminalNode; ///
140
140
 
141
- const { Value } = dom,
141
+ const { Expression } = dom,
142
142
  boolean = terminal; ///
143
143
 
144
- value = Value.fromBoolean(boolean, context); ///
144
+ expression = Expression.fromBoolean(boolean, context); ///
145
145
 
146
- return value;
146
+ return expression;
147
147
  }
148
148
 
149
- evaluateChildNodesNamedParameter(namedParameter, value, context) {
149
+ evaluateChildNodesNamedParameter(namedParameter, expression, context) {
150
150
  const type = namedParameter.getType();
151
151
 
152
152
  if (type !== NODES_TYPE) {
@@ -157,25 +157,25 @@ export default domAssigned(class ObjectAssigment {
157
157
  throw exception;
158
158
  }
159
159
 
160
- const node = value.getNode(),
160
+ const node = expression.getNode(),
161
161
  nodeNonTerminalNode = node.isNonTerminalNode();
162
162
 
163
163
  if (!nodeNonTerminalNode) {
164
- const valueString = value.asString(context),
165
- message = `The ${valueString} value's node must be non-terminal.`,
164
+ const expressionString = expression.asString(context),
165
+ message = `The ${expressionString} expression's node must be non-terminal.`,
166
166
  exception = Exception.fromMessage(message);
167
167
 
168
168
  throw exception;
169
169
  }
170
170
 
171
- const { Value } = dom,
171
+ const { Expression } = dom,
172
172
  nonTerminalNode = node, ///
173
173
  childNodes = nonTerminalNode.getChildNodes(),
174
174
  nodes = childNodes; ///
175
175
 
176
- value = Value.fromNodes(nodes, context); ///
176
+ expression = Expression.fromNodes(nodes, context); ///
177
177
 
178
- return value;
178
+ return expression;
179
179
  }
180
180
 
181
181
  static name = "ObjectAssigment";