occam-verify-cli 0.0.932 → 0.0.934

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 (115) hide show
  1. package/lib/conclusion.js +4 -4
  2. package/lib/consequent.js +4 -4
  3. package/lib/context/local.js +188 -9
  4. package/lib/declaration.js +2 -2
  5. package/lib/equality.js +4 -4
  6. package/lib/equivalence.js +16 -1
  7. package/lib/metaLemma.js +4 -4
  8. package/lib/metatheorem.js +4 -4
  9. package/lib/premise.js +6 -6
  10. package/lib/proofStep.js +43 -6
  11. package/lib/shim.js +14 -0
  12. package/lib/substitution/statementForMetavariable.js +46 -2
  13. package/lib/substitution/termForVariable.js +15 -1
  14. package/lib/supposition.js +6 -6
  15. package/lib/unifier/equality.js +216 -0
  16. package/lib/unifier/metaLevel.js +235 -0
  17. package/lib/unifier/statementAgainstCombinator.js +232 -0
  18. package/lib/unifier/termAgainstConstructor.js +212 -0
  19. package/lib/unifier.js +201 -0
  20. package/lib/unify/argumentAgainstArgument.js +24 -0
  21. package/lib/unify/metavariableAgainstStatement.js +66 -0
  22. package/lib/unify/statementAgainstMetaType.js +28 -0
  23. package/lib/unify/statementAtainstStatement.js +52 -0
  24. package/lib/unify/termAgainstTerm.js +22 -0
  25. package/lib/unify/termAgainstType.js +26 -0
  26. package/lib/unify/variableAgainstTerm.js +70 -0
  27. package/lib/verifier/metaLevel.js +236 -0
  28. package/lib/verifier/statementAsCombinator.js +236 -0
  29. package/lib/verifier/termAsConstructor.js +219 -0
  30. package/lib/verifier.js +182 -0
  31. package/lib/verify/assertion/contained.js +2 -2
  32. package/lib/verify/assertion/defined.js +2 -2
  33. package/lib/verify/declaration.js +18 -18
  34. package/lib/verify/frame.js +9 -12
  35. package/lib/verify/proofStep.js +3 -3
  36. package/lib/verify/statement/qualified.js +61 -10
  37. package/lib/verify/statement/unqualified.js +62 -50
  38. package/lib/verify/statement.js +36 -41
  39. package/lib/verify/statementAsCombinator.js +2 -2
  40. package/lib/verify/subDerivation.js +8 -2
  41. package/lib/verify/term.js +8 -7
  42. package/lib/verify/termAsConstructor.js +2 -2
  43. package/package.json +2 -2
  44. package/src/conclusion.js +3 -3
  45. package/src/consequent.js +3 -3
  46. package/src/context/local.js +68 -8
  47. package/src/declaration.js +2 -2
  48. package/src/equality.js +3 -3
  49. package/src/equivalence.js +19 -0
  50. package/src/metaLemma.js +1 -1
  51. package/src/metatheorem.js +1 -1
  52. package/src/premise.js +5 -5
  53. package/src/proofStep.js +57 -4
  54. package/src/shim.js +5 -0
  55. package/src/substitution/statementForMetavariable.js +33 -2
  56. package/src/substitution/termForVariable.js +16 -0
  57. package/src/supposition.js +5 -5
  58. package/src/unifier/equality.js +84 -0
  59. package/src/unifier/metaLevel.js +114 -0
  60. package/src/unifier/statementAgainstCombinator.js +105 -0
  61. package/src/unifier/termAgainstConstructor.js +77 -0
  62. package/src/unifier.js +133 -0
  63. package/src/unify/argumentAgainstArgument.js +15 -0
  64. package/src/{verify → unify}/metavariableAgainstStatement.js +18 -18
  65. package/src/{verify → unify}/statementAgainstMetaType.js +4 -4
  66. package/src/{verify → unify}/statementAtainstStatement.js +7 -7
  67. package/src/{verify → unify}/termAgainstTerm.js +5 -5
  68. package/src/{verify → unify}/termAgainstType.js +7 -7
  69. package/src/{verify → unify}/variableAgainstTerm.js +6 -6
  70. package/src/verifier/{node/metaLevel.js → metaLevel.js} +14 -14
  71. package/src/verifier/{node/statementAsCombinator.js → statementAsCombinator.js} +14 -14
  72. package/src/verifier/{node/termAsConstructor.js → termAsConstructor.js} +12 -12
  73. package/src/{verifier/node.js → verifier.js} +19 -1
  74. package/src/verify/assertion/contained.js +2 -2
  75. package/src/verify/assertion/defined.js +2 -2
  76. package/src/verify/declaration.js +20 -23
  77. package/src/verify/frame.js +10 -13
  78. package/src/verify/proofStep.js +2 -2
  79. package/src/verify/statement/qualified.js +95 -10
  80. package/src/verify/statement/unqualified.js +85 -11
  81. package/src/verify/statement.js +47 -45
  82. package/src/verify/statementAsCombinator.js +2 -2
  83. package/src/verify/subDerivation.js +3 -1
  84. package/src/verify/term.js +7 -6
  85. package/src/verify/termAsConstructor.js +2 -2
  86. package/lib/mixins/context.js +0 -135
  87. package/lib/mixins/nodesVerifier/intrinsiclevel.js +0 -59
  88. package/lib/mixins/nodesVerifier/metaLevel.js +0 -40
  89. package/lib/utilities/verifier.js +0 -80
  90. package/lib/verifier/node/metaLevel.js +0 -201
  91. package/lib/verifier/node/statementAsCombinator.js +0 -201
  92. package/lib/verifier/node/termAsConstructor.js +0 -184
  93. package/lib/verifier/node.js +0 -157
  94. package/lib/verifier/nodes/equality.js +0 -176
  95. package/lib/verifier/nodes/metaLevel.js +0 -191
  96. package/lib/verifier/nodes/statementAgainstCombinator.js +0 -191
  97. package/lib/verifier/nodes/termAgainstConstructor.js +0 -171
  98. package/lib/verifier/nodes.js +0 -175
  99. package/lib/verify/argumentAgainstArgument.js +0 -24
  100. package/lib/verify/metavariableAgainstStatement.js +0 -66
  101. package/lib/verify/statementAgainstMetaType.js +0 -28
  102. package/lib/verify/statementAtainstStatement.js +0 -52
  103. package/lib/verify/termAgainstTerm.js +0 -22
  104. package/lib/verify/termAgainstType.js +0 -26
  105. package/lib/verify/variableAgainstTerm.js +0 -70
  106. package/src/mixins/context.js +0 -96
  107. package/src/mixins/nodesVerifier/intrinsiclevel.js +0 -73
  108. package/src/mixins/nodesVerifier/metaLevel.js +0 -39
  109. package/src/utilities/verifier.js +0 -38
  110. package/src/verifier/nodes/equality.js +0 -84
  111. package/src/verifier/nodes/metaLevel.js +0 -109
  112. package/src/verifier/nodes/statementAgainstCombinator.js +0 -105
  113. package/src/verifier/nodes/termAgainstConstructor.js +0 -76
  114. package/src/verifier/nodes.js +0 -114
  115. package/src/verify/argumentAgainstArgument.js +0 -15
package/lib/unifier.js ADDED
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ default: function() {
13
+ return Unifier;
14
+ },
15
+ unify: function() {
16
+ return unify;
17
+ }
18
+ });
19
+ var _terminalNodes = require("./utilities/terminalNodes");
20
+ function _array_like_to_array(arr, len) {
21
+ if (len == null || len > arr.length) len = arr.length;
22
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
23
+ return arr2;
24
+ }
25
+ function _array_without_holes(arr) {
26
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
27
+ }
28
+ function _class_call_check(instance, Constructor) {
29
+ if (!(instance instanceof Constructor)) {
30
+ throw new TypeError("Cannot call a class as a function");
31
+ }
32
+ }
33
+ function _defineProperties(target, props) {
34
+ for(var i = 0; i < props.length; i++){
35
+ var descriptor = props[i];
36
+ descriptor.enumerable = descriptor.enumerable || false;
37
+ descriptor.configurable = true;
38
+ if ("value" in descriptor) descriptor.writable = true;
39
+ Object.defineProperty(target, descriptor.key, descriptor);
40
+ }
41
+ }
42
+ function _create_class(Constructor, protoProps, staticProps) {
43
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
44
+ if (staticProps) _defineProperties(Constructor, staticProps);
45
+ return Constructor;
46
+ }
47
+ function _iterable_to_array(iter) {
48
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
49
+ }
50
+ function _non_iterable_spread() {
51
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
52
+ }
53
+ function _to_consumable_array(arr) {
54
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
55
+ }
56
+ function _unsupported_iterable_to_array(o, minLen) {
57
+ if (!o) return;
58
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
59
+ var n = Object.prototype.toString.call(o).slice(8, -1);
60
+ if (n === "Object" && o.constructor) n = o.constructor.name;
61
+ if (n === "Map" || n === "Set") return Array.from(n);
62
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
63
+ }
64
+ var Unifier = /*#__PURE__*/ function() {
65
+ function Unifier() {
66
+ _class_call_check(this, Unifier);
67
+ }
68
+ _create_class(Unifier, [
69
+ {
70
+ key: "unifyNode",
71
+ value: function unifyNode(nodeA, nodeB) {
72
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
73
+ remainingArguments[_key - 2] = arguments[_key];
74
+ }
75
+ var nodeUnified = false;
76
+ var nodeATerminalNode = nodeA.isTerminalNode(), nodeBTerminalNode = nodeB.isTerminalNode(), nodeANonTerminalNode = nodeA.isNonTerminalNode(), nodeBNonTerminalNode = nodeB.isNonTerminalNode();
77
+ if (false) {
78
+ ///
79
+ } else if (nodeATerminalNode && nodeBTerminalNode) {
80
+ var terminalNodeA = nodeA, terminalNodeB = nodeB, terminalNodeUnified = this.unifyTerminalNode.apply(this, [
81
+ terminalNodeA,
82
+ terminalNodeB
83
+ ].concat(_to_consumable_array(remainingArguments)));
84
+ nodeUnified = terminalNodeUnified; ///
85
+ } else if (nodeANonTerminalNode && nodeBNonTerminalNode) {
86
+ var nonTerminalNodeA = nodeA, nonTerminalNodeB = nodeB, nonTerminalNodeUnified = this.unifyNonTerminalNode.apply(this, [
87
+ nonTerminalNodeA,
88
+ nonTerminalNodeB
89
+ ].concat(_to_consumable_array(remainingArguments)));
90
+ nodeUnified = nonTerminalNodeUnified; ///
91
+ }
92
+ return nodeUnified;
93
+ }
94
+ },
95
+ {
96
+ key: "unifyChildNodes",
97
+ value: function unifyChildNodes(childNodesA, childNodesB) {
98
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
99
+ remainingArguments[_key - 2] = arguments[_key];
100
+ }
101
+ var childNodesUnified = false;
102
+ var childNodesALength = childNodesA.length, childNodesBLength = childNodesB.length;
103
+ if (childNodesALength === childNodesBLength) {
104
+ var childTerminalNodeMapA = (0, _terminalNodes.terminalNodeMapFromNodes)(childNodesA), childTerminalNodeMapB = (0, _terminalNodes.terminalNodeMapFromNodes)(childNodesB), terminalNodeMapsEqual = (0, _terminalNodes.areTerminalNodeMapsEqual)(childTerminalNodeMapA, childTerminalNodeMapB);
105
+ if (terminalNodeMapsEqual) {
106
+ var index = 0, childNodesVerifyAhead = this.unifyChildNodesAhead.apply(this, [
107
+ index,
108
+ childNodesA,
109
+ childNodesB
110
+ ].concat(_to_consumable_array(remainingArguments)));
111
+ childNodesUnified = childNodesVerifyAhead; ///
112
+ }
113
+ }
114
+ return childNodesUnified;
115
+ }
116
+ },
117
+ {
118
+ key: "unifyTerminalNode",
119
+ value: function unifyTerminalNode(terminalNodeA, terminalNodeB) {
120
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
121
+ remainingArguments[_key - 2] = arguments[_key];
122
+ }
123
+ var terminalNodeUnified;
124
+ var unifyAhead = remainingArguments.pop(), unifyiedAhead = unifyAhead();
125
+ terminalNodeUnified = unifyiedAhead; ///
126
+ return terminalNodeUnified;
127
+ }
128
+ },
129
+ {
130
+ key: "unifyNonTerminalNode",
131
+ value: function unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
132
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
133
+ remainingArguments[_key - 2] = arguments[_key];
134
+ }
135
+ var nonTerminalNodeUnified = false;
136
+ var nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(), nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(); ///
137
+ if (nonTerminalNodeARuleName === nonTerminalNodeBRuleName) {
138
+ var nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), childNodesA = nonTerminalNodeAChildNodes, childNodesB = nonTerminalNodeBChildNodes, childNodesUnified = this.unifyChildNodes.apply(this, [
139
+ childNodesA,
140
+ childNodesB
141
+ ].concat(_to_consumable_array(remainingArguments)));
142
+ nonTerminalNodeUnified = childNodesUnified; ///
143
+ }
144
+ return nonTerminalNodeUnified;
145
+ }
146
+ },
147
+ {
148
+ key: "unifyChildNodesAhead",
149
+ value: function unifyChildNodesAhead(index, childNodesA, childNodesB) {
150
+ var _this = this;
151
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
152
+ remainingArguments[_key - 3] = arguments[_key];
153
+ }
154
+ var childNodesUnified;
155
+ var unifyAhead = remainingArguments.pop(), childNodesALength = childNodesA.length;
156
+ if (index === childNodesALength) {
157
+ var unifyiedAhead = unifyAhead();
158
+ childNodesUnified = unifyiedAhead; ///
159
+ } else {
160
+ var childNodeA = childNodesA[index], childNodeB = childNodesB[index], nodeA = childNodeA, nodeB = childNodeB, nodeUnified = this.unifyNode.apply(this, [
161
+ nodeA,
162
+ nodeB
163
+ ].concat(_to_consumable_array(remainingArguments), [
164
+ function() {
165
+ remainingArguments.push(unifyAhead); ///
166
+ var aheadIndex = index + 1, childNodesVerifyAhead = _this.unifyChildNodesAhead.apply(_this, [
167
+ aheadIndex,
168
+ childNodesA,
169
+ childNodesB
170
+ ].concat(_to_consumable_array(remainingArguments)));
171
+ return childNodesVerifyAhead;
172
+ }
173
+ ]));
174
+ childNodesUnified = nodeUnified; ///
175
+ }
176
+ return childNodesUnified;
177
+ }
178
+ }
179
+ ]);
180
+ return Unifier;
181
+ }();
182
+ function unify(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB) {
183
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
184
+ remainingArguments[_key - 3] = arguments[_key];
185
+ }
186
+ var unified = false;
187
+ nodeQueryMaps.some(function(nodeQueryMap) {
188
+ var nodeQueryA = nodeQueryMap.nodeQueryA, nodeQueryB = nodeQueryMap.nodeQueryB, unify = nodeQueryMap.unify;
189
+ var nodeA = nodeQueryA(nonTerminalNodeA), nodeB = nodeQueryB(nonTerminalNodeB); ///
190
+ if (nodeA !== null && nodeB !== null) {
191
+ unified = unify.apply(void 0, [
192
+ nodeA,
193
+ nodeB
194
+ ].concat(_to_consumable_array(remainingArguments)));
195
+ return true;
196
+ }
197
+ });
198
+ return unified;
199
+ }
200
+
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91bmlmaWVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyB0ZXJtaW5hbE5vZGVNYXBGcm9tTm9kZXMsIGFyZVRlcm1pbmFsTm9kZU1hcHNFcXVhbCB9IGZyb20gXCIuL3V0aWxpdGllcy90ZXJtaW5hbE5vZGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVuaWZpZXIge1xuICB1bmlmeU5vZGUobm9kZUEsIG5vZGVCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgbm9kZVVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGVBVGVybWluYWxOb2RlID0gbm9kZUEuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBub2RlQlRlcm1pbmFsTm9kZSA9IG5vZGVCLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgbm9kZUFOb25UZXJtaW5hbE5vZGUgPSBub2RlQS5pc05vblRlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIG5vZGVCTm9uVGVybWluYWxOb2RlID0gbm9kZUIuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChub2RlQVRlcm1pbmFsTm9kZSAmJiBub2RlQlRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlQSA9IG5vZGVBLCAgLy8vXG4gICAgICAgICAgICB0ZXJtaW5hbE5vZGVCID0gbm9kZUIsICAvLy9cbiAgICAgICAgICAgIHRlcm1pbmFsTm9kZVVuaWZpZWQgPSB0aGlzLnVuaWZ5VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZUEsIHRlcm1pbmFsTm9kZUIsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgIG5vZGVVbmlmaWVkID0gdGVybWluYWxOb2RlVW5pZmllZDsgIC8vL1xuICAgIH0gZWxzZSBpZiAobm9kZUFOb25UZXJtaW5hbE5vZGUgJiYgbm9kZUJOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBub2RlQSwgIC8vL1xuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IG5vZGVCLCAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSB0aGlzLnVuaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgIG5vZGVVbmlmaWVkID0gbm9uVGVybWluYWxOb2RlVW5pZmllZDsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGVVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlDaGlsZE5vZGVzKGNoaWxkTm9kZXNBLCBjaGlsZE5vZGVzQiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IGNoaWxkTm9kZXNVbmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBjaGlsZE5vZGVzQUxlbmd0aCA9IGNoaWxkTm9kZXNBLmxlbmd0aCxcbiAgICAgICAgICBjaGlsZE5vZGVzQkxlbmd0aCA9IGNoaWxkTm9kZXNCLmxlbmd0aDtcblxuICAgIGlmIChjaGlsZE5vZGVzQUxlbmd0aCA9PT0gY2hpbGROb2Rlc0JMZW5ndGgpIHtcbiAgICAgIGNvbnN0IGNoaWxkVGVybWluYWxOb2RlTWFwQSA9IHRlcm1pbmFsTm9kZU1hcEZyb21Ob2RlcyhjaGlsZE5vZGVzQSksXG4gICAgICAgICAgICBjaGlsZFRlcm1pbmFsTm9kZU1hcEIgPSB0ZXJtaW5hbE5vZGVNYXBGcm9tTm9kZXMoY2hpbGROb2Rlc0IpLFxuICAgICAgICAgICAgdGVybWluYWxOb2RlTWFwc0VxdWFsID0gYXJlVGVybWluYWxOb2RlTWFwc0VxdWFsKGNoaWxkVGVybWluYWxOb2RlTWFwQSwgY2hpbGRUZXJtaW5hbE5vZGVNYXBCKTtcblxuICAgICAgaWYgKHRlcm1pbmFsTm9kZU1hcHNFcXVhbCkge1xuICAgICAgICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgICAgICAgIGNoaWxkTm9kZXNWZXJpZnlBaGVhZCA9IHRoaXMudW5pZnlDaGlsZE5vZGVzQWhlYWQoaW5kZXgsIGNoaWxkTm9kZXNBLCBjaGlsZE5vZGVzQiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICBjaGlsZE5vZGVzVW5pZmllZCA9IGNoaWxkTm9kZXNWZXJpZnlBaGVhZDsgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkTm9kZXNVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlQSwgdGVybWluYWxOb2RlQiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGxldCB0ZXJtaW5hbE5vZGVVbmlmaWVkO1xuXG4gICAgY29uc3QgdW5pZnlBaGVhZCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICB1bmlmeWllZEFoZWFkID0gdW5pZnlBaGVhZCgpO1xuXG4gICAgdGVybWluYWxOb2RlVW5pZmllZCA9IHVuaWZ5aWVkQWhlYWQ7ICAvLy9cblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGVVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZUEuZ2V0UnVsZU5hbWUoKSwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlQi5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgIGlmIChub25UZXJtaW5hbE5vZGVBUnVsZU5hbWUgPT09IG5vblRlcm1pbmFsTm9kZUJSdWxlTmFtZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGVBLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUJDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlQi5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICBjaGlsZE5vZGVzQSA9IG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgIGNoaWxkTm9kZXNCID0gbm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgY2hpbGROb2Rlc1VuaWZpZWQgPSB0aGlzLnVuaWZ5Q2hpbGROb2RlcyhjaGlsZE5vZGVzQSwgY2hpbGROb2Rlc0IsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSBjaGlsZE5vZGVzVW5pZmllZDsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7XG4gIH1cblxuICB1bmlmeUNoaWxkTm9kZXNBaGVhZChpbmRleCwgY2hpbGROb2Rlc0EsIGNoaWxkTm9kZXNCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgY2hpbGROb2Rlc1VuaWZpZWQ7XG5cbiAgICBjb25zdCB1bmlmeUFoZWFkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBjaGlsZE5vZGVzQUxlbmd0aCA9IGNoaWxkTm9kZXNBLmxlbmd0aDtcblxuICAgIGlmIChpbmRleCA9PT0gY2hpbGROb2Rlc0FMZW5ndGgpIHtcbiAgICAgIGNvbnN0IHVuaWZ5aWVkQWhlYWQgPSB1bmlmeUFoZWFkKCk7XG5cbiAgICAgIGNoaWxkTm9kZXNVbmlmaWVkID0gdW5pZnlpZWRBaGVhZDsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZUEgPSBjaGlsZE5vZGVzQVtpbmRleF0sXG4gICAgICAgICAgICBjaGlsZE5vZGVCID0gY2hpbGROb2Rlc0JbaW5kZXhdLFxuICAgICAgICAgICAgbm9kZUEgPSBjaGlsZE5vZGVBLCAvLy9cbiAgICAgICAgICAgIG5vZGVCID0gY2hpbGROb2RlQiwgLy8vXG4gICAgICAgICAgICBub2RlVW5pZmllZCA9IHRoaXMudW5pZnlOb2RlKG5vZGVBLCBub2RlQiwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICAgICAgICAgIHJlbWFpbmluZ0FyZ3VtZW50cy5wdXNoKHVuaWZ5QWhlYWQpOyAvLy9cblxuICAgICAgICAgICAgICBjb25zdCBhaGVhZEluZGV4ID0gaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGVzVmVyaWZ5QWhlYWQgPSB0aGlzLnVuaWZ5Q2hpbGROb2Rlc0FoZWFkKGFoZWFkSW5kZXgsIGNoaWxkTm9kZXNBLCBjaGlsZE5vZGVzQiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgICAgICByZXR1cm4gY2hpbGROb2Rlc1ZlcmlmeUFoZWFkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGNoaWxkTm9kZXNVbmlmaWVkID0gbm9kZVVuaWZpZWQ7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gY2hpbGROb2Rlc1VuaWZpZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5KG5vZGVRdWVyeU1hcHMsIG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgdW5pZmllZCA9IGZhbHNlO1xuXG4gIG5vZGVRdWVyeU1hcHMuc29tZSgobm9kZVF1ZXJ5TWFwKSA9PiB7XG4gICAgY29uc3QgeyBub2RlUXVlcnlBLCBub2RlUXVlcnlCLCB1bmlmeSB9ID0gbm9kZVF1ZXJ5TWFwO1xuXG4gICAgY29uc3Qgbm9kZUEgPSBub2RlUXVlcnlBKG5vblRlcm1pbmFsTm9kZUEpLCAgLy8vXG4gICAgICAgICAgbm9kZUIgPSBub2RlUXVlcnlCKG5vblRlcm1pbmFsTm9kZUIpOyAgLy8vXG5cbiAgICBpZiAoKG5vZGVBICE9PSBudWxsKSAmJiAobm9kZUIgIT09IG51bGwpKSB7XG4gICAgICB1bmlmaWVkID0gdW5pZnkobm9kZUEsIG5vZGVCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1bmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbIlVuaWZpZXIiLCJ1bmlmeSIsInVuaWZ5Tm9kZSIsIm5vZGVBIiwibm9kZUIiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJub2RlVW5pZmllZCIsIm5vZGVBVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJub2RlQlRlcm1pbmFsTm9kZSIsIm5vZGVBTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub2RlQk5vblRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZUEiLCJ0ZXJtaW5hbE5vZGVCIiwidGVybWluYWxOb2RlVW5pZmllZCIsInVuaWZ5VGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub25UZXJtaW5hbE5vZGVVbmlmaWVkIiwidW5pZnlOb25UZXJtaW5hbE5vZGUiLCJ1bmlmeUNoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQSIsImNoaWxkTm9kZXNCIiwiY2hpbGROb2Rlc1VuaWZpZWQiLCJjaGlsZE5vZGVzQUxlbmd0aCIsImxlbmd0aCIsImNoaWxkTm9kZXNCTGVuZ3RoIiwiY2hpbGRUZXJtaW5hbE5vZGVNYXBBIiwidGVybWluYWxOb2RlTWFwRnJvbU5vZGVzIiwiY2hpbGRUZXJtaW5hbE5vZGVNYXBCIiwidGVybWluYWxOb2RlTWFwc0VxdWFsIiwiYXJlVGVybWluYWxOb2RlTWFwc0VxdWFsIiwiaW5kZXgiLCJjaGlsZE5vZGVzVmVyaWZ5QWhlYWQiLCJ1bmlmeUNoaWxkTm9kZXNBaGVhZCIsInVuaWZ5QWhlYWQiLCJwb3AiLCJ1bmlmeWllZEFoZWFkIiwibm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJub25UZXJtaW5hbE5vZGVCUnVsZU5hbWUiLCJub25UZXJtaW5hbE5vZGVBQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcyIsImNoaWxkTm9kZUEiLCJjaGlsZE5vZGVCIiwicHVzaCIsImFoZWFkSW5kZXgiLCJub2RlUXVlcnlNYXBzIiwidW5pZmllZCIsInNvbWUiLCJub2RlUXVlcnlNYXAiLCJub2RlUXVlcnlBIiwibm9kZVF1ZXJ5QiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztlQUlxQkE7O0lBK0dMQyxLQUFLO2VBQUxBOzs7NkJBakhtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXBELElBQUEsQUFBTUQsd0JBQUQsQUFBTDthQUFNQTtnQ0FBQUE7O2tCQUFBQTs7WUFDbkJFLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVQyxLQUFLLEVBQUVDLEtBQUs7Z0JBQUUsSUFBQSxJQUFBLE9BQUEsVUFBQSxRQUFBLEFBQUdDLHFCQUFILFVBQUEsT0FBQSxJQUFBLE9BQUEsUUFBQSxPQUFBLEdBQUEsT0FBQSxNQUFBO29CQUFHQSxtQkFBSCxPQUFBLEtBQUEsU0FBQSxDQUFBLEtBQXFCOztnQkFDM0MsSUFBSUMsY0FBYztnQkFFbEIsSUFBTUMsb0JBQW9CSixNQUFNSyxjQUFjLElBQ3hDQyxvQkFBb0JMLE1BQU1JLGNBQWMsSUFDeENFLHVCQUF1QlAsTUFBTVEsaUJBQWlCLElBQzlDQyx1QkFBdUJSLE1BQU1PLGlCQUFpQjtnQkFFcEQsSUFBSSxPQUFPO2dCQUNULEdBQUc7Z0JBQ0wsT0FBTyxJQUFJSixxQkFBcUJFLG1CQUFtQjtvQkFDakQsSUFBTUksZ0JBQWdCVixPQUNoQlcsZ0JBQWdCVixPQUNoQlcsc0JBQXNCLElBQUksQ0FBQ0MsaUJBQWlCLENBQXRCLE1BQUEsSUFBSSxFQUFKO3dCQUF1Qkg7d0JBQWVD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
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return unifyArgumentAgainstArgument;
9
+ }
10
+ });
11
+ var _termAgainstConstructor = /*#__PURE__*/ _interop_require_default(require("../unifier/termAgainstConstructor"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function unifyArgumentAgainstArgument(argumentNodeA, argumentNodeB, localContext, unifyAhead) {
18
+ var argumentUnifiedAgainstArgument;
19
+ var nonTerminalNodeA = argumentNodeA, nonTerminalNodeB = argumentNodeB, nonTerminalNodeVerified = _termAgainstConstructor.default.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, unifyAhead);
20
+ argumentUnifiedAgainstArgument = nonTerminalNodeVerified; ///
21
+ return argumentUnifiedAgainstArgument;
22
+ }
23
+
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9hcmd1bWVudEFnYWluc3RBcmd1bWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHRlcm1BZ2FpbnN0Q29uc3RydWN0b3JVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL3Rlcm1BZ2FpbnN0Q29uc3RydWN0b3JcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdW5pZnlBcmd1bWVudEFnYWluc3RBcmd1bWVudChhcmd1bWVudE5vZGVBLCBhcmd1bWVudE5vZGVCLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQpIHtcbiAgbGV0IGFyZ3VtZW50VW5pZmllZEFnYWluc3RBcmd1bWVudDtcblxuICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gYXJndW1lbnROb2RlQSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBhcmd1bWVudE5vZGVCLCAvLy9cbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSB0ZXJtQWdhaW5zdENvbnN0cnVjdG9yVW5pZmllci51bmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQpO1xuXG4gIGFyZ3VtZW50VW5pZmllZEFnYWluc3RBcmd1bWVudCA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAvLy9cblxuICByZXR1cm4gYXJndW1lbnRVbmlmaWVkQWdhaW5zdEFyZ3VtZW50O1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5QXJndW1lbnRBZ2FpbnN0QXJndW1lbnQiLCJhcmd1bWVudE5vZGVBIiwiYXJndW1lbnROb2RlQiIsImxvY2FsQ29udGV4dCIsInVuaWZ5QWhlYWQiLCJhcmd1bWVudFVuaWZpZWRBZ2FpbnN0QXJndW1lbnQiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidGVybUFnYWluc3RDb25zdHJ1Y3RvclVuaWZpZXIiLCJ1bmlmeU5vblRlcm1pbmFsTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUF3QkE7Ozs2RUFGa0I7Ozs7OztBQUUzQixTQUFTQSw2QkFBNkJDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxZQUFZLEVBQUVDLFVBQVU7SUFDekcsSUFBSUM7SUFFSixJQUFNQyxtQkFBbUJMLGVBQ25CTSxtQkFBbUJMLGVBQ25CTSwwQkFBMEJDLCtCQUE2QixDQUFDQyxvQkFBb0IsQ0FBQ0osa0JBQWtCQyxrQkFBa0JKLGNBQWNDO0lBRXJJQyxpQ0FBaUNHLHlCQUF5QixHQUFHO0lBRTdELE9BQU9IO0FBQ1QifQ==
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return unifyMetavariableAgainstStatement;
9
+ }
10
+ });
11
+ var _termForVariable = /*#__PURE__*/ _interop_require_default(require("../substitution/termForVariable"));
12
+ var _statementAtainstStatement = /*#__PURE__*/ _interop_require_default(require("../unify/statementAtainstStatement"));
13
+ var _statementForMetavariable = /*#__PURE__*/ _interop_require_default(require("../substitution/statementForMetavariable"));
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ function unifyMetavariableAgainstStatement(metavariableNodeA, statementNodeB, substitutionNode, substitutions, localContextA, localContextB, unifyAhead) {
20
+ var metavariableUnifiedAgainstStatement = false;
21
+ var substitution = substitutions.find(function(substitution) {
22
+ var substitutionMatchesMetavariableNodeA = substitution.matchMetavariableNode(metavariableNodeA);
23
+ if (substitutionMatchesMetavariableNodeA) {
24
+ return true;
25
+ }
26
+ }) || null;
27
+ if (substitution !== null) {
28
+ var substitutionStatementNode = substitution.getStatementNode();
29
+ if (substitutionNode !== null) {
30
+ var termForVariableSubstitution = _termForVariable.default.fromSubstitutionNode(substitutionNode), localContext = localContextB, substitution1 = termForVariableSubstitution, statementNodeA = substitutionStatementNode, statementUnifiedAgainstStatement = (0, _statementAtainstStatement.default)(statementNodeA, statementNodeB, substitution1, substitutions, localContext, localContext);
31
+ if (statementUnifiedAgainstStatement) {
32
+ var unifiedAhead = unifyAhead();
33
+ metavariableUnifiedAgainstStatement = unifiedAhead; ///
34
+ }
35
+ } else {
36
+ var substitutionSubstitution = substitution.getSubstitution();
37
+ if (substitutionSubstitution !== null) {
38
+ var statementNodeA1 = statementNodeB; ///
39
+ statementNodeB = substitutionStatementNode; ///
40
+ var localContext1 = localContextB, substitution2 = substitutionSubstitution, statementUnifiedAgainstStatement1 = (0, _statementAtainstStatement.default)(statementNodeA1, statementNodeB, substitution2, substitutions, localContext1, localContext1);
41
+ if (statementUnifiedAgainstStatement1) {
42
+ var unifiedAhead1 = unifyAhead();
43
+ metavariableUnifiedAgainstStatement = unifiedAhead1; ///
44
+ }
45
+ } else {
46
+ var substitutionMatchesStatementNodeB = substitution.matchStatementNode(statementNodeB);
47
+ if (substitutionMatchesStatementNodeB) {
48
+ var unifiedAhead2 = unifyAhead();
49
+ metavariableUnifiedAgainstStatement = unifiedAhead2; ///
50
+ }
51
+ }
52
+ }
53
+ } else {
54
+ var unifiedAhead3;
55
+ var statementNode = statementNodeB, metavariableNode = metavariableNodeA, statementForMetavariableSubstitution = _statementForMetavariable.default.fromMetavariableNodeStatementNodeAndSubstitutionNode(metavariableNode, statementNode, substitutionNode), substitution3 = statementForMetavariableSubstitution; ///
56
+ substitutions.push(substitution3);
57
+ unifiedAhead3 = unifyAhead();
58
+ if (!unifiedAhead3) {
59
+ substitutions.pop();
60
+ }
61
+ metavariableUnifiedAgainstStatement = unifiedAhead3; ///
62
+ }
63
+ return metavariableUnifiedAgainstStatement;
64
+ }
65
+
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9tZXRhdmFyaWFibGVBZ2FpbnN0U3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vdGVybUZvclZhcmlhYmxlXCI7XG5pbXBvcnQgdW5pZnlTdGF0ZW1lbnRBZ2FpbnN0U3RhdGVtZW50IGZyb20gXCIuLi91bmlmeS9zdGF0ZW1lbnRBdGFpbnN0U3RhdGVtZW50XCI7XG5pbXBvcnQgU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlQWdhaW5zdFN0YXRlbWVudChtZXRhdmFyaWFibGVOb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbk5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHVuaWZ5QWhlYWQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50ID0gZmFsc2U7XG5cbiAgY29uc3Qgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb25NYXRjaGVzTWV0YXZhcmlhYmxlTm9kZUEgPSBzdWJzdGl0dXRpb24ubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGVBKTtcblxuICAgIGlmIChzdWJzdGl0dXRpb25NYXRjaGVzTWV0YXZhcmlhYmxlTm9kZUEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSA9IHN1YnN0aXR1dGlvbi5nZXRTdGF0ZW1lbnROb2RlKCk7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uID0gVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uLmZyb21TdWJzdGl0dXRpb25Ob2RlKHN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICAgICAgbG9jYWxDb250ZXh0ID0gbG9jYWxDb250ZXh0QiwgIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGVBID0gc3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCA9IHVuaWZ5U3RhdGVtZW50QWdhaW5zdFN0YXRlbWVudChzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllZEFnYWluc3RTdGF0ZW1lbnQpIHtcbiAgICAgICAgY29uc3QgdW5pZmllZEFoZWFkID0gdW5pZnlBaGVhZCgpO1xuXG4gICAgICAgIG1ldGF2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50ID0gdW5pZmllZEFoZWFkOyAgLy8vXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbi5nZXRTdWJzdGl0dXRpb24oKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvblN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdGF0ZW1lbnROb2RlQSA9IHN0YXRlbWVudE5vZGVCOyAvLy9cblxuICAgICAgICBzdGF0ZW1lbnROb2RlQiA9IHN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGU7IC8vL1xuXG4gICAgICAgIGNvbnN0IGxvY2FsQ29udGV4dCA9IGxvY2FsQ29udGV4dEIsICAvLy9cbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uU3Vic3RpdHV0aW9uLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCA9IHVuaWZ5U3RhdGVtZW50QWdhaW5zdFN0YXRlbWVudChzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCkge1xuICAgICAgICAgIGNvbnN0IHVuaWZpZWRBaGVhZCA9IHVuaWZ5QWhlYWQoKTtcblxuICAgICAgICAgIG1ldGF2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50ID0gdW5pZmllZEFoZWFkOyAgLy8vXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbk1hdGNoZXNTdGF0ZW1lbnROb2RlQiA9IHN1YnN0aXR1dGlvbi5tYXRjaFN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZUIpO1xuXG4gICAgICAgIGlmIChzdWJzdGl0dXRpb25NYXRjaGVzU3RhdGVtZW50Tm9kZUIpIHtcbiAgICAgICAgICBjb25zdCB1bmlmaWVkQWhlYWQgPSB1bmlmeUFoZWFkKCk7XG5cbiAgICAgICAgICBtZXRhdmFyaWFibGVVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCA9IHVuaWZpZWRBaGVhZDsgIC8vL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCB1bmlmaWVkQWhlYWQ7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZUIsIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlQSwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uID0gU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uLmZyb21NZXRhdmFyaWFibGVOb2RlU3RhdGVtZW50Tm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9uTm9kZSksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uOyAgLy8vXG5cbiAgICBzdWJzdGl0dXRpb25zLnB1c2goc3Vic3RpdHV0aW9uKTtcblxuICAgIHVuaWZpZWRBaGVhZCA9IHVuaWZ5QWhlYWQoKTtcblxuICAgIGlmICghdW5pZmllZEFoZWFkKSB7XG4gICAgICBzdWJzdGl0dXRpb25zLnBvcCgpO1xuICAgIH1cblxuICAgIG1ldGF2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50ID0gdW5pZmllZEFoZWFkOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZEFnYWluc3RTdGF0ZW1lbnQ7XG59XG4iXSwibmFtZXMiOlsidW5pZnlNZXRhdmFyaWFibGVBZ2FpbnN0U3RhdGVtZW50IiwibWV0YXZhcmlhYmxlTm9kZUEiLCJzdGF0ZW1lbnROb2RlQiIsInN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJ1bmlmeUFoZWFkIiwibWV0YXZhcmlhYmxlVW5pZmllZEFnYWluc3RTdGF0ZW1lbnQiLCJzdWJzdGl0dXRpb24iLCJmaW5kIiwic3Vic3RpdHV0aW9uTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVBIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJ0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24iLCJUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24iLCJmcm9tU3Vic3RpdHV0aW9uTm9kZSIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudE5vZGVBIiwic3RhdGVtZW50VW5pZmllZEFnYWluc3RTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudEFnYWluc3RTdGF0ZW1lbnQiLCJ1bmlmaWVkQWhlYWQiLCJzdWJzdGl0dXRpb25TdWJzdGl0dXRpb24iLCJnZXRTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25NYXRjaGVzU3RhdGVtZW50Tm9kZUIiLCJtYXRjaFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsInN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiIsIlN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiIsImZyb21NZXRhdmFyaWFibGVOb2RlU3RhdGVtZW50Tm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUiLCJwdXNoIiwicG9wIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXdCQTs7O3NFQUpnQjtnRkFDRzsrRUFDTTs7Ozs7O0FBRWxDLFNBQVNBLGtDQUFrQ0MsaUJBQWlCLEVBQUVDLGNBQWMsRUFBRUMsZ0JBQWdCLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLFVBQVU7SUFDcEssSUFBSUMsc0NBQXNDO0lBRTFDLElBQU1DLGVBQWVMLGNBQWNNLElBQUksQ0FBQyxTQUFDRDtRQUN2QyxJQUFNRSx1Q0FBdUNGLGFBQWFHLHFCQUFxQixDQUFDWDtRQUVoRixJQUFJVSxzQ0FBc0M7WUFDeEMsT0FBTztRQUNUO0lBQ0YsTUFBTTtJQUVOLElBQUlGLGlCQUFpQixNQUFNO1FBQ3pCLElBQU1JLDRCQUE0QkosYUFBYUssZ0JBQWdCO1FBRS9ELElBQUlYLHFCQUFxQixNQUFNO1lBQzdCLElBQU1ZLDhCQUE4QkMsd0JBQTJCLENBQUNDLG9CQUFvQixDQUFDZCxtQkFDL0VlLGVBQWVaLGVBQ2ZHLGdCQUFlTSw2QkFDZkksaUJBQWlCTiwyQkFDakJPLG1DQUFtQ0MsSUFBQUEsa0NBQThCLEVBQUNGLGdCQUFnQmpCLGdCQUFnQk8sZUFBY0wsZUFBZWMsY0FBY0E7WUFFbkosSUFBSUUsa0NBQWtDO2dCQUNwQyxJQUFNRSxlQUFlZjtnQkFFckJDLHNDQUFzQ2MsY0FBZSxHQUFHO1lBQzFEO1FBQ0YsT0FBTztZQUNMLElBQU1DLDJCQUEyQmQsYUFBYWUsZUFBZTtZQUU3RCxJQUFJRCw2QkFBNkIsTUFBTTtnQkFDckMsSUFBTUosa0JBQWlCakIsZ0JBQWdCLEdBQUc7Z0JBRTFDQSxpQkFBaUJXLDJCQUEyQixHQUFHO2dCQUUvQyxJQUFNSyxnQkFBZVosZUFDZkcsZ0JBQWVjLDBCQUNmSCxvQ0FBbUNDLElBQUFBLGtDQUE4QixFQUFDRixpQkFBZ0JqQixnQkFBZ0JPLGVBQWNMLGVBQWVjLGVBQWNBO2dCQUVuSixJQUFJRSxtQ0FBa0M7b0JBQ3BDLElBQU1FLGdCQUFlZjtvQkFFckJDLHNDQUFzQ2MsZUFBZSxHQUFHO2dCQUMxRDtZQUNGLE9BQU87Z0JBQ0wsSUFBTUcsb0NBQW9DaEIsYUFBYWlCLGtCQUFrQixDQUFDeEI7Z0JBRTFFLElBQUl1QixtQ0FBbUM7b0JBQ3JDLElBQU1ILGdCQUFlZjtvQkFFckJDLHNDQUFzQ2MsZUFBZSxHQUFHO2dCQUMxRDtZQUNGO1FBQ0Y7SUFDRixPQUFPO1FBQ0wsSUFBSUE7UUFFSixJQUFNSyxnQkFBZ0J6QixnQkFDaEIwQixtQkFBbUIzQixtQkFDbkI0Qix1Q0FBdUNDLGlDQUFvQyxDQUFDQyxvREFBb0QsQ0FBQ0gsa0JBQWtCRCxlQUFleEIsbUJBQ2xLTSxnQkFBZW9CLHNDQUF1QyxHQUFHO1FBRS9EekIsY0FBYzRCLElBQUksQ0FBQ3ZCO1FBRW5CYSxnQkFBZWY7UUFFZixJQUFJLENBQUNlLGVBQWM7WUFDakJsQixjQUFjNkIsR0FBRztRQUNuQjtRQUVBekIsc0NBQXNDYyxlQUFlLEdBQUc7SUFDMUQ7SUFFQSxPQUFPZDtBQUNUIn0=
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return unifyStatementAgainstMetaType;
9
+ }
10
+ });
11
+ var _query = require("../utilities/query");
12
+ var _metaTypeNames = require("../metaTypeNames");
13
+ var metaTypeTerminalNodeQuery = (0, _query.nodeQuery)("/metaType/@meta-type!");
14
+ function unifyStatementAgainstMetaType(statementNode, metaTypeNode, localContext, unifyAhead, verifyStatement) {
15
+ var statementVerifiedAgainstMetaType = false;
16
+ var metaTypeTerminalNode = metaTypeTerminalNodeQuery(metaTypeNode), content = metaTypeTerminalNode.getContent();
17
+ if (content === _metaTypeNames.STATEMENT_META_TYPE_NAME) {
18
+ var unifiedAhead = false;
19
+ var derived = false, assignments = [], statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
20
+ if (statementVerified) {
21
+ unifiedAhead = unifyAhead();
22
+ }
23
+ statementVerifiedAgainstMetaType = unifiedAhead; ///
24
+ }
25
+ return statementVerifiedAgainstMetaType;
26
+ }
27
+
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnRBZ2FpbnN0TWV0YVR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFNUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRSB9IGZyb20gXCIuLi9tZXRhVHlwZU5hbWVzXCI7XG5cbmNvbnN0IG1ldGFUeXBlVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YVR5cGUvQG1ldGEtdHlwZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50QWdhaW5zdE1ldGFUeXBlKHN0YXRlbWVudE5vZGUsIG1ldGFUeXBlTm9kZSwgbG9jYWxDb250ZXh0LCB1bmlmeUFoZWFkLCB2ZXJpZnlTdGF0ZW1lbnQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdE1ldGFUeXBlID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YVR5cGVUZXJtaW5hbE5vZGUgPSBtZXRhVHlwZVRlcm1pbmFsTm9kZVF1ZXJ5KG1ldGFUeXBlTm9kZSksXG4gICAgICAgIGNvbnRlbnQgPSBtZXRhVHlwZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgaWYgKGNvbnRlbnQgPT09IFNUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRSkge1xuICAgIGxldCB1bmlmaWVkQWhlYWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGRlcml2ZWQgPSBmYWxzZSxcbiAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICB1bmlmaWVkQWhlYWQgPSB1bmlmeUFoZWFkKCk7XG4gICAgfVxuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0TWV0YVR5cGUgPSB1bmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdE1ldGFUeXBlO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5U3RhdGVtZW50QWdhaW5zdE1ldGFUeXBlIiwibWV0YVR5cGVUZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGUiLCJtZXRhVHlwZU5vZGUiLCJsb2NhbENvbnRleHQiLCJ1bmlmeUFoZWFkIiwidmVyaWZ5U3RhdGVtZW50Iiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0TWV0YVR5cGUiLCJtZXRhVHlwZVRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FIiwidW5pZmllZEFoZWFkIiwiZGVyaXZlZCIsImFzc2lnbm1lbnRzIiwic3RhdGVtZW50VmVyaWZpZWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBd0JBOzs7cUJBTEU7NkJBQ2U7QUFFekMsSUFBTUMsNEJBQTRCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRTdCLFNBQVNGLDhCQUE4QkcsYUFBYSxFQUFFQyxZQUFZLEVBQUVDLFlBQVksRUFBRUMsVUFBVSxFQUFFQyxlQUFlO0lBQzFILElBQUlDLG1DQUFtQztJQUV2QyxJQUFNQyx1QkFBdUJSLDBCQUEwQkcsZUFDakRNLFVBQVVELHFCQUFxQkUsVUFBVTtJQUUvQyxJQUFJRCxZQUFZRSx1Q0FBd0IsRUFBRTtRQUN4QyxJQUFJQyxlQUFlO1FBRW5CLElBQU1DLFVBQVUsT0FDVkMsY0FBYyxFQUFFLEVBQ2hCQyxvQkFBb0JULGdCQUFnQkosZUFBZVksYUFBYUQsU0FBU1Q7UUFFL0UsSUFBSVcsbUJBQW1CO1lBQ3JCSCxlQUFlUDtRQUNqQjtRQUVBRSxtQ0FBbUNLLGNBQWMsR0FBRztJQUN0RDtJQUVBLE9BQU9MO0FBQ1QifQ==
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return unifyStatementAgainstStatement;
9
+ }
10
+ });
11
+ var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/metaLevel"));
12
+ var _termForVariable = /*#__PURE__*/ _interop_require_default(require("../substitution/termForVariable"));
13
+ var _array = require("../utilities/array");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ function unifyStatementAgainstStatement(statementNodeA, statementNodeB, substitution, substitutions, localContextA, localContextB) {
20
+ var statementUnifiedAgainstStatement = false;
21
+ var termForVariableSubstitution = _termForVariable.default.fromSubstitutionAndSubstitutions(substitution, substitutions), transformed = termForVariableSubstitution.isTransformed(substitution);
22
+ var substitutionsA = []; ///
23
+ if (transformed) {
24
+ var substitutionA = termForVariableSubstitution; ///
25
+ substitutionsA.push(substitutionA);
26
+ }
27
+ var nonTerminalNodeA = statementNodeA, nonTerminalNodeB = statementNodeB, nonTerminalNodeUnified = _metaLevel.default.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutionsA, localContextA, localContextB, function() {
28
+ var verifiedAhead = true;
29
+ return verifiedAhead;
30
+ });
31
+ if (nonTerminalNodeUnified) {
32
+ if (!transformed) {
33
+ var substitutionB = termForVariableSubstitution, substitutionsB = [
34
+ substitutionB
35
+ ];
36
+ substitutionsA = transformSubstitutions(substitutionsA, substitutionsB);
37
+ (0, _array.push)(substitutions, substitutionsA);
38
+ }
39
+ statementUnifiedAgainstStatement = true;
40
+ }
41
+ return statementUnifiedAgainstStatement;
42
+ }
43
+ function transformSubstitutions(substitutionsA, substitutionsB) {
44
+ substitutionsA = substitutionsA.map(function(substitutionA) {
45
+ var substitution = substitutionA, substitutions = substitutionsB, termForVariableSubstitution = _termForVariable.default.fromSubstitutionAndSubstitutions(substitution, substitutions);
46
+ substitutionA = termForVariableSubstitution; ///
47
+ return substitutionA;
48
+ });
49
+ return substitutionsA;
50
+ }
51
+
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnRBdGFpbnN0U3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9tZXRhTGV2ZWxcIjtcbmltcG9ydCBUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtRm9yVmFyaWFibGVcIjtcblxuaW1wb3J0IHsgcHVzaCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnRBZ2FpbnN0U3RhdGVtZW50KHN0YXRlbWVudE5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCA9IGZhbHNlO1xuXG4gIGNvbnN0IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiA9IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tU3Vic3RpdHV0aW9uQW5kU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMpLFxuICAgICAgICB0cmFuc2Zvcm1lZCA9IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbi5pc1RyYW5zZm9ybWVkKHN1YnN0aXR1dGlvbik7XG5cbiAgbGV0IHN1YnN0aXR1dGlvbnNBID0gW107IC8vL1xuXG4gIGlmICh0cmFuc2Zvcm1lZCkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbkEgPSB0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb247ICAvLy9cblxuICAgIHN1YnN0aXR1dGlvbnNBLnB1c2goc3Vic3RpdHV0aW9uQSk7XG4gIH1cblxuICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gc3RhdGVtZW50Tm9kZUEsICAvLy9cbiAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IHN0YXRlbWVudE5vZGVCLCAgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnNBLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgfSk7XG5cbiAgaWYgKG5vblRlcm1pbmFsTm9kZVVuaWZpZWQpIHtcbiAgICBpZiAoIXRyYW5zZm9ybWVkKSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25CID0gdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uLCAgLy8vXG4gICAgICAgICAgICBzdWJzdGl0dXRpb25zQiA9IFtcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uQlxuICAgICAgICAgICAgXTtcblxuICAgICAgc3Vic3RpdHV0aW9uc0EgPSB0cmFuc2Zvcm1TdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnNBLCBzdWJzdGl0dXRpb25zQik7XG5cbiAgICAgIHB1c2goc3Vic3RpdHV0aW9ucywgc3Vic3RpdHV0aW9uc0EpO1xuICAgIH1cblxuICAgIHN0YXRlbWVudFVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdFN0YXRlbWVudDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zQSwgc3Vic3RpdHV0aW9uc0IpIHtcbiAgc3Vic3RpdHV0aW9uc0EgPSBzdWJzdGl0dXRpb25zQS5tYXAoKHN1YnN0aXR1dGlvbkEpID0+IHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25BLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnNCLFxuICAgICAgICAgIHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiA9IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tU3Vic3RpdHV0aW9uQW5kU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgc3Vic3RpdHV0aW9uQSA9IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uQTtcbiAgfSk7XG5cbiAgcmV0dXJuIHN1YnN0aXR1dGlvbnNBO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5U3RhdGVtZW50QWdhaW5zdFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGVBIiwic3RhdGVtZW50Tm9kZUIiLCJzdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCIsInRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsIlRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsImZyb21TdWJzdGl0dXRpb25BbmRTdWJzdGl0dXRpb25zIiwidHJhbnNmb3JtZWQiLCJpc1RyYW5zZm9ybWVkIiwic3Vic3RpdHV0aW9uc0EiLCJzdWJzdGl0dXRpb25BIiwicHVzaCIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9uVGVybWluYWxOb2RlVW5pZmllZCIsIm1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeU5vblRlcm1pbmFsTm9kZSIsInZlcmlmaWVkQWhlYWQiLCJzdWJzdGl0dXRpb25CIiwic3Vic3RpdHV0aW9uc0IiLCJ0cmFuc2Zvcm1TdWJzdGl0dXRpb25zIiwibWFwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQXdCQTs7O2dFQUxLO3NFQUNXO3FCQUVuQjs7Ozs7O0FBRU4sU0FBU0EsK0JBQStCQyxjQUFjLEVBQUVDLGNBQWMsRUFBRUMsWUFBWSxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUM5SSxJQUFJQyxtQ0FBbUM7SUFFdkMsSUFBTUMsOEJBQThCQyx3QkFBMkIsQ0FBQ0MsZ0NBQWdDLENBQUNQLGNBQWNDLGdCQUN6R08sY0FBY0gsNEJBQTRCSSxhQUFhLENBQUNUO0lBRTlELElBQUlVLGlCQUFpQixFQUFFLEVBQUUsR0FBRztJQUU1QixJQUFJRixhQUFhO1FBQ2YsSUFBTUcsZ0JBQWdCTiw2QkFBOEIsR0FBRztRQUV2REssZUFBZUUsSUFBSSxDQUFDRDtJQUN0QjtJQUVBLElBQU1FLG1CQUFtQmYsZ0JBQ25CZ0IsbUJBQW1CZixnQkFDbkJnQix5QkFBeUJDLGtCQUFnQixDQUFDQyxvQkFBb0IsQ0FBQ0osa0JBQWtCQyxrQkFBa0JKLGdCQUFnQlIsZUFBZUMsZUFBZTtRQUMvSSxJQUFNZSxnQkFBZ0I7UUFFdEIsT0FBT0E7SUFDVDtJQUVOLElBQUlILHdCQUF3QjtRQUMxQixJQUFJLENBQUNQLGFBQWE7WUFDaEIsSUFBTVcsZ0JBQWdCZCw2QkFDaEJlLGlCQUFpQjtnQkFDZkQ7YUFDRDtZQUVQVCxpQkFBaUJXLHVCQUF1QlgsZ0JBQWdCVTtZQUV4RFIsSUFBQUEsV0FBSSxFQUFDWCxlQUFlUztRQUN0QjtRQUVBTixtQ0FBbUM7SUFDckM7SUFFQSxPQUFPQTtBQUNUO0FBRUEsU0FBU2lCLHVCQUF1QlgsY0FBYyxFQUFFVSxjQUFjO0lBQzVEVixpQkFBaUJBLGVBQWVZLEdBQUcsQ0FBQyxTQUFDWDtRQUNuQyxJQUFNWCxlQUFlVyxlQUNmVixnQkFBZ0JtQixnQkFDaEJmLDhCQUE4QkMsd0JBQTJCLENBQUNDLGdDQUFnQyxDQUFDUCxjQUFjQztRQUUvR1UsZ0JBQWdCTiw2QkFBNkIsR0FBRztRQUVoRCxPQUFPTTtJQUNUO0lBRUEsT0FBT0Q7QUFDVCJ9
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return unifyTermAgainstTerm;
9
+ }
10
+ });
11
+ var _equivalences = require("../utilities/equivalences");
12
+ function unifyTermAgainstTerm(termNodeA, termNodeB, localContext, unifyAhead) {
13
+ var termUnifiedAgainstTerm = false;
14
+ var leftTermNode = termNodeA, rightTermNode = termNodeB, equivalences = localContext.getEquivalences(), termNodesEqual = (0, _equivalences.areTermNodesEqual)(leftTermNode, rightTermNode, equivalences);
15
+ if (termNodesEqual) {
16
+ var unifiedAhead = unifyAhead();
17
+ termUnifiedAgainstTerm = unifiedAhead; ///
18
+ }
19
+ return termUnifiedAgainstTerm;
20
+ }
21
+
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS90ZXJtQWdhaW5zdFRlcm0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFyZVRlcm1Ob2Rlc0VxdWFsIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lcXVpdmFsZW5jZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdW5pZnlUZXJtQWdhaW5zdFRlcm0odGVybU5vZGVBLCB0ZXJtTm9kZUIsIGxvY2FsQ29udGV4dCwgdW5pZnlBaGVhZCkge1xuICBsZXQgdGVybVVuaWZpZWRBZ2FpbnN0VGVybSA9IGZhbHNlO1xuXG4gIGNvbnN0IGxlZnRUZXJtTm9kZSA9IHRlcm1Ob2RlQSwgLy8vXG4gICAgICAgIHJpZ2h0VGVybU5vZGUgPSB0ZXJtTm9kZUIsIC8vL1xuICAgICAgICBlcXVpdmFsZW5jZXMgPSBsb2NhbENvbnRleHQuZ2V0RXF1aXZhbGVuY2VzKCksXG4gICAgICAgIHRlcm1Ob2Rlc0VxdWFsID0gYXJlVGVybU5vZGVzRXF1YWwobGVmdFRlcm1Ob2RlLCByaWdodFRlcm1Ob2RlLCBlcXVpdmFsZW5jZXMpO1xuXG4gIGlmICh0ZXJtTm9kZXNFcXVhbCkge1xuICAgIGNvbnN0IHVuaWZpZWRBaGVhZCA9IHVuaWZ5QWhlYWQoKTtcblxuICAgIHRlcm1VbmlmaWVkQWdhaW5zdFRlcm0gPSB1bmlmaWVkQWhlYWQ7ICAvLy9cbiAgfVxuXG4gIHJldHVybiB0ZXJtVW5pZmllZEFnYWluc3RUZXJtO1xufSJdLCJuYW1lcyI6WyJ1bmlmeVRlcm1BZ2FpbnN0VGVybSIsInRlcm1Ob2RlQSIsInRlcm1Ob2RlQiIsImxvY2FsQ29udGV4dCIsInVuaWZ5QWhlYWQiLCJ0ZXJtVW5pZmllZEFnYWluc3RUZXJtIiwibGVmdFRlcm1Ob2RlIiwicmlnaHRUZXJtTm9kZSIsImVxdWl2YWxlbmNlcyIsImdldEVxdWl2YWxlbmNlcyIsInRlcm1Ob2Rlc0VxdWFsIiwiYXJlVGVybU5vZGVzRXF1YWwiLCJ1bmlmaWVkQWhlYWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBd0JBOzs7NEJBRlU7QUFFbkIsU0FBU0EscUJBQXFCQyxTQUFTLEVBQUVDLFNBQVMsRUFBRUMsWUFBWSxFQUFFQyxVQUFVO0lBQ3pGLElBQUlDLHlCQUF5QjtJQUU3QixJQUFNQyxlQUFlTCxXQUNmTSxnQkFBZ0JMLFdBQ2hCTSxlQUFlTCxhQUFhTSxlQUFlLElBQzNDQyxpQkFBaUJDLElBQUFBLCtCQUFpQixFQUFDTCxjQUFjQyxlQUFlQztJQUV0RSxJQUFJRSxnQkFBZ0I7UUFDbEIsSUFBTUUsZUFBZVI7UUFFckJDLHlCQUF5Qk8sY0FBZSxHQUFHO0lBQzdDO0lBRUEsT0FBT1A7QUFDVCJ9
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return unifyTermAgainstType;
9
+ }
10
+ });
11
+ var _array = require("../utilities/array");
12
+ function unifyTermAgainstType(termNode, typeNode, localContext, unifyAhead, verifyTerm) {
13
+ var termUnifiedAgainstType;
14
+ var terms = [], termVerified = verifyTerm(termNode, terms, localContext, function() {
15
+ var unifiedAhead = false;
16
+ var firstTerm = (0, _array.first)(terms), term = firstTerm, termType = term.getType(), type = localContext.findTypeByTypeNode(typeNode), termTypeEqualToOrSubTypeOfType = termType.isEqualToOrSubTypeOf(type);
17
+ if (termTypeEqualToOrSubTypeOfType) {
18
+ unifiedAhead = unifyAhead();
19
+ }
20
+ return unifiedAhead;
21
+ });
22
+ termUnifiedAgainstType = termVerified; ///
23
+ return termUnifiedAgainstType;
24
+ }
25
+
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS90ZXJtQWdhaW5zdFR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1bmlmeVRlcm1BZ2FpbnN0VHlwZSh0ZXJtTm9kZSwgdHlwZU5vZGUsIGxvY2FsQ29udGV4dCwgdW5pZnlBaGVhZCwgdmVyaWZ5VGVybSkge1xuICBsZXQgdGVybVVuaWZpZWRBZ2FpbnN0VHlwZTtcblxuICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgbGV0IHVuaWZpZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgZmlyc3RUZXJtID0gZmlyc3QodGVybXMpLFxuICAgICAgICAgICAgICAgIHRlcm0gPSBmaXJzdFRlcm0sIC8vL1xuICAgICAgICAgICAgICAgIHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgdHlwZSA9IGxvY2FsQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICAgICAgICAgIHRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSA9IHRlcm1UeXBlLmlzRXF1YWxUb09yU3ViVHlwZU9mKHR5cGUpO1xuXG4gICAgICAgICAgaWYgKHRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSkge1xuICAgICAgICAgICAgdW5pZmllZEFoZWFkID0gdW5pZnlBaGVhZCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1bmlmaWVkQWhlYWQ7XG4gICAgICAgIH0pO1xuXG4gIHRlcm1VbmlmaWVkQWdhaW5zdFR5cGUgPSB0ZXJtVmVyaWZpZWQ7IC8vL1xuXG4gIHJldHVybiB0ZXJtVW5pZmllZEFnYWluc3RUeXBlO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5VGVybUFnYWluc3RUeXBlIiwidGVybU5vZGUiLCJ0eXBlTm9kZSIsImxvY2FsQ29udGV4dCIsInVuaWZ5QWhlYWQiLCJ2ZXJpZnlUZXJtIiwidGVybVVuaWZpZWRBZ2FpbnN0VHlwZSIsInRlcm1zIiwidGVybVZlcmlmaWVkIiwidW5pZmllZEFoZWFkIiwiZmlyc3RUZXJtIiwiZmlyc3QiLCJ0ZXJtIiwidGVybVR5cGUiLCJnZXRUeXBlIiwidHlwZSIsImZpbmRUeXBlQnlUeXBlTm9kZSIsInRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXdCQTs7O3FCQUZGO0FBRVAsU0FBU0EscUJBQXFCQyxRQUFRLEVBQUVDLFFBQVEsRUFBRUMsWUFBWSxFQUFFQyxVQUFVLEVBQUVDLFVBQVU7SUFDbkcsSUFBSUM7SUFFSixJQUFNQyxRQUFRLEVBQUUsRUFDVkMsZUFBZUgsV0FBV0osVUFBVU0sT0FBT0osY0FBYztRQUN2RCxJQUFJTSxlQUFlO1FBRW5CLElBQU1DLFlBQVlDLElBQUFBLFlBQUssRUFBQ0osUUFDbEJLLE9BQU9GLFdBQ1BHLFdBQVdELEtBQUtFLE9BQU8sSUFDdkJDLE9BQU9aLGFBQWFhLGtCQUFrQixDQUFDZCxXQUN2Q2UsaUNBQWlDSixTQUFTSyxvQkFBb0IsQ0FBQ0g7UUFFckUsSUFBSUUsZ0NBQWdDO1lBQ2xDUixlQUFlTDtRQUNqQjtRQUVBLE9BQU9LO0lBQ1Q7SUFFTkgseUJBQXlCRSxjQUFjLEdBQUc7SUFFMUMsT0FBT0Y7QUFDVCJ9
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return unifyVariableAgainstTerm;
9
+ }
10
+ });
11
+ var _term = /*#__PURE__*/ _interop_require_default(require("../verify/term"));
12
+ var _termForVariable = /*#__PURE__*/ _interop_require_default(require("../substitution/termForVariable"));
13
+ var _array = require("../utilities/array");
14
+ var _query = require("../utilities/query");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ var variableNodeQuery = (0, _query.nodeQuery)("/term/variable");
21
+ function unifyVariableAgainstTerm(variableNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead) {
22
+ var variableUnifiedAgainstTerm = false;
23
+ var substitution = substitutions.find(function(substitution) {
24
+ var substitutionMatchesVariableNodeA = substitution.matchVariableNode(variableNodeA);
25
+ if (substitutionMatchesVariableNodeA) {
26
+ return true;
27
+ }
28
+ }) || null;
29
+ if (substitution !== null) {
30
+ var substitutionMatchesTermNodeB = substitution.matchTermNode(termNodeB);
31
+ if (substitutionMatchesTermNodeB) {
32
+ var verifiedAhead = verifyAhead();
33
+ variableUnifiedAgainstTerm = verifiedAhead; ///
34
+ }
35
+ } else {
36
+ var variableA = localContextA.findVariableByVariableNode(variableNodeA);
37
+ if (variableA !== null) {
38
+ var terms = [], termUnified = (0, _term.default)(termNodeB, terms, localContextB, function() {
39
+ var verifiedAhead = false;
40
+ var firstTerm = (0, _array.first)(terms), termB = firstTerm, variableB = variableFromTerm(termB, localContextB);
41
+ if (variableA === variableB) {
42
+ verifiedAhead = verifyAhead();
43
+ } else {
44
+ var term = termB, variable = variableA, termType = term.getType(), variableType = variable.getType(), variableTypeEqualToOrSuperTypeOfTermType = variableType.isEqualToOrSuperTypeOf(termType);
45
+ if (variableTypeEqualToOrSuperTypeOfTermType) {
46
+ var termNode = termNodeB, variableNode = variableNodeA, termForVariableSubstitution = _termForVariable.default.fromVariableNodeAndTermNode(variableNode, termNode), substitution = termForVariableSubstitution; ///
47
+ substitutions.push(substitution);
48
+ verifiedAhead = verifyAhead();
49
+ if (!verifiedAhead) {
50
+ substitutions.pop();
51
+ }
52
+ }
53
+ }
54
+ return verifiedAhead;
55
+ });
56
+ variableUnifiedAgainstTerm = termUnified; ///
57
+ }
58
+ }
59
+ return variableUnifiedAgainstTerm;
60
+ }
61
+ function variableFromTerm(term, localContext) {
62
+ var variable = null;
63
+ var termNode = term.getNode(), variableNode = variableNodeQuery(termNode);
64
+ if (variableNode !== null) {
65
+ variable = localContext.findVariableByVariableNode(variableNode);
66
+ }
67
+ return variable;
68
+ }
69
+
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS92YXJpYWJsZUFnYWluc3RUZXJtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5VGVybSBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1cIjtcbmltcG9ydCBUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtRm9yVmFyaWFibGVcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5VmFyaWFibGVBZ2FpbnN0VGVybSh2YXJpYWJsZU5vZGVBLCB0ZXJtTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0VGVybSA9IGZhbHNlO1xuXG4gIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbnMuZmluZCgoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uTWF0Y2hlc1ZhcmlhYmxlTm9kZUEgPSBzdWJzdGl0dXRpb24ubWF0Y2hWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlQSk7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlc1ZhcmlhYmxlTm9kZUEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uTWF0Y2hlc1Rlcm1Ob2RlQiA9IHN1YnN0aXR1dGlvbi5tYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlQik7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlc1Rlcm1Ob2RlQikge1xuICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgIHZhcmlhYmxlVW5pZmllZEFnYWluc3RUZXJtID0gdmVyaWZpZWRBaGVhZDsgIC8vL1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB2YXJpYWJsZUEgPSBsb2NhbENvbnRleHRBLmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZUEpO1xuXG4gICAgaWYgKHZhcmlhYmxlQSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgICAgIHRlcm1VbmlmaWVkID0gdmVyaWZ5VGVybSh0ZXJtTm9kZUIsIHRlcm1zLCBsb2NhbENvbnRleHRCLCAoKSA9PiB7XG4gICAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgY29uc3QgZmlyc3RUZXJtID0gZmlyc3QodGVybXMpLFxuICAgICAgICAgICAgICAgICAgICB0ZXJtQiA9IGZpcnN0VGVybSwgLy8vXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlQiA9IHZhcmlhYmxlRnJvbVRlcm0odGVybUIsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgICAgICAgICAgIGlmICh2YXJpYWJsZUEgPT09IHZhcmlhYmxlQikge1xuICAgICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtQiwgLy8vXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUEsIC8vL1xuICAgICAgICAgICAgICAgICAgICAgIHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVUeXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUgPSB2YXJpYWJsZVR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0ZXJtVHlwZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodmFyaWFibGVUeXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZUZXJtVHlwZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtTm9kZUIsIC8vL1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlQSwgLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24gPSBUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24uZnJvbVZhcmlhYmxlTm9kZUFuZFRlcm1Ob2RlKHZhcmlhYmxlTm9kZSwgdGVybU5vZGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uOyAgLy8vXG5cbiAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvbnMucHVzaChzdWJzdGl0dXRpb24pO1xuXG4gICAgICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKCF2ZXJpZmllZEFoZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvbnMucG9wKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgdmFyaWFibGVVbmlmaWVkQWdhaW5zdFRlcm0gPSB0ZXJtVW5pZmllZDsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0VGVybTtcbn1cblxuZnVuY3Rpb24gdmFyaWFibGVGcm9tVGVybSh0ZXJtLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlID0gbnVsbDtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZSk7XG5cbiAgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgIHZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdmFyaWFibGU7XG59Il0sIm5hbWVzIjpbInVuaWZ5VmFyaWFibGVBZ2FpbnN0VGVybSIsInZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlQSIsInRlcm1Ob2RlQiIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInZlcmlmeUFoZWFkIiwidmFyaWFibGVVbmlmaWVkQWdhaW5zdFRlcm0iLCJzdWJzdGl0dXRpb24iLCJmaW5kIiwic3Vic3RpdHV0aW9uTWF0Y2hlc1ZhcmlhYmxlTm9kZUEiLCJtYXRjaFZhcmlhYmxlTm9kZSIsInN1YnN0aXR1dGlvbk1hdGNoZXNUZXJtTm9kZUIiLCJtYXRjaFRlcm1Ob2RlIiwidmVyaWZpZWRBaGVhZCIsInZhcmlhYmxlQSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlIiwidGVybXMiLCJ0ZXJtVW5pZmllZCIsInZlcmlmeVRlcm0iLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm1CIiwidmFyaWFibGVCIiwidmFyaWFibGVGcm9tVGVybSIsInRlcm0iLCJ2YXJpYWJsZSIsInRlcm1UeXBlIiwiZ2V0VHlwZSIsInZhcmlhYmxlVHlwZSIsInZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUiLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwidGVybU5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJ0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24iLCJUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24iLCJmcm9tVmFyaWFibGVOb2RlQW5kVGVybU5vZGUiLCJwdXNoIiwicG9wIiwibG9jYWxDb250ZXh0IiwiZ2V0Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUF3QkE7OzsyREFSRDtzRUFDaUI7cUJBRWxCO3FCQUNJOzs7Ozs7QUFFMUIsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXJCLFNBQVNGLHlCQUF5QkcsYUFBYSxFQUFFQyxTQUFTLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLFdBQVc7SUFDakksSUFBSUMsNkJBQTZCO0lBRWpDLElBQU1DLGVBQWVMLGNBQWNNLElBQUksQ0FBQyxTQUFDRDtRQUN2QyxJQUFNRSxtQ0FBbUNGLGFBQWFHLGlCQUFpQixDQUFDVjtRQUV4RSxJQUFJUyxrQ0FBa0M7WUFDcEMsT0FBTztRQUNUO0lBQ0YsTUFBTTtJQUVOLElBQUlGLGlCQUFpQixNQUFNO1FBQ3pCLElBQU1JLCtCQUErQkosYUFBYUssYUFBYSxDQUFDWDtRQUVoRSxJQUFJVSw4QkFBOEI7WUFDaEMsSUFBTUUsZ0JBQWdCUjtZQUV0QkMsNkJBQTZCTyxlQUFnQixHQUFHO1FBQ2xEO0lBQ0YsT0FBTztRQUNMLElBQU1DLFlBQVlYLGNBQWNZLDBCQUEwQixDQUFDZjtRQUUzRCxJQUFJYyxjQUFjLE1BQU07WUFDdEIsSUFBTUUsUUFBUSxFQUFFLEVBQ1ZDLGNBQWNDLElBQUFBLGFBQVUsRUFBQ2pCLFdBQVdlLE9BQU9aLGVBQWU7Z0JBQ3hELElBQUlTLGdCQUFnQjtnQkFFcEIsSUFBTU0sWUFBWUMsSUFBQUEsWUFBSyxFQUFDSixRQUNsQkssUUFBUUYsV0FDUkcsWUFBWUMsaUJBQWlCRixPQUFPakI7Z0JBRTFDLElBQUlVLGNBQWNRLFdBQVc7b0JBQzNCVCxnQkFBZ0JSO2dCQUNsQixPQUFPO29CQUNMLElBQU1tQixPQUFPSCxPQUNQSSxXQUFXWCxXQUNYWSxXQUFXRixLQUFLRyxPQUFPLElBQ3ZCQyxlQUFlSCxTQUFTRSxPQUFPLElBQy9CRSwyQ0FBMkNELGFBQWFFLHNCQUFzQixDQUFDSjtvQkFFckYsSUFBSUcsMENBQTBDO3dCQUM1QyxJQUFNRSxXQUFXOUIsV0FDWCtCLGVBQWVoQyxlQUNmaUMsOEJBQThCQyx3QkFBMkIsQ0FBQ0MsMkJBQTJCLENBQUNILGNBQWNELFdBQ3BHeEIsZUFBZTBCLDZCQUE4QixHQUFHO3dCQUV0RC9CLGNBQWNrQyxJQUFJLENBQUM3Qjt3QkFFbkJNLGdCQUFnQlI7d0JBRWhCLElBQUksQ0FBQ1EsZUFBZTs0QkFDbEJYLGNBQWNtQyxHQUFHO3dCQUNuQjtvQkFDRjtnQkFDRjtnQkFFQSxPQUFPeEI7WUFDVDtZQUVOUCw2QkFBNkJXLGFBQWMsR0FBRztRQUNoRDtJQUNGO0lBRUEsT0FBT1g7QUFDVDtBQUVBLFNBQVNpQixpQkFBaUJDLElBQUksRUFBRWMsWUFBWTtJQUMxQyxJQUFJYixXQUFXO0lBRWYsSUFBTU0sV0FBV1AsS0FBS2UsT0FBTyxJQUN2QlAsZUFBZWxDLGtCQUFrQmlDO0lBRXZDLElBQUlDLGlCQUFpQixNQUFNO1FBQ3pCUCxXQUFXYSxhQUFhdkIsMEJBQTBCLENBQUNpQjtJQUNyRDtJQUVBLE9BQU9QO0FBQ1QifQ==