occam-furtle 2.0.19 → 2.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dom/assignment/array.js +11 -11
- package/lib/dom/assignment/object.js +20 -20
- package/lib/dom/assignment/variable.js +5 -5
- package/lib/dom/assignment.js +10 -10
- package/lib/dom/block/return.js +5 -5
- package/lib/dom/block.js +4 -4
- package/lib/dom/comparison.js +6 -6
- package/lib/dom/condition/bitwise.js +6 -6
- package/lib/dom/condition/bracketed.js +6 -6
- package/lib/dom/condition/negated.js +6 -6
- package/lib/dom/condition.js +10 -10
- package/lib/dom/conditionalBlocks.js +8 -8
- package/lib/dom/declaration/variables.js +5 -5
- package/lib/dom/forEachLoop.js +6 -6
- package/lib/dom/procedure/anonymous.js +2 -2
- package/lib/dom/procedure.js +2 -2
- package/lib/dom/procedureCall.js +6 -6
- package/lib/dom/query/node.js +6 -6
- package/lib/dom/query/nodes.js +6 -6
- package/lib/dom/returnStatement.js +6 -6
- package/lib/dom/step.js +9 -9
- package/lib/dom/value.js +4 -4
- package/lib/dom/values.js +4 -4
- package/lib/dom/variable.js +6 -6
- package/package.json +4 -4
- package/src/dom/assignment/array.js +8 -8
- package/src/dom/assignment/object.js +14 -14
- package/src/dom/assignment/variable.js +3 -3
- package/src/dom/assignment.js +8 -8
- package/src/dom/block/return.js +3 -3
- package/src/dom/block.js +2 -2
- package/src/dom/comparison.js +5 -5
- package/src/dom/condition/bitwise.js +5 -5
- package/src/dom/condition/bracketed.js +4 -4
- package/src/dom/condition/negated.js +4 -4
- package/src/dom/condition.js +8 -8
- package/src/dom/conditionalBlocks.js +6 -6
- package/src/dom/declaration/variables.js +3 -3
- package/src/dom/forEachLoop.js +4 -4
- package/src/dom/procedure/anonymous.js +1 -1
- package/src/dom/procedure.js +1 -1
- package/src/dom/procedureCall.js +4 -4
- package/src/dom/query/node.js +4 -4
- package/src/dom/query/nodes.js +4 -4
- package/src/dom/returnStatement.js +4 -4
- package/src/dom/step.js +7 -7
- package/src/dom/value.js +2 -2
- package/src/dom/values.js +2 -2
- package/src/dom/variable.js +4 -4
package/lib/dom/variable.js
CHANGED
|
@@ -180,7 +180,7 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
180
180
|
var message = "The '".concat(variableString, "' variable is not present."), exception = _exception.default.fromMessage(message);
|
|
181
181
|
throw exception;
|
|
182
182
|
}
|
|
183
|
-
var value = this.assignment.
|
|
183
|
+
var value = this.assignment.evaluate(context), variable = context.findVariableByVariableName(variableName), valueType = value.getType(), variableType = variable.getType();
|
|
184
184
|
if (valueType !== variableType) {
|
|
185
185
|
var message1 = "The '".concat(variableString, " variable's '").concat(variableType, "' type does not match the assigned value's '").concat(valueType, "' type.'"), exception1 = _exception.default.fromMessage(message1);
|
|
186
186
|
throw exception1;
|
|
@@ -191,17 +191,17 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
191
191
|
}
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
|
-
key: "
|
|
195
|
-
value: function
|
|
194
|
+
key: "evaluate",
|
|
195
|
+
value: function evaluate(context) {
|
|
196
196
|
var variableString = this.string; ///
|
|
197
|
-
context.trace("
|
|
197
|
+
context.trace("Evaluating the '".concat(variableString, "' variable..."));
|
|
198
198
|
var variableName = this.name, variablePresent = context.isVariablePresentByVariableName(variableName);
|
|
199
199
|
if (!variablePresent) {
|
|
200
200
|
var message = "The '".concat(variableString, "; variable is not present.'"), exception = _exception.default.fromMessage(message);
|
|
201
201
|
throw exception;
|
|
202
202
|
}
|
|
203
203
|
var variable = context.findVariableByVariableName(variableName), value = variable.getValue(), valueString = value.asString(context);
|
|
204
|
-
context.debug("...
|
|
204
|
+
context.debug("...evaluated the '".concat(variableString, "' variable to the ").concat(valueString, " value."));
|
|
205
205
|
return value;
|
|
206
206
|
}
|
|
207
207
|
}
|
|
@@ -300,4 +300,4 @@ function nameFromVariableNode(variableNode) {
|
|
|
300
300
|
return name;
|
|
301
301
|
}
|
|
302
302
|
|
|
303
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCB2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhbHVlL3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbm9kZVF1ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL25vZGVzUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICBmb3JFYWNoTG9vcFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZvckVhY2hMb29wL3ZhcmlhYmxlXCIpLFxuICAgICAgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGUvQG5hbWVcIiksXG4gICAgICBhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcnJheUFzc2lnbm1lbnQvdmFyaWFibGVcIiksXG4gICAgICBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvb2JqZWN0QXNzaWdubWVudC92YXJpYWJsZVwiKSxcbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlQXNzaWdubWVudC92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgVmFyaWFibGUge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlLCBhc3NpZ25tZW50KSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmFzc2lnbm1lbnQgPSBhc3NpZ25tZW50O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgZ2V0QXNzaWdubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5hc3NpZ25tZW50O1xuICB9XG5cbiAgc2V0U3RyaW5nKHN0cmluZykge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHNldEFzc2lnbm1lbnQoYXNzaWdubWVudCkge1xuICAgIHRoaXMuYXNzaWdubWVudCA9IGFzc2lnbm1lbnQ7XG4gIH1cblxuICBtYXRjaFZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBuYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IHZhcmlhYmxlTmFtZSk7XG5cbiAgICByZXR1cm4gbmFtZU1hdGNoZXM7XG4gIH1cblxuICBhc3NpZ24oY29udGV4dCkge1xuICAgIGlmICh0aGlzLmFzc2lnbm1lbnQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmcsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgY29udGV4dC50cmFjZShgQXNzaWduaW5nIGEgdmFsdWUgdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYXNzaWdubWVudC5yZXNvbHZlKGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YXJpYWJsZVR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCk7XG5cbiAgICBpZiAodmFsdWVUeXBlICE9PSB2YXJpYWJsZVR5cGUpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfSB2YXJpYWJsZSdzICcke3ZhcmlhYmxlVHlwZX0nIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIGFzc2lnbmVkIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZS4nYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIHZhcmlhYmxlLnNldFZhbHVlKHZhbHVlKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuYXNTdHJpbmcoY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5hc3NpZ25lZCB0aGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUgdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG4gIH1cblxuICByZXNvbHZlKGNvbnRleHQpIHtcbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFJlc29sdmluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ307IHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgdmFsdWUgPSB2YXJpYWJsZS5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuYXNTdHJpbmcoY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5yZXNvbHZlZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB0byB0aGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVcIjtcblxuICBzdGF0aWMgZnJvbVZhbHVlTm9kZSh2YWx1ZU5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29uc3QgdmFsdWVWYXJpYWJsZU5vZGUgPSB2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5KHZhbHVlTm9kZSk7XG5cbiAgICBpZiAodmFsdWVWYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhbHVlVmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVRdWVyeU5vZGUobm9kZVF1ZXJ5Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGVRdWVyeVZhcmlhYmxlTm9kZSA9IG5vZGVRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5KG5vZGVRdWVyeU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG5vZGVRdWVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZXNRdWVyeU5vZGUobm9kZXNRdWVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlID0gbm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5KG5vZGVzUXVlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Gb3JFYWNoTG9vcE5vZGUoZm9yRWFjaExvb3BMb29wTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGZvckVhY2hMb29wVmFyaWFibGVOb2RlID0gZm9yRWFjaExvb3BWYXJpYWJsZU5vZGVRdWVyeShmb3JFYWNoTG9vcExvb3BOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBmb3JFYWNoTG9vcFZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFsdWVBbmRQYXJhbWV0ZXIodmFsdWUsIHBhcmFtZXRlciwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBwYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBwYXJhbWV0ZXIuZ2V0TmFtZSgpLFxuICAgICAgICAgIHN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgICBhc3NpZ25tZW50ID0gbnVsbCxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlLCBhc3NpZ25tZW50KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSh2YXJpYWJsZU5vZGUsIHR5cGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgbmFtZSA9IG5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICAgIGFzc2lnbm1lbnQgPSBudWxsLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUsIGFzc2lnbm1lbnQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21BcnJheUFzc2lnbm1lbnROb2RlKGFycmF5QXNzaWdubWVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUgPSBhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeShhcnJheUFzc2lnbm1lbnROb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdEFzc2lnbm1lbnROb2RlKG9iamVjdEFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZSA9IG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeShvYmplY3RBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFyYW1ldGVyQW5kQXNzaWdubWVudChwYXJhbWV0ZXIsIGFzc2lnbm1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgICAgc3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUsIGFzc2lnbm1lbnQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZUFzc2lnbm1lbnROb2RlKHZhcmlhYmxlQXNzaWdubWVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IEFzc2lnbm1lbnQgfSA9IGRvbSxcbiAgICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUgPSB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSh2YXJpYWJsZUFzc2lnbm1lbnROb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICB0eXBlID0gbnVsbCxcbiAgICAgICAgICBuYW1lID0gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgICAgYXNzaWdubWVudCA9IEFzc2lnbm1lbnQuZnJvbVZhcmlhYmxlQXNzaWdubWVudE5vZGUodmFyaWFibGVBc3NpZ25tZW50Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSwgYXNzaWdubWVudCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVWYXJpYWJsZU5vZGVBbmRBc3NpZ25tZW50Tm9kZSh0eXBlLCB2YXJpYWJsZU5vZGUsIGFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBBc3NpZ25tZW50IH0gPSBkb20sXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBhc3NpZ25tZW50ID0gQXNzaWdubWVudC5mcm9tQXNzaWdubWVudE5vZGUoYXNzaWdubWVudE5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUsIGFzc2lnbm1lbnQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59KTtcblxuZnVuY3Rpb24gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgIHR5cGUgPSBudWxsLFxuICAgICAgICBuYW1lID0gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICBhc3NpZ25tZW50ID0gbnVsbCxcbiAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSwgYXNzaWdubWVudCk7XG5cbiAgcmV0dXJuIHZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpIHtcbiAgY29uc3QgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkodmFyaWFibGVOb2RlKSxcbiAgICAgICAgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudCA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cblxuICByZXR1cm4gbmFtZTtcbn1cbiJdLCJuYW1lcyI6WyJ2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJmb3JFYWNoTG9vcFZhcmlhYmxlTm9kZVF1ZXJ5IiwidmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkiLCJhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsIm9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsInZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJWYXJpYWJsZSIsInN0cmluZyIsInR5cGUiLCJuYW1lIiwidmFsdWUiLCJhc3NpZ25tZW50IiwiZ2V0U3RyaW5nIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJnZXRWYWx1ZSIsImdldEFzc2lnbm1lbnQiLCJzZXRTdHJpbmciLCJzZXRUeXBlIiwic2V0TmFtZSIsInNldFZhbHVlIiwic2V0QXNzaWdubWVudCIsIm1hdGNoVmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lIiwibmFtZU1hdGNoZXMiLCJhc3NpZ24iLCJjb250ZXh0IiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwidHJhY2UiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJyZXNvbHZlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsInZhbHVlVHlwZSIsInZhcmlhYmxlVHlwZSIsInZhbHVlU3RyaW5nIiwiYXNTdHJpbmciLCJkZWJ1ZyIsImZyb21WYWx1ZU5vZGUiLCJ2YWx1ZU5vZGUiLCJ2YWx1ZVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSIsImZyb21Ob2RlUXVlcnlOb2RlIiwibm9kZVF1ZXJ5Tm9kZSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21Ob2Rlc1F1ZXJ5Tm9kZSIsIm5vZGVzUXVlcnlOb2RlIiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21Gb3JFYWNoTG9vcE5vZGUiLCJmb3JFYWNoTG9vcExvb3BOb2RlIiwiZm9yRWFjaExvb3BWYXJpYWJsZU5vZGUiLCJmcm9tVmFsdWVBbmRQYXJhbWV0ZXIiLCJwYXJhbWV0ZXIiLCJmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSIsIm5vZGUiLCJub2RlQXNTdHJpbmciLCJuYW1lRnJvbVZhcmlhYmxlTm9kZSIsImZyb21BcnJheUFzc2lnbm1lbnROb2RlIiwiYXJyYXlBc3NpZ25tZW50Tm9kZSIsImFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSIsImZyb21PYmplY3RBc3NpZ25tZW50Tm9kZSIsIm9iamVjdEFzc2lnbm1lbnROb2RlIiwib2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZSIsImZyb21QYXJhbWV0ZXJBbmRBc3NpZ25tZW50IiwiZnJvbVZhcmlhYmxlQXNzaWdubWVudE5vZGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnROb2RlIiwiQXNzaWdubWVudCIsImRvbSIsInZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZSIsImZyb21UeXBlVmFyaWFibGVOb2RlQW5kQXNzaWdubWVudE5vZGUiLCJhc3NpZ25tZW50Tm9kZSIsImZyb21Bc3NpZ25tZW50Tm9kZSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUFBOzs7MkRBZmdCO2dFQUNNO3FCQUVJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUcxQixJQUFNQSx5QkFBeUJDLElBQUFBLGdCQUFTLEVBQUMsb0JBQ25DQyw2QkFBNkJELElBQUFBLGdCQUFTLEVBQUMsd0JBQ3ZDRSw4QkFBOEJGLElBQUFBLGdCQUFTLEVBQUMseUJBQ3hDRywrQkFBK0JILElBQUFBLGdCQUFTLEVBQUMsMEJBQ3pDSSxnQ0FBZ0NKLElBQUFBLGdCQUFTLEVBQUMsb0JBQzFDSyxtQ0FBbUNMLElBQUFBLGdCQUFTLEVBQUMsOEJBQzdDTSxvQ0FBb0NOLElBQUFBLGdCQUFTLEVBQUMsK0JBQzlDTyxzQ0FBc0NQLElBQUFBLGdCQUFTLEVBQUM7SUFFdEQsV0FBZVEsSUFBQUEsZ0JBQVcsNkJBQUM7YUFBTUMsU0FDbkJDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsVUFBVTtnQ0FEbEJMO1FBRTdCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTs7OztZQUdwQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDTCxNQUFNO1lBQ3BCOzs7WUFFQU0sS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDTCxJ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
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCB2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhbHVlL3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbm9kZVF1ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL25vZGVzUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICBmb3JFYWNoTG9vcFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZvckVhY2hMb29wL3ZhcmlhYmxlXCIpLFxuICAgICAgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGUvQG5hbWVcIiksXG4gICAgICBhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcnJheUFzc2lnbm1lbnQvdmFyaWFibGVcIiksXG4gICAgICBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvb2JqZWN0QXNzaWdubWVudC92YXJpYWJsZVwiKSxcbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlQXNzaWdubWVudC92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgVmFyaWFibGUge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlLCBhc3NpZ25tZW50KSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmFzc2lnbm1lbnQgPSBhc3NpZ25tZW50O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgZ2V0QXNzaWdubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5hc3NpZ25tZW50O1xuICB9XG5cbiAgc2V0U3RyaW5nKHN0cmluZykge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHNldEFzc2lnbm1lbnQoYXNzaWdubWVudCkge1xuICAgIHRoaXMuYXNzaWdubWVudCA9IGFzc2lnbm1lbnQ7XG4gIH1cblxuICBtYXRjaFZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBuYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IHZhcmlhYmxlTmFtZSk7XG5cbiAgICByZXR1cm4gbmFtZU1hdGNoZXM7XG4gIH1cblxuICBhc3NpZ24oY29udGV4dCkge1xuICAgIGlmICh0aGlzLmFzc2lnbm1lbnQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmcsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgY29udGV4dC50cmFjZShgQXNzaWduaW5nIGEgdmFsdWUgdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYXNzaWdubWVudC5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpO1xuXG4gICAgaWYgKHZhbHVlVHlwZSAhPT0gdmFyaWFibGVUeXBlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30gdmFyaWFibGUncyAnJHt2YXJpYWJsZVR5cGV9JyB0eXBlIGRvZXMgbm90IG1hdGNoIHRoZSBhc3NpZ25lZCB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB2YXJpYWJsZS5zZXRWYWx1ZSh2YWx1ZSk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmFzU3RyaW5nKGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uYXNzaWduZWQgdGhlICR7dmFsdWVTdHJpbmd9IHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ307IHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgdmFsdWUgPSB2YXJpYWJsZS5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuYXNTdHJpbmcoY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgdG8gdGhlICR7dmFsdWVTdHJpbmd9IHZhbHVlLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlXCI7XG5cbiAgc3RhdGljIGZyb21WYWx1ZU5vZGUodmFsdWVOb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGNvbnN0IHZhbHVlVmFyaWFibGVOb2RlID0gdmFsdWVWYXJpYWJsZU5vZGVRdWVyeSh2YWx1ZU5vZGUpO1xuXG4gICAgaWYgKHZhbHVlVmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB2YWx1ZVZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlUXVlcnlOb2RlKG5vZGVRdWVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlUXVlcnlWYXJpYWJsZU5vZGUgPSBub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeShub2RlUXVlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBub2RlUXVlcnlWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVzUXVlcnlOb2RlKG5vZGVzUXVlcnlOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZXNRdWVyeVZhcmlhYmxlTm9kZSA9IG5vZGVzUXVlcnlWYXJpYWJsZU5vZGVRdWVyeShub2Rlc1F1ZXJ5Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gbm9kZXNRdWVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRm9yRWFjaExvb3BOb2RlKGZvckVhY2hMb29wTG9vcE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBmb3JFYWNoTG9vcFZhcmlhYmxlTm9kZSA9IGZvckVhY2hMb29wVmFyaWFibGVOb2RlUXVlcnkoZm9yRWFjaExvb3BMb29wTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gZm9yRWFjaExvb3BWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlQW5kUGFyYW1ldGVyKHZhbHVlLCBwYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgYXNzaWdubWVudCA9IG51bGwsXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSwgYXNzaWdubWVudCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUodmFyaWFibGVOb2RlLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBhc3NpZ25tZW50ID0gbnVsbCxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlLCBhc3NpZ25tZW50KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQXJyYXlBc3NpZ25tZW50Tm9kZShhcnJheUFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkoYXJyYXlBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3RBc3NpZ25tZW50Tm9kZShvYmplY3RBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUgPSBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkob2JqZWN0QXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcmFtZXRlckFuZEFzc2lnbm1lbnQocGFyYW1ldGVyLCBhc3NpZ25tZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IHBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZSA9IHBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICAgIHN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlLCBhc3NpZ25tZW50KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVBc3NpZ25tZW50Tm9kZSh2YXJpYWJsZUFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBBc3NpZ25tZW50IH0gPSBkb20sXG4gICAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgdHlwZSA9IG51bGwsXG4gICAgICAgICAgbmFtZSA9IG5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICAgIGFzc2lnbm1lbnQgPSBBc3NpZ25tZW50LmZyb21WYXJpYWJsZUFzc2lnbm1lbnROb2RlKHZhcmlhYmxlQXNzaWdubWVudE5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUsIGFzc2lnbm1lbnQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlVmFyaWFibGVOb2RlQW5kQXNzaWdubWVudE5vZGUodHlwZSwgdmFyaWFibGVOb2RlLCBhc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHsgQXNzaWdubWVudCB9ID0gZG9tLFxuICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICBuYW1lID0gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgICAgYXNzaWdubWVudCA9IEFzc2lnbm1lbnQuZnJvbUFzc2lnbm1lbnROb2RlKGFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlLCBhc3NpZ25tZW50KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBWYXJpYWJsZSB9ID0gZG9tLFxuICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICB0eXBlID0gbnVsbCxcbiAgICAgICAgbmFtZSA9IG5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgYXNzaWdubWVudCA9IG51bGwsXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUsIGFzc2lnbm1lbnQpO1xuXG4gIHJldHVybiB2YXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gIGNvbnN0IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5KHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG4iXSwibmFtZXMiOlsidmFsdWVWYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5IiwiZm9yRWFjaExvb3BWYXJpYWJsZU5vZGVRdWVyeSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5IiwiYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkiLCJvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiVmFyaWFibGUiLCJzdHJpbmciLCJ0eXBlIiwibmFtZSIsInZhbHVlIiwiYXNzaWdubWVudCIsImdldFN0cmluZyIsImdldFR5cGUiLCJnZXROYW1lIiwiZ2V0VmFsdWUiLCJnZXRBc3NpZ25tZW50Iiwic2V0U3RyaW5nIiwic2V0VHlwZSIsInNldE5hbWUiLCJzZXRWYWx1ZSIsInNldEFzc2lnbm1lbnQiLCJtYXRjaFZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZSIsIm5hbWVNYXRjaGVzIiwiYXNzaWduIiwiY29udGV4dCIsInZhcmlhYmxlU3RyaW5nIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsInRyYWNlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiZXZhbHVhdGUiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwidmFsdWVUeXBlIiwidmFyaWFibGVUeXBlIiwidmFsdWVTdHJpbmciLCJhc1N0cmluZyIsImRlYnVnIiwiZnJvbVZhbHVlTm9kZSIsInZhbHVlTm9kZSIsInZhbHVlVmFyaWFibGVOb2RlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVGcm9tVmFyaWFibGVOb2RlIiwiZnJvbU5vZGVRdWVyeU5vZGUiLCJub2RlUXVlcnlOb2RlIiwibm9kZVF1ZXJ5VmFyaWFibGVOb2RlIiwiZnJvbU5vZGVzUXVlcnlOb2RlIiwibm9kZXNRdWVyeU5vZGUiLCJub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlIiwiZnJvbUZvckVhY2hMb29wTm9kZSIsImZvckVhY2hMb29wTG9vcE5vZGUiLCJmb3JFYWNoTG9vcFZhcmlhYmxlTm9kZSIsImZyb21WYWx1ZUFuZFBhcmFtZXRlciIsInBhcmFtZXRlciIsImZyb21WYXJpYWJsZU5vZGVBbmRUeXBlIiwibm9kZSIsIm5vZGVBc1N0cmluZyIsIm5hbWVGcm9tVmFyaWFibGVOb2RlIiwiZnJvbUFycmF5QXNzaWdubWVudE5vZGUiLCJhcnJheUFzc2lnbm1lbnROb2RlIiwiYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbU9iamVjdEFzc2lnbm1lbnROb2RlIiwib2JqZWN0QXNzaWdubWVudE5vZGUiLCJvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbVBhcmFtZXRlckFuZEFzc2lnbm1lbnQiLCJmcm9tVmFyaWFibGVBc3NpZ25tZW50Tm9kZSIsInZhcmlhYmxlQXNzaWdubWVudE5vZGUiLCJBc3NpZ25tZW50IiwiZG9tIiwidmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbVR5cGVWYXJpYWJsZU5vZGVBbmRBc3NpZ25tZW50Tm9kZSIsImFzc2lnbm1lbnROb2RlIiwiZnJvbUFzc2lnbm1lbnROb2RlIiwidmFyaWFibGVOYW1lVGVybWluYWxOb2RlIiwidmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlCQTs7O2VBQUE7OzsyREFmZ0I7Z0VBQ007cUJBRUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzFCLElBQU1BLHlCQUF5QkMsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDbkNDLDZCQUE2QkQsSUFBQUEsZ0JBQVMsRUFBQyx3QkFDdkNFLDhCQUE4QkYsSUFBQUEsZ0JBQVMsRUFBQyx5QkFDeENHLCtCQUErQkgsSUFBQUEsZ0JBQVMsRUFBQywwQkFDekNJLGdDQUFnQ0osSUFBQUEsZ0JBQVMsRUFBQyxvQkFDMUNLLG1DQUFtQ0wsSUFBQUEsZ0JBQVMsRUFBQyw4QkFDN0NNLG9DQUFvQ04sSUFBQUEsZ0JBQVMsRUFBQywrQkFDOUNPLHNDQUFzQ1AsSUFBQUEsZ0JBQVMsRUFBQztJQUV0RCxXQUFlUSxJQUFBQSxnQkFBVyw2QkFBQzthQUFNQyxTQUNuQkMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxVQUFVO2dDQURsQkw7UUFFN0IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxVQUFVLEdBQUdBOzs7O1lBR3BCQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNMLE1BQU07WUFDcEI7OztZQUVBTSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENB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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-furtle",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.21",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-furtle",
|
|
7
7
|
"description": "Occam's Furtle language.",
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"necessary": "^14.2.1",
|
|
14
|
-
"occam-grammars": "^1.3.
|
|
14
|
+
"occam-grammars": "^1.3.89"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@swc/core": "^1.5.6",
|
|
18
|
-
"occam-custom-grammars": "^5.0.
|
|
19
|
-
"occam-entities": "^1.0.
|
|
18
|
+
"occam-custom-grammars": "^5.0.1014",
|
|
19
|
+
"occam-entities": "^1.0.259",
|
|
20
20
|
"occam-query": "^4.1.11",
|
|
21
21
|
"watchful-cli": "^1.7.56"
|
|
22
22
|
},
|
|
@@ -28,12 +28,12 @@ export default domAssigned(class ArrayAssigment {
|
|
|
28
28
|
return this.parameters;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
evaluate(context) {
|
|
32
32
|
const arrayAssignmentString = this.string; ///
|
|
33
33
|
|
|
34
|
-
context.trace(`
|
|
34
|
+
context.trace(`Evaluating the '${arrayAssignmentString}' array assignment...`);
|
|
35
35
|
|
|
36
|
-
const value = this.variable.
|
|
36
|
+
const value = this.variable.evaluate(context),
|
|
37
37
|
valueType = value.getType();
|
|
38
38
|
|
|
39
39
|
if (valueType !== NODES_TYPE) {
|
|
@@ -63,18 +63,18 @@ export default domAssigned(class ArrayAssigment {
|
|
|
63
63
|
node = nodes[index],
|
|
64
64
|
value = Value.fromNode(node, context);
|
|
65
65
|
|
|
66
|
-
this.
|
|
66
|
+
this.evaluateParameter(parameter, value, context);
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
|
|
70
|
-
context.debug(`...
|
|
70
|
+
context.debug(`...evaluated the '${arrayAssignmentString}' array assignment.`);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
evaluateParameter(parameter, value, context) {
|
|
74
74
|
const valueString = value.asString(context),
|
|
75
75
|
parameterString = parameter.getString();
|
|
76
76
|
|
|
77
|
-
context.trace(`
|
|
77
|
+
context.trace(`Evaluating the '${parameterString}' parameter against the ${valueString} value...`);
|
|
78
78
|
|
|
79
79
|
const parameterType = parameter.getType();
|
|
80
80
|
|
|
@@ -93,7 +93,7 @@ export default domAssigned(class ArrayAssigment {
|
|
|
93
93
|
|
|
94
94
|
variable.assign(context);
|
|
95
95
|
|
|
96
|
-
context.debug(`...
|
|
96
|
+
context.debug(`...evaluated the '${parameterString}' parameter against the ${valueString} value.`);
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
static name = "ArrayAssignment";
|
|
@@ -30,12 +30,12 @@ export default domAssigned(class ObjectAssigment {
|
|
|
30
30
|
return this.parameters;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
evaluate(context) {
|
|
34
34
|
const objectAssignmentString = this.string; ///
|
|
35
35
|
|
|
36
|
-
context.trace(`
|
|
36
|
+
context.trace(`Evaluating the '${objectAssignmentString}' object assignment...`);
|
|
37
37
|
|
|
38
|
-
const value = this.variable.
|
|
38
|
+
const value = this.variable.evaluate(context),
|
|
39
39
|
valueType = value.getType();
|
|
40
40
|
|
|
41
41
|
if (valueType !== NODE_TYPE) {
|
|
@@ -50,45 +50,45 @@ export default domAssigned(class ObjectAssigment {
|
|
|
50
50
|
|
|
51
51
|
this.parameters.forEachParameter((parameter) => {
|
|
52
52
|
if (parameter !== null) {
|
|
53
|
-
this.
|
|
53
|
+
this.evaluateParameter(parameter, value, context);
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
-
context.debug(`...
|
|
57
|
+
context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
evaluateParameter(parameter, value, context) {
|
|
61
61
|
const valueString = value.asString(context),
|
|
62
62
|
parameterString = parameter.getString();
|
|
63
63
|
|
|
64
|
-
context.trace(`
|
|
64
|
+
context.trace(`Evaluating the '${parameterString}' parameter against the ${valueString} value...`);
|
|
65
65
|
|
|
66
66
|
const name = parameter.getName();
|
|
67
67
|
|
|
68
68
|
switch (name) {
|
|
69
69
|
case CONTENT_PARAMETER_NAME: {
|
|
70
|
-
this.
|
|
70
|
+
this.evaluateContentParameter(parameter, value, context);
|
|
71
71
|
|
|
72
72
|
break;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
case TERMINAL_PARAMETER_NAME: {
|
|
76
|
-
this.
|
|
76
|
+
this.evaluateTerminalParameter(parameter, value, context);
|
|
77
77
|
|
|
78
78
|
break;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
case CHILD_NODES_PARAMETER_NAME: {
|
|
82
|
-
this.
|
|
82
|
+
this.evaluateChildNodesParameter(parameter, value, context);
|
|
83
83
|
|
|
84
84
|
break;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
context.debug(`...
|
|
88
|
+
context.debug(`...evaluated the '${parameterString}' parameter against the ${valueString} value.`);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
evaluateContentParameter(parameter, value, context) {
|
|
92
92
|
const type = parameter.getType();
|
|
93
93
|
|
|
94
94
|
if (type !== STRING_TYPE) {
|
|
@@ -125,7 +125,7 @@ export default domAssigned(class ObjectAssigment {
|
|
|
125
125
|
variable.assign(context);
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
evaluateTerminalParameter(parameter, value, context) {
|
|
129
129
|
const type = parameter.getType();
|
|
130
130
|
|
|
131
131
|
if (type !== BOOLEAN_TYPE) {
|
|
@@ -153,7 +153,7 @@ export default domAssigned(class ObjectAssigment {
|
|
|
153
153
|
variable.assign(context);
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
evaluateChildNodesParameter(parameter, value, context) {
|
|
157
157
|
const type = parameter.getType();
|
|
158
158
|
|
|
159
159
|
if (type !== NODES_TYPE) {
|
|
@@ -21,14 +21,14 @@ export default domAssigned(class VariableAssignment {
|
|
|
21
21
|
return this.variable;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
evaluate(context) {
|
|
25
25
|
const variableAssignmentString = this.string; ///
|
|
26
26
|
|
|
27
|
-
context.trace(`
|
|
27
|
+
context.trace(`Evaluating the '${variableAssignmentString}' variable assignment...`);
|
|
28
28
|
|
|
29
29
|
this.variable.assign(context);
|
|
30
30
|
|
|
31
|
-
context.debug(`...
|
|
31
|
+
context.debug(`...evaluated the '${variableAssignmentString}' variable assignment.`);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
static name = "VariableAssignment";
|
package/src/dom/assignment.js
CHANGED
|
@@ -33,34 +33,34 @@ export default domAssigned(class Assignment {
|
|
|
33
33
|
return this.nodesQuery;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
evaluate(context) {
|
|
37
37
|
let value;
|
|
38
38
|
|
|
39
39
|
const assignmentString = this.string; ///
|
|
40
40
|
|
|
41
|
-
context.trace(`
|
|
41
|
+
context.trace(`Evaluating the '${assignmentString}' assignment...`);
|
|
42
42
|
|
|
43
43
|
if (false) {
|
|
44
44
|
///
|
|
45
45
|
} else if (this.procedureCall !== null) {
|
|
46
|
-
value = this.procedureCall.
|
|
46
|
+
value = this.procedureCall.evaluate(context);
|
|
47
47
|
} else if (this.nodesQuery !== null) {
|
|
48
|
-
value = this.nodesQuery.
|
|
48
|
+
value = this.nodesQuery.evaluate(context);
|
|
49
49
|
} else if (this.nodeQuery !== null) {
|
|
50
|
-
value = this.nodeQuery.
|
|
50
|
+
value = this.nodeQuery.evaluate(context);
|
|
51
51
|
} else {
|
|
52
|
-
value = this.value.
|
|
52
|
+
value = this.value.evaluate(context);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
if (value === null) {
|
|
56
56
|
const assignmentString = this.string, ///
|
|
57
|
-
message = `The '${assignmentString}' assigment cannot be
|
|
57
|
+
message = `The '${assignmentString}' assigment cannot be evaluated.`,
|
|
58
58
|
exception = Exception.fromMessage(message);
|
|
59
59
|
|
|
60
60
|
throw exception;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
context.debug(`...
|
|
63
|
+
context.debug(`...evaluated the '${assignmentString}' assignment.`);
|
|
64
64
|
|
|
65
65
|
return value;
|
|
66
66
|
}
|
package/src/dom/block/return.js
CHANGED
|
@@ -27,16 +27,16 @@ export default domAssigned(class ReturnBlock {
|
|
|
27
27
|
return this.returnStatement;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
evaluate(variables, context) {
|
|
31
31
|
const blockContext = BlockContext.fromVariables(variables, context);
|
|
32
32
|
|
|
33
33
|
context = blockContext; ///
|
|
34
34
|
|
|
35
35
|
this.steps.forEach((step) => {
|
|
36
|
-
step.
|
|
36
|
+
step.evaluate(context);
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
const value = this.returnStatement.
|
|
39
|
+
const value = this.returnStatement.evaluate(context);
|
|
40
40
|
|
|
41
41
|
return value;
|
|
42
42
|
}
|
package/src/dom/block.js
CHANGED
|
@@ -23,7 +23,7 @@ export default domAssigned(class Block {
|
|
|
23
23
|
return this.steps;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
evaluate(variables, context) {
|
|
27
27
|
if (context === undefined) {
|
|
28
28
|
context = variables; ///
|
|
29
29
|
|
|
@@ -35,7 +35,7 @@ export default domAssigned(class Block {
|
|
|
35
35
|
context = blockContext; ///
|
|
36
36
|
|
|
37
37
|
this.steps.forEach((step) => {
|
|
38
|
-
step.
|
|
38
|
+
step.evaluate(context);
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
|
package/src/dom/comparison.js
CHANGED
|
@@ -36,15 +36,15 @@ export default domAssigned(class Comparison {
|
|
|
36
36
|
return this.rightValue;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
evaluate(context) {
|
|
40
40
|
let value;
|
|
41
41
|
|
|
42
42
|
const comparisonString = this.string; ///
|
|
43
43
|
|
|
44
|
-
context.trace(`
|
|
44
|
+
context.trace(`Evaluating the '${comparisonString}' comparison...`);
|
|
45
45
|
|
|
46
|
-
const leftValue = this.leftValue.
|
|
47
|
-
rightValue = this.rightValue.
|
|
46
|
+
const leftValue = this.leftValue.evaluate(context),
|
|
47
|
+
rightValue = this.rightValue.evaluate(context),
|
|
48
48
|
leftValueType = leftValue.getType(),
|
|
49
49
|
rightValueType = rightValue.getType();
|
|
50
50
|
|
|
@@ -69,7 +69,7 @@ export default domAssigned(class Comparison {
|
|
|
69
69
|
|
|
70
70
|
value = Value.fromBoolean(boolean, context);
|
|
71
71
|
|
|
72
|
-
context.debug(`...
|
|
72
|
+
context.debug(`...evaluated the '${comparisonString}' comparison.`);
|
|
73
73
|
|
|
74
74
|
return value;
|
|
75
75
|
}
|
|
@@ -35,16 +35,16 @@ export default domAssigned(class BitwiseCondition {
|
|
|
35
35
|
return this.rightCondition;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
evaluate(context) {
|
|
39
39
|
let value;
|
|
40
40
|
|
|
41
41
|
const bitwiseConditionString = this.string; ///
|
|
42
42
|
|
|
43
|
-
context.trace(`
|
|
43
|
+
context.trace(`Evaluating the '${bitwiseConditionString}' bitwise condition...`);
|
|
44
44
|
|
|
45
45
|
const { Value } = dom,
|
|
46
|
-
leftValue = this.leftCondition.
|
|
47
|
-
rightValue = this.rightCondition.
|
|
46
|
+
leftValue = this.leftCondition.evaluate(context),
|
|
47
|
+
rightValue = this.rightCondition.evaluate(context),
|
|
48
48
|
leftValueBoolean = leftValue.getBoolean(),
|
|
49
49
|
rightValueBoolean = rightValue.getBoolean(),
|
|
50
50
|
boolean = this.disjoint ?
|
|
@@ -53,7 +53,7 @@ export default domAssigned(class BitwiseCondition {
|
|
|
53
53
|
|
|
54
54
|
value = Value.fromBoolean(boolean, context); ///
|
|
55
55
|
|
|
56
|
-
context.debug(`...
|
|
56
|
+
context.debug(`...evaluated the '${bitwiseConditionString}' bitwise condition.`);
|
|
57
57
|
|
|
58
58
|
return value;
|
|
59
59
|
}
|
|
@@ -22,16 +22,16 @@ export default domAssigned(class BracketedCondition {
|
|
|
22
22
|
return this.condition;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
evaluate(context) {
|
|
26
26
|
let value;
|
|
27
27
|
|
|
28
28
|
const bracketedConditionString = this.string; ///
|
|
29
29
|
|
|
30
|
-
context.trace(`
|
|
30
|
+
context.trace(`Evaluating the '${bracketedConditionString}' bracketed condition...`);
|
|
31
31
|
|
|
32
|
-
value = this.condition.
|
|
32
|
+
value = this.condition.evaluate(context);
|
|
33
33
|
|
|
34
|
-
context.debug(`...
|
|
34
|
+
context.debug(`...evaluated the '${bracketedConditionString}' bracketed condition.`);
|
|
35
35
|
|
|
36
36
|
return value;
|
|
37
37
|
}
|
|
@@ -22,14 +22,14 @@ export default domAssigned(class NegatedCondition {
|
|
|
22
22
|
return this.condition;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
evaluate(context) {
|
|
26
26
|
let value;
|
|
27
27
|
|
|
28
28
|
const negatedConditionString = this.string; ///
|
|
29
29
|
|
|
30
|
-
context.trace(`
|
|
30
|
+
context.trace(`Evaluating the '${negatedConditionString}' negated condition...`);
|
|
31
31
|
|
|
32
|
-
value = this.condition.
|
|
32
|
+
value = this.condition.evaluate(context);
|
|
33
33
|
|
|
34
34
|
let boolean = value.getBoolean();
|
|
35
35
|
|
|
@@ -39,7 +39,7 @@ export default domAssigned(class NegatedCondition {
|
|
|
39
39
|
|
|
40
40
|
value = Value.fromBoolean(boolean, context); ///
|
|
41
41
|
|
|
42
|
-
context.debug(`...
|
|
42
|
+
context.debug(`...evaluated the '${negatedConditionString}' negated condition.`);
|
|
43
43
|
|
|
44
44
|
return value;
|
|
45
45
|
}
|
package/src/dom/condition.js
CHANGED
|
@@ -43,15 +43,15 @@ export default domAssigned(class Condition {
|
|
|
43
43
|
return this.bracketedCondition;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
evaluate(context) {
|
|
47
47
|
let value;
|
|
48
48
|
|
|
49
49
|
const conditionString = this.string; ///
|
|
50
50
|
|
|
51
|
-
context.trace(`
|
|
51
|
+
context.trace(`Evaluating the '${conditionString}' condition...`);
|
|
52
52
|
|
|
53
53
|
if (this.value !== null) {
|
|
54
|
-
value = this.value.
|
|
54
|
+
value = this.value.evaluate(context);
|
|
55
55
|
|
|
56
56
|
const valueType = value.getType();
|
|
57
57
|
|
|
@@ -65,22 +65,22 @@ export default domAssigned(class Condition {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
if (this.comparison !== null) {
|
|
68
|
-
value = this.comparison.
|
|
68
|
+
value = this.comparison.evaluate(context);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
if (this.bitwiseCondition !== null) {
|
|
72
|
-
value = this.bitwiseCondition.
|
|
72
|
+
value = this.bitwiseCondition.evaluate(context);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
if (this.negatedCondition !== null) {
|
|
76
|
-
value = this.negatedCondition.
|
|
76
|
+
value = this.negatedCondition.evaluate(context);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
if (this.bracketedCondition !== null) {
|
|
80
|
-
value = this.bracketedCondition.
|
|
80
|
+
value = this.bracketedCondition.evaluate(context);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
context.debug(`...
|
|
83
|
+
context.debug(`...evaluated the '${conditionString}' condition.`);
|
|
84
84
|
|
|
85
85
|
return value;
|
|
86
86
|
}
|
|
@@ -34,23 +34,23 @@ export default domAssigned(class ConditionalBlocks {
|
|
|
34
34
|
return this.elseBlock;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
evaluate(context) {
|
|
38
38
|
const conditionalBlocksString = this.string; ///
|
|
39
39
|
|
|
40
|
-
context.trace(`
|
|
40
|
+
context.trace(`Evaluating the '${conditionalBlocksString}' conditional blocks...`);
|
|
41
41
|
|
|
42
|
-
const value = this.condition.
|
|
42
|
+
const value = this.condition.evaluate(context),
|
|
43
43
|
boolean = value.getBoolean();
|
|
44
44
|
|
|
45
45
|
if (boolean) {
|
|
46
|
-
this.ifBlock.
|
|
46
|
+
this.ifBlock.evaluate(context);
|
|
47
47
|
} else {
|
|
48
48
|
if (this.elseBlock !== null) {
|
|
49
|
-
this.elseBlock.
|
|
49
|
+
this.elseBlock.evaluate(context);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
context.debug(`...
|
|
53
|
+
context.debug(`...evaluated the '${conditionalBlocksString}' conditional blocks.`);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
static name = "ConditionalBlocks";
|
|
@@ -25,10 +25,10 @@ export default domAssigned(class VariablesDeclaration {
|
|
|
25
25
|
return this.variables;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
evaluate(context) {
|
|
29
29
|
const variablesDeclarationString = this.string; ///
|
|
30
30
|
|
|
31
|
-
context.trace(`
|
|
31
|
+
context.trace(`Evaluating the '${variablesDeclarationString}' variables declaration...`);
|
|
32
32
|
|
|
33
33
|
this.variables.forEach((variable) => {
|
|
34
34
|
context.addVariable(variable);
|
|
@@ -36,7 +36,7 @@ export default domAssigned(class VariablesDeclaration {
|
|
|
36
36
|
variable.assign(context);
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
context.debug(`...
|
|
39
|
+
context.debug(`...evaluated the '${variablesDeclarationString}' variables declaration.`);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
static name = "VariablesDeclaration";
|
package/src/dom/forEachLoop.js
CHANGED
|
@@ -30,12 +30,12 @@ export default domAssigned(class ForEachLoop {
|
|
|
30
30
|
return this.anonymousProcedure;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
evaluate(context) {
|
|
34
34
|
const forEachLoopString = this.getString();
|
|
35
35
|
|
|
36
|
-
context.trace(`
|
|
36
|
+
context.trace(`Evaluating the '${forEachLoopString}' for-each loop...`);
|
|
37
37
|
|
|
38
|
-
const value = this.variable.
|
|
38
|
+
const value = this.variable.evaluate(context),
|
|
39
39
|
valueType = value.getType();
|
|
40
40
|
|
|
41
41
|
if (valueType !== NODES_TYPE) {
|
|
@@ -56,7 +56,7 @@ export default domAssigned(class ForEachLoop {
|
|
|
56
56
|
this.anonymousProcedure.call(values, context);
|
|
57
57
|
});
|
|
58
58
|
|
|
59
|
-
context.trace(`...
|
|
59
|
+
context.trace(`...evaluated the '${forEachLoopString}' for-each loop.`);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
static name = "ForEachLoop";
|
|
@@ -50,7 +50,7 @@ export default domAssigned(class AnonymousProcedure {
|
|
|
50
50
|
|
|
51
51
|
const variables = variablesFromValuesAndParameters(values, this.parameters, context);
|
|
52
52
|
|
|
53
|
-
this.block.
|
|
53
|
+
this.block.evaluate(variables, context);
|
|
54
54
|
|
|
55
55
|
context.debug(`...called the '${anonymousProcedureString}' anonymous procedure.`);
|
|
56
56
|
}
|
package/src/dom/procedure.js
CHANGED
|
@@ -74,7 +74,7 @@ export default domAssigned(class Procedure {
|
|
|
74
74
|
this.parameters.matchValues(values, context);
|
|
75
75
|
|
|
76
76
|
const variables = variablesFromValuesAndParameters(values, this.parameters, context),
|
|
77
|
-
value = this.returnBlock.
|
|
77
|
+
value = this.returnBlock.evaluate(variables, context),
|
|
78
78
|
valueType = value.getType();
|
|
79
79
|
|
|
80
80
|
if (this.type !== valueType) {
|