occam-furtle 3.0.461 → 3.0.464

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 (79) hide show
  1. package/lib/context/block.js +2 -2
  2. package/lib/element/anonymousProcedure.js +12 -11
  3. package/lib/element/assignment/list.js +5 -5
  4. package/lib/element/assignment/object.js +35 -31
  5. package/lib/element/binding/named.js +6 -5
  6. package/lib/element/binding.js +5 -4
  7. package/lib/element/bindings/named.js +34 -28
  8. package/lib/element/bindings.js +14 -10
  9. package/lib/element/contains.js +4 -4
  10. package/lib/element/endsWith.js +4 -4
  11. package/lib/element/every.js +4 -4
  12. package/lib/element/expression.js +17 -27
  13. package/lib/element/lengthOf.js +4 -4
  14. package/lib/element/nodeQuery.js +7 -7
  15. package/lib/element/nodesQuery.js +6 -6
  16. package/lib/element/parameter.js +4 -3
  17. package/lib/element/parameters.js +14 -11
  18. package/lib/element/primitive.js +3 -3
  19. package/lib/element/procedure.js +13 -12
  20. package/lib/element/procedureCall.js +12 -10
  21. package/lib/element/reduce.js +3 -3
  22. package/lib/element/returnBlock.js +2 -2
  23. package/lib/element/returnStatement.js +3 -3
  24. package/lib/element/some.js +3 -3
  25. package/lib/element/startsWith.js +4 -4
  26. package/lib/element/term/bracketed.js +3 -3
  27. package/lib/element/term/comparison.js +4 -4
  28. package/lib/element/term/logical.js +5 -5
  29. package/lib/element/term/negated.js +4 -4
  30. package/lib/element/term.js +8 -10
  31. package/lib/element/terms.js +13 -14
  32. package/lib/element/ternary.js +2 -2
  33. package/lib/element/toInteger.js +5 -5
  34. package/lib/element/tryInteger.js +4 -4
  35. package/lib/element/value.js +4 -6
  36. package/lib/element/values.js +13 -11
  37. package/lib/element/variable.js +4 -4
  38. package/lib/nominalValueProperties.js +18 -17
  39. package/lib/nominalValueProperty.js +3 -3
  40. package/package.json +2 -2
  41. package/src/context/block.js +1 -1
  42. package/src/element/anonymousProcedure.js +15 -15
  43. package/src/element/assignment/list.js +4 -4
  44. package/src/element/assignment/object.js +36 -34
  45. package/src/element/binding/named.js +6 -4
  46. package/src/element/binding.js +5 -3
  47. package/src/element/bindings/named.js +46 -34
  48. package/src/element/bindings.js +19 -11
  49. package/src/element/contains.js +3 -3
  50. package/src/element/endsWith.js +3 -3
  51. package/src/element/every.js +3 -3
  52. package/src/element/expression.js +17 -35
  53. package/src/element/lengthOf.js +3 -3
  54. package/src/element/nodeQuery.js +6 -6
  55. package/src/element/nodesQuery.js +5 -5
  56. package/src/element/parameter.js +4 -2
  57. package/src/element/parameters.js +19 -12
  58. package/src/element/primitive.js +2 -2
  59. package/src/element/procedure.js +16 -16
  60. package/src/element/procedureCall.js +11 -10
  61. package/src/element/reduce.js +2 -2
  62. package/src/element/returnBlock.js +1 -1
  63. package/src/element/returnStatement.js +2 -2
  64. package/src/element/some.js +2 -2
  65. package/src/element/startsWith.js +3 -3
  66. package/src/element/term/bracketed.js +2 -2
  67. package/src/element/term/comparison.js +3 -3
  68. package/src/element/term/logical.js +4 -4
  69. package/src/element/term/negated.js +3 -3
  70. package/src/element/term.js +7 -11
  71. package/src/element/terms.js +20 -19
  72. package/src/element/ternary.js +1 -1
  73. package/src/element/toInteger.js +4 -4
  74. package/src/element/tryInteger.js +3 -3
  75. package/src/element/value.js +3 -7
  76. package/src/element/values.js +22 -17
  77. package/src/element/variable.js +3 -3
  78. package/src/nominalValueProperties.js +22 -18
  79. package/src/nominalValueProperty.js +2 -2
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "default", {
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
13
  const _string = require("../utilities/string");
14
+ const { map, forEach } = _occamlanguages.continuationUtilities;
14
15
  const _default = (0, _elements.define)(class Values extends _occamlanguages.Element {
15
16
  constructor(context, string, node, breakPoint, array){
16
17
  super(context, string, node, breakPoint);
@@ -30,20 +31,21 @@ const _default = (0, _elements.define)(class Values extends _occamlanguages.Elem
30
31
  addValue(value) {
31
32
  this.array.push(value);
32
33
  }
33
- mapValue(callback) {
34
- return this.array.map(callback);
34
+ mapValue(callback, back, forward) {
35
+ return map(this.array, callback, back, forward);
35
36
  }
36
37
  forEachValue(callback) {
37
38
  this.array.forEach(callback);
38
39
  }
39
- evaluate(context) {
40
- const valuesArray = this.mapValue((value)=>{
41
- value = value.evaluate(context);
42
- return value;
43
- }), valuesString = (0, _string.valuesStringFromValuesArray)(valuesArray, context), string = valuesString, array = valuesArray, node = null, breakPoint = null;
44
- context = null;
45
- const values = new Values(context, string, node, breakPoint, array);
46
- return values;
40
+ evaluate(context, back, forward) {
41
+ return this.mapValue((value, back, forward)=>{
42
+ return value.evaluate(context, back, forward);
43
+ }, back, (valuesArray)=>{
44
+ const valuesString = (0, _string.valuesStringFromValuesArray)(valuesArray, context), string = valuesString, array = valuesArray, node = null, breakPoint = null;
45
+ context = null;
46
+ const values = new Values(context, string, node, breakPoint, array);
47
+ return forward(values);
48
+ });
47
49
  }
48
50
  static name = "Values";
49
51
  static fromValue(value, context) {
@@ -56,4 +58,4 @@ const _default = (0, _elements.define)(class Values extends _occamlanguages.Elem
56
58
  }
57
59
  });
58
60
 
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhbHVlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFsdWVzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0VmFsdWUoaW5kZXgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYXJyYXlbaW5kZXhdIHx8IG51bGw7ICAvLy9cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGFkZFZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5hcnJheS5wdXNoKHZhbHVlKTtcbiAgfVxuXG4gIG1hcFZhbHVlKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5Lm1hcChjYWxsYmFjayk7IH1cblxuICBmb3JFYWNoVmFsdWUoY2FsbGJhY2spIHsgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTsgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCB2YWx1ZXNBcnJheSA9IHRoaXMubWFwVmFsdWUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdmFsdWVzU3RyaW5nID0gdmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5KHZhbHVlc0FycmF5LCBjb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICAgIGFycmF5ID0gdmFsdWVzQXJyYXksIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgVmFsdWVzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpO1xuXG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYWx1ZXNcIjtcblxuICBzdGF0aWMgZnJvbVZhbHVlKHZhbHVlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVzQXJyYXkgPSBbXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdmFsdWVzU3RyaW5nID0gdmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5KHZhbHVlc0FycmF5LCBjb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICAgIGFycmF5ID0gdmFsdWVzQXJyYXksIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgVmFsdWVzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpO1xuXG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVmFsdWVzIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImFycmF5IiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRWYWx1ZSIsImluZGV4IiwidmFsdWUiLCJhZGRWYWx1ZSIsInB1c2giLCJtYXBWYWx1ZSIsImNhbGxiYWNrIiwibWFwIiwiZm9yRWFjaFZhbHVlIiwiZm9yRWFjaCIsImV2YWx1YXRlIiwidmFsdWVzQXJyYXkiLCJ2YWx1ZXNTdHJpbmciLCJ2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkiLCJ2YWx1ZXMiLCJuYW1lIiwiZnJvbVZhbHVlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQUE7OztnQ0FMd0I7MEJBRUQ7d0JBQ3FCO01BRTVDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsZUFBZUMsdUJBQU87SUFDaEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxTQUFTQyxLQUFLLEVBQUU7UUFDZCxNQUFNQyxRQUFRLElBQUksQ0FBQ04sS0FBSyxDQUFDSyxNQUFNLElBQUksTUFBTyxHQUFHO1FBRTdDLE9BQU9DO0lBQ1Q7SUFFQUMsU0FBU0QsS0FBSyxFQUFFO1FBQ2QsSUFBSSxDQUFDTixLQUFLLENBQUNRLElBQUksQ0FBQ0Y7SUFDbEI7SUFFQUcsU0FBU0MsUUFBUSxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNWLEtBQUssQ0FBQ1csR0FBRyxDQUFDRDtJQUFXO0lBRXRERSxhQUFhRixRQUFRLEVBQUU7UUFBRSxJQUFJLENBQUNWLEtBQUssQ0FBQ2EsT0FBTyxDQUFDSDtJQUFXO0lBRXZESSxTQUFTbEIsT0FBTyxFQUFFO1FBQ2hCLE1BQU1tQixjQUFjLElBQUksQ0FBQ04sUUFBUSxDQUFDLENBQUNIO1lBQzNCQSxRQUFRQSxNQUFNUSxRQUFRLENBQUNsQjtZQUV2QixPQUFPVTtRQUNULElBQ0FVLGVBQWVDLElBQUFBLG1DQUEyQixFQUFDRixhQUFhbkIsVUFDeERDLFNBQVNtQixjQUNUaEIsUUFBUWUsYUFDUmpCLE9BQU8sTUFDUEMsYUFBYTtRQUVuQkgsVUFBVTtRQUVWLE1BQU1zQixTQUFTLElBQUl4QixPQUFPRSxTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztRQUU3RCxPQUFPa0I7SUFDVDtJQUVBLE9BQU9DLE9BQU8sU0FBUztJQUV2QixPQUFPQyxVQUFVZCxLQUFLLEVBQUVWLE9BQU8sRUFBRTtRQUMvQixNQUFNbUIsY0FBYztZQUNaVDtTQUNELEVBQ0RVLGVBQWVDLElBQUFBLG1DQUEyQixFQUFDRixhQUFhbkIsVUFDeERDLFNBQVNtQixjQUNUaEIsUUFBUWUsYUFDUmpCLE9BQU8sTUFDUEMsYUFBYTtRQUVuQkgsVUFBVTtRQUVWLE1BQU1zQixTQUFTLElBQUl4QixPQUFPRSxTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztRQUU3RCxPQUFPa0I7SUFDVDtBQUNGIn0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhbHVlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNvbnN0IHsgbWFwLCBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBWYWx1ZXMgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmFycmF5Lmxlbmd0aDtcblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBnZXRWYWx1ZShpbmRleCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDsgIC8vL1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgYWRkVmFsdWUodmFsdWUpIHtcbiAgICB0aGlzLmFycmF5LnB1c2godmFsdWUpO1xuICB9XG5cbiAgbWFwVmFsdWUoY2FsbGJhY2ssIGJhY2ssIGZvcndhcmQpIHtcbiAgICByZXR1cm4gbWFwKHRoaXMuYXJyYXksIGNhbGxiYWNrLCBiYWNrLCBmb3J3YXJkKTtcbiAgfVxuXG4gIGZvckVhY2hWYWx1ZShjYWxsYmFjaykge1xuICAgIHRoaXMuYXJyYXkuZm9yRWFjaChjYWxsYmFjayk7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwVmFsdWUoKHZhbHVlLCBiYWNrLCBmb3J3YXJkKSA9PiB7XG4gICAgICByZXR1cm4gdmFsdWUuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSwgYmFjaywgKHZhbHVlc0FycmF5KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZXNTdHJpbmcgPSB2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkodmFsdWVzQXJyYXksIGNvbnRleHQpLFxuICAgICAgICAgICAgc3RyaW5nID0gdmFsdWVzU3RyaW5nLCAvLy9cbiAgICAgICAgICAgIGFycmF5ID0gdmFsdWVzQXJyYXksIC8vL1xuICAgICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHZhbHVlcyA9IG5ldyBWYWx1ZXMoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlcyk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFsdWVzXCI7XG5cbiAgc3RhdGljIGZyb21WYWx1ZSh2YWx1ZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICBdLFxuICAgICAgICAgIHZhbHVlc1N0cmluZyA9IHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSh2YWx1ZXNBcnJheSwgY29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gdmFsdWVzU3RyaW5nLCAvLy9cbiAgICAgICAgICBhcnJheSA9IHZhbHVlc0FycmF5LCAvLy9cbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdmFsdWVzID0gbmV3IFZhbHVlcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KTtcblxuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbIm1hcCIsImZvckVhY2giLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJkZWZpbmUiLCJWYWx1ZXMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldFZhbHVlIiwiaW5kZXgiLCJ2YWx1ZSIsImFkZFZhbHVlIiwicHVzaCIsIm1hcFZhbHVlIiwiY2FsbGJhY2siLCJiYWNrIiwiZm9yd2FyZCIsImZvckVhY2hWYWx1ZSIsImV2YWx1YXRlIiwidmFsdWVzQXJyYXkiLCJ2YWx1ZXNTdHJpbmciLCJ2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkiLCJ2YWx1ZXMiLCJuYW1lIiwiZnJvbVZhbHVlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztnQ0FQK0M7MEJBRXhCO3dCQUNxQjtBQUU1QyxNQUFNLEVBQUVBLEdBQUcsRUFBRUMsT0FBTyxFQUFFLEdBQUdDLHFDQUFxQjtNQUU5QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGVBQWVDLHVCQUFPO0lBQ2hELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxDQUFFO1FBQ3BELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRCxLQUFLO0lBQ25CO0lBRUFFLFlBQVk7UUFDVixNQUFNQyxTQUFTLElBQUksQ0FBQ0gsS0FBSyxDQUFDRyxNQUFNO1FBRWhDLE9BQU9BO0lBQ1Q7SUFFQUMsU0FBU0MsS0FBSyxFQUFFO1FBQ2QsTUFBTUMsUUFBUSxJQUFJLENBQUNOLEtBQUssQ0FBQ0ssTUFBTSxJQUFJLE1BQU8sR0FBRztRQUU3QyxPQUFPQztJQUNUO0lBRUFDLFNBQVNELEtBQUssRUFBRTtRQUNkLElBQUksQ0FBQ04sS0FBSyxDQUFDUSxJQUFJLENBQUNGO0lBQ2xCO0lBRUFHLFNBQVNDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDaEMsT0FBT3RCLElBQUksSUFBSSxDQUFDVSxLQUFLLEVBQUVVLFVBQVVDLE1BQU1DO0lBQ3pDO0lBRUFDLGFBQWFILFFBQVEsRUFBRTtRQUNyQixJQUFJLENBQUNWLEtBQUssQ0FBQ1QsT0FBTyxDQUFDbUI7SUFDckI7SUFFQUksU0FBU2xCLE9BQU8sRUFBRWUsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsT0FBTyxJQUFJLENBQUNILFFBQVEsQ0FBQyxDQUFDSCxPQUFPSyxNQUFNQztZQUNqQyxPQUFPTixNQUFNUSxRQUFRLENBQUNsQixTQUFTZSxNQUFNQztRQUN2QyxHQUFHRCxNQUFNLENBQUNJO1lBQ1IsTUFBTUMsZUFBZUMsSUFBQUEsbUNBQTJCLEVBQUNGLGFBQWFuQixVQUN4REMsU0FBU21CLGNBQ1RoQixRQUFRZSxhQUNSakIsT0FBTyxNQUNQQyxhQUFhO1lBRW5CSCxVQUFVO1lBRVYsTUFBTXNCLFNBQVMsSUFBSXhCLE9BQU9FLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDO1lBRTdELE9BQU9ZLFFBQVFNO1FBQ2pCO0lBQ0Y7SUFFQSxPQUFPQyxPQUFPLFNBQVM7SUFFdkIsT0FBT0MsVUFBVWQsS0FBSyxFQUFFVixPQUFPLEVBQUU7UUFDL0IsTUFBTW1CLGNBQWM7WUFDWlQ7U0FDRCxFQUNEVSxlQUFlQyxJQUFBQSxtQ0FBMkIsRUFBQ0YsYUFBYW5CLFVBQ3hEQyxTQUFTbUIsY0FDVGhCLFFBQVFlLGFBQ1JqQixPQUFPLE1BQ1BDLGFBQWE7UUFFbkJILFVBQVU7UUFFVixNQUFNc0IsU0FBUyxJQUFJeEIsT0FBT0UsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUM7UUFFN0QsT0FBT2tCO0lBQ1Q7QUFDRiJ9
@@ -37,17 +37,17 @@ const _default = (0, _elements.define)(class Variable extends _occamlanguages.El
37
37
  const comparesToVariableName = this.name === variableName;
38
38
  return comparesToVariableName;
39
39
  }
40
- evaluate(context) {
40
+ evaluate(context, back, forward) {
41
41
  const variableString = this.getString(); ///
42
42
  context.trace(`Evaluating the '${variableString}' variable...`);
43
43
  const nested = true, variableName = this.name, variablePresent = context.isVariablePresentByVariableName(variableName, nested);
44
44
  if (!variablePresent) {
45
45
  const message = `The '${variableString}' variable is not present.'`, exception = _exception.default.fromMessage(message);
46
- throw exception;
46
+ return back(exception);
47
47
  }
48
48
  const variable = context.findVariableByVariableName(variableName), value = variable.getValue(), valueString = value.getString();
49
49
  context.debug(`...evaluated the '${variableString}' variable as the '${valueString}' value.`);
50
- return value;
50
+ return forward(value);
51
51
  }
52
52
  assign(value, context, back, forward) {
53
53
  const nested = false, valueString = value.getString(), variableName = this.name, variableString = this.getString(), variablePresent = context.isVariablePresentByVariableName(variableName, nested);
@@ -89,4 +89,4 @@ const _default = (0, _elements.define)(class Variable extends _occamlanguages.El
89
89
  }
90
90
  });
91
91
 
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFZhcmlhYmxlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdmFsdWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgY29tcGFyZVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBjb21wYXJlc1RvVmFyaWFibGVOYW1lID0gKHRoaXMubmFtZSA9PT0gdmFyaWFibGVOYW1lKTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVmFyaWFibGVOYW1lO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBuZXN0ZWQgPSB0cnVlLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgdmFsdWUgPSB2YXJpYWJsZS5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgYXMgdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBhc3NpZ24odmFsdWUsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBuZXN0ZWQgPSBmYWxzZSxcbiAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpO1xuXG4gICAgY29udGV4dC50cmFjZShgQXNzaWduaW5nIHRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIGFscmVhZHkgcHJlc2VudC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB2YWx1ZVR5cGVTdHJpbmcgPSB2YWx1ZVR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30gdmFyaWFibGUncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBkb2VzIG5vdCBjb21wYXJlIHRvIHRoZSB2YWx1ZSdzICcke3ZhbHVlVHlwZVN0cmluZ30nIHR5cGUuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSB0aGlzOyAgLy8vXG5cbiAgICByZXR1cm4gY29udGV4dC5hZGRWYXJpYWJsZSh2YXJpYWJsZSwgYmFjaywgKCkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uYXNzaWduZWQgdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUgdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG5cbiAgICAgIGZvcndhcmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYXJpYWJsZVwiO1xuXG4gIHN0YXRpYyBmcm9tQmluZGluZyhiaW5kaW5nLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IGJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBiaW5kaW5nLmdldE5hbWUoKSxcbiAgICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGxcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQpIHtcbiAgICBjb25zdCBhbGlhc2VkTmFtZSA9IG5hbWVkQmluZGluZy5nZXRBbGlhc2VkTmFtZSgpLFxuICAgICAgICAgIHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBhbGlhc2VkTmFtZSwgLy8vXG4gICAgICAgICAgdGVybSA9IG51bGwsXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdGVybSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlQW5kUGFyYW1ldGVyKHZhbHVlLCBwYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlU3RyaW5nRnJvbU5hbWUobmFtZSksXG4gICAgICAgICAgc3RyaW5nID0gdmFyaWFibGVTdHJpbmcsICAvLy9cbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlZhcmlhYmxlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJuYW1lIiwidmFsdWUiLCJnZXRUeXBlIiwiZ2V0TmFtZSIsImdldFZhbHVlIiwiY29tcGFyZVZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZSIsImNvbXBhcmVzVG9WYXJpYWJsZU5hbWUiLCJldmFsdWF0ZSIsInZhcmlhYmxlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJuZXN0ZWQiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJhc3NpZ24iLCJiYWNrIiwiZm9yd2FyZCIsInZhbHVlVHlwZSIsInR5cGVFcXVhbFRvVmFsdWVUeXBlIiwiaXNFcXVhbFRvIiwidHlwZVN0cmluZyIsInZhbHVlVHlwZVN0cmluZyIsImFkZFZhcmlhYmxlIiwiZnJvbUJpbmRpbmciLCJiaW5kaW5nIiwidmFyaWFibGVTdHJpbmdGcm9tTmFtZSIsImZyb21OYW1lZEJpbmRpbmciLCJuYW1lZEJpbmRpbmciLCJhbGlhc2VkTmFtZSIsImdldEFsaWFzZWROYW1lIiwidGVybSIsImZyb21WYWx1ZUFuZFBhcmFtZXRlciIsInBhcmFtZXRlciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7Z0NBUHdCO2tFQUVGOzBCQUVDO3dCQUNnQjs7Ozs7O01BRXZDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLLENBQUU7UUFDaEUsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FB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
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFZhcmlhYmxlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdmFsdWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgY29tcGFyZVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBjb21wYXJlc1RvVmFyaWFibGVOYW1lID0gKHRoaXMubmFtZSA9PT0gdmFyaWFibGVOYW1lKTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVmFyaWFibGVOYW1lO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBuZXN0ZWQgPSB0cnVlLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpLFxuICAgICAgICAgIHZhbHVlID0gdmFyaWFibGUuZ2V0VmFsdWUoKSxcbiAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGFzIHRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICB9XG5cbiAgYXNzaWduKHZhbHVlLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgbmVzdGVkID0gZmFsc2UsXG4gICAgICAgICAgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFzc2lnbmluZyB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSB0byB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZUVxdWFsVG9WYWx1ZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICBpZiAoIXR5cGVFcXVhbFRvVmFsdWVUeXBlKSB7XG4gICAgICBjb25zdCB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgdmFsdWVUeXBlU3RyaW5nID0gdmFsdWVUeXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9IHZhcmlhYmxlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUgZG9lcyBub3QgY29tcGFyZSB0byB0aGUgdmFsdWUncyAnJHt2YWx1ZVR5cGVTdHJpbmd9JyB0eXBlLidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpczsgIC8vL1xuXG4gICAgcmV0dXJuIGNvbnRleHQuYWRkVmFyaWFibGUodmFyaWFibGUsIGJhY2ssICgpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmFzc2lnbmVkIHRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuXG4gICAgICBmb3J3YXJkKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVcIjtcblxuICBzdGF0aWMgZnJvbUJpbmRpbmcoYmluZGluZywgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBiaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gYmluZGluZy5nZXROYW1lKCksXG4gICAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGVTdHJpbmdGcm9tTmFtZShuYW1lKSxcbiAgICAgICAgICBzdHJpbmcgPSB2YXJpYWJsZVN0cmluZywgIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsXG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYWxpYXNlZE5hbWUgPSBuYW1lZEJpbmRpbmcuZ2V0QWxpYXNlZE5hbWUoKSxcbiAgICAgICAgICB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gYWxpYXNlZE5hbWUsIC8vL1xuICAgICAgICAgIHRlcm0gPSBudWxsLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGVTdHJpbmdGcm9tTmFtZShuYW1lKSxcbiAgICAgICAgICBzdHJpbmcgPSB2YXJpYWJsZVN0cmluZywgIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIG5hbWUsIHRlcm0pO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYWx1ZUFuZFBhcmFtZXRlcih2YWx1ZSwgcGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IHBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZSA9IHBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJWYXJpYWJsZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwibmFtZSIsInZhbHVlIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJnZXRWYWx1ZSIsImNvbXBhcmVWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJjb21wYXJlc1RvVmFyaWFibGVOYW1lIiwiZXZhbHVhdGUiLCJiYWNrIiwiZm9yd2FyZCIsInZhcmlhYmxlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJuZXN0ZWQiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJhc3NpZ24iLCJ2YWx1ZVR5cGUiLCJ0eXBlRXF1YWxUb1ZhbHVlVHlwZSIsImlzRXF1YWxUbyIsInR5cGVTdHJpbmciLCJ2YWx1ZVR5cGVTdHJpbmciLCJhZGRWYXJpYWJsZSIsImZyb21CaW5kaW5nIiwiYmluZGluZyIsInZhcmlhYmxlU3RyaW5nRnJvbU5hbWUiLCJmcm9tTmFtZWRCaW5kaW5nIiwibmFtZWRCaW5kaW5nIiwiYWxpYXNlZE5hbWUiLCJnZXRBbGlhc2VkTmFtZSIsInRlcm0iLCJmcm9tVmFsdWVBbmRQYXJhbWV0ZXIiLCJwYXJhbWV0ZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjtrRUFFRjswQkFFQzt3QkFDZ0I7Ozs7OztNQUV2QyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsS0FBSyxDQUFFO1FBQ2hFLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxJQUFJ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
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
+ const _occamlanguages = require("occam-languages");
11
12
  const _elements = /*#__PURE__*/ _interop_require_default(require("./elements"));
12
13
  const _exception = /*#__PURE__*/ _interop_require_default(require("./exception"));
13
14
  const _nominalValueProperty = /*#__PURE__*/ _interop_require_default(require("./nominalValueProperty"));
@@ -19,6 +20,7 @@ function _interop_require_default(obj) {
19
20
  default: obj
20
21
  };
21
22
  }
23
+ const { some } = _occamlanguages.continuationUtilities;
22
24
  class NominalValueProperties {
23
25
  constructor(string, array){
24
26
  this.string = string;
@@ -30,28 +32,27 @@ class NominalValueProperties {
30
32
  getArray() {
31
33
  return this.array;
32
34
  }
33
- someNominalValueProperty(callback) {
34
- return this.array.some(callback);
35
+ someNominalValueProperty(callback, back, forward) {
36
+ return some(this.array, callback, back, forward);
35
37
  }
36
- compareNamedBinding(namedBinding, context) {
38
+ compareNamedBinding(namedBinding, context, back, forward) {
37
39
  const namedBindingString = namedBinding.getString(), nominalValuePropertiesString = this.string; ///
38
40
  context.trace(`Comparing the '${namedBindingString}' named binding with the '${nominalValuePropertiesString}' node properties...`);
39
- const namedBindingsCompare = this.someNominalValueProperty((nominalValueProperty)=>{
40
- const namedBindingComparesToNominalValueProperty = nominalValueProperty.compareNamedBinding(namedBinding, context);
41
- if (namedBindingComparesToNominalValueProperty) {
42
- return true;
41
+ return this.someNominalValueProperty((nominalValueProperty, back, forward)=>{
42
+ return nominalValueProperty.compareNamedBinding(namedBinding, context, back, forward);
43
+ }, back, (namedBindingsCompare)=>{
44
+ if (!namedBindingsCompare) {
45
+ const message = `The '${namedBindingString}' named binding does not compmare to any of the '${nominalValuePropertiesString}' node properties.`, exception = _exception.default.fromMessage(message);
46
+ return back(exception);
43
47
  }
48
+ context.debug(`...compared the '${namedBindingString}' named binding with the '${nominalValuePropertiesString}' node properties.`);
49
+ return forward();
44
50
  });
45
- if (!namedBindingsCompare) {
46
- const message = `The '${namedBindingString}' named binding does not compmare to any of the '${nominalValuePropertiesString}' node properties.`, exception = _exception.default.fromMessage(message);
47
- throw exception;
48
- }
49
- context.debug(`...compared the '${namedBindingString}' named binding with the '${nominalValuePropertiesString}' node properties.`);
50
51
  }
51
- compareNamedBindings(namedBindings, context) {
52
- namedBindings.forEachNamedBinding((namedBinding)=>{
53
- this.compareNamedBinding(namedBinding, context);
54
- });
52
+ compareNamedBindings(namedBindings, context, back, forward) {
53
+ return namedBindings.forEachNamedBinding((namedBinding, back, forward)=>{
54
+ return this.compareNamedBinding(namedBinding, context, back, forward);
55
+ }, back, forward);
55
56
  }
56
57
  static fromNothing() {
57
58
  const nominalValuePropertiesArray = nominalValuePropertiesArrayFromNothing(), string = (0, _string.nominalValuePropertiesStringFromNominalValuePropertiesArray)(nominalValuePropertiesArray), array = nominalValuePropertiesArray, nominalValueProperties = new NominalValueProperties(string, array);
@@ -83,4 +84,4 @@ function nominalValuePropertiesArrayFromNothing() {
83
84
  return nominalValuePropertiesArray;
84
85
  }
85
86
 
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4vZXhjZXB0aW9uXCI7XG5pbXBvcnQgTm9taW5hbFZhbHVlUHJvcGVydHkgZnJvbSBcIi4vbm9taW5hbFZhbHVlUHJvcGVydHlcIjtcblxuaW1wb3J0IHsgbm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZ0Zyb21Ob21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXkgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIH0gZnJvbSBcIi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyBDT05URU5UX1BBUkFNRVRFUl9OQU1FLCBURVJNSU5BTF9QQVJBTUVURVJfTkFNRSwgQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUUsIE5PX1dISVRFU1BBQ0VfUEFSQU1FVEVSX05BTUUgfSBmcm9tIFwiLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5jbGFzcyBOb21pbmFsVmFsdWVQcm9wZXJ0aWVzIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBhcnJheSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIHNvbWVOb21pbmFsVmFsdWVQcm9wZXJ0eShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5hcnJheS5zb21lKGNhbGxiYWNrKTsgfVxuXG4gIGNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0KSB7XG4gICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgd2l0aCB0aGUgJyR7bm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZ30nIG5vZGUgcHJvcGVydGllcy4uLmApO1xuXG4gICAgY29uc3QgbmFtZWRCaW5kaW5nc0NvbXBhcmUgPSB0aGlzLnNvbWVOb21pbmFsVmFsdWVQcm9wZXJ0eSgobm9taW5hbFZhbHVlUHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ0NvbXBhcmVzVG9Ob21pbmFsVmFsdWVQcm9wZXJ0eSA9IG5vbWluYWxWYWx1ZVByb3BlcnR5LmNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0KTtcblxuICAgICAgaWYgKG5hbWVkQmluZGluZ0NvbXBhcmVzVG9Ob21pbmFsVmFsdWVQcm9wZXJ0eSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghbmFtZWRCaW5kaW5nc0NvbXBhcmUpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgZG9lcyBub3QgY29tcG1hcmUgdG8gYW55IG9mIHRoZSAnJHtub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nfScgbm9kZSBwcm9wZXJ0aWVzLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5jb21wYXJlZCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyB3aXRoIHRoZSAnJHtub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nfScgbm9kZSBwcm9wZXJ0aWVzLmApO1xuICB9XG5cbiAgY29tcGFyZU5hbWVkQmluZGluZ3MobmFtZWRCaW5kaW5ncywgY29udGV4dCkge1xuICAgIG5hbWVkQmluZGluZ3MuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nKSA9PiB7XG4gICAgICB0aGlzLmNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXkgPSBub21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXlGcm9tTm90aGluZygpLFxuICAgICAgICAgIHN0cmluZyA9IG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmdGcm9tTm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5KG5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSksXG4gICAgICAgICAgYXJyYXkgPSBub21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXksICAvLy9cbiAgICAgICAgICBub21pbmFsVmFsdWVQcm9wZXJ0aWVzID0gbmV3IE5vbWluYWxWYWx1ZVByb3BlcnRpZXMoc3RyaW5nLCBhcnJheSk7XG5cbiAgICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydGllcztcbiAgfVxufVxuXG5jb25zdCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzID0gTm9taW5hbFZhbHVlUHJvcGVydGllcy5mcm9tTm90aGluZygpO1xuXG5leHBvcnQgZGVmYXVsdCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzO1xuXG5mdW5jdGlvbiBub21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXlGcm9tTm90aGluZygpIHtcbiAgY29uc3QgbmFtZXMgPSBbXG4gICAgICAgICAgQ09OVEVOVF9QQVJBTUVURVJfTkFNRSxcbiAgICAgICAgICBURVJNSU5BTF9QQVJBTUVURVJfTkFNRSxcbiAgICAgICAgICBOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FLFxuICAgICAgICAgIENISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FLFxuICAgICAgICBdLFxuICAgICAgICB0eXBlTmFtZXMgPSBbXG4gICAgICAgICAgU1RSSU5HX1RZUEVfTkFNRSxcbiAgICAgICAgICBCT09MRUFOX1RZUEVfTkFNRSxcbiAgICAgICAgICBCT09MRUFOX1RZUEVfTkFNRSxcbiAgICAgICAgICBMSVNUX1RZUEVfTkFNRVxuICAgICAgICBdLFxuICAgICAgICBhcmd1bWVudFR5cGVOYW1lcyA9IFtcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRVxuICAgICAgICBdLFxuICAgICAgICBub21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXkgPSBuYW1lcy5tYXAoKG5hbWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICAgICAgICBjb250ZXh0ID0gbnVsbCxcbiAgICAgICAgICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lc1tpbmRleF0sXG4gICAgICAgICAgICAgICAgYXJndW1lbnRUeXBlTmFtZSA9IGFyZ3VtZW50VHlwZU5hbWVzW2luZGV4XSxcbiAgICAgICAgICAgICAgICB0eXBlID0gVHlwZS5mcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lKHR5cGVOYW1lLCBhcmd1bWVudFR5cGVOYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICBub21pbmFsVmFsdWVQcm9wZXJ0eSA9IE5vbWluYWxWYWx1ZVByb3BlcnR5LmZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKTtcblxuICAgICAgICAgIHJldHVybiBub21pbmFsVmFsdWVQcm9wZXJ0eTtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIG5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheTtcbn1cbiJdLCJuYW1lcyI6WyJOb21pbmFsVmFsdWVQcm9wZXJ0aWVzIiwic3RyaW5nIiwiYXJyYXkiLCJnZXRTdHJpbmciLCJnZXRBcnJheSIsInNvbWVOb21pbmFsVmFsdWVQcm9wZXJ0eSIsImNhbGxiYWNrIiwic29tZSIsImNvbXBhcmVOYW1lZEJpbmRpbmciLCJuYW1lZEJpbmRpbmciLCJjb250ZXh0IiwibmFtZWRCaW5kaW5nU3RyaW5nIiwibm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZyIsInRyYWNlIiwibmFtZWRCaW5kaW5nc0NvbXBhcmUiLCJub21pbmFsVmFsdWVQcm9wZXJ0eSIsIm5hbWVkQmluZGluZ0NvbXBhcmVzVG9Ob21pbmFsVmFsdWVQcm9wZXJ0eSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImRlYnVnIiwiY29tcGFyZU5hbWVkQmluZGluZ3MiLCJuYW1lZEJpbmRpbmdzIiwiZm9yRWFjaE5hbWVkQmluZGluZyIsImZyb21Ob3RoaW5nIiwibm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5Iiwibm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5RnJvbU5vdGhpbmciLCJub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nRnJvbU5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXMiLCJuYW1lcyIsIkNPTlRFTlRfUEFSQU1FVEVSX05BTUUiLCJURVJNSU5BTF9QQVJBTUVURVJfTkFNRSIsIk5PX1dISVRFU1BBQ0VfUEFSQU1FVEVSX05BTUUiLCJDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSIsInR5cGVOYW1lcyIsIlNUUklOR19UWVBFX05BTUUiLCJCT09MRUFOX1RZUEVfTkFNRSIsIkxJU1RfVFlQRV9OQU1FIiwiYXJndW1lbnRUeXBlTmFtZXMiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsIm1hcCIsIm5hbWUiLCJpbmRleCIsIlR5cGUiLCJlbGVtZW50cyIsInR5cGVOYW1lIiwiYXJndW1lbnRUeXBlTmFtZSIsInR5cGUiLCJmcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIiwiTm9taW5hbFZhbHVlUHJvcGVydHkiLCJmcm9tTmFtZUFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW9FQTs7O2VBQUE7OztpRUFsRXFCO2tFQUNDOzZFQUNXO3dCQUUyQzsyQkFDaUI7Z0NBQzZCOzs7Ozs7QUFFMUgsTUFBTUE7SUFDSixZQUFZQyxNQUFNLEVBQUVDLEtBQUssQ0FBRTtRQUN6QixJQUFJLENBQUNELE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNGLE1BQU07SUFDcEI7SUFFQUcsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO0lBQ25CO0lBRUFHLHlCQUF5QkMsUUFBUSxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0ssSUFBSSxDQUFDRDtJQUFXO0lBRXZFRSxvQkFBb0JDLFlBQVksRUFBRUMsT0FBTyxFQUFFO1FBQ3pDLE1BQU1DLHFCQUFxQkYsYUFBYU4sU0FBUyxJQUMzQ1MsK0JBQStCLElBQUksQ0FBQ1gsTUFBTSxFQUFFLEdBQUc7UUFFckRTLFFBQVFHLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUYsbUJBQW1CLDBCQUEwQixFQUFFQyw2QkFBNkIsb0JBQW9CLENBQUM7UUFFakksTUFBTUUsdUJBQXVCLElBQUksQ0FBQ1Qsd0JBQXdCLENBQUMsQ0FBQ1U7WUFDMUQsTUFBTUMsNkNBQTZDRCxxQkFBcUJQLG1CQUFtQixDQUFDQyxjQUFjQztZQUUxRyxJQUFJTSw0Q0FBNEM7Z0JBQzlDLE9BQU87WUFDVDtRQUNGO1FBRUEsSUFBSSxDQUFDRixzQkFBc0I7WUFDekIsTUFBTUcsVUFBVSxDQUFDLEtBQUssRUFBRU4sbUJBQW1CLGlEQUFpRCxFQUFFQyw2QkFBNkIsa0JBQWtCLENBQUMsRUFDeElNLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBUixRQUFRVyxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRVYsbUJBQW1CLDBCQUEwQixFQUFFQyw2QkFBNkIsa0JBQWtCLENBQUM7SUFDbkk7SUFFQVUscUJBQXFCQyxhQUFhLEVBQUViLE9BQU8sRUFBRTtRQUMzQ2EsY0FBY0MsbUJBQW1CLENBQUMsQ0FBQ2Y7WUFDakMsSUFBSSxDQUFDRCxtQkFBbUIsQ0FBQ0MsY0FBY0M7UUFDekM7SUFDRjtJQUVBLE9BQU9lLGNBQWM7UUFDbkIsTUFBTUMsOEJBQThCQywwQ0FDOUIxQixTQUFTMkIsSUFBQUEsbUVBQTJELEVBQUNGLDhCQUNyRXhCLFFBQVF3Qiw2QkFDUkcseUJBQXlCLElBQUk3Qix1QkFBdUJDLFFBQVFDO1FBRWxFLE9BQU8yQjtJQUNUO0FBQ0Y7QUFFQSxNQUFNQSx5QkFBeUI3Qix1QkFBdUJ5QixXQUFXO01BRWpFLFdBQWVJO0FBRWYsU0FBU0Y7SUFDUCxNQUFNRyxRQUFRO1FBQ05DLHNDQUFzQjtRQUN0QkMsdUNBQXVCO1FBQ3ZCQyw0Q0FBNEI7UUFDNUJDLDBDQUEwQjtLQUMzQixFQUNEQyxZQUFZO1FBQ1ZDLDJCQUFnQjtRQUNoQkMsNEJBQWlCO1FBQ2pCQSw0QkFBaUI7UUFDakJDLHlCQUFjO0tBQ2YsRUFDREMsb0JBQW9CO1FBQ2xCO1FBQ0E7UUFDQTtRQUNBQyxrQ0FBdUI7S0FDeEIsRUFDRGQsOEJBQThCSSxNQUFNVyxHQUFHLENBQUMsQ0FBQ0MsTUFBTUM7UUFDN0MsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsaUJBQVEsRUFDbkJuQyxVQUFVLE1BQ1ZvQyxXQUFXWCxTQUFTLENBQUNRLE1BQU0sRUFDM0JJLG1CQUFtQlIsaUJBQWlCLENBQUNJLE1BQU0sRUFDM0NLLE9BQU9KLEtBQUtLLCtCQUErQixDQUFDSCxVQUFVQyxrQkFBa0JyQyxVQUN4RUssdUJBQXVCbUMsNkJBQW9CLENBQUNDLGVBQWUsQ0FBQ1QsTUFBTU07UUFFeEUsT0FBT2pDO0lBQ1Q7SUFFTixPQUFPVztBQUNUIn0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi9lbGVtZW50c1wiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi9leGNlcHRpb25cIjtcbmltcG9ydCBOb21pbmFsVmFsdWVQcm9wZXJ0eSBmcm9tIFwiLi9ub21pbmFsVmFsdWVQcm9wZXJ0eVwiO1xuXG5pbXBvcnQgeyBub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nRnJvbU5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IExJU1RfVFlQRV9OQU1FLCBTVFJJTkdfVFlQRV9OQU1FLCBCT09MRUFOX1RZUEVfTkFNRSwgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUgfSBmcm9tIFwiLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuL3BhcmFtZXRlck5hbWVzXCI7XG5cbmNvbnN0IHsgc29tZSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5jbGFzcyBOb21pbmFsVmFsdWVQcm9wZXJ0aWVzIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBhcnJheSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIHNvbWVOb21pbmFsVmFsdWVQcm9wZXJ0eShjYWxsYmFjaywgYmFjaywgZm9yd2FyZCkge1xuICAgIHJldHVybiBzb21lKHRoaXMuYXJyYXksIGNhbGxiYWNrLCBiYWNrLCBmb3J3YXJkKTtcbiAgfVxuXG4gIGNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgd2l0aCB0aGUgJyR7bm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZ30nIG5vZGUgcHJvcGVydGllcy4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMuc29tZU5vbWluYWxWYWx1ZVByb3BlcnR5KChub21pbmFsVmFsdWVQcm9wZXJ0eSwgYmFjaywgZm9yd2FyZCkgPT4ge1xuICAgICAgcmV0dXJuIG5vbWluYWxWYWx1ZVByb3BlcnR5LmNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9LCBiYWNrLCAobmFtZWRCaW5kaW5nc0NvbXBhcmUpID0+IHtcbiAgICAgIGlmICghbmFtZWRCaW5kaW5nc0NvbXBhcmUpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBkb2VzIG5vdCBjb21wbWFyZSB0byBhbnkgb2YgdGhlICcke25vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmd9JyBub2RlIHByb3BlcnRpZXMuYCxcbiAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIHdpdGggdGhlICcke25vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmd9JyBub2RlIHByb3BlcnRpZXMuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgfSk7XG4gIH1cblxuICBjb21wYXJlTmFtZWRCaW5kaW5ncyhuYW1lZEJpbmRpbmdzLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgcmV0dXJuIG5hbWVkQmluZGluZ3MuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nLCBiYWNrLCBmb3J3YXJkKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSwgYmFjaywgZm9yd2FyZCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3Qgbm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5ID0gbm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5RnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBzdHJpbmcgPSBub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nRnJvbU5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheShub21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXkpLFxuICAgICAgICAgIGFycmF5ID0gbm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5LCAgLy8vXG4gICAgICAgICAgbm9taW5hbFZhbHVlUHJvcGVydGllcyA9IG5ldyBOb21pbmFsVmFsdWVQcm9wZXJ0aWVzKHN0cmluZywgYXJyYXkpO1xuXG4gICAgcmV0dXJuIG5vbWluYWxWYWx1ZVByb3BlcnRpZXM7XG4gIH1cbn1cblxuY29uc3Qgbm9taW5hbFZhbHVlUHJvcGVydGllcyA9IE5vbWluYWxWYWx1ZVByb3BlcnRpZXMuZnJvbU5vdGhpbmcoKTtcblxuZXhwb3J0IGRlZmF1bHQgbm9taW5hbFZhbHVlUHJvcGVydGllcztcblxuZnVuY3Rpb24gbm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5RnJvbU5vdGhpbmcoKSB7XG4gIGNvbnN0IG5hbWVzID0gW1xuICAgICAgICAgIENPTlRFTlRfUEFSQU1FVEVSX05BTUUsXG4gICAgICAgICAgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUsXG4gICAgICAgICAgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSxcbiAgICAgICAgICBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSxcbiAgICAgICAgXSxcbiAgICAgICAgdHlwZU5hbWVzID0gW1xuICAgICAgICAgIFNUUklOR19UWVBFX05BTUUsXG4gICAgICAgICAgQk9PTEVBTl9UWVBFX05BTUUsXG4gICAgICAgICAgQk9PTEVBTl9UWVBFX05BTUUsXG4gICAgICAgICAgTElTVF9UWVBFX05BTUVcbiAgICAgICAgXSxcbiAgICAgICAgYXJndW1lbnRUeXBlTmFtZXMgPSBbXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUVcbiAgICAgICAgXSxcbiAgICAgICAgbm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5ID0gbmFtZXMubWFwKChuYW1lLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgVHlwZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICAgICAgY29udGV4dCA9IG51bGwsXG4gICAgICAgICAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZXNbaW5kZXhdLFxuICAgICAgICAgICAgICAgIGFyZ3VtZW50VHlwZU5hbWUgPSBhcmd1bWVudFR5cGVOYW1lc1tpbmRleF0sXG4gICAgICAgICAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSh0eXBlTmFtZSwgYXJndW1lbnRUeXBlTmFtZSwgY29udGV4dCksXG4gICAgICAgICAgICAgICAgbm9taW5hbFZhbHVlUHJvcGVydHkgPSBOb21pbmFsVmFsdWVQcm9wZXJ0eS5mcm9tTmFtZUFuZFR5cGUobmFtZSwgdHlwZSk7XG5cbiAgICAgICAgICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydHk7XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBub21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXk7XG59XG4iXSwibmFtZXMiOlsic29tZSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsIk5vbWluYWxWYWx1ZVByb3BlcnRpZXMiLCJzdHJpbmciLCJhcnJheSIsImdldFN0cmluZyIsImdldEFycmF5Iiwic29tZU5vbWluYWxWYWx1ZVByb3BlcnR5IiwiY2FsbGJhY2siLCJiYWNrIiwiZm9yd2FyZCIsImNvbXBhcmVOYW1lZEJpbmRpbmciLCJuYW1lZEJpbmRpbmciLCJjb250ZXh0IiwibmFtZWRCaW5kaW5nU3RyaW5nIiwibm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZyIsInRyYWNlIiwibm9taW5hbFZhbHVlUHJvcGVydHkiLCJuYW1lZEJpbmRpbmdzQ29tcGFyZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImRlYnVnIiwiY29tcGFyZU5hbWVkQmluZGluZ3MiLCJuYW1lZEJpbmRpbmdzIiwiZm9yRWFjaE5hbWVkQmluZGluZyIsImZyb21Ob3RoaW5nIiwibm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5Iiwibm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5RnJvbU5vdGhpbmciLCJub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nRnJvbU5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXMiLCJuYW1lcyIsIkNPTlRFTlRfUEFSQU1FVEVSX05BTUUiLCJURVJNSU5BTF9QQVJBTUVURVJfTkFNRSIsIk5PX1dISVRFU1BBQ0VfUEFSQU1FVEVSX05BTUUiLCJDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSIsInR5cGVOYW1lcyIsIlNUUklOR19UWVBFX05BTUUiLCJCT09MRUFOX1RZUEVfTkFNRSIsIkxJU1RfVFlQRV9OQU1FIiwiYXJndW1lbnRUeXBlTmFtZXMiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsIm1hcCIsIm5hbWUiLCJpbmRleCIsIlR5cGUiLCJlbGVtZW50cyIsInR5cGVOYW1lIiwiYXJndW1lbnRUeXBlTmFtZSIsInR5cGUiLCJmcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIiwiTm9taW5hbFZhbHVlUHJvcGVydHkiLCJmcm9tTmFtZUFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXdFQTs7O2VBQUE7OztnQ0F0RXNDO2lFQUVqQjtrRUFDQzs2RUFDVzt3QkFFMkM7MkJBQ2lCO2dDQUM2Qjs7Ozs7O0FBRTFILE1BQU0sRUFBRUEsSUFBSSxFQUFFLEdBQUdDLHFDQUFxQjtBQUV0QyxNQUFNQztJQUNKLFlBQVlDLE1BQU0sRUFBRUMsS0FBSyxDQUFFO1FBQ3pCLElBQUksQ0FBQ0QsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQ0YsTUFBTTtJQUNwQjtJQUVBRyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNGLEtBQUs7SUFDbkI7SUFFQUcseUJBQXlCQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQ2hELE9BQU9WLEtBQUssSUFBSSxDQUFDSSxLQUFLLEVBQUVJLFVBQVVDLE1BQU1DO0lBQzFDO0lBRUFDLG9CQUFvQkMsWUFBWSxFQUFFQyxPQUFPLEVBQUVKLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQ3hELE1BQU1JLHFCQUFxQkYsYUFBYVAsU0FBUyxJQUMzQ1UsK0JBQStCLElBQUksQ0FBQ1osTUFBTSxFQUFFLEdBQUc7UUFFckRVLFFBQVFHLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUYsbUJBQW1CLDBCQUEwQixFQUFFQyw2QkFBNkIsb0JBQW9CLENBQUM7UUFFakksT0FBTyxJQUFJLENBQUNSLHdCQUF3QixDQUFDLENBQUNVLHNCQUFzQlIsTUFBTUM7WUFDaEUsT0FBT08scUJBQXFCTixtQkFBbUIsQ0FBQ0MsY0FBY0MsU0FBU0osTUFBTUM7UUFDL0UsR0FBR0QsTUFBTSxDQUFDUztZQUNSLElBQUksQ0FBQ0Esc0JBQXNCO2dCQUN6QixNQUFNQyxVQUFVLENBQUMsS0FBSyxFQUFFTCxtQkFBbUIsaURBQWlELEVBQUVDLDZCQUE2QixrQkFBa0IsQ0FBQyxFQUN4SUssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtnQkFFeEMsT0FBT1YsS0FBS1c7WUFDZDtZQUVBUCxRQUFRVSxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRVQsbUJBQW1CLDBCQUEwQixFQUFFQyw2QkFBNkIsa0JBQWtCLENBQUM7WUFFakksT0FBT0w7UUFDVDtJQUNGO0lBRUFjLHFCQUFxQkMsYUFBYSxFQUFFWixPQUFPLEVBQUVKLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQzFELE9BQU9lLGNBQWNDLG1CQUFtQixDQUFDLENBQUNkLGNBQWNILE1BQU1DO1lBQzVELE9BQU8sSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQ0MsY0FBY0MsU0FBU0osTUFBTUM7UUFDL0QsR0FBR0QsTUFBTUM7SUFDWDtJQUVBLE9BQU9pQixjQUFjO1FBQ25CLE1BQU1DLDhCQUE4QkMsMENBQzlCMUIsU0FBUzJCLElBQUFBLG1FQUEyRCxFQUFDRiw4QkFDckV4QixRQUFRd0IsNkJBQ1JHLHlCQUF5QixJQUFJN0IsdUJBQXVCQyxRQUFRQztRQUVsRSxPQUFPMkI7SUFDVDtBQUNGO0FBRUEsTUFBTUEseUJBQXlCN0IsdUJBQXVCeUIsV0FBVztNQUVqRSxXQUFlSTtBQUVmLFNBQVNGO0lBQ1AsTUFBTUcsUUFBUTtRQUNOQyxzQ0FBc0I7UUFDdEJDLHVDQUF1QjtRQUN2QkMsNENBQTRCO1FBQzVCQywwQ0FBMEI7S0FDM0IsRUFDREMsWUFBWTtRQUNWQywyQkFBZ0I7UUFDaEJDLDRCQUFpQjtRQUNqQkEsNEJBQWlCO1FBQ2pCQyx5QkFBYztLQUNmLEVBQ0RDLG9CQUFvQjtRQUNsQjtRQUNBO1FBQ0E7UUFDQUMsa0NBQXVCO0tBQ3hCLEVBQ0RkLDhCQUE4QkksTUFBTVcsR0FBRyxDQUFDLENBQUNDLE1BQU1DO1FBQzdDLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdDLGlCQUFRLEVBQ25CbEMsVUFBVSxNQUNWbUMsV0FBV1gsU0FBUyxDQUFDUSxNQUFNLEVBQzNCSSxtQkFBbUJSLGlCQUFpQixDQUFDSSxNQUFNLEVBQzNDSyxPQUFPSixLQUFLSywrQkFBK0IsQ0FBQ0gsVUFBVUMsa0JBQWtCcEMsVUFDeEVJLHVCQUF1Qm1DLDZCQUFvQixDQUFDQyxlQUFlLENBQUNULE1BQU1NO1FBRXhFLE9BQU9qQztJQUNUO0lBRU4sT0FBT1c7QUFDVCJ9
@@ -24,7 +24,7 @@ class NominalValueProperty {
24
24
  getName() {
25
25
  return this.name;
26
26
  }
27
- compareNamedBinding(namedBinding, context) {
27
+ compareNamedBinding(namedBinding, context, back, forward) {
28
28
  let namedBindingCompares = false;
29
29
  const nominalValuePropertyString = this.string, namedBindingString = namedBinding.getString();
30
30
  context.trace(`Comparing the '${nominalValuePropertyString}' node property with the '${namedBindingString}' named binding...`);
@@ -35,7 +35,7 @@ class NominalValueProperty {
35
35
  if (namedBindingCompares) {
36
36
  context.debug(`...compared the '${nominalValuePropertyString}' node property with the '${namedBindingString}' named binding.`);
37
37
  }
38
- return namedBindingCompares;
38
+ return forward(namedBindingCompares);
39
39
  }
40
40
  static name = "Parameter";
41
41
  static fromNameAndType(name, type) {
@@ -44,4 +44,4 @@ class NominalValueProperty {
44
44
  }
45
45
  }
46
46
 
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub21pbmFsVmFsdWVQcm9wZXJ0eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmdGcm9tTmFtZUFuZFR5cGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vbWluYWxWYWx1ZVByb3BlcnR5IHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCB0eXBlLCBuYW1lKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0KSB7XG4gICAgbGV0IG5hbWVkQmluZGluZ0NvbXBhcmVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke25vbWluYWxWYWx1ZVByb3BlcnR5U3RyaW5nfScgbm9kZSBwcm9wZXJ0eSB3aXRoIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCBuYW1lZEJpbmRpbmdOYW1lID0gbmFtZWRCaW5kaW5nLmdldE5hbWUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdUeXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lRXF1YWxUb05hbWVkQmluZGluZ05hbWUgPSAodGhpcy5uYW1lID09PSBuYW1lZEJpbmRpbmdOYW1lKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb05hbWVkQmluZGluZ1R5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKG5hbWVkQmluZGluZ1R5cGUpO1xuXG4gICAgaWYgKG5hbWVFcXVhbFRvTmFtZWRCaW5kaW5nTmFtZSAmJiB0eXBlRXF1YWxUb05hbWVkQmluZGluZ1R5cGUpIHtcbiAgICAgIG5hbWVkQmluZGluZ0NvbXBhcmVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobmFtZWRCaW5kaW5nQ29tcGFyZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZ30nIG5vZGUgcHJvcGVydHkgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmFtZWRCaW5kaW5nQ29tcGFyZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyXCI7XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSB7XG4gICAgY29uc3Qgbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmcgPSBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZ0Zyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSxcbiAgICAgICAgICBzdHJpbmcgPSBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZywgIC8vL1xuICAgICAgICAgIG5vbWluYWxWYWx1ZVByb3BlcnR5ID0gbmV3IE5vbWluYWxWYWx1ZVByb3BlcnR5KHN0cmluZywgdHlwZSwgbmFtZSk7XG5cbiAgICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydHk7XG4gIH1cbn07XG4iXSwibmFtZXMiOlsiTm9taW5hbFZhbHVlUHJvcGVydHkiLCJzdHJpbmciLCJ0eXBlIiwibmFtZSIsImdldFN0cmluZyIsImdldFR5cGUiLCJnZXROYW1lIiwiY29tcGFyZU5hbWVkQmluZGluZyIsIm5hbWVkQmluZGluZyIsImNvbnRleHQiLCJuYW1lZEJpbmRpbmdDb21wYXJlcyIsIm5vbWluYWxWYWx1ZVByb3BlcnR5U3RyaW5nIiwibmFtZWRCaW5kaW5nU3RyaW5nIiwidHJhY2UiLCJuYW1lZEJpbmRpbmdOYW1lIiwibmFtZWRCaW5kaW5nVHlwZSIsIm5hbWVFcXVhbFRvTmFtZWRCaW5kaW5nTmFtZSIsInR5cGVFcXVhbFRvTmFtZWRCaW5kaW5nVHlwZSIsImlzRXF1YWxUbyIsImRlYnVnIiwiZnJvbU5hbWVBbmRUeXBlIiwibm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmdGcm9tTmFtZUFuZFR5cGUiLCJub21pbmFsVmFsdWVQcm9wZXJ0eSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7Ozt3QkFGcUM7QUFFM0MsTUFBTUE7SUFDbkIsWUFBWUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUksQ0FBRTtRQUM5QixJQUFJLENBQUNGLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNILE1BQU07SUFDcEI7SUFFQUksVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSCxJQUFJO0lBQ2xCO0lBRUFJLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxvQkFBb0JDLFlBQVksRUFBRUMsT0FBTyxFQUFFO1FBQ3pDLElBQUlDLHVCQUF1QjtRQUUzQixNQUFNQyw2QkFBNkIsSUFBSSxDQUFDVixNQUFNLEVBQ3hDVyxxQkFBcUJKLGFBQWFKLFNBQVM7UUFFakRLLFFBQVFJLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUYsMkJBQTJCLDBCQUEwQixFQUFFQyxtQkFBbUIsa0JBQWtCLENBQUM7UUFFN0gsTUFBTUUsbUJBQW1CTixhQUFhRixPQUFPLElBQ3ZDUyxtQkFBbUJQLGFBQWFILE9BQU8sSUFDdkNXLDhCQUErQixJQUFJLENBQUNiLElBQUksS0FBS1csa0JBQzdDRyw4QkFBOEIsSUFBSSxDQUFDZixJQUFJLENBQUNnQixTQUFTLENBQUNIO1FBRXhELElBQUlDLCtCQUErQkMsNkJBQTZCO1lBQzlEUCx1QkFBdUI7UUFDekI7UUFFQSxJQUFJQSxzQkFBc0I7WUFDeEJELFFBQVFVLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFUiwyQkFBMkIsMEJBQTBCLEVBQUVDLG1CQUFtQixnQkFBZ0IsQ0FBQztRQUMvSDtRQUVBLE9BQU9GO0lBQ1Q7SUFFQSxPQUFPUCxPQUFPLFlBQVk7SUFFMUIsT0FBT2lCLGdCQUFnQmpCLElBQUksRUFBRUQsSUFBSSxFQUFFO1FBQ2pDLE1BQU1TLDZCQUE2QlUsSUFBQUEsaURBQXlDLEVBQUNsQixNQUFNRCxPQUM3RUQsU0FBU1UsNEJBQ1RXLHVCQUF1QixJQUFJdEIscUJBQXFCQyxRQUFRQyxNQUFNQztRQUVwRSxPQUFPbUI7SUFDVDtBQUNGIn0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub21pbmFsVmFsdWVQcm9wZXJ0eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmdGcm9tTmFtZUFuZFR5cGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vbWluYWxWYWx1ZVByb3BlcnR5IHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCB0eXBlLCBuYW1lKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgbGV0IG5hbWVkQmluZGluZ0NvbXBhcmVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke25vbWluYWxWYWx1ZVByb3BlcnR5U3RyaW5nfScgbm9kZSBwcm9wZXJ0eSB3aXRoIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCBuYW1lZEJpbmRpbmdOYW1lID0gbmFtZWRCaW5kaW5nLmdldE5hbWUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdUeXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lRXF1YWxUb05hbWVkQmluZGluZ05hbWUgPSAodGhpcy5uYW1lID09PSBuYW1lZEJpbmRpbmdOYW1lKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb05hbWVkQmluZGluZ1R5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKG5hbWVkQmluZGluZ1R5cGUpO1xuXG4gICAgaWYgKG5hbWVFcXVhbFRvTmFtZWRCaW5kaW5nTmFtZSAmJiB0eXBlRXF1YWxUb05hbWVkQmluZGluZ1R5cGUpIHtcbiAgICAgIG5hbWVkQmluZGluZ0NvbXBhcmVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobmFtZWRCaW5kaW5nQ29tcGFyZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZ30nIG5vZGUgcHJvcGVydHkgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9yd2FyZChuYW1lZEJpbmRpbmdDb21wYXJlcyk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyXCI7XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSB7XG4gICAgY29uc3Qgbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmcgPSBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZ0Zyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSxcbiAgICAgICAgICBzdHJpbmcgPSBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZywgIC8vL1xuICAgICAgICAgIG5vbWluYWxWYWx1ZVByb3BlcnR5ID0gbmV3IE5vbWluYWxWYWx1ZVByb3BlcnR5KHN0cmluZywgdHlwZSwgbmFtZSk7XG5cbiAgICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydHk7XG4gIH1cbn07XG4iXSwibmFtZXMiOlsiTm9taW5hbFZhbHVlUHJvcGVydHkiLCJzdHJpbmciLCJ0eXBlIiwibmFtZSIsImdldFN0cmluZyIsImdldFR5cGUiLCJnZXROYW1lIiwiY29tcGFyZU5hbWVkQmluZGluZyIsIm5hbWVkQmluZGluZyIsImNvbnRleHQiLCJiYWNrIiwiZm9yd2FyZCIsIm5hbWVkQmluZGluZ0NvbXBhcmVzIiwibm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmciLCJuYW1lZEJpbmRpbmdTdHJpbmciLCJ0cmFjZSIsIm5hbWVkQmluZGluZ05hbWUiLCJuYW1lZEJpbmRpbmdUeXBlIiwibmFtZUVxdWFsVG9OYW1lZEJpbmRpbmdOYW1lIiwidHlwZUVxdWFsVG9OYW1lZEJpbmRpbmdUeXBlIiwiaXNFcXVhbFRvIiwiZGVidWciLCJmcm9tTmFtZUFuZFR5cGUiLCJub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZ0Zyb21OYW1lQW5kVHlwZSIsIm5vbWluYWxWYWx1ZVByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXFCQTs7O3dCQUZxQztBQUUzQyxNQUFNQTtJQUNuQixZQUFZQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxDQUFFO1FBQzlCLElBQUksQ0FBQ0YsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQ0gsTUFBTTtJQUNwQjtJQUVBSSxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSCxJQUFJO0lBQ2xCO0lBRUFJLG9CQUFvQkMsWUFBWSxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQ3hELElBQUlDLHVCQUF1QjtRQUUzQixNQUFNQyw2QkFBNkIsSUFBSSxDQUFDWixNQUFNLEVBQ3hDYSxxQkFBcUJOLGFBQWFKLFNBQVM7UUFFakRLLFFBQVFNLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUYsMkJBQTJCLDBCQUEwQixFQUFFQyxtQkFBbUIsa0JBQWtCLENBQUM7UUFFN0gsTUFBTUUsbUJBQW1CUixhQUFhRixPQUFPLElBQ3ZDVyxtQkFBbUJULGFBQWFILE9BQU8sSUFDdkNhLDhCQUErQixJQUFJLENBQUNmLElBQUksS0FBS2Esa0JBQzdDRyw4QkFBOEIsSUFBSSxDQUFDakIsSUFBSSxDQUFDa0IsU0FBUyxDQUFDSDtRQUV4RCxJQUFJQywrQkFBK0JDLDZCQUE2QjtZQUM5RFAsdUJBQXVCO1FBQ3pCO1FBRUEsSUFBSUEsc0JBQXNCO1lBQ3hCSCxRQUFRWSxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRVIsMkJBQTJCLDBCQUEwQixFQUFFQyxtQkFBbUIsZ0JBQWdCLENBQUM7UUFDL0g7UUFFQSxPQUFPSCxRQUFRQztJQUNqQjtJQUVBLE9BQU9ULE9BQU8sWUFBWTtJQUUxQixPQUFPbUIsZ0JBQWdCbkIsSUFBSSxFQUFFRCxJQUFJLEVBQUU7UUFDakMsTUFBTVcsNkJBQTZCVSxJQUFBQSxpREFBeUMsRUFBQ3BCLE1BQU1ELE9BQzdFRCxTQUFTWSw0QkFDVFcsdUJBQXVCLElBQUl4QixxQkFBcUJDLFFBQVFDLE1BQU1DO1FBRXBFLE9BQU9xQjtJQUNUO0FBQ0YifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "3.0.461",
4
+ "version": "3.0.464",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -12,7 +12,7 @@
12
12
  "dependencies": {
13
13
  "necessary": "^17.6.3",
14
14
  "occam-grammars": "^1.3.663",
15
- "occam-languages": "^3.0.20",
15
+ "occam-languages": "^3.0.23",
16
16
  "occam-lexers": "^23.2.8",
17
17
  "occam-parsers": "^23.2.11",
18
18
  "occam-query": "^4.1.206"
@@ -39,7 +39,7 @@ export default class BlockContext extends Context {
39
39
  const message = `The '${variableString}' variable is already present.'`,
40
40
  exception = Exception.fromMessage(message);
41
41
 
42
- throw back(exception);
42
+ return back(exception);
43
43
  }
44
44
 
45
45
  const context = this; ///
@@ -33,26 +33,26 @@ export default define(class AnonymousProcedure extends Element {
33
33
 
34
34
  context.trace(`Calling the '${anonymousProcedureString}' anonymous function...`);
35
35
 
36
- this.parameters.compareValues(values, context);
36
+ return this.parameters.compareValues(values, context, back, () => {
37
+ const variables = variablesFromValuesAndParameters(values, this.parameters, context);
37
38
 
38
- const variables = variablesFromValuesAndParameters(values, this.parameters, context);
39
+ return this.returnBlock.evaluate(variables, context, back, (value) => {
40
+ const valueType = value.getType(),
41
+ typeEqualToValueType = this.type.isEqualTo(valueType);
39
42
 
40
- return this.returnBlock.evaluate(variables, context, back, (value) => {
41
- const valueType = value.getType(),
42
- typeEqualToValueType = this.type.isEqualTo(valueType);
43
+ if (!typeEqualToValueType) {
44
+ const valueString = value.getString(),
45
+ typeString = this.type.getString(),
46
+ message = `The '${valueString}' value's '${valueType}' type is not equal to the '${anonymousProcedureString}' anonymous function's '${typeString}' type.`,
47
+ exception = Exception.fromMessage(message);
43
48
 
44
- if (!typeEqualToValueType) {
45
- const valueString = value.getString(),
46
- typeString = this.type.getString(),
47
- message = `The '${valueString}' value's '${valueType}' type is not equal to the '${anonymousProcedureString}' anonymous function's '${typeString}' type.`,
48
- exception = Exception.fromMessage(message);
49
+ return back(exception);
50
+ }
49
51
 
50
- throw exception;
51
- }
52
+ context.debug(`...called the '${anonymousProcedureString}' anonymous function.`);
52
53
 
53
- context.debug(`...called the '${anonymousProcedureString}' anonymous function.`);
54
-
55
- return forward(value);
54
+ return forward(value);
55
+ });
56
56
  });
57
57
  }
58
58
 
@@ -41,7 +41,7 @@ export default define(class ListAssignment extends Element {
41
41
  message = `The '${valueString}' value's '${valueType}' type should be '${LIST_TYPE_NAME}'.`,
42
42
  exception = Exception.fromMessage(message);
43
43
 
44
- throw exception;
44
+ return back(exception);
45
45
  }
46
46
 
47
47
  const bindingsLength = this.bindings.getLength(),
@@ -54,7 +54,7 @@ export default define(class ListAssignment extends Element {
54
54
  message = `The length of the '${bindingsString}' bindings is greater than the length of the '${valueString}' list.`,
55
55
  exception = Exception.fromMessage(message);
56
56
 
57
- throw exception;
57
+ return back(exception);
58
58
  }
59
59
 
60
60
  const values = value.lift(context);
@@ -69,7 +69,7 @@ export default define(class ListAssignment extends Element {
69
69
  const value = values[index];
70
70
 
71
71
  return this.evaluateBinding(binding, value, context, back, forward);
72
- }, () => {
72
+ }, back, () => {
73
73
  context.debug(`...evaluated the '${listAssignmentString}' list assignment.`);
74
74
 
75
75
  return forward();
@@ -93,7 +93,7 @@ export default define(class ListAssignment extends Element {
93
93
  message = `The '${bindingString}' binding's '${bindingTypeString}' type is not equal to the '${valueString}' value's '${valueTypeString}' type.`,
94
94
  exception = Exception.fromMessage(message);
95
95
 
96
- throw exception;
96
+ return back(exception);
97
97
  }
98
98
 
99
99
  const { Variable } = elements,
@@ -44,18 +44,18 @@ export default define(class ObjectAssignment extends Element {
44
44
  message = `The '${valueString}' value's '${valueType}' type should be '${NOMINAL_VALUE_TYPE_NAME}'.`,
45
45
  exception = Exception.fromMessage(message);
46
46
 
47
- throw exception;
47
+ return back(exception);
48
48
  }
49
49
 
50
- nominalValueProperties.compareNamedBindings(this.namedBindings, context);
50
+ return nominalValueProperties.compareNamedBindings(this.namedBindings, context, back, () => {
51
+ return this.namedBindings.forEachNamedBinding((namedBinding, back, forward) => {
52
+ return this.evaluateNamedBinding(namedBinding, value, context, back, forward);
53
+ }, back, () => {
54
+ context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
51
55
 
52
- this.namedBindings.forEachNamedBinding((namedBinding) => {
53
- this.evaluateNamedBinding(namedBinding, value, context);
56
+ return forward();
57
+ });
54
58
  });
55
-
56
- context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
57
-
58
- return forward();
59
59
  });
60
60
 
61
61
  evaluateNamedBinding(namedBinding, term, context, back, forward) {
@@ -64,47 +64,49 @@ export default define(class ObjectAssignment extends Element {
64
64
 
65
65
  context.trace(`Evaluating the '${namedBindingString}' named binding against the '${termString}' term...`);
66
66
 
67
- let value;
68
-
69
67
  const name = namedBinding.getName();
70
68
 
69
+ let evaluateNamedBinding;
70
+
71
71
  switch (name) {
72
72
  case CONTENT_PARAMETER_NAME: {
73
- value = this.evaluateContentNamedBinding(namedBinding, term, context);
73
+ evaluateNamedBinding = this.evaluateContentNamedBinding.bind(this);
74
74
 
75
75
  break;
76
76
  }
77
77
 
78
78
  case TERMINAL_PARAMETER_NAME: {
79
- value = this.evaluateTerminalNamedBinding(namedBinding, term, context);
79
+ evaluateNamedBinding = this.evaluateTerminalNamedBinding.bind(this);
80
80
 
81
81
  break;
82
82
  }
83
83
 
84
84
  case CHILD_NODES_PARAMETER_NAME: {
85
- value = this.evaluateChildNodesNamedBinding(namedBinding, term, context);
85
+ evaluateNamedBinding = this.evaluateChildNodesNamedBinding.bind(this);
86
86
 
87
87
  break;
88
88
  }
89
89
 
90
90
  case NO_WHITESPACE_PARAMETER_NAME: {
91
- value = this.evaluateNoWhitespaceNamedBinding(namedBinding, term, context);
91
+ evaluateNamedBinding = this.evaluateNoWhitespaceNamedBinding.bind(this);
92
92
 
93
93
  break;
94
94
  }
95
95
  }
96
96
 
97
- const { Variable } = elements,
98
- variable = Variable.fromNamedBinding(namedBinding, context);
97
+ return evaluateNamedBinding(namedBinding, term, context, back, (value) => {
98
+ const { Variable } = elements,
99
+ variable = Variable.fromNamedBinding(namedBinding, context);
99
100
 
100
- return variable.assign(value, context, back, () => {
101
- context.debug(`...evaluated the '${namedBindingString}' parameter named against the '${termString}' term.`);
101
+ return variable.assign(value, context, back, () => {
102
+ context.debug(`...evaluated the '${namedBindingString}' parameter named against the '${termString}' term.`);
102
103
 
103
- forward();
104
+ forward();
105
+ });
104
106
  });
105
107
  }
106
108
 
107
- evaluateContentNamedBinding(namedBinding, term, context) {
109
+ evaluateContentNamedBinding(namedBinding, term, context, back, forward) {
108
110
  const type = namedBinding.getType(),
109
111
  namedBindingString = namedBinding.getString();
110
112
 
@@ -117,7 +119,7 @@ export default define(class ObjectAssignment extends Element {
117
119
  message = `The '${namedBindingString}' named binding's type should be '${STRING_TYPE_NAME}'.`,
118
120
  exception = Exception.fromMessage(message);
119
121
 
120
- throw exception;
122
+ return back(exception);
121
123
  }
122
124
 
123
125
  const primitiveValue = term.getPrimitiveValue(),
@@ -130,7 +132,7 @@ export default define(class ObjectAssignment extends Element {
130
132
  message = `The '${termString}' term's node must be terminal.`,
131
133
  exception = Exception.fromMessage(message);
132
134
 
133
- throw exception;
135
+ return back(exception);
134
136
  }
135
137
 
136
138
  const terminalNode = node, ///
@@ -142,10 +144,10 @@ export default define(class ObjectAssignment extends Element {
142
144
 
143
145
  context.debug(`...evaluated the content '${namedBindingString}' named binding as '${valueSttring}'.`);
144
146
 
145
- return value;
147
+ return forward(value);
146
148
  }
147
149
 
148
- evaluateTerminalNamedBinding(namedBinding, term, context) {
150
+ evaluateTerminalNamedBinding(namedBinding, term, context, back, forward) {
149
151
  const type = namedBinding.getType(),
150
152
  namedBindingString = namedBinding.getString();
151
153
 
@@ -158,7 +160,7 @@ export default define(class ObjectAssignment extends Element {
158
160
  message = `The '${namedBindingString}' named binding's type should be '${BOOLEAN_TYPE_NAME}'.`,
159
161
  exception = Exception.fromMessage(message);
160
162
 
161
- throw exception;
163
+ return back(exception);
162
164
  }
163
165
 
164
166
  const primitiveValue = term.getPrimitiveValue(),
@@ -172,10 +174,10 @@ export default define(class ObjectAssignment extends Element {
172
174
 
173
175
  context.debug(`...evaluated the terminal '${namedBindingString}' named binding as '${valueSttring}'.`);
174
176
 
175
- return value;
177
+ return forward(value);
176
178
  }
177
179
 
178
- evaluateChildNodesNamedBinding(namedBinding, term, context) {
180
+ evaluateChildNodesNamedBinding(namedBinding, term, context, back, forward) {
179
181
  const type = namedBinding.getType(),
180
182
  namedBindingString = namedBinding.getString();
181
183
 
@@ -188,7 +190,7 @@ export default define(class ObjectAssignment extends Element {
188
190
  message = `The '${namedBindingString}' named binding's type should be '${LIST_TYPE_NAME}'.`,
189
191
  exception = Exception.fromMessage(message);
190
192
 
191
- throw exception;
193
+ return back(exception);
192
194
  }
193
195
 
194
196
  const primitiveValue = term.getPrimitiveValue(),
@@ -201,7 +203,7 @@ export default define(class ObjectAssignment extends Element {
201
203
  message = `The '${termString}' term's node must be non-terminal.`,
202
204
  exception = Exception.fromMessage(message);
203
205
 
204
- throw exception;
206
+ return back(exception);
205
207
  }
206
208
 
207
209
  const nonTerminalNode = node, ///
@@ -212,10 +214,10 @@ export default define(class ObjectAssignment extends Element {
212
214
 
213
215
  context.debug(`...evaluated the childNodes '${namedBindingString}' named binding as '${valueSttring}'.`);
214
216
 
215
- return value;
217
+ return forward(value);
216
218
  }
217
219
 
218
- evaluateNoWhitespaceNamedBinding(namedBinding, term, context) {
220
+ evaluateNoWhitespaceNamedBinding(namedBinding, term, context, back, forward) {
219
221
  const type = namedBinding.getType(),
220
222
  namedBindingString = namedBinding.getString();
221
223
 
@@ -228,7 +230,7 @@ export default define(class ObjectAssignment extends Element {
228
230
  message = `The '${namedBindingString}' named binding's type should be '${BOOLEAN_TYPE_NAME}'.`,
229
231
  exception = Exception.fromMessage(message);
230
232
 
231
- throw exception;
233
+ return back(exception);
232
234
  }
233
235
 
234
236
  const primitiveValue = term.getPrimitiveValue(),
@@ -241,7 +243,7 @@ export default define(class ObjectAssignment extends Element {
241
243
  message = `The '${termString}' term's node must be terminal.`,
242
244
  exception = Exception.fromMessage(message);
243
245
 
244
- throw exception;
246
+ return back(exception);
245
247
  }
246
248
 
247
249
  const terminalNode = node, ///
@@ -252,7 +254,7 @@ export default define(class ObjectAssignment extends Element {
252
254
 
253
255
  context.debug(`...evaluated the no whitespace '${namedBindingString}' named binding as '${valueSttring}'.`);
254
256
 
255
- return value;
257
+ return forward(value);
256
258
  }
257
259
 
258
260
  static name = "ObjectAssignment";
@@ -42,7 +42,7 @@ export default define(class NamedBinding extends Element {
42
42
  return aliasedName;
43
43
  }
44
44
 
45
- compareTerm(term, context) {
45
+ compareTerm(term, context, back, forward) {
46
46
  const termString = term.getString(),
47
47
  namedBindingString = this.getString(); ///
48
48
 
@@ -56,13 +56,15 @@ export default define(class NamedBinding extends Element {
56
56
  message = `The '${termString}' term's '${termType}' type is not equal to '${namedBindingString}' named binding's '${typeString}' type.`,
57
57
  exception = Exception.fromMessage(message);
58
58
 
59
- throw exception;
59
+ return back(exception);
60
60
  }
61
61
 
62
62
  context.debug(`...compared the '${termString}' term with the '${namedBindingString}' named binding.`);
63
+
64
+ return forward();
63
65
  }
64
66
 
65
- compareNamedBinding(namedBinding, context) {
67
+ compareNamedBinding(namedBinding, context, back, forward) {
66
68
  let namedBindingCompares;
67
69
 
68
70
  const namedBindingA = this, ///
@@ -84,7 +86,7 @@ export default define(class NamedBinding extends Element {
84
86
  context.debug(`...compared the '${namedBindingAString}' named binding with the '${namedBindingBString}' named binding.`);
85
87
  }
86
88
 
87
- return namedBindingCompares;
89
+ return forward(namedBindingCompares);
88
90
  }
89
91
 
90
92
  static name = "NamedBinding";