occam-furtle 2.0.340 → 3.0.1

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 (118) hide show
  1. package/example.js +6319 -2036
  2. package/lib/context/block.js +81 -41
  3. package/lib/context/file/furtle.js +260 -0
  4. package/lib/context/file/nominal.js +956 -0
  5. package/lib/context/file.js +146 -271
  6. package/lib/context/release.js +675 -0
  7. package/lib/context.js +210 -0
  8. package/lib/element/assignment/array.js +117 -15
  9. package/lib/element/assignment/object.js +119 -17
  10. package/lib/element/assignment/variable.js +121 -14
  11. package/lib/element/assignments/variable.js +120 -13
  12. package/lib/element/declaration/procedure.js +120 -12
  13. package/lib/element/error.js +118 -13
  14. package/lib/element/every.js +116 -13
  15. package/lib/element/expression.js +134 -68
  16. package/lib/element/label.js +119 -12
  17. package/lib/element/nodeQuery.js +120 -18
  18. package/lib/element/nodesQuery.js +120 -18
  19. package/lib/element/parameter/named.js +117 -15
  20. package/lib/element/parameter.js +116 -14
  21. package/lib/element/parameters/named.js +116 -14
  22. package/lib/element/parameters.js +115 -13
  23. package/lib/element/primitive.js +115 -63
  24. package/lib/element/procedure/anonymous.js +118 -16
  25. package/lib/element/procedure.js +118 -16
  26. package/lib/element/procedureCall.js +116 -14
  27. package/lib/element/reduce.js +116 -14
  28. package/lib/element/reference.js +119 -12
  29. package/lib/element/returnBlock.js +116 -14
  30. package/lib/element/some.js +117 -15
  31. package/lib/element/statement/return.js +120 -13
  32. package/lib/element/step.js +121 -14
  33. package/lib/element/term/bracketed.js +120 -13
  34. package/lib/element/term/comparison.js +117 -15
  35. package/lib/element/term/logical.js +119 -17
  36. package/lib/element/term/negated.js +119 -15
  37. package/lib/element/term.js +131 -45
  38. package/lib/element/terms.js +125 -14
  39. package/lib/element/ternary.js +118 -16
  40. package/lib/element/variable.js +127 -19
  41. package/lib/element.js +1 -8
  42. package/lib/index.js +9 -1
  43. package/lib/log.js +13 -12
  44. package/lib/metaTypeNames.js +26 -0
  45. package/lib/metaTypes.js +66 -0
  46. package/lib/node/expression.js +8 -15
  47. package/lib/nodeProperties.js +17 -21
  48. package/lib/nodeProperty.js +4 -7
  49. package/lib/utilities/context.js +8 -37
  50. package/lib/utilities/customGrammar.js +49 -0
  51. package/lib/utilities/element.js +110 -60
  52. package/lib/utilities/lineIndex.js +26 -0
  53. package/lib/utilities/primitive.js +14 -5
  54. package/lib/utilities/string.js +41 -37
  55. package/lib/utilities/term.js +14 -5
  56. package/lib/utilities/terms.js +7 -3
  57. package/package.json +2 -2
  58. package/src/context/block.js +20 -32
  59. package/src/context/file/furtle.js +141 -0
  60. package/src/context/file/nominal.js +946 -0
  61. package/src/context/file.js +32 -209
  62. package/src/context/release.js +653 -0
  63. package/src/context.js +74 -0
  64. package/src/element/assignment/array.js +8 -9
  65. package/src/element/assignment/object.js +12 -11
  66. package/src/element/assignment/variable.js +7 -8
  67. package/src/element/assignments/variable.js +7 -8
  68. package/src/element/declaration/procedure.js +6 -6
  69. package/src/element/error.js +4 -6
  70. package/src/element/every.js +5 -6
  71. package/src/element/expression.js +13 -33
  72. package/src/element/label.js +6 -7
  73. package/src/element/nodeQuery.js +12 -14
  74. package/src/element/nodesQuery.js +12 -14
  75. package/src/element/parameter/named.js +7 -8
  76. package/src/element/parameter.js +6 -8
  77. package/src/element/parameters/named.js +8 -9
  78. package/src/element/parameters.js +6 -8
  79. package/src/element/primitive.js +5 -57
  80. package/src/element/procedure/anonymous.js +7 -9
  81. package/src/element/procedure.js +6 -8
  82. package/src/element/procedureCall.js +6 -8
  83. package/src/element/reduce.js +5 -7
  84. package/src/element/reference.js +6 -7
  85. package/src/element/returnBlock.js +5 -7
  86. package/src/element/some.js +9 -9
  87. package/src/element/statement/return.js +7 -8
  88. package/src/element/step.js +6 -7
  89. package/src/element/term/bracketed.js +7 -8
  90. package/src/element/term/comparison.js +6 -8
  91. package/src/element/term/logical.js +12 -12
  92. package/src/element/term/negated.js +11 -9
  93. package/src/element/term.js +16 -17
  94. package/src/element/terms.js +16 -9
  95. package/src/element/ternary.js +8 -9
  96. package/src/element/variable.js +24 -14
  97. package/src/element.js +0 -8
  98. package/src/index.js +2 -0
  99. package/src/log.js +11 -11
  100. package/src/metaTypeNames.js +5 -0
  101. package/src/metaTypes.js +71 -0
  102. package/src/node/expression.js +9 -17
  103. package/src/nodeProperties.js +23 -32
  104. package/src/nodeProperty.js +5 -10
  105. package/src/utilities/context.js +7 -45
  106. package/src/utilities/customGrammar.js +40 -0
  107. package/src/utilities/element.js +181 -94
  108. package/src/utilities/lineIndex.js +21 -0
  109. package/src/utilities/primitive.js +22 -5
  110. package/src/utilities/string.js +42 -36
  111. package/src/utilities/term.js +22 -5
  112. package/src/utilities/terms.js +12 -4
  113. package/test/helpers/furtle.js +1 -1
  114. package/test/helpers/nominal.js +2 -3
  115. package/test/main.js +4 -3
  116. package/test/context/file.js +0 -127
  117. package/test/context/release.js +0 -151
  118. package/test/helpers/constants.js +0 -17
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "lineIndexFromNodeAndTokens", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return lineIndexFromNodeAndTokens;
9
+ }
10
+ });
11
+ function lineIndexFromNodeAndTokens(node, tokens) {
12
+ var lineIndex = 0;
13
+ var firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens);
14
+ tokens.some(function(token, tokenIndex) {
15
+ var tokenEndOfLineToken = token.isEndOfLineToken();
16
+ if (tokenEndOfLineToken) {
17
+ lineIndex += 1;
18
+ }
19
+ if (tokenIndex === firstSignificantTokenIndex) {
20
+ return true;
21
+ }
22
+ });
23
+ return lineIndex;
24
+ }
25
+
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbGluZUluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gbGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSB7XG4gIGxldCBsaW5lSW5kZXggPSAwO1xuXG4gIGNvbnN0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpO1xuXG4gIHRva2Vucy5zb21lKCh0b2tlbiwgdG9rZW5JbmRleCkgPT4ge1xuICAgIGNvbnN0IHRva2VuRW5kT2ZMaW5lVG9rZW4gPSB0b2tlbi5pc0VuZE9mTGluZVRva2VuKCk7XG5cbiAgICBpZiAodG9rZW5FbmRPZkxpbmVUb2tlbikge1xuICAgICAgbGluZUluZGV4ICs9IDE7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuSW5kZXggPT09IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBsaW5lSW5kZXg7XG59XG4iXSwibmFtZXMiOlsibGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMiLCJub2RlIiwidG9rZW5zIiwibGluZUluZGV4IiwiZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsInNvbWUiLCJ0b2tlbiIsInRva2VuSW5kZXgiLCJ0b2tlbkVuZE9mTGluZVRva2VuIiwiaXNFbmRPZkxpbmVUb2tlbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSwyQkFBMkJDLElBQUksRUFBRUMsTUFBTTtJQUNyRCxJQUFJQyxZQUFZO0lBRWhCLElBQU1DLDZCQUE2QkgsS0FBS0ksNkJBQTZCLENBQUNIO0lBRXRFQSxPQUFPSSxJQUFJLENBQUMsU0FBQ0MsT0FBT0M7UUFDbEIsSUFBTUMsc0JBQXNCRixNQUFNRyxnQkFBZ0I7UUFFbEQsSUFBSUQscUJBQXFCO1lBQ3ZCTixhQUFhO1FBQ2Y7UUFFQSxJQUFJSyxlQUFlSiw0QkFBNEI7WUFDN0MsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPRDtBQUNUIn0=
@@ -31,20 +31,29 @@ function _interop_require_default(obj) {
31
31
  };
32
32
  }
33
33
  function primitiveFromNode(node, context) {
34
- var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromNode)(node, context), string = primitiveString, type = _types.NODE_TYPE, value = node, primitive = new Primitive(string, type, value);
34
+ var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromNode)(node, context), string = primitiveString, type = _types.NODE_TYPE, value = node; ///
35
+ node = null;
36
+ context = null;
37
+ var primitive = new Primitive(context, string, node, type, value);
35
38
  return primitive;
36
39
  }
37
40
  function primitiveFromNodes(nodes, context) {
38
- var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromNodes)(nodes, context), string = primitiveString, type = _types.NODES_TYPE, value = nodes, primitive = new Primitive(string, type, value);
41
+ var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromNodes)(nodes, context), string = primitiveString, type = _types.NODES_TYPE, value = nodes, node = null;
42
+ context = null;
43
+ var primitive = new Primitive(context, string, node, type, value);
39
44
  return primitive;
40
45
  }
41
46
  function primitiveFromBoolean(boolean, context) {
42
- var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromBoolean)(boolean), string = primitiveString, type = _types.BOOLEAN_TYPE, value = boolean, primitive = new Primitive(string, type, value);
47
+ var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromBoolean)(boolean), string = primitiveString, type = _types.BOOLEAN_TYPE, value = boolean, node = null;
48
+ context = null;
49
+ var primitive = new Primitive(context, string, node, type, value);
43
50
  return primitive;
44
51
  }
45
52
  function primitiveFromStringLiteral(stringLiteral, context) {
46
- var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromStringLiteral)(stringLiteral), string = primitiveString, type = _types.STRING_TYPE, value = stringLiteral, primitive = new Primitive(string, type, value);
53
+ var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromStringLiteral)(stringLiteral), string = primitiveString, type = _types.STRING_TYPE, value = stringLiteral, node = null;
54
+ context = null;
55
+ var primitive = new Primitive(context, string, node, type, value);
47
56
  return primitive;
48
57
  }
49
58
 
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJpbWl0aXZlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IE5PREVfVFlQRSwgTk9ERVNfVFlQRSwgU1RSSU5HX1RZUEUsIEJPT0xFQU5fVFlQRSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcHJpbXRpdmVTdHJpbmdGcm9tTm9kZSwgcHJpbXRpdmVTdHJpbmdGcm9tTm9kZXMsIHByaW10aXZlU3RyaW5nRnJvbUJvb2xlYW4sIHByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJpbWl0aXZlRnJvbU5vZGUobm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFByaW1pdGl2ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByaW1pdGl2ZVN0cmluZyA9IHByaW10aXZlU3RyaW5nRnJvbU5vZGUobm9kZSwgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgIC8vL1xuICAgICAgICB0eXBlID0gTk9ERV9UWVBFLFxuICAgICAgICB2YWx1ZSA9IG5vZGUsIC8vL1xuICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKHN0cmluZywgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tTm9kZXMobm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBQcmltaXRpdmUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBwcmltaXRpdmVTdHJpbmcgPSBwcmltdGl2ZVN0cmluZ0Zyb21Ob2Rlcyhub2RlcywgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgIC8vL1xuICAgICAgICB0eXBlID0gTk9ERVNfVFlQRSxcbiAgICAgICAgdmFsdWUgPSBub2RlcywgIC8vL1xuICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKHN0cmluZywgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAgLy8vXG4gICAgICAgIHR5cGUgPSBCT09MRUFOX1RZUEUsXG4gICAgICAgIHZhbHVlID0gYm9vbGVhbiwgIC8vL1xuICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKHN0cmluZywgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAgLy8vXG4gICAgICAgIHR5cGUgPSBTVFJJTkdfVFlQRSxcbiAgICAgICAgdmFsdWUgPSBzdHJpbmdMaXRlcmFsLCAgLy8vXG4gICAgICAgIHByaW1pdGl2ZSA9IG5ldyBQcmltaXRpdmUoc3RyaW5nLCB0eXBlLCB2YWx1ZSk7XG5cbiAgcmV0dXJuIHByaW1pdGl2ZTtcbn1cbiJdLCJuYW1lcyI6WyJwcmltaXRpdmVGcm9tQm9vbGVhbiIsInByaW1pdGl2ZUZyb21Ob2RlIiwicHJpbWl0aXZlRnJvbU5vZGVzIiwicHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwiLCJub2RlIiwiY29udGV4dCIsIlByaW1pdGl2ZSIsImVsZW1lbnRzIiwicHJpbWl0aXZlU3RyaW5nIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZSIsInN0cmluZyIsInR5cGUiLCJOT0RFX1RZUEUiLCJ2YWx1ZSIsInByaW1pdGl2ZSIsIm5vZGVzIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZXMiLCJOT0RFU19UWVBFIiwiYm9vbGVhbiIsInByaW10aXZlU3RyaW5nRnJvbUJvb2xlYW4iLCJCT09MRUFOX1RZUEUiLCJzdHJpbmdMaXRlcmFsIiwicHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsIlNUUklOR19UWVBFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE2QmdCQTtlQUFBQTs7UUF0QkFDO2VBQUFBOztRQVdBQztlQUFBQTs7UUFzQkFDO2VBQUFBOzs7K0RBdENLO3FCQUU0QztzQkFDMkQ7Ozs7OztBQUVySCxTQUFTRixrQkFBa0JHLElBQUksRUFBRUMsT0FBTztJQUM3QyxJQUFNLEFBQUVDLFlBQWNDLGlCQUFRLENBQXRCRCxXQUNGRSxrQkFBa0JDLElBQUFBLDhCQUFzQixFQUFDTCxNQUFNQyxVQUMvQ0ssU0FBU0YsaUJBQ1RHLE9BQU9DLGdCQUFTLEVBQ2hCQyxRQUFRVCxNQUNSVSxZQUFZLElBQUlSLFVBQVVJLFFBQVFDLE1BQU1FO0lBRTlDLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTWixtQkFBbUJhLEtBQUssRUFBRVYsT0FBTztJQUMvQyxJQUFNLEFBQUVDLFlBQWNDLGlCQUFRLENBQXRCRCxXQUNGRSxrQkFBa0JRLElBQUFBLCtCQUF1QixFQUFDRCxPQUFPVixVQUNqREssU0FBU0YsaUJBQ1RHLE9BQU9NLGlCQUFVLEVBQ2pCSixRQUFRRSxPQUNSRCxZQUFZLElBQUlSLFVBQVVJLFFBQVFDLE1BQU1FO0lBRTlDLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTZCxxQkFBcUJrQixPQUFPLEVBQUViLE9BQU87SUFDbkQsSUFBTSxBQUFFQyxZQUFjQyxpQkFBUSxDQUF0QkQsV0FDRkUsa0JBQWtCVyxJQUFBQSxpQ0FBeUIsRUFBQ0QsVUFDNUNSLFNBQVNGLGlCQUNURyxPQUFPUyxtQkFBWSxFQUNuQlAsUUFBUUssU0FDUkosWUFBWSxJQUFJUixVQUFVSSxRQUFRQyxNQUFNRTtJQUU5QyxPQUFPQztBQUNUO0FBRU8sU0FBU1gsMkJBQTJCa0IsYUFBYSxFQUFFaEIsT0FBTztJQUMvRCxJQUFNLEFBQUVDLFlBQWNDLGlCQUFRLENBQXRCRCxXQUNGRSxrQkFBa0JjLElBQUFBLHVDQUErQixFQUFDRCxnQkFDbERYLFNBQVNGLGlCQUNURyxPQUFPWSxrQkFBVyxFQUNsQlYsUUFBUVEsZUFDUlAsWUFBWSxJQUFJUixVQUFVSSxRQUFRQyxNQUFNRTtJQUU5QyxPQUFPQztBQUNUIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJpbWl0aXZlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IE5PREVfVFlQRSwgTk9ERVNfVFlQRSwgU1RSSU5HX1RZUEUsIEJPT0xFQU5fVFlQRSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcHJpbXRpdmVTdHJpbmdGcm9tTm9kZSwgcHJpbXRpdmVTdHJpbmdGcm9tTm9kZXMsIHByaW10aXZlU3RyaW5nRnJvbUJvb2xlYW4sIHByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJpbWl0aXZlRnJvbU5vZGUobm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFByaW1pdGl2ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByaW1pdGl2ZVN0cmluZyA9IHByaW10aXZlU3RyaW5nRnJvbU5vZGUobm9kZSwgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgIC8vL1xuICAgICAgICB0eXBlID0gTk9ERV9UWVBFLFxuICAgICAgICB2YWx1ZSA9IG5vZGU7IC8vL1xuXG4gIG5vZGUgPSBudWxsO1xuXG4gIGNvbnRleHQgPSBudWxsO1xuXG4gIGNvbnN0IHByaW1pdGl2ZSA9IG5ldyBQcmltaXRpdmUoY29udGV4dCwgc3RyaW5nLCBub2RlLCB0eXBlLCB2YWx1ZSk7XG5cbiAgcmV0dXJuIHByaW1pdGl2ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW1pdGl2ZUZyb21Ob2Rlcyhub2RlcywgY29udGV4dCkge1xuICBjb25zdCB7IFByaW1pdGl2ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByaW1pdGl2ZVN0cmluZyA9IHByaW10aXZlU3RyaW5nRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAgLy8vXG4gICAgICAgIHR5cGUgPSBOT0RFU19UWVBFLFxuICAgICAgICB2YWx1ZSA9IG5vZGVzLCAgLy8vXG4gICAgICAgIG5vZGUgPSBudWxsO1xuXG4gIGNvbnRleHQgPSBudWxsO1xuXG4gIGNvbnN0IHByaW1pdGl2ZSA9IG5ldyBQcmltaXRpdmUoY29udGV4dCwgc3RyaW5nLCBub2RlLCB0eXBlLCB2YWx1ZSk7XG5cbiAgcmV0dXJuIHByaW1pdGl2ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW1pdGl2ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBQcmltaXRpdmUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBwcmltaXRpdmVTdHJpbmcgPSBwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuKGJvb2xlYW4pLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmVTdHJpbmcsICAvLy9cbiAgICAgICAgdHlwZSA9IEJPT0xFQU5fVFlQRSxcbiAgICAgICAgdmFsdWUgPSBib29sZWFuLCAgLy8vXG4gICAgICAgIG5vZGUgPSBudWxsO1xuXG4gIGNvbnRleHQgPSBudWxsO1xuXG4gIGNvbnN0IHByaW1pdGl2ZSA9IG5ldyBQcmltaXRpdmUoY29udGV4dCwgc3RyaW5nLCBub2RlLCB0eXBlLCB2YWx1ZSk7XG5cbiAgcmV0dXJuIHByaW1pdGl2ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW1pdGl2ZUZyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBQcmltaXRpdmUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBwcmltaXRpdmVTdHJpbmcgPSBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmVTdHJpbmcsICAvLy9cbiAgICAgICAgdHlwZSA9IFNUUklOR19UWVBFLFxuICAgICAgICB2YWx1ZSA9IHN0cmluZ0xpdGVyYWwsICAvLy9cbiAgICAgICAgbm9kZSA9IG51bGw7XG5cbiAgY29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgcHJpbWl0aXZlID0gbmV3IFByaW1pdGl2ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHR5cGUsIHZhbHVlKTtcblxuICByZXR1cm4gcHJpbWl0aXZlO1xufVxuIl0sIm5hbWVzIjpbInByaW1pdGl2ZUZyb21Cb29sZWFuIiwicHJpbWl0aXZlRnJvbU5vZGUiLCJwcmltaXRpdmVGcm9tTm9kZXMiLCJwcmltaXRpdmVGcm9tU3RyaW5nTGl0ZXJhbCIsIm5vZGUiLCJjb250ZXh0IiwiUHJpbWl0aXZlIiwiZWxlbWVudHMiLCJwcmltaXRpdmVTdHJpbmciLCJwcmltdGl2ZVN0cmluZ0Zyb21Ob2RlIiwic3RyaW5nIiwidHlwZSIsIk5PREVfVFlQRSIsInZhbHVlIiwicHJpbWl0aXZlIiwibm9kZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21Ob2RlcyIsIk5PREVTX1RZUEUiLCJib29sZWFuIiwicHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbiIsIkJPT0xFQU5fVFlQRSIsInN0cmluZ0xpdGVyYWwiLCJwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIiwiU1RSSU5HX1RZUEUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXNDZ0JBO2VBQUFBOztRQS9CQUM7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7UUE4QkFDO2VBQUFBOzs7K0RBbkRLO3FCQUU0QztzQkFDMkQ7Ozs7OztBQUVySCxTQUFTRixrQkFBa0JHLElBQUksRUFBRUMsT0FBTztJQUM3QyxJQUFNLEFBQUVDLFlBQWNDLGlCQUFRLENBQXRCRCxXQUNGRSxrQkFBa0JDLElBQUFBLDhCQUFzQixFQUFDTCxNQUFNQyxVQUMvQ0ssU0FBU0YsaUJBQ1RHLE9BQU9DLGdCQUFTLEVBQ2hCQyxRQUFRVCxNQUFNLEdBQUc7SUFFdkJBLE9BQU87SUFFUEMsVUFBVTtJQUVWLElBQU1TLFlBQVksSUFBSVIsVUFBVUQsU0FBU0ssUUFBUU4sTUFBTU8sTUFBTUU7SUFFN0QsT0FBT0M7QUFDVDtBQUVPLFNBQVNaLG1CQUFtQmEsS0FBSyxFQUFFVixPQUFPO0lBQy9DLElBQU0sQUFBRUMsWUFBY0MsaUJBQVEsQ0FBdEJELFdBQ0ZFLGtCQUFrQlEsSUFBQUEsK0JBQXVCLEVBQUNELE9BQU9WLFVBQ2pESyxTQUFTRixpQkFDVEcsT0FBT00saUJBQVUsRUFDakJKLFFBQVFFLE9BQ1JYLE9BQU87SUFFYkMsVUFBVTtJQUVWLElBQU1TLFlBQVksSUFBSVIsVUFBVUQsU0FBU0ssUUFBUU4sTUFBTU8sTUFBTUU7SUFFN0QsT0FBT0M7QUFDVDtBQUVPLFNBQVNkLHFCQUFxQmtCLE9BQU8sRUFBRWIsT0FBTztJQUNuRCxJQUFNLEFBQUVDLFlBQWNDLGlCQUFRLENBQXRCRCxXQUNGRSxrQkFBa0JXLElBQUFBLGlDQUF5QixFQUFDRCxVQUM1Q1IsU0FBU0YsaUJBQ1RHLE9BQU9TLG1CQUFZLEVBQ25CUCxRQUFRSyxTQUNSZCxPQUFPO0lBRWJDLFVBQVU7SUFFVixJQUFNUyxZQUFZLElBQUlSLFVBQVVELFNBQVNLLFFBQVFOLE1BQU1PLE1BQU1FO0lBRTdELE9BQU9DO0FBQ1Q7QUFFTyxTQUFTWCwyQkFBMkJrQixhQUFhLEVBQUVoQixPQUFPO0lBQy9ELElBQU0sQUFBRUMsWUFBY0MsaUJBQVEsQ0FBdEJELFdBQ0ZFLGtCQUFrQmMsSUFBQUEsdUNBQStCLEVBQUNELGdCQUNsRFgsU0FBU0YsaUJBQ1RHLE9BQU9ZLGtCQUFXLEVBQ2xCVixRQUFRUSxlQUNSakIsT0FBTztJQUViQyxVQUFVO0lBRVYsSUFBTVMsWUFBWSxJQUFJUixVQUFVRCxTQUFTSyxRQUFRTixNQUFNTyxNQUFNRTtJQUU3RCxPQUFPQztBQUNUIn0=
@@ -15,8 +15,14 @@ _export(exports, {
15
15
  get everyStringFromVariableAndAnonymousProcedure () {
16
16
  return everyStringFromVariableAndAnonymousProcedure;
17
17
  },
18
- get expressionStringFromPrimitiveAndProperties () {
19
- return expressionStringFromPrimitiveAndProperties;
18
+ get expressionStringFromProperties () {
19
+ return expressionStringFromProperties;
20
+ },
21
+ get nodePropertiesStringFromNodePropertiesArray () {
22
+ return nodePropertiesStringFromNodePropertiesArray;
23
+ },
24
+ get nodePropertyStringFromNameAndType () {
25
+ return nodePropertyStringFromNameAndType;
20
26
  },
21
27
  get primtiveStringFromBoolean () {
22
28
  return primtiveStringFromBoolean;
@@ -45,8 +51,8 @@ _export(exports, {
45
51
  get someStringFromVariableAndAnonymousProcedure () {
46
52
  return someStringFromVariableAndAnonymousProcedure;
47
53
  },
48
- get termStringFromPrimitiveAndProperties () {
49
- return termStringFromPrimitiveAndProperties;
54
+ get termStringFromProperties () {
55
+ return termStringFromProperties;
50
56
  },
51
57
  get termsStringFromTermsArray () {
52
58
  return termsStringFromTermsArray;
@@ -91,6 +97,16 @@ function primtiveStringFromNodes(nodes, context) {
91
97
  var string = context.nodesAsString(nodes), primtiveString = string; ///
92
98
  return primtiveString;
93
99
  }
100
+ function termStringFromProperties(properties) {
101
+ var termString;
102
+ properties.forEach(function(property) {
103
+ if (property !== null) {
104
+ var propertyString = property.getString();
105
+ termString = propertyString; ///
106
+ }
107
+ });
108
+ return termString;
109
+ }
94
110
  function primtiveStringFromBoolean(boolean) {
95
111
  var expresssionString = "".concat(boolean);
96
112
  return expresssionString;
@@ -103,26 +119,23 @@ function termsStringFromTermsArray(termsArray) {
103
119
  }, null); ///
104
120
  return termsString;
105
121
  }
122
+ function expressionStringFromProperties(properties) {
123
+ var expressionString;
124
+ properties.forEach(function(property) {
125
+ if (property !== null) {
126
+ var propertyString = property.getString();
127
+ expressionString = propertyString; ///
128
+ }
129
+ });
130
+ return expressionString;
131
+ }
106
132
  function primtiveStringFromStringLiteral(stringLiteral) {
107
133
  var string = (0, _stringLiteral.stringFromStringLiteral)(stringLiteral), primtiveString = string; ///
108
134
  return primtiveString;
109
135
  }
110
- function termStringFromPrimitiveAndProperties(primitive, properties) {
111
- var termString;
112
- if (false) {
113
- ///
114
- } else if (primitive !== null) {
115
- var primitiveString = primitive.getString();
116
- termString = primitiveString; ///
117
- } else {
118
- properties.forEach(function(property) {
119
- if (property !== null) {
120
- var propertyString = property.getString();
121
- termString = propertyString; ///
122
- }
123
- });
124
- }
125
- return termString;
136
+ function nodePropertyStringFromNameAndType(name, type) {
137
+ var typeString = type, nameString = name, nodePropertyString = "".concat(typeString, " ").concat(nameString);
138
+ return nodePropertyString;
126
139
  }
127
140
  function procedureDeclarationStringFromProcedure(procedure) {
128
141
  var type = procedure.getType(), label = procedure.getLabel(), parameters = procedure.getParameters(), returnStatement = procedure.getReturnStatement(), labelString = label.getString(), parametersString = parameters.getString(), returnStatementString = returnStatement.getString(), procedureDelcarationString = "".concat(type, " ").concat(labelString, "(").concat(parametersString, ") { ... ").concat(returnStatementString, " }");
@@ -132,22 +145,13 @@ function returnBlockStringFromReturnStatementNode(returnStatement) {
132
145
  var returnStatementString = returnStatement.getString(), returnBlockString = "{ ... ".concat(returnStatementString, " }");
133
146
  return returnBlockString;
134
147
  }
135
- function expressionStringFromPrimitiveAndProperties(primitive, properties) {
136
- var expressionString;
137
- if (false) {
138
- ///
139
- } else if (primitive !== null) {
140
- var primitiveString = primitive.getString();
141
- expressionString = primitiveString; ///
142
- } else {
143
- properties.forEach(function(property) {
144
- if (property !== null) {
145
- var propertyString = property.getString();
146
- expressionString = propertyString; ///
147
- }
148
- });
149
- }
150
- return expressionString;
148
+ function nodePropertiesStringFromNodePropertiesArray(nodePropertiesArray) {
149
+ var nodePropertiesString = nodePropertiesArray.reduce(function(nodePropertiesString, nodeProperty) {
150
+ var nodePropertyString = nodeProperty.getString();
151
+ nodePropertiesString = nodePropertiesString === null ? nodePropertyString : "".concat(nodePropertiesString, ", ").concat(nodePropertyString);
152
+ return nodePropertiesString;
153
+ }, null);
154
+ return nodePropertiesString;
151
155
  }
152
156
  function variableAssignmentStringFromTypeAndVariable(type, variable) {
153
157
  var variableString = variable.getString(), variableAssignmentString = "".concat(type, " ").concat(variableString, " = ... ;");
@@ -187,4 +191,4 @@ function reduceStringFromVariableInitialExpressionAndAnonymousProcedure(variable
187
191
  return reduceString;
188
192
  }
189
193
 
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbnVsbE5vZGUgZnJvbSBcIi4uL251bGxOb2RlXCI7XG5cbmltcG9ydCB7IE5VTEwgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9kZShub2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gKG5vZGUgPT09IG51bGxOb2RlKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0cmluZyA9IGNvbnRleHQubm9kZXNBc1N0cmluZyhub2RlcyksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSB7XG4gIGNvbnN0IGV4cHJlc3NzaW9uU3RyaW5nID0gYCR7Ym9vbGVhbn1gO1xuXG4gIHJldHVybiBleHByZXNzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSkge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zQXJyYXkucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgdGVybVN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICBgJHt0ZXJtc1N0cmluZ30sICR7dGVybVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHRlcm1zU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHRlcm1zU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsKSB7XG4gIGNvbnN0IHN0cmluZyA9IHN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpLFxuICAgICAgICBwcmltdGl2ZVN0cmluZyA9IHN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1TdHJpbmdGcm9tUHJpbWl0aXZlQW5kUHJvcGVydGllcyhwcmltaXRpdmUsIHByb3BlcnRpZXMpIHtcbiAgbGV0IHRlcm1TdHJpbmc7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAocHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcHJpbWl0aXZlU3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpO1xuXG4gICAgdGVybVN0cmluZyA9IHByaW1pdGl2ZVN0cmluZzsgLy8vXG4gIH0gZWxzZSB7XG4gICAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgaWYgKHByb3BlcnR5ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgdGVybVN0cmluZyA9IHByb3BlcnR5U3RyaW5nOyAgLy8vXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGVybVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZShwcm9jZWR1cmUpIHtcbiAgY29uc3QgdHlwZSA9IHByb2NlZHVyZS5nZXRUeXBlKCksXG4gICAgICAgIGxhYmVsID0gcHJvY2VkdXJlLmdldExhYmVsKCksXG4gICAgICAgIHBhcmFtZXRlcnMgPSBwcm9jZWR1cmUuZ2V0UGFyYW1ldGVycygpLFxuICAgICAgICByZXR1cm5TdGF0ZW1lbnQgPSBwcm9jZWR1cmUuZ2V0UmV0dXJuU3RhdGVtZW50KCksXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5TdGF0ZW1lbnRTdHJpbmcgPSByZXR1cm5TdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nID0gYCR7dHlwZX0gJHtsYWJlbFN0cmluZyB9KCR7cGFyYW1ldGVyc1N0cmluZ30pIHsgLi4uICR7cmV0dXJuU3RhdGVtZW50U3RyaW5nfSB9YDtcblxuICByZXR1cm4gcHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXR1cm5CbG9ja1N0cmluZ0Zyb21SZXR1cm5TdGF0ZW1lbnROb2RlKHJldHVyblN0YXRlbWVudCkge1xuICBjb25zdCByZXR1cm5TdGF0ZW1lbnRTdHJpbmcgPSByZXR1cm5TdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVybkJsb2NrU3RyaW5nID0gYHsgLi4uICR7cmV0dXJuU3RhdGVtZW50U3RyaW5nfSB9YDtcblxuICByZXR1cm4gcmV0dXJuQmxvY2tTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHByZXNzaW9uU3RyaW5nRnJvbVByaW1pdGl2ZUFuZFByb3BlcnRpZXMocHJpbWl0aXZlLCBwcm9wZXJ0aWVzKSB7XG4gIGxldCBleHByZXNzaW9uU3RyaW5nO1xuXG4gIGlmIChmYWxzZSkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKHByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHByaW1pdGl2ZVN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKTtcblxuICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcmltaXRpdmVTdHJpbmc7IC8vL1xuICB9IGVsc2Uge1xuICAgIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVN0cmluZyA9IHByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlKHR5cGUsIHZhcmlhYmxlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3R5cGV9ICR7dmFyaWFibGVTdHJpbmd9ID0gLi4uIDtgO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBzb21lU3RyaW5nID0gYFNvbWUoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gc29tZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5U3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBldmVyeVN0cmluZyA9IGBFdmVyeSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBldmVyeVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQodmFyaWFibGVBc3NpZ25tZW50KSB7XG4gIGNvbnN0IHZhcmlhYmxlID0gdmFyaWFibGVBc3NpZ25tZW50LmdldFZhcmlhYmxlKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLmA7XG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2sodHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IHJldHVybkJsb2NrLmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAke2xhYmVsU3RyaW5nfSgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrKHR5cGUsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IHJldHVybkJsb2NrLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAoJHtwYXJhbWV0ZXJzU3RyaW5nfSkgJHtyZXR1cm5CbG9ja1N0cmluZ31gO1xuXG4gIHJldHVybiBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNBcnJheSh0eXBlLCB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkpIHtcbiAgbGV0IHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkucmVkdWNlKCh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nLCB2YXJpYWJsZUFzc2lnbm1lbnQpID0+IHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCk7XG5cbiAgICB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gKHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA6XG4gICAgICBgJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfSwgJHt2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmd9YDtcblxuICAgIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9IGAke3R5cGV9ICR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30gO2A7IC8vL1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGluaXRpYWxFeHByZXNzaW9uLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgaW5pdGlhbEV4cHJlc3Npb25TdHJpbmcgPSBpbml0aWFsRXhwcmVzc2lvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICByZWR1Y2VTdHJpbmcgPSBgUmVkdWNlKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30sICR7aW5pdGlhbEV4cHJlc3Npb25TdHJpbmd9KWA7XG5cbiAgcmV0dXJuIHJlZHVjZVN0cmluZztcbn1cblxuIl0sIm5hbWVzIjpbImFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwiZXZlcnlTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJleHByZXNzaW9uU3RyaW5nRnJvbVByaW1pdGl2ZUFuZFByb3BlcnRpZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZSIsInByaW10aXZlU3RyaW5nRnJvbU5vZGVzIiwicHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsInByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZSIsInByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2siLCJyZWR1Y2VTdHJpbmdGcm9tVmFyaWFibGVJbml0aWFsRXhwcmVzc2lvbkFuZEFub255bW91c1Byb2NlZHVyZSIsInJldHVybkJsb2NrU3RyaW5nRnJvbVJldHVyblN0YXRlbWVudE5vZGUiLCJzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwidGVybVN0cmluZ0Zyb21QcmltaXRpdmVBbmRQcm9wZXJ0aWVzIiwidGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSIsInRlcm5hcnlTdHJpbmdGcm9tVGVybSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQiLCJ2YXJpYWJsZVN0cmluZ0Zyb21OYW1lIiwidGVybSIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJ0ZXJuYXJ5U3RyaW5nIiwibmFtZSIsInZhcmlhYmxlU3RyaW5nIiwibm9kZSIsImNvbnRleHQiLCJwcmltdGl2ZVN0cmluZyIsIm51bGxOb2RlIiwiTlVMTCIsIm5vZGVBc1N0cmluZyIsIm5vZGVzIiwic3RyaW5nIiwibm9kZXNBc1N0cmluZyIsImJvb2xlYW4iLCJleHByZXNzc2lvblN0cmluZyIsInRlcm1zQXJyYXkiLCJ0ZXJtc1N0cmluZyIsInJlZHVjZSIsInN0cmluZ0xpdGVyYWwiLCJzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsInByaW1pdGl2ZSIsInByb3BlcnRpZXMiLCJwcmltaXRpdmVTdHJpbmciLCJmb3JFYWNoIiwicHJvcGVydHkiLCJwcm9wZXJ0eVN0cmluZyIsInByb2NlZHVyZSIsInR5cGUiLCJnZXRUeXBlIiwibGFiZWwiLCJnZXRMYWJlbCIsInBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwicmV0dXJuU3RhdGVtZW50IiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwibGFiZWxTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwicmV0dXJuU3RhdGVtZW50U3RyaW5nIiwicHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmciLCJyZXR1cm5CbG9ja1N0cmluZyIsImV4cHJlc3Npb25TdHJpbmciLCJ2YXJpYWJsZSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZyIsImFub255bW91c1Byb2NlZHVyZSIsImFub255bW91c1Byb2NlZHVyZVN0cmluZyIsInNvbWVTdHJpbmciLCJldmVyeVN0cmluZyIsInZhcmlhYmxlQXNzaWdubWVudCIsImdldFZhcmlhYmxlIiwicmV0dXJuQmxvY2siLCJ0eXBlU3RyaW5nIiwicHJvY2VkdXJlU3RyaW5nIiwidmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyIsImluaXRpYWxFeHByZXNzaW9uIiwiaW5pdGlhbEV4cHJlc3Npb25TdHJpbmciLCJyZWR1Y2VTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXVLZ0JBO2VBQUFBOztRQTFCQUM7ZUFBQUE7O1FBckNBQztlQUFBQTs7UUFyRUFDO2VBQUFBOztRQWZBQztlQUFBQTs7UUFRQUM7ZUFBQUE7O1FBMkJBQztlQUFBQTs7UUE2QkFDO2VBQUFBOztRQXlFQUM7ZUFBQUE7O1FBbUNBQztlQUFBQTs7UUEvRkFDO2VBQUFBOztRQW9DQUM7ZUFBQUE7O1FBdkVBQztlQUFBQTs7UUFyQkFDO2VBQUFBOztRQWxDQUM7ZUFBQUE7O1FBdUhBQztlQUFBQTs7UUFrREFDO2VBQUFBOztRQTNCQUM7ZUFBQUE7O1FBdklBQztlQUFBQTs7OytEQVpLO3lCQUVBOzZCQUNtQjs7Ozs7O0FBRWpDLFNBQVNKLHNCQUFzQkssSUFBSTtJQUN4QyxJQUFNQyxhQUFhRCxLQUFLRSxTQUFTLElBQzNCQyxnQkFBZ0IsQUFBQyxPQUFpQixPQUFYRixZQUFXO0lBRXhDLE9BQU9FO0FBQ1Q7QUFFTyxTQUFTSix1QkFBdUJLLElBQUk7SUFDekMsSUFBTUMsaUJBQWlCRCxNQUFPLEdBQUc7SUFFakMsT0FBT0M7QUFDVDtBQUVPLFNBQVNwQix1QkFBdUJxQixJQUFJLEVBQUVDLE9BQU87SUFDbEQsSUFBTUMsaUJBQWlCLEFBQUNGLFNBQVNHLGlCQUFRLEdBQ2RDLGVBQUksR0FDRkgsUUFBUUksWUFBWSxDQUFDTDtJQUVsRCxPQUFPRTtBQUNUO0FBRU8sU0FBU3RCLHdCQUF3QjBCLEtBQUssRUFBRUwsT0FBTztJQUNwRCxJQUFNTSxT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
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbnVsbE5vZGUgZnJvbSBcIi4uL251bGxOb2RlXCI7XG5cbmltcG9ydCB7IE5VTEwgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9kZShub2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gKG5vZGUgPT09IG51bGxOb2RlKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0cmluZyA9IGNvbnRleHQubm9kZXNBc1N0cmluZyhub2RlcyksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybVN0cmluZ0Zyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgbGV0IHRlcm1TdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgdGVybVN0cmluZyA9IHByb3BlcnR5U3RyaW5nOyAgLy8vXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbUJvb2xlYW4oYm9vbGVhbikge1xuICBjb25zdCBleHByZXNzc2lvblN0cmluZyA9IGAke2Jvb2xlYW59YDtcblxuICByZXR1cm4gZXhwcmVzc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5KHRlcm1zQXJyYXkpIHtcbiAgY29uc3QgdGVybXNTdHJpbmcgPSB0ZXJtc0FycmF5LnJlZHVjZSgodGVybXNTdHJpbmcsIHRlcm0pID0+IHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICAgIHRlcm1zU3RyaW5nID0gKHRlcm1zU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgIHRlcm1TdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgYCR7dGVybXNTdHJpbmd9LCAke3Rlcm1TdHJpbmd9YDtcblxuICAgIHJldHVybiB0ZXJtc1N0cmluZztcbiAgfSwgbnVsbCk7IC8vL1xuXG4gIHJldHVybiB0ZXJtc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25TdHJpbmdGcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7XG4gIGxldCBleHByZXNzaW9uU3RyaW5nO1xuXG4gIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICBpZiAocHJvcGVydHkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpIHtcbiAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZVByb3BlcnR5U3RyaW5nRnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUpIHtcbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUsICAvLy9cbiAgICAgICAgbmFtZVN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgbm9kZVByb3BlcnR5U3RyaW5nID0gYCR7dHlwZVN0cmluZ30gJHtuYW1lU3RyaW5nfWA7XG5cbiAgcmV0dXJuIG5vZGVQcm9wZXJ0eVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZShwcm9jZWR1cmUpIHtcbiAgY29uc3QgdHlwZSA9IHByb2NlZHVyZS5nZXRUeXBlKCksXG4gICAgICAgIGxhYmVsID0gcHJvY2VkdXJlLmdldExhYmVsKCksXG4gICAgICAgIHBhcmFtZXRlcnMgPSBwcm9jZWR1cmUuZ2V0UGFyYW1ldGVycygpLFxuICAgICAgICByZXR1cm5TdGF0ZW1lbnQgPSBwcm9jZWR1cmUuZ2V0UmV0dXJuU3RhdGVtZW50KCksXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5TdGF0ZW1lbnRTdHJpbmcgPSByZXR1cm5TdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nID0gYCR7dHlwZX0gJHtsYWJlbFN0cmluZyB9KCR7cGFyYW1ldGVyc1N0cmluZ30pIHsgLi4uICR7cmV0dXJuU3RhdGVtZW50U3RyaW5nfSB9YDtcblxuICByZXR1cm4gcHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXR1cm5CbG9ja1N0cmluZ0Zyb21SZXR1cm5TdGF0ZW1lbnROb2RlKHJldHVyblN0YXRlbWVudCkge1xuICBjb25zdCByZXR1cm5TdGF0ZW1lbnRTdHJpbmcgPSByZXR1cm5TdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVybkJsb2NrU3RyaW5nID0gYHsgLi4uICR7cmV0dXJuU3RhdGVtZW50U3RyaW5nfSB9YDtcblxuICByZXR1cm4gcmV0dXJuQmxvY2tTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2RlUHJvcGVydGllc1N0cmluZ0Zyb21Ob2RlUHJvcGVydGllc0FycmF5KG5vZGVQcm9wZXJ0aWVzQXJyYXkpIHtcbiAgY29uc3Qgbm9kZVByb3BlcnRpZXNTdHJpbmcgPSBub2RlUHJvcGVydGllc0FycmF5LnJlZHVjZSgobm9kZVByb3BlcnRpZXNTdHJpbmcsIG5vZGVQcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZVByb3BlcnR5U3RyaW5nID0gbm9kZVByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgICBub2RlUHJvcGVydGllc1N0cmluZyA9IChub2RlUHJvcGVydGllc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVQcm9wZXJ0eVN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke25vZGVQcm9wZXJ0aWVzU3RyaW5nfSwgJHtub2RlUHJvcGVydHlTdHJpbmd9YDtcblxuICAgICAgcmV0dXJuIG5vZGVQcm9wZXJ0aWVzU3RyaW5nO1xuICAgIH0sIG51bGwpO1xuXG4gIHJldHVybiBub2RlUHJvcGVydGllc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGUodHlwZSwgdmFyaWFibGUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nID0gYCR7dHlwZX0gJHt2YXJpYWJsZVN0cmluZ30gPSAuLi4gO2A7XG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWVTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBhbm9ueW1vdXNQcm9jZWR1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHNvbWVTdHJpbmcgPSBgU29tZSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBzb21lU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXZlcnlTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBhbm9ueW1vdXNQcm9jZWR1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGV2ZXJ5U3RyaW5nID0gYEV2ZXJ5KCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30pIGA7XG5cbiAgcmV0dXJuIGV2ZXJ5U3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlQXNzaWdubWVudCh2YXJpYWJsZUFzc2lnbm1lbnQpIHtcbiAgY29uc3QgdmFyaWFibGUgPSB2YXJpYWJsZUFzc2lnbm1lbnQuZ2V0VmFyaWFibGUoKSxcbiAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nID0gYCR7dmFyaWFibGVTdHJpbmd9ID0gLi4uYDtcblxuICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVMYWJlbFBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayh0eXBlLCBsYWJlbCwgcGFyYW1ldGVycywgcmV0dXJuQmxvY2spIHtcbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUsICAvLy9cbiAgICAgICAgbGFiZWxTdHJpbmcgPSBsYWJlbC5nZXRTdHJpbmcoKSxcbiAgICAgICAgcGFyYW1ldGVyc1N0cmluZyA9IHBhcmFtZXRlcnMuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVybkJsb2NrU3RyaW5nID0gcmV0dXJuQmxvY2suZ2V0U3RyaW5nKCksXG4gICAgICAgIHByb2NlZHVyZVN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7bGFiZWxTdHJpbmd9KCR7cGFyYW1ldGVyc1N0cmluZ30pICR7cmV0dXJuQmxvY2tTdHJpbmd9YDtcblxuICByZXR1cm4gcHJvY2VkdXJlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2sodHlwZSwgcGFyYW1ldGVycywgcmV0dXJuQmxvY2spIHtcbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUsICAvLy9cbiAgICAgICAgcGFyYW1ldGVyc1N0cmluZyA9IHBhcmFtZXRlcnMuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVybkJsb2NrU3RyaW5nID0gcmV0dXJuQmxvY2suZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIGFub255bW91c1Byb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50c0FycmF5KHR5cGUsIHZhcmlhYmxlQXNzaWdubWVudHNBcnJheSkge1xuICBsZXQgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9IHZhcmlhYmxlQXNzaWdubWVudHNBcnJheS5yZWR1Y2UoKHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcsIHZhcmlhYmxlQXNzaWdubWVudCkgPT4ge1xuICAgIGNvbnN0IHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQodmFyaWFibGVBc3NpZ25tZW50KTtcblxuICAgIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSAodmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIDpcbiAgICAgIGAke3ZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmd9LCAke3ZhcmlhYmxlQXNzaWdubWVudFN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmc7XG4gIH0sIG51bGwpOyAvLy9cblxuICB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gYCR7dHlwZX0gJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfSA7YDsgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VTdHJpbmdGcm9tVmFyaWFibGVJbml0aWFsRXhwcmVzc2lvbkFuZEFub255bW91c1Byb2NlZHVyZSh2YXJpYWJsZSwgaW5pdGlhbEV4cHJlc3Npb24sIGFub255bW91c1Byb2NlZHVyZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBpbml0aWFsRXhwcmVzc2lvblN0cmluZyA9IGluaXRpYWxFeHByZXNzaW9uLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBhbm9ueW1vdXNQcm9jZWR1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJlZHVjZVN0cmluZyA9IGBSZWR1Y2UoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSwgJHtpbml0aWFsRXhwcmVzc2lvblN0cmluZ30pYDtcblxuICByZXR1cm4gcmVkdWNlU3RyaW5nO1xufVxuXG4iXSwibmFtZXMiOlsiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2siLCJldmVyeVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSIsImV4cHJlc3Npb25TdHJpbmdGcm9tUHJvcGVydGllcyIsIm5vZGVQcm9wZXJ0aWVzU3RyaW5nRnJvbU5vZGVQcm9wZXJ0aWVzQXJyYXkiLCJub2RlUHJvcGVydHlTdHJpbmdGcm9tTmFtZUFuZFR5cGUiLCJwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZSIsInByaW10aXZlU3RyaW5nRnJvbU5vZGVzIiwicHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsInByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZSIsInByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2siLCJyZWR1Y2VTdHJpbmdGcm9tVmFyaWFibGVJbml0aWFsRXhwcmVzc2lvbkFuZEFub255bW91c1Byb2NlZHVyZSIsInJldHVybkJsb2NrU3RyaW5nRnJvbVJldHVyblN0YXRlbWVudE5vZGUiLCJzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwidGVybVN0cmluZ0Zyb21Qcm9wZXJ0aWVzIiwidGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSIsInRlcm5hcnlTdHJpbmdGcm9tVGVybSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQiLCJ2YXJpYWJsZVN0cmluZ0Zyb21OYW1lIiwidGVybSIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJ0ZXJuYXJ5U3RyaW5nIiwibmFtZSIsInZhcmlhYmxlU3RyaW5nIiwibm9kZSIsImNvbnRleHQiLCJwcmltdGl2ZVN0cmluZyIsIm51bGxOb2RlIiwiTlVMTCIsIm5vZGVBc1N0cmluZyIsIm5vZGVzIiwic3RyaW5nIiwibm9kZXNBc1N0cmluZyIsInByb3BlcnRpZXMiLCJmb3JFYWNoIiwicHJvcGVydHkiLCJwcm9wZXJ0eVN0cmluZyIsImJvb2xlYW4iLCJleHByZXNzc2lvblN0cmluZyIsInRlcm1zQXJyYXkiLCJ0ZXJtc1N0cmluZyIsInJlZHVjZSIsImV4cHJlc3Npb25TdHJpbmciLCJzdHJpbmdMaXRlcmFsIiwic3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwiLCJ0eXBlIiwidHlwZVN0cmluZyIsIm5hbWVTdHJpbmciLCJub2RlUHJvcGVydHlTdHJpbmciLCJwcm9jZWR1cmUiLCJnZXRUeXBlIiwibGFiZWwiLCJnZXRMYWJlbCIsInBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwicmV0dXJuU3RhdGVtZW50IiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwibGFiZWxTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwicmV0dXJuU3RhdGVtZW50U3RyaW5nIiwicHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmciLCJyZXR1cm5CbG9ja1N0cmluZyIsIm5vZGVQcm9wZXJ0aWVzQXJyYXkiLCJub2RlUHJvcGVydGllc1N0cmluZyIsIm5vZGVQcm9wZXJ0eSIsInZhcmlhYmxlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIiwiYW5vbnltb3VzUHJvY2VkdXJlIiwiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nIiwic29tZVN0cmluZyIsImV2ZXJ5U3RyaW5nIiwidmFyaWFibGVBc3NpZ25tZW50IiwiZ2V0VmFyaWFibGUiLCJyZXR1cm5CbG9jayIsInByb2NlZHVyZVN0cmluZyIsInZhcmlhYmxlQXNzaWdubWVudHNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmciLCJpbml0aWFsRXhwcmVzc2lvbiIsImluaXRpYWxFeHByZXNzaW9uU3RyaW5nIiwicmVkdWNlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE2S2dCQTtlQUFBQTs7UUExQkFDO2VBQUFBOztRQTlFQUM7ZUFBQUE7O1FBaURBQztlQUFBQTs7UUE1QkFDO2VBQUFBOztRQXpDQUM7ZUFBQUE7O1FBN0JBQztlQUFBQTs7UUFRQUM7ZUFBQUE7O1FBdURBQztlQUFBQTs7UUFlQUM7ZUFBQUE7O1FBaUVBQztlQUFBQTs7UUFtQ0FDO2VBQUFBOztRQXZG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
@@ -30,20 +30,29 @@ function _interop_require_default(obj) {
30
30
  };
31
31
  }
32
32
  function termFromNode(node, context) {
33
- var Term = _elements.default.Term, variable = null, primitive = (0, _primitive.primitiveFromNode)(node, context), string = primitive.getString(), term = new Term(string, variable, primitive);
33
+ var Term = _elements.default.Term, variable = null, primitive = (0, _primitive.primitiveFromNode)(node, context), string = primitive.getString();
34
+ node = null;
35
+ context = null;
36
+ var term = new Term(context, string, node, variable, primitive);
34
37
  return term;
35
38
  }
36
39
  function termFromNodes(nodes, context) {
37
- var Term = _elements.default.Term, variable = null, primitive = (0, _primitive.primitiveFromNodes)(nodes, context), string = primitive.getString(), term = new Term(string, variable, primitive);
40
+ var Term = _elements.default.Term, variable = null, primitive = (0, _primitive.primitiveFromNodes)(nodes, context), string = primitive.getString(), node = null;
41
+ context = null;
42
+ var term = new Term(context, string, node, variable, primitive);
38
43
  return term;
39
44
  }
40
45
  function termFromBoolean(boolean, context) {
41
- var Term = _elements.default.Term, variable = null, primitive = (0, _primitive.primitiveFromBoolean)(boolean, context), string = primitive.getString(), term = new Term(string, variable, primitive);
46
+ var Term = _elements.default.Term, variable = null, primitive = (0, _primitive.primitiveFromBoolean)(boolean, context), string = primitive.getString(), node = null;
47
+ context = null;
48
+ var term = new Term(context, string, node, variable, primitive);
42
49
  return term;
43
50
  }
44
51
  function termFromStringLiteral(stringLiteral, context) {
45
- var Term = _elements.default.Term, variable = null, primitive = (0, _primitive.primitiveFromStringLiteral)(stringLiteral, context), string = primitive.getString(), term = new Term(string, variable, primitive);
52
+ var Term = _elements.default.Term, variable = null, primitive = (0, _primitive.primitiveFromStringLiteral)(stringLiteral, context), string = primitive.getString(), node = null;
53
+ context = null;
54
+ var term = new Term(context, string, node, variable, primitive);
46
55
  return term;
47
56
  }
48
57
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBwcmltaXRpdmVGcm9tTm9kZSwgcHJpbWl0aXZlRnJvbU5vZGVzLCBwcmltaXRpdmVGcm9tQm9vbGVhbiwgcHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ByaW1pdGl2ZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybUZyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBUZXJtIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tTm9kZShub2RlLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJtID0gbmV3IFRlcm0oc3RyaW5nLCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdGVybTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Gcm9tTm9kZXMobm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBUZXJtIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tTm9kZXMobm9kZXMsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHRlcm0gPSBuZXcgVGVybShzdHJpbmcsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gIHJldHVybiB0ZXJtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBUZXJtIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJtID0gbmV3IFRlcm0oc3RyaW5nLCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdGVybTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Gcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVGVybSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHZhcmlhYmxlID0gbnVsbCxcbiAgICAgICAgcHJpbWl0aXZlID0gcHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgdGVybSA9IG5ldyBUZXJtKHN0cmluZywgdmFyaWFibGUsIHByaW1pdGl2ZSk7XG5cbiAgcmV0dXJuIHRlcm07XG59XG4iXSwibmFtZXMiOlsidGVybUZyb21Cb29sZWFuIiwidGVybUZyb21Ob2RlIiwidGVybUZyb21Ob2RlcyIsInRlcm1Gcm9tU3RyaW5nTGl0ZXJhbCIsIm5vZGUiLCJjb250ZXh0IiwiVGVybSIsImVsZW1lbnRzIiwidmFyaWFibGUiLCJwcmltaXRpdmUiLCJwcmltaXRpdmVGcm9tTm9kZSIsInN0cmluZyIsImdldFN0cmluZyIsInRlcm0iLCJub2RlcyIsInByaW1pdGl2ZUZyb21Ob2RlcyIsImJvb2xlYW4iLCJwcmltaXRpdmVGcm9tQm9vbGVhbiIsInN0cmluZ0xpdGVyYWwiLCJwcmltaXRpdmVGcm9tU3RyaW5nTGl0ZXJhbCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBMEJnQkE7ZUFBQUE7O1FBcEJBQztlQUFBQTs7UUFVQUM7ZUFBQUE7O1FBb0JBQztlQUFBQTs7OytEQWxDSzt5QkFFbUY7Ozs7OztBQUVqRyxTQUFTRixhQUFhRyxJQUFJLEVBQUVDLE9BQU87SUFDeEMsSUFBTSxBQUFFQyxPQUFTQyxpQkFBUSxDQUFqQkQsTUFDRkUsV0FBVyxNQUNYQyxZQUFZQyxJQUFBQSw0QkFBaUIsRUFBQ04sTUFBTUMsVUFDcENNLFNBQVNGLFVBQVVHLFNBQVMsSUFDNUJDLE9BQU8sSUFBSVAsS0FBS0ssUUFBUUgsVUFBVUM7SUFFeEMsT0FBT0k7QUFDVDtBQUVPLFNBQVNYLGNBQWNZLEtBQUssRUFBRVQsT0FBTztJQUMxQyxJQUFNLEFBQUVDLE9BQVNDLGlCQUFRLENBQWpCRCxNQUNGRSxXQUFXLE1BQ1hDLFlBQVlNLElBQUFBLDZCQUFrQixFQUFDRCxPQUFPVCxVQUN0Q00sU0FBU0YsVUFBVUcsU0FBUyxJQUM1QkMsT0FBTyxJQUFJUCxLQUFLSyxRQUFRSCxVQUFVQztJQUV4QyxPQUFPSTtBQUNUO0FBRU8sU0FBU2IsZ0JBQWdCZ0IsT0FBTyxFQUFFWCxPQUFPO0lBQzlDLElBQU0sQUFBRUMsT0FBU0MsaUJBQVEsQ0FBakJELE1BQ0ZFLFdBQVcsTUFDWEMsWUFBWVEsSUFBQUEsK0JBQW9CLEVBQUNELFNBQVNYLFVBQzFDTSxTQUFTRixVQUFVRyxTQUFTLElBQzVCQyxPQUFPLElBQUlQLEtBQUtLLFFBQVFILFVBQVVDO0lBRXhDLE9BQU9JO0FBQ1Q7QUFFTyxTQUFTVixzQkFBc0JlLGFBQWEsRUFBRWIsT0FBTztJQUMxRCxJQUFNLEFBQUVDLE9BQVNDLGlCQUFRLENBQWpCRCxNQUNGRSxXQUFXLE1BQ1hDLFlBQVlVLElBQUFBLHFDQUEwQixFQUFDRCxlQUFlYixVQUN0RE0sU0FBU0YsVUFBVUcsU0FBUyxJQUM1QkMsT0FBTyxJQUFJUCxLQUFLSyxRQUFRSCxVQUFVQztJQUV4QyxPQUFPSTtBQUNUIn0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBwcmltaXRpdmVGcm9tTm9kZSwgcHJpbWl0aXZlRnJvbU5vZGVzLCBwcmltaXRpdmVGcm9tQm9vbGVhbiwgcHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ByaW1pdGl2ZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybUZyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBUZXJtIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tTm9kZShub2RlLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpO1xuXG4gIG5vZGUgPSBudWxsO1xuXG4gIGNvbnRleHQgPSBudWxsO1xuXG4gIGNvbnN0IHRlcm0gPSBuZXcgVGVybShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gIHJldHVybiB0ZXJtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybUZyb21Ob2Rlcyhub2RlcywgY29udGV4dCkge1xuICBjb25zdCB7IFRlcm0gfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21Ob2Rlcyhub2RlcywgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgbm9kZSA9IG51bGw7XG5cbiAgY29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgdGVybSA9IG5ldyBUZXJtKGNvbnRleHQsIHN0cmluZywgbm9kZSwgdmFyaWFibGUsIHByaW1pdGl2ZSk7XG5cbiAgcmV0dXJuIHRlcm07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCkge1xuICBjb25zdCB7IFRlcm0gfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIG5vZGUgPSBudWxsO1xuXG4gIGNvbnRleHQgPSBudWxsO1xuXG4gIGNvbnN0IHRlcm0gPSBuZXcgVGVybShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gIHJldHVybiB0ZXJtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybUZyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBUZXJtIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBub2RlID0gbnVsbDtcblxuICBjb250ZXh0ID0gbnVsbDtcblxuICBjb25zdCB0ZXJtID0gbmV3IFRlcm0oY29udGV4dCwgc3RyaW5nLCBub2RlLCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdGVybTtcbn1cbiJdLCJuYW1lcyI6WyJ0ZXJtRnJvbUJvb2xlYW4iLCJ0ZXJtRnJvbU5vZGUiLCJ0ZXJtRnJvbU5vZGVzIiwidGVybUZyb21TdHJpbmdMaXRlcmFsIiwibm9kZSIsImNvbnRleHQiLCJUZXJtIiwiZWxlbWVudHMiLCJ2YXJpYWJsZSIsInByaW1pdGl2ZSIsInByaW1pdGl2ZUZyb21Ob2RlIiwic3RyaW5nIiwiZ2V0U3RyaW5nIiwidGVybSIsIm5vZGVzIiwicHJpbWl0aXZlRnJvbU5vZGVzIiwiYm9vbGVhbiIsInByaW1pdGl2ZUZyb21Cb29sZWFuIiwic3RyaW5nTGl0ZXJhbCIsInByaW1pdGl2ZUZyb21TdHJpbmdMaXRlcmFsIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFtQ2dCQTtlQUFBQTs7UUE3QkFDO2VBQUFBOztRQWVBQztlQUFBQTs7UUE0QkFDO2VBQUFBOzs7K0RBL0NLO3lCQUVtRjs7Ozs7O0FBRWpHLFNBQVNGLGFBQWFHLElBQUksRUFBRUMsT0FBTztJQUN4QyxJQUFNLEFBQUVDLE9BQVNDLGlCQUFRLENBQWpCRCxNQUNGRSxXQUFXLE1BQ1hDLFlBQVlDLElBQUFBLDRCQUFpQixFQUFDTixNQUFNQyxVQUNwQ00sU0FBU0YsVUFBVUcsU0FBUztJQUVsQ1IsT0FBTztJQUVQQyxVQUFVO0lBRVYsSUFBTVEsT0FBTyxJQUFJUCxLQUFLRCxTQUFTTSxRQUFRUCxNQUFNSSxVQUFVQztJQUV2RCxPQUFPSTtBQUNUO0FBRU8sU0FBU1gsY0FBY1ksS0FBSyxFQUFFVCxPQUFPO0lBQzFDLElBQU0sQUFBRUMsT0FBU0MsaUJBQVEsQ0FBakJELE1BQ0ZFLFdBQVcsTUFDWEMsWUFBWU0sSUFBQUEsNkJBQWtCLEVBQUNELE9BQU9ULFVBQ3RDTSxTQUFTRixVQUFVRyxTQUFTLElBQzVCUixPQUFPO0lBRWJDLFVBQVU7SUFFVixJQUFNUSxPQUFPLElBQUlQLEtBQUtELFNBQVNNLFFBQVFQLE1BQU1JLFVBQVVDO0lBRXZELE9BQU9JO0FBQ1Q7QUFFTyxTQUFTYixnQkFBZ0JnQixPQUFPLEVBQUVYLE9BQU87SUFDOUMsSUFBTSxBQUFFQyxPQUFTQyxpQkFBUSxDQUFqQkQsTUFDRkUsV0FBVyxNQUNYQyxZQUFZUSxJQUFBQSwrQkFBb0IsRUFBQ0QsU0FBU1gsVUFDMUNNLFNBQVNGLFVBQVVHLFNBQVMsSUFDNUJSLE9BQU87SUFFYkMsVUFBVTtJQUVWLElBQU1RLE9BQU8sSUFBSVAsS0FBS0QsU0FBU00sUUFBUVAsTUFBTUksVUFBVUM7SUFFdkQsT0FBT0k7QUFDVDtBQUVPLFNBQVNWLHNCQUFzQmUsYUFBYSxFQUFFYixPQUFPO0lBQzFELElBQU0sQUFBRUMsT0FBU0MsaUJBQVEsQ0FBakJELE1BQ0ZFLFdBQVcsTUFDWEMsWUFBWVUsSUFBQUEscUNBQTBCLEVBQUNELGVBQWViLFVBQ3RETSxTQUFTRixVQUFVRyxTQUFTLElBQzVCUixPQUFPO0lBRWJDLFVBQVU7SUFFVixJQUFNUSxPQUFPLElBQUlQLEtBQUtELFNBQVNNLFFBQVFQLE1BQU1JLFVBQVVDO0lBRXZELE9BQU9JO0FBQ1QifQ==
@@ -28,13 +28,17 @@ function _interop_require_default(obj) {
28
28
  };
29
29
  }
30
30
  function termsFromNodes(nodes, context) {
31
- var Terms = _elements.default.Terms, termsArray = termsArrayFromNodes(nodes, context), termsString = (0, _string.termsStringFromTermsArray)(termsArray), string = termsString, array = termsArray, terms = new Terms(string, array);
31
+ var Terms = _elements.default.Terms, termsArray = termsArrayFromNodes(nodes, context), termsString = (0, _string.termsStringFromTermsArray)(termsArray), string = termsString, array = termsArray, node = null;
32
+ context = null;
33
+ var terms = new Terms(context, string, node, array);
32
34
  return terms;
33
35
  }
34
36
  function termsFromExpression(term, context) {
35
37
  var Primitives = _elements.default.Primitives, termsArray = [
36
38
  term
37
- ], termsString = (0, _string.termsStringFromTermsArray)(termsArray), string = termsString, array = termsArray, terms = new Primitives(string, array);
39
+ ], termsString = (0, _string.termsStringFromTermsArray)(termsArray), string = termsString, array = termsArray, node = null;
40
+ context = null;
41
+ var terms = new Primitives(context, string, node, array);
38
42
  return terms;
39
43
  }
40
44
  var _default = {
@@ -49,4 +53,4 @@ function termsArrayFromNodes(nodes, context) {
49
53
  return termsArray;
50
54
  }
51
55
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGVybXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuaW1wb3J0IHsgdGVybUZyb21Ob2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy90ZXJtXCI7XG5pbXBvcnQgeyB0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVGVybXMgfSA9IGVsZW1lbnRzLFxuICAgICAgICB0ZXJtc0FycmF5ID0gdGVybXNBcnJheUZyb21Ob2Rlcyhub2RlcywgY29udGV4dCksXG4gICAgICAgIHRlcm1zU3RyaW5nID0gdGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSh0ZXJtc0FycmF5KSxcbiAgICAgICAgc3RyaW5nID0gdGVybXNTdHJpbmcsIC8vL1xuICAgICAgICBhcnJheSA9IHRlcm1zQXJyYXksIC8vL1xuICAgICAgICB0ZXJtcyA9IG5ldyBUZXJtcyhzdHJpbmcsIGFycmF5KTtcblxuICByZXR1cm4gdGVybXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtc0Zyb21FeHByZXNzaW9uKHRlcm0sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBQcmltaXRpdmVzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdGVybXNBcnJheSA9IFtcbiAgICAgICAgICB0ZXJtXG4gICAgICAgIF0sXG4gICAgICAgIHRlcm1zU3RyaW5nID0gdGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSh0ZXJtc0FycmF5KSxcbiAgICAgICAgc3RyaW5nID0gdGVybXNTdHJpbmcsIC8vL1xuICAgICAgICBhcnJheSA9IHRlcm1zQXJyYXksIC8vL1xuICAgICAgICB0ZXJtcyA9IG5ldyBQcmltaXRpdmVzKHN0cmluZywgYXJyYXkpO1xuXG4gIHJldHVybiB0ZXJtcztcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0ZXJtc0Zyb21Ob2RlcyxcbiAgdGVybXNGcm9tRXhwcmVzc2lvblxufTtcblxuZnVuY3Rpb24gdGVybXNBcnJheUZyb21Ob2Rlcyhub2RlcywgY29udGV4dCkge1xuICBjb25zdCB0ZXJtc0FycmF5ID0gbm9kZXMubWFwKChub2RlKSA9PiB7IC8vL1xuICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbU5vZGUobm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRlcm1zQXJyYXk7XG59XG5cbiJdLCJuYW1lcyI6WyJ0ZXJtc0Zyb21FeHByZXNzaW9uIiwidGVybXNGcm9tTm9kZXMiLCJub2RlcyIsImNvbnRleHQiLCJUZXJtcyIsImVsZW1lbnRzIiwidGVybXNBcnJheSIsInRlcm1zQXJyYXlGcm9tTm9kZXMiLCJ0ZXJtc1N0cmluZyIsInRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkiLCJzdHJpbmciLCJhcnJheSIsInRlcm1zIiwidGVybSIsIlByaW1pdGl2ZXMiLCJtYXAiLCJub2RlIiwidGVybUZyb21Ob2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUErQkE7ZUFBQTs7UUFiZ0JBO2VBQUFBOztRQVhBQztlQUFBQTs7OytEQUxLO29CQUVRO3NCQUNhOzs7Ozs7QUFFbkMsU0FBU0EsZUFBZUMsS0FBSyxFQUFFQyxPQUFPO0lBQzNDLElBQU0sQUFBRUMsUUFBVUMsaUJBQVEsQ0FBbEJELE9BQ0ZFLGFBQWFDLG9CQUFvQkwsT0FBT0MsVUFDeENLLGNBQWNDLElBQUFBLGlDQUF5QixFQUFDSCxhQUN4Q0ksU0FBU0YsYUFDVEcsUUFBUUwsWUFDUk0sUUFBUSxJQUFJUixNQUFNTSxRQUFRQztJQUVoQyxPQUFPQztBQUNUO0FBRU8sU0FBU1osb0JBQW9CYSxJQUFJLEVBQUVWLE9BQU87SUFDL0MsSUFBTSxBQUFFVyxhQUFlVCxpQkFBUSxDQUF2QlMsWUFDRlIsYUFBYTtRQUNYTztLQUNELEVBQ0RMLGNBQWNDLElBQUFBLGlDQUF5QixFQUFDSCxhQUN4Q0ksU0FBU0YsYUFDVEcsUUFBUUwsWUFDUk0sUUFBUSxJQUFJRSxXQUFXSixRQUFRQztJQUVyQyxPQUFPQztBQUNUO0lBRUEsV0FBZTtJQUNiWCxnQkFBQUE7SUFDQUQscUJBQUFBO0FBQ0Y7QUFFQSxTQUFTTyxvQkFBb0JMLEtBQUssRUFBRUMsT0FBTztJQUN6QyxJQUFNRyxhQUFhSixNQUFNYSxHQUFHLENBQUMsU0FBQ0M7UUFDNUIsSUFBTUgsT0FBT0ksSUFBQUEsa0JBQVksRUFBQ0QsTUFBTWI7UUFFaEMsT0FBT1U7SUFDVDtJQUVBLE9BQU9QO0FBQ1QifQ==
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGVybXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuaW1wb3J0IHsgdGVybUZyb21Ob2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy90ZXJtXCI7XG5pbXBvcnQgeyB0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVGVybXMgfSA9IGVsZW1lbnRzLFxuICAgICAgICB0ZXJtc0FycmF5ID0gdGVybXNBcnJheUZyb21Ob2Rlcyhub2RlcywgY29udGV4dCksXG4gICAgICAgIHRlcm1zU3RyaW5nID0gdGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSh0ZXJtc0FycmF5KSxcbiAgICAgICAgc3RyaW5nID0gdGVybXNTdHJpbmcsIC8vL1xuICAgICAgICBhcnJheSA9IHRlcm1zQXJyYXksICAvLy9cbiAgICAgICAgbm9kZSA9IG51bGw7XG5cbiAgY29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgdGVybXMgPSBuZXcgVGVybXMoY29udGV4dCwgc3RyaW5nLCBub2RlLCBhcnJheSk7XG5cbiAgcmV0dXJuIHRlcm1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybXNGcm9tRXhwcmVzc2lvbih0ZXJtLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgUHJpbWl0aXZlcyB9ID0gZWxlbWVudHMsXG4gICAgICAgIHRlcm1zQXJyYXkgPSBbXG4gICAgICAgICAgdGVybVxuICAgICAgICBdLFxuICAgICAgICB0ZXJtc1N0cmluZyA9IHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSksXG4gICAgICAgIHN0cmluZyA9IHRlcm1zU3RyaW5nLCAvLy9cbiAgICAgICAgYXJyYXkgPSB0ZXJtc0FycmF5LCAgLy8vXG4gICAgICAgIG5vZGUgPSBudWxsO1xuXG4gIGNvbnRleHQgPSBudWxsO1xuXG4gIGNvbnN0IHRlcm1zID0gbmV3IFByaW1pdGl2ZXMoY29udGV4dCwgc3RyaW5nLCBub2RlLCBhcnJheSk7XG5cbiAgcmV0dXJuIHRlcm1zO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRlcm1zRnJvbU5vZGVzLFxuICB0ZXJtc0Zyb21FeHByZXNzaW9uXG59O1xuXG5mdW5jdGlvbiB0ZXJtc0FycmF5RnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHRlcm1zQXJyYXkgPSBub2Rlcy5tYXAoKG5vZGUpID0+IHsgLy8vXG4gICAgY29uc3QgdGVybSA9IHRlcm1Gcm9tTm9kZShub2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9KTtcblxuICByZXR1cm4gdGVybXNBcnJheTtcbn1cblxuIl0sIm5hbWVzIjpbInRlcm1zRnJvbUV4cHJlc3Npb24iLCJ0ZXJtc0Zyb21Ob2RlcyIsIm5vZGVzIiwiY29udGV4dCIsIlRlcm1zIiwiZWxlbWVudHMiLCJ0ZXJtc0FycmF5IiwidGVybXNBcnJheUZyb21Ob2RlcyIsInRlcm1zU3RyaW5nIiwidGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSIsInN0cmluZyIsImFycmF5Iiwibm9kZSIsInRlcm1zIiwidGVybSIsIlByaW1pdGl2ZXMiLCJtYXAiLCJ0ZXJtRnJvbU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXVDQTtlQUFBOztRQWpCZ0JBO2VBQUFBOztRQWZBQztlQUFBQTs7OytEQUxLO29CQUVRO3NCQUNhOzs7Ozs7QUFFbkMsU0FBU0EsZUFBZUMsS0FBSyxFQUFFQyxPQUFPO0lBQzNDLElBQU0sQUFBRUMsUUFBVUMsaUJBQVEsQ0FBbEJELE9BQ0ZFLGFBQWFDLG9CQUFvQkwsT0FBT0MsVUFDeENLLGNBQWNDLElBQUFBLGlDQUF5QixFQUFDSCxhQUN4Q0ksU0FBU0YsYUFDVEcsUUFBUUwsWUFDUk0sT0FBTztJQUViVCxVQUFVO0lBRVYsSUFBTVUsUUFBUSxJQUFJVCxNQUFNRCxTQUFTTyxRQUFRRSxNQUFNRDtJQUUvQyxPQUFPRTtBQUNUO0FBRU8sU0FBU2Isb0JBQW9CYyxJQUFJLEVBQUVYLE9BQU87SUFDL0MsSUFBTSxBQUFFWSxhQUFlVixpQkFBUSxDQUF2QlUsWUFDRlQsYUFBYTtRQUNYUTtLQUNELEVBQ0ROLGNBQWNDLElBQUFBLGlDQUF5QixFQUFDSCxhQUN4Q0ksU0FBU0YsYUFDVEcsUUFBUUwsWUFDUk0sT0FBTztJQUViVCxVQUFVO0lBRVYsSUFBTVUsUUFBUSxJQUFJRSxXQUFXWixTQUFTTyxRQUFRRSxNQUFNRDtJQUVwRCxPQUFPRTtBQUNUO0lBRUEsV0FBZTtJQUNiWixnQkFBQUE7SUFDQUQscUJBQUFBO0FBQ0Y7QUFFQSxTQUFTTyxvQkFBb0JMLEtBQUssRUFBRUMsT0FBTztJQUN6QyxJQUFNRyxhQUFhSixNQUFNYyxHQUFHLENBQUMsU0FBQ0o7UUFDNUIsSUFBTUUsT0FBT0csSUFBQUEsa0JBQVksRUFBQ0wsTUFBTVQ7UUFFaEMsT0FBT1c7SUFDVDtJQUVBLE9BQU9SO0FBQ1QifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "2.0.340",
4
+ "version": "3.0.1",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -26,7 +26,7 @@
26
26
  "juxtapose": "^4.0.130",
27
27
  "lively-cli": "^2.0.77",
28
28
  "occam-custom-grammars": "^5.0.1369",
29
- "occam-entities": "^1.0.483",
29
+ "occam-model": "^1.0.483",
30
30
  "occam-query": "^4.1.142",
31
31
  "watchful-cli": "^1.7.67"
32
32
  },
@@ -2,24 +2,22 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
+ import Context from "../context";
5
6
  import Exception from "../exception";
6
7
 
7
8
  import { chainContext } from "../utilities/context";
8
9
 
9
10
  const { push } = arrayUtilities;
10
11
 
11
- export default class BlockContext {
12
+ export default class BlockContext extends Context {
12
13
  constructor(context, variables) {
13
- this.context = context;
14
+ super(context, variables);
15
+
14
16
  this.variables = variables;
15
17
 
16
18
  return chainContext(this);
17
19
  }
18
20
 
19
- getContext() {
20
- return this.context;
21
- }
22
-
23
21
  getVariables(nested = true) {
24
22
  const variables = [];
25
23
 
@@ -34,26 +32,6 @@ export default class BlockContext {
34
32
  return variables;
35
33
  }
36
34
 
37
- findVariableByVariableName(variableName, nested = true) {
38
- const variables = this.getVariables(nested),
39
- variable = variables.find((variable) => {
40
- const variableNameMatches = variable.matchVariableName(variableName);
41
-
42
- if (variableNameMatches) {
43
- return true;
44
- }
45
- }) || null;
46
-
47
- return variable;
48
- }
49
-
50
- isVariablePresentByVariableName(variableName, nested = true) {
51
- const variable = this.findVariableByVariableName(variableName, nested),
52
- variablePresent = (variable !== null);
53
-
54
- return variablePresent;
55
- }
56
-
57
35
  addVariable(variable) {
58
36
  const nested = false,
59
37
  variableName = variable.getName(),
@@ -74,18 +52,28 @@ export default class BlockContext {
74
52
  this.variables.push(variable);
75
53
  }
76
54
 
77
- getFileContext() { return this.context.getFileContext(); }
55
+ findVariableByVariableName(variableName, nested = true) {
56
+ const variables = this.getVariables(nested),
57
+ variable = variables.find((variable) => {
58
+ const variableNameMatches = variable.matchVariableName(variableName);
78
59
 
79
- getDepth() {
80
- let depth = this.context.getDepth();
60
+ if (variableNameMatches) {
61
+ return true;
62
+ }
63
+ }) || null;
81
64
 
82
- depth++;
65
+ return variable;
66
+ }
83
67
 
84
- return depth;
68
+ isVariablePresentByVariableName(variableName, nested = true) {
69
+ const variable = this.findVariableByVariableName(variableName, nested),
70
+ variablePresent = (variable !== null);
71
+
72
+ return variablePresent;
85
73
  }
86
74
 
87
75
  static fromVariables(variables, context) {
88
- const blockContext = new BlockContext(context, variables);
76
+ const blockContext = Context.fromNothing(BlockContext, variables, context)
89
77
 
90
78
  return blockContext;
91
79
  }
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ import { arrayUtilities } from "necessary";
4
+
5
+ import FileContext from "../../context/file";
6
+
7
+ import { verifyFile } from "../../process/verify";
8
+ import { chainContext } from "../../utilities/context";
9
+ import { furtleLexer, furtleParser } from "../../utilities/furtle";
10
+
11
+ const { push } = arrayUtilities;
12
+
13
+ export default class FurtleFileContext extends FileContext {
14
+ constructor(context, filePath, tokens, node, procedures) {
15
+ super(context, filePath, tokens, node);
16
+
17
+ this.procedures = procedures;
18
+
19
+ return chainContext(this);
20
+ }
21
+
22
+ getProcedures(includeRelease = true) {
23
+ const procedures = [];
24
+
25
+ push(procedures, this.procedures);
26
+
27
+ if (includeRelease) {
28
+ const releaseContextProcedures = this.context.getProcedures();
29
+
30
+ push(procedures, releaseContextProcedures);
31
+ }
32
+
33
+ return procedures;
34
+ }
35
+
36
+ getLabels(includeRelease = true) {
37
+ const labels = [];
38
+
39
+ return labels;
40
+ }
41
+
42
+ getTypes(includeRelease = true) {
43
+ const types = [];
44
+
45
+ return types;
46
+ }
47
+
48
+ getRules(includeRelease = true) {
49
+ const rules = []
50
+
51
+ return rules;
52
+ }
53
+
54
+ getAxioms(includeRelease = true) {
55
+ const axioms = [];
56
+
57
+ return axioms;
58
+ }
59
+
60
+ getLemmas(includeRelease = true) {
61
+ const lemmas = [];
62
+
63
+ return lemmas;
64
+ }
65
+
66
+ getTheorems(includeRelease = true) {
67
+ const theorems = [];
68
+
69
+ return theorems;
70
+ }
71
+
72
+ getMetaLemmas(includeRelease = true) {
73
+ const metaLemmas = [];
74
+
75
+ return metaLemmas;
76
+ }
77
+
78
+ getConjectures(includeRelease = true) {
79
+ const conjectures = [];
80
+
81
+ return conjectures;
82
+ }
83
+
84
+ getCombinators(includeRelease = true) {
85
+ const combinators = [];
86
+
87
+ return combinators;
88
+ }
89
+
90
+ getTypePrefixes(includeRelease = true) {
91
+ const typePrefixes = [];
92
+
93
+ return typePrefixes;
94
+ }
95
+
96
+ getConstructors(includeRelease = true) {
97
+ const constructors = [];
98
+
99
+ return constructors;
100
+ }
101
+
102
+ getMetatheorems(includeRelease = true) {
103
+ const metatheorems = [];
104
+
105
+ return metatheorems;
106
+ }
107
+
108
+ getVariables() {
109
+ const variables = [];
110
+
111
+ return variables;
112
+ }
113
+
114
+ getMetavariables() {
115
+ const metavariables = [];
116
+
117
+ return metavariables;
118
+ }
119
+
120
+ addProcedure(procedure) {
121
+ const procedureString = procedure.getString();
122
+
123
+ this.procedures.push(procedure);
124
+
125
+ this.debug(`Added the '${procedureString}' procedure to the context.`);
126
+ }
127
+
128
+ static fromFile(file, context) {
129
+ const procedures = [],
130
+ furtleFileContext = FileContext.fromFile(FurtleFileContext, file, procedures, context);
131
+
132
+ return furtleFileContext;
133
+ }
134
+
135
+ static fromFilePath(filePath, context) {
136
+ const procedures = null,
137
+ furtleFileContext = ileContext.fromFilePath(FurtleFileContext, filePath, procedures, context);
138
+
139
+ return furtleFileContext;
140
+ }
141
+ }