occam-furtle 3.0.305 → 3.0.310

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 (87) hide show
  1. package/lib/element/assignment/array.js +20 -20
  2. package/lib/element/assignment/object.js +17 -14
  3. package/lib/element/binding/named.js +6 -6
  4. package/lib/element/binding.js +4 -4
  5. package/lib/element/every.js +8 -8
  6. package/lib/element/nodeQuery.js +5 -5
  7. package/lib/element/nodesQuery.js +5 -5
  8. package/lib/element/parameter.js +4 -4
  9. package/lib/element/primitive.js +42 -23
  10. package/lib/element/procedure/anonymous.js +4 -4
  11. package/lib/element/procedure.js +8 -10
  12. package/lib/element/reduce.js +6 -6
  13. package/lib/element/some.js +8 -8
  14. package/lib/element/term/comparison.js +4 -4
  15. package/lib/element/term/logical.js +7 -7
  16. package/lib/element/term/negated.js +5 -5
  17. package/lib/element/term.js +3 -3
  18. package/lib/element/ternary.js +5 -5
  19. package/lib/element/type.js +94 -0
  20. package/lib/element/value.js +56 -5
  21. package/lib/element/variable.js +4 -4
  22. package/lib/node/assignments/variable.js +4 -10
  23. package/lib/node/binding/named.js +2 -2
  24. package/lib/node/binding.js +16 -23
  25. package/lib/node/declaration/procedure.js +4 -10
  26. package/lib/node/parameter.js +5 -10
  27. package/lib/node/primitive.js +9 -9
  28. package/lib/node/procedure/anoymous.js +4 -10
  29. package/lib/node/type.js +41 -0
  30. package/lib/nominalValueProperties.js +86 -0
  31. package/lib/nominalValueProperty.js +45 -0
  32. package/lib/nonTerminalNodeMap.js +3 -1
  33. package/lib/preamble.js +2 -1
  34. package/lib/ruleNames.js +5 -1
  35. package/lib/typeNames.js +34 -0
  36. package/lib/utilities/element.js +50 -18
  37. package/lib/utilities/primitive.js +13 -9
  38. package/lib/utilities/string.js +35 -22
  39. package/lib/utilities/value.js +9 -20
  40. package/lib/utilities/values.js +3 -3
  41. package/package.json +2 -2
  42. package/src/element/assignment/array.js +31 -26
  43. package/src/element/assignment/object.js +20 -13
  44. package/src/element/binding/named.js +10 -6
  45. package/src/element/binding.js +5 -3
  46. package/src/element/every.js +9 -7
  47. package/src/element/nodeQuery.js +5 -4
  48. package/src/element/nodesQuery.js +5 -4
  49. package/src/element/parameter.js +5 -3
  50. package/src/element/primitive.js +56 -26
  51. package/src/element/procedure/anonymous.js +5 -3
  52. package/src/element/procedure.js +8 -12
  53. package/src/element/reduce.js +6 -5
  54. package/src/element/some.js +9 -7
  55. package/src/element/term/comparison.js +6 -3
  56. package/src/element/term/logical.js +8 -6
  57. package/src/element/term/negated.js +5 -4
  58. package/src/element/term.js +3 -2
  59. package/src/element/ternary.js +5 -4
  60. package/src/element/type.js +128 -0
  61. package/src/element/value.js +27 -3
  62. package/src/element/variable.js +5 -3
  63. package/src/node/assignments/variable.js +5 -13
  64. package/src/node/binding/named.js +1 -1
  65. package/src/node/binding.js +19 -30
  66. package/src/node/declaration/procedure.js +5 -13
  67. package/src/node/parameter.js +6 -14
  68. package/src/node/primitive.js +8 -8
  69. package/src/node/procedure/anoymous.js +5 -13
  70. package/src/node/type.js +43 -0
  71. package/src/nominalValueProperties.js +103 -0
  72. package/src/nominalValueProperty.js +55 -0
  73. package/src/nonTerminalNodeMap.js +3 -0
  74. package/src/preamble.js +1 -0
  75. package/src/ruleNames.js +1 -0
  76. package/src/typeNames.js +7 -0
  77. package/src/utilities/element.js +67 -19
  78. package/src/utilities/primitive.js +31 -22
  79. package/src/utilities/string.js +42 -24
  80. package/src/utilities/value.js +18 -31
  81. package/src/utilities/values.js +1 -2
  82. package/lib/nodeProperties.js +0 -78
  83. package/lib/nodeProperty.js +0 -45
  84. package/lib/types.js +0 -34
  85. package/src/nodeProperties.js +0 -89
  86. package/src/nodeProperty.js +0 -53
  87. package/src/types.js +0 -7
@@ -23,7 +23,7 @@ _export(exports, {
23
23
  }
24
24
  });
25
25
  const _elements = /*#__PURE__*/ _interop_require_default(require("../elements"));
26
- const _types = require("../types");
26
+ const _typeNames = require("../typeNames");
27
27
  const _string = require("../utilities/string");
