occam-furtle 3.0.461 → 3.0.462

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 (49) hide show
  1. package/lib/element/assignment/list.js +2 -2
  2. package/lib/element/assignment/object.js +6 -5
  3. package/lib/element/binding.js +5 -4
  4. package/lib/element/bindings/named.js +15 -8
  5. package/lib/element/bindings.js +15 -9
  6. package/lib/element/contains.js +4 -4
  7. package/lib/element/endsWith.js +4 -4
  8. package/lib/element/lengthOf.js +4 -4
  9. package/lib/element/nodeQuery.js +7 -7
  10. package/lib/element/nodesQuery.js +6 -6
  11. package/lib/element/primitive.js +3 -3
  12. package/lib/element/returnStatement.js +3 -3
  13. package/lib/element/startsWith.js +4 -4
  14. package/lib/element/term/bracketed.js +3 -3
  15. package/lib/element/term/comparison.js +4 -4
  16. package/lib/element/term/logical.js +5 -5
  17. package/lib/element/term/negated.js +4 -4
  18. package/lib/element/term.js +8 -10
  19. package/lib/element/terms.js +3 -3
  20. package/lib/element/toInteger.js +5 -5
  21. package/lib/element/tryInteger.js +4 -4
  22. package/lib/element/value.js +4 -6
  23. package/lib/element/values.js +3 -3
  24. package/lib/element/variable.js +4 -4
  25. package/package.json +2 -2
  26. package/src/element/assignment/list.js +1 -1
  27. package/src/element/assignment/object.js +6 -6
  28. package/src/element/binding.js +5 -3
  29. package/src/element/bindings/named.js +22 -10
  30. package/src/element/bindings.js +20 -10
  31. package/src/element/contains.js +3 -3
  32. package/src/element/endsWith.js +3 -3
  33. package/src/element/lengthOf.js +3 -3
  34. package/src/element/nodeQuery.js +6 -6
  35. package/src/element/nodesQuery.js +5 -5
  36. package/src/element/primitive.js +2 -2
  37. package/src/element/returnStatement.js +2 -2
  38. package/src/element/startsWith.js +3 -3
  39. package/src/element/term/bracketed.js +2 -2
  40. package/src/element/term/comparison.js +3 -3
  41. package/src/element/term/logical.js +4 -4
  42. package/src/element/term/negated.js +3 -3
  43. package/src/element/term.js +7 -11
  44. package/src/element/terms.js +2 -2
  45. package/src/element/toInteger.js +4 -4
  46. package/src/element/tryInteger.js +3 -3
  47. package/src/element/value.js +3 -7
  48. package/src/element/values.js +2 -2
  49. package/src/element/variable.js +3 -3
@@ -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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
@@ -36,14 +36,14 @@ const _default = (0, _elements.define)(class Values extends _occamlanguages.Elem
36
36
  forEachValue(callback) {
37
37
  this.array.forEach(callback);
38
38
  }
39
- evaluate(context) {
39
+ evaluate(context, back, forward) {
40
40
  const valuesArray = this.mapValue((value)=>{
41
41
  value = value.evaluate(context);
42
42
  return value;
43
43
  }), valuesString = (0, _string.valuesStringFromValuesArray)(valuesArray, context), string = valuesString, array = valuesArray, node = null, breakPoint = null;
44
44
  context = null;
45
45
  const values = new Values(context, string, node, breakPoint, array);
46
- return values;
46
+ return forward(values);
47
47
  }
48
48
  static name = "Values";
49
49
  static fromValue(value, context) {
@@ -56,4 +56,4 @@ const _default = (0, _elements.define)(class Values extends _occamlanguages.Elem
56
56
  }
57
57
  });
58
58
 
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhbHVlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFsdWVzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0VmFsdWUoaW5kZXgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYXJyYXlbaW5kZXhdIHx8IG51bGw7ICAvLy9cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGFkZFZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5hcnJheS5wdXNoKHZhbHVlKTtcbiAgfVxuXG4gIG1hcFZhbHVlKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5Lm1hcChjYWxsYmFjayk7IH1cblxuICBmb3JFYWNoVmFsdWUoY2FsbGJhY2spIHsgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTsgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCB2YWx1ZXNBcnJheSA9IHRoaXMubWFwVmFsdWUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdmFsdWVzU3RyaW5nID0gdmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5KHZhbHVlc0FycmF5LCBjb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICAgIGFycmF5ID0gdmFsdWVzQXJyYXksIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgVmFsdWVzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpO1xuXG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYWx1ZXNcIjtcblxuICBzdGF0aWMgZnJvbVZhbHVlKHZhbHVlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVzQXJyYXkgPSBbXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdmFsdWVzU3RyaW5nID0gdmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5KHZhbHVlc0FycmF5LCBjb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICAgIGFycmF5ID0gdmFsdWVzQXJyYXksIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgVmFsdWVzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpO1xuXG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVmFsdWVzIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImFycmF5IiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRWYWx1ZSIsImluZGV4IiwidmFsdWUiLCJhZGRWYWx1ZSIsInB1c2giLCJtYXBWYWx1ZSIsImNhbGxiYWNrIiwibWFwIiwiZm9yRWFjaFZhbHVlIiwiZm9yRWFjaCIsImV2YWx1YXRlIiwidmFsdWVzQXJyYXkiLCJ2YWx1ZXNTdHJpbmciLCJ2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkiLCJ2YWx1ZXMiLCJuYW1lIiwiZnJvbVZhbHVlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQUE7OztnQ0FMd0I7MEJBRUQ7d0JBQ3FCO01BRTVDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsZUFBZUMsdUJBQU87SUFDaEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxTQUFTQyxLQUFLLEVBQUU7UUFDZCxNQUFNQyxRQUFRLElBQUksQ0FBQ04sS0FBSyxDQUFDSyxNQUFNLElBQUksTUFBTyxHQUFHO1FBRTdDLE9BQU9DO0lBQ1Q7SUFFQUMsU0FBU0QsS0FBSyxFQUFFO1FBQ2QsSUFBSSxDQUFDTixLQUFLLENBQUNRLElBQUksQ0FBQ0Y7SUFDbEI7SUFFQUcsU0FBU0MsUUFBUSxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNWLEtBQUssQ0FBQ1csR0FBRyxDQUFDRDtJQUFXO0lBRXRERSxhQUFhRixRQUFRLEVBQUU7UUFBRSxJQUFJLENBQUNWLEtBQUssQ0FBQ2EsT0FBTyxDQUFDSDtJQUFXO0lBRXZESSxTQUFTbEIsT0FBTyxFQUFFO1FBQ2hCLE1BQU1tQixjQUFjLElBQUksQ0FBQ04sUUFBUSxDQUFDLENBQUNIO1lBQzNCQSxRQUFRQSxNQUFNUSxRQUFRLENBQUNsQjtZQUV2QixPQUFPVTtRQUNULElBQ0FVLGVBQWVDLElBQUFBLG1DQUEyQixFQUFDRixhQUFhbkIsVUFDeERDLFNBQVNtQixjQUNUaEIsUUFBUWUsYUFDUmpCLE9BQU8sTUFDUEMsYUFBYTtRQUVuQkgsVUFBVTtRQUVWLE1BQU1zQixTQUFTLElBQUl4QixPQUFPRSxTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztRQUU3RCxPQUFPa0I7SUFDVDtJQUVBLE9BQU9DLE9BQU8sU0FBUztJQUV2QixPQUFPQyxVQUFVZCxLQUFLLEVBQUVWLE9BQU8sRUFBRTtRQUMvQixNQUFNbUIsY0FBYztZQUNaVDtTQUNELEVBQ0RVLGVBQWVDLElBQUFBLG1DQUEyQixFQUFDRixhQUFhbkIsVUFDeERDLFNBQVNtQixjQUNUaEIsUUFBUWUsYUFDUmpCLE9BQU8sTUFDUEMsYUFBYTtRQUVuQkgsVUFBVTtRQUVWLE1BQU1zQixTQUFTLElBQUl4QixPQUFPRSxTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztRQUU3RCxPQUFPa0I7SUFDVDtBQUNGIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhbHVlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFsdWVzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0VmFsdWUoaW5kZXgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYXJyYXlbaW5kZXhdIHx8IG51bGw7ICAvLy9cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGFkZFZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5hcnJheS5wdXNoKHZhbHVlKTtcbiAgfVxuXG4gIG1hcFZhbHVlKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5Lm1hcChjYWxsYmFjayk7IH1cblxuICBmb3JFYWNoVmFsdWUoY2FsbGJhY2spIHsgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTsgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB2YWx1ZXNBcnJheSA9IHRoaXMubWFwVmFsdWUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdmFsdWVzU3RyaW5nID0gdmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5KHZhbHVlc0FycmF5LCBjb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICAgIGFycmF5ID0gdmFsdWVzQXJyYXksIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgVmFsdWVzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWVzKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYWx1ZXNcIjtcblxuICBzdGF0aWMgZnJvbVZhbHVlKHZhbHVlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVzQXJyYXkgPSBbXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdmFsdWVzU3RyaW5nID0gdmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5KHZhbHVlc0FycmF5LCBjb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICAgIGFycmF5ID0gdmFsdWVzQXJyYXksIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgVmFsdWVzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpO1xuXG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVmFsdWVzIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImFycmF5IiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRWYWx1ZSIsImluZGV4IiwidmFsdWUiLCJhZGRWYWx1ZSIsInB1c2giLCJtYXBWYWx1ZSIsImNhbGxiYWNrIiwibWFwIiwiZm9yRWFjaFZhbHVlIiwiZm9yRWFjaCIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZXNBcnJheSIsInZhbHVlc1N0cmluZyIsInZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSIsInZhbHVlcyIsIm5hbWUiLCJmcm9tVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBQTs7O2dDQUx3QjswQkFFRDt3QkFDcUI7TUFFNUMsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxlQUFlQyx1QkFBTztJQUNoRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBRTtRQUNwRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0QsS0FBSztJQUNuQjtJQUVBRSxZQUFZO1FBQ1YsTUFBTUMsU0FBUyxJQUFJLENBQUNILEtBQUssQ0FBQ0csTUFBTTtRQUVoQyxPQUFPQTtJQUNUO0lBRUFDLFNBQVNDLEtBQUssRUFBRTtRQUNkLE1BQU1DLFFBQVEsSUFBSSxDQUFDTixLQUFLLENBQUNLLE1BQU0sSUFBSSxNQUFPLEdBQUc7UUFFN0MsT0FBT0M7SUFDVDtJQUVBQyxTQUFTRCxLQUFLLEVBQUU7UUFDZCxJQUFJLENBQUNOLEtBQUssQ0FBQ1EsSUFBSSxDQUFDRjtJQUNsQjtJQUVBRyxTQUFTQyxRQUFRLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQ1YsS0FBSyxDQUFDVyxHQUFHLENBQUNEO0lBQVc7SUFFdERFLGFBQWFGLFFBQVEsRUFBRTtRQUFFLElBQUksQ0FBQ1YsS0FBSyxDQUFDYSxPQUFPLENBQUNIO0lBQVc7SUFFdkRJLFNBQVNsQixPQUFPLEVBQUVtQixJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMvQixNQUFNQyxjQUFjLElBQUksQ0FBQ1IsUUFBUSxDQUFDLENBQUNIO1lBQzNCQSxRQUFRQSxNQUFNUSxRQUFRLENBQUNsQjtZQUV2QixPQUFPVTtRQUNULElBQ0FZLGVBQWVDLElBQUFBLG1DQUEyQixFQUFDRixhQUFhckIsVUFDeERDLFNBQVNxQixjQUNUbEIsUUFBUWlCLGFBQ1JuQixPQUFPLE1BQ1BDLGFBQWE7UUFFbkJILFVBQVU7UUFFVixNQUFNd0IsU0FBUyxJQUFJMUIsT0FBT0UsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUM7UUFFN0QsT0FBT2dCLFFBQVFJO0lBQ2pCO0lBRUEsT0FBT0MsT0FBTyxTQUFTO0lBRXZCLE9BQU9DLFVBQVVoQixLQUFLLEVBQUVWLE9BQU8sRUFBRTtRQUMvQixNQUFNcUIsY0FBYztZQUNaWDtTQUNELEVBQ0RZLGVBQWVDLElBQUFBLG1DQUEyQixFQUFDRixhQUFhckIsVUFDeERDLFNBQVNxQixjQUNUbEIsUUFBUWlCLGFBQ1JuQixPQUFPLE1BQ1BDLGFBQWE7UUFFbkJILFVBQVU7UUFFVixNQUFNd0IsU0FBUyxJQUFJMUIsT0FBT0UsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUM7UUFFN0QsT0FBT29CO0lBQ1Q7QUFDRiJ9
@@ -37,17 +37,17 @@ const _default = (0, _elements.define)(class Variable extends _occamlanguages.El
37
37
  const comparesToVariableName = this.name === variableName;
38
38
  return comparesToVariableName;
39
39
  }
40
- evaluate(context) {
40
+ evaluate(context, back, forward) {
41
41
  const variableString = this.getString(); ///
42
42
  context.trace(`Evaluating the '${variableString}' variable...`);
43
43
  const nested = true, variableName = this.name, variablePresent = context.isVariablePresentByVariableName(variableName, nested);
44
44
  if (!variablePresent) {
45
45
  const message = `The '${variableString}' variable is not present.'`, exception = _exception.default.fromMessage(message);
46
- throw exception;
46
+ return back(exception);
47
47
  }
48
48
  const variable = context.findVariableByVariableName(variableName), value = variable.getValue(), valueString = value.getString();
49
49
  context.debug(`...evaluated the '${variableString}' variable as the '${valueString}' value.`);
50
- return value;
50
+ return forward(value);
51
51
  }
52
52
  assign(value, context, back, forward) {
53
53
  const nested = false, valueString = value.getString(), variableName = this.name, variableString = this.getString(), variablePresent = context.isVariablePresentByVariableName(variableName, nested);
@@ -89,4 +89,4 @@ const _default = (0, _elements.define)(class Variable extends _occamlanguages.El
89
89
  }
90
90
  });
91
91
 
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFZhcmlhYmxlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdmFsdWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgY29tcGFyZVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBjb21wYXJlc1RvVmFyaWFibGVOYW1lID0gKHRoaXMubmFtZSA9PT0gdmFyaWFibGVOYW1lKTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVmFyaWFibGVOYW1lO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBuZXN0ZWQgPSB0cnVlLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgdmFsdWUgPSB2YXJpYWJsZS5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgYXMgdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBhc3NpZ24odmFsdWUsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBuZXN0ZWQgPSBmYWxzZSxcbiAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpO1xuXG4gICAgY29udGV4dC50cmFjZShgQXNzaWduaW5nIHRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIGFscmVhZHkgcHJlc2VudC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB2YWx1ZVR5cGVTdHJpbmcgPSB2YWx1ZVR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30gdmFyaWFibGUncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBkb2VzIG5vdCBjb21wYXJlIHRvIHRoZSB2YWx1ZSdzICcke3ZhbHVlVHlwZVN0cmluZ30nIHR5cGUuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSB0aGlzOyAgLy8vXG5cbiAgICByZXR1cm4gY29udGV4dC5hZGRWYXJpYWJsZSh2YXJpYWJsZSwgYmFjaywgKCkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uYXNzaWduZWQgdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUgdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG5cbiAgICAgIGZvcndhcmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYXJpYWJsZVwiO1xuXG4gIHN0YXRpYyBmcm9tQmluZGluZyhiaW5kaW5nLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IGJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBiaW5kaW5nLmdldE5hbWUoKSxcbiAgICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGxcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQpIHtcbiAgICBjb25zdCBhbGlhc2VkTmFtZSA9IG5hbWVkQmluZGluZy5nZXRBbGlhc2VkTmFtZSgpLFxuICAgICAgICAgIHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBhbGlhc2VkTmFtZSwgLy8vXG4gICAgICAgICAgdGVybSA9IG51bGwsXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdGVybSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlQW5kUGFyYW1ldGVyKHZhbHVlLCBwYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlU3RyaW5nRnJvbU5hbWUobmFtZSksXG4gICAgICAgICAgc3RyaW5nID0gdmFyaWFibGVTdHJpbmcsICAvLy9cbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlZhcmlhYmxlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJuYW1lIiwidmFsdWUiLCJnZXRUeXBlIiwiZ2V0TmFtZSIsImdldFZhbHVlIiwiY29tcGFyZVZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZSIsImNvbXBhcmVzVG9WYXJpYWJsZU5hbWUiLCJldmFsdWF0ZSIsInZhcmlhYmxlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJuZXN0ZWQiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJhc3NpZ24iLCJiYWNrIiwiZm9yd2FyZCIsInZhbHVlVHlwZSIsInR5cGVFcXVhbFRvVmFsdWVUeXBlIiwiaXNFcXVhbFRvIiwidHlwZVN0cmluZyIsInZhbHVlVHlwZVN0cmluZyIsImFkZFZhcmlhYmxlIiwiZnJvbUJpbmRpbmciLCJiaW5kaW5nIiwidmFyaWFibGVTdHJpbmdGcm9tTmFtZSIsImZyb21OYW1lZEJpbmRpbmciLCJuYW1lZEJpbmRpbmciLCJhbGlhc2VkTmFtZSIsImdldEFsaWFzZWROYW1lIiwidGVybSIsImZyb21WYWx1ZUFuZFBhcmFtZXRlciIsInBhcmFtZXRlciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7Z0NBUHdCO2tFQUVGOzBCQUVDO3dCQUNnQjs7Ozs7O01BRXZDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLLENBQUU7UUFDaEUsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FB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
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFZhcmlhYmxlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdmFsdWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgY29tcGFyZVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBjb21wYXJlc1RvVmFyaWFibGVOYW1lID0gKHRoaXMubmFtZSA9PT0gdmFyaWFibGVOYW1lKTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVmFyaWFibGVOYW1lO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBuZXN0ZWQgPSB0cnVlLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpLFxuICAgICAgICAgIHZhbHVlID0gdmFyaWFibGUuZ2V0VmFsdWUoKSxcbiAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGFzIHRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICB9XG5cbiAgYXNzaWduKHZhbHVlLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgbmVzdGVkID0gZmFsc2UsXG4gICAgICAgICAgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFzc2lnbmluZyB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSB0byB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZUVxdWFsVG9WYWx1ZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICBpZiAoIXR5cGVFcXVhbFRvVmFsdWVUeXBlKSB7XG4gICAgICBjb25zdCB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgdmFsdWVUeXBlU3RyaW5nID0gdmFsdWVUeXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9IHZhcmlhYmxlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUgZG9lcyBub3QgY29tcGFyZSB0byB0aGUgdmFsdWUncyAnJHt2YWx1ZVR5cGVTdHJpbmd9JyB0eXBlLidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpczsgIC8vL1xuXG4gICAgcmV0dXJuIGNvbnRleHQuYWRkVmFyaWFibGUodmFyaWFibGUsIGJhY2ssICgpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmFzc2lnbmVkIHRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuXG4gICAgICBmb3J3YXJkKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVcIjtcblxuICBzdGF0aWMgZnJvbUJpbmRpbmcoYmluZGluZywgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBiaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gYmluZGluZy5nZXROYW1lKCksXG4gICAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGVTdHJpbmdGcm9tTmFtZShuYW1lKSxcbiAgICAgICAgICBzdHJpbmcgPSB2YXJpYWJsZVN0cmluZywgIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsXG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYWxpYXNlZE5hbWUgPSBuYW1lZEJpbmRpbmcuZ2V0QWxpYXNlZE5hbWUoKSxcbiAgICAgICAgICB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gYWxpYXNlZE5hbWUsIC8vL1xuICAgICAgICAgIHRlcm0gPSBudWxsLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGVTdHJpbmdGcm9tTmFtZShuYW1lKSxcbiAgICAgICAgICBzdHJpbmcgPSB2YXJpYWJsZVN0cmluZywgIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIG5hbWUsIHRlcm0pO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYWx1ZUFuZFBhcmFtZXRlcih2YWx1ZSwgcGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IHBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZSA9IHBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJWYXJpYWJsZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwibmFtZSIsInZhbHVlIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJnZXRWYWx1ZSIsImNvbXBhcmVWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJjb21wYXJlc1RvVmFyaWFibGVOYW1lIiwiZXZhbHVhdGUiLCJiYWNrIiwiZm9yd2FyZCIsInZhcmlhYmxlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJuZXN0ZWQiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJhc3NpZ24iLCJ2YWx1ZVR5cGUiLCJ0eXBlRXF1YWxUb1ZhbHVlVHlwZSIsImlzRXF1YWxUbyIsInR5cGVTdHJpbmciLCJ2YWx1ZVR5cGVTdHJpbmciLCJhZGRWYXJpYWJsZSIsImZyb21CaW5kaW5nIiwiYmluZGluZyIsInZhcmlhYmxlU3RyaW5nRnJvbU5hbWUiLCJmcm9tTmFtZWRCaW5kaW5nIiwibmFtZWRCaW5kaW5nIiwiYWxpYXNlZE5hbWUiLCJnZXRBbGlhc2VkTmFtZSIsInRlcm0iLCJmcm9tVmFsdWVBbmRQYXJhbWV0ZXIiLCJwYXJhbWV0ZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjtrRUFFRjswQkFFQzt3QkFDZ0I7Ozs7OztNQUV2QyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsS0FBSyxDQUFFO1FBQ2hFLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxJQUFJ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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "3.0.461",
4
+ "version": "3.0.462",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -12,7 +12,7 @@
12
12
  "dependencies": {
13
13
  "necessary": "^17.6.3",
14
14
  "occam-grammars": "^1.3.663",
15
- "occam-languages": "^3.0.20",
15
+ "occam-languages": "^3.0.22",
16
16
  "occam-lexers": "^23.2.8",
17
17
  "occam-parsers": "^23.2.11",
18
18
  "occam-query": "^4.1.206"
@@ -69,7 +69,7 @@ export default define(class ListAssignment extends Element {
69
69
  const value = values[index];
70
70
 
71
71
  return this.evaluateBinding(binding, value, context, back, forward);
72
- }, () => {
72
+ }, back, () => {
73
73
  context.debug(`...evaluated the '${listAssignmentString}' list assignment.`);
74
74
 
75
75
  return forward();
@@ -49,13 +49,13 @@ export default define(class ObjectAssignment extends Element {
49
49
 
50
50
  nominalValueProperties.compareNamedBindings(this.namedBindings, context);
51
51
 
52
- this.namedBindings.forEachNamedBinding((namedBinding) => {
53
- this.evaluateNamedBinding(namedBinding, value, context);
54
- });
55
-
56
- context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
52
+ return this.namedBindings.forEachNamedBinding((namedBinding, back, forward) => {
53
+ this.evaluateNamedBinding(namedBinding, value, context, back, forward);
54
+ }, back, () => {
55
+ context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
57
56
 
58
- return forward();
57
+ return forward();
58
+ });
59
59
  });
60
60
 
61
61
  evaluateNamedBinding(namedBinding, term, context, back, forward) {
@@ -27,9 +27,9 @@ export default define(class Binding extends Element {
27
27
  return this.elided;
28
28
  }
29
29
 
30
- compareTerm(term, context) {
30
+ compareTerm(term, context, back, forward) {
31
31
  if (this.elided) {
32
- return;
32
+ return forward();
33
33
  }
34
34
 
35
35
  const termString = term.getString(),
@@ -45,10 +45,12 @@ export default define(class Binding extends Element {
45
45
  message = `The '${termString}' term's '${termType}' type is not equal to the '${bindingString}' binding's '${typeString}' type.`,
46
46
  exception = Exception.fromMessage(message);
47
47
 
48
- throw exception;
48
+ return back(exception);
49
49
  }
50
50
 
51
51
  context.debug(`...comparing the '${termString}' term against the '${bindingString}' binding.`);
52
+
53
+ return forward();
52
54
  }
53
55
 
54
56
  static name = "Binding";
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import { Element } from "occam-languages";
3
+ import { Element, continuationUtilities } from "occam-languages";
4
4
 
5
5
  import Exception from "../../exception";
6
6
 
7
7
  import { define } from "../../elements";
8
8
 
9
+ const { forEach } = continuationUtilities;
10
+
9
11
  export default define(class NamedBindings extends Element {
10
12
  constructor(context, string, node, breakPoint, array) {
11
13
  super(context, string, node, breakPoint);
@@ -31,9 +33,15 @@ export default define(class NamedBindings extends Element {
31
33
 
32
34
  someNamedBinding(callback) { return this.array.some(callback); }
33
35
 
34
- forEachNamedBinding(callback) { this.array.forEach(callback); }
36
+ forEachNamedBinding(callback, back = null, forward = null) {
37
+ if (forward !== null) {
38
+ return forEach(this.array, callback, back, forward);
39
+ }
35
40
 
36
- compareTerms(terms, context) {
41
+ this.array.forEach(callback);
42
+ }
43
+
44
+ compareTerms(terms, context, back, forward) {
37
45
  const termsString = terms.getString(),
38
46
  namedBindingsString = this.getString(); ///
39
47
 
@@ -46,18 +54,22 @@ export default define(class NamedBindings extends Element {
46
54
  const message = `The '${termsString}' terms and '${namedBindingsString}' named bindings are not of the same length.`,
47
55
  exception = Exception.fromMessage(message);
48
56
 
49
- throw exception;
57
+ return back(exception);
50
58
  }
51
59
 
52
- this.forEachNamedBinding((namedBinding, index) => {
60
+ return this.forEachNamedBinding((namedBinding, back, forward, index) => {
53
61
  if (namedBinding !== null) {
54
- const term = terms.getTerm(index);
55
-
56
- namedBinding.compareTerm(term, context);
62
+ forward();
57
63
  }
58
- });
59
64
 
60
- context.debug(`...compared the '${termsString}' terms with the '${namedBindingsString}' named bindings.`);
65
+ const term = terms.getTerm(index);
66
+
67
+ return namedBinding.compareTerm(term, context, back, forward);
68
+ }, back, () => {
69
+ context.debug(`...compared the '${termsString}' terms with the '${namedBindingsString}' named bindings.`);
70
+
71
+ forward();
72
+ });
61
73
  }
62
74
 
63
75
  compareNamedBinding(namedBinding, context) {
@@ -29,9 +29,15 @@ export default define(class Bindings extends Element {
29
29
  return binding;
30
30
  }
31
31
 
32
- forEachBinding(callback) { this.array.forEach(callback); }
32
+ forEachBinding(callback, back = null, forward = null) {
33
+ if (forward !== null) {
34
+ return forEach(this.array, callback, back, forward);
35
+ }
36
+
37
+ this.array.forEach(callback);
38
+ }
33
39
 
34
- compareTerms(terms, context) {
40
+ compareTerms(terms, context, back, forward) {
35
41
  const termsString = terms.getString(),
36
42
  bindingsString = this.getString(); ///
37
43
 
@@ -44,18 +50,22 @@ export default define(class Bindings extends Element {
44
50
  const message = `The '${termsString}' expressions and '${bindingsString}' bindings are not of the same length.`,
45
51
  exception = Exception.fromMessage(message);
46
52
 
47
- throw exception;
53
+ return back(exception);
48
54
  }
49
55
 
50
- this.forEachBinding((binding, index) => {
51
- if (binding !== null) {
52
- const term = terms.getTerm(index);
53
-
54
- binding.compareTerm(term, context);
56
+ return this.forEachBinding((binding, back, forward, index) => {
57
+ if (binding === null) {
58
+ return forward();
55
59
  }
56
- });
57
60
 
58
- context.debug(`...compared the '${termsString}' terms against the '${bindingsString}' bindings.`);
61
+ const term = terms.getTerm(index);
62
+
63
+ return binding.compareTerm(term, context, back, forward);
64
+ }, back, () => {
65
+ context.debug(`...compared the '${termsString}' terms against the '${bindingsString}' bindings.`);
66
+
67
+ forward();
68
+ });
59
69
  }
60
70
 
61
71
  static name = "Bindings";
@@ -24,7 +24,7 @@ export default define(class Contains extends Element {
24
24
  return this.substring;
25
25
  }
26
26
 
27
- evaluate(context) {
27
+ evaluate(context, back, forward) {
28
28
  let value;
29
29
 
30
30
  const containsString = this.getString(); ///
@@ -41,7 +41,7 @@ export default define(class Contains extends Element {
41
41
  message = `The '${valueString}' value's '${valueType}' type should be '${STRING_TYPE_NAME}'.`,
42
42
  exception = Exception.fromMessage(message);
43
43
 
44
- throw exception;
44
+ return back(exception);
45
45
  }
46
46
 
47
47
  const string = value.getString(),
@@ -53,7 +53,7 @@ export default define(class Contains extends Element {
53
53
 
54
54
  context.debug(`...evaluated the '${containsString}' function as '${valueString}'.`);
55
55
 
56
- return value;
56
+ return forward(value);
57
57
  }
58
58
 
59
59
  static name = "Contains";
@@ -24,7 +24,7 @@ export default define(class EndsWith extends Element {
24
24
  return this.substring;
25
25
  }
26
26
 
27
- evaluate(context) {
27
+ evaluate(context, back, forward) {
28
28
  let value;
29
29
 
30
30
  const endsWithString = this.getString(); ///
@@ -41,7 +41,7 @@ export default define(class EndsWith extends Element {
41
41
  message = `The '${valueString}' value's '${valueType}' type should be '${STRING_TYPE_NAME}'.`,
42
42
  exception = Exception.fromMessage(message);
43
43
 
44
- throw exception;
44
+ return back(exception);
45
45
  }
46
46
 
47
47
  const string = value.getString(),
@@ -53,7 +53,7 @@ export default define(class EndsWith extends Element {
53
53
 
54
54
  context.debug(`...evaluated the '${endsWithString}' function as '${valueString}'.`);
55
55
 
56
- return value;
56
+ return forward(value);
57
57
  }
58
58
 
59
59
  static name = "EndsWith";
@@ -19,7 +19,7 @@ export default define(class LengthOf extends Element {
19
19
  return this.variable;
20
20
  }
21
21
 
22
- evaluate(context) {
22
+ evaluate(context, back, forward) {
23
23
  let value;
24
24
 
25
25
  const lengthOfString = this.getString(); ///
@@ -36,7 +36,7 @@ export default define(class LengthOf extends Element {
36
36
  message = `The '${valueString}' value's '${valueType}' type should be '${LIST_TYPE_NAME}'.`,
37
37
  exception = Exception.fromMessage(message);
38
38
 
39
- throw exception;
39
+ return back(exception);
40
40
  }
41
41
 
42
42
  const primitiveValue = value.getPrimitiveValue(),
@@ -49,7 +49,7 @@ export default define(class LengthOf extends Element {
49
49
 
50
50
  context.debug(`...evaluated the '${lengthOfString}' function as '${valueString}'.`);
51
51
 
52
- return value;
52
+ return forward(value);
53
53
  }
54
54
 
55
55
  static name = "LengthOf";
@@ -28,7 +28,7 @@ export default define(class NodeQuery extends Element {
28
28
  return this.query;
29
29
  }
30
30
 
31
- evaluate(context) {
31
+ evaluate(context, back, forward) {
32
32
  let value;
33
33
 
34
34
  const nodeQueryString = this.getString(); ///
@@ -39,7 +39,7 @@ export default define(class NodeQuery extends Element {
39
39
  const message = `Cannot evaluate the '${nodeQueryString}' function because its expression is malformed.`,
40
40
  exception = Exception.fromMessage(message);
41
41
 
42
- throw exception;
42
+ return back(exception);
43
43
  }
44
44
 
45
45
  value = this.variable.evaluate(context);
@@ -52,7 +52,7 @@ export default define(class NodeQuery extends Element {
52
52
  message = `The '${valueString}' value's '${valueType}' type should be '${NOMINAL_VALUE_TYPE_NAME}'.`,
53
53
  exception = Exception.fromMessage(message);
54
54
 
55
- throw exception;
55
+ return back(exception);
56
56
  }
57
57
 
58
58
  let node;
@@ -67,7 +67,7 @@ export default define(class NodeQuery extends Element {
67
67
  message = `The '${valueString}' value's node is null.`,
68
68
  exception = Exception.fromMessage(message);
69
69
 
70
- throw exception;
70
+ return back(exception);
71
71
  }
72
72
 
73
73
  const nodes = this.query.execute(node),
@@ -89,14 +89,14 @@ export default define(class NodeQuery extends Element {
89
89
  const message = `The length of the returned nodes is ${nodesLength} when it should be 0 or 1.`,
90
90
  exception = Exception.fromMessage(message);
91
91
 
92
- throw exception;
92
+ return back(exception);
93
93
  }
94
94
 
95
95
  const valueString = value.getString();
96
96
 
97
97
  context.debug(`...evaluated the '${nodeQueryString}' function as '${valueString}'.`);
98
98
 
99
- return value;
99
+ return forward(value);
100
100
  }
101
101
 
102
102
  static name = "NodeQuery";
@@ -24,7 +24,7 @@ export default define(class NodesQuery extends Element {
24
24
  return this.query;
25
25
  }
26
26
 
27
- evaluate(context) {
27
+ evaluate(context, back, forward) {
28
28
  let value;
29
29
 
30
30
  const nodesQueryString = this.getString(); ///
@@ -35,7 +35,7 @@ export default define(class NodesQuery extends Element {
35
35
  const message = `Cannot evaluate the '${nodesQueryString}' function because its expression is malformed.`,
36
36
  exception = Exception.fromMessage(message);
37
37
 
38
- throw exception;
38
+ return back(exception);
39
39
  }
40
40
 
41
41
  value = this.variable.evaluate(context);
@@ -48,7 +48,7 @@ export default define(class NodesQuery extends Element {
48
48
  message = `The '${valueString}' value's '${valueType}' type should be '${NOMINAL_VALUE_TYPE_NAME}'.`,
49
49
  exception = Exception.fromMessage(message);
50
50
 
51
- throw exception;
51
+ return back(exception);
52
52
  }
53
53
 
54
54
  let node;
@@ -63,7 +63,7 @@ export default define(class NodesQuery extends Element {
63
63
  message = `The '${valueString}' value's node is null.`,
64
64
  exception = Exception.fromMessage(message);
65
65
 
66
- throw exception;
66
+ return back(exception);
67
67
  }
68
68
 
69
69
  const nodes = this.query.execute(node);
@@ -74,7 +74,7 @@ export default define(class NodesQuery extends Element {
74
74
 
75
75
  context.debug(`...evaluated the '${nodesQueryString}' function as '${valueString}'.`);
76
76
 
77
- return value;
77
+ return forward(value);
78
78
  }
79
79
 
80
80
  static name = "NodesQuery";
@@ -26,12 +26,12 @@ export default define(class Primitive extends Element {
26
26
  return this.value;
27
27
  }
28
28
 
29
- evaluate(context) {
29
+ evaluate(context, back, forward) {
30
30
  const { Term } = elements,
31
31
  primitive = this,
32
32
  term = Term.fromPrimitive(primitive, context);
33
33
 
34
- return term;
34
+ return forward(term);
35
35
  }
36
36
 
37
37
  isEqualTo(primitive) {
@@ -15,7 +15,7 @@ export default define(class ReturnStatement extends Element {
15
15
  return this.value;
16
16
  }
17
17
 
18
- evaluate(context) {
18
+ evaluate(context, back, forward) {
19
19
  let value;
20
20
 
21
21
  const returnStatementString = this.getString(); ///
@@ -28,7 +28,7 @@ export default define(class ReturnStatement extends Element {
28
28
 
29
29
  context.debug(`...evaluated the '${returnStatementString}' return statement as '${valueString}'.`);
30
30
 
31
- return value;
31
+ return forward(value);
32
32
  }
33
33
 
34
34
  static name = "ReturnStatement";