occam-verify-cli 0.0.842 → 0.0.844
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.
- package/lib/context/file.js +8 -1
- package/lib/context/local.js +22 -21
- package/lib/equivalence.js +24 -14
- package/lib/log.js +2 -2
- package/lib/substitution/statementForMetavariable.js +67 -10
- package/lib/substitution/termForVariable.js +56 -1
- package/lib/term.js +22 -17
- package/lib/utilities/array.js +11 -1
- package/lib/utilities/equivalences.js +83 -67
- package/lib/verifier/nodes/metaLevelToIntrinsicLevel.js +69 -18
- package/lib/verify/defining.js +41 -13
- package/package.json +1 -1
- package/src/context/file.js +6 -0
- package/src/context/local.js +29 -41
- package/src/equivalence.js +26 -14
- package/src/log.js +3 -1
- package/src/substitution/statementForMetavariable.js +70 -6
- package/src/substitution/termForVariable.js +77 -1
- package/src/term.js +29 -23
- package/src/utilities/array.js +6 -0
- package/src/utilities/equivalences.js +114 -67
- package/src/verifier/nodes/metaLevelToIntrinsicLevel.js +44 -26
- package/src/verify/defining.js +49 -14
|
@@ -2,13 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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() {
|
|
8
13
|
return StatementForMetavariableSubstitution;
|
|
14
|
+
},
|
|
15
|
+
matchStatementNode: function() {
|
|
16
|
+
return matchStatementNode;
|
|
9
17
|
}
|
|
10
18
|
});
|
|
11
19
|
var _substitution = /*#__PURE__*/ _interop_require_default(require("../substitution"));
|
|
20
|
+
var _termForVariable = /*#__PURE__*/ _interop_require_default(require("./termForVariable"));
|
|
21
|
+
var _intrinsicLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/nodes/intrinsicLevel"));
|
|
12
22
|
var _proof = require("../utilities/proof");
|
|
13
23
|
function _assert_this_initialized(self) {
|
|
14
24
|
if (self === void 0) {
|
|
@@ -103,12 +113,13 @@ function _create_super(Derived) {
|
|
|
103
113
|
var StatementForMetavariableSubstitution = /*#__PURE__*/ function(Substitution) {
|
|
104
114
|
_inherits(StatementForMetavariableSubstitution, Substitution);
|
|
105
115
|
var _super = _create_super(StatementForMetavariableSubstitution);
|
|
106
|
-
function StatementForMetavariableSubstitution(metavariableNode, statementNode) {
|
|
116
|
+
function StatementForMetavariableSubstitution(metavariableNode, statementNode, substitution) {
|
|
107
117
|
_class_call_check(this, StatementForMetavariableSubstitution);
|
|
108
118
|
var _this;
|
|
109
119
|
_this = _super.call(this);
|
|
110
120
|
_this.metavariableNode = metavariableNode;
|
|
111
121
|
_this.statementNode = statementNode;
|
|
122
|
+
_this.substitution = substitution;
|
|
112
123
|
return _this;
|
|
113
124
|
}
|
|
114
125
|
_create_class(StatementForMetavariableSubstitution, [
|
|
@@ -124,21 +135,40 @@ var StatementForMetavariableSubstitution = /*#__PURE__*/ function(Substitution)
|
|
|
124
135
|
return this.statementNode;
|
|
125
136
|
}
|
|
126
137
|
},
|
|
138
|
+
{
|
|
139
|
+
key: "getSubstitution",
|
|
140
|
+
value: function getSubstitution() {
|
|
141
|
+
return this.substitution;
|
|
142
|
+
}
|
|
143
|
+
},
|
|
127
144
|
{
|
|
128
145
|
key: "matchStatementNode",
|
|
129
|
-
value: function matchStatementNode(statementNode) {
|
|
146
|
+
value: function matchStatementNode(statementNode, substitutions, localContextA, localContextB) {
|
|
130
147
|
var statementNodeMatches;
|
|
131
|
-
statementNodeMatches = this.
|
|
148
|
+
statementNodeMatches = this.matchStatementNodeEx(statementNode, substitutions, localContextA, localContextB);
|
|
132
149
|
if (!statementNodeMatches) {
|
|
133
150
|
var bracketedStatementChildNode = (0, _proof.bracketedStatementChildNodeFromStatementNode)(statementNode);
|
|
134
151
|
if (bracketedStatementChildNode !== null) {
|
|
135
152
|
var _$statementNode = bracketedStatementChildNode; ///
|
|
136
|
-
statementNodeMatches = this.
|
|
153
|
+
statementNodeMatches = this.matchStatementNodeEx(_$statementNode, substitutions, localContextA, localContextB);
|
|
137
154
|
}
|
|
138
155
|
}
|
|
139
156
|
return statementNodeMatches;
|
|
140
157
|
}
|
|
141
158
|
},
|
|
159
|
+
{
|
|
160
|
+
key: "matchStatementNodeEx",
|
|
161
|
+
value: function matchStatementNodeEx(statementNode, substitutions, localContextA, localContextB) {
|
|
162
|
+
var statementNodeMatches;
|
|
163
|
+
if (this.substitution === null) {
|
|
164
|
+
statementNodeMatches = this.statementNode.match(statementNode);
|
|
165
|
+
} else {
|
|
166
|
+
var substitution = this.substitution, statementNodeA = statementNode, statementNodeB = this.statementNode; ///
|
|
167
|
+
statementNodeMatches = matchStatementNode(statementNodeA, statementNodeB, substitution, substitutions, localContextA, localContextB);
|
|
168
|
+
}
|
|
169
|
+
return statementNodeMatches;
|
|
170
|
+
}
|
|
171
|
+
},
|
|
142
172
|
{
|
|
143
173
|
key: "matchMetavariableNode",
|
|
144
174
|
value: function matchMetavariableNode(metavariableNode) {
|
|
@@ -150,11 +180,24 @@ var StatementForMetavariableSubstitution = /*#__PURE__*/ function(Substitution)
|
|
|
150
180
|
{
|
|
151
181
|
key: "fromMetavariableNodeAndStatementNode",
|
|
152
182
|
value: function fromMetavariableNodeAndStatementNode(metavariableNode, statementNode) {
|
|
153
|
-
var
|
|
183
|
+
var substitution = null;
|
|
184
|
+
var statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(metavariableNode, statementNode, substitution);
|
|
154
185
|
var bracketedStatementChildNode = (0, _proof.bracketedStatementChildNodeFromStatementNode)(statementNode);
|
|
155
186
|
if (bracketedStatementChildNode !== null) {
|
|
156
187
|
var _$statementNode = bracketedStatementChildNode; ///
|
|
157
|
-
statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(metavariableNode, _$statementNode);
|
|
188
|
+
statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(metavariableNode, _$statementNode, substitution);
|
|
189
|
+
}
|
|
190
|
+
return statementForMetavariableSubstitution;
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
key: "fromMetavariableNodeStatementNodeAndSubstitution",
|
|
195
|
+
value: function fromMetavariableNodeStatementNodeAndSubstitution(metavariableNode, statementNode, substitution) {
|
|
196
|
+
var statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(metavariableNode, statementNode, substitution);
|
|
197
|
+
var bracketedStatementChildNode = (0, _proof.bracketedStatementChildNodeFromStatementNode)(statementNode);
|
|
198
|
+
if (bracketedStatementChildNode !== null) {
|
|
199
|
+
var _$statementNode = bracketedStatementChildNode; ///
|
|
200
|
+
statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(metavariableNode, _$statementNode, substitution);
|
|
158
201
|
}
|
|
159
202
|
return statementForMetavariableSubstitution;
|
|
160
203
|
}
|
|
@@ -162,5 +205,19 @@ var StatementForMetavariableSubstitution = /*#__PURE__*/ function(Substitution)
|
|
|
162
205
|
]);
|
|
163
206
|
return StatementForMetavariableSubstitution;
|
|
164
207
|
}(_substitution.default);
|
|
208
|
+
function matchStatementNode(statementNodeA, statementNodeB, substitution, substitutions, localContextA, localContextB) {
|
|
209
|
+
var statementNodeMatches;
|
|
210
|
+
var termForVariableSubstitution = _termForVariable.default.fromSubstitutionAndSubstitutions(substitution, substitutions);
|
|
211
|
+
substitution = termForVariableSubstitution; ///
|
|
212
|
+
substitutions = [
|
|
213
|
+
substitution
|
|
214
|
+
];
|
|
215
|
+
var nonTerminalNodeA = statementNodeA, nonTerminalNodeB = statementNodeB, nonTerminalNodeVerified = _intrinsicLevel.default.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, function() {
|
|
216
|
+
var verifiedAhead = true;
|
|
217
|
+
return verifiedAhead;
|
|
218
|
+
});
|
|
219
|
+
statementNodeMatches = nonTerminalNodeVerified; ///
|
|
220
|
+
return statementNodeMatches;
|
|
221
|
+
}
|
|
165
222
|
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdWJzdGl0dXRpb24vc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb25cIjtcblxuaW1wb3J0IHsgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Byb29mXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiBleHRlbmRzIFN1YnN0aXR1dGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1ldGF2YXJpYWJsZU5vZGUsIHN0YXRlbWVudE5vZGUpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5tZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZTtcbiAgICB0aGlzLnN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGVOb2RlO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgbWF0Y2hTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgICBsZXQgc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG5cbiAgICBzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHRoaXMuc3RhdGVtZW50Tm9kZS5tYXRjaChzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmICghc3RhdGVtZW50Tm9kZU1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgICBpZiAoYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGU7IC8vL1xuXG4gICAgICAgIHN0YXRlbWVudE5vZGVNYXRjaGVzID0gdGhpcy5zdGF0ZW1lbnROb2RlLm1hdGNoKHN0YXRlbWVudE5vZGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSB0aGlzLm1ldGF2YXJpYWJsZU5vZGUubWF0Y2gobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGF2YXJpYWJsZU5vZGVBbmRTdGF0ZW1lbnROb2RlKG1ldGF2YXJpYWJsZU5vZGUsIHN0YXRlbWVudE5vZGUpIHtcbiAgICBsZXQgc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uID0gbmV3IFN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbihtZXRhdmFyaWFibGVOb2RlLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZTsgLy8vXG5cbiAgICAgIHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiA9IG5ldyBTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24obWV0YXZhcmlhYmxlTm9kZSwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0TWV0YXZhcmlhYmxlTm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJtYXRjaFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcyIsImZyb21NZXRhdmFyaWFibGVOb2RlQW5kU3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiIsIlN1YnN0aXR1dGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7bUVBSkk7cUJBRW9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTlDLElBQUEsQUFBTUEscURBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUEscUNBQ1BDLGdCQUFnQixFQUFFQyxhQUFhO2dDQUR4QkY7OztRQUlqQixNQUFLQyxnQkFBZ0IsR0FBR0E7UUFDeEIsTUFBS0MsYUFBYSxHQUFHQTs7O2tCQUxKRjs7WUFRbkJHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsZ0JBQWdCO1lBQzlCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixhQUFhO1lBQzNCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQkgsYUFBYTtnQkFDOUIsSUFBSUk7Z0JBRUpBLHVCQUF1QixJQUFJLENBQUNKLGFBQWEsQ0FBQ0ssS0FBSyxDQUFDTDtnQkFFaEQsSUFBSSxDQUFDSSxzQkFBc0I7b0JBQ3pCLElBQU1FLDhCQUE4QkMsSUFBQUEsbURBQTRDLEVBQUNQO29CQUVqRixJQUFJTSxnQ0FBZ0MsTUFBTTt3QkFDeEMsSUFBTU4sa0JBQWdCTSw2QkFBNkIsR0FBRzt3QkFFdERGLHVCQUF1QixJQUFJLENBQUNKLGFBQWEsQ0FBQ0ssS0FBSyxDQUFDTDtvQkFDbEQ7Z0JBQ0Y7Z0JBRUEsT0FBT0k7WUFDVDs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JULGdCQUFnQjtnQkFDcEMsSUFBTVUsMEJBQTBCLElBQUksQ0FBQ1YsZ0JBQWdCLENBQUNNLEtBQUssQ0FBQ047Z0JBRTVELE9BQU9VO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EscUNBQXFDWCxnQkFBZ0IsRUFBRUMsYUFBYTtnQkFDekUsSUFBSVcsdUNBQXVDLElBekMxQmIscUNBeUNtRUMsa0JBQWtCQztnQkFFdEcsSUFBTU0sOEJBQThCQyxJQUFBQSxtREFBNEMsRUFBQ1A7Z0JBRWpGLElBQUlNLGdDQUFnQyxNQUFNO29CQUN4QyxJQUFNTixrQkFBZ0JNLDZCQUE2QixHQUFHO29CQUV0REssdUNBQXVDLElBaER4QmIscUNBZ0RpRUMsa0JBQWtCQztnQkFDcEc7Z0JBRUEsT0FBT1c7WUFDVDs7O1dBcERtQmI7RUFBNkNjLHFCQUFZIn0=
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdWJzdGl0dXRpb24vc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb25cIjtcblxuaW1wb3J0IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiBmcm9tIFwiLi90ZXJtRm9yVmFyaWFibGVcIjtcbmltcG9ydCBpbnRyaW5zaWNMZXZlbE5vZGVzVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyL25vZGVzL2ludHJpbnNpY0xldmVsXCI7XG5cbmltcG9ydCB7IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wcm9vZlwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24gZXh0ZW5kcyBTdWJzdGl0dXRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXRhdmFyaWFibGVOb2RlLCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb24pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5tZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZTtcbiAgICB0aGlzLnN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlO1xuICAgIHRoaXMuc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGVOb2RlO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0U3Vic3RpdHV0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIG1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gICAgbGV0IHN0YXRlbWVudE5vZGVNYXRjaGVzO1xuXG4gICAgc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoU3RhdGVtZW50Tm9kZUV4KHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgaWYgKCFzdGF0ZW1lbnROb2RlTWF0Y2hlcykge1xuICAgICAgY29uc3QgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIGlmIChicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZTsgLy8vXG5cbiAgICAgICAgc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoU3RhdGVtZW50Tm9kZUV4KHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoU3RhdGVtZW50Tm9kZUV4KHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgICBsZXQgc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG5cbiAgICBpZiAodGhpcy5zdWJzdGl0dXRpb24gPT09IG51bGwpIHtcbiAgICAgIHN0YXRlbWVudE5vZGVNYXRjaGVzID0gdGhpcy5zdGF0ZW1lbnROb2RlLm1hdGNoKHN0YXRlbWVudE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb24gPSB0aGlzLnN1YnN0aXR1dGlvbixcbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGVBID0gc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICBzdGF0ZW1lbnROb2RlQiA9IHRoaXMuc3RhdGVtZW50Tm9kZTsgIC8vL1xuXG4gICAgICBzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcyA9IHRoaXMubWV0YXZhcmlhYmxlTm9kZS5tYXRjaChtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXZhcmlhYmxlTm9kZUFuZFN0YXRlbWVudE5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IG51bGw7XG5cbiAgICBsZXQgc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uID0gbmV3IFN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbihtZXRhdmFyaWFibGVOb2RlLCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb24pO1xuXG4gICAgY29uc3QgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBpZiAoYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlOyAvLy9cblxuICAgICAgc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uID0gbmV3IFN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbihtZXRhdmFyaWFibGVOb2RlLCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGF2YXJpYWJsZU5vZGVTdGF0ZW1lbnROb2RlQW5kU3Vic3RpdHV0aW9uKG1ldGF2YXJpYWJsZU5vZGUsIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbikge1xuICAgIGxldCBzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24gPSBuZXcgU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uKG1ldGF2YXJpYWJsZU5vZGUsIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbik7XG5cbiAgICBjb25zdCBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGU7IC8vL1xuXG4gICAgICBzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24gPSBuZXcgU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uKG1ldGF2YXJpYWJsZU5vZGUsIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIGxldCBzdGF0ZW1lbnROb2RlTWF0Y2hlcztcblxuICBjb25zdCB0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24gPSBUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24uZnJvbVN1YnN0aXR1dGlvbkFuZFN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zKTtcblxuICBzdWJzdGl0dXRpb24gPSB0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb247IC8vL1xuXG4gIHN1YnN0aXR1dGlvbnMgPSBbIC8vL1xuICAgIHN1YnN0aXR1dGlvblxuICBdO1xuXG4gIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBzdGF0ZW1lbnROb2RlQSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBzdGF0ZW1lbnROb2RlQiwgIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IGludHJpbnNpY0xldmVsTm9kZXNWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgIH0pO1xuXG4gIHN0YXRlbWVudE5vZGVNYXRjaGVzID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7IC8vL1xuXG4gIHJldHVybiBzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbn1cbiJdLCJuYW1lcyI6WyJTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24iLCJtYXRjaFN0YXRlbWVudE5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwic3RhdGVtZW50Tm9kZSIsInN1YnN0aXR1dGlvbiIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwiZ2V0U3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dEEiLCJsb2NhbENvbnRleHRCIiwic3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJtYXRjaFN0YXRlbWVudE5vZGVFeCIsImJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSIsImJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlIiwibWF0Y2giLCJzdGF0ZW1lbnROb2RlQSIsInN0YXRlbWVudE5vZGVCIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMiLCJmcm9tTWV0YXZhcmlhYmxlTm9kZUFuZFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24iLCJmcm9tTWV0YXZhcmlhYmxlTm9kZVN0YXRlbWVudE5vZGVBbmRTdWJzdGl0dXRpb24iLCJTdWJzdGl0dXRpb24iLCJ0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24iLCJUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24iLCJmcm9tU3Vic3RpdHV0aW9uQW5kU3Vic3RpdHV0aW9ucyIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJpbnRyaW5zaWNMZXZlbE5vZGVzVmVyaWZpZXIiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJ2ZXJpZmllZEFoZWFkIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O2VBU3FCQTs7SUE0RkxDLGtCQUFrQjtlQUFsQkE7OzttRUFuR1M7c0VBRWU7cUVB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
|
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _substitution = /*#__PURE__*/ _interop_require_default(require("../substitution"));
|
|
12
|
+
var _query = require("../utilities/query");
|
|
12
13
|
function _assert_this_initialized(self) {
|
|
13
14
|
if (self === void 0) {
|
|
14
15
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -99,6 +100,7 @@ function _create_super(Derived) {
|
|
|
99
100
|
return _possible_constructor_return(this, result);
|
|
100
101
|
};
|
|
101
102
|
}
|
|
103
|
+
var termNodeQuery = (0, _query.nodeQuery)("/*/term!"), variableNodeQuery = (0, _query.nodeQuery)("/*/variable!");
|
|
102
104
|
var TermForVariableSubstitution = /*#__PURE__*/ function(Substitution) {
|
|
103
105
|
_inherits(TermForVariableSubstitution, Substitution);
|
|
104
106
|
var _super = _create_super(TermForVariableSubstitution);
|
|
@@ -138,15 +140,68 @@ var TermForVariableSubstitution = /*#__PURE__*/ function(Substitution) {
|
|
|
138
140
|
}
|
|
139
141
|
}
|
|
140
142
|
], [
|
|
143
|
+
{
|
|
144
|
+
key: "fromSubstitutionNode",
|
|
145
|
+
value: function fromSubstitutionNode(substitutionNode) {
|
|
146
|
+
var termNode = termNodeQuery(substitutionNode), variableNode = variableNodeQuery(substitutionNode), termForVariableSubstitution = new TermForVariableSubstitution(variableNode, termNode);
|
|
147
|
+
return termForVariableSubstitution;
|
|
148
|
+
}
|
|
149
|
+
},
|
|
141
150
|
{
|
|
142
151
|
key: "fromVariableNodeAndTermNode",
|
|
143
152
|
value: function fromVariableNodeAndTermNode(variableNode, termNode) {
|
|
144
153
|
var termForVariableSubstitution = new TermForVariableSubstitution(variableNode, termNode);
|
|
145
154
|
return termForVariableSubstitution;
|
|
146
155
|
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
key: "fromSubstitutionAndSubstitutions",
|
|
159
|
+
value: function fromSubstitutionAndSubstitutions(substitution, substitutions) {
|
|
160
|
+
var termNode = substitution.getTermNode(), variableNode = substitution.getVariableNode();
|
|
161
|
+
termNode = substituteTermNode(termNode, substitutions); ///
|
|
162
|
+
variableNode = substituteVariableNode(variableNode, substitutions); ///
|
|
163
|
+
var termForVariableSubstitution = new TermForVariableSubstitution(variableNode, termNode);
|
|
164
|
+
return termForVariableSubstitution;
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
key: "fromSubstitutionNodeAndSubstitutions",
|
|
169
|
+
value: function fromSubstitutionNodeAndSubstitutions(substitutionNode, substitutions) {
|
|
170
|
+
var termNode = termNodeQuery(substitutionNode), variableNode = variableNodeQuery(substitutionNode);
|
|
171
|
+
termNode = substituteTermNode(termNode, substitutions); ///
|
|
172
|
+
variableNode = substituteVariableNode(variableNode, substitutions); ///
|
|
173
|
+
var termForVariableSubstitution = new TermForVariableSubstitution(variableNode, termNode);
|
|
174
|
+
return termForVariableSubstitution;
|
|
175
|
+
}
|
|
147
176
|
}
|
|
148
177
|
]);
|
|
149
178
|
return TermForVariableSubstitution;
|
|
150
179
|
}(_substitution.default);
|
|
180
|
+
function substituteTermNode(termNode, substitutions) {
|
|
181
|
+
var termVariableNode = variableNodeQuery(termNode);
|
|
182
|
+
if (termVariableNode !== null) {
|
|
183
|
+
substitutions.some(function(substitution) {
|
|
184
|
+
var variableNodeMatches = substitution.matchVariableNode(termVariableNode);
|
|
185
|
+
if (variableNodeMatches) {
|
|
186
|
+
termNode = substitution.getTermNode(); ///
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return termNode;
|
|
192
|
+
}
|
|
193
|
+
function substituteVariableNode(variableNode, substitutions) {
|
|
194
|
+
substitutions.some(function(substitution) {
|
|
195
|
+
var variableNodeMatches = substitution.matchVariableNode(variableNode);
|
|
196
|
+
if (variableNodeMatches) {
|
|
197
|
+
var termNode = substitution.getTermNode(), termVariableNode = variableNodeQuery(termNode);
|
|
198
|
+
if (termVariableNode !== null) {
|
|
199
|
+
variableNode = termVariableNode; ///
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
return variableNode;
|
|
205
|
+
}
|
|
151
206
|
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdWJzdGl0dXRpb24vdGVybUZvclZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb25cIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLyovdGVybSFcIiksXG4gICAgICB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi8qL3ZhcmlhYmxlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIGV4dGVuZHMgU3Vic3RpdHV0aW9uIHtcbiAgY29uc3RydWN0b3IodmFyaWFibGVOb2RlLCB0ZXJtTm9kZSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZTtcbiAgICB0aGlzLnRlcm1Ob2RlID0gdGVybU5vZGU7XG4gIH1cblxuICBnZXRWYXJpYWJsZU5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGVOb2RlO1xuICB9XG5cbiAgZ2V0VGVybU5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybU5vZGU7XG4gIH1cblxuICBtYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gdGhpcy50ZXJtTm9kZS5tYXRjaCh0ZXJtTm9kZSk7XG5cbiAgICByZXR1cm4gdGVybU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgdmFyaWFibGVOb2RlTWF0Y2hlcyA9IHRoaXMudmFyaWFibGVOb2RlLm1hdGNoKHZhcmlhYmxlTm9kZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3Vic3RpdHV0aW9uTm9kZShzdWJzdGl0dXRpb25Ob2RlKSB7XG4gICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICAgIHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiA9IG5ldyBUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24odmFyaWFibGVOb2RlLCB0ZXJtTm9kZSk7XG5cbiAgICByZXR1cm4gdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZU5vZGVBbmRUZXJtTm9kZSh2YXJpYWJsZU5vZGUsIHRlcm1Ob2RlKSB7XG4gICAgY29uc3QgdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uID0gbmV3IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbih2YXJpYWJsZU5vZGUsIHRlcm1Ob2RlKTtcblxuICAgIHJldHVybiB0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVN1YnN0aXR1dGlvbkFuZFN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zKSB7XG4gICAgbGV0IHRlcm1Ob2RlID0gc3Vic3RpdHV0aW9uLmdldFRlcm1Ob2RlKCksXG4gICAgICAgIHZhcmlhYmxlTm9kZSA9IHN1YnN0aXR1dGlvbi5nZXRWYXJpYWJsZU5vZGUoKTtcblxuICAgIHRlcm1Ob2RlID0gc3Vic3RpdHV0ZVRlcm1Ob2RlKHRlcm1Ob2RlLCBzdWJzdGl0dXRpb25zKTsgLy8vXG5cbiAgICB2YXJpYWJsZU5vZGUgPSBzdWJzdGl0dXRlVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9ucyk7IC8vL1xuXG4gICAgY29uc3QgdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uID0gbmV3IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbih2YXJpYWJsZU5vZGUsIHRlcm1Ob2RlKTtcblxuICAgIHJldHVybiB0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVN1YnN0aXR1dGlvbk5vZGVBbmRTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbk5vZGUsIHN1YnN0aXR1dGlvbnMpIHtcbiAgICBsZXQgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeShzdWJzdGl0dXRpb25Ob2RlKTtcblxuICAgIHRlcm1Ob2RlID0gc3Vic3RpdHV0ZVRlcm1Ob2RlKHRlcm1Ob2RlLCBzdWJzdGl0dXRpb25zKTsgLy8vXG5cbiAgICB2YXJpYWJsZU5vZGUgPSBzdWJzdGl0dXRlVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9ucyk7IC8vL1xuXG4gICAgY29uc3QgdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uID0gbmV3IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbih2YXJpYWJsZU5vZGUsIHRlcm1Ob2RlKTtcblxuICAgIHJldHVybiB0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gc3Vic3RpdHV0ZVRlcm1Ob2RlKHRlcm1Ob2RlLCBzdWJzdGl0dXRpb25zKSB7XG4gIGNvbnN0IHRlcm1WYXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZSk7XG5cbiAgaWYgKHRlcm1WYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBzdWJzdGl0dXRpb25zLnNvbWUoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3QgdmFyaWFibGVOb2RlTWF0Y2hlcyA9IHN1YnN0aXR1dGlvbi5tYXRjaFZhcmlhYmxlTm9kZSh0ZXJtVmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgdGVybU5vZGUgPSBzdWJzdGl0dXRpb24uZ2V0VGVybU5vZGUoKTsgIC8vL1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1Ob2RlO1xufVxuXG5mdW5jdGlvbiBzdWJzdGl0dXRlVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9ucykge1xuICBzdWJzdGl0dXRpb25zLnNvbWUoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgIGNvbnN0IHZhcmlhYmxlTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb24ubWF0Y2hWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgIGlmICh2YXJpYWJsZU5vZGVNYXRjaGVzKSB7XG4gICAgICBjb25zdCB0ZXJtTm9kZSA9IHN1YnN0aXR1dGlvbi5nZXRUZXJtTm9kZSgpLFxuICAgICAgICAgICAgdGVybVZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICAgICAgaWYgKHRlcm1WYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgdmFyaWFibGVOb2RlID0gdGVybVZhcmlhYmxlTm9kZTsgIC8vL1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHZhcmlhYmxlTm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24iLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGUiLCJ0ZXJtTm9kZSIsImdldFZhcmlhYmxlTm9kZSIsImdldFRlcm1Ob2RlIiwibWF0Y2hUZXJtTm9kZSIsInRlcm1Ob2RlTWF0Y2hlcyIsIm1hdGNoIiwibWF0Y2hWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5vZGVNYXRjaGVzIiwiZnJvbVN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb25Ob2RlIiwidGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFRlcm1Ob2RlIiwiZnJvbVN1YnN0aXR1dGlvbkFuZFN1YnN0aXR1dGlvbnMiLCJzdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0ZVRlcm1Ob2RlIiwic3Vic3RpdHV0ZVZhcmlhYmxlTm9kZSIsImZyb21TdWJzdGl0dXRpb25Ob2RlQW5kU3Vic3RpdHV0aW9ucyIsIlN1YnN0aXR1dGlvbiIsInRlcm1WYXJpYWJsZU5vZGUiLCJzb21lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVNxQkE7OzttRUFQSTtxQkFFQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixJQUFNQyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsYUFDMUJDLG9CQUFvQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQixJQUFBLEFBQU1GLDRDQUFELEFBQUw7Y0FBTUE7K0JBQUFBO2FBQUFBLDRCQUNQSSxZQUFZLEVBQUVDLFFBQVE7Z0NBRGZMOzs7UUFJakIsTUFBS0ksWUFBWSxHQUFHQTtRQUNwQixNQUFLQyxRQUFRLEdBQUdBOzs7a0JBTENMOztZQVFuQk0sS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixZQUFZO1lBQzFCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixRQUFRO1lBQ3RCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNILFFBQVE7Z0JBQ3BCLElBQU1JLGtCQUFrQixJQUFJLENBQUNKLFFBQVEsQ0FBQ0ssS0FBSyxDQUFDTDtnQkFFNUMsT0FBT0k7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxrQkFBa0JQLFlBQVk7Z0JBQzVCLElBQU1RLHNCQUFzQixJQUFJLENBQUNSLFlBQVksQ0FBQ00sS0FBSyxDQUFDTjtnQkFFcEQsT0FBT1E7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxxQkFBcUJDLGdCQUFnQjtnQkFDMUMsSUFBTVQsV0FBV0osY0FBY2EsbUJBQ3pCVixlQUFlRCxrQkFBa0JXLG1CQUNqQ0MsOEJBQThCLElBL0JuQmYsNEJBK0JtREksY0FBY0M7Z0JBRWxGLE9BQU9VO1lBQ1Q7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSw0QkFBNEJaLFlBQVksRUFBRUMsUUFBUTtnQkFDdkQsSUFBTVUsOEJBQThCLElBckNuQmYsNEJBcUNtREksY0FBY0M7Z0JBRWxGLE9BQU9VO1lBQ1Q7OztZQUVPRSxLQUFBQTttQkFBUCxTQUFPQSxpQ0FBaUNDLFlBQVksRUFBRUMsYUFBYTtnQkFDakUsSUFBSWQsV0FBV2EsYUFBYVgsV0FBVyxJQUNuQ0gsZUFBZWMsYUFBYVosZUFBZTtnQkFFL0NELFdBQVdlLG1CQUFtQmYsVUFBVWMsZ0JBQWdCLEdBQUc7Z0JBRTNEZixlQUFlaUIsdUJBQXVCakIsY0FBY2UsZ0JBQWdCLEdBQUc7Z0JBRXZFLElBQU1KLDhCQUE4QixJQWxEbkJmLDRCQWtEbURJLGNBQWNDO2dCQUVsRixPQUFPVTtZQUNUOzs7WUFFT08sS0FBQUE7bUJBQVAsU0FBT0EscUNBQXFDUixnQkFBZ0IsRUFBRUssYUFBYTtnQkFDekUsSUFBSWQsV0FBV0osY0FBY2EsbUJBQ3pCVixlQUFlRCxrQkFBa0JXO2dCQUVyQ1QsV0FBV2UsbUJBQW1CZixVQUFVYyxnQkFBZ0IsR0FBRztnQkFFM0RmLGVBQWVpQix1QkFBdUJqQixjQUFjZSxnQkFBZ0IsR0FBRztnQkFFdkUsSUFBTUosOEJBQThCLElBL0RuQmYsNEJBK0RtREksY0FBY0M7Z0JBRWxGLE9BQU9VO1lBQ1Q7OztXQWxFbUJmO0VBQW9DdUIscUJBQVk7QUFxRXJFLFNBQVNILG1CQUFtQmYsUUFBUSxFQUFFYyxhQUFhO0lBQ2pELElBQU1LLG1CQUFtQnJCLGtCQUFrQkU7SUFFM0MsSUFBSW1CLHFCQUFxQixNQUFNO1FBQzdCTCxjQUFjTSxJQUFJLENBQUMsU0FBQ1A7WUFDbEIsSUFBTU4sc0JBQXNCTSxhQUFhUCxpQkFBaUIsQ0FBQ2E7WUFFM0QsSUFBSVoscUJBQXFCO2dCQUN2QlAsV0FBV2EsYUFBYVgsV0FBVyxJQUFLLEdBQUc7Z0JBRTNDLE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPRjtBQUNUO0FBRUEsU0FBU2dCLHVCQUF1QmpCLFlBQVksRUFBRWUsYUFBYTtJQUN6REEsY0FBY00sSUFBSSxDQUFDLFNBQUNQO1FBQ2xCLElBQU1OLHNCQUFzQk0sYUFBYVAsaUJBQWlCLENBQUNQO1FBRTNELElBQUlRLHFCQUFxQjtZQUN2QixJQUFNUCxXQUFXYSxhQUFhWCxXQUFXLElBQ25DaUIsbUJBQW1CckIsa0JBQWtCRTtZQUUzQyxJQUFJbUIscUJBQXFCLE1BQU07Z0JBQzdCcEIsZUFBZW9CLGtCQUFtQixHQUFHO2dCQUVyQyxPQUFPO1lBQ1Q7UUFDRjtJQUNGO0lBRUEsT0FBT3BCO0FBQ1QifQ==
|
package/lib/term.js
CHANGED
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return Term;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _array = require("./utilities/array");
|
|
11
12
|
var _query = require("./utilities/query");
|
|
12
13
|
function _class_call_check(instance, Constructor) {
|
|
13
14
|
if (!(instance instanceof Constructor)) {
|
|
@@ -57,8 +58,8 @@ var Term = /*#__PURE__*/ function() {
|
|
|
57
58
|
},
|
|
58
59
|
{
|
|
59
60
|
key: "getVariables",
|
|
60
|
-
value: function getVariables(
|
|
61
|
-
var variableNodes = variableNodesQuery(this.node);
|
|
61
|
+
value: function getVariables(context) {
|
|
62
|
+
var variables = [], variableNodes = variableNodesQuery(this.node);
|
|
62
63
|
variableNodes.forEach(function(variableNode) {
|
|
63
64
|
var variable = context.findVariableByVariableNode(variableNode), variablesIncludesVariable = variables.includes(variable);
|
|
64
65
|
if (!variablesIncludesVariable) {
|
|
@@ -68,27 +69,31 @@ var Term = /*#__PURE__*/ function() {
|
|
|
68
69
|
return variables;
|
|
69
70
|
}
|
|
70
71
|
},
|
|
72
|
+
{
|
|
73
|
+
key: "isGrounded",
|
|
74
|
+
value: function isGrounded(definedVariables, context) {
|
|
75
|
+
var variables = this.getVariables(context);
|
|
76
|
+
(0, _array.filter)(variables, function(variable) {
|
|
77
|
+
var definedVariablesIncludesVariable = definedVariables.includes(variable);
|
|
78
|
+
if (!definedVariablesIncludesVariable) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
var undefinedVariables = variables, undefinedVariablesLength = undefinedVariables.length, grounded = undefinedVariablesLength <= 1;
|
|
83
|
+
return grounded;
|
|
84
|
+
}
|
|
85
|
+
},
|
|
71
86
|
{
|
|
72
87
|
key: "isInitiallyGrounded",
|
|
73
|
-
value: function isInitiallyGrounded() {
|
|
74
|
-
var
|
|
88
|
+
value: function isInitiallyGrounded(context) {
|
|
89
|
+
var variables = this.getVariables(context), variablesLength = variables.length, initiallyGrounded = variablesLength === 0;
|
|
75
90
|
return initiallyGrounded;
|
|
76
91
|
}
|
|
77
92
|
},
|
|
78
93
|
{
|
|
79
94
|
key: "isImplicitlyGrounded",
|
|
80
|
-
value: function isImplicitlyGrounded(definedVariables) {
|
|
81
|
-
var
|
|
82
|
-
var variableMatchesNode = variables.some(function(variable) {
|
|
83
|
-
var variableMatchesNode = variable.matchNode(node);
|
|
84
|
-
if (variableMatchesNode) {
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
if (variableMatchesNode) {
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
});
|
|
95
|
+
value: function isImplicitlyGrounded(definedVariables, context) {
|
|
96
|
+
var grounded = this.isGrounded(definedVariables, context), implicitlyGrounded = grounded; ///
|
|
92
97
|
return implicitlyGrounded;
|
|
93
98
|
}
|
|
94
99
|
}
|
|
@@ -104,4 +109,4 @@ var Term = /*#__PURE__*/ function() {
|
|
|
104
109
|
return Term;
|
|
105
110
|
}();
|
|
106
111
|
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIlxuXG5jb25zdCB2YXJpYWJsZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiLy92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVybSB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBtYXRjaCh0ZXJtKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICAgIG1hdGNoZXMgPSB0aGlzLm5vZGUubWF0Y2gobm9kZSk7XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gW10sXG4gICAgICAgICAgdmFyaWFibGVOb2RlcyA9IHZhcmlhYmxlTm9kZXNRdWVyeSh0aGlzLm5vZGUpO1xuXG4gICAgdmFyaWFibGVOb2Rlcy5mb3JFYWNoKCh2YXJpYWJsZU5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgdmFyaWFibGVzSW5jbHVkZXNWYXJpYWJsZSA9IHZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghdmFyaWFibGVzSW5jbHVkZXNWYXJpYWJsZSkge1xuICAgICAgICB2YXJpYWJsZXMucHVzaCh2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgaXNHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gdGhpcy5nZXRWYXJpYWJsZXMoY29udGV4dCk7XG5cbiAgICBmaWx0ZXIodmFyaWFibGVzLCAodmFyaWFibGUpID0+IHtcbiAgICAgIGNvbnN0IGRlZmluZWRWYXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlID0gZGVmaW5lZFZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCB1bmRlZmluZWRWYXJpYWJsZXMgPSB2YXJpYWJsZXMsIC8vL1xuICAgICAgICAgIHVuZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IHVuZGVmaW5lZFZhcmlhYmxlcy5sZW5ndGgsXG4gICAgICAgICAgZ3JvdW5kZWQgPSAodW5kZWZpbmVkVmFyaWFibGVzTGVuZ3RoIDw9IDEpO1xuXG4gICAgcmV0dXJuIGdyb3VuZGVkO1xuICB9XG5cbiAgaXNJbml0aWFsbHlHcm91bmRlZChjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gdGhpcy5nZXRWYXJpYWJsZXMoY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVzTGVuZ3RoID0gdmFyaWFibGVzLmxlbmd0aCxcbiAgICAgICAgICBpbml0aWFsbHlHcm91bmRlZCA9ICh2YXJpYWJsZXNMZW5ndGggPT09IDApO1xuXG4gICAgcmV0dXJuIGluaXRpYWxseUdyb3VuZGVkO1xuICB9XG5cbiAgaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICAgIGNvbnN0IGdyb3VuZGVkID0gdGhpcy5pc0dyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIGltcGxpY2l0bHlHcm91bmRlZCA9IGdyb3VuZGVkOyAgLy8vXG5cbiAgICByZXR1cm4gaW1wbGljaXRseUdyb3VuZGVkO1xuICB9XG5cbiAgc3RhdGljIGZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUpIHtcbiAgICBjb25zdCBub2RlID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgICB0ZXJtID0gbmV3IFRlcm0obm9kZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlRlcm0iLCJ2YXJpYWJsZU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5Iiwibm9kZSIsInR5cGUiLCJnZXROb2RlIiwiZ2V0VHlwZSIsIm1hdGNoIiwidGVybSIsIm1hdGNoZXMiLCJnZXRWYXJpYWJsZXMiLCJjb250ZXh0IiwidmFyaWFibGVzIiwidmFyaWFibGVOb2RlcyIsImZvckVhY2giLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlIiwidmFyaWFibGVzSW5jbHVkZXNWYXJpYWJsZSIsImluY2x1ZGVzIiwicHVzaCIsImlzR3JvdW5kZWQiLCJkZWZpbmVkVmFyaWFibGVzIiwiZmlsdGVyIiwiZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVmFyaWFibGUiLCJ1bmRlZmluZWRWYXJpYWJsZXMiLCJ1bmRlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJsZW5ndGgiLCJncm91bmRlZCIsImlzSW5pdGlhbGx5R3JvdW5kZWQiLCJ2YXJpYWJsZXNMZW5ndGgiLCJpbml0aWFsbHlHcm91bmRlZCIsImlzSW1wbGljaXRseUdyb3VuZGVkIiwiaW1wbGljaXRseUdyb3VuZGVkIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSIsInRlcm1Ob2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU9xQkE7OztxQkFMRTtxQkFDSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0IsSUFBTUMscUJBQXFCQyxJQUFBQSxpQkFBVSxFQUFDO0FBRXZCLElBQUEsQUFBTUYscUJBQUQsQUFBTDthQUFNQSxLQUNQRyxJQUFJLEVBQUVDLElBQUk7Z0NBREhKO1FBRWpCLElBQUksQ0FBQ0csSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7a0JBSEtKOztZQU1uQkssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixJQUFJO1lBQ2xCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixJQUFJO1lBQ2xCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLE1BQU1DLElBQUk7Z0JBQ1IsSUFBTUwsT0FBT0ssS0FBS0gsT0FBTyxJQUNuQkksVUFBVSxJQUFJLENBQUNOLElBQUksQ0FBQ0ksS0FBSyxDQUFDSjtnQkFFaEMsT0FBT007WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxhQUFhQyxPQUFPO2dCQUNsQixJQUFNQyxZQUFZLEVBQUUsRUFDZEMsZ0JBQWdCWixtQkFBbUIsSUFBSSxDQUFDRSxJQUFJO2dCQUVsRFUsY0FBY0MsT0FBTyxDQUFDLFNBQUNDO29CQUNyQixJQUFNQyxXQUFXTCxRQUFRTSwwQkFBMEIsQ0FBQ0YsZUFDOUNHLDRCQUE0Qk4sVUFBVU8sUUFBUSxDQUFDSDtvQkFFckQsSUFBSSxDQUFDRSwyQkFBMkI7d0JBQzlCTixVQUFVUSxJQUFJLENBQUNKO29CQUNqQjtnQkFDRjtnQkFFQSxPQUFPSjtZQUNUOzs7WUFFQVMsS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVdDLGdCQUFnQixFQUFFWCxPQUFPO2dCQUNsQyxJQUFNQyxZQUFZLElBQUksQ0FBQ0YsWUFBWSxDQUFDQztnQkFFcENZLElBQUFBLGFBQU0sRUFBQ1gsV0FBVyxTQUFDSTtvQkFDakIsSUFBTVEsbUNBQW1DRixpQkFBaUJILFFBQVEsQ0FBQ0g7b0JBRW5FLElBQUksQ0FBQ1Esa0NBQWtDO3dCQUNyQyxPQUFPO29CQUNUO2dCQUNGO2dCQUVBLElBQU1DLHFCQUFxQmIsV0FDckJjLDJCQUEyQkQsbUJBQW1CRSxNQUFNLEVBQ3BEQyxXQUFZRiw0QkFBNEI7Z0JBRTlDLE9BQU9FO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsb0JBQW9CbEIsT0FBTztnQkFDekIsSUFBTUMsWUFBWSxJQUFJLENBQUNGLFlBQVksQ0FBQ0MsVUFDOUJtQixrQkFBa0JsQixVQUFVZSxNQUFNLEVBQ2xDSSxvQkFBcUJELG9CQUFvQjtnQkFFL0MsT0FBT0M7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxxQkFBcUJWLGdCQUFnQixFQUFFWCxPQUFPO2dCQUM1QyxJQUFNaUIsV0FBVyxJQUFJLENBQUNQLFVBQVUsQ0FBQ0Msa0JBQWtCWCxVQUM3Q3NCLHFCQUFxQkwsVUFBVyxHQUFHO2dCQUV6QyxPQUFPSztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLG9CQUFvQkMsUUFBUSxFQUFFL0IsSUFBSTtnQkFDdkMsSUFBTUQsT0FBT2dDLFVBQ1AzQixPQUFPLElBeEVJUixLQXdFS0csTUFBTUM7Z0JBRTVCLE9BQU9JO1lBQ1Q7OztXQTNFbUJSIn0=
|
package/lib/utilities/array.js
CHANGED
|
@@ -67,6 +67,16 @@ function someSubArray(array, subArrayLength, callback) {
|
|
|
67
67
|
offset = 0;
|
|
68
68
|
permutations = _permutationsMatrix.default[indexesLength][permutationLength];
|
|
69
69
|
}
|
|
70
|
+
if (subArrayLength === 4) {
|
|
71
|
+
permutations = [
|
|
72
|
+
[
|
|
73
|
+
0,
|
|
74
|
+
2,
|
|
75
|
+
3,
|
|
76
|
+
4
|
|
77
|
+
]
|
|
78
|
+
];
|
|
79
|
+
}
|
|
70
80
|
if (permutations !== null) {
|
|
71
81
|
found = permutations.some(function(permutation) {
|
|
72
82
|
if (permutation !== null) {
|
|
@@ -102,4 +112,4 @@ function rightDifference(arrayA, arrayB) {
|
|
|
102
112
|
});
|
|
103
113
|
}
|
|
104
114
|
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgcGVybXV0YXRpb25zTWF0cml4IGZyb20gXCIuLi9wZXJtdXRhdGlvbnNNYXRyaXhcIjtcblxuaW1wb3J0IHsgTUFYSU1VTV9JTkRFWEVTX0xFTkdUSCwgTUFYSU1VTV9QRVJNVVRBVElPTl9MRU5HVEggfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjb25zdCB7IGZpcnN0LCBzZWNvbmQsIGxhc3QsIHB1c2gsIHBydW5lLCBtYXRjaCwgZmlsdGVyLCBjb21wcmVzcywgc2VwYXJhdGUgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gc29tZVN1YkFycmF5KGFycmF5LCBzdWJBcnJheUxlbmd0aCwgY2FsbGJhY2spIHtcbiAgbGV0IGZvdW5kID0gZmFsc2U7XG5cbiAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIGluZGV4ZXNMZW5ndGggPSBhcnJheUxlbmd0aCwgLy8vXG4gICAgICAgIHBlcm11dGF0aW9uTGVuZ3RoID0gc3ViQXJyYXlMZW5ndGg7IC8vL1xuXG4gIGlmIChwZXJtdXRhdGlvbkxlbmd0aCA8PSBNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSCkge1xuICAgIGxldCBvZmZzZXQsXG4gICAgICAgIHBlcm11dGF0aW9ucztcblxuICAgIGlmIChpbmRleGVzTGVuZ3RoID4gTUFYSU1VTV9JTkRFWEVTX0xFTkdUSCkge1xuICAgICAgb2Zmc2V0ID0gaW5kZXhlc0xlbmd0aCAtIE1BWElNVU1fSU5ERVhFU19MRU5HVEg7XG5cbiAgICAgIHBlcm11dGF0aW9ucyA9IHBlcm11dGF0aW9uc01hdHJpeFtNQVhJTVVNX0lOREVYRVNfTEVOR1RIXVtwZXJtdXRhdGlvbkxlbmd0aF07XG4gICAgfSBlbHNlIHtcbiAgICAgIG9mZnNldCA9IDA7XG5cbiAgICAgIHBlcm11dGF0aW9ucyA9IHBlcm11dGF0aW9uc01hdHJpeFtpbmRleGVzTGVuZ3RoXVtwZXJtdXRhdGlvbkxlbmd0aF07XG4gICAgfVxuXG4gICAgaWYgKHN1YkFycmF5TGVuZ3RoID09PSA0KSB7XG4gICAgICBwZXJtdXRhdGlvbnMgPSBbXG4gICAgICAgIFsgMCwgMiwgMywgNCBdXG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmIChwZXJtdXRhdGlvbnMgIT09IG51bGwpIHtcbiAgICAgIGZvdW5kID0gcGVybXV0YXRpb25zLnNvbWUoKHBlcm11dGF0aW9uKSA9PiB7XG4gICAgICAgIGlmIChwZXJtdXRhdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHN1YkFycmF5ID0gW107XG5cbiAgICAgICAgICBmb3IgKGxldCBwb3NpdGlvbiA9IDA7IHBvc2l0aW9uIDwgcGVybXV0YXRpb25MZW5ndGg7IHBvc2l0aW9uKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGVybXV0YXRpb25bcG9zaXRpb25dICsgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgICAgICAgICAgc3ViQXJyYXkucHVzaChlbGVtZW50KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhzdWJBcnJheSk7XG5cbiAgICAgICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmb3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxlZnREaWZmZXJlbmNlKGFycmF5QSwgYXJyYXlCKSB7XG4gIGZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmlnaHREaWZmZXJlbmNlKGFycmF5QSwgYXJyYXlCKSB7XG4gIGZpbHRlcihhcnJheUIsIChlbGVtZW50QikgPT4ge1xuICAgIGNvbnN0IGFycmF5QUluY2x1ZGVzRWxlbWVudEIgPSBhcnJheUEuaW5jbHVkZXMoZWxlbWVudEIpO1xuXG4gICAgaWYgKCFhcnJheUFJbmNsdWRlc0VsZW1lbnRCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImNvbXByZXNzIiwiZmlsdGVyIiwiZmlyc3QiLCJsYXN0IiwibGVmdERpZmZlcmVuY2UiLCJtYXRjaCIsInBydW5lIiwicHVzaCIsInJpZ2h0RGlmZmVyZW5jZSIsInNlY29uZCIsInNlcGFyYXRlIiwic29tZVN1YkFycmF5IiwiYXJyYXlVdGlsaXRpZXMiLCJhcnJheSIsInN1YkFycmF5TGVuZ3RoIiwiY2FsbGJhY2siLCJmb3VuZCIsImFycmF5TGVuZ3RoIiwibGVuZ3RoIiwiaW5kZXhlc0xlbmd0aCIsInBlcm11dGF0aW9uTGVuZ3RoIiwiTUFYSU1VTV9QRVJNVVRBVElPTl9MRU5HVEgiLCJvZmZzZXQiLCJwZXJtdXRhdGlvbnMiLCJNQVhJTVVNX0lOREVYRVNfTEVOR1RIIiwicGVybXV0YXRpb25zTWF0cml4Iiwic29tZSIsInBlcm11dGF0aW9uIiwic3ViQXJyYXkiLCJwb3NpdGlvbiIsImluZGV4IiwiZWxlbWVudCIsInBhc3NlZCIsImFycmF5QSIsImFycmF5QiIsImVsZW1lbnRBIiwiYXJyYXlCSW5jbHVkZXNFbGVtZW50QSIsImluY2x1ZGVzIiwiZWxlbWVudEIiLCJhcnJheUFJbmNsdWRlc0VsZW1lbnRCIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFR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
|