28
28
  function _interop_require_default(obj) {
29
29
  return obj && obj.__esModule ? obj : {
@@ -31,24 +31,28 @@ function _interop_require_default(obj) {
31
31
  };
32
32
  }
33
33
  function primitiveFromBoolean(boolean, context) {
34
- const { Primitive } = _elements.default, primitiveString = (0, _string.primtiveStringFromBoolean)(boolean), string = primitiveString, type = _types.BOOLEAN_TYPE, value = boolean, node = null, breakPoint = null;
34
+ const { Type, Primitive } = _elements.default, primitiveString = (0, _string.primtiveStringFromBoolean)(boolean), string = primitiveString, typeName = _typeNames.BOOLEAN_TYPE_NAME, type = Type.fromTypeName(typeName, context), value = boolean, node = null, breakPoint = null;
35
35
  context = null;
36
36
  const primitive = new Primitive(context, string, node, breakPoint, type, value);
37
37
  return primitive;
38
38
  }
39
- function primitiveFromNominalValue(nominalValue) {
40
- const { Primitive } = _elements.default, primitiveString = (0, _string.primtiveStringFromNominalValue)(nominalValue), string = primitiveString, type = _types.NOMINAL_VALUE_TYPE, value = nominalValue, breakPoint = null, node = null, context = null, primitive = new Primitive(context, string, node, breakPoint, type, value);
39
+ function primitiveFromNominalValue(nominalValue, context) {
40
+ const { Type, Primitive } = _elements.default, primitiveString = (0, _string.primtiveStringFromNominalValue)(nominalValue), string = primitiveString, typeName = _typeNames.NOMINAL_VALUE_TYPE_NAME, type = Type.fromTypeName(typeName, context), value = nominalValue, breakPoint = null, node = null;
41
+ context = null;
42
+ const primitive = new Primitive(context, string, node, breakPoint, type, value);
41
43
  return primitive;
42
44
  }
43
- function primitiveFromNominalValues(nominalValues) {
44
- const { Primitive } = _elements.default, primitiveString = (0, _string.primtiveStringFromNominalValues)(nominalValues), string = primitiveString, type = _types.NOMINAL_VALUES_TYPE, value = nominalValues, node = null, breakPoint = null, context = null, primitive = new Primitive(context, string, node, breakPoint, type, value);
45
+ function primitiveFromStringLiteral(stringLiteral, context) {
46
+ const { Type, Primitive } = _elements.default, primitiveString = (0, _string.primtiveStringFromStringLiteral)(stringLiteral), string = primitiveString, typeName = _typeNames.STRING_TYPE_NAME, type = Type.fromTypeName(typeName, context), value = stringLiteral, node = null, breakPoint = null;
47
+ context = null;
48
+ const primitive = new Primitive(context, string, node, breakPoint, type, value);
45
49
  return primitive;
46
50
  }
47
- function primitiveFromStringLiteral(stringLiteral, context) {
48
- const { Primitive } = _elements.default, primitiveString = (0, _string.primtiveStringFromStringLiteral)(stringLiteral), string = primitiveString, type = _types.STRING_TYPE, value = stringLiteral, node = null, breakPoint = null;
51
+ function primitiveFromNominalValues(nominalValues, context) {
52
+ const { Type, Primitive } = _elements.default, primitiveString = (0, _string.primtiveStringFromNominalValues)(nominalValues), string = primitiveString, argumentTypeName = _typeNames.NOMINAL_VALUE_TYPE_NAME, typeName = _typeNames.LIST_TYPE_NAME, type = Type.fromTypeNameAndArgumentTypeName(typeName, argumentTypeName, context), value = nominalValues, node = null, breakPoint = null;
49
53
  context = null;
50
54
  const primitive = new Primitive(context, string, node, breakPoint, type, value);
51
55
  return primitive;
52
56
  }
53
57
 
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJpbWl0aXZlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IFNUUklOR19UWVBFLCBCT09MRUFOX1RZUEUsIE5PTUlOQUxfVkFMVUVfVFlQRSwgTk9NSU5BTF9WQUxVRVNfVFlQRSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbiwgcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlLCBwcmltdGl2ZVN0cmluZ0Zyb21Ob21pbmFsVmFsdWVzLCBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHByaW1pdGl2ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBQcmltaXRpdmUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBwcmltaXRpdmVTdHJpbmcgPSBwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuKGJvb2xlYW4pLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmVTdHJpbmcsICAvLy9cbiAgICAgICAgdHlwZSA9IEJPT0xFQU5fVFlQRSxcbiAgICAgICAgdmFsdWUgPSBib29sZWFuLCAgLy8vXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICBjb250ZXh0ID0gbnVsbDtcblxuICBjb25zdCBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSkge1xuICBjb25zdCB7IFByaW1pdGl2ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByaW1pdGl2ZVN0cmluZyA9IHByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmVTdHJpbmcsICAvLy9cbiAgICAgICAgdHlwZSA9IE5PTUlOQUxfVkFMVUVfVFlQRSxcbiAgICAgICAgdmFsdWUgPSBub21pbmFsVmFsdWUsIC8vL1xuICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIGNvbnRleHQgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSB7XG4gIGNvbnN0IHsgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAgLy8vXG4gICAgICAgIHR5cGUgPSBOT01JTkFMX1ZBTFVFU19UWVBFLFxuICAgICAgICB2YWx1ZSA9IG5vbWluYWxWYWx1ZXMsICAvLy9cbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICBjb250ZXh0ID0gbnVsbCxcbiAgICAgICAgcHJpbWl0aXZlID0gbmV3IFByaW1pdGl2ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHZhbHVlKTtcblxuICByZXR1cm4gcHJpbWl0aXZlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCkge1xuICBjb25zdCB7IFByaW1pdGl2ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByaW1pdGl2ZVN0cmluZyA9IHByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgIC8vL1xuICAgICAgICB0eXBlID0gU1RSSU5HX1RZUEUsXG4gICAgICAgIHZhbHVlID0gc3RyaW5nTGl0ZXJhbCwgIC8vL1xuICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgY29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgcHJpbWl0aXZlID0gbmV3IFByaW1pdGl2ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHZhbHVlKTtcblxuICByZXR1cm4gcHJpbWl0aXZlO1xufVxuIl0sIm5hbWVzIjpbInByaW1pdGl2ZUZyb21Cb29sZWFuIiwicHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZSIsInByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWVzIiwicHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwiLCJib29sZWFuIiwiY29udGV4dCIsIlByaW1pdGl2ZSIsImVsZW1lbnRzIiwicHJpbWl0aXZlU3RyaW5nIiwicHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbiIsInN0cmluZyIsInR5cGUiLCJCT09MRUFOX1RZUEUiLCJ2YWx1ZSIsIm5vZGUiLCJicmVha1BvaW50IiwicHJpbWl0aXZlIiwibm9taW5hbFZhbHVlIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlIiwiTk9NSU5BTF9WQUxVRV9UWVBFIiwibm9taW5hbFZhbHVlcyIsInByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZXMiLCJOT01JTkFMX1ZBTFVFU19UWVBFIiwic3RyaW5nTGl0ZXJhbCIsInByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwiLCJTVFJJTkdfVFlQRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBT2dCQTtlQUFBQTs7UUFnQkFDO2VBQUFBOztRQWNBQztlQUFBQTs7UUFjQUM7ZUFBQUE7OztpRUFqREs7dUJBRThEO3dCQUN5RDs7Ozs7O0FBRXJJLFNBQVNILHFCQUFxQkksT0FBTyxFQUFFQyxPQUFPO0lBQ25ELE1BQU0sRUFBRUMsU0FBUyxFQUFFLEdBQUdDLGlCQUFRLEVBQ3hCQyxrQkFBa0JDLElBQUFBLGlDQUF5QixFQUFDTCxVQUM1Q00sU0FBU0YsaUJBQ1RHLE9BQU9DLG1CQUFZLEVBQ25CQyxRQUFRVCxTQUNSVSxPQUFPLE1BQ1BDLGFBQWE7SUFFbkJWLFVBQVU7SUFFVixNQUFNVyxZQUFZLElBQUlWLFVBQVVELFNBQVNLLFFBQVFJLE1BQU1DLFlBQVlKLE1BQU1FO0lBRXpFLE9BQU9HO0FBQ1Q7QUFFTyxTQUFTZiwwQkFBMEJnQixZQUFZO0lBQ3BELE1BQU0sRUFBRVgsU0FBUyxFQUFFLEdBQUdDLGlCQUFRLEVBQ3hCQyxrQkFBa0JVLElBQUFBLHNDQUE4QixFQUFDRCxlQUNqRFAsU0FBU0YsaUJBQ1RHLE9BQU9RLHlCQUFrQixFQUN6Qk4sUUFBUUksY0FDUkYsYUFBYSxNQUNiRCxPQUFPLE1BQ1BULFVBQVUsTUFDVlcsWUFBWSxJQUFJVixVQUFVRCxTQUFTSyxRQUFRSSxNQUFNQyxZQUFZSixNQUFNRTtJQUV6RSxPQUFPRztBQUNUO0FBRU8sU0FBU2QsMkJBQTJCa0IsYUFBYTtJQUN0RCxNQUFNLEVBQUVkLFNBQVMsRUFBRSxHQUFHQyxpQkFBUSxFQUN4QkMsa0JBQWtCYSxJQUFBQSx1Q0FBK0IsRUFBQ0QsZ0JBQ2xEVixTQUFTRixpQkFDVEcsT0FBT1csMEJBQW1CLEVBQzFCVCxRQUFRTyxlQUNSTixPQUFPLE1BQ1BDLGFBQWEsTUFDYlYsVUFBVSxNQUNWVyxZQUFZLElBQUlWLFVBQVVELFNBQVNLLFFBQVFJLE1BQU1DLFlBQVlKLE1BQU1FO0lBRXpFLE9BQU9HO0FBQ1Q7QUFFTyxTQUFTYiwyQkFBMkJvQixhQUFhLEVBQUVsQixPQUFPO0lBQy9ELE1BQU0sRUFBRUMsU0FBUyxFQUFFLEdBQUdDLGlCQUFRLEVBQ3hCQyxrQkFBa0JnQixJQUFBQSx1Q0FBK0IsRUFBQ0QsZ0JBQ2xEYixTQUFTRixpQkFDVEcsT0FBT2Msa0JBQVcsRUFDbEJaLFFBQVFVLGVBQ1JULE9BQU8sTUFDUEMsYUFBYTtJQUVuQlYsVUFBVTtJQUVWLE1BQU1XLFlBQVksSUFBSVYsVUFBVUQsU0FBU0ssUUFBUUksTUFBTUMsWUFBWUosTUFBTUU7SUFFekUsT0FBT0c7QUFDVCJ9
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJpbWl0aXZlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSwgTElTVF9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyBwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuLCBwcmltdGl2ZVN0cmluZ0Zyb21Ob21pbmFsVmFsdWUsIHByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZXMsIHByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJpbWl0aXZlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCkge1xuICBjb25zdCB7IFR5cGUsIFByaW1pdGl2ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByaW1pdGl2ZVN0cmluZyA9IHByaW10aXZlU3RyaW5nRnJvbUJvb2xlYW4oYm9vbGVhbiksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgIC8vL1xuICAgICAgICB0eXBlTmFtZSA9IEJPT0xFQU5fVFlQRV9OQU1FLFxuICAgICAgICB0eXBlID0gVHlwZS5mcm9tVHlwZU5hbWUodHlwZU5hbWUsIGNvbnRleHQpLFxuICAgICAgICB2YWx1ZSA9IGJvb2xlYW4sICAvLy9cbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gIGNvbnRleHQgPSBudWxsO1xuXG4gIGNvbnN0IHByaW1pdGl2ZSA9IG5ldyBQcmltaXRpdmUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCB2YWx1ZSk7XG5cbiAgcmV0dXJuIHByaW1pdGl2ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVHlwZSwgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgIC8vL1xuICAgICAgICB0eXBlTmFtZSA9IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FLFxuICAgICAgICB0eXBlID0gVHlwZS5mcm9tVHlwZU5hbWUodHlwZU5hbWUsIGNvbnRleHQpLFxuICAgICAgICB2YWx1ZSA9IG5vbWluYWxWYWx1ZSwgLy8vXG4gICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICBub2RlID0gbnVsbDtcblxuICBjb250ZXh0ID0gbnVsbDtcblxuICBjb25zdCBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVHlwZSwgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAgLy8vXG4gICAgICAgIHR5cGVOYW1lID0gU1RSSU5HX1RZUEVfTkFNRSxcbiAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOYW1lKHR5cGVOYW1lLCBjb250ZXh0KSxcbiAgICAgICAgdmFsdWUgPSBzdHJpbmdMaXRlcmFsLCAgLy8vXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICBjb250ZXh0ID0gbnVsbDtcblxuICBjb25zdCBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVHlwZSwgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAgLy8vXG4gICAgICAgIGFyZ3VtZW50VHlwZU5hbWUgPSBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSxcbiAgICAgICAgdHlwZU5hbWUgPSBMSVNUX1RZUEVfTkFNRSxcbiAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSh0eXBlTmFtZSwgYXJndW1lbnRUeXBlTmFtZSwgY29udGV4dCksXG4gICAgICAgIHZhbHVlID0gbm9taW5hbFZhbHVlcywgIC8vL1xuICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgY29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgcHJpbWl0aXZlID0gbmV3IFByaW1pdGl2ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHZhbHVlKTtcblxuICByZXR1cm4gcHJpbWl0aXZlO1xufVxuIl0sIm5hbWVzIjpbInByaW1pdGl2ZUZyb21Cb29sZWFuIiwicHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZSIsInByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWVzIiwicHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwiLCJib29sZWFuIiwiY29udGV4dCIsIlR5cGUiLCJQcmltaXRpdmUiLCJlbGVtZW50cyIsInByaW1pdGl2ZVN0cmluZyIsInByaW10aXZlU3RyaW5nRnJvbUJvb2xlYW4iLCJzdHJpbmciLCJ0eXBlTmFtZSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwidHlwZSIsImZyb21UeXBlTmFtZSIsInZhbHVlIiwibm9kZSIsImJyZWFrUG9pbnQiLCJwcmltaXRpdmUiLCJub21pbmFsVmFsdWUiLCJwcmltdGl2ZVN0cmluZ0Zyb21Ob21pbmFsVmFsdWUiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsInN0cmluZ0xpdGVyYWwiLCJwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIiwiU1RSSU5HX1RZUEVfTkFNRSIsIm5vbWluYWxWYWx1ZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21Ob21pbmFsVmFsdWVzIiwiYXJndW1lbnRUeXBlTmFtZSIsIkxJU1RfVFlQRV9OQU1FIiwiZnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBT2dCQTtlQUFBQTs7UUFpQkFDO2VBQUFBOztRQWtDQUM7ZUFBQUE7O1FBakJBQztlQUFBQTs7O2lFQXZDSzsyQkFFd0U7d0JBQytDOzs7Ozs7QUFFckksU0FBU0gscUJBQXFCSSxPQUFPLEVBQUVDLE9BQU87SUFDbkQsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxpQkFBUSxFQUM5QkMsa0JBQWtCQyxJQUFBQSxpQ0FBeUIsRUFBQ04sVUFDNUNPLFNBQVNGLGlCQUNURyxXQUFXQyw0QkFBaUIsRUFDNUJDLE9BQU9SLEtBQUtTLFlBQVksQ0FBQ0gsVUFBVVAsVUFDbkNXLFFBQVFaLFNBQ1JhLE9BQU8sTUFDUEMsYUFBYTtJQUVuQmIsVUFBVTtJQUVWLE1BQU1jLFlBQVksSUFBSVosVUFBVUYsU0FBU00sUUFBUU0sTUFBTUMsWUFBWUosTUFBTUU7SUFFekUsT0FBT0c7QUFDVDtBQUVPLFNBQVNsQiwwQkFBMEJtQixZQUFZLEVBQUVmLE9BQU87SUFDN0QsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxpQkFBUSxFQUM5QkMsa0JBQWtCWSxJQUFBQSxzQ0FBOEIsRUFBQ0QsZUFDakRULFNBQVNGLGlCQUNURyxXQUFXVSxrQ0FBdUIsRUFDbENSLE9BQU9SLEtBQUtTLFlBQVksQ0FBQ0gsVUFBVVAsVUFDbkNXLFFBQVFJLGNBQ1JGLGFBQWEsTUFDYkQsT0FBTztJQUViWixVQUFVO0lBRVYsTUFBTWMsWUFBWSxJQUFJWixVQUFVRixTQUFTTSxRQUFRTSxNQUFNQyxZQUFZSixNQUFNRTtJQUV6RSxPQUFPRztBQUNUO0FBRU8sU0FBU2hCLDJCQUEyQm9CLGFBQWEsRUFBRWxCLE9BQU87SUFDL0QsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxpQkFBUSxFQUM5QkMsa0JBQWtCZSxJQUFBQSx1Q0FBK0IsRUFBQ0QsZ0JBQ2xEWixTQUFTRixpQkFDVEcsV0FBV2EsMkJBQWdCLEVBQzNCWCxPQUFPUixLQUFLUyxZQUFZLENBQUNILFVBQVVQLFVBQ25DVyxRQUFRTyxlQUNSTixPQUFPLE1BQ1BDLGFBQWE7SUFFbkJiLFVBQVU7SUFFVixNQUFNYyxZQUFZLElBQUlaLFVBQVVGLFNBQVNNLFFBQVFNLE1BQU1DLFlBQVlKLE1BQU1FO0lBRXpFLE9BQU9HO0FBQ1Q7QUFFTyxTQUFTakIsMkJBQTJCd0IsYUFBYSxFQUFFckIsT0FBTztJQUMvRCxNQUFNLEVBQUVDLElBQUksRUFBRUMsU0FBUyxFQUFFLEdBQUdDLGlCQUFRLEVBQzlCQyxrQkFBa0JrQixJQUFBQSx1Q0FBK0IsRUFBQ0QsZ0JBQ2xEZixTQUFTRixpQkFDVG1CLG1CQUFtQk4sa0NBQXVCLEVBQzFDVixXQUFXaUIseUJBQWMsRUFDekJmLE9BQU9SLEtBQUt3QiwrQkFBK0IsQ0FBQ2xCLFVBQVVnQixrQkFBa0J2QixVQUN4RVcsUUFBUVUsZUFDUlQsT0FBTyxNQUNQQyxhQUFhO0lBRW5CYixVQUFVO0lBRVYsTUFBTWMsWUFBWSxJQUFJWixVQUFVRixTQUFTTSxRQUFRTSxNQUFNQyxZQUFZSixNQUFNRTtJQUV6RSxPQUFPRztBQUNUIn0=
@@ -18,11 +18,11 @@ _export(exports, {
18
18
  get expressionStringFromProperties () {
19
19
  return expressionStringFromProperties;
20
20
  },
21
- get nodePropertiesStringFromNodePropertiesArray () {
22
- return nodePropertiesStringFromNodePropertiesArray;
21
+ get nominalValuePropertiesStringFromNominalValuePropertiesArray () {
22
+ return nominalValuePropertiesStringFromNominalValuePropertiesArray;
23
23
  },
24
- get nodePropertyStringFromNameAndType () {
25
- return nodePropertyStringFromNameAndType;
24
+ get nominalValuePropertyStringFromNameAndType () {
25
+ return nominalValuePropertyStringFromNameAndType;
26
26
  },
27
27
  get primtiveStringFromBoolean () {
28
28
  return primtiveStringFromBoolean;
@@ -60,6 +60,9 @@ _export(exports, {
60
60
  get ternaryStringFromTerm () {
61
61
  return ternaryStringFromTerm;
62
62
  },
63
+ get typeStringFromTypeNameAndArgumentTypeName () {
64
+ return typeStringFromTypeNameAndArgumentTypeName;
65
+ },
63
66
  get valueStringFromProperties () {
64
67
  return valueStringFromProperties;
65
68
  },
@@ -154,28 +157,28 @@ function primtiveStringFromNominalValues(nominalValues) {
154
157
  }, null);
155
158
  return primtiveString;
156
159
  }
157
- function nodePropertyStringFromNameAndType(name, type) {
158
- const typeString = type, nameString = name, nodePropertyString = `${typeString} ${nameString}`;
159
- return nodePropertyString;
160
- }
161
160
  function procedureDeclarationStringFromProcedure(procedure) {
162
- const type = procedure.getType(), label = procedure.getLabel(), parameters = procedure.getParameters(), returnStatement = procedure.getReturnStatement(), labelString = label.getString(), parametersString = parameters.getString(), returnStatementString = returnStatement.getString(), procedureDelcarationString = `${type} ${labelString}(${parametersString}) { ... ${returnStatementString} }`;
161
+ const type = procedure.getType(), label = procedure.getLabel(), parameters = procedure.getParameters(), returnStatement = procedure.getReturnStatement(), typeString = type.getString(), labelString = label.getString(), parametersString = parameters.getString(), returnStatementString = returnStatement.getString(), procedureDelcarationString = `${typeString} ${labelString}(${parametersString}) { ... ${returnStatementString} }`;
163
162
  return procedureDelcarationString;
164
163
  }
165
164
  function returnBlockStringFromReturnStatementNode(returnStatement) {
166
165
  const returnStatementString = returnStatement.getString(), returnBlockString = `{ ... ${returnStatementString} }`;
167
166
  return returnBlockString;
168
167
  }
169
- function nodePropertiesStringFromNodePropertiesArray(nodePropertiesArray) {
170
- const nodePropertiesString = nodePropertiesArray.reduce((nodePropertiesString, nodeProperty)=>{
171
- const nodePropertyString = nodeProperty.getString();
172
- nodePropertiesString = nodePropertiesString === null ? nodePropertyString : `${nodePropertiesString}, ${nodePropertyString}`;
173
- return nodePropertiesString;
174
- }, null);
175
- return nodePropertiesString;
168
+ function nominalValuePropertyStringFromNameAndType(name, type) {
169
+ const nameString = name, typeString = type.getString(), nominalValuePropertyString = `${typeString} ${nameString}`;
170
+ return nominalValuePropertyString;
171
+ }
172
+ function typeStringFromTypeNameAndArgumentTypeName(typeName, argumentTypeName) {
173
+ let typeString;
174
+ typeString = `${typeName}`;
175
+ if (argumentTypeName !== null) {
176
+ typeString = `${typeString}<${argumentTypeName}>`;
177
+ }
178
+ return typeString;
176
179
  }
177
180
  function variableAssignmentStringFromTypeAndVariable(type, variable) {
178
- const variableString = variable.getString(), variableAssignmentString = `${type} ${variableString} = ... ;`;
181
+ const typeString = type.getString(), variableString = variable.getString(), variableAssignmentString = `${typeString} ${variableString} = ... ;`;
179
182
  return variableAssignmentString;
180
183
  }
181
184
  function someStringFromVariableAndAnonymousProcedure(variable, anonymousProcedure) {
@@ -191,20 +194,30 @@ function variableAssignmentStringFromVariableAssignment(variableAssignment) {
191
194
  return variableAssignmentString;
192
195
  }
193
196
  function procedureStringFromTypeLabelParametersAndReturnBlock(type, label, parameters, returnBlock) {
194
- const typeString = type, labelString = label.getString(), parametersString = parameters.getString(), returnBlockString = returnBlock.getString(), procedureString = `${typeString} ${labelString}(${parametersString}) ${returnBlockString}`;
197
+ const typeString = type.getString(), labelString = label.getString(), parametersString = parameters.getString(), returnBlockString = returnBlock.getString(), procedureString = `${typeString} ${labelString}(${parametersString}) ${returnBlockString}`;
195
198
  return procedureString;
196
199
  }
197
200
  function anonymousProcedureStringFromTypeParametersAndReturnBlock(type, parameters, returnBlock) {
198
- const typeString = type, parametersString = parameters.getString(), returnBlockString = returnBlock.getString(), anonymousProcedureString = `${typeString} (${parametersString}) ${returnBlockString}`;
201
+ const typeString = type.getString(), parametersString = parameters.getString(), returnBlockString = returnBlock.getString(), anonymousProcedureString = `${typeString} (${parametersString}) ${returnBlockString}`;
199
202
  return anonymousProcedureString;
200
203
  }
204
+ function nominalValuePropertiesStringFromNominalValuePropertiesArray(nominalValuePropertiesArray) {
205
+ const nominalValuePropertiesString = nominalValuePropertiesArray.reduce((nominalValuePropertiesString, nominalValueProperty)=>{
206
+ const nominalValuePropertyString = nominalValueProperty.getString();
207
+ nominalValuePropertiesString = nominalValuePropertiesString === null ? nominalValuePropertyString : `${nominalValuePropertiesString}, ${nominalValuePropertyString}`;
208
+ return nominalValuePropertiesString;
209
+ }, null);
210
+ return nominalValuePropertiesString;
211
+ }
201
212
  function variableAssignmentStringFromTypeAndVariableAssignmentsArray(type, variableAssignmentsArray) {
202
- let variableAssignmentsString = variableAssignmentsArray.reduce((variableAssignmentsString, variableAssignment)=>{
213
+ let variableAssignmentsString;
214
+ const typeString = type.getString();
215
+ variableAssignmentsString = variableAssignmentsArray.reduce((variableAssignmentsString, variableAssignment)=>{
203
216
  const variableAssignmentString = variableAssignmentStringFromVariableAssignment(variableAssignment);
204
217
  variableAssignmentsString = variableAssignmentsString === null ? variableAssignmentString : `${variableAssignmentsString}, ${variableAssignmentString}`;
205
218
  return variableAssignmentsString;
206
219
  }, null); ///
207
- variableAssignmentsString = `${type} ${variableAssignmentsString} ;`; ///
220
+ variableAssignmentsString = `${typeString} ${variableAssignmentsString} ;`; ///
208
221
  return variableAssignmentsString;
209
222
  }
210
223
  function reduceStringFromVariableInitialExpressionAndAnonymousProcedure(variable, initialExpression, anonymousProcedure) {
@@ -212,4 +225,4 @@ function reduceStringFromVariableInitialExpressionAndAnonymousProcedure(variable
212
225
  return reduceString;
213
226
  }
214
227
 
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybVN0cmluZ0Zyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgbGV0IHRlcm1TdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgdGVybVN0cmluZyA9IHByb3BlcnR5U3RyaW5nOyAgLy8vXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlU3RyaW5nRnJvbVByb3BlcnRpZXMocHJvcGVydGllcykge1xuICBsZXQgdmFsdWVTdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgdmFsdWVTdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHZhbHVlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSB7XG4gIGNvbnN0IGV4cHJlc3NzaW9uU3RyaW5nID0gYCR7Ym9vbGVhbn1gO1xuXG4gIHJldHVybiBleHByZXNzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSkge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zQXJyYXkucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgIHRlcm1TdHJpbmcgOlxuICAgICAgYCR7dGVybXNTdHJpbmd9LCAke3Rlcm1TdHJpbmd9YDtcblxuICAgIHJldHVybiB0ZXJtc1N0cmluZztcbiAgfSwgbnVsbCk7IC8vL1xuXG4gIHJldHVybiB0ZXJtc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSh2YWx1ZXNBcnJheSkge1xuICBjb25zdCB2YWx1ZXNTdHJpbmcgPSB2YWx1ZXNBcnJheS5yZWR1Y2UoKHZhbHVlc1N0cmluZywgdmFsdWUpID0+IHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgdmFsdWVzU3RyaW5nID0gKHZhbHVlc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgdmFsdWVTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICBgJHt2YWx1ZXNTdHJpbmd9LCAke3ZhbHVlU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdmFsdWVzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHZhbHVlc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpIHtcbiAgY29uc3Qgc3RyaW5nID0gbm9taW5hbFZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICBwcmltdGl2ZVN0cmluZyA9IHN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25TdHJpbmdGcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7XG4gIGxldCBleHByZXNzaW9uU3RyaW5nO1xuXG4gIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICBpZiAocHJvcGVydHkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpIHtcbiAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gbm9taW5hbFZhbHVlcy5yZWR1Y2UoKHByaW1pdGl2ZVN0cmluZywgbm9taW5hbFZhbHVlKSA9PiB7XG4gICAgY29uc3Qgbm9taW5hbFZhbHVlU3RyaW5nID0gbm9taW5hbFZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgcHJpbWl0aXZlU3RyaW5nID0gKHByaW1pdGl2ZVN0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICBgJHtwcmltaXRpdmVTdHJpbmd9LCAke25vbWluYWxWYWx1ZVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9taW5hbFZhbHVlU3RyaW5nOyAvLy9cblxuICAgIHJldHVybiBwcmltaXRpdmVTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVQcm9wZXJ0eVN0cmluZ0Zyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIG5hbWVTdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgIG5vZGVQcm9wZXJ0eVN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7bmFtZVN0cmluZ31gO1xuXG4gIHJldHVybiBub2RlUHJvcGVydHlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVEZWNsYXJhdGlvblN0cmluZ0Zyb21Qcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gIGNvbnN0IHR5cGUgPSBwcm9jZWR1cmUuZ2V0VHlwZSgpLFxuICAgICAgICBsYWJlbCA9IHByb2NlZHVyZS5nZXRMYWJlbCgpLFxuICAgICAgICBwYXJhbWV0ZXJzID0gcHJvY2VkdXJlLmdldFBhcmFtZXRlcnMoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50ID0gcHJvY2VkdXJlLmdldFJldHVyblN0YXRlbWVudCgpLFxuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZyA9IGAke3R5cGV9ICR7bGFiZWxTdHJpbmcgfSgke3BhcmFtZXRlcnNTdHJpbmd9KSB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZShyZXR1cm5TdGF0ZW1lbnQpIHtcbiAgY29uc3QgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IGB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHJldHVybkJsb2NrU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZVByb3BlcnRpZXNTdHJpbmdGcm9tTm9kZVByb3BlcnRpZXNBcnJheShub2RlUHJvcGVydGllc0FycmF5KSB7XG4gIGNvbnN0IG5vZGVQcm9wZXJ0aWVzU3RyaW5nID0gbm9kZVByb3BlcnRpZXNBcnJheS5yZWR1Y2UoKG5vZGVQcm9wZXJ0aWVzU3RyaW5nLCBub2RlUHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IG5vZGVQcm9wZXJ0eVN0cmluZyA9IG5vZGVQcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgbm9kZVByb3BlcnRpZXNTdHJpbmcgPSAobm9kZVByb3BlcnRpZXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlUHJvcGVydHlTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtub2RlUHJvcGVydGllc1N0cmluZ30sICR7bm9kZVByb3BlcnR5U3RyaW5nfWA7XG5cbiAgICAgIHJldHVybiBub2RlUHJvcGVydGllc1N0cmluZztcbiAgICB9LCBudWxsKTtcblxuICByZXR1cm4gbm9kZVByb3BlcnRpZXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlKHR5cGUsIHZhcmlhYmxlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3R5cGV9ICR7dmFyaWFibGVTdHJpbmd9ID0gLi4uIDtgO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBzb21lU3RyaW5nID0gYFNvbWUoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gc29tZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5U3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBldmVyeVN0cmluZyA9IGBFdmVyeSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBldmVyeVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQodmFyaWFibGVBc3NpZ25tZW50KSB7XG4gIGNvbnN0IHZhcmlhYmxlID0gdmFyaWFibGVBc3NpZ25tZW50LmdldFZhcmlhYmxlKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLmA7XG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2sodHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IHJldHVybkJsb2NrLmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAke2xhYmVsU3RyaW5nfSgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrKHR5cGUsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IHJldHVybkJsb2NrLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAoJHtwYXJhbWV0ZXJzU3RyaW5nfSkgJHtyZXR1cm5CbG9ja1N0cmluZ31gO1xuXG4gIHJldHVybiBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNBcnJheSh0eXBlLCB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkpIHtcbiAgbGV0IHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkucmVkdWNlKCh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nLCB2YXJpYWJsZUFzc2lnbm1lbnQpID0+IHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCk7XG5cbiAgICB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gKHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA6XG4gICAgICBgJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfSwgJHt2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmd9YDtcblxuICAgIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9IGAke3R5cGV9ICR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30gO2A7IC8vL1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGluaXRpYWxFeHByZXNzaW9uLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgaW5pdGlhbEV4cHJlc3Npb25TdHJpbmcgPSBpbml0aWFsRXhwcmVzc2lvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICByZWR1Y2VTdHJpbmcgPSBgUmVkdWNlKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30sICR7aW5pdGlhbEV4cHJlc3Npb25TdHJpbmd9KWA7XG5cbiAgcmV0dXJuIHJlZHVjZVN0cmluZztcbn1cblxuIl0sIm5hbWVzIjpbImFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwiZXZlcnlTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJleHByZXNzaW9uU3RyaW5nRnJvbVByb3BlcnRpZXMiLCJub2RlUHJvcGVydGllc1N0cmluZ0Zyb21Ob2RlUHJvcGVydGllc0FycmF5Iiwibm9kZVByb3BlcnR5U3RyaW5nRnJvbU5hbWVBbmRUeXBlIiwicHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbiIsInByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZSIsInByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIiwicHJvY2VkdXJlRGVjbGFyYXRpb25TdHJpbmdGcm9tUHJvY2VkdXJlIiwicHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVMYWJlbFBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayIsInJlZHVjZVN0cmluZ0Zyb21WYXJpYWJsZUluaXRpYWxFeHByZXNzaW9uQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwicmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZSIsInNvbWVTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJ0ZXJtU3RyaW5nRnJvbVByb3BlcnRpZXMiLCJ0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5IiwidGVybmFyeVN0cmluZ0Zyb21UZXJtIiwidmFsdWVTdHJpbmdGcm9tUHJvcGVydGllcyIsInZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQiLCJ2YXJpYWJsZVN0cmluZ0Zyb21OYW1lIiwidGVybSIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJ0ZXJuYXJ5U3RyaW5nIiwibmFtZSIsInZhcmlhYmxlU3RyaW5nIiwicHJvcGVydGllcyIsImZvckVhY2giLCJwcm9wZXJ0eSIsInByb3BlcnR5U3RyaW5nIiwidmFsdWVTdHJpbmciLCJib29sZWFuIiwiZXhwcmVzc3Npb25TdHJpbmciLCJ0ZXJtc0FycmF5IiwidGVybXNTdHJpbmciLCJyZWR1Y2UiLCJ2YWx1ZXNBcnJheSIsInZhbHVlc1N0cmluZyIsInZhbHVlIiwibm9taW5hbFZhbHVlIiwic3RyaW5nIiwicHJpbXRpdmVTdHJpbmciLCJleHByZXNzaW9uU3RyaW5nIiwic3RyaW5nTGl0ZXJhbCIsInN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIiwibm9taW5hbFZhbHVlcyIsInByaW1pdGl2ZVN0cmluZyIsIm5vbWluYWxWYWx1ZVN0cmluZyIsInR5cGUiLCJ0eXBlU3RyaW5nIiwibmFtZVN0cmluZyIsIm5vZGVQcm9wZXJ0eVN0cmluZyIsInByb2NlZHVyZSIsImdldFR5cGUiLCJsYWJlbCIsImdldExhYmVsIiwicGFyYW1ldGVycyIsImdldFBhcmFtZXRlcnMiLCJyZXR1cm5TdGF0ZW1lbnQiLCJnZXRSZXR1cm5TdGF0ZW1lbnQiLCJsYWJlbFN0cmluZyIsInBhcmFtZXRlcnNTdHJpbmciLCJyZXR1cm5TdGF0ZW1lbnRTdHJpbmciLCJwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZyIsInJldHVybkJsb2NrU3RyaW5nIiwibm9kZVByb3BlcnRpZXNBcnJheSIsIm5vZGVQcm9wZXJ0aWVzU3RyaW5nIiwibm9kZVByb3BlcnR5IiwidmFyaWFibGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmciLCJhbm9ueW1vdXNQcm9jZWR1cmUiLCJhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmciLCJzb21lU3RyaW5nIiwiZXZlcnlTdHJpbmciLCJ2YXJpYWJsZUFzc2lnbm1lbnQiLCJnZXRWYXJpYWJsZSIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlU3RyaW5nIiwidmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyIsImluaXRpYWxFeHByZXNzaW9uIiwiaW5pdGlhbEV4cHJlc3Npb25TdHJpbmciLCJyZWR1Y2VTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTRNZ0JBO2VBQUFBOztRQTFCQUM7ZUFBQUE7O1FBNUZBQztlQUFBQTs7UUErREFDO2VBQUFBOztRQTVCQUM7ZUFBQUE7O1FBNUVBQztlQUFBQTs7UUFrQ0FDO2VBQUFBOztRQTRCQUM7ZUFBQUE7O1FBUEFDO2VBQUFBOztRQTZCQUM7ZUFBQUE7O1FBaUVBQztlQUFBQTs7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
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybVN0cmluZ0Zyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgbGV0IHRlcm1TdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgdGVybVN0cmluZyA9IHByb3BlcnR5U3RyaW5nOyAgLy8vXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlU3RyaW5nRnJvbVByb3BlcnRpZXMocHJvcGVydGllcykge1xuICBsZXQgdmFsdWVTdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgdmFsdWVTdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHZhbHVlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSB7XG4gIGNvbnN0IGV4cHJlc3NzaW9uU3RyaW5nID0gYCR7Ym9vbGVhbn1gO1xuXG4gIHJldHVybiBleHByZXNzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSkge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zQXJyYXkucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgIHRlcm1TdHJpbmcgOlxuICAgICAgYCR7dGVybXNTdHJpbmd9LCAke3Rlcm1TdHJpbmd9YDtcblxuICAgIHJldHVybiB0ZXJtc1N0cmluZztcbiAgfSwgbnVsbCk7IC8vL1xuXG4gIHJldHVybiB0ZXJtc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSh2YWx1ZXNBcnJheSkge1xuICBjb25zdCB2YWx1ZXNTdHJpbmcgPSB2YWx1ZXNBcnJheS5yZWR1Y2UoKHZhbHVlc1N0cmluZywgdmFsdWUpID0+IHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgdmFsdWVzU3RyaW5nID0gKHZhbHVlc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgdmFsdWVTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICBgJHt2YWx1ZXNTdHJpbmd9LCAke3ZhbHVlU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdmFsdWVzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHZhbHVlc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpIHtcbiAgY29uc3Qgc3RyaW5nID0gbm9taW5hbFZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICBwcmltdGl2ZVN0cmluZyA9IHN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25TdHJpbmdGcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7XG4gIGxldCBleHByZXNzaW9uU3RyaW5nO1xuXG4gIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICBpZiAocHJvcGVydHkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpIHtcbiAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gbm9taW5hbFZhbHVlcy5yZWR1Y2UoKHByaW1pdGl2ZVN0cmluZywgbm9taW5hbFZhbHVlKSA9PiB7XG4gICAgY29uc3Qgbm9taW5hbFZhbHVlU3RyaW5nID0gbm9taW5hbFZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgcHJpbWl0aXZlU3RyaW5nID0gKHByaW1pdGl2ZVN0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICBgJHtwcmltaXRpdmVTdHJpbmd9LCAke25vbWluYWxWYWx1ZVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9taW5hbFZhbHVlU3RyaW5nOyAvLy9cblxuICAgIHJldHVybiBwcmltaXRpdmVTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZShwcm9jZWR1cmUpIHtcbiAgY29uc3QgdHlwZSA9IHByb2NlZHVyZS5nZXRUeXBlKCksXG4gICAgICAgIGxhYmVsID0gcHJvY2VkdXJlLmdldExhYmVsKCksXG4gICAgICAgIHBhcmFtZXRlcnMgPSBwcm9jZWR1cmUuZ2V0UGFyYW1ldGVycygpLFxuICAgICAgICByZXR1cm5TdGF0ZW1lbnQgPSBwcm9jZWR1cmUuZ2V0UmV0dXJuU3RhdGVtZW50KCksXG4gICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpLFxuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7bGFiZWxTdHJpbmcgfSgke3BhcmFtZXRlcnNTdHJpbmd9KSB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZShyZXR1cm5TdGF0ZW1lbnQpIHtcbiAgY29uc3QgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IGB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHJldHVybkJsb2NrU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmdGcm9tTmFtZUFuZFR5cGUobmFtZSwgdHlwZSkge1xuICBjb25zdCBuYW1lU3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICB0eXBlU3RyaW5nID0gdHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAke25hbWVTdHJpbmd9YDtcblxuICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlU3RyaW5nRnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSh0eXBlTmFtZSwgYXJndW1lbnRUeXBlTmFtZSkge1xuICBsZXQgdHlwZVN0cmluZztcblxuICB0eXBlU3RyaW5nID0gYCR7dHlwZU5hbWV9YDtcblxuICBpZiAoYXJndW1lbnRUeXBlTmFtZSAhPT0gbnVsbCkge1xuICAgIHR5cGVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfTwke2FyZ3VtZW50VHlwZU5hbWV9PmA7XG4gIH1cblxuICByZXR1cm4gdHlwZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGUodHlwZSwgdmFyaWFibGUpIHtcbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7dmFyaWFibGVTdHJpbmd9ID0gLi4uIDtgO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBzb21lU3RyaW5nID0gYFNvbWUoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gc29tZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5U3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBldmVyeVN0cmluZyA9IGBFdmVyeSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBldmVyeVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQodmFyaWFibGVBc3NpZ25tZW50KSB7XG4gIGNvbnN0IHZhcmlhYmxlID0gdmFyaWFibGVBc3NpZ25tZW50LmdldFZhcmlhYmxlKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLmA7XG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2sodHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpLFxuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gJHtsYWJlbFN0cmluZ30oJHtwYXJhbWV0ZXJzU3RyaW5nfSkgJHtyZXR1cm5CbG9ja1N0cmluZ31gO1xuXG4gIHJldHVybiBwcm9jZWR1cmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmdGcm9tVHlwZVBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayh0eXBlLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgcGFyYW1ldGVyc1N0cmluZyA9IHBhcmFtZXRlcnMuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVybkJsb2NrU3RyaW5nID0gcmV0dXJuQmxvY2suZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIGFub255bW91c1Byb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmdGcm9tTm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5KG5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSkge1xuICBjb25zdCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nID0gbm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5LnJlZHVjZSgobm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZywgbm9taW5hbFZhbHVlUHJvcGVydHkpID0+IHtcbiAgICBjb25zdCBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZyA9IG5vbWluYWxWYWx1ZVByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgbm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZyA9IChub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nfSwgJHtub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkodHlwZSwgdmFyaWFibGVBc3NpZ25tZW50c0FycmF5KSB7XG4gIGxldCB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xuXG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpO1xuXG4gIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkucmVkdWNlKCh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nLCB2YXJpYWJsZUFzc2lnbm1lbnQpID0+IHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCk7XG5cbiAgICB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gKHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA6XG4gICAgICBgJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfSwgJHt2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmd9YDtcblxuICAgIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30gO2A7IC8vL1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGluaXRpYWxFeHByZXNzaW9uLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgaW5pdGlhbEV4cHJlc3Npb25TdHJpbmcgPSBpbml0aWFsRXhwcmVzc2lvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICByZWR1Y2VTdHJpbmcgPSBgUmVkdWNlKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30sICR7aW5pdGlhbEV4cHJlc3Npb25TdHJpbmd9KWA7XG5cbiAgcmV0dXJuIHJlZHVjZVN0cmluZztcbn1cblxuIl0sIm5hbWVzIjpbImFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwiZXZlcnlTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJleHByZXNzaW9uU3RyaW5nRnJvbVByb3BlcnRpZXMiLCJub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nRnJvbU5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSIsIm5vbWluYWxWYWx1ZVByb3BlcnR5U3RyaW5nRnJvbU5hbWVBbmRUeXBlIiwicHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbiIsInByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZSIsInByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIiwicHJvY2VkdXJlRGVjbGFyYXRpb25TdHJpbmdGcm9tUHJvY2VkdXJlIiwicHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVMYWJlbFBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayIsInJlZHVjZVN0cmluZ0Zyb21WYXJpYWJsZUluaXRpYWxFeHByZXNzaW9uQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwicmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZSIsInNvbWVTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJ0ZXJtU3RyaW5nRnJvbVByb3BlcnRpZXMiLCJ0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5IiwidGVybmFyeVN0cmluZ0Zyb21UZXJtIiwidHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUiLCJ2YWx1ZVN0cmluZ0Zyb21Qcm9wZXJ0aWVzIiwidmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlQXNzaWdubWVudCIsInZhcmlhYmxlU3RyaW5nRnJvbU5hbWUiLCJ0ZXJtIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsInRlcm5hcnlTdHJpbmciLCJuYW1lIiwidmFyaWFibGVTdHJpbmciLCJwcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3BlcnR5IiwicHJvcGVydHlTdHJpbmciLCJ2YWx1ZVN0cmluZyIsImJvb2xlYW4iLCJleHByZXNzc2lvblN0cmluZyIsInRlcm1zQXJyYXkiLCJ0ZXJtc1N0cmluZyIsInJlZHVjZSIsInZhbHVlc0FycmF5IiwidmFsdWVzU3RyaW5nIiwidmFsdWUiLCJub21pbmFsVmFsdWUiLCJzdHJpbmciLCJwcmltdGl2ZVN0cmluZyIsImV4cHJlc3Npb25TdHJpbmciLCJzdHJpbmdMaXRlcmFsIiwic3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwiLCJub21pbmFsVmFsdWVzIiwicHJpbWl0aXZlU3RyaW5nIiwibm9taW5hbFZhbHVlU3RyaW5nIiwicHJvY2VkdXJlIiwidHlwZSIsImdldFR5cGUiLCJsYWJlbCIsImdldExhYmVsIiwicGFyYW1ldGVycyIsImdldFBhcmFtZXRlcnMiLCJyZXR1cm5TdGF0ZW1lbnQiLCJnZXRSZXR1cm5TdGF0ZW1lbnQiLCJ0eXBlU3RyaW5nIiwibGFiZWxTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwicmV0dXJuU3RhdGVtZW50U3RyaW5nIiwicHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmciLCJyZXR1cm5CbG9ja1N0cmluZyIsIm5hbWVTdHJpbmciLCJub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZyIsInR5cGVOYW1lIiwiYXJndW1lbnRUeXBlTmFtZSIsInZhcmlhYmxlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIiwiYW5vbnltb3VzUHJvY2VkdXJlIiwiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nIiwic29tZVN0cmluZyIsImV2ZXJ5U3RyaW5nIiwidmFyaWFibGVBc3NpZ25tZW50IiwiZ2V0VmFyaWFibGUiLCJyZXR1cm5CbG9jayIsInByb2NlZHVyZVN0cmluZyIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmciLCJub21pbmFsVmFsdWVQcm9wZXJ0eSIsInZhcmlhYmxlQXNzaWdubWVudHNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmciLCJpbml0aWFsRXhwcmVzc2lvbiIsImluaXRpYWxFeHByZXNzaW9uU3RyaW5nIiwicmVkdWNlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE0TWdCQTtlQUFBQTs7UUExQkFDO2VBQUFBOztRQTVGQUM7ZUFBQUE7O1FBK0hBQztlQUFBQTs7UUF2RUFDO2VBQUFBOztRQWpHQUM7ZUFBQUE7O1FBa0NBQztlQUFBQTs7UUE0QkFDO2VBQUFBOztRQVBBQztlQUFBQTs7UUFxQkFDO2VBQUFBOztRQXlFQUM7ZUFBQUE7O1FBcURBQztlQUFBQTs7UUFoSEFDO2VBQUFBOztRQW1DQUM7ZUFBQUE7O1FBekpBQztlQUFBQTs7UUFrQ0FDO2VBQUFBOztRQS9DQUM7ZUFBQUE7O1FBa0pBQztlQUFBQTs7UUF2SEFDO2VBQUFBOztRQWtDQUM7ZUFBQUE7O1FBaUdBQztlQUFBQTs7UUFpRUFDO2VBQUFB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
@@ -24,12 +24,6 @@ _export(exports, {
24
24
  get valueFromNominalValue () {
25
25
  return valueFromNominalValue;
26
26
  },
27
- get valueFromNominalValues () {
28
- return valueFromNominalValues;
29
- },
30
- get valueFromPrimitive () {
31
- return valueFromPrimitive;
32
- },
33
27
  get valueFromStringLiteral () {
34
28
  return valueFromStringLiteral;
35
29
  }
@@ -48,18 +42,10 @@ function valueFromBoolean(boolean, context) {
48
42
  const value = new Value(context, string, node, breakPoint, variable, primitive);
49
43
  return value;
50
44
  }
51
- function valueFromPrimitive(primitive) {
52
- const { Value } = _elements.default, context = null, string = primitive.getString(), node = null, breakPoint = null, variable = null, value = new Value(context, string, node, breakPoint, variable, primitive);
53
- return value;
54
- }
55
45
  function valueFromNominalValue(nominalValue) {
56
46
  const { Value } = _elements.default, variable = null, primitive = (0, _primitive.primitiveFromNominalValue)(nominalValue), string = primitive.getString(), breakPoint = null, node = null, context = null, value = new Value(context, string, node, breakPoint, variable, primitive);
57
47
  return value;
58
48
  }
59
- function valueFromNominalValues(nominalValues) {
60
- const { Value } = _elements.default, variable = null, primitive = (0, _primitive.primitiveFromNominalValues)(nominalValues), string = primitive.getString(), node = null, breakPoint = null, context = null, value = new Value(context, string, node, breakPoint, variable, primitive);
61
- return value;
62
- }
63
49
  function valueFromStringLiteral(stringLiteral, context) {
64
50
  const { Value } = _elements.default, variable = null, primitive = (0, _primitive.primitiveFromStringLiteral)(stringLiteral, context), string = primitive.getString(), node = null, breakPoint = null;
65
51
  context = null;
@@ -73,18 +59,21 @@ function valueFromNodeAndNominalValue(node, nominalValue) {
73
59
  return value;
74
60
  }
75
61
  function valueFromNodesAndNominalValue(nodes, nominalValue) {
76
- const context = nominalValue.getContext(), nominalValues = nodes.map((node)=>{
62
+ const context = nominalValue.getContext(), nominalVvalues = nodes.map((node)=>{
77
63
  const nominalValue = _nominalValue.default.fromNode(node, context);
78
64
  return nominalValue;
79
- }), value = valueFromNominalValues(nominalValues);
65
+ }), value = valueFromNominalValues(nominalVvalues);
80
66
  return value;
81
67
  }
82
68
  const _default = {
83
69
  valueFromBoolean,
84
- valueFromNominalValue,
85
- valueFromNominalValues,
86
70
  valueFromStringLiteral,
87
- valueFromPrimitive
71
+ valueFromNodeAndNominalValue,
72
+ valueFromNodesAndNominalValue
88
73
  };
74
+ function valueFromNominalValues(nominalValues) {
75
+ const { Value } = _elements.default, variable = null, context = null, primitive = (0, _primitive.primitiveFromNominalValues)(nominalValues, context), string = primitive.getString(), node = null, breakPoint = null, value = new Value(context, string, node, breakPoint, variable, primitive);
76
+ return value;
77
+ }
89
78
 
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsdWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBOb21pbmFsVmFsdWUgZnJvbSBcIi4uL25vbWluYWxWYWx1ZVwiO1xuXG5pbXBvcnQgeyBwcmltaXRpdmVGcm9tQm9vbGVhbiwgcHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZSwgcHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZXMsIHByaW1pdGl2ZUZyb21TdHJpbmdMaXRlcmFsIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wcmltaXRpdmVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCkge1xuICBjb25zdCB7IFZhbHVlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgY29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZyb21QcmltaXRpdmUocHJpbWl0aXZlKSB7XG4gIGNvbnN0IHsgVmFsdWUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBjb250ZXh0ID0gbnVsbCxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgIHZhcmlhYmxlID0gbnVsbCxcbiAgICAgICAgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKSB7XG4gIGNvbnN0IHsgVmFsdWUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIGNvbnRleHQgPSBudWxsLFxuICAgICAgICB2YWx1ZSA9IG5ldyBWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcykge1xuICBjb25zdCB7IFZhbHVlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgIGNvbnRleHQgPSBudWxsLFxuICAgICAgICB2YWx1ZSA9IG5ldyBWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCkge1xuICBjb25zdCB7IFZhbHVlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgY29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZyb21Ob2RlQW5kTm9taW5hbFZhbHVlKG5vZGUsIG5vbWluYWxWYWx1ZSkge1xuICBjb25zdCBjb250ZXh0ID0gbm9taW5hbFZhbHVlLmdldENvbnRleHQoKTtcblxuICBub21pbmFsVmFsdWUgPSBOb21pbmFsVmFsdWUuZnJvbU5vZGUobm9kZSwgY29udGV4dCk7XG5cbiAgY29uc3QgdmFsdWUgPSB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZShub2Rlcywgbm9taW5hbFZhbHVlKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBub21pbmFsVmFsdWUuZ2V0Q29udGV4dCgpLFxuICAgICAgICBub21pbmFsVmFsdWVzID0gbm9kZXMubWFwKChub2RlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gTm9taW5hbFZhbHVlLmZyb21Ob2RlKG5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIG5vbWluYWxWYWx1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdmFsdWVGcm9tQm9vbGVhbixcbiAgdmFsdWVGcm9tTm9taW5hbFZhbHVlLFxuICB2YWx1ZUZyb21Ob21pbmFsVmFsdWVzLFxuICB2YWx1ZUZyb21TdHJpbmdMaXRlcmFsLFxuICB2YWx1ZUZyb21QcmltaXRpdmVcbn07XG4iXSwibmFtZXMiOlsidmFsdWVGcm9tQm9vbGVhbiIsInZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUiLCJ2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZSIsInZhbHVlRnJvbU5vbWluYWxWYWx1ZSIsInZhbHVlRnJvbU5vbWluYWxWYWx1ZXMiLCJ2YWx1ZUZyb21QcmltaXRpdmUiLCJ2YWx1ZUZyb21TdHJpbmdMaXRlcmFsIiwiYm9vbGVhbiIsImNvbnRleHQiLCJWYWx1ZSIsImVsZW1lbnRzIiwidmFyaWFibGUiLCJwcmltaXRpdmUiLCJwcmltaXRpdmVGcm9tQm9vbGVhbiIsInN0cmluZyIsImdldFN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFsdWUiLCJub21pbmFsVmFsdWUiLCJwcmltaXRpdmVGcm9tTm9taW5hbFZhbHVlIiwibm9taW5hbFZhbHVlcyIsInByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWVzIiwic3RyaW5nTGl0ZXJhbCIsInByaW1pdGl2ZUZyb21TdHJpbmdMaXRlcmFsIiwiZ2V0Q29udGV4dCIsIk5vbWluYWxWYWx1ZSIsImZyb21Ob2RlIiwibm9kZXMiLCJtYXAiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWlHQTtlQUFBOztRQTFGZ0JBO2VBQUFBOztRQW9F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
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsdWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBOb21pbmFsVmFsdWUgZnJvbSBcIi4uL25vbWluYWxWYWx1ZVwiO1xuXG5pbXBvcnQgeyBwcmltaXRpdmVGcm9tQm9vbGVhbiwgcHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZSwgcHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZXMsIHByaW1pdGl2ZUZyb21TdHJpbmdMaXRlcmFsIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wcmltaXRpdmVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCkge1xuICBjb25zdCB7IFZhbHVlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgY29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKSB7XG4gIGNvbnN0IHsgVmFsdWUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIGNvbnRleHQgPSBudWxsLCAgLy8vXG4gICAgICAgIHZhbHVlID0gbmV3IFZhbHVlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHByaW1pdGl2ZSk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFsdWUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICBjb250ZXh0ID0gbnVsbDtcblxuICBjb25zdCB2YWx1ZSA9IG5ldyBWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUobm9kZSwgbm9taW5hbFZhbHVlKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBub21pbmFsVmFsdWUuZ2V0Q29udGV4dCgpO1xuXG4gIG5vbWluYWxWYWx1ZSA9IE5vbWluYWxWYWx1ZS5mcm9tTm9kZShub2RlLCBjb250ZXh0KTtcblxuICBjb25zdCB2YWx1ZSA9IHZhbHVlRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpO1xuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlKG5vZGVzLCBub21pbmFsVmFsdWUpIHtcbiAgY29uc3QgY29udGV4dCA9IG5vbWluYWxWYWx1ZS5nZXRDb250ZXh0KCksXG4gICAgICAgIG5vbWluYWxWdmFsdWVzID0gbm9kZXMubWFwKChub2RlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gTm9taW5hbFZhbHVlLmZyb21Ob2RlKG5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIG5vbWluYWxWYWx1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVnZhbHVlcyk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHZhbHVlRnJvbUJvb2xlYW4sXG4gIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsXG4gIHZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUsXG4gIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlXG59O1xuXG5mdW5jdGlvbiB2YWx1ZUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMpIHtcbiAgY29uc3QgeyBWYWx1ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHZhcmlhYmxlID0gbnVsbCxcbiAgICAgICAgY29udGV4dCA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG4iXSwibmFtZXMiOlsidmFsdWVGcm9tQm9vbGVhbiIsInZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUiLCJ2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZSIsInZhbHVlRnJvbU5vbWluYWxWYWx1ZSIsInZhbHVlRnJvbVN0cmluZ0xpdGVyYWwiLCJib29sZWFuIiwiY29udGV4dCIsIlZhbHVlIiwiZWxlbWVudHMiLCJ2YXJpYWJsZSIsInByaW1pdGl2ZSIsInByaW1pdGl2ZUZyb21Cb29sZWFuIiwic3RyaW5nIiwiZ2V0U3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YWx1ZSIsIm5vbWluYWxWYWx1ZSIsInByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWUiLCJzdHJpbmdMaXRlcmFsIiwicHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwiLCJnZXRDb250ZXh0IiwiTm9taW5hbFZhbHVlIiwiZnJvbU5vZGUiLCJub2RlcyIsIm5vbWluYWxWdmFsdWVzIiwibWFwIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlcyIsIm5vbWluYWxWYWx1ZXMiLCJwcmltaXRpdmVGcm9tTm9taW5hbFZhbHVlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBd0VBO2VBQUE7O1FBakVnQkE7ZUFBQUE7O1FBMkNBQztlQUFBQTs7UUFVQUM7ZUFBQUE7O1FBdENBQztlQUFBQTs7UUFhQUM7ZUFBQUE7OztpRUFqQ0s7cUVBQ0k7MkJBRStGOzs7Ozs7QUFFakgsU0FBU0osaUJBQWlCSyxPQUFPLEVBQUVDLE9BQU87SUFDL0MsTUFBTSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MsaUJBQVEsRUFDcEJDLFdBQVcsTUFDWEMsWUFBWUMsSUFBQUEsK0JBQW9CLEVBQUNOLFNBQVNDLFVBQzFDTSxTQUFTRixVQUFVRyxTQUFTLElBQzVCQyxPQUFPLE1BQ1BDLGFBQWE7SUFFbkJULFVBQVU7SUFFVixNQUFNVSxRQUFRLElBQUlULE1BQU1ELFNBQVNNLFFBQVFFLE1BQU1DLFlBQVlOLFVBQVVDO0lBRXJFLE9BQU9NO0FBQ1Q7QUFFTyxTQUFTYixzQkFBc0JjLFlBQVk7SUFDaEQsTUFBTSxFQUFFVixLQUFLLEVBQUUsR0FBR0MsaUJBQVEsRUFDcEJDLFdBQVcsTUFDWEMsWUFBWVEsSUFBQUEsb0NBQXlCLEVBQUNELGVBQ3RDTCxTQUFTRixVQUFVRyxTQUFTLElBQzVCRSxhQUFhLE1BQ2JELE9BQU8sTUFDUFIsVUFBVSxNQUNWVSxRQUFRLElBQUlULE1BQU1ELFNBQVNNLFFBQVFFLE1BQU1DLFlBQVlOLFVBQVVDO0lBRXJFLE9BQU9NO0FBQ1Q7QUFFTyxTQUFTWix1QkFBdUJlLGFBQWEsRUFBRWIsT0FBTztJQUMzRCxNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUFHQyxpQkFBUSxFQUNwQkMsV0FBVyxNQUNYQyxZQUFZVSxJQUFBQSxxQ0FBMEIsRUFBQ0QsZUFBZWIsVUFDdERNLFNBQVNGLFVBQVVHLFNBQVMsSUFDNUJDLE9BQU8sTUFDUEMsYUFBYTtJQUVuQlQsVUFBVTtJQUVWLE1BQU1VLFFBQVEsSUFBSVQsTUFBTUQsU0FBU00sUUFBUUUsTUFBTUMsWUFBWU4sVUFBVUM7SUFFckUsT0FBT007QUFDVDtBQUVPLFNBQVNmLDZCQUE2QmEsSUFBSSxFQUFFRyxZQUFZO0lBQzdELE1BQU1YLFVBQVVXLGFBQWFJLFVBQVU7SUFFdkNKLGVBQWVLLHFCQUFZLENBQUNDLFFBQVEsQ0FBQ1QsTUFBTVI7SUFFM0MsTUFBTVUsUUFBUWIsc0JBQXNCYztJQUVwQyxPQUFPRDtBQUNUO0FBRU8sU0FBU2QsOEJBQThCc0IsS0FBSyxFQUFFUCxZQUFZO0lBQy9ELE1BQU1YLFVBQVVXLGFBQWFJLFVBQVUsSUFDakNJLGlCQUFpQkQsTUFBTUUsR0FBRyxDQUFDLENBQUNaO1FBQzFCLE1BQU1HLGVBQWVLLHFCQUFZLENBQUNDLFFBQVEsQ0FBQ1QsTUFBTVI7UUFFakQsT0FBT1c7SUFDVCxJQUNBRCxRQUFRVyx1QkFBdUJGO0lBRXJDLE9BQU9UO0FBQ1Q7TUFFQSxXQUFlO0lBQ2JoQjtJQUNBSTtJQUNBSDtJQUNBQztBQUNGO0FBRUEsU0FBU3lCLHVCQUF1QkMsYUFBYTtJQUMzQyxNQUFNLEVBQUVyQixLQUFLLEVBQUUsR0FBR0MsaUJBQVEsRUFDcEJDLFdBQVcsTUFDWEgsVUFBVSxNQUNWSSxZQUFZbUIsSUFBQUEscUNBQTBCLEVBQUNELGVBQWV0QixVQUN0RE0sU0FBU0YsVUFBVUcsU0FBUyxJQUM1QkMsT0FBTyxNQUNQQyxhQUFhLE1BQ2JDLFFBQVEsSUFBSVQsTUFBTUQsU0FBU00sUUFBUUUsTUFBTUMsWUFBWU4sVUFBVUM7SUFFckUsT0FBT007QUFDVCJ9
@@ -16,8 +16,8 @@ function _interop_require_default(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
- function valuesFromNominalValues(nominalValues) {
20
- const { Values } = _elements.default, valuesArray = valuesArrayFromNominalValues(nominalValues), valuesString = (0, _string.valuesStringFromValuesArray)(valuesArray), string = valuesString, array = valuesArray, node = null, breakPoint = null, context = null, values = new Values(context, string, node, breakPoint, array);
19
+ function valuesFromNominalValues(nominalValues, context) {
20
+ const { Values } = _elements.default, valuesArray = valuesArrayFromNominalValues(nominalValues), valuesString = (0, _string.valuesStringFromValuesArray)(valuesArray), string = valuesString, array = valuesArray, node = null, breakPoint = null, values = new Values(context, string, node, breakPoint, array);
21
21
  return values;
22
22
  }
23
23
  function valuesArrayFromNominalValues(nominalValues) {
@@ -28,4 +28,4 @@ function valuesArrayFromNominalValues(nominalValues) {
28
28
  return valuesArray;
29
29
  }
30
30
 
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsdWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IHZhbHVlRnJvbU5vbWluYWxWYWx1ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcbmltcG9ydCB7IHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSB7XG4gIGNvbnN0IHsgVmFsdWVzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFsdWVzQXJyYXkgPSB2YWx1ZXNBcnJheUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMpLFxuICAgICAgICB2YWx1ZXNTdHJpbmcgPSB2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkodmFsdWVzQXJyYXkpLFxuICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICBhcnJheSA9IHZhbHVlc0FycmF5LCAgLy8vXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgY29udGV4dCA9IG51bGwsXG4gICAgICAgIHZhbHVlcyA9IG5ldyBWYWx1ZXMoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSk7XG5cbiAgcmV0dXJuIHZhbHVlcztcbn1cblxuZnVuY3Rpb24gdmFsdWVzQXJyYXlGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSB7XG4gIGNvbnN0IHZhbHVlc0FycmF5ID0gbm9taW5hbFZhbHVlcy5tYXAoKG5vbWluYWxWYWx1ZSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0pO1xuXG4gIHJldHVybiB2YWx1ZXNBcnJheTtcbn1cbiJdLCJuYW1lcyI6WyJ2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyIsIm5vbWluYWxWYWx1ZXMiLCJWYWx1ZXMiLCJlbGVtZW50cyIsInZhbHVlc0FycmF5IiwidmFsdWVzQXJyYXlGcm9tTm9taW5hbFZhbHVlcyIsInZhbHVlc1N0cmluZyIsInZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSIsInN0cmluZyIsImFycmF5Iiwibm9kZSIsImJyZWFrUG9pbnQiLCJjb250ZXh0IiwidmFsdWVzIiwibWFwIiwibm9taW5hbFZhbHVlIiwidmFsdWUiLCJ2YWx1ZUZyb21Ob21pbmFsVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9nQkE7OztlQUFBQTs7O2lFQUxLO3VCQUVpQjt3QkFDTTs7Ozs7O0FBRXJDLFNBQVNBLHdCQUF3QkMsYUFBYTtJQUNuRCxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHQyxpQkFBUSxFQUNyQkMsY0FBY0MsNkJBQTZCSixnQkFDM0NLLGVBQWVDLElBQUFBLG1DQUEyQixFQUFDSCxjQUMzQ0ksU0FBU0YsY0FDVEcsUUFBUUwsYUFDUk0sT0FBTyxNQUNQQyxhQUFhLE1BQ2JDLFVBQVUsTUFDVkMsU0FBUyxJQUFJWCxPQUFPVSxTQUFTSixRQUFRRSxNQUFNQyxZQUFZRjtJQUU3RCxPQUFPSTtBQUNUO0FBRUEsU0FBU1IsNkJBQTZCSixhQUFhO0lBQ2pELE1BQU1HLGNBQWNILGNBQWNhLEdBQUcsQ0FBQyxDQUFDQztRQUNyQyxNQUFNQyxRQUFRQyxJQUFBQSw0QkFBcUIsRUFBQ0Y7UUFFcEMsT0FBT0M7SUFDVDtJQUVBLE9BQU9aO0FBQ1QifQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsdWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IHZhbHVlRnJvbU5vbWluYWxWYWx1ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcbmltcG9ydCB7IHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFsdWVzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFsdWVzQXJyYXkgPSB2YWx1ZXNBcnJheUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMpLFxuICAgICAgICB2YWx1ZXNTdHJpbmcgPSB2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkodmFsdWVzQXJyYXkpLFxuICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICBhcnJheSA9IHZhbHVlc0FycmF5LCAgLy8vXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgdmFsdWVzID0gbmV3IFZhbHVlcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KTtcblxuICByZXR1cm4gdmFsdWVzO1xufVxuXG5mdW5jdGlvbiB2YWx1ZXNBcnJheUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMpIHtcbiAgY29uc3QgdmFsdWVzQXJyYXkgPSBub21pbmFsVmFsdWVzLm1hcCgobm9taW5hbFZhbHVlKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHZhbHVlc0FycmF5O1xufVxuIl0sIm5hbWVzIjpbInZhbHVlc0Zyb21Ob21pbmFsVmFsdWVzIiwibm9taW5hbFZhbHVlcyIsImNvbnRleHQiLCJWYWx1ZXMiLCJlbGVtZW50cyIsInZhbHVlc0FycmF5IiwidmFsdWVzQXJyYXlGcm9tTm9taW5hbFZhbHVlcyIsInZhbHVlc1N0cmluZyIsInZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSIsInN0cmluZyIsImFycmF5Iiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YWx1ZXMiLCJtYXAiLCJub21pbmFsVmFsdWUiLCJ2YWx1ZSIsInZhbHVlRnJvbU5vbWluYWxWYWx1ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT2dCQTs7O2VBQUFBOzs7aUVBTEs7dUJBRWlCO3dCQUNNOzs7Ozs7QUFFckMsU0FBU0Esd0JBQXdCQyxhQUFhLEVBQUVDLE9BQU87SUFDNUQsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsaUJBQVEsRUFDckJDLGNBQWNDLDZCQUE2QkwsZ0JBQzNDTSxlQUFlQyxJQUFBQSxtQ0FBMkIsRUFBQ0gsY0FDM0NJLFNBQVNGLGNBQ1RHLFFBQVFMLGFBQ1JNLE9BQU8sTUFDUEMsYUFBYSxNQUNiQyxTQUFTLElBQUlWLE9BQU9ELFNBQVNPLFFBQVFFLE1BQU1DLFlBQVlGO0lBRTdELE9BQU9HO0FBQ1Q7QUFFQSxTQUFTUCw2QkFBNkJMLGFBQWE7SUFDakQsTUFBTUksY0FBY0osY0FBY2EsR0FBRyxDQUFDLENBQUNDO1FBQ3JDLE1BQU1DLFFBQVFDLElBQUFBLDRCQUFxQixFQUFDRjtRQUVwQyxPQUFPQztJQUNUO0lBRUEsT0FBT1g7QUFDVCJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "3.0.305",
4
+ "version": "3.0.310",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.2.10",
14
- "occam-languages": "^0.0.281",
14
+ "occam-languages": "^0.0.283",
15
15
  "occam-lexers": "^23.1.67",
16
16
  "occam-parsers": "^23.1.80",
17
17
  "occam-query": "^4.1.183"
@@ -6,9 +6,8 @@ import elements from "../../elements";
6
6
  import Exception from "../../exception";
7
7
 
8
8
  import { define } from "../../elements";
9
- import { valueFromNominalValue } from "../../utilities/value";
9
+ import { LIST_TYPE_NAME } from "../../typeNames";
10
10
  import { primtiveStringFromNominalValues } from "../../utilities/string";
11
- import { NOMINAL_VALUE_TYPE, NOMINAL_VALUES_TYPE } from "../../types";
12
11
 
13
12
  export default define(class ArrayAssigment extends Element {
14
13
  constructor(context, string, node, breakPoint, variable, bindings) {
@@ -32,36 +31,37 @@ export default define(class ArrayAssigment extends Element {
32
31
  context.trace(`Evaluating the '${arrayAssignmentString}' array assignment...`);
33
32
 
34
33
  const value = this.variable.evaluate(context),
35
- valueType = value.getType();
34
+ valueType = value.getType(),
35
+ valueTypeListType = valueType.isListType();
36
36
 
37
- if (valueType !== NOMINAL_VALUES_TYPE) {
37
+ if (!valueTypeListType) {
38
38
  const valueString = value.getString(),
39
- message = `The '${valueString}' value's '${valueType}' type should be '${NOMINAL_VALUES_TYPE}'.`,
39
+ message = `The '${valueString}' value's '${valueType}' type should be '${LIST_TYPE_NAME}'.`,
40
40
  exception = Exception.fromMessage(message);
41
41
 
42
42
  throw exception;
43
43
  }
44
44
 
45
- const primitiveValue = value.getPrimitiveValue(),
46
- nominalValues = primitiveValue, ///
47
- bindingsLength = this.bindings.getLength(),
48
- nominalValuesLength = nominalValues.length;
45
+ const bindingsLength = this.bindings.getLength(),
46
+ primitiveValue = value.getPrimitiveValue(),
47
+ primitiveValueLength = primitiveValue.length;
49
48
 
50
- if (bindingsLength > nominalValuesLength) {
51
- const bindingsString = this.bindings.getString(),
52
- primitiveString = primtiveStringFromNominalValues(nominalValues),
53
- message = `The length of the '${bindingsString}' bindings is greater than the length of the '${primitiveString}' nodes.`,
49
+ if (bindingsLength > primitiveValueLength) {
50
+ const valueString = value.getString(),
51
+ bindingsString = this.bindings.getString(),
52
+ message = `The length of the '${bindingsString}' bindings is greater than the length of the '${valueString}' list.`,
54
53
  exception = Exception.fromMessage(message);
55
54
 
56
55
  throw exception;
57
56
  }
58
57
 
58
+ const values = value.lift(context);
59
+
59
60
  this.bindings.forEachBinding((binding, index) => {
60
- const elidated = binding.isElided();
61
+ const elided = binding.isElided();
61
62
 
62
- if (!elidated) {
63
- const nominalValue = nominalValues[index],
64
- value = valueFromNominalValue(nominalValue);
63
+ if (!elided) {
64
+ const value = values[index];
65
65
 
66
66
  this.evaluateBinding(binding, value, context);
67
67
  }
@@ -70,16 +70,21 @@ export default define(class ArrayAssigment extends Element {
70
70
  context.debug(`...evaluated the '${arrayAssignmentString}' array assignment.`);
71
71
  }
72
72
 
73
- evaluateBinding(binding, expression, context) {
74
- const bindingString = binding.getString(),
75
- expressionString = expression.getString();
73
+ evaluateBinding(binding, value, context) {
74
+ const valueString = value.getString(),
75
+ bindingString = binding.getString();
76
76
 
77
- context.trace(`Evaluating the '${bindingString}' binding against the '${expressionString}' expression...`);
77
+ context.trace(`Evaluating the '${bindingString}' binding against the '${valueString}' value...`);
78
78
 
79
- const bindingType = binding.getType();
79
+ const valueType = value.getType(),
80
+ bindingType = binding.getType(),
81
+ bindingTypeEqualToValueType = bindingType.isEqualTo(valueType);
80
82
 
81
- if (bindingType !== NOMINAL_VALUE_TYPE) {
82
- const message = `The type of the '${bindingString}' binding should be '${NOMINAL_VALUE_TYPE}'.`,
83
+ if (!bindingTypeEqualToValueType) {
84
+ const bindingTypeString = bindingType.getString(),
85
+ valueTypeString = valueType.getString(),
86
+ valueString = value.getString(),
87
+ message = `The '${bindingString}' binding's '${bindingTypeString}' type is not equal to the '${valueString}' value's '${valueTypeString}' type.`,
83
88
  exception = Exception.fromMessage(message);
84
89
 
85
90
  throw exception;
@@ -88,9 +93,9 @@ export default define(class ArrayAssigment extends Element {
88
93
  const { Variable } = elements,
89
94
  variable = Variable.fromBinding(binding, context);
90
95
 
91
- variable.assign(expression, context);
96
+ variable.assign(value, context);
92
97
 
93
- context.debug(`...evaluated the '${bindingString}' binding against the '${expressionString}' expression.`);
98
+ context.debug(`...evaluated the '${bindingString}' binding against the '${valueString}' value.`);
94
99
  }
95
100
 
96
101
  static name = "ArrayAssignment";
@@ -4,14 +4,14 @@ import { Element } from "occam-languages";
4
4
 
5
5
  import elements from "../../elements";
6
6
  import Exception from "../../exception";
7
- import nodeProperties from "../../nodeProperties";
7
+ import nominalValueProperties from "../../nominalValueProperties";
8
8
 
9
9
  import { define } from "../../elements";
10
- import { stringLiteralFromString } from "../../utilities/stringLiteral";
11
10
  import { valueFromNodesAndNominalValue } from "../../utilities/value";
11
+ import { stringLiteralFromString } from "../../utilities/stringLiteral";
12
12
  import { termFromBoolean, termFromStringLiteral } from "../../utilities/term";
13
- import { STRING_TYPE, BOOLEAN_TYPE, NOMINAL_VALUE_TYPE, NOMINAL_VALUES_TYPE } from "../../types";
14
13
  import { CONTENT_PARAMETER_NAME, TERMINAL_PARAMETER_NAME, CHILD_NODES_PARAMETER_NAME } from "../../parameterNames";
14
+ import { LIST_TYPE_NAME, STRING_TYPE_NAME, BOOLEAN_TYPE_NAME, NOMINAL_VALUE_TYPE_NAME } from "../../typeNames";
15
15
 
16
16
  export default define(class ObjectAssigment extends Element {
17
17
  constructor(context, string, node, breakPoint, variable, namedBindings) {
@@ -35,17 +35,18 @@ export default define(class ObjectAssigment extends Element {
35
35
  context.trace(`Evaluating the '${objectAssignmentString}' object assignment...`);
36
36
 
37
37
  const value = this.variable.evaluate(context),
38
- valueType = value.getType();
38
+ valueType = value.getType(),
39
+ valueTypeNominalValueType = valueType.isNominalValueType();
39
40
 
40
- if (valueType !== NOMINAL_VALUE_TYPE) {
41
+ if (!valueTypeNominalValueType) {
41
42
  const valueString = value.getString(),
42
- message = `The '${valueString}' value's '${valueType}' type should be '${NOMINAL_VALUE_TYPE}'.`,
43
+ message = `The '${valueString}' value's '${valueType}' type should be '${NOMINAL_VALUE_TYPE_NAME}'.`,
43
44
  exception = Exception.fromMessage(message);
44
45
 
45
46
  throw exception;
46
47
  }
47
48
 
48
- nodeProperties.compareNamedBindings(this.namedBindings, context);
49
+ nominalValueProperties.compareNamedBindings(this.namedBindings, context);
49
50
 
50
51
  this.namedBindings.forEachNamedBinding((namedBinding) => {
51
52
  this.evaluateNamedBinding(namedBinding, value, context);
@@ -96,9 +97,11 @@ export default define(class ObjectAssigment extends Element {
96
97
 
97
98
  context.trace(`Evaluating the content '${namedBindingString}' named binding...`);
98
99
 
99
- if (type !== STRING_TYPE) {
100
+ const typeStringType = type.isStringType();
101
+
102
+ if (!typeStringType) {
100
103
  const namedBindingString = namedBinding.getString(),
101
- message = `The '${namedBindingString}' named binding's type should be '${STRING_TYPE}'.`,
104
+ message = `The '${namedBindingString}' named binding's type should be '${STRING_TYPE_NAME}'.`,
102
105
  exception = Exception.fromMessage(message);
103
106
 
104
107
  throw exception;
@@ -137,9 +140,11 @@ export default define(class ObjectAssigment extends Element {
137
140
 
138
141
  context.trace(`Evaluating the terminal '${namedBindingString}' named binding...`);
139
142
 
140
- if (type !== BOOLEAN_TYPE) {
143
+ const typeBooleanType = type.isBooleanType();
144
+
145
+ if (!typeBooleanType) {
141
146
  const namedBindingString = namedBinding.getString(),
142
- message = `The '${namedBindingString}' named binding's type should be '${BOOLEAN_TYPE}'.`,
147
+ message = `The '${namedBindingString}' named binding's type should be '${BOOLEAN_TYPE_NAME}'.`,
143
148
  exception = Exception.fromMessage(message);
144
149
 
145
150
  throw exception;
@@ -168,9 +173,11 @@ export default define(class ObjectAssigment extends Element {
168
173
 
169
174
  context.trace(`Evaluating the child nodes '${namedBindingString}' named binding...`);
170
175
 
171
- if (type !== NOMINAL_VALUES_TYPE) {
176
+ const typeListType = type.isListType();
177
+
178
+ if (!typeListType) {
172
179
  const namedBindingString = namedBinding.getString(),
173
- message = `The '${namedBindingString}' named binding's type should be '${NOMINAL_VALUES_TYPE}'.`,
180
+ message = `The '${namedBindingString}' named binding's type should be '${LIST_TYPE_NAME}'.`,
174
181
  exception = Exception.fromMessage(message);
175
182
 
176
183
  throw exception;
@@ -48,10 +48,12 @@ export default define(class NamedBinding extends Element {
48
48
 
49
49
  context.trace(`Comparing the '${termString}' term with the '${namedBindingString}' named binding...`);
50
50
 
51
- const termType = term.getType();
51
+ const termType = term.getType(),
52
+ typeEqualToTermType = this.type.isEqualTo(termType);
52
53
 
53
- if (this.type !== termType) {
54
- const message = `The '${termString}' term's '${termType}' type is not equal to '${namedBindingString}' named binding's '${this.type}' type.`,
54
+ if (!typeEqualToTermType) {
55
+ const typeString = this.type.getString(),
56
+ message = `The '${termString}' term's '${termType}' type is not equal to '${namedBindingString}' named binding's '${typeString}' type.`,
55
57
  exception = Exception.fromMessage(message);
56
58
 
57
59
  throw exception;
@@ -71,10 +73,12 @@ export default define(class NamedBinding extends Element {
71
73
 
72
74
  context.trace(`Comparing the '${namedBindingAString}' named binding with the '${namedBindingBString}' named binding...`);
73
75
 
74
- const name = namedBinding.getName(),
75
- type = namedBinding.getType();
76
+ const namedBindingName = namedBinding.getName(),
77
+ namedBindingType = namedBinding.getType(),
78
+ nameEqualToNamedBindingName = (this.name === namedBindingName),
79
+ typeEqualToNamedBindingType = this.type.isEqualTo(namedBindingType);
76
80
 
77
- namedBindingCompares = ((this.name === name) && (this.type === type));
81
+ namedBindingCompares = (nameEqualToNamedBindingName && typeEqualToNamedBindingType);
78
82
 
79
83
  if (namedBindingCompares) {
80
84
  context.debug(`...compared the '${namedBindingAString}' named binding with the '${namedBindingBString}' named binding.`);