occam-verify-cli 0.0.843 → 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/term.js +22 -17
- package/lib/utilities/array.js +11 -1
- package/lib/utilities/equivalences.js +83 -67
- 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/term.js +29 -23
- package/src/utilities/array.js +6 -0
- package/src/utilities/equivalences.js +114 -67
- package/src/verify/defining.js +49 -14
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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
|
|
@@ -12,26 +12,17 @@ _export(exports, {
|
|
|
12
12
|
areTermNodesEqual: function() {
|
|
13
13
|
return areTermNodesEqual;
|
|
14
14
|
},
|
|
15
|
-
compressDefinedVariables: function() {
|
|
16
|
-
return compressDefinedVariables;
|
|
17
|
-
},
|
|
18
|
-
definedVariablesFromGroundedEquivalences: function() {
|
|
19
|
-
return definedVariablesFromGroundedEquivalences;
|
|
20
|
-
},
|
|
21
15
|
findEquivalenceByTerm: function() {
|
|
22
16
|
return findEquivalenceByTerm;
|
|
23
17
|
},
|
|
24
18
|
findEquivalenceByType: function() {
|
|
25
19
|
return findEquivalenceByType;
|
|
26
20
|
},
|
|
27
|
-
|
|
28
|
-
return
|
|
21
|
+
groundedTermsAndDefinedVariablesFromFromEquivalences: function() {
|
|
22
|
+
return groundedTermsAndDefinedVariablesFromFromEquivalences;
|
|
29
23
|
},
|
|
30
24
|
mergeEquivalences: function() {
|
|
31
25
|
return mergeEquivalences;
|
|
32
|
-
},
|
|
33
|
-
separateEquivalences: function() {
|
|
34
|
-
return separateEquivalences;
|
|
35
26
|
}
|
|
36
27
|
});
|
|
37
28
|
var _array = require("../utilities/array");
|
|
@@ -60,6 +51,28 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
60
51
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
61
52
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
62
53
|
}
|
|
54
|
+
function mergeEquivalences(equivalencesA, equivalencesB, localContext) {
|
|
55
|
+
var typesA = typesFromEquivalences(equivalencesA, localContext), typesB = typesFromEquivalences(equivalencesB, localContext), types = _to_consumable_array(typesA).concat(_to_consumable_array(typesB));
|
|
56
|
+
(0, _array.compress)(types, function(typeA, typeB) {
|
|
57
|
+
if (typeA === typeB) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
var equivalences = types.map(function(type) {
|
|
62
|
+
var equivalence;
|
|
63
|
+
var equivalenceA = findEquivalenceByType(equivalencesA, type, localContext), equivalenceB = findEquivalenceByType(equivalencesB, type, localContext);
|
|
64
|
+
if (equivalenceA !== null && equivalenceB !== null) {
|
|
65
|
+
var leftEquivalence = equivalenceA, rightEquivalence = equivalenceB; ///
|
|
66
|
+
equivalence = Equivalence.merge(leftEquivalence, rightEquivalence);
|
|
67
|
+
} else if (equivalenceA !== null) {
|
|
68
|
+
equivalence = equivalenceA; ///
|
|
69
|
+
} else if (equivalenceB !== null) {
|
|
70
|
+
equivalence = equivalenceB; ///
|
|
71
|
+
}
|
|
72
|
+
return equivalence;
|
|
73
|
+
});
|
|
74
|
+
return equivalences;
|
|
75
|
+
}
|
|
63
76
|
function areTermNodesEqual(leftTermNode, rightTermNode, equivalences) {
|
|
64
77
|
var termNodesEqual;
|
|
65
78
|
var leftTermNodeMatchesRightTermNode = leftTermNode.match(rightTermNode);
|
|
@@ -92,78 +105,81 @@ function findEquivalenceByTerm(equivalences, term) {
|
|
|
92
105
|
}) || null;
|
|
93
106
|
return equivalence;
|
|
94
107
|
}
|
|
95
|
-
function
|
|
96
|
-
var
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
108
|
+
function groundedTermsAndDefinedVariablesFromFromEquivalences(equivalences, groundedTerms, definedVariables, context) {
|
|
109
|
+
var groundedEquivalences, remainingEquivalences, initiallyGroundedEquivalences, implicitlyGroundedEquivalences;
|
|
110
|
+
remainingEquivalences = [];
|
|
111
|
+
initiallyGroundedEquivalences = [];
|
|
112
|
+
separateInitiallyGroundedEquivalences(equivalences, remainingEquivalences, initiallyGroundedEquivalences, context);
|
|
113
|
+
var initiallyGroundedEquivalencesLength = initiallyGroundedEquivalences.length;
|
|
114
|
+
if (initiallyGroundedEquivalencesLength > 0) {
|
|
115
|
+
groundedEquivalences = initiallyGroundedEquivalences; ///
|
|
116
|
+
var implicitlyGroundedEquivalencesLength = 1;
|
|
117
|
+
while(implicitlyGroundedEquivalencesLength > 0){
|
|
118
|
+
var definedVariablesLength = 0, previousDefinedVariablesLength = -1;
|
|
119
|
+
while(definedVariablesLength > previousDefinedVariablesLength){
|
|
120
|
+
previousDefinedVariablesLength = definedVariablesLength; ///
|
|
121
|
+
groundedTermsFromGroundedEquivalencesAndDefinedVariables(groundedEquivalences, definedVariables, groundedTerms, context);
|
|
122
|
+
definedVariablesFromGroundedTerms(groundedTerms, definedVariables, context);
|
|
123
|
+
definedVariablesLength = definedVariables.length;
|
|
124
|
+
}
|
|
125
|
+
equivalences = remainingEquivalences; ///
|
|
126
|
+
remainingEquivalences = [];
|
|
127
|
+
implicitlyGroundedEquivalences = [];
|
|
128
|
+
separateImplicitlyGroundedEquivalences(equivalences, remainingEquivalences, implicitlyGroundedEquivalences, definedVariables, context);
|
|
129
|
+
(0, _array.push)(groundedEquivalences, implicitlyGroundedEquivalences);
|
|
130
|
+
implicitlyGroundedEquivalencesLength = implicitlyGroundedEquivalences.length; ///
|
|
100
131
|
}
|
|
101
|
-
}
|
|
102
|
-
var equivalences = types.map(function(type) {
|
|
103
|
-
var equivalence;
|
|
104
|
-
var equivalenceA = findEquivalenceByType(equivalencesA, type, localContext), equivalenceB = findEquivalenceByType(equivalencesB, type, localContext);
|
|
105
|
-
if (equivalenceA !== null && equivalenceB !== null) {
|
|
106
|
-
var leftEquivalence = equivalenceA, rightEquivalence = equivalenceB; ///
|
|
107
|
-
equivalence = Equivalence.merge(leftEquivalence, rightEquivalence);
|
|
108
|
-
} else if (equivalenceA !== null) {
|
|
109
|
-
equivalence = equivalenceA; ///
|
|
110
|
-
} else if (equivalenceB !== null) {
|
|
111
|
-
equivalence = equivalenceB; ///
|
|
112
|
-
}
|
|
113
|
-
return equivalence;
|
|
114
|
-
});
|
|
115
|
-
return equivalences;
|
|
132
|
+
}
|
|
116
133
|
}
|
|
117
|
-
function
|
|
118
|
-
|
|
119
|
-
var
|
|
120
|
-
|
|
121
|
-
return true;
|
|
122
|
-
}
|
|
134
|
+
function typesFromEquivalences(equivalences, localContext) {
|
|
135
|
+
var types = equivalences.map(function(equivalence) {
|
|
136
|
+
var type = equivalence.getType(localContext);
|
|
137
|
+
return type;
|
|
123
138
|
});
|
|
139
|
+
return types;
|
|
124
140
|
}
|
|
125
|
-
function
|
|
126
|
-
|
|
127
|
-
|
|
141
|
+
function findEquivalenceByTermNodes(equivalences, termNodes) {
|
|
142
|
+
var equivalence = equivalences.find(function(equivalence) {
|
|
143
|
+
var equivalenceMatchesTerms = equivalence.matchTermNodes(termNodes);
|
|
144
|
+
if (equivalenceMatchesTerms) {
|
|
128
145
|
return true;
|
|
129
146
|
}
|
|
130
|
-
});
|
|
147
|
+
}) || null;
|
|
148
|
+
return equivalence;
|
|
131
149
|
}
|
|
132
|
-
function
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
150
|
+
function definedVariablesFromGroundedTerms(groundedTerms, definedVariables, context) {
|
|
151
|
+
var terms = groundedTerms, variables = definedVariables; ///
|
|
152
|
+
terms.forEach(function(term) {
|
|
153
|
+
var termVariables = term.getVariables(context);
|
|
154
|
+
termVariables.forEach(function(termVariable) {
|
|
155
|
+
var variablesIncludesTermVariable = variables.includes(termVariable);
|
|
156
|
+
if (!variablesIncludesTermVariable) {
|
|
157
|
+
var variable = termVariable; ///
|
|
158
|
+
variables.push(variable);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
136
161
|
});
|
|
137
162
|
}
|
|
138
|
-
function
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (remainingEquivalenceImplicitlyGrounded) {
|
|
143
|
-
var implicitlyGroundedEquivalence = remainingEquivalence; ///
|
|
144
|
-
implicitlyGroundedEquivalences.push(implicitlyGroundedEquivalence);
|
|
145
|
-
}
|
|
146
|
-
if (!remainingEquivalenceImplicitlyGrounded) {
|
|
163
|
+
function separateInitiallyGroundedEquivalences(equivalences, remainingEquivalences, initiallyGroundedEquivalences, context) {
|
|
164
|
+
(0, _array.separate)(equivalences, remainingEquivalences, initiallyGroundedEquivalences, function(equivalence) {
|
|
165
|
+
var equivalenceInitiallyGrounded = equivalence.isInitiallyGrounded(context);
|
|
166
|
+
if (!equivalenceInitiallyGrounded) {
|
|
147
167
|
return true;
|
|
148
168
|
}
|
|
149
169
|
});
|
|
150
|
-
return implicitlyGroundedEquivalences;
|
|
151
170
|
}
|
|
152
|
-
function
|
|
153
|
-
|
|
154
|
-
var
|
|
155
|
-
if (
|
|
171
|
+
function separateImplicitlyGroundedEquivalences(equivalences, remainingEquivalences, implicitlyGroundedEquivalences, definedVariables, context) {
|
|
172
|
+
(0, _array.separate)(equivalences, remainingEquivalences, implicitlyGroundedEquivalences, function(equivalence) {
|
|
173
|
+
var equivalenceImplicitlyGrounded = equivalence.isImplicitlyGrounded(definedVariables, context);
|
|
174
|
+
if (!equivalenceImplicitlyGrounded) {
|
|
156
175
|
return true;
|
|
157
176
|
}
|
|
158
|
-
})
|
|
159
|
-
return equivalence;
|
|
177
|
+
});
|
|
160
178
|
}
|
|
161
|
-
function
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return type;
|
|
179
|
+
function groundedTermsFromGroundedEquivalencesAndDefinedVariables(groundedEquivalences, definedVariables, groundedTerms, context) {
|
|
180
|
+
groundedEquivalences.forEach(function(groundedEquivalence) {
|
|
181
|
+
groundedEquivalence.getGroundedTerms(definedVariables, groundedTerms, context);
|
|
165
182
|
});
|
|
166
|
-
return types;
|
|
167
183
|
}
|
|
168
184
|
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZXF1aXZhbGVuY2VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBwdXNoLCBmaWx0ZXIsIGNvbXByZXNzLCBzZXBhcmF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGFyZVRlcm1Ob2Rlc0VxdWFsKGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgZXF1aXZhbGVuY2VzKSB7XG4gIGxldCB0ZXJtTm9kZXNFcXVhbDtcblxuICBjb25zdCBsZWZ0VGVybU5vZGVNYXRjaGVzUmlnaHRUZXJtTm9kZSA9IGxlZnRUZXJtTm9kZS5tYXRjaChyaWdodFRlcm1Ob2RlKTtcblxuICBpZiAobGVmdFRlcm1Ob2RlTWF0Y2hlc1JpZ2h0VGVybU5vZGUpIHtcbiAgICB0ZXJtTm9kZXNFcXVhbCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdGVybU5vZGVzID0gW1xuICAgICAgICAgICAgbGVmdFRlcm1Ob2RlLFxuICAgICAgICAgICAgcmlnaHRUZXJtTm9kZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgZXF1aXZhbGVuY2UgPSBmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyhlcXVpdmFsZW5jZXMsIHRlcm1Ob2Rlcyk7XG5cbiAgICB0ZXJtTm9kZXNFcXVhbCA9IChlcXVpdmFsZW5jZSAhPT0gbnVsbCk7XG4gIH1cblxuICByZXR1cm4gdGVybU5vZGVzRXF1YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRXF1aXZhbGVuY2VCeVR5cGUoZXF1aXZhbGVuY2VzLCB0eXBlLCBsb2NhbENvbnRleHQpIHtcbiAgY29uc3QgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZXMuZmluZCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCBlcXVpdmFsZW5jZU1hdGNoZXNUeXBlID0gZXF1aXZhbGVuY2UubWF0Y2hUeXBlKHR5cGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoZXF1aXZhbGVuY2VNYXRjaGVzVHlwZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRFcXVpdmFsZW5jZUJ5VGVybShlcXVpdmFsZW5jZXMsIHRlcm0pIHtcbiAgY29uc3QgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZXMuZmluZCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCBlcXVpdmFsZW5jZU1hdGNoZXNUZXJtID0gZXF1aXZhbGVuY2UubWF0Y2hUZXJtKHRlcm0pO1xuXG4gICAgaWYgKGVxdWl2YWxlbmNlTWF0Y2hlc1Rlcm0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICByZXR1cm4gZXF1aXZhbGVuY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNBLCBlcXVpdmFsZW5jZXNCLCBsb2NhbENvbnRleHQpIHtcbiAgY29uc3QgdHlwZXNBID0gdHlwZXNGcm9tRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlc0EsIGxvY2FsQ29udGV4dCksXG4gICAgICAgIHR5cGVzQiA9IHR5cGVzRnJvbUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNCLCBsb2NhbENvbnRleHQpLFxuICAgICAgICB0eXBlcyA9IFtcbiAgICAgICAgICAuLi50eXBlc0EsXG4gICAgICAgICAgLi4udHlwZXNCXG4gICAgICAgIF07XG5cbiAgY29tcHJlc3ModHlwZXMsICh0eXBlQSwgdHlwZUIpID0+IHtcbiAgICBpZiAodHlwZUEgPT09IHR5cGVCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGVxdWl2YWxlbmNlcyA9IHR5cGVzLm1hcCgodHlwZSkgPT4ge1xuICAgIGxldCBlcXVpdmFsZW5jZTtcblxuICAgIGNvbnN0IGVxdWl2YWxlbmNlQSA9IGZpbmRFcXVpdmFsZW5jZUJ5VHlwZShlcXVpdmFsZW5jZXNBLCB0eXBlLCBsb2NhbENvbnRleHQpLFxuICAgICAgICAgIGVxdWl2YWxlbmNlQiA9IGZpbmRFcXVpdmFsZW5jZUJ5VHlwZShlcXVpdmFsZW5jZXNCLCB0eXBlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKChlcXVpdmFsZW5jZUEgIT09IG51bGwpICYmIChlcXVpdmFsZW5jZUIgIT09IG51bGwpKSB7XG4gICAgICBjb25zdCBsZWZ0RXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUEsIC8vL1xuICAgICAgICAgICAgcmlnaHRFcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlQjsgIC8vL1xuXG4gICAgICBlcXVpdmFsZW5jZSA9IEVxdWl2YWxlbmNlLm1lcmdlKGxlZnRFcXVpdmFsZW5jZSwgcmlnaHRFcXVpdmFsZW5jZSk7XG4gICAgfSBlbHNlIGlmIChlcXVpdmFsZW5jZUEgIT09IG51bGwpIHtcbiAgICAgIGVxdWl2YWxlbmNlID0gZXF1aXZhbGVuY2VBOyAvLy9cbiAgICB9IGVsc2UgaWYgKGVxdWl2YWxlbmNlQiAhPT0gbnVsbCkge1xuICAgICAgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUI7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiBlcXVpdmFsZW5jZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGVxdWl2YWxlbmNlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcGFyYXRlRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcykge1xuICBzZXBhcmF0ZShlcXVpdmFsZW5jZXMsIHJlbWFpbmluZ0VxdWl2YWxlbmNlcywgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQgPSBlcXVpdmFsZW5jZS5pc0luaXRpYWxseUdyb3VuZGVkKCk7XG5cbiAgICBpZiAoIWVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzc0RlZmluZWRWYXJpYWJsZXMoZGVmaW5lZFZhcmlhYmxlcykge1xuICBjb21wcmVzcyhkZWZpbmVkVmFyaWFibGVzLCAoZGVmaW5lZFZhcmlhYmxlQSwgZGVmaW5lZFZhcmlhYmxlQikgPT4ge1xuICAgIGlmIChkZWZpbmVkVmFyaWFibGVBID09PSBkZWZpbmVkVmFyaWFibGVCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZEVxdWl2YWxlbmNlcyhncm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICBncm91bmRlZEVxdWl2YWxlbmNlcy5mb3JFYWNoKChncm91bmRlZEVxdWl2YWxlbmNlKSA9PiB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gZ3JvdW5kZWRFcXVpdmFsZW5jZS5nZXRWYXJpYWJsZXMoY29udGV4dCk7XG5cbiAgICBwdXNoKGRlZmluZWRWYXJpYWJsZXMsIHZhcmlhYmxlcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzRnJvbVJlbWFpbmluZ0VxdWl2YWxlbmNlc0FuZERlZmluZWRWYXJpYWJsZXMocmVtYWluaW5nRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzKSB7XG4gIGNvbnN0IGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyA9IFtdO1xuXG4gIGZpbHRlcihyZW1haW5pbmdFcXVpdmFsZW5jZXMsIChyZW1haW5pbmdFcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IHJlbWFpbmluZ0VxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkID0gcmVtYWluaW5nRXF1aXZhbGVuY2UuaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcyk7XG5cbiAgICBpZiAocmVtYWluaW5nRXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQpIHtcbiAgICAgIGNvbnN0IGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlID0gcmVtYWluaW5nRXF1aXZhbGVuY2U7IC8vL1xuXG4gICAgICBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMucHVzaChpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZW1haW5pbmdFcXVpdmFsZW5jZUltcGxpY2l0bHlHcm91bmRlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzO1xufVxuXG5mdW5jdGlvbiBmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyhlcXVpdmFsZW5jZXMsIHRlcm1Ob2Rlcykge1xuICBjb25zdCBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlcy5maW5kKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlTWF0Y2hlc1Rlcm1zID0gZXF1aXZhbGVuY2UubWF0Y2hUZXJtTm9kZXModGVybU5vZGVzKTtcblxuICAgIGlmIChlcXVpdmFsZW5jZU1hdGNoZXNUZXJtcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZTtcbn1cblxuZnVuY3Rpb24gdHlwZXNGcm9tRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0KSB7XG4gIGNvbnN0IHR5cGVzID0gZXF1aXZhbGVuY2VzLm1hcCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCB0eXBlID0gZXF1aXZhbGVuY2UuZ2V0VHlwZShsb2NhbENvbnRleHQpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH0pO1xuXG4gIHJldHVybiB0eXBlcztcbn1cbiJdLCJuYW1lcyI6WyJhcmVUZXJtTm9kZXNFcXVhbCIsImNvbXByZXNzRGVmaW5lZFZhcmlhYmxlcyIsImRlZmluZWRWYXJpYWJsZXNGcm9tR3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJmaW5kRXF1aXZhbGVuY2VCeVRlcm0iLCJmaW5kRXF1aXZhbGVuY2VCeVR5cGUiLCJpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNGcm9tUmVtYWluaW5nRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyIsIm1lcmdlRXF1aXZhbGVuY2VzIiwic2VwYXJhdGVFcXVpdmFsZW5jZXMiLCJsZWZ0VGVybU5vZGUiLCJyaWdodFRlcm1Ob2RlIiwiZXF1aXZhbGVuY2VzIiwidGVybU5vZGVzRXF1YWwiLCJsZWZ0VGVybU5vZGVNYXRjaGVzUmlnaHRUZXJtTm9kZSIsIm1hdGNoIiwidGVybU5vZGVzIiwiZXF1aXZhbGVuY2UiLCJmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyIsInR5cGUiLCJsb2NhbENvbnRleHQiLCJmaW5kIiwiZXF1aXZhbGVuY2VNYXRjaGVzVHlwZSIsIm1hdGNoVHlwZSIsInRlcm0iLCJlcXVpdmFsZW5jZU1hdGNoZXNUZXJtIiwibWF0Y2hUZXJtIiwiZXF1aXZhbGVuY2VzQSIsImVxdWl2YWxlbmNlc0IiLCJ0eXBlc0EiLCJ0eXBlc0Zyb21FcXVpdmFsZW5jZXMiLCJ0eXBlc0IiLCJ0eXBlcyIsImNvbXByZXNzIiwidHlwZUEiLCJ0eXBlQiIsIm1hcCIsImVxdWl2YWxlbmNlQSIsImVxdWl2YWxlbmNlQiIsImxlZnRFcXVpdmFsZW5jZSIsInJpZ2h0RXF1aXZhbGVuY2UiLCJFcXVpdmFsZW5jZSIsIm1lcmdlIiwicmVtYWluaW5nRXF1aXZhbGVuY2VzIiwiaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJzZXBhcmF0ZSIsImVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQiLCJpc0luaXRpYWxseUdyb3VuZGVkIiwiZGVmaW5lZFZhcmlhYmxlcyIsImRlZmluZWRWYXJpYWJsZUEiLCJkZWZpbmVkVmFyaWFibGVCIiwiZ3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJjb250ZXh0IiwiZm9yRWFjaCIsImdyb3VuZGVkRXF1aXZhbGVuY2UiLCJ2YXJpYWJsZXMiLCJnZXRWYXJpYWJsZXMiLCJwdXNoIiwiaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzIiwiZmlsdGVyIiwicmVtYWluaW5nRXF1aXZhbGVuY2UiLCJyZW1haW5pbmdFcXVpdmFsZW5jZUltcGxpY2l0bHlHcm91bmRlZCIsImlzSW1wbGljaXRseUdyb3VuZGVkIiwiaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2UiLCJlcXVpdmFsZW5jZU1hdGNoZXNUZXJtcyIsIm1hdGNoVGVybU5vZGVzIiwiZ2V0VHlwZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBSWdCQSxpQkFBaUI7ZUFBakJBOztJQTJGQUMsd0JBQXdCO2VBQXhCQTs7SUFRQUMsd0NBQXdDO2VBQXhDQTs7SUFuRUFDLHFCQUFxQjtlQUFyQkE7O0lBWkFDLHFCQUFxQjtlQUFyQkE7O0lBdUZBQywwRUFBMEU7ZUFBMUVBOztJQS9EQUMsaUJBQWlCO2VBQWpCQTs7SUFxQ0FDLG9CQUFvQjtlQUFwQkE7OztxQkFuRmlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQyxTQUFTUCxrQkFBa0JRLFlBQVksRUFBRUMsYUFBYSxFQUFFQyxZQUFZO0lBQ3pFLElBQUlDO0lBRUosSUFBTUMsbUNBQW1DSixhQUFhSyxLQUFLLENBQUNKO0lBRTVELElBQUlHLGtDQUFrQztRQUNwQ0QsaUJBQWlCO0lBQ25CLE9BQU87UUFDTCxJQUFNRyxZQUFZO1lBQ1ZOO1lBQ0FDO1NBQ0QsRUFDRE0sY0FBY0MsMkJBQTJCTixjQUFjSTtRQUU3REgsaUJBQWtCSSxnQkFBZ0I7SUFDcEM7SUFFQSxPQUFPSjtBQUNUO0FBRU8sU0FBU1Asc0JBQXNCTSxZQUFZLEVBQUVPLElBQUksRUFBRUMsWUFBWTtJ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
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZXF1aXZhbGVuY2VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBwdXNoLCBjb21wcmVzcywgc2VwYXJhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNBLCBlcXVpdmFsZW5jZXNCLCBsb2NhbENvbnRleHQpIHtcbiAgY29uc3QgdHlwZXNBID0gdHlwZXNGcm9tRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlc0EsIGxvY2FsQ29udGV4dCksXG4gICAgICAgIHR5cGVzQiA9IHR5cGVzRnJvbUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNCLCBsb2NhbENvbnRleHQpLFxuICAgICAgICB0eXBlcyA9IFtcbiAgICAgICAgICAuLi50eXBlc0EsXG4gICAgICAgICAgLi4udHlwZXNCXG4gICAgICAgIF07XG5cbiAgY29tcHJlc3ModHlwZXMsICh0eXBlQSwgdHlwZUIpID0+IHtcbiAgICBpZiAodHlwZUEgPT09IHR5cGVCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGVxdWl2YWxlbmNlcyA9IHR5cGVzLm1hcCgodHlwZSkgPT4ge1xuICAgIGxldCBlcXVpdmFsZW5jZTtcblxuICAgIGNvbnN0IGVxdWl2YWxlbmNlQSA9IGZpbmRFcXVpdmFsZW5jZUJ5VHlwZShlcXVpdmFsZW5jZXNBLCB0eXBlLCBsb2NhbENvbnRleHQpLFxuICAgICAgICAgIGVxdWl2YWxlbmNlQiA9IGZpbmRFcXVpdmFsZW5jZUJ5VHlwZShlcXVpdmFsZW5jZXNCLCB0eXBlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKChlcXVpdmFsZW5jZUEgIT09IG51bGwpICYmIChlcXVpdmFsZW5jZUIgIT09IG51bGwpKSB7XG4gICAgICBjb25zdCBsZWZ0RXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUEsIC8vL1xuICAgICAgICAgICAgcmlnaHRFcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlQjsgIC8vL1xuXG4gICAgICBlcXVpdmFsZW5jZSA9IEVxdWl2YWxlbmNlLm1lcmdlKGxlZnRFcXVpdmFsZW5jZSwgcmlnaHRFcXVpdmFsZW5jZSk7XG4gICAgfSBlbHNlIGlmIChlcXVpdmFsZW5jZUEgIT09IG51bGwpIHtcbiAgICAgIGVxdWl2YWxlbmNlID0gZXF1aXZhbGVuY2VBOyAvLy9cbiAgICB9IGVsc2UgaWYgKGVxdWl2YWxlbmNlQiAhPT0gbnVsbCkge1xuICAgICAgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUI7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiBlcXVpdmFsZW5jZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGVxdWl2YWxlbmNlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFyZVRlcm1Ob2Rlc0VxdWFsKGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgZXF1aXZhbGVuY2VzKSB7XG4gIGxldCB0ZXJtTm9kZXNFcXVhbDtcblxuICBjb25zdCBsZWZ0VGVybU5vZGVNYXRjaGVzUmlnaHRUZXJtTm9kZSA9IGxlZnRUZXJtTm9kZS5tYXRjaChyaWdodFRlcm1Ob2RlKTtcblxuICBpZiAobGVmdFRlcm1Ob2RlTWF0Y2hlc1JpZ2h0VGVybU5vZGUpIHtcbiAgICB0ZXJtTm9kZXNFcXVhbCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdGVybU5vZGVzID0gW1xuICAgICAgICAgICAgbGVmdFRlcm1Ob2RlLFxuICAgICAgICAgICAgcmlnaHRUZXJtTm9kZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgZXF1aXZhbGVuY2UgPSBmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyhlcXVpdmFsZW5jZXMsIHRlcm1Ob2Rlcyk7XG5cbiAgICB0ZXJtTm9kZXNFcXVhbCA9IChlcXVpdmFsZW5jZSAhPT0gbnVsbCk7XG4gIH1cblxuICByZXR1cm4gdGVybU5vZGVzRXF1YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRXF1aXZhbGVuY2VCeVR5cGUoZXF1aXZhbGVuY2VzLCB0eXBlLCBsb2NhbENvbnRleHQpIHtcbiAgY29uc3QgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZXMuZmluZCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCBlcXVpdmFsZW5jZU1hdGNoZXNUeXBlID0gZXF1aXZhbGVuY2UubWF0Y2hUeXBlKHR5cGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoZXF1aXZhbGVuY2VNYXRjaGVzVHlwZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRFcXVpdmFsZW5jZUJ5VGVybShlcXVpdmFsZW5jZXMsIHRlcm0pIHtcbiAgY29uc3QgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZXMuZmluZCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCBlcXVpdmFsZW5jZU1hdGNoZXNUZXJtID0gZXF1aXZhbGVuY2UubWF0Y2hUZXJtKHRlcm0pO1xuXG4gICAgaWYgKGVxdWl2YWxlbmNlTWF0Y2hlc1Rlcm0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICByZXR1cm4gZXF1aXZhbGVuY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncm91bmRlZFRlcm1zQW5kRGVmaW5lZFZhcmlhYmxlc0Zyb21Gcm9tRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgZ3JvdW5kZWRUZXJtcywgZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICBsZXQgZ3JvdW5kZWRFcXVpdmFsZW5jZXMsXG4gICAgICByZW1haW5pbmdFcXVpdmFsZW5jZXMsXG4gICAgICBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyxcbiAgICAgIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcztcblxuICByZW1haW5pbmdFcXVpdmFsZW5jZXMgPSBbXTtcblxuICBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyA9IFtdO1xuXG4gIHNlcGFyYXRlSW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCByZW1haW5pbmdFcXVpdmFsZW5jZXMsIGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBjb250ZXh0KTtcblxuICBjb25zdCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCA9IGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzLmxlbmd0aDtcblxuICBpZiAoaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgZ3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlczsgLy8vXG5cbiAgICBsZXQgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gMTtcblxuICAgIHdoaWxlIChpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgICBsZXQgZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IDAsXG4gICAgICAgICAgcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gLTE7XG5cbiAgICAgIHdoaWxlIChkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID4gcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoKSB7XG4gICAgICAgIHByZXZpb3VzRGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IGRlZmluZWRWYXJpYWJsZXNMZW5ndGg7ICAvLy9cblxuICAgICAgICBncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyhncm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgY29udGV4dCk7XG5cbiAgICAgICAgZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGRlZmluZWRWYXJpYWJsZXNMZW5ndGggPSBkZWZpbmVkVmFyaWFibGVzLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgZXF1aXZhbGVuY2VzID0gcmVtYWluaW5nRXF1aXZhbGVuY2VzOyAvLy9cblxuICAgICAgcmVtYWluaW5nRXF1aXZhbGVuY2VzID0gW107XG5cbiAgICAgIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyA9IFtdO1xuXG4gICAgICBzZXBhcmF0ZUltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXMsIHJlbWFpbmluZ0VxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgICAgcHVzaChncm91bmRlZEVxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzKTtcblxuICAgICAgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLmxlbmd0aDsgIC8vL1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0eXBlc0Zyb21FcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCBsb2NhbENvbnRleHQpIHtcbiAgY29uc3QgdHlwZXMgPSBlcXVpdmFsZW5jZXMubWFwKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IHR5cGUgPSBlcXVpdmFsZW5jZS5nZXRUeXBlKGxvY2FsQ29udGV4dCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHR5cGVzO1xufVxuXG5mdW5jdGlvbiBmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyhlcXVpdmFsZW5jZXMsIHRlcm1Ob2Rlcykge1xuICBjb25zdCBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlcy5maW5kKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlTWF0Y2hlc1Rlcm1zID0gZXF1aXZhbGVuY2UubWF0Y2hUZXJtTm9kZXModGVybU5vZGVzKTtcblxuICAgIGlmIChlcXVpdmFsZW5jZU1hdGNoZXNUZXJtcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZTtcbn1cblxuZnVuY3Rpb24gZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgdGVybXMgPSBncm91bmRlZFRlcm1zLCAgLy8vXG4gICAgICAgIHZhcmlhYmxlcyA9IGRlZmluZWRWYXJpYWJsZXM7IC8vL1xuXG4gIHRlcm1zLmZvckVhY2goKHRlcm0pID0+IHtcbiAgICBjb25zdCB0ZXJtVmFyaWFibGVzID0gdGVybS5nZXRWYXJpYWJsZXMoY29udGV4dCk7XG5cbiAgICB0ZXJtVmFyaWFibGVzLmZvckVhY2goKHRlcm1WYXJpYWJsZSkgPT4ge1xuICAgICAgY29uc3QgdmFyaWFibGVzSW5jbHVkZXNUZXJtVmFyaWFibGUgPSB2YXJpYWJsZXMuaW5jbHVkZXModGVybVZhcmlhYmxlKTtcblxuICAgICAgaWYgKCF2YXJpYWJsZXNJbmNsdWRlc1Rlcm1WYXJpYWJsZSkge1xuICAgICAgICBjb25zdCB2YXJpYWJsZSA9IHRlcm1WYXJpYWJsZTsgIC8vL1xuXG4gICAgICAgIHZhcmlhYmxlcy5wdXNoKHZhcmlhYmxlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNlcGFyYXRlSW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCByZW1haW5pbmdFcXVpdmFsZW5jZXMsIGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBjb250ZXh0KSB7XG4gIHNlcGFyYXRlKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgKGVxdWl2YWxlbmNlKSA9PiB7XG4gICAgY29uc3QgZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCA9IGVxdWl2YWxlbmNlLmlzSW5pdGlhbGx5R3JvdW5kZWQoY29udGV4dCk7XG5cbiAgICBpZiAoIWVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNlcGFyYXRlSW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgc2VwYXJhdGUoZXF1aXZhbGVuY2VzLCByZW1haW5pbmdFcXVpdmFsZW5jZXMsIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcywgKGVxdWl2YWxlbmNlKSA9PiB7XG4gICAgY29uc3QgZXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQgPSBlcXVpdmFsZW5jZS5pc0ltcGxpY2l0bHlHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgIGlmICghZXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdyb3VuZGVkVGVybXNGcm9tR3JvdW5kZWRFcXVpdmFsZW5jZXNBbmREZWZpbmVkVmFyaWFibGVzKGdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBjb250ZXh0KSB7XG4gIGdyb3VuZGVkRXF1aXZhbGVuY2VzLmZvckVhY2goKGdyb3VuZGVkRXF1aXZhbGVuY2UpID0+IHtcbiAgICBncm91bmRlZEVxdWl2YWxlbmNlLmdldEdyb3VuZGVkVGVybXMoZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgY29udGV4dCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImFyZVRlcm1Ob2Rlc0VxdWFsIiwiZmluZEVxdWl2YWxlbmNlQnlUZXJtIiwiZmluZEVxdWl2YWxlbmNlQnlUeXBlIiwiZ3JvdW5kZWRUZXJtc0FuZERlZmluZWRWYXJpYWJsZXNGcm9tRnJvbUVxdWl2YWxlbmNlcyIsIm1lcmdlRXF1aXZhbGVuY2VzIiwiZXF1aXZhbGVuY2VzQSIsImVxdWl2YWxlbmNlc0IiLCJsb2NhbENvbnRleHQiLCJ0eXBlc0EiLCJ0eXBlc0Zyb21FcXVpdmFsZW5jZXMiLCJ0eXBlc0IiLCJ0eXBlcyIsImNvbXByZXNzIiwidHlwZUEiLCJ0eXBlQiIsImVxdWl2YWxlbmNlcyIsIm1hcCIsInR5cGUiLCJlcXVpdmFsZW5jZSIsImVxdWl2YWxlbmNlQSIsImVxdWl2YWxlbmNlQiIsImxlZnRFcXVpdmFsZW5jZSIsInJpZ2h0RXF1aXZhbGVuY2UiLCJFcXVpdmFsZW5jZSIsIm1lcmdlIiwibGVmdFRlcm1Ob2RlIiwicmlnaHRUZXJtTm9kZSIsInRlcm1Ob2Rlc0VxdWFsIiwibGVmdFRlcm1Ob2RlTWF0Y2hlc1JpZ2h0VGVybU5vZGUiLCJtYXRjaCIsInRlcm1Ob2RlcyIsImZpbmRFcXVpdmFsZW5jZUJ5VGVybU5vZGVzIiwiZmluZCIsImVxdWl2YWxlbmNlTWF0Y2hlc1R5cGUiLCJtYXRjaFR5cGUiLCJ0ZXJtIiwiZXF1aXZhbGVuY2VNYXRjaGVzVGVybSIsIm1hdGNoVGVybSIsImdyb3VuZGVkVGVybXMiLCJkZWZpbmVkVmFyaWFibGVzIiwiY29udGV4dCIsImdyb3VuZGVkRXF1aXZhbGVuY2VzIiwicmVtYWluaW5nRXF1aXZhbGVuY2VzIiwiaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzIiwiaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGgiLCJsZW5ndGgiLCJpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGgiLCJkZWZpbmVkVmFyaWFibGVzTGVuZ3RoIiwicHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoIiwiZ3JvdW5kZWRUZXJtc0Zyb21Hcm91bmRlZEVxdWl2YWxlbmNlc0FuZERlZmluZWRWYXJpYWJsZXMiLCJkZWZpbmVkVmFyaWFibGVzRnJvbUdyb3VuZGVkVGVybXMiLCJzZXBhcmF0ZUltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsInB1c2giLCJnZXRUeXBlIiwiZXF1aXZhbGVuY2VNYXRjaGVzVGVybXMiLCJtYXRjaFRlcm1Ob2RlcyIsInRlcm1zIiwidmFyaWFibGVzIiwiZm9yRWFjaCIsInRlcm1WYXJpYWJsZXMiLCJnZXRWYXJpYWJsZXMiLCJ0ZXJtVmFyaWFibGUiLCJ2YXJpYWJsZXNJbmNsdWRlc1Rlcm1WYXJpYWJsZSIsImluY2x1ZGVzIiwidmFyaWFibGUiLCJzZXBhcmF0ZSIsImVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQiLCJpc0luaXRpYWxseUdyb3VuZGVkIiwiZXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQiLCJpc0ltcGxpY2l0bHlHcm91bmRlZCIsImdyb3VuZGVkRXF1aXZhbGVuY2UiLCJnZXRHcm91bmRlZFRlcm1zIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUF5Q2dCQSxpQkFBaUI7ZUFBakJBOztJQWdDQUMscUJBQXFCO2VBQXJCQTs7SUFaQUMscUJBQXFCO2VBQXJCQTs7SUF3QkFDLG9EQUFvRDtlQUFwREE7O0lBakZBQyxpQkFBaUI7ZUFBakJBOzs7cUJBRnlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsQyxTQUFTQSxrQkFBa0JDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxZQUFZO0lBQzFFLElBQU1DLFNBQVNDLHNCQUFzQkosZUFBZUUsZUFDOUNHLFNBQVNELHNCQUFzQkgsZUFBZUMsZUFD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
|
package/lib/verify/defining.js
CHANGED
|
@@ -8,25 +8,53 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return verifyDefining;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var
|
|
11
|
+
var _term = /*#__PURE__*/ _interop_require_default(require("./term"));
|
|
12
12
|
var _constants = require("../constants");
|
|
13
13
|
var _query = require("../utilities/query");
|
|
14
|
-
var
|
|
14
|
+
var _array = require("../utilities/array");
|
|
15
|
+
function _interop_require_default(obj) {
|
|
16
|
+
return obj && obj.__esModule ? obj : {
|
|
17
|
+
default: obj
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
var termNodeQuery = (0, _query.nodeQuery)("/argument/term!"), variableNodeQuery = (0, _query.nodeQuery)("/argument/term/variable!");
|
|
15
21
|
function verifyDefining(argumentNode, definingNode, context) {
|
|
16
22
|
var definingVerified = false;
|
|
17
|
-
var
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
var defined = definedFromDefiningNode(definingNode), termNode = termNodeQuery(argumentNode), variableNode = variableNodeQuery(argumentNode);
|
|
24
|
+
if (false) {
|
|
25
|
+
///
|
|
26
|
+
} else if (variableNode !== null) {
|
|
27
|
+
var variable = context.findVariableByVariableNode(variableNode);
|
|
28
|
+
if (variable !== null) {
|
|
29
|
+
var variableDefined = context.isVariableDefined(variable);
|
|
30
|
+
if (defined) {
|
|
31
|
+
if (variableDefined) {
|
|
32
|
+
definingVerified = true;
|
|
33
|
+
}
|
|
23
34
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
if (!defined) {
|
|
36
|
+
if (!variableDefined) {
|
|
37
|
+
definingVerified = true;
|
|
38
|
+
}
|
|
28
39
|
}
|
|
29
40
|
}
|
|
41
|
+
} else if (termNode !== null) {
|
|
42
|
+
var terms = [], termVerified = (0, _term.default)(termNode, terms, context, function() {
|
|
43
|
+
var verifiedAhead;
|
|
44
|
+
var firstTerm = (0, _array.first)(terms), term = firstTerm, termGrounded = context.isTermGrounded(term);
|
|
45
|
+
if (defined) {
|
|
46
|
+
if (termGrounded) {
|
|
47
|
+
verifiedAhead = true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (!defined) {
|
|
51
|
+
if (!termGrounded) {
|
|
52
|
+
verifiedAhead = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return verifiedAhead;
|
|
56
|
+
});
|
|
57
|
+
definingVerified = termVerified; ///
|
|
30
58
|
}
|
|
31
59
|
return definingVerified;
|
|
32
60
|
}
|
|
@@ -35,4 +63,4 @@ function definedFromDefiningNode(definingNode) {
|
|
|
35
63
|
return defined;
|
|
36
64
|
}
|
|
37
65
|
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVmaW5pbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlUZXJtIGZyb20gXCIuL3Rlcm1cIjtcblxuaW1wb3J0IHsgREVGSU5FRCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGZpcnN0LCBzZWNvbmQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdGVybSFcIiksXG4gICAgICB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90ZXJtL3ZhcmlhYmxlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5RGVmaW5pbmcoYXJndW1lbnROb2RlLCBkZWZpbmluZ05vZGUsIGNvbnRleHQpIHtcbiAgbGV0IGRlZmluaW5nVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBkZWZpbmVkID0gZGVmaW5lZEZyb21EZWZpbmluZ05vZGUoZGVmaW5pbmdOb2RlKSxcbiAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KGFyZ3VtZW50Tm9kZSksXG4gICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KGFyZ3VtZW50Tm9kZSk7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5lZCA9IGNvbnRleHQuaXNWYXJpYWJsZURlZmluZWQodmFyaWFibGUpO1xuXG4gICAgICBpZiAoZGVmaW5lZCkge1xuICAgICAgICBpZiAodmFyaWFibGVEZWZpbmVkKSB7XG4gICAgICAgICAgZGVmaW5pbmdWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFkZWZpbmVkKSB7XG4gICAgICAgIGlmICghdmFyaWFibGVEZWZpbmVkKSB7XG4gICAgICAgICAgZGVmaW5pbmdWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAodGVybU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgICAgICAgY29uc3QgZmlyc3RUZXJtID0gZmlyc3QodGVybXMpLFxuICAgICAgICAgICAgICAgICAgdGVybSA9IGZpcnN0VGVybSwgLy8vXG4gICAgICAgICAgICAgICAgICB0ZXJtR3JvdW5kZWQgPSBjb250ZXh0LmlzVGVybUdyb3VuZGVkKHRlcm0pO1xuXG4gICAgICAgICAgICBpZiAoZGVmaW5lZCkge1xuICAgICAgICAgICAgICBpZiAodGVybUdyb3VuZGVkKSB7XG4gICAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFkZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGlmICghdGVybUdyb3VuZGVkKSB7XG4gICAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICBkZWZpbmluZ1ZlcmlmaWVkID0gdGVybVZlcmlmaWVkOyAgLy8vXG5cbiAgfVxuXG4gIHJldHVybiBkZWZpbmluZ1ZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVkRnJvbURlZmluaW5nTm9kZShkZWZpbmluZ05vZGUpIHtcbiAgY29uc3QgY2hpbGROb2RlcyA9IGRlZmluaW5nTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHNlY29uZENoaWxkTm9kZSA9IHNlY29uZChjaGlsZE5vZGVzKSxcbiAgICAgICAgdGVybWluYWxOb2RlID0gc2Vjb25kQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBkZWZpbmVkID0gKGNvbnRlbnQgPT09IERFRklORUQpO1xuXG4gIHJldHVybiBkZWZpbmVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeURlZmluaW5nIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZhcmlhYmxlTm9kZVF1ZXJ5IiwiYXJndW1lbnROb2RlIiwiZGVmaW5pbmdOb2RlIiwiY29udGV4dCIsImRlZmluaW5nVmVyaWZpZWQiLCJkZWZpbmVkIiwiZGVmaW5lZEZyb21EZWZpbmluZ05vZGUiLCJ0ZXJtTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZURlZmluZWQiLCJpc1ZhcmlhYmxlRGVmaW5lZCIsInRlcm1zIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm0iLCJ0ZXJtR3JvdW5kZWQiLCJpc1Rlcm1Hcm91bmRlZCIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic2Vjb25kQ2hpbGROb2RlIiwic2Vjb25kIiwidGVybWluYWxOb2RlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJERUZJTkVEIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXdCQTs7OzJEQVREO3lCQUVDO3FCQUNFO3FCQUNJOzs7Ozs7QUFFOUIsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUMxQkMsb0JBQW9CRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXJCLFNBQVNGLGVBQWVJLFlBQVksRUFBRUMsWUFBWSxFQUFFQyxPQUFPO0lBQ3hFLElBQUlDLG1CQUFtQjtJQUV2QixJQUFNQyxVQUFVQyx3QkFBd0JKLGVBQ2xDSyxXQUFXVCxjQUFjRyxlQUN6Qk8sZUFBZVIsa0JBQWtCQztJQUV2QyxJQUFJLE9BQU87SUFDVCxHQUFHO0lBQ0wsT0FBTyxJQUFJTyxpQkFBaUIsTUFBTTtRQUNoQyxJQUFNQyxXQUFXTixRQUFRTywwQkFBMEIsQ0FBQ0Y7UUFFcEQsSUFBSUMsYUFBYSxNQUFNO1lBQ3JCLElBQU1FLGtCQUFrQlIsUUFBUVMsaUJBQWlCLENBQUNIO1lBRWxELElBQUlKLFNBQVM7Z0JBQ1gsSUFBSU0saUJBQWlCO29CQUNuQlAsbUJBQW1CO2dCQUNyQjtZQUNGO1lBRUEsSUFBSSxDQUFDQyxTQUFTO2dCQUNaLElBQUksQ0FBQ00saUJBQWlCO29CQUNwQlAsbUJBQW1CO2dCQUNyQjtZQUNGO1FBQ0Y7SUFDRixPQUFPLElBQUlHLGFBQWEsTUFBTTtRQUM1QixJQUFNTSxRQUFRLEVBQUUsRUFDVkMsZUFBZUMsSUFBQUEsYUFBVSxFQUFDUixVQUFVTSxPQUFPVixTQUFTO1lBQ2xELElBQUlhO1lBRUosSUFBTUMsWUFBWUMsSUFBQUEsWUFBSyxFQUFDTCxRQUNsQk0sT0FBT0YsV0FDUEcsZUFBZWpCLFFBQVFrQixjQUFjLENBQUNGO1lBRTVDLElBQUlkLFNBQVM7Z0JBQ1gsSUFBSWUsY0FBYztvQkFDaEJKLGdCQUFnQjtnQkFDbEI7WUFDRjtZQUVBLElBQUksQ0FBQ1gsU0FBUztnQkFDWixJQUFJLENBQUNlLGNBQWM7b0JBQ2pCSixnQkFBZ0I7Z0JBQ2xCO1lBQ0Y7WUFFQSxPQUFPQTtRQUNUO1FBRU5aLG1CQUFtQlUsY0FBZSxHQUFHO0lBRXZDO0lBRUEsT0FBT1Y7QUFDVDtBQUVBLFNBQVNFLHdCQUF3QkosWUFBWTtJQUMzQyxJQUFNb0IsYUFBYXBCLGFBQWFxQixhQUFhLElBQ3ZDQyxrQkFBa0JDLElBQUFBLGFBQU0sRUFBQ0gsYUFDekJJLGVBQWVGLGlCQUNmRyxVQUFVRCxhQUFhRSxVQUFVLElBQ2pDdkIsVUFBV3NCLFlBQVlFLGtCQUFPO0lBRXBDLE9BQU94QjtBQUNUIn0=
|
package/package.json
CHANGED
package/src/context/file.js
CHANGED
|
@@ -395,6 +395,12 @@ export default class FileContext {
|
|
|
395
395
|
return termGrounded;
|
|
396
396
|
}
|
|
397
397
|
|
|
398
|
+
isVariableDefined(variable) {
|
|
399
|
+
const variableDefined = false; ///
|
|
400
|
+
|
|
401
|
+
return variableDefined;
|
|
402
|
+
}
|
|
403
|
+
|
|
398
404
|
isTypePresentByTypeName(typeName) {
|
|
399
405
|
const type = this.findTypeByTypeName(typeName),
|
|
400
406
|
typePresent = (type !== null);
|
package/src/context/local.js
CHANGED
|
@@ -5,12 +5,7 @@ import Equivalence from "../equivalence";
|
|
|
5
5
|
import contextMixins from "../mixins/context";
|
|
6
6
|
|
|
7
7
|
import { last } from "../utilities/array";
|
|
8
|
-
import { mergeEquivalences,
|
|
9
|
-
separateEquivalences,
|
|
10
|
-
findEquivalenceByTerm,
|
|
11
|
-
compressDefinedVariables,
|
|
12
|
-
definedVariablesFromGroundedEquivalences,
|
|
13
|
-
implicitlyGroundedEquivalencesFromRemainingEquivalencesAndDefinedVariables } from "../utilities/equivalences";
|
|
8
|
+
import { mergeEquivalences, findEquivalenceByTerm, groundedTermsAndDefinedVariablesFromFromEquivalences } from "../utilities/equivalences";
|
|
14
9
|
|
|
15
10
|
class LocalContext {
|
|
16
11
|
constructor(context, variables, proofSteps, equivalences) {
|
|
@@ -90,49 +85,42 @@ class LocalContext {
|
|
|
90
85
|
return termType;
|
|
91
86
|
}
|
|
92
87
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
initiallyGroundedEquivalences = [];
|
|
99
|
-
|
|
100
|
-
separateEquivalences(equivalences, remainingEquivalences, initiallyGroundedEquivalences);
|
|
101
|
-
|
|
102
|
-
const initiallyGroundedEquivalencesLength = initiallyGroundedEquivalences.length;
|
|
103
|
-
|
|
104
|
-
if (initiallyGroundedEquivalencesLength > 0) {
|
|
105
|
-
let groundedEquivalences,
|
|
106
|
-
implicitlyGroundedEquivalences,
|
|
107
|
-
implicitlyGroundedEquivalencesLength;
|
|
108
|
-
|
|
109
|
-
const context = this,
|
|
110
|
-
definedVariables = [];
|
|
111
|
-
|
|
112
|
-
groundedEquivalences = initiallyGroundedEquivalences; ///
|
|
113
|
-
|
|
114
|
-
definedVariablesFromGroundedEquivalences(groundedEquivalences, definedVariables, context);
|
|
115
|
-
|
|
116
|
-
implicitlyGroundedEquivalences = implicitlyGroundedEquivalencesFromRemainingEquivalencesAndDefinedVariables(remainingEquivalences, definedVariables);
|
|
88
|
+
isTermGrounded(term) {
|
|
89
|
+
const context = this,
|
|
90
|
+
equivalences = this.getEquivalences(),
|
|
91
|
+
groundedTerms = [],
|
|
92
|
+
definedVariables = [];
|
|
117
93
|
|
|
118
|
-
|
|
94
|
+
groundedTermsAndDefinedVariablesFromFromEquivalences(equivalences, groundedTerms, definedVariables, context);
|
|
119
95
|
|
|
120
|
-
|
|
121
|
-
|
|
96
|
+
const termMatchesGroundedTerm = groundedTerms.some((groundedTerm) => {
|
|
97
|
+
const termMatchesGroundedTerm = term.match(groundedTerm);
|
|
122
98
|
|
|
123
|
-
|
|
99
|
+
if (termMatchesGroundedTerm) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
}),
|
|
103
|
+
termGrounded = termMatchesGroundedTerm; ///
|
|
124
104
|
|
|
125
|
-
|
|
105
|
+
return termGrounded;
|
|
106
|
+
}
|
|
126
107
|
|
|
127
|
-
|
|
128
|
-
|
|
108
|
+
isVariableDefined(variable) {
|
|
109
|
+
const context = this,
|
|
110
|
+
equivalences = this.getEquivalences(),
|
|
111
|
+
groundedTerms = [],
|
|
112
|
+
definedVariables = [];
|
|
129
113
|
|
|
130
|
-
|
|
114
|
+
groundedTermsAndDefinedVariablesFromFromEquivalences(equivalences, groundedTerms, definedVariables, context);
|
|
131
115
|
|
|
132
|
-
|
|
116
|
+
const variableMatchesDefinedVariable = definedVariables.some((definedVariable) => {
|
|
117
|
+
const variableMatchesDefinedVariable = variable.match(definedVariable);
|
|
133
118
|
|
|
134
|
-
|
|
135
|
-
|
|
119
|
+
if (variableMatchesDefinedVariable) {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
}),
|
|
123
|
+
variableDefined = variableMatchesDefinedVariable; ///
|
|
136
124
|
|
|
137
125
|
return variableDefined;
|
|
138
126
|
}
|