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
@@ -30,7 +30,7 @@ const _default = (0, _elements.define)(class StartsWith extends _occamlanguages.
30
30
  getSubstring() {
31
31
  return this.substring;
32
32
  }
33
- evaluate(context) {
33
+ evaluate(context, back, forward) {
34
34
  let value;
35
35
  const startsWithString = this.getString(); ///
36
36
  context.trace(`Evaluating the '${startsWithString}' function...`);
@@ -38,15 +38,15 @@ const _default = (0, _elements.define)(class StartsWith extends _occamlanguages.
38
38
  const valueType = value.getType(), valueTypeStringType = valueType.isStringType();
39
39
  if (!valueTypeStringType) {
40
40
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.STRING_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
41
- throw exception;
41
+ return back(exception);
42
42
  }
43
43
  const string = value.getString(), boolean = string.startsWith(this.substring);
44
44
  value = (0, _value.valueFromBoolean)(boolean);
45
45
  const valueString = value.getString();
46
46
  context.debug(`...evaluated the '${startsWithString}' function as '${valueString}'.`);
47
- return value;
47
+ return forward(value);
48
48
  }
49
49
  static name = "StartsWith";
50
50
  });
51
51
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3N0YXJ0c1dpdGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IFNUUklOR19UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyB2YWx1ZUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgU3RhcnRzV2l0aCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBzdWJzdHJpbmcpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuc3Vic3RyaW5nID0gc3Vic3RyaW5nO1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXRTdWJzdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic3RyaW5nO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHN0YXJ0c1dpdGhTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtzdGFydHNXaXRoU3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVTdHJpbmdUeXBlID0gdmFsdWVUeXBlLmlzU3RyaW5nVHlwZSgpO1xuXG4gICAgaWYgKCF2YWx1ZVR5cGVTdHJpbmdUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke1NUUklOR19UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgYm9vbGVhbiA9IHN0cmluZy5zdGFydHNXaXRoKHRoaXMuc3Vic3RyaW5nKTtcblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3N0YXJ0c1dpdGhTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlN0YXJ0c1dpdGhcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlN0YXJ0c1dpdGgiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJzdWJzdHJpbmciLCJnZXRWYXJpYWJsZSIsImdldFN1YnN0cmluZyIsImV2YWx1YXRlIiwidmFsdWUiLCJzdGFydHNXaXRoU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJzdGFydHNXaXRoIiwidmFsdWVGcm9tQm9vbGVhbiIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUndCO2tFQUVGOzBCQUVDOzJCQUNVO3VCQUNBOzs7Ozs7TUFFakMsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFBbUJDLHVCQUFPO0lBQ3BELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxTQUFTLENBQUU7UUFDbEUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsU0FBU1IsT0FBTyxFQUFFO1FBQ2hCLElBQUlTO1FBRUosTUFBTUMsbUJBQW1CLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFL0NYLFFBQVFZLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixpQkFBaUIsYUFBYSxDQUFDO1FBRWhFRCxRQUFRLElBQUksQ0FBQ0wsUUFBUSxDQUFDSSxRQUFRLENBQUNSO1FBRS9CLE1BQU1hLFlBQVlKLE1BQU1LLE9BQU8sSUFDekJDLHNCQUFzQkYsVUFBVUcsWUFBWTtRQUVsRCxJQUFJLENBQUNELHFCQUFxQjtZQUN4QixNQUFNRSxjQUFjUixNQUFNRSxTQUFTLElBQzdCTyxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0sMkJBQWdCLENBQUMsRUFBRSxDQUFDLEVBQzdGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxNQUFNbkIsU0FBU1EsTUFBTUUsU0FBUyxJQUN4QlksVUFBVXRCLE9BQU91QixVQUFVLENBQUMsSUFBSSxDQUFDbkIsU0FBUztRQUVoREksUUFBUWdCLElBQUFBLHVCQUFnQixFQUFDRjtRQUV6QixNQUFNTixjQUFjUixNQUFNRSxTQUFTO1FBRW5DWCxRQUFRMEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixpQkFBaUIsZUFBZSxFQUFFTyxZQUFZLEVBQUUsQ0FBQztRQUVwRixPQUFPUjtJQUNUO0lBRUEsT0FBT2tCLE9BQU8sYUFBYTtBQUM3QiJ9
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3N0YXJ0c1dpdGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IFNUUklOR19UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyB2YWx1ZUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgU3RhcnRzV2l0aCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBzdWJzdHJpbmcpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuc3Vic3RyaW5nID0gc3Vic3RyaW5nO1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXRTdWJzdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic3RyaW5nO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHN0YXJ0c1dpdGhTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtzdGFydHNXaXRoU3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVTdHJpbmdUeXBlID0gdmFsdWVUeXBlLmlzU3RyaW5nVHlwZSgpO1xuXG4gICAgaWYgKCF2YWx1ZVR5cGVTdHJpbmdUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke1NUUklOR19UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIGJvb2xlYW4gPSBzdHJpbmcuc3RhcnRzV2l0aCh0aGlzLnN1YnN0cmluZyk7XG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbik7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtzdGFydHNXaXRoU3RyaW5nfScgZnVuY3Rpb24gYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJTdGFydHNXaXRoXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJTdGFydHNXaXRoIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwic3Vic3RyaW5nIiwiZ2V0VmFyaWFibGUiLCJnZXRTdWJzdHJpbmciLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwidmFsdWUiLCJzdGFydHNXaXRoU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJzdGFydHNXaXRoIiwidmFsdWVGcm9tQm9vbGVhbiIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUndCO2tFQUVGOzBCQUVDOzJCQUNVO3VCQUNBOzs7Ozs7TUFFakMsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFBbUJDLHVCQUFPO0lBQ3BELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxTQUFTLENBQUU7UUFDbEUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsU0FBU1IsT0FBTyxFQUFFUyxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMvQixJQUFJQztRQUVKLE1BQU1DLG1CQUFtQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRS9DYixRQUFRYyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsaUJBQWlCLGFBQWEsQ0FBQztRQUVoRUQsUUFBUSxJQUFJLENBQUNQLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDUjtRQUUvQixNQUFNZSxZQUFZSixNQUFNSyxPQUFPLElBQ3pCQyxzQkFBc0JGLFVBQVVHLFlBQVk7UUFFbEQsSUFBSSxDQUFDRCxxQkFBcUI7WUFDeEIsTUFBTUUsY0FBY1IsTUFBTUUsU0FBUyxJQUM3Qk8sVUFBVSxDQUFDLEtBQUssRUFBRUQsWUFBWSxXQUFXLEVBQUVKLFVBQVUsa0JBQWtCLEVBQUVNLDJCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUM3RkMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPWCxLQUFLYTtRQUNkO1FBRUEsTUFBTXJCLFNBQVNVLE1BQU1FLFNBQVMsSUFDeEJZLFVBQVV4QixPQUFPeUIsVUFBVSxDQUFDLElBQUksQ0FBQ3JCLFNBQVM7UUFFaERNLFFBQVFnQixJQUFBQSx1QkFBZ0IsRUFBQ0Y7UUFFekIsTUFBTU4sY0FBY1IsTUFBTUUsU0FBUztRQUVuQ2IsUUFBUTRCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFaEIsaUJBQWlCLGVBQWUsRUFBRU8sWUFBWSxFQUFFLENBQUM7UUFFcEYsT0FBT1QsUUFBUUM7SUFDakI7SUFFQSxPQUFPa0IsT0FBTyxhQUFhO0FBQzdCIn0=
@@ -21,16 +21,16 @@ const _default = (0, _elements.define)(class BracketedTerm extends _occamlanguag
21
21
  getType() {
22
22
  return this.term.getType();
23
23
  }
24
- evaluate(context) {
24
+ evaluate(context, back, forward) {
25
25
  let value;
26
26
  const bracketedTermString = this.getString(); ///
27
27
  context.trace(`Evaluating the '${bracketedTermString}' bracketed term...`);
28
28
  value = this.term.evaluate(context);
29
29
  const valueString = value.getString();
30
30
  context.debug(`...evaluated the '${bracketedTermString}' bracketed term as '${valueString}'.`);
31
- return value;
31
+ return forward(value);
32
32
  }
33
33
  static name = "BracketedTerm";
34
34
  });
35
35
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJyYWNrZXRlZFRlcm0gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0ZXJtKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudGVybSA9IHRlcm07XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRUeXBlKCkgeyByZXR1cm4gdGhpcy50ZXJtLmdldFR5cGUoKTsgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBicmFja2V0ZWRUZXJtU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHticmFja2V0ZWRUZXJtU3RyaW5nfScgYnJhY2tldGVkIHRlcm0uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy50ZXJtLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7YnJhY2tldGVkVGVybVN0cmluZ30nIGJyYWNrZXRlZCB0ZXJtIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQnJhY2tldGVkVGVybVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQnJhY2tldGVkVGVybSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwiZ2V0VGVybSIsImdldFR5cGUiLCJldmFsdWF0ZSIsInZhbHVlIiwiYnJhY2tldGVkVGVybVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7O2dDQUp3QjswQkFFRDtNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHNCQUFzQkMsdUJBQU87SUFDdkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLENBQUU7UUFDbkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUsVUFBVTtRQUFFLE9BQU8sSUFBSSxDQUFDRixJQUFJLENBQUNFLE9BQU87SUFBSTtJQUV4Q0MsU0FBU1AsT0FBTyxFQUFFO1FBQ2hCLElBQUlRO1FBRUosTUFBTUMsc0JBQXNCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFakRWLFFBQVFXLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixvQkFBb0IsbUJBQW1CLENBQUM7UUFFekVELFFBQVEsSUFBSSxDQUFDSixJQUFJLENBQUNHLFFBQVEsQ0FBQ1A7UUFFM0IsTUFBTVksY0FBY0osTUFBTUUsU0FBUztRQUVuQ1YsUUFBUWEsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVKLG9CQUFvQixxQkFBcUIsRUFBRUcsWUFBWSxFQUFFLENBQUM7UUFFN0YsT0FBT0o7SUFDVDtJQUVBLE9BQU9NLE9BQU8sZ0JBQWdCO0FBQ2hDIn0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJyYWNrZXRlZFRlcm0gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0ZXJtKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudGVybSA9IHRlcm07XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRUeXBlKCkgeyByZXR1cm4gdGhpcy50ZXJtLmdldFR5cGUoKTsgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBicmFja2V0ZWRUZXJtU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHticmFja2V0ZWRUZXJtU3RyaW5nfScgYnJhY2tldGVkIHRlcm0uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy50ZXJtLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7YnJhY2tldGVkVGVybVN0cmluZ30nIGJyYWNrZXRlZCB0ZXJtIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQnJhY2tldGVkVGVybVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQnJhY2tldGVkVGVybSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwiZ2V0VGVybSIsImdldFR5cGUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwidmFsdWUiLCJicmFja2V0ZWRUZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVN0cmluZyIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7Z0NBSndCOzBCQUVEO01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsc0JBQXNCQyx1QkFBTztJQUN2RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksQ0FBRTtRQUNuRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxVQUFVO1FBQUUsT0FBTyxJQUFJLENBQUNGLElBQUksQ0FBQ0UsT0FBTztJQUFJO0lBRXhDQyxTQUFTUCxPQUFPLEVBQUVRLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQy9CLElBQUlDO1FBRUosTUFBTUMsc0JBQXNCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFakRaLFFBQVFhLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixvQkFBb0IsbUJBQW1CLENBQUM7UUFFekVELFFBQVEsSUFBSSxDQUFDTixJQUFJLENBQUNHLFFBQVEsQ0FBQ1A7UUFFM0IsTUFBTWMsY0FBY0osTUFBTUUsU0FBUztRQUVuQ1osUUFBUWUsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVKLG9CQUFvQixxQkFBcUIsRUFBRUcsWUFBWSxFQUFFLENBQUM7UUFFN0YsT0FBT0wsUUFBUUM7SUFDakI7SUFFQSxPQUFPTSxPQUFPLGdCQUFnQjtBQUNoQyJ9
@@ -33,14 +33,14 @@ const _default = (0, _elements.define)(class ComparisonTerm extends _occamlangua
33
33
  getRightTerm() {
34
34
  return this.rightTerm;
35
35
  }
36
- evaluate(context) {
36
+ evaluate(context, back, forward) {
37
37
  let value;
38
38
  const comparisonTermString = this.getString(); ///
39
39
  context.trace(`Evaluating the '${comparisonTermString}' comparison term...`);
40
40
  const leftValue = this.leftTerm.evaluate(context), rightValue = this.rightTerm.evaluate(context), leftValueType = leftValue.getType(), rightValueType = rightValue.getType(), leftValueTypeEqualToRightValueType = leftValueType.isEqualTo(rightValueType);
41
41
  if (!leftValueTypeEqualToRightValueType) {
42
42
  const leftValueString = leftValue.getString(), rightValueString = rightValue.getString(), leftValueTypeString = leftValueType.getString(), rightValueTypeString = rightValueType.getString(), message = `The '${leftValueString}' left term's type is '${leftValueTypeString}' whereas the '${rightValueString}' right term's type is '${rightValueTypeString}'.`, exception = _exception.default.fromMessage(message);
43
- throw exception;
43
+ return back(exception);
44
44
  }
45
45
  const leftValueEqualToRightValue = leftValue.isEqualTo(rightValue);
46
46
  let boolean = leftValueEqualToRightValue; ///
@@ -50,9 +50,9 @@ const _default = (0, _elements.define)(class ComparisonTerm extends _occamlangua
50
50
  value = (0, _value.valueFromBoolean)(boolean, context);
51
51
  const valueString = value.getString();
52
52
  context.debug(`...evaluated the '${comparisonTermString}' comparison value as '${valueString}'.`);
53
- return value;
53
+ return forward(value);
54
54
  }
55
55
  static name = "ComparisonTerm";
56
56
  });
57
57
 
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vY29tcGFyaXNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbXBhcmlzb25UZXJtIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmVnYXRlZCwgbGVmdFRlcm0sIHJpZ2h0VGVybSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5lZ2F0ZWQgPSBuZWdhdGVkO1xuICAgIHRoaXMubGVmdFRlcm0gPSBsZWZ0VGVybTtcbiAgICB0aGlzLnJpZ2h0VGVybSA9IHJpZ2h0VGVybTtcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm07XG4gIH1cblxuICBnZXRSaWdodFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGNvbXBhcmlzb25UZXJtU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtjb21wYXJpc29uVGVybVN0cmluZ30nIGNvbXBhcmlzb24gdGVybS4uLmApO1xuXG4gICAgY29uc3QgbGVmdFZhbHVlID0gdGhpcy5sZWZ0VGVybS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICByaWdodFZhbHVlID0gdGhpcy5yaWdodFRlcm0uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgbGVmdFZhbHVlVHlwZSA9IGxlZnRWYWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgcmlnaHRWYWx1ZVR5cGUgPSByaWdodFZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICBsZWZ0VmFsdWVUeXBlRXF1YWxUb1JpZ2h0VmFsdWVUeXBlID0gbGVmdFZhbHVlVHlwZS5pc0VxdWFsVG8ocmlnaHRWYWx1ZVR5cGUpO1xuXG4gICAgaWYgKCFsZWZ0VmFsdWVUeXBlRXF1YWxUb1JpZ2h0VmFsdWVUeXBlKSB7XG4gICAgICBjb25zdCBsZWZ0VmFsdWVTdHJpbmcgPSBsZWZ0VmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICByaWdodFZhbHVlU3RyaW5nID0gcmlnaHRWYWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIGxlZnRWYWx1ZVR5cGVTdHJpbmcgPSBsZWZ0VmFsdWVUeXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgcmlnaHRWYWx1ZVR5cGVTdHJpbmcgPSByaWdodFZhbHVlVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke2xlZnRWYWx1ZVN0cmluZ30nIGxlZnQgdGVybSdzIHR5cGUgaXMgJyR7bGVmdFZhbHVlVHlwZVN0cmluZ30nIHdoZXJlYXMgdGhlICcke3JpZ2h0VmFsdWVTdHJpbmd9JyByaWdodCB0ZXJtJ3MgdHlwZSBpcyAnJHtyaWdodFZhbHVlVHlwZVN0cmluZ30nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBsZWZ0VmFsdWVFcXVhbFRvUmlnaHRWYWx1ZSA9IGxlZnRWYWx1ZS5pc0VxdWFsVG8ocmlnaHRWYWx1ZSk7XG5cbiAgICBsZXQgYm9vbGVhbiA9IGxlZnRWYWx1ZUVxdWFsVG9SaWdodFZhbHVlOyAvLy9cblxuICAgIGlmICh0aGlzLm5lZ2F0ZWQpIHtcbiAgICAgIGJvb2xlYW4gPSAhYm9vbGVhbjsgLy8vXG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7Y29tcGFyaXNvblRlcm1TdHJpbmd9JyBjb21wYXJpc29uIHZhbHVlIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQ29tcGFyaXNvblRlcm1cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkNvbXBhcmlzb25UZXJtIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5lZ2F0ZWQiLCJsZWZ0VGVybSIsInJpZ2h0VGVybSIsImlzTmVnYXRlZCIsImdldExlZnRUZXJtIiwiZ2V0UmlnaHRUZXJtIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsImNvbXBhcmlzb25UZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJsZWZ0VmFsdWUiLCJyaWdodFZhbHVlIiwibGVmdFZhbHVlVHlwZSIsImdldFR5cGUiLCJyaWdodFZhbHVlVHlwZSIsImxlZnRWYWx1ZVR5cGVFcXVhbFRvUmlnaHRWYWx1ZVR5cGUiLCJpc0VxdWFsVG8iLCJsZWZ0VmFsdWVTdHJpbmciLCJyaWdodFZhbHVlU3RyaW5nIiwibGVmdFZhbHVlVHlwZVN0cmluZyIsInJpZ2h0VmFsdWVUeXBlU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibGVmdFZhbHVlRXF1YWxUb1JpZ2h0VmFsdWUiLCJib29sZWFuIiwidmFsdWVGcm9tQm9vbGVhbiIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztnQ0FQd0I7a0VBRUY7MEJBRUM7dUJBQ1U7Ozs7OztNQUVqQyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHVCQUF1QkMsdUJBQU87SUFDeEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQzNFLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNILE9BQU87SUFDckI7SUFFQUksY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDSCxRQUFRO0lBQ3RCO0lBRUFJLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0gsU0FBUztJQUN2QjtJQUVBSSxTQUFTVixPQUFPLEVBQUU7UUFDaEIsSUFBSVc7UUFFSixNQUFNQyx1QkFBdUIsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUVsRGIsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLHFCQUFxQixvQkFBb0IsQ0FBQztRQUUzRSxNQUFNRyxZQUFZLElBQUksQ0FBQ1YsUUFBUSxDQUFDSyxRQUFRLENBQUNWLFVBQ25DZ0IsYUFBYSxJQUFJLENBQUNWLFNBQVMsQ0FBQ0ksUUFBUSxDQUFDVixVQUNyQ2lCLGdCQUFnQkYsVUFBVUcsT0FBTyxJQUNqQ0MsaUJBQWlCSCxXQUFXRSxPQUFPLElBQ25DRSxxQ0FBcUNILGNBQWNJLFNBQVMsQ0FBQ0Y7UUFFbkUsSUFBSSxDQUFDQyxvQ0FBb0M7WUFDdkMsTUFBTUUsa0JBQWtCUCxVQUFVRixTQUFTLElBQ3JDVSxtQkFBbUJQLFdBQVdILFNBQVMsSUFDdkNXLHNCQUFzQlAsY0FBY0osU0FBUyxJQUM3Q1ksdUJBQXVCTixlQUFlTixTQUFTLElBQy9DYSxVQUFVLENBQUMsS0FBSyxFQUFFSixnQkFBZ0IsdUJBQXVCLEVBQUVFLG9CQUFvQixlQUFlLEVBQUVELGlCQUFpQix3QkFBd0IsRUFBRUUscUJBQXFCLEVBQUUsQ0FBQyxFQUNuS0UsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUEsTUFBTUcsNkJBQTZCZixVQUFVTSxTQUFTLENBQUNMO1FBRXZELElBQUllLFVBQVVELDRCQUE0QixHQUFHO1FBRTdDLElBQUksSUFBSSxDQUFDMUIsT0FBTyxFQUFFO1lBQ2hCMkIsVUFBVSxDQUFDQSxTQUFTLEdBQUc7UUFDekI7UUFFQXBCLFFBQVFxQixJQUFBQSx1QkFBZ0IsRUFBQ0QsU0FBUy9CO1FBRWxDLE1BQU1pQyxjQUFjdEIsTUFBTUUsU0FBUztRQUVuQ2IsUUFBUWtDLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFdEIscUJBQXFCLHVCQUF1QixFQUFFcUIsWUFBWSxFQUFFLENBQUM7UUFFaEcsT0FBT3RCO0lBQ1Q7SUFFQSxPQUFPd0IsT0FBTyxpQkFBaUI7QUFDakMifQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vY29tcGFyaXNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbXBhcmlzb25UZXJtIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmVnYXRlZCwgbGVmdFRlcm0sIHJpZ2h0VGVybSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5lZ2F0ZWQgPSBuZWdhdGVkO1xuICAgIHRoaXMubGVmdFRlcm0gPSBsZWZ0VGVybTtcbiAgICB0aGlzLnJpZ2h0VGVybSA9IHJpZ2h0VGVybTtcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm07XG4gIH1cblxuICBnZXRSaWdodFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGNvbXBhcmlzb25UZXJtU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtjb21wYXJpc29uVGVybVN0cmluZ30nIGNvbXBhcmlzb24gdGVybS4uLmApO1xuXG4gICAgY29uc3QgbGVmdFZhbHVlID0gdGhpcy5sZWZ0VGVybS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICByaWdodFZhbHVlID0gdGhpcy5yaWdodFRlcm0uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgbGVmdFZhbHVlVHlwZSA9IGxlZnRWYWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgcmlnaHRWYWx1ZVR5cGUgPSByaWdodFZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICBsZWZ0VmFsdWVUeXBlRXF1YWxUb1JpZ2h0VmFsdWVUeXBlID0gbGVmdFZhbHVlVHlwZS5pc0VxdWFsVG8ocmlnaHRWYWx1ZVR5cGUpO1xuXG4gICAgaWYgKCFsZWZ0VmFsdWVUeXBlRXF1YWxUb1JpZ2h0VmFsdWVUeXBlKSB7XG4gICAgICBjb25zdCBsZWZ0VmFsdWVTdHJpbmcgPSBsZWZ0VmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICByaWdodFZhbHVlU3RyaW5nID0gcmlnaHRWYWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIGxlZnRWYWx1ZVR5cGVTdHJpbmcgPSBsZWZ0VmFsdWVUeXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgcmlnaHRWYWx1ZVR5cGVTdHJpbmcgPSByaWdodFZhbHVlVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke2xlZnRWYWx1ZVN0cmluZ30nIGxlZnQgdGVybSdzIHR5cGUgaXMgJyR7bGVmdFZhbHVlVHlwZVN0cmluZ30nIHdoZXJlYXMgdGhlICcke3JpZ2h0VmFsdWVTdHJpbmd9JyByaWdodCB0ZXJtJ3MgdHlwZSBpcyAnJHtyaWdodFZhbHVlVHlwZVN0cmluZ30nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgbGVmdFZhbHVlRXF1YWxUb1JpZ2h0VmFsdWUgPSBsZWZ0VmFsdWUuaXNFcXVhbFRvKHJpZ2h0VmFsdWUpO1xuXG4gICAgbGV0IGJvb2xlYW4gPSBsZWZ0VmFsdWVFcXVhbFRvUmlnaHRWYWx1ZTsgLy8vXG5cbiAgICBpZiAodGhpcy5uZWdhdGVkKSB7XG4gICAgICBib29sZWFuID0gIWJvb2xlYW47IC8vL1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2NvbXBhcmlzb25UZXJtU3RyaW5nfScgY29tcGFyaXNvbiB2YWx1ZSBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbXBhcmlzb25UZXJtXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJDb21wYXJpc29uVGVybSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJuZWdhdGVkIiwibGVmdFRlcm0iLCJyaWdodFRlcm0iLCJpc05lZ2F0ZWQiLCJnZXRMZWZ0VGVybSIsImdldFJpZ2h0VGVybSIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsImNvbXBhcmlzb25UZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJsZWZ0VmFsdWUiLCJyaWdodFZhbHVlIiwibGVmdFZhbHVlVHlwZSIsImdldFR5cGUiLCJyaWdodFZhbHVlVHlwZSIsImxlZnRWYWx1ZVR5cGVFcXVhbFRvUmlnaHRWYWx1ZVR5cGUiLCJpc0VxdWFsVG8iLCJsZWZ0VmFsdWVTdHJpbmciLCJyaWdodFZhbHVlU3RyaW5nIiwibGVmdFZhbHVlVHlwZVN0cmluZyIsInJpZ2h0VmFsdWVUeXBlU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibGVmdFZhbHVlRXF1YWxUb1JpZ2h0VmFsdWUiLCJib29sZWFuIiwidmFsdWVGcm9tQm9vbGVhbiIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztnQ0FQd0I7a0VBRUY7MEJBRUM7dUJBQ1U7Ozs7OztNQUVqQyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHVCQUF1QkMsdUJBQU87SUFDeEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQzNFLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNILE9BQU87SUFDckI7SUFFQUksY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDSCxRQUFRO0lBQ3RCO0lBRUFJLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0gsU0FBUztJQUN2QjtJQUVBSSxTQUFTVixPQUFPLEVBQUVXLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQy9CLElBQUlDO1FBRUosTUFBTUMsdUJBQXVCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFbERmLFFBQVFnQixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYscUJBQXFCLG9CQUFvQixDQUFDO1FBRTNFLE1BQU1HLFlBQVksSUFBSSxDQUFDWixRQUFRLENBQUNLLFFBQVEsQ0FBQ1YsVUFDbkNrQixhQUFhLElBQUksQ0FBQ1osU0FBUyxDQUFDSSxRQUFRLENBQUNWLFVBQ3JDbUIsZ0JBQWdCRixVQUFVRyxPQUFPLElBQ2pDQyxpQkFBaUJILFdBQVdFLE9BQU8sSUFDbkNFLHFDQUFxQ0gsY0FBY0ksU0FBUyxDQUFDRjtRQUVuRSxJQUFJLENBQUNDLG9DQUFvQztZQUN2QyxNQUFNRSxrQkFBa0JQLFVBQVVGLFNBQVMsSUFDckNVLG1CQUFtQlAsV0FBV0gsU0FBUyxJQUN2Q1csc0JBQXNCUCxjQUFjSixTQUFTLElBQzdDWSx1QkFBdUJOLGVBQWVOLFNBQVMsSUFDL0NhLFVBQVUsQ0FBQyxLQUFLLEVBQUVKLGdCQUFnQix1QkFBdUIsRUFBRUUsb0JBQW9CLGVBQWUsRUFBRUQsaUJBQWlCLHdCQUF3QixFQUFFRSxxQkFBcUIsRUFBRSxDQUFDLEVBQ25LRSxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE9BQU9qQixLQUFLa0I7UUFDZDtRQUVBLE1BQU1HLDZCQUE2QmYsVUFBVU0sU0FBUyxDQUFDTDtRQUV2RCxJQUFJZSxVQUFVRCw0QkFBNEIsR0FBRztRQUU3QyxJQUFJLElBQUksQ0FBQzVCLE9BQU8sRUFBRTtZQUNoQjZCLFVBQVUsQ0FBQ0EsU0FBUyxHQUFHO1FBQ3pCO1FBRUFwQixRQUFRcUIsSUFBQUEsdUJBQWdCLEVBQUNELFNBQVNqQztRQUVsQyxNQUFNbUMsY0FBY3RCLE1BQU1FLFNBQVM7UUFFbkNmLFFBQVFvQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRXRCLHFCQUFxQix1QkFBdUIsRUFBRXFCLFlBQVksRUFBRSxDQUFDO1FBRWhHLE9BQU92QixRQUFRQztJQUNqQjtJQUVBLE9BQU93QixPQUFPLGlCQUFpQjtBQUNqQyJ9
@@ -38,26 +38,26 @@ const _default = (0, _elements.define)(class LogicalTerm extends _occamlanguages
38
38
  getRightTerm() {
39
39
  return this.rightTerm;
40
40
  }
41
- evaluate(context) {
41
+ evaluate(context, back, forward) {
42
42
  let value;
43
43
  const logicalTermString = this.getString(); ///
44
44
  context.trace(`Evaluating the '${logicalTermString}' logical term...`);
45
45
  const leftValue = this.leftTerm.evaluate(context), rightValue = this.rightTerm.evaluate(context), leftValueType = leftValue.getType(), rightValueType = rightValue.getType(), leftValueTypeBooleanType = leftValueType.isBooleanType(), rightValueTypeBooleanType = rightValueType.isBooleanType();
46
46
  if (!leftValueTypeBooleanType) {
47
47
  const leftValueString = leftValue.getString(), message = `The '${leftValueString}' left term's type is '${leftValueType}' when it should be of type '${_typeNames.BOOLEAN_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
48
- throw exception;
48
+ return back(exception);
49
49
  }
50
50
  if (!rightValueTypeBooleanType) {
51
51
  const rightValueString = rightValue.getString(), message = `The '${rightValueString}' right term's type is '${rightValueType}' when it should be of type '${_typeNames.BOOLEAN_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
52
- throw exception;
52
+ return back(exception);
53
53
  }
54
54
  const leftValuePrimitiveValue = leftValue.getPrimitiveValue(), rightValuePrimitiveValue = rightValue.getPrimitiveValue(), leftBoolean = leftValuePrimitiveValue, rightBoolean = rightValuePrimitiveValue, boolean = this.disjunction ? leftBoolean || rightBoolean : leftBoolean && rightBoolean;
55
55
  value = (0, _value.valueFromBoolean)(boolean, context);
56
56
  const valueString = value.getString();
57
57
  context.debug(`...evaluated the '${logicalTermString}' logical value as '${valueString}'.`);
58
- return value;
58
+ return forward(value);
59
59
  }
60
60
  static name = "LogicalTerm";
61
61
  });
62
62
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vbG9naWNhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgQk9PTEVBTl9UWVBFX05BTUUgfSBmcm9tIFwiLi4vLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyB2YWx1ZUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTG9naWNhbFRlcm0gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBkaXNqdW5jdGlvbiwgbGVmdFRlcm0sIHJpZ2h0VGVybSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuZGlzanVuY3Rpb24gPSBkaXNqdW5jdGlvbjtcbiAgICB0aGlzLmxlZnRUZXJtID0gbGVmdFRlcm07XG4gICAgdGhpcy5yaWdodFRlcm0gPSByaWdodFRlcm07XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBpc0Rpc2p1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2p1bmN0aW9uO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm07XG4gIH1cblxuICBnZXRSaWdodFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGxvZ2ljYWxUZXJtU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtsb2dpY2FsVGVybVN0cmluZ30nIGxvZ2ljYWwgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbGVmdFZhbHVlID0gdGhpcy5sZWZ0VGVybS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICByaWdodFZhbHVlID0gdGhpcy5yaWdodFRlcm0uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgbGVmdFZhbHVlVHlwZSA9IGxlZnRWYWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgcmlnaHRWYWx1ZVR5cGUgPSByaWdodFZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICBsZWZ0VmFsdWVUeXBlQm9vbGVhblR5cGUgPSBsZWZ0VmFsdWVUeXBlLmlzQm9vbGVhblR5cGUoKSxcbiAgICAgICAgICByaWdodFZhbHVlVHlwZUJvb2xlYW5UeXBlID0gcmlnaHRWYWx1ZVR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgaWYgKCFsZWZ0VmFsdWVUeXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IGxlZnRWYWx1ZVN0cmluZyA9IGxlZnRWYWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke2xlZnRWYWx1ZVN0cmluZ30nIGxlZnQgdGVybSdzIHR5cGUgaXMgJyR7bGVmdFZhbHVlVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgaWYgKCFyaWdodFZhbHVlVHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICBjb25zdCByaWdodFZhbHVlU3RyaW5nID0gcmlnaHRWYWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3JpZ2h0VmFsdWVTdHJpbmd9JyByaWdodCB0ZXJtJ3MgdHlwZSBpcyAnJHtyaWdodFZhbHVlVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgbGVmdFZhbHVlUHJpbWl0aXZlVmFsdWUgPSBsZWZ0VmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICByaWdodFZhbHVlUHJpbWl0aXZlVmFsdWUgPSByaWdodFZhbHVlLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbGVmdEJvb2xlYW4gPWxlZnRWYWx1ZVByaW1pdGl2ZVZhbHVlLCAvLy9cbiAgICAgICAgICByaWdodEJvb2xlYW4gPSByaWdodFZhbHVlUHJpbWl0aXZlVmFsdWUsIC8vL1xuICAgICAgICAgIGJvb2xlYW4gPSB0aGlzLmRpc2p1bmN0aW9uID9cbiAgICAgICAgICAgICAgICAgICAgICAobGVmdEJvb2xlYW4gfHwgcmlnaHRCb29sZWFuKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAobGVmdEJvb2xlYW4gJiYgcmlnaHRCb29sZWFuKTtcblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2xvZ2ljYWxUZXJtU3RyaW5nfScgbG9naWNhbCB2YWx1ZSBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkxvZ2ljYWxUZXJtXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJMb2dpY2FsVGVybSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwiZGlzanVuY3Rpb24iLCJsZWZ0VGVybSIsInJpZ2h0VGVybSIsImdldFR5cGUiLCJpc0Rpc2p1bmN0aW9uIiwiZ2V0TGVmdFRlcm0iLCJnZXRSaWdodFRlcm0iLCJldmFsdWF0ZSIsInZhbHVlIiwibG9naWNhbFRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImxlZnRWYWx1ZSIsInJpZ2h0VmFsdWUiLCJsZWZ0VmFsdWVUeXBlIiwicmlnaHRWYWx1ZVR5cGUiLCJsZWZ0VmFsdWVUeXBlQm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwicmlnaHRWYWx1ZVR5cGVCb29sZWFuVHlwZSIsImxlZnRWYWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJCT09MRUFOX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicmlnaHRWYWx1ZVN0cmluZyIsImxlZnRWYWx1ZVByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJyaWdodFZhbHVlUHJpbWl0aXZlVmFsdWUiLCJsZWZ0Qm9vbGVhbiIsInJpZ2h0Qm9vbGVhbiIsImJvb2xlYW4iLCJ2YWx1ZUZyb21Cb29sZWFuIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDVzt1QkFDRDs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsb0JBQW9CQyx1QkFBTztJQUNyRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsV0FBVyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsQ0FBRTtRQUNyRixLQUFLLENBQUNQLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0osSUFBSTtJQUNsQjtJQUVBSyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0osV0FBVztJQUN6QjtJQUVBSyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNKLFFBQVE7SUFDdEI7SUFFQUssZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDSixTQUFTO0lBQ3ZCO0lBRUFLLFNBQVNaLE9BQU8sRUFBRTtRQUNoQixJQUFJYTtRQUVKLE1BQU1DLG9CQUFvQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRS9DZixRQUFRZ0IsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGtCQUFrQixpQkFBaUIsQ0FBQztRQUVyRSxNQUFNRyxZQUFZLElBQUksQ0FBQ1gsUUFBUSxDQUFDTSxRQUFRLENBQUNaLFVBQ25Da0IsYUFBYSxJQUFJLENBQUNYLFNBQVMsQ0FBQ0ssUUFBUSxDQUFDWixVQUNyQ21CLGdCQUFnQkYsVUFBVVQsT0FBTyxJQUNqQ1ksaUJBQWlCRixXQUFXVixPQUFPLElBQ25DYSwyQkFBMkJGLGNBQWNHLGFBQWEsSUFDdERDLDRCQUE0QkgsZUFBZUUsYUFBYTtRQUU5RCxJQUFJLENBQUNELDBCQUEwQjtZQUM3QixNQUFNRyxrQkFBa0JQLFVBQVVGLFNBQVMsSUFDckNVLFVBQVUsQ0FBQyxLQUFLLEVBQUVELGdCQUFnQix1QkFBdUIsRUFBRUwsY0FBYyw2QkFBNkIsRUFBRU8sNEJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQzdIQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxJQUFJLENBQUNKLDJCQUEyQjtZQUM5QixNQUFNTyxtQkFBbUJaLFdBQVdILFNBQVMsSUFDdkNVLFVBQVUsQ0FBQyxLQUFLLEVBQUVLLGlCQUFpQix3QkFBd0IsRUFBRVYsZUFBZSw2QkFBNkIsRUFBRU0sNEJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQ2hJQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxNQUFNSSwwQkFBMEJkLFVBQVVlLGlCQUFpQixJQUNyREMsMkJBQTJCZixXQUFXYyxpQkFBaUIsSUFDdkRFLGNBQWFILHlCQUNiSSxlQUFlRiwwQkFDZkcsVUFBVSxJQUFJLENBQUMvQixXQUFXLEdBQ2I2QixlQUFlQyxlQUNiRCxlQUFlQztRQUVwQ3RCLFFBQVF3QixJQUFBQSx1QkFBZ0IsRUFBQ0QsU0FBU3BDO1FBRWxDLE1BQU1zQyxjQUFjekIsTUFBTUUsU0FBUztRQUVuQ2YsUUFBUXVDLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFekIsa0JBQWtCLG9CQUFvQixFQUFFd0IsWUFBWSxFQUFFLENBQUM7UUFFMUYsT0FBT3pCO0lBQ1Q7SUFFQSxPQUFPMkIsT0FBTyxjQUFjO0FBQzlCIn0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vbG9naWNhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgQk9PTEVBTl9UWVBFX05BTUUgfSBmcm9tIFwiLi4vLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyB2YWx1ZUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTG9naWNhbFRlcm0gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBkaXNqdW5jdGlvbiwgbGVmdFRlcm0sIHJpZ2h0VGVybSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuZGlzanVuY3Rpb24gPSBkaXNqdW5jdGlvbjtcbiAgICB0aGlzLmxlZnRUZXJtID0gbGVmdFRlcm07XG4gICAgdGhpcy5yaWdodFRlcm0gPSByaWdodFRlcm07XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBpc0Rpc2p1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2p1bmN0aW9uO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm07XG4gIH1cblxuICBnZXRSaWdodFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGxvZ2ljYWxUZXJtU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtsb2dpY2FsVGVybVN0cmluZ30nIGxvZ2ljYWwgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbGVmdFZhbHVlID0gdGhpcy5sZWZ0VGVybS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICByaWdodFZhbHVlID0gdGhpcy5yaWdodFRlcm0uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgbGVmdFZhbHVlVHlwZSA9IGxlZnRWYWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgcmlnaHRWYWx1ZVR5cGUgPSByaWdodFZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICBsZWZ0VmFsdWVUeXBlQm9vbGVhblR5cGUgPSBsZWZ0VmFsdWVUeXBlLmlzQm9vbGVhblR5cGUoKSxcbiAgICAgICAgICByaWdodFZhbHVlVHlwZUJvb2xlYW5UeXBlID0gcmlnaHRWYWx1ZVR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgaWYgKCFsZWZ0VmFsdWVUeXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IGxlZnRWYWx1ZVN0cmluZyA9IGxlZnRWYWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke2xlZnRWYWx1ZVN0cmluZ30nIGxlZnQgdGVybSdzIHR5cGUgaXMgJyR7bGVmdFZhbHVlVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGlmICghcmlnaHRWYWx1ZVR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgY29uc3QgcmlnaHRWYWx1ZVN0cmluZyA9IHJpZ2h0VmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtyaWdodFZhbHVlU3RyaW5nfScgcmlnaHQgdGVybSdzIHR5cGUgaXMgJyR7cmlnaHRWYWx1ZVR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBsZWZ0VmFsdWVQcmltaXRpdmVWYWx1ZSA9IGxlZnRWYWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIHJpZ2h0VmFsdWVQcmltaXRpdmVWYWx1ZSA9IHJpZ2h0VmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBsZWZ0Qm9vbGVhbiA9bGVmdFZhbHVlUHJpbWl0aXZlVmFsdWUsIC8vL1xuICAgICAgICAgIHJpZ2h0Qm9vbGVhbiA9IHJpZ2h0VmFsdWVQcmltaXRpdmVWYWx1ZSwgLy8vXG4gICAgICAgICAgYm9vbGVhbiA9IHRoaXMuZGlzanVuY3Rpb24gP1xuICAgICAgICAgICAgICAgICAgICAgIChsZWZ0Qm9vbGVhbiB8fCByaWdodEJvb2xlYW4pIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIChsZWZ0Qm9vbGVhbiAmJiByaWdodEJvb2xlYW4pO1xuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7bG9naWNhbFRlcm1TdHJpbmd9JyBsb2dpY2FsIHZhbHVlIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTG9naWNhbFRlcm1cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkxvZ2ljYWxUZXJtIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJkaXNqdW5jdGlvbiIsImxlZnRUZXJtIiwicmlnaHRUZXJtIiwiZ2V0VHlwZSIsImlzRGlzanVuY3Rpb24iLCJnZXRMZWZ0VGVybSIsImdldFJpZ2h0VGVybSIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsImxvZ2ljYWxUZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJsZWZ0VmFsdWUiLCJyaWdodFZhbHVlIiwibGVmdFZhbHVlVHlwZSIsInJpZ2h0VmFsdWVUeXBlIiwibGVmdFZhbHVlVHlwZUJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsInJpZ2h0VmFsdWVUeXBlQm9vbGVhblR5cGUiLCJsZWZ0VmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInJpZ2h0VmFsdWVTdHJpbmciLCJsZWZ0VmFsdWVQcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwicmlnaHRWYWx1ZVByaW1pdGl2ZVZhbHVlIiwibGVmdEJvb2xlYW4iLCJyaWdodEJvb2xlYW4iLCJib29sZWFuIiwidmFsdWVGcm9tQm9vbGVhbiIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7a0VBRUY7MEJBRUM7MkJBQ1c7dUJBQ0Q7Ozs7OztNQUVqQyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG9CQUFvQkMsdUJBQU87SUFDckQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxTQUFTLENBQUU7UUFDckYsS0FBSyxDQUFDUCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNKLElBQUk7SUFDbEI7SUFFQUssZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNKLFdBQVc7SUFDekI7SUFFQUssY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDSixRQUFRO0lBQ3RCO0lBRUFLLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0osU0FBUztJQUN2QjtJQUVBSyxTQUFTWixPQUFPLEVBQUVhLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQy9CLElBQUlDO1FBRUosTUFBTUMsb0JBQW9CLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFL0NqQixRQUFRa0IsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGtCQUFrQixpQkFBaUIsQ0FBQztRQUVyRSxNQUFNRyxZQUFZLElBQUksQ0FBQ2IsUUFBUSxDQUFDTSxRQUFRLENBQUNaLFVBQ25Db0IsYUFBYSxJQUFJLENBQUNiLFNBQVMsQ0FBQ0ssUUFBUSxDQUFDWixVQUNyQ3FCLGdCQUFnQkYsVUFBVVgsT0FBTyxJQUNqQ2MsaUJBQWlCRixXQUFXWixPQUFPLElBQ25DZSwyQkFBMkJGLGNBQWNHLGFBQWEsSUFDdERDLDRCQUE0QkgsZUFBZUUsYUFBYTtRQUU5RCxJQUFJLENBQUNELDBCQUEwQjtZQUM3QixNQUFNRyxrQkFBa0JQLFVBQVVGLFNBQVMsSUFDckNVLFVBQVUsQ0FBQyxLQUFLLEVBQUVELGdCQUFnQix1QkFBdUIsRUFBRUwsY0FBYyw2QkFBNkIsRUFBRU8sNEJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQzdIQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE9BQU9kLEtBQUtnQjtRQUNkO1FBRUEsSUFBSSxDQUFDSiwyQkFBMkI7WUFDOUIsTUFBTU8sbUJBQW1CWixXQUFXSCxTQUFTLElBQ3ZDVSxVQUFVLENBQUMsS0FBSyxFQUFFSyxpQkFBaUIsd0JBQXdCLEVBQUVWLGVBQWUsNkJBQTZCLEVBQUVNLDRCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUNoSUMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPZCxLQUFLZ0I7UUFDZDtRQUVBLE1BQU1JLDBCQUEwQmQsVUFBVWUsaUJBQWlCLElBQ3JEQywyQkFBMkJmLFdBQVdjLGlCQUFpQixJQUN2REUsY0FBYUgseUJBQ2JJLGVBQWVGLDBCQUNmRyxVQUFVLElBQUksQ0FBQ2pDLFdBQVcsR0FDYitCLGVBQWVDLGVBQ2JELGVBQWVDO1FBRXBDdEIsUUFBUXdCLElBQUFBLHVCQUFnQixFQUFDRCxTQUFTdEM7UUFFbEMsTUFBTXdDLGNBQWN6QixNQUFNRSxTQUFTO1FBRW5DakIsUUFBUXlDLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFekIsa0JBQWtCLG9CQUFvQixFQUFFd0IsWUFBWSxFQUFFLENBQUM7UUFFMUYsT0FBTzFCLFFBQVFDO0lBQ2pCO0lBRUEsT0FBTzJCLE9BQU8sY0FBYztBQUM5QiJ9
@@ -30,7 +30,7 @@ const _default = (0, _elements.define)(class NegatedTerm extends _occamlanguages
30
30
  getTerm() {
31
31
  return this.term;
32
32
  }
33
- evaluate(context) {
33
+ evaluate(context, back, forward) {
34
34
  let value;
35
35
  const negatedTermString = this.getString(); ///
36
36
  context.trace(`Evaluating the '${negatedTermString}' negated value...`);
@@ -38,7 +38,7 @@ const _default = (0, _elements.define)(class NegatedTerm extends _occamlanguages
38
38
  const valueType = value.getType(), valueTypeBooleanType = valueType.isBooleanType();
39
39
  if (!valueTypeBooleanType) {
40
40
  const valueString = value.getString(), message = `The '${valueString}' left value's type is '${valueType}' when it should be of type '${_typeNames.BOOLEAN_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
41
- throw exception;
41
+ return back(exception);
42
42
  }
43
43
  let boolean;
44
44
  const primitiveValue = value.getPrimitiveValue();
@@ -47,9 +47,9 @@ const _default = (0, _elements.define)(class NegatedTerm extends _occamlanguages
47
47
  value = (0, _value.valueFromBoolean)(boolean, context);
48
48
  const valueString = value.getString();
49
49
  context.debug(`...evaluated the '${negatedTermString}' negated value as '${valueString}'.`);
50
- return value;
50
+ return forward(value);
51
51
  }
52
52
  static name = "NegatedTerm";
53
53
  });
54
54
 
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vbmVnYXRlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgQk9PTEVBTl9UWVBFX05BTUUgfSBmcm9tIFwiLi4vLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyB2YWx1ZUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTmVnYXRlZFRlcm0gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCB0ZXJtKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBuZWdhdGVkVGVybVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmVnYXRlZFRlcm1TdHJpbmd9JyBuZWdhdGVkIHZhbHVlLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudGVybS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVCb29sZWFuVHlwZSA9IHZhbHVlVHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyBsZWZ0IHZhbHVlJ3MgdHlwZSBpcyAnJHt2YWx1ZVR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGxldCBib29sZWFuO1xuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpO1xuXG4gICAgYm9vbGVhbiA9IHByaW1pdGl2ZVZhbHVlOyAvLy9cblxuICAgIGJvb2xlYW4gPSAhYm9vbGVhbjtcblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke25lZ2F0ZWRUZXJtU3RyaW5nfScgbmVnYXRlZCB2YWx1ZSBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk5lZ2F0ZWRUZXJtXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJOZWdhdGVkVGVybSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwidGVybSIsImdldFR5cGUiLCJnZXRUZXJtIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsIm5lZ2F0ZWRUZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJ2YWx1ZVR5cGVCb29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJCT09MRUFOX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiYm9vbGVhbiIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJ2YWx1ZUZyb21Cb29sZWFuIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7a0VBRUY7MEJBRUM7MkJBQ1c7dUJBQ0Q7Ozs7OztNQUVqQyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG9CQUFvQkMsdUJBQU87SUFDckQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLElBQUksQ0FBRTtRQUN6RCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsU0FBU1IsT0FBTyxFQUFFO1FBQ2hCLElBQUlTO1FBRUosTUFBTUMsb0JBQW9CLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFL0NYLFFBQVFZLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixrQkFBa0Isa0JBQWtCLENBQUM7UUFFdEVELFFBQVEsSUFBSSxDQUFDSixJQUFJLENBQUNHLFFBQVEsQ0FBQ1I7UUFFM0IsTUFBTWEsWUFBWUosTUFBTUgsT0FBTyxJQUN6QlEsdUJBQXVCRCxVQUFVRSxhQUFhO1FBRXBELElBQUksQ0FBQ0Qsc0JBQXNCO1lBQ3pCLE1BQU1FLGNBQWNQLE1BQU1FLFNBQVMsSUFDN0JNLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksd0JBQXdCLEVBQUVILFVBQVUsNkJBQTZCLEVBQUVLLDRCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUN0SEMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxNQUFNRTtRQUNSO1FBRUEsSUFBSUc7UUFFSixNQUFNQyxpQkFBaUJkLE1BQU1lLGlCQUFpQjtRQUU5Q0YsVUFBVUMsZ0JBQWdCLEdBQUc7UUFFN0JELFVBQVUsQ0FBQ0E7UUFFWGIsUUFBUWdCLElBQUFBLHVCQUFnQixFQUFDSCxTQUFTdEI7UUFFbEMsTUFBTWdCLGNBQWNQLE1BQU1FLFNBQVM7UUFFbkNYLFFBQVEwQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWhCLGtCQUFrQixvQkFBb0IsRUFBRU0sWUFBWSxFQUFFLENBQUM7UUFFMUYsT0FBT1A7SUFDVDtJQUVBLE9BQU9rQixPQUFPLGNBQWM7QUFDOUIifQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vbmVnYXRlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgQk9PTEVBTl9UWVBFX05BTUUgfSBmcm9tIFwiLi4vLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyB2YWx1ZUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTmVnYXRlZFRlcm0gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCB0ZXJtKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBuZWdhdGVkVGVybVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmVnYXRlZFRlcm1TdHJpbmd9JyBuZWdhdGVkIHZhbHVlLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudGVybS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVCb29sZWFuVHlwZSA9IHZhbHVlVHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyBsZWZ0IHZhbHVlJ3MgdHlwZSBpcyAnJHt2YWx1ZVR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBsZXQgYm9vbGVhbjtcblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKTtcblxuICAgIGJvb2xlYW4gPSBwcmltaXRpdmVWYWx1ZTsgLy8vXG5cbiAgICBib29sZWFuID0gIWJvb2xlYW47XG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtuZWdhdGVkVGVybVN0cmluZ30nIG5lZ2F0ZWQgdmFsdWUgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJOZWdhdGVkVGVybVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTmVnYXRlZFRlcm0iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsInRlcm0iLCJnZXRUeXBlIiwiZ2V0VGVybSIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsIm5lZ2F0ZWRUZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJ2YWx1ZVR5cGVCb29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJCT09MRUFOX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiYm9vbGVhbiIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJ2YWx1ZUZyb21Cb29sZWFuIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7a0VBRUY7MEJBRUM7MkJBQ1c7dUJBQ0Q7Ozs7OztNQUVqQyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG9CQUFvQkMsdUJBQU87SUFDckQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLElBQUksQ0FBRTtRQUN6RCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsU0FBU1IsT0FBTyxFQUFFUyxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMvQixJQUFJQztRQUVKLE1BQU1DLG9CQUFvQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRS9DYixRQUFRYyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsa0JBQWtCLGtCQUFrQixDQUFDO1FBRXRFRCxRQUFRLElBQUksQ0FBQ04sSUFBSSxDQUFDRyxRQUFRLENBQUNSO1FBRTNCLE1BQU1lLFlBQVlKLE1BQU1MLE9BQU8sSUFDekJVLHVCQUF1QkQsVUFBVUUsYUFBYTtRQUVwRCxJQUFJLENBQUNELHNCQUFzQjtZQUN6QixNQUFNRSxjQUFjUCxNQUFNRSxTQUFTLElBQzdCTSxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLHdCQUF3QixFQUFFSCxVQUFVLDZCQUE2QixFQUFFSyw0QkFBaUIsQ0FBQyxFQUFFLENBQUMsRUFDdEhDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsT0FBT1YsS0FBS1k7UUFDZDtRQUVBLElBQUlHO1FBRUosTUFBTUMsaUJBQWlCZCxNQUFNZSxpQkFBaUI7UUFFOUNGLFVBQVVDLGdCQUFnQixHQUFHO1FBRTdCRCxVQUFVLENBQUNBO1FBRVhiLFFBQVFnQixJQUFBQSx1QkFBZ0IsRUFBQ0gsU0FBU3hCO1FBRWxDLE1BQU1rQixjQUFjUCxNQUFNRSxTQUFTO1FBRW5DYixRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixrQkFBa0Isb0JBQW9CLEVBQUVNLFlBQVksRUFBRSxDQUFDO1FBRTFGLE9BQU9SLFFBQVFDO0lBQ2pCO0lBRUEsT0FBT2tCLE9BQU8sY0FBYztBQUM5QiJ9
@@ -65,24 +65,22 @@ const _default = (0, _elements.define)(class Term extends _occamlanguages.Elemen
65
65
  const type = this.getType(), booleanType = type.isBooleanType(), boolean = booleanType; ///
66
66
  return boolean;
67
67
  }
68
- evaluate(context) {
69
- let value;
68
+ evaluate(context, back, forward) {
70
69
  if (false) {
71
70
  ///
72
71
  } else if (this.variable !== null) {
73
- value = this.variable.evaluate(context);
72
+ return this.variable.evaluate(context, back, forward);
74
73
  } else if (this.primitive !== null) {
75
- value = this.primitive.evaluate(context);
74
+ return this.primitive.evaluate(context, back, forward);
76
75
  } else if (this.negatedTerm !== null) {
77
- value = this.negatedTerm.evaluate(context);
76
+ return this.negatedTerm.evaluate(context, back, forward);
78
77
  } else if (this.logicalTerm !== null) {
79
- value = this.logicalTerm.evaluate(context);
78
+ return this.logicalTerm.evaluate(context, back, forward);
80
79
  } else if (this.bracketedTerm !== null) {
81
- value = this.bracketedTerm.evaluate(context);
80
+ return this.bracketedTerm.evaluate(context, back, forward);
82
81
  } else if (this.comparisonTerm !== null) {
83
- value = this.comparisonTerm.evaluate(context);
82
+ return this.comparisonTerm.evaluate(context, back, forward);
84
83
  }
85
- return value;
86
84
  }
87
85
  isEqualTo(term) {
88
86
  let equalTo = false;
@@ -110,4 +108,4 @@ const _default = (0, _elements.define)(class Term extends _occamlanguages.Elemen
110
108
  }
111
109
  });
112
110
 
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Rlcm0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVGVybSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUsIG5lZ2F0ZWRUZXJtLCBsb2dpY2FsVGVybSwgYnJhY2tldGVkVGVybSwgY29tcGFyaXNvblRlcm0pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMucHJpbWl0aXZlID0gcHJpbWl0aXZlO1xuICAgIHRoaXMubmVnYXRlZFRlcm0gPSBuZWdhdGVkVGVybTtcbiAgICB0aGlzLmxvZ2ljYWxUZXJtID0gbG9naWNhbFRlcm07XG4gICAgdGhpcy5icmFja2V0ZWRUZXJtID0gYnJhY2tldGVkVGVybTtcbiAgICB0aGlzLmNvbXBhcmlzb25UZXJtID0gY29tcGFyaXNvblRlcm07XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFByaW1pdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmltaXRpdmU7XG4gIH1cblxuICBnZXROZWdhdGVkVGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkVGVybTtcbiAgfVxuXG4gIGdldExvZ2ljYWxUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLmxvZ2ljYWxUZXJtO1xuICB9XG5cbiAgZ2V0QnJlZWRpbmdUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLmJyYWNrZXRlZFRlcm07XG4gIH1cblxuICBnZXRDb21wYXJpc29uVGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb21wYXJpc29uVGVybTtcbiAgfVxuXG4gIGdldFByaW1pdGl2ZVZhbHVlKCkge1xuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGhpcy5wcmltaXRpdmUuZ2V0VmFsdWUoKTtcblxuICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudmFyaWFibGUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnByaW1pdGl2ZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5lZ2F0ZWRUZXJtICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5uZWdhdGVkVGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxvZ2ljYWxUZXJtICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5sb2dpY2FsVGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJyYWNrZXRlZFRlcm0gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmJyYWNrZXRlZFRlcm0uZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wYXJpc29uVGVybSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuY29tcGFyaXNvblRlcm0uZ2V0VHlwZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgaXNCb29sZWFuKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldFR5cGUoKSxcbiAgICAgICAgICBib29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBib29sZWFuVHlwZTsgIC8vL1xuXG4gICAgcmV0dXJuIGJvb2xlYW47XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMucHJpbWl0aXZlLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5uZWdhdGVkVGVybSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLm5lZ2F0ZWRUZXJtLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sb2dpY2FsVGVybSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmxvZ2ljYWxUZXJtLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5icmFja2V0ZWRUZXJtICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuYnJhY2tldGVkVGVybS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tcGFyaXNvblRlcm0gIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5jb21wYXJpc29uVGVybS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBpc0VxdWFsVG8odGVybSkge1xuICAgIGxldCBlcXVhbFRvID0gZmFsc2U7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGUgPSB0ZXJtLmdldFZhcmlhYmxlKCk7XG5cbiAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBlcXVhbFRvID0gdGhpcy52YXJpYWJsZS5pc0VxdWFsVG8odmFyaWFibGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByaW1pdGl2ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlKCk7XG5cbiAgICAgIGlmIChwcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgICAgZXF1YWxUbyA9IHRoaXMucHJpbWl0aXZlLmlzRXF1YWxUbyhwcmltaXRpdmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRlcm1cIjtcblxuICBzdGF0aWMgZnJvbVByaW1pdGl2ZShwcmltaXRpdmUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBwcmltaXRpdmVTdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAvLy9cbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgICAgbmVnYXRlZFRlcm0gPSBudWxsLFxuICAgICAgICAgIGxvZ2ljYWxUZXJtID0gbnVsbCxcbiAgICAgICAgICBicmFja2V0ZWRUZXJtID0gbnVsbCxcbiAgICAgICAgICBjb21wYXJpc29uVGVybSA9IG51bGw7XG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHRlcm0gPSBuZXcgVGVybShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUsIG5lZ2F0ZWRUZXJtLCBsb2dpY2FsVGVybSwgYnJhY2tldGVkVGVybSwgY29tcGFyaXNvblRlcm0pO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlRlcm0iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJwcmltaXRpdmUiLCJuZWdhdGVkVGVybSIsImxvZ2ljYWxUZXJtIiwiYnJhY2tldGVkVGVybSIsImNvbXBhcmlzb25UZXJtIiwiZ2V0VmFyaWFibGUiLCJnZXRQcmltaXRpdmUiLCJnZXROZWdhdGVkVGVybSIsImdldExvZ2ljYWxUZXJtIiwiZ2V0QnJlZWRpbmdUZXJtIiwiZ2V0Q29tcGFyaXNvblRlcm0iLCJnZXRQcmltaXRpdmVWYWx1ZSIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0VmFsdWUiLCJnZXRUeXBlIiwidHlwZSIsImlzQm9vbGVhbiIsImJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsImJvb2xlYW4iLCJldmFsdWF0ZSIsInZhbHVlIiwiaXNFcXVhbFRvIiwidGVybSIsImVxdWFsVG8iLCJuYW1lIiwiZnJvbVByaW1pdGl2ZSIsInByaW1pdGl2ZVN0cmluZyIsImdldFN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7Z0NBSndCOzBCQUVEO01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsYUFBYUMsdUJBQU87SUFDOUMsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLGFBQWEsRUFBRUMsY0FBYyxDQUFFO1FBQzNILEtBQUssQ0FBQ1QsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0Ms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
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Rlcm0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVGVybSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUsIG5lZ2F0ZWRUZXJtLCBsb2dpY2FsVGVybSwgYnJhY2tldGVkVGVybSwgY29tcGFyaXNvblRlcm0pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMucHJpbWl0aXZlID0gcHJpbWl0aXZlO1xuICAgIHRoaXMubmVnYXRlZFRlcm0gPSBuZWdhdGVkVGVybTtcbiAgICB0aGlzLmxvZ2ljYWxUZXJtID0gbG9naWNhbFRlcm07XG4gICAgdGhpcy5icmFja2V0ZWRUZXJtID0gYnJhY2tldGVkVGVybTtcbiAgICB0aGlzLmNvbXBhcmlzb25UZXJtID0gY29tcGFyaXNvblRlcm07XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFByaW1pdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmltaXRpdmU7XG4gIH1cblxuICBnZXROZWdhdGVkVGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkVGVybTtcbiAgfVxuXG4gIGdldExvZ2ljYWxUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLmxvZ2ljYWxUZXJtO1xuICB9XG5cbiAgZ2V0QnJlZWRpbmdUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLmJyYWNrZXRlZFRlcm07XG4gIH1cblxuICBnZXRDb21wYXJpc29uVGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb21wYXJpc29uVGVybTtcbiAgfVxuXG4gIGdldFByaW1pdGl2ZVZhbHVlKCkge1xuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGhpcy5wcmltaXRpdmUuZ2V0VmFsdWUoKTtcblxuICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudmFyaWFibGUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnByaW1pdGl2ZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5lZ2F0ZWRUZXJtICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5uZWdhdGVkVGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxvZ2ljYWxUZXJtICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5sb2dpY2FsVGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJyYWNrZXRlZFRlcm0gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmJyYWNrZXRlZFRlcm0uZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wYXJpc29uVGVybSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuY29tcGFyaXNvblRlcm0uZ2V0VHlwZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgaXNCb29sZWFuKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldFR5cGUoKSxcbiAgICAgICAgICBib29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBib29sZWFuVHlwZTsgIC8vL1xuXG4gICAgcmV0dXJuIGJvb2xlYW47XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnByaW1pdGl2ZS5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRlZFRlcm0gIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZWRUZXJtLmV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sb2dpY2FsVGVybSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMubG9naWNhbFRlcm0uZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJyYWNrZXRlZFRlcm0gIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmJyYWNrZXRlZFRlcm0uZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBhcmlzb25UZXJtICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJpc29uVGVybS5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9XG4gIH1cblxuICBpc0VxdWFsVG8odGVybSkge1xuICAgIGxldCBlcXVhbFRvID0gZmFsc2U7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGUgPSB0ZXJtLmdldFZhcmlhYmxlKCk7XG5cbiAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBlcXVhbFRvID0gdGhpcy52YXJpYWJsZS5pc0VxdWFsVG8odmFyaWFibGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByaW1pdGl2ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlKCk7XG5cbiAgICAgIGlmIChwcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgICAgZXF1YWxUbyA9IHRoaXMucHJpbWl0aXZlLmlzRXF1YWxUbyhwcmltaXRpdmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRlcm1cIjtcblxuICBzdGF0aWMgZnJvbVByaW1pdGl2ZShwcmltaXRpdmUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBwcmltaXRpdmVTdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAvLy9cbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgICAgbmVnYXRlZFRlcm0gPSBudWxsLFxuICAgICAgICAgIGxvZ2ljYWxUZXJtID0gbnVsbCxcbiAgICAgICAgICBicmFja2V0ZWRUZXJtID0gbnVsbCxcbiAgICAgICAgICBjb21wYXJpc29uVGVybSA9IG51bGw7XG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHRlcm0gPSBuZXcgVGVybShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUsIG5lZ2F0ZWRUZXJtLCBsb2dpY2FsVGVybSwgYnJhY2tldGVkVGVybSwgY29tcGFyaXNvblRlcm0pO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlRlcm0iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJwcmltaXRpdmUiLCJuZWdhdGVkVGVybSIsImxvZ2ljYWxUZXJtIiwiYnJhY2tldGVkVGVybSIsImNvbXBhcmlzb25UZXJtIiwiZ2V0VmFyaWFibGUiLCJnZXRQcmltaXRpdmUiLCJnZXROZWdhdGVkVGVybSIsImdldExvZ2ljYWxUZXJtIiwiZ2V0QnJlZWRpbmdUZXJtIiwiZ2V0Q29tcGFyaXNvblRlcm0iLCJnZXRQcmltaXRpdmVWYWx1ZSIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0VmFsdWUiLCJnZXRUeXBlIiwidHlwZSIsImlzQm9vbGVhbiIsImJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsImJvb2xlYW4iLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwiaXNFcXVhbFRvIiwidGVybSIsImVxdWFsVG8iLCJuYW1lIiwiZnJvbVByaW1pdGl2ZSIsInByaW1pdGl2ZVN0cmluZyIsImdldFN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7Z0NBSndCOzBCQUVEO01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsYUFBYUMsdUJBQU87SUFDOUMsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLGFBQWEsRUFBRUMsY0FBYyxDQUFFO1FBQzNILEtBQUssQ0FBQ1QsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNq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
@@ -52,6 +52,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
52
52
  }
53
53
  return newObj;
54
54
  }
55
+ const { map } = _occamlanguages.continuationUtilities;
55
56
  const _default = (0, _elements.define)(class Terms extends _occamlanguages.Element {
56
57
  constructor(context, string, node, breakPoint, array){
57
58
  super(context, string, node, breakPoint);
@@ -71,20 +72,18 @@ const _default = (0, _elements.define)(class Terms extends _occamlanguages.Eleme
71
72
  addTerm(term) {
72
73
  this.array.push(term);
73
74
  }
74
- mapTerm(callback) {
75
- return this.array.map(callback);
75
+ mapTerm(callback, back, forward) {
76
+ return map(this.array, callback, back, forward);
76
77
  }
77
- forEachTerm(callback) {
78
- this.array.forEach(callback);
79
- }
80
- evaluate(context) {
81
- const valuesArray = this.mapTerm((term)=>{
82
- const value = term.evaluate(context);
83
- return value;
84
- }), valuesString = (0, _string.valuesStringFromValuesArray)(valuesArray, context), string = valuesString, array = valuesArray, node = null, breakPoint = null;
85
- context = null;
86
- const { Values } = _elements.default, values = new Values(context, string, node, breakPoint, array);
87
- return values;
78
+ evaluate(context, back, forwarsd) {
79
+ return this.mapTerm((term, back, forward)=>{
80
+ return term.evaluate(context, back, forward);
81
+ }, back, (valuesArray)=>{
82
+ const valuesString = (0, _string.valuesStringFromValuesArray)(valuesArray, context), string = valuesString, array = valuesArray, node = null, breakPoint = null;
83
+ context = null;
84
+ const { Values } = _elements.default, values = new Values(context, string, node, breakPoint, array);
85
+ return forwarsd(values);
86
+ });
88
87
  }
89
88
  static name = "Terms";
90
89
  static fromTerm(term, context) {
@@ -97,4 +96,4 @@ const _default = (0, _elements.define)(class Terms extends _occamlanguages.Eleme
97
96
  }
98
97
  });
99
98
 
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Rlcm1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSwgdmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFRlcm1zIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0VGVybShpbmRleCkge1xuICAgIGNvbnN0IHRlcm0gPSB0aGlzLmFycmF5W2luZGV4XSB8fCBudWxsOyAgLy8vXG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIGFkZFRlcm0odGVybSkge1xuICAgIHRoaXMuYXJyYXkucHVzaCh0ZXJtKTtcbiAgfVxuXG4gIG1hcFRlcm0oY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkubWFwKGNhbGxiYWNrKTsgfVxuXG4gIGZvckVhY2hUZXJtKGNhbGxiYWNrKSB7IHRoaXMuYXJyYXkuZm9yRWFjaChjYWxsYmFjayk7IH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVzQXJyYXkgPSB0aGlzLm1hcFRlcm0oKHRlcm0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGVybS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHZhbHVlc1N0cmluZyA9IHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSh2YWx1ZXNBcnJheSwgY29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gdmFsdWVzU3RyaW5nLCAvLy9cbiAgICAgICAgICBhcnJheSA9IHZhbHVlc0FycmF5LCAvLy9cbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgeyBWYWx1ZXMgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHZhbHVlcyA9IG5ldyBWYWx1ZXMoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSk7XG5cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRlcm1zXCI7XG5cbiAgc3RhdGljIGZyb21UZXJtKHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0ZXJtc0FycmF5ID0gW1xuICAgICAgICAgICAgdGVybVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdGVybXNTdHJpbmcgPSB0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5KHRlcm1zQXJyYXksIGNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHRlcm1zU3RyaW5nLCAvLy9cbiAgICAgICAgICBhcnJheSA9IHRlcm1zQXJyYXksIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB0ZXJtcyA9IG5ldyBUZXJtcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KTtcblxuICAgIHJldHVybiB0ZXJtcztcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVGVybXMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldFRlcm0iLCJpbmRleCIsInRlcm0iLCJhZGRUZXJtIiwicHVzaCIsIm1hcFRlcm0iLCJjYWxsYmFjayIsIm1hcCIsImZvckVhY2hUZXJtIiwiZm9yRWFjaCIsImV2YWx1YXRlIiwidmFsdWVzQXJyYXkiLCJ2YWx1ZSIsInZhbHVlc1N0cmluZyIsInZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSIsIlZhbHVlcyIsImVsZW1lbnRzIiwidmFsdWVzIiwibmFtZSIsImZyb21UZXJtIiwidGVybXNBcnJheSIsInRlcm1zU3RyaW5nIiwidGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSIsInRlcm1zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztnQ0FQd0I7a0VBRUg7d0JBR2tEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFFdkUsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBRTtRQUNwRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0QsS0FBSztJQUNuQjtJQUVBRSxZQUFZO1FBQ1YsTUFBTUMsU0FBUyxJQUFJLENBQUNILEtBQUssQ0FBQ0csTUFBTTtRQUVoQyxPQUFPQTtJQUNUO0lBRUFDLFFBQVFDLEtBQUssRUFBRTtRQUNiLE1BQU1DLE9BQU8sSUFBSSxDQUFDTixLQUFLLENBQUNLLE1BQU0sSUFBSSxNQUFPLEdBQUc7UUFFNUMsT0FBT0M7SUFDVDtJQUVBQyxRQUFRRCxJQUFJLEVBQUU7UUFDWixJQUFJLENBQUNOLEtBQUssQ0FBQ1EsSUFBSSxDQUFDRjtJQUNsQjtJQUVBRyxRQUFRQyxRQUFRLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQ1YsS0FBSyxDQUFDVyxHQUFHLENBQUNEO0lBQVc7SUFFckRFLFlBQVlGLFFBQVEsRUFBRTtRQUFFLElBQUksQ0FBQ1YsS0FBSyxDQUFDYSxPQUFPLENBQUNIO0lBQVc7SUFFdERJLFNBQVNsQixPQUFPLEVBQUU7UUFDaEIsTUFBTW1CLGNBQWMsSUFBSSxDQUFDTixPQUFPLENBQUMsQ0FBQ0g7WUFDMUIsTUFBTVUsUUFBUVYsS0FBS1EsUUFBUSxDQUFDbEI7WUFFNUIsT0FBT29CO1FBQ1QsSUFDQUMsZUFBZUMsSUFBQUEsbUNBQTJCLEVBQUNILGFBQWFuQixVQUN4REMsU0FBU29CLGNBQ1RqQixRQUFRZSxhQUNSakIsT0FBTyxNQUNQQyxhQUFhO1FBRW5CSCxVQUFVO1FBRVYsTUFBTSxFQUFFdUIsTUFBTSxFQUFFLEdBQUdDLGlCQUFRLEVBQ3JCQyxTQUFTLElBQUlGLE9BQU92QixTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztRQUU3RCxPQUFPcUI7SUFDVDtJQUVBLE9BQU9DLE9BQU8sUUFBUTtJQUV0QixPQUFPQyxTQUFTakIsSUFBSSxFQUFFVixPQUFPLEVBQUU7UUFDN0IsTUFBTTRCLGFBQWE7WUFDWGxCO1NBQ0QsRUFDRG1CLGNBQWNDLElBQUFBLGlDQUF5QixFQUFDRixZQUFZNUIsVUFDcERDLFNBQVM0QixhQUNUekIsUUFBUXdCLFlBQ1IxQixPQUFPLE1BQ1BDLGFBQWE7UUFFbkJILFVBQVU7UUFFVixNQUFNK0IsUUFBUSxJQUFJakMsTUFBTUUsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUM7UUFFM0QsT0FBTzJCO0lBQ1Q7QUFDRiJ9
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Rlcm1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5LCB2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5jb25zdCB7IG1hcCB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVGVybXMgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmFycmF5Lmxlbmd0aDtcblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBnZXRUZXJtKGluZGV4KSB7XG4gICAgY29uc3QgdGVybSA9IHRoaXMuYXJyYXlbaW5kZXhdIHx8IG51bGw7ICAvLy9cblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgYWRkVGVybSh0ZXJtKSB7XG4gICAgdGhpcy5hcnJheS5wdXNoKHRlcm0pO1xuICB9XG5cbiAgbWFwVGVybShjYWxsYmFjaywgYmFjaywgZm9yd2FyZCkge1xuICAgIHJldHVybiBtYXAodGhpcy5hcnJheSwgY2FsbGJhY2ssIGJhY2ssIGZvcndhcmQpO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2Fyc2QpIHtcbiAgICByZXR1cm4gdGhpcy5tYXBUZXJtKCh0ZXJtLCBiYWNrLCBmb3J3YXJkKSA9PiB7XG4gICAgICByZXR1cm4gdGVybS5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9LCBiYWNrLCAodmFsdWVzQXJyYXkpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlc1N0cmluZyA9IHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSh2YWx1ZXNBcnJheSwgY29udGV4dCksXG4gICAgICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICAgICAgYXJyYXkgPSB2YWx1ZXNBcnJheSwgLy8vXG4gICAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgY29uc3QgeyBWYWx1ZXMgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgdmFsdWVzID0gbmV3IFZhbHVlcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KTtcblxuICAgICAgcmV0dXJuIGZvcndhcnNkKHZhbHVlcyk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVGVybXNcIjtcblxuICBzdGF0aWMgZnJvbVRlcm0odGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHRlcm1zQXJyYXkgPSBbXG4gICAgICAgICAgICB0ZXJtXG4gICAgICAgICAgXSxcbiAgICAgICAgICB0ZXJtc1N0cmluZyA9IHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSwgY29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gdGVybXNTdHJpbmcsIC8vL1xuICAgICAgICAgIGFycmF5ID0gdGVybXNBcnJheSwgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHRlcm1zID0gbmV3IFRlcm1zKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpO1xuXG4gICAgcmV0dXJuIHRlcm1zO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJtYXAiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJkZWZpbmUiLCJUZXJtcyIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJhcnJheSIsImdldEFycmF5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiZ2V0VGVybSIsImluZGV4IiwidGVybSIsImFkZFRlcm0iLCJwdXNoIiwibWFwVGVybSIsImNhbGxiYWNrIiwiYmFjayIsImZvcndhcmQiLCJldmFsdWF0ZSIsImZvcndhcnNkIiwidmFsdWVzQXJyYXkiLCJ2YWx1ZXNTdHJpbmciLCJ2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkiLCJWYWx1ZXMiLCJlbGVtZW50cyIsInZhbHVlcyIsIm5hbWUiLCJmcm9tVGVybSIsInRlcm1zQXJyYXkiLCJ0ZXJtc1N0cmluZyIsInRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkiLCJ0ZXJtcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0NBVCtDO2tFQUUxQjt3QkFHa0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV2RSxNQUFNLEVBQUVBLEdBQUcsRUFBRSxHQUFHQyxxQ0FBcUI7TUFFckMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBRTtRQUNwRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0QsS0FBSztJQUNuQjtJQUVBRSxZQUFZO1FBQ1YsTUFBTUMsU0FBUyxJQUFJLENBQUNILEtBQUssQ0FBQ0csTUFBTTtRQUVoQyxPQUFPQTtJQUNUO0lBRUFDLFFBQVFDLEtBQUssRUFBRTtRQUNiLE1BQU1DLE9BQU8sSUFBSSxDQUFDTixLQUFLLENBQUNLLE1BQU0sSUFBSSxNQUFPLEdBQUc7UUFFNUMsT0FBT0M7SUFDVDtJQUVBQyxRQUFRRCxJQUFJLEVBQUU7UUFDWixJQUFJLENBQUNOLEtBQUssQ0FBQ1EsSUFBSSxDQUFDRjtJQUNsQjtJQUVBRyxRQUFRQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQy9CLE9BQU9yQixJQUFJLElBQUksQ0FBQ1MsS0FBSyxFQUFFVSxVQUFVQyxNQUFNQztJQUN6QztJQUVBQyxTQUFTakIsT0FBTyxFQUFFZSxJQUFJLEVBQUVHLFFBQVEsRUFBRTtRQUNoQyxPQUFPLElBQUksQ0FBQ0wsT0FBTyxDQUFDLENBQUNILE1BQU1LLE1BQU1DO1lBQy9CLE9BQU9OLEtBQUtPLFFBQVEsQ0FBQ2pCLFNBQVNlLE1BQU1DO1FBQ3RDLEdBQUdELE1BQU0sQ0FBQ0k7WUFDUixNQUFNQyxlQUFlQyxJQUFBQSxtQ0FBMkIsRUFBQ0YsYUFBYW5CLFVBQ3hEQyxTQUFTbUIsY0FDVGhCLFFBQVFlLGFBQ1JqQixPQUFPLE1BQ1BDLGFBQWE7WUFFbkJILFVBQVU7WUFFVixNQUFNLEVBQUVzQixNQUFNLEVBQUUsR0FBR0MsaUJBQVEsRUFDckJDLFNBQVMsSUFBSUYsT0FBT3RCLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDO1lBRTdELE9BQU9jLFNBQVNNO1FBQ2xCO0lBQ0Y7SUFFQSxPQUFPQyxPQUFPLFFBQVE7SUFFdEIsT0FBT0MsU0FBU2hCLElBQUksRUFBRVYsT0FBTyxFQUFFO1FBQzdCLE1BQU0yQixhQUFhO1lBQ1hqQjtTQUNELEVBQ0RrQixjQUFjQyxJQUFBQSxpQ0FBeUIsRUFBQ0YsWUFBWTNCLFVBQ3BEQyxTQUFTMkIsYUFDVHhCLFFBQVF1QixZQUNSekIsT0FBTyxNQUNQQyxhQUFhO1FBRW5CSCxVQUFVO1FBRVYsTUFBTThCLFFBQVEsSUFBSWhDLE1BQU1FLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDO1FBRTNELE9BQU8wQjtJQUNUO0FBQ0YifQ==
@@ -39,7 +39,7 @@ const _default = (0, _elements.define)(class Ternary extends _occamlanguages.Ele
39
39
  const value = this.term.evaluate(context), valueType = value.getType(), valueTypeBooleanType = valueType.isBooleanType();
40
40
  if (!valueTypeBooleanType) {
41
41
  const valueString = value.getString(), message = `The '${valueString}' value's type is '${valueType}' when it should be of type '${_typeNames.BOOLEAN_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
42
- throw exception;
42
+ return back(exception);
43
43
  }
44
44
  const primitiveValue = value.getPrimitiveValue(), boolean = primitiveValue, expression = boolean ? this.ifExpression : this.elseExpression;
45
45
  return expression.evaluate(context, back, (value)=>{
@@ -51,4 +51,4 @@ const _default = (0, _elements.define)(class Ternary extends _occamlanguages.Ele
51
51
  static name = "Ternary";
52
52
  });
53
53
 
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Rlcm5hcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IEJPT0xFQU5fVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVGVybmFyeSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIGlmRXhwcmVzc2lvbiwgZWxzZUV4cHJlc3Npb24pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgICB0aGlzLmlmRXhwcmVzc2lvbiA9IGlmRXhwcmVzc2lvbjtcbiAgICB0aGlzLmVsc2VFeHByZXNzaW9uID0gZWxzZUV4cHJlc3Npb247XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRJZkJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLmlmRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldEVsc2VCbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5lbHNlRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB0ZXJuYXJ5U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt0ZXJuYXJ5U3RyaW5nfScgdGVybmFyeS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnRlcm0uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZUJvb2xlYW5UeXBlID0gdmFsdWVUeXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgdHlwZSBpcyAnJHt2YWx1ZVR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBib29sZWFuID0gcHJpbWl0aXZlVmFsdWUsIC8vL1xuICAgICAgICAgIGV4cHJlc3Npb24gPSBib29sZWFuID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlmRXhwcmVzc2lvbiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsc2VFeHByZXNzaW9uO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCwgYmFjaywgKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3Rlcm5hcnlTdHJpbmd9JyB0ZXJuYXJ5IGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJUZXJuYXJ5XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJUZXJuYXJ5IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInRlcm0iLCJpZkV4cHJlc3Npb24iLCJlbHNlRXhwcmVzc2lvbiIsImdldFRlcm0iLCJnZXRJZkJsb2NrIiwiZ2V0RWxzZUJsb2NrIiwiZXZhbHVhdGUiLCJiYWNrIiwiZm9yd2FyZCIsInRlcm5hcnlTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwiYm9vbGVhbiIsImV4cHJlc3Npb24iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjtrRUFFRjswQkFFQzsyQkFDVzs7Ozs7O01BRWxDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsZ0JBQWdCQyx1QkFBTztJQUNqRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsWUFBWSxFQUFFQyxjQUFjLENBQUU7UUFDakYsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFlBQVksR0FBR0E7UUFDcEIsSUFBSSxDQUFDQyxjQUFjLEdBQUdBO0lBQ3hCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNILFlBQVk7SUFDMUI7SUFFQUksZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDSCxjQUFjO0lBQzVCO0lBRUFJLFNBQVNWLE9BQU8sRUFBRVcsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsTUFBTUMsZ0JBQWdCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFM0NkLFFBQVFlLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixjQUFjLFlBQVksQ0FBQztRQUU1RCxNQUFNRyxRQUFRLElBQUksQ0FBQ1osSUFBSSxDQUFDTSxRQUFRLENBQUNWLFVBQzNCaUIsWUFBWUQsTUFBTUUsT0FBTyxJQUN6QkMsdUJBQXVCRixVQUFVRyxhQUFhO1FBRXBELElBQUksQ0FBQ0Qsc0JBQXNCO1lBQ3pCLE1BQU1FLGNBQWNMLE1BQU1GLFNBQVMsSUFDN0JRLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksbUJBQW1CLEVBQUVKLFVBQVUsNkJBQTZCLEVBQUVNLDRCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUNqSEMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxNQUFNRTtRQUNSO1FBRUEsTUFBTUcsaUJBQWlCWCxNQUFNWSxpQkFBaUIsSUFDeENDLFVBQVVGLGdCQUNWRyxhQUFhRCxVQUNFLElBQUksQ0FBQ3hCLFlBQVksR0FDZixJQUFJLENBQUNDLGNBQWM7UUFFMUMsT0FBT3dCLFdBQVdwQixRQUFRLENBQUNWLFNBQVNXLE1BQU0sQ0FBQ0s7WUFDekMsTUFBTUssY0FBY0wsTUFBTUYsU0FBUztZQUVuQ2QsUUFBUStCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFbEIsY0FBYyxjQUFjLEVBQUVRLFlBQVksRUFBRSxDQUFDO1lBRWhGLE9BQU9ULFFBQVFJO1FBQ2pCO0lBQ0Y7SUFFQSxPQUFPZ0IsT0FBTyxVQUFVO0FBQzFCIn0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Rlcm5hcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IEJPT0xFQU5fVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVGVybmFyeSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIGlmRXhwcmVzc2lvbiwgZWxzZUV4cHJlc3Npb24pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgICB0aGlzLmlmRXhwcmVzc2lvbiA9IGlmRXhwcmVzc2lvbjtcbiAgICB0aGlzLmVsc2VFeHByZXNzaW9uID0gZWxzZUV4cHJlc3Npb247XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRJZkJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLmlmRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldEVsc2VCbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5lbHNlRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB0ZXJuYXJ5U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt0ZXJuYXJ5U3RyaW5nfScgdGVybmFyeS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnRlcm0uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZUJvb2xlYW5UeXBlID0gdmFsdWVUeXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgdHlwZSBpcyAnJHt2YWx1ZVR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgYm9vbGVhbiA9IHByaW1pdGl2ZVZhbHVlLCAvLy9cbiAgICAgICAgICBleHByZXNzaW9uID0gYm9vbGVhbiA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pZkV4cHJlc3Npb24gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbHNlRXhwcmVzc2lvbjtcblxuICAgIHJldHVybiBleHByZXNzaW9uLmV2YWx1YXRlKGNvbnRleHQsIGJhY2ssICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt0ZXJuYXJ5U3RyaW5nfScgdGVybmFyeSBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVGVybmFyeVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVGVybmFyeSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwiaWZFeHByZXNzaW9uIiwiZWxzZUV4cHJlc3Npb24iLCJnZXRUZXJtIiwiZ2V0SWZCbG9jayIsImdldEVsc2VCbG9jayIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ0ZXJuYXJ5U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVCb29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJCT09MRUFOX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsImJvb2xlYW4iLCJleHByZXNzaW9uIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztnQ0FQd0I7a0VBRUY7MEJBRUM7MkJBQ1c7Ozs7OztNQUVsQyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGdCQUFnQkMsdUJBQU87SUFDakQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLFlBQVksRUFBRUMsY0FBYyxDQUFFO1FBQ2pGLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxZQUFZLEdBQUdBO1FBQ3BCLElBQUksQ0FBQ0MsY0FBYyxHQUFHQTtJQUN4QjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDSCxZQUFZO0lBQzFCO0lBRUFJLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0gsY0FBYztJQUM1QjtJQUVBSSxTQUFTVixPQUFPLEVBQUVXLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQy9CLE1BQU1DLGdCQUFnQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRTNDZCxRQUFRZSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsY0FBYyxZQUFZLENBQUM7UUFFNUQsTUFBTUcsUUFBUSxJQUFJLENBQUNaLElBQUksQ0FBQ00sUUFBUSxDQUFDVixVQUMzQmlCLFlBQVlELE1BQU1FLE9BQU8sSUFDekJDLHVCQUF1QkYsVUFBVUcsYUFBYTtRQUVwRCxJQUFJLENBQUNELHNCQUFzQjtZQUN6QixNQUFNRSxjQUFjTCxNQUFNRixTQUFTLElBQzdCUSxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLG1CQUFtQixFQUFFSixVQUFVLDZCQUE2QixFQUFFTSw0QkFBaUIsQ0FBQyxFQUFFLENBQUMsRUFDakhDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsT0FBT1gsS0FBS2E7UUFDZDtRQUVBLE1BQU1HLGlCQUFpQlgsTUFBTVksaUJBQWlCLElBQ3hDQyxVQUFVRixnQkFDVkcsYUFBYUQsVUFDRSxJQUFJLENBQUN4QixZQUFZLEdBQ2YsSUFBSSxDQUFDQyxjQUFjO1FBRTFDLE9BQU93QixXQUFXcEIsUUFBUSxDQUFDVixTQUFTVyxNQUFNLENBQUNLO1lBQ3pDLE1BQU1LLGNBQWNMLE1BQU1GLFNBQVM7WUFFbkNkLFFBQVErQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWxCLGNBQWMsY0FBYyxFQUFFUSxZQUFZLEVBQUUsQ0FBQztZQUVoRixPQUFPVCxRQUFRSTtRQUNqQjtJQUNGO0lBRUEsT0FBT2dCLE9BQU8sVUFBVTtBQUMxQiJ9
@@ -27,7 +27,7 @@ const _default = (0, _elements.define)(class ToInteger extends _occamlanguages.E
27
27
  getVariable() {
28
28
  return this.variable;
29
29
  }
30
- evaluate(context) {
30
+ evaluate(context, back, forward) {
31
31
  let value;
32
32
  const toIntegerString = this.getString(); ///
33
33
  context.trace(`Evaluating the '${toIntegerString}' function...`);
@@ -40,7 +40,7 @@ const _default = (0, _elements.define)(class ToInteger extends _occamlanguages.E
40
40
  case _typeNames.INTEGER_TYPE_NAME:
41
41
  {
42
42
  const message = `Cannot evaluate the '${toIntegerString}' function because the '${valueTypeName}' type of its argument is not supported.`, exception = _exception.default.fromMessage(message);
43
- throw exception;
43
+ return back(exception);
44
44
  }
45
45
  case _typeNames.STRING_TYPE_NAME:
46
46
  case _typeNames.NOMINAL_VALUE_TYPE_NAME:
@@ -48,7 +48,7 @@ const _default = (0, _elements.define)(class ToInteger extends _occamlanguages.E
48
48
  const valueString = value.getString(), boolean = _tryInteger.integerRegularExpresssion.test(valueString);
49
49
  if (!boolean) {
50
50
  const message = `Cannot evaluate the '${toIntegerString}' function because the '${valueTypeName}' value is not an integer.`, exception = _exception.default.fromMessage(message);
51
- throw exception;
51
+ return back(exception);
52
52
  }
53
53
  integer = Number(valueString);
54
54
  break;
@@ -57,9 +57,9 @@ const _default = (0, _elements.define)(class ToInteger extends _occamlanguages.E
57
57
  value = (0, _value.valueFromInteger)(integer);
58
58
  const valueString = value.getString();
59
59
  context.debug(`...evaluated the '${toIntegerString}' function as '${valueString}'.`);
60
- return value;
60
+ return forward(value);
61
61
  }
62
62
  static name = "ToInteger";
63
63
  });
64
64
 
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RvSW50ZWdlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tSW50ZWdlciB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcbmltcG9ydCB7IGludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24gfSBmcm9tIFwiLi90cnlJbnRlZ2VyXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFRvSW50ZWdlciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHRvSW50ZWdlclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3RvSW50ZWdlclN0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTmFtZSA9IHZhbHVlVHlwZS5nZXROYW1lKCk7XG5cbiAgICBsZXQgaW50ZWdlcjtcblxuICAgIHN3aXRjaCAodmFsdWVUeXBlTmFtZSkge1xuICAgICAgY2FzZSBMSVNUX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6XG4gICAgICBjYXNlIElOVEVHRVJfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdHlwZSBvZiBpdHMgYXJndW1lbnQgaXMgbm90IHN1cHBvcnRlZC5gLFxuICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFNUUklOR19UWVBFX05BTUU6XG4gICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgIGJvb2xlYW4gPSBpbnRlZ2VyUmVndWxhckV4cHJlc3NzaW9uLnRlc3QodmFsdWVTdHJpbmcpO1xuXG4gICAgICAgIGlmICghYm9vbGVhbikge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdmFsdWUgaXMgbm90IGFuIGludGVnZXIuYCxcbiAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICAgIH1cblxuICAgICAgICBpbnRlZ2VyID0gTnVtYmVyKHZhbHVlU3RyaW5nKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUludGVnZXIoaW50ZWdlcik7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRvSW50ZWdlclwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVG9JbnRlZ2VyIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiZ2V0VmFyaWFibGUiLCJldmFsdWF0ZSIsInZhbHVlIiwidG9JbnRlZ2VyU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTmFtZSIsImdldE5hbWUiLCJpbnRlZ2VyIiwiTElTVF9UWVBFX05BTUUiLCJCT09MRUFOX1RZUEVfTkFNRSIsIklOVEVHRVJfVFlQRV9OQU1FIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiU1RSSU5HX1RZUEVfTkFNRSIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwidmFsdWVTdHJpbmciLCJib29sZWFuIiwiaW50ZWdlclJlZ3VsYXJFeHByZXNzc2lvbiIsInRlc3QiLCJOdW1iZXIiLCJ2YWx1ZUZyb21JbnRlZ2VyIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQUE7OztnQ0FUd0I7a0VBRUY7MEJBRUM7dUJBQ1U7NEJBQ1M7MkJBQ3NFOzs7Ozs7TUFFaEgsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxDQUFFO1FBQ3ZELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsUUFBUTtJQUN0QjtJQUVBRSxTQUFTTixPQUFPLEVBQUU7UUFDaEIsSUFBSU87UUFFSixNQUFNQyxrQkFBa0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU5Q1QsUUFBUVUsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGdCQUFnQixhQUFhLENBQUM7UUFFL0RELFFBQVEsSUFBSSxDQUFDSCxRQUFRLENBQUNFLFFBQVEsQ0FBQ047UUFFL0IsTUFBTVcsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsZ0JBQWdCRixVQUFVRyxPQUFPO1FBRXZDLElBQUlDO1FBRUosT0FBUUY7WUFDTixLQUFLRyx5QkFBYztZQUNuQixLQUFLQyw0QkFBaUI7WUFDdEIsS0FBS0MsNEJBQWlCO2dCQUFFO29CQUN0QixNQUFNQyxVQUFVLENBQUMscUJBQXFCLEVBQUVYLGdCQUFnQix3QkFBd0IsRUFBRUssY0FBYyx3Q0FBd0MsQ0FBQyxFQUNuSU8sWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtvQkFFeEMsTUFBTUM7Z0JBQ1I7WUFFQSxLQUFLRywyQkFBZ0I7WUFDckIsS0FBS0Msa0NBQXVCO2dCQUFFO29CQUM1QixNQUFNQyxjQUFjbEIsTUFBTUUsU0FBUyxJQUM3QmlCLFVBQVVDLHFDQUF5QixDQUFDQyxJQUFJLENBQUNIO29CQUUvQyxJQUFJLENBQUNDLFNBQVM7d0JBQ1osTUFBTVAsVUFBVSxDQUFDLHFCQUFxQixFQUFFWCxnQkFBZ0Isd0JBQXdCLEVBQUVLLGNBQWMsMEJBQTBCLENBQUMsRUFDckhPLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7d0JBRXhDLE1BQU1DO29CQUNSO29CQUVBTCxVQUFVYyxPQUFPSjtvQkFFakI7Z0JBQ0Y7UUFDRjtRQUVBbEIsUUFBUXVCLElBQUFBLHVCQUFnQixFQUFDZjtRQUV6QixNQUFNVSxjQUFjbEIsTUFBTUUsU0FBUztRQUVuQ1QsUUFBUStCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFdkIsZ0JBQWdCLGVBQWUsRUFBRWlCLFlBQVksRUFBRSxDQUFDO1FBRW5GLE9BQU9sQjtJQUNUO0lBRUEsT0FBT3lCLE9BQU8sWUFBWTtBQUM1QiJ9
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RvSW50ZWdlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tSW50ZWdlciB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcbmltcG9ydCB7IGludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24gfSBmcm9tIFwiLi90cnlJbnRlZ2VyXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFRvSW50ZWdlciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHRvSW50ZWdlclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3RvSW50ZWdlclN0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTmFtZSA9IHZhbHVlVHlwZS5nZXROYW1lKCk7XG5cbiAgICBsZXQgaW50ZWdlcjtcblxuICAgIHN3aXRjaCAodmFsdWVUeXBlTmFtZSkge1xuICAgICAgY2FzZSBMSVNUX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6XG4gICAgICBjYXNlIElOVEVHRVJfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdHlwZSBvZiBpdHMgYXJndW1lbnQgaXMgbm90IHN1cHBvcnRlZC5gLFxuICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBTVFJJTkdfVFlQRV9OQU1FOlxuICAgICAgY2FzZSBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRToge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICBib29sZWFuID0gaW50ZWdlclJlZ3VsYXJFeHByZXNzc2lvbi50ZXN0KHZhbHVlU3RyaW5nKTtcblxuICAgICAgICBpZiAoIWJvb2xlYW4pIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYENhbm5vdCBldmFsdWF0ZSB0aGUgJyR7dG9JbnRlZ2VyU3RyaW5nfScgZnVuY3Rpb24gYmVjYXVzZSB0aGUgJyR7dmFsdWVUeXBlTmFtZX0nIHZhbHVlIGlzIG5vdCBhbiBpbnRlZ2VyLmAsXG4gICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGludGVnZXIgPSBOdW1iZXIodmFsdWVTdHJpbmcpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWVGcm9tSW50ZWdlcihpbnRlZ2VyKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3RvSW50ZWdlclN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVG9JbnRlZ2VyXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJUb0ludGVnZXIiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJnZXRWYXJpYWJsZSIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsInRvSW50ZWdlclN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZU5hbWUiLCJnZXROYW1lIiwiaW50ZWdlciIsIkxJU1RfVFlQRV9OQU1FIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJJTlRFR0VSX1RZUEVfTkFNRSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsInZhbHVlU3RyaW5nIiwiYm9vbGVhbiIsImludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24iLCJ0ZXN0IiwiTnVtYmVyIiwidmFsdWVGcm9tSW50ZWdlciIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0NBVHdCO2tFQUVGOzBCQUVDO3VCQUNVOzRCQUNTOzJCQUNzRTs7Ozs7O01BRWhILFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsQ0FBRTtRQUN2RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtJQUNsQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNELFFBQVE7SUFDdEI7SUFFQUUsU0FBU04sT0FBTyxFQUFFTyxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMvQixJQUFJQztRQUVKLE1BQU1DLGtCQUFrQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTlDWCxRQUFRWSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsZ0JBQWdCLGFBQWEsQ0FBQztRQUUvREQsUUFBUSxJQUFJLENBQUNMLFFBQVEsQ0FBQ0UsUUFBUSxDQUFDTjtRQUUvQixNQUFNYSxZQUFZSixNQUFNSyxPQUFPLElBQ3pCQyxnQkFBZ0JGLFVBQVVHLE9BQU87UUFFdkMsSUFBSUM7UUFFSixPQUFRRjtZQUNOLEtBQUtHLHlCQUFjO1lBQ25CLEtBQUtDLDRCQUFpQjtZQUN0QixLQUFLQyw0QkFBaUI7Z0JBQUU7b0JBQ3RCLE1BQU1DLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRVgsZ0JBQWdCLHdCQUF3QixFQUFFSyxjQUFjLHdDQUF3QyxDQUFDLEVBQ25JTyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO29CQUV4QyxPQUFPZCxLQUFLZTtnQkFDZDtZQUVBLEtBQUtHLDJCQUFnQjtZQUNyQixLQUFLQyxrQ0FBdUI7Z0JBQUU7b0JBQzVCLE1BQU1DLGNBQWNsQixNQUFNRSxTQUFTLElBQzdCaUIsVUFBVUMscUNBQXlCLENBQUNDLElBQUksQ0FBQ0g7b0JBRS9DLElBQUksQ0FBQ0MsU0FBUzt3QkFDWixNQUFNUCxVQUFVLENBQUMscUJBQXFCLEVBQUVYLGdCQUFnQix3QkFBd0IsRUFBRUssY0FBYywwQkFBMEIsQ0FBQyxFQUNySE8sWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDt3QkFFeEMsT0FBT2QsS0FBS2U7b0JBQ2Q7b0JBRUFMLFVBQVVjLE9BQU9KO29CQUVqQjtnQkFDRjtRQUNGO1FBRUFsQixRQUFRdUIsSUFBQUEsdUJBQWdCLEVBQUNmO1FBRXpCLE1BQU1VLGNBQWNsQixNQUFNRSxTQUFTO1FBRW5DWCxRQUFRaUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUV2QixnQkFBZ0IsZUFBZSxFQUFFaUIsWUFBWSxFQUFFLENBQUM7UUFFbkYsT0FBT25CLFFBQVFDO0lBQ2pCO0lBRUEsT0FBT3lCLE9BQU8sWUFBWTtBQUM1QiJ9
@@ -35,7 +35,7 @@ const _default = (0, _elements.define)(class TryInteger extends _occamlanguages.
35
35
  getVariable() {
36
36
  return this.variable;
37
37
  }
38
- evaluate(context) {
38
+ evaluate(context, back, forward) {
39
39
  let value;
40
40
  const tryIntegerString = this.getString(); ///
41
41
  context.trace(`Evaluating the '${tryIntegerString}' function...`);
@@ -48,7 +48,7 @@ const _default = (0, _elements.define)(class TryInteger extends _occamlanguages.
48
48
  case _typeNames.INTEGER_TYPE_NAME:
49
49
  {
50
50
  const message = `Cannot evaluate the '${tryIntegerString}' function because the '${valueTypeName}' type of its argument is not supported.`, exception = _exception.default.fromMessage(message);
51
- throw exception;
51
+ return back(exception);
52
52
  }
53
53
  case _typeNames.STRING_TYPE_NAME:
54
54
  case _typeNames.NOMINAL_VALUE_TYPE_NAME:
@@ -61,9 +61,9 @@ const _default = (0, _elements.define)(class TryInteger extends _occamlanguages.
61
61
  value = (0, _value.valueFromBoolean)(boolean);
62
62
  const valueString = value.getString();
63
63
  context.debug(`...evaluated the '${tryIntegerString}' function as '${valueString}'.`);
64
- return value;
64
+ return forward(value);
65
65
  }
66
66
  static name = "TryInteger";
67
67
  });
68
68
 
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RyeUludGVnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGNvbnN0IGludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24gPSAvXlsrLV0/XFxkKyQvO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVHJ5SW50ZWdlciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHRyeUludGVnZXJTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt0cnlJbnRlZ2VyU3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVOYW1lID0gdmFsdWVUeXBlLmdldE5hbWUoKTtcblxuICAgIGxldCBib29sZWFuO1xuXG4gICAgc3dpdGNoICh2YWx1ZVR5cGVOYW1lKSB7XG4gICAgICBjYXNlIExJU1RfVFlQRV9OQU1FOlxuICAgICAgY2FzZSBCT09MRUFOX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgSU5URUdFUl9UWVBFX05BTUU6IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBDYW5ub3QgZXZhbHVhdGUgdGhlICcke3RyeUludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdHlwZSBvZiBpdHMgYXJndW1lbnQgaXMgbm90IHN1cHBvcnRlZC5gLFxuICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFNUUklOR19UWVBFX05BTUU6XG4gICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgYm9vbGVhbiA9IGludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24udGVzdCh2YWx1ZVN0cmluZyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4pO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7dHJ5SW50ZWdlclN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHJ5SW50ZWdlclwiO1xufSk7XG5cbiJdLCJuYW1lcyI6WyJpbnRlZ2VyUmVndWxhckV4cHJlc3NzaW9uIiwiZGVmaW5lIiwiVHJ5SW50ZWdlciIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImdldFZhcmlhYmxlIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsInRyeUludGVnZXJTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVOYW1lIiwiZ2V0TmFtZSIsImJvb2xlYW4iLCJMSVNUX1RZUEVfTkFNRSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwiSU5URUdFUl9UWVBFX05BTUUiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJTVFJJTkdfVFlQRV9OQU1FIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJ2YWx1ZVN0cmluZyIsInRlc3QiLCJ2YWx1ZUZyb21Cb29sZWFuIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFZQTtlQUFBOztRQUZhQTtlQUFBQTs7O2dDQVJXO2tFQUVGOzBCQUVDO3VCQUNVOzJCQUMrRTs7Ozs7O0FBRXpHLE1BQU1BLDRCQUE0QjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG1CQUFtQkMsdUJBQU87SUFDcEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLENBQUU7UUFDdkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7SUFDbEI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRCxRQUFRO0lBQ3RCO0lBRUFFLFNBQVNOLE9BQU8sRUFBRTtRQUNoQixJQUFJTztRQUVKLE1BQU1DLG1CQUFtQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRS9DVCxRQUFRVSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsaUJBQWlCLGFBQWEsQ0FBQztRQUVoRUQsUUFBUSxJQUFJLENBQUNILFFBQVEsQ0FBQ0UsUUFBUSxDQUFDTjtRQUUvQixNQUFNVyxZQUFZSixNQUFNSyxPQUFPLElBQ3pCQyxnQkFBZ0JGLFVBQVVHLE9BQU87UUFFdkMsSUFBSUM7UUFFSixPQUFRRjtZQUNOLEtBQUtHLHlCQUFjO1lBQ25CLEtBQUtDLDRCQUFpQjtZQUN0QixLQUFLQyw0QkFBaUI7Z0JBQUU7b0JBQ3RCLE1BQU1DLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRVgsaUJBQWlCLHdCQUF3QixFQUFFSyxjQUFjLHdDQUF3QyxDQUFDLEVBQ3BJTyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO29CQUV4QyxNQUFNQztnQkFDUjtZQUVBLEtBQUtHLDJCQUFnQjtZQUNyQixLQUFLQyxrQ0FBdUI7Z0JBQUU7b0JBQzVCLE1BQU1DLGNBQWNsQixNQUFNRSxTQUFTO29CQUVuQ00sVUFBVW5CLDBCQUEwQjhCLElBQUksQ0FBQ0Q7b0JBRXpDO2dCQUNGO1FBQ0Y7UUFFQWxCLFFBQVFvQixJQUFBQSx1QkFBZ0IsRUFBQ1o7UUFFekIsTUFBTVUsY0FBY2xCLE1BQU1FLFNBQVM7UUFFbkNULFFBQVE0QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRXBCLGlCQUFpQixlQUFlLEVBQUVpQixZQUFZLEVBQUUsQ0FBQztRQUVwRixPQUFPbEI7SUFDVDtJQUVBLE9BQU9zQixPQUFPLGFBQWE7QUFDN0IifQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RyeUludGVnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGNvbnN0IGludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24gPSAvXlsrLV0/XFxkKyQvO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVHJ5SW50ZWdlciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHRyeUludGVnZXJTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt0cnlJbnRlZ2VyU3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVOYW1lID0gdmFsdWVUeXBlLmdldE5hbWUoKTtcblxuICAgIGxldCBib29sZWFuO1xuXG4gICAgc3dpdGNoICh2YWx1ZVR5cGVOYW1lKSB7XG4gICAgICBjYXNlIExJU1RfVFlQRV9OQU1FOlxuICAgICAgY2FzZSBCT09MRUFOX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgSU5URUdFUl9UWVBFX05BTUU6IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBDYW5ub3QgZXZhbHVhdGUgdGhlICcke3RyeUludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdHlwZSBvZiBpdHMgYXJndW1lbnQgaXMgbm90IHN1cHBvcnRlZC5gLFxuICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBTVFJJTkdfVFlQRV9OQU1FOlxuICAgICAgY2FzZSBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRToge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICAgIGJvb2xlYW4gPSBpbnRlZ2VyUmVndWxhckV4cHJlc3NzaW9uLnRlc3QodmFsdWVTdHJpbmcpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3RyeUludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRyeUludGVnZXJcIjtcbn0pO1xuXG4iXSwibmFtZXMiOlsiaW50ZWdlclJlZ3VsYXJFeHByZXNzc2lvbiIsImRlZmluZSIsIlRyeUludGVnZXIiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJnZXRWYXJpYWJsZSIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsInRyeUludGVnZXJTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVOYW1lIiwiZ2V0TmFtZSIsImJvb2xlYW4iLCJMSVNUX1RZUEVfTkFNRSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwiSU5URUdFUl9UWVBFX05BTUUiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJTVFJJTkdfVFlQRV9OQU1FIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJ2YWx1ZVN0cmluZyIsInRlc3QiLCJ2YWx1ZUZyb21Cb29sZWFuIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFZQTtlQUFBOztRQUZhQTtlQUFBQTs7O2dDQVJXO2tFQUVGOzBCQUVDO3VCQUNVOzJCQUMrRTs7Ozs7O0FBRXpHLE1BQU1BLDRCQUE0QjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG1CQUFtQkMsdUJBQU87SUFDcEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLENBQUU7UUFDdkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7SUFDbEI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRCxRQUFRO0lBQ3RCO0lBRUFFLFNBQVNOLE9BQU8sRUFBRU8sSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsSUFBSUM7UUFFSixNQUFNQyxtQkFBbUIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUUvQ1gsUUFBUVksS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGlCQUFpQixhQUFhLENBQUM7UUFFaEVELFFBQVEsSUFBSSxDQUFDTCxRQUFRLENBQUNFLFFBQVEsQ0FBQ047UUFFL0IsTUFBTWEsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsZ0JBQWdCRixVQUFVRyxPQUFPO1FBRXZDLElBQUlDO1FBRUosT0FBUUY7WUFDTixLQUFLRyx5QkFBYztZQUNuQixLQUFLQyw0QkFBaUI7WUFDdEIsS0FBS0MsNEJBQWlCO2dCQUFFO29CQUN0QixNQUFNQyxVQUFVLENBQUMscUJBQXFCLEVBQUVYLGlCQUFpQix3QkFBd0IsRUFBRUssY0FBYyx3Q0FBd0MsQ0FBQyxFQUNwSU8sWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtvQkFFeEMsT0FBT2QsS0FBS2U7Z0JBQ2Q7WUFFQSxLQUFLRywyQkFBZ0I7WUFDckIsS0FBS0Msa0NBQXVCO2dCQUFFO29CQUM1QixNQUFNQyxjQUFjbEIsTUFBTUUsU0FBUztvQkFFbkNNLFVBQVVyQiwwQkFBMEJnQyxJQUFJLENBQUNEO29CQUV6QztnQkFDRjtRQUNGO1FBRUFsQixRQUFRb0IsSUFBQUEsdUJBQWdCLEVBQUNaO1FBRXpCLE1BQU1VLGNBQWNsQixNQUFNRSxTQUFTO1FBRW5DWCxRQUFROEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVwQixpQkFBaUIsZUFBZSxFQUFFaUIsWUFBWSxFQUFFLENBQUM7UUFFcEYsT0FBT25CLFFBQVFDO0lBQ2pCO0lBRUEsT0FBT3NCLE9BQU8sYUFBYTtBQUM3QiJ9
@@ -82,16 +82,14 @@ const _default = (0, _elements.define)(class Value extends _occamlanguages.Eleme
82
82
  const type = this.getType(), booleanType = type.isBooleanType(), boolean = booleanType; ///
83
83
  return boolean;
84
84
  }
85
- evaluate(context) {
86
- let value;
85
+ evaluate(context, back, forward) {
87
86
  if (false) {
88
87
  ///
89
88
  } else if (this.variable !== null) {
90
- value = this.variable.evaluate(context);
89
+ return this.variable.evaluate(context, back, forward);
91
90
  } else if (this.primitive !== null) {
92
- value = this.primitive.evaluate(context);
91
+ return this.primitive.evaluate(context, back, forward);
93
92
  }
94
- return value;
95
93
  }
96
94
  isEqualTo(value) {
97
95
  let equalTo = false;
@@ -131,4 +129,4 @@ const _default = (0, _elements.define)(class Value extends _occamlanguages.Eleme
131
129
  }
132
130
  });
133
131
 
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhbHVlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFsdWUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLnByaW1pdGl2ZSA9IHByaW1pdGl2ZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0UHJpbWl0aXZlKCkge1xuICAgIHJldHVybiB0aGlzLnByaW1pdGl2ZTtcbiAgfVxuXG4gIGdldFByaW1pdGl2ZVZhbHVlKCkge1xuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGhpcy5wcmltaXRpdmUuZ2V0VmFsdWUoKTtcblxuICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudmFyaWFibGUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnByaW1pdGl2ZS5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBpc0Jvb2xlYW4oKSB7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCksXG4gICAgICAgICAgYm9vbGVhbiA9IGJvb2xlYW5UeXBlOyAvLy9cblxuICAgIHJldHVybiBib29sZWFuO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnByaW1pdGl2ZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBpc0VxdWFsVG8odmFsdWUpIHtcbiAgICBsZXQgZXF1YWxUbyA9IGZhbHNlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gdmFsdWUuZ2V0VmFyaWFibGUoKTtcblxuICAgICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIGVxdWFsVG8gPSB0aGlzLnZhcmlhYmxlLmlzRXF1YWxUbyh2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJpbWl0aXZlID0gdmFsdWUuZ2V0UHJpbWl0aXZlKCk7XG5cbiAgICAgIGlmIChwcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgICAgZXF1YWxUbyA9IHRoaXMucHJpbWl0aXZlLmlzRXF1YWxUbyhwcmltaXRpdmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgbGlmdChjb250ZXh0KSB7XG4gICAgY29uc3QgeyBQcmltaXRpdmUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHByaW1pdGl2ZVZhbHVlID0gdGhpcy5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIHByaW1pdGl2ZVZhbHVlcyA9IHByaW1pdGl2ZVZhbHVlOyAvLy9cblxuICAgIGxldCB0eXBlO1xuXG4gICAgdHlwZSA9IHRoaXMuZ2V0VHlwZSgpO1xuXG4gICAgY29uc3QgYXJndW1lbnRUeXBlID0gdHlwZS5nZXRBcmd1bWVudFR5cGUoKTtcblxuICAgIHR5cGUgPSBhcmd1bWVudFR5cGU7ICAvLy9cblxuICAgIGNvbnN0IHZhbHVlcyA9IHByaW1pdGl2ZVZhbHVlcy5tYXAoKHByaW1pdGl2ZVZhbHVlKT0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByaW1pdGl2ZSA9IFByaW1pdGl2ZS5mcm9tUHJpbWl0aXZlVmFsdWVBbmRUeXBlKHByaW1pdGl2ZVZhbHVlLCB0eXBlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gVmFsdWUuZnJvbVByaW1pdGl2ZShwcmltaXRpdmUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhbHVlXCI7XG5cbiAgc3RhdGljIGZyb21QcmltaXRpdmUocHJpbWl0aXZlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgcHJpbWl0aXZlU3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJWYWx1ZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsInByaW1pdGl2ZSIsImdldFZhcmlhYmxlIiwiZ2V0UHJpbWl0aXZlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFZhbHVlIiwiZ2V0VHlwZSIsInR5cGUiLCJpc0Jvb2xlYW4iLCJib29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJib29sZWFuIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsImlzRXF1YWxUbyIsImVxdWFsVG8iLCJsaWZ0IiwiUHJpbWl0aXZlIiwiZWxlbWVudHMiLCJwcmltaXRpdmVWYWx1ZXMiLCJhcmd1bWVudFR5cGUiLCJnZXRBcmd1bWVudFR5cGUiLCJ2YWx1ZXMiLCJtYXAiLCJmcm9tUHJpbWl0aXZlVmFsdWVBbmRUeXBlIiwiZnJvbVByaW1pdGl2ZSIsIm5hbWUiLCJwcmltaXRpdmVTdHJpbmciLCJnZXRTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7O2dDQU53QjtrRUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BSXJCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsY0FBY0MsdUJBQU87SUFDL0MsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsQ0FBRTtRQUNsRSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FB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
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhbHVlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFsdWUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLnByaW1pdGl2ZSA9IHByaW1pdGl2ZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0UHJpbWl0aXZlKCkge1xuICAgIHJldHVybiB0aGlzLnByaW1pdGl2ZTtcbiAgfVxuXG4gIGdldFByaW1pdGl2ZVZhbHVlKCkge1xuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGhpcy5wcmltaXRpdmUuZ2V0VmFsdWUoKTtcblxuICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudmFyaWFibGUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnByaW1pdGl2ZS5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBpc0Jvb2xlYW4oKSB7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCksXG4gICAgICAgICAgYm9vbGVhbiA9IGJvb2xlYW5UeXBlOyAvLy9cblxuICAgIHJldHVybiBib29sZWFuO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcmltaXRpdmUuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfVxuICB9XG5cbiAgaXNFcXVhbFRvKHZhbHVlKSB7XG4gICAgbGV0IGVxdWFsVG8gPSBmYWxzZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZSA9IHZhbHVlLmdldFZhcmlhYmxlKCk7XG5cbiAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBlcXVhbFRvID0gdGhpcy52YXJpYWJsZS5pc0VxdWFsVG8odmFyaWFibGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByaW1pdGl2ZSA9IHZhbHVlLmdldFByaW1pdGl2ZSgpO1xuXG4gICAgICBpZiAocHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgICAgIGVxdWFsVG8gPSB0aGlzLnByaW1pdGl2ZS5pc0VxdWFsVG8ocHJpbWl0aXZlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIGxpZnQoY29udGV4dCkge1xuICAgIGNvbnN0IHsgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBwcmltaXRpdmVWYWx1ZSA9IHRoaXMuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBwcmltaXRpdmVWYWx1ZXMgPSBwcmltaXRpdmVWYWx1ZTsgLy8vXG5cbiAgICBsZXQgdHlwZTtcblxuICAgIHR5cGUgPSB0aGlzLmdldFR5cGUoKTtcblxuICAgIGNvbnN0IGFyZ3VtZW50VHlwZSA9IHR5cGUuZ2V0QXJndW1lbnRUeXBlKCk7XG5cbiAgICB0eXBlID0gYXJndW1lbnRUeXBlOyAgLy8vXG5cbiAgICBjb25zdCB2YWx1ZXMgPSBwcmltaXRpdmVWYWx1ZXMubWFwKChwcmltaXRpdmVWYWx1ZSk9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmltaXRpdmUgPSBQcmltaXRpdmUuZnJvbVByaW1pdGl2ZVZhbHVlQW5kVHlwZShwcmltaXRpdmVWYWx1ZSwgdHlwZSwgY29udGV4dCksXG4gICAgICAgICAgICAgICAgICB2YWx1ZSA9IFZhbHVlLmZyb21QcmltaXRpdmUocHJpbWl0aXZlLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYWx1ZVwiO1xuXG4gIHN0YXRpYyBmcm9tUHJpbWl0aXZlKHByaW1pdGl2ZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHByaW1pdGl2ZVN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmVTdHJpbmcsIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICAgIHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVmFsdWUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJwcmltaXRpdmUiLCJnZXRWYXJpYWJsZSIsImdldFByaW1pdGl2ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRWYWx1ZSIsImdldFR5cGUiLCJ0eXBlIiwiaXNCb29sZWFuIiwiYm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiYm9vbGVhbiIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJpc0VxdWFsVG8iLCJ2YWx1ZSIsImVxdWFsVG8iLCJsaWZ0IiwiUHJpbWl0aXZlIiwiZWxlbWVudHMiLCJwcmltaXRpdmVWYWx1ZXMiLCJhcmd1bWVudFR5cGUiLCJnZXRBcmd1bWVudFR5cGUiLCJ2YWx1ZXMiLCJtYXAiLCJmcm9tUHJpbWl0aXZlVmFsdWVBbmRUeXBlIiwiZnJvbVByaW1pdGl2ZSIsIm5hbWUiLCJwcmltaXRpdmVTdHJpbmciLCJnZXRTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7O2dDQU53QjtrRUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BSXJCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsY0FBY0MsdUJBQU87SUFDL0MsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsQ0FBRTtRQUNsRSxLQUFLLENBQUNM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