occam-verify-cli 0.0.990 → 0.0.991
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/resolve/complexSubstitutionAgainstSimpleSubstitution.js +29 -46
- package/lib/substitution/frameForMetavariable.js +31 -10
- package/lib/substitution/statementForMetavariable.js +1 -31
- package/lib/substitution/termForVariable.js +32 -15
- package/lib/substitution.js +8 -1
- package/lib/substitutions.js +8 -2
- package/lib/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +31 -0
- package/package.json +1 -1
- package/src/resolve/complexSubstitutionAgainstSimpleSubstitution.js +35 -59
- package/src/substitution/frameForMetavariable.js +42 -9
- package/src/substitution/statementForMetavariable.js +0 -44
- package/src/substitution/termForVariable.js +44 -15
- package/src/substitution.js +6 -0
- package/src/substitutions.js +3 -1
- package/src/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +27 -0
- package/lib/unify/complexSubstitutionStatementWithSimpleSubstitutionStatement.js +0 -31
- package/src/unify/complexSubstitutionStatementWithSimpleSubstitutionStatement.js +0 -27
package/lib/substitutions.js
CHANGED
|
@@ -73,11 +73,17 @@ var Substitutions = /*#__PURE__*/ function() {
|
|
|
73
73
|
return this.savedArray;
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
|
+
{
|
|
77
|
+
key: "getLength",
|
|
78
|
+
value: function getLength() {
|
|
79
|
+
return this.array.length;
|
|
80
|
+
}
|
|
81
|
+
},
|
|
76
82
|
{
|
|
77
83
|
key: "getFirstSubstitution",
|
|
78
84
|
value: function getFirstSubstitution() {
|
|
79
85
|
var firstSubstitution = null;
|
|
80
|
-
var length = this.
|
|
86
|
+
var length = this.getLength();
|
|
81
87
|
if (length > 0) {
|
|
82
88
|
firstSubstitution = (0, _array.first)(this.array);
|
|
83
89
|
}
|
|
@@ -340,4 +346,4 @@ var Substitutions = /*#__PURE__*/ function() {
|
|
|
340
346
|
return Substitutions;
|
|
341
347
|
}();
|
|
342
348
|
|
|
343
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdWJzdGl0dXRpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGZpbmQsIGZpcnN0LCBwcnVuZSwgY29tcHJlc3MsIHJpZ2h0RGlmZmVyZW5jZSB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWJzdGl0dXRpb25zIHtcbiAgY29uc3RydWN0b3IoYXJyYXksIHNhdmVkQXJyYXkpIHtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gICAgdGhpcy5zYXZlZEFycmF5ID0gc2F2ZWRBcnJheTtcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZ2V0U2F2ZWRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYXZlZEFycmF5O1xuICB9XG5cbiAgZ2V0Rmlyc3RTdWJzdGl0dXRpb24oKSB7XG4gICAgbGV0IGZpcnN0U3Vic3RpdHV0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuYXJyYXkubGVuZ3RoO1xuXG4gICAgaWYgKGxlbmd0aCA+IDApIHtcbiAgICAgIGZpcnN0U3Vic3RpdHV0aW9uID0gZmlyc3QodGhpcy5hcnJheSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpcnN0U3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlTm9kZXMoKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZXMgPSBbXTtcblxuICAgIHRoaXMuZm9yRWFjaFN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gc3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5vZGUoKTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZXMucHVzaChtZXRhdmFyaWFibGVOb2RlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbXByZXNzKG1ldGF2YXJpYWJsZU5vZGVzLCAobWV0YXZhcmlhYmxlTm9kZUEsIG1ldGF2YXJpYWJsZU5vZGVCKSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlQU1hdGNoZXNNZXRhdmFyaWFibGVOb2RlQiA9IG1ldGF2YXJpYWJsZU5vZGVBLm1hdGNoKG1ldGF2YXJpYWJsZU5vZGVCKTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZU5vZGVBTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVCKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZU5vZGVzO1xuICB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbihjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5hcnJheS5maW5kKGNhbGxiYWNrKSB8fCBudWxsOyB9ICAvLy9cblxuICBzb21lU3Vic3RpdHV0aW9uKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LnNvbWUoY2FsbGJhY2spOyB9XG5cbiAgZXZlcnlTdWJzdGl0dXRpb24oY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkuZXZlcnkoY2FsbGJhY2spOyB9XG5cbiAgZm9yRWFjaFN1YnN0aXR1dGlvbihjYWxsYmFjaykgeyB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbnMoY2FsbGJhY2spIHtcbiAgICBjb25zdCBhcnJheSA9IGZpbmQodGhpcy5hcnJheSwgY2FsbGJhY2spLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21BcnJheShhcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGZpbHRlclN1YnN0aXR1dGlvbihjYWxsYmFjaykge1xuICAgIGNvbnN0IGFycmF5ID0gdGhpcy5hcnJheS5maWx0ZXIoY2FsbGJhY2spLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21BcnJheShhcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGZpbmRTaW1wbGVTdWJzdGl0dXRpb24oKSB7XG4gICAgY29uc3Qgc2ltcGxlU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblNpbXBsZSA9IHN1YnN0aXR1dGlvbi5pc1NpbXBsZSgpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uU2ltcGxlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNpbXBsZVN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3QgdmFyaWFibGVOb2RlTWF0Y2hlcyA9IHN1YnN0aXR1dGlvbi5tYXRjaFZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgICBpZiAodmFyaWFibGVOb2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gIH1cblxuICBmaW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb24ubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9XG4gIGZpbmRTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gdGhpcy5maW5kU3Vic3RpdHV0aW9ucygoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcyA9IHN1YnN0aXR1dGlvbi5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZmluZFNpbXBsZVN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IHRoaXMuZmluZFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgc2ltcGxlU3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnMuZmlsdGVyU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblNpbXBsZSA9IHN1YnN0aXR1dGlvbi5pc1NpbXBsZSgpO1xuXG4gICAgICAgICAgICBpZiAoc3Vic3RpdHV0aW9uU2ltcGxlKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGZpcnN0U2ltcGxlU3Vic3RpdHV0aW9uID0gc2ltcGxlU3Vic3RpdHV0aW9ucy5nZXRGaXJzdFN1YnN0aXR1dGlvbigpLFxuICAgICAgICAgIHNpbXBsZVN1YnN0aXR1dGlvbiA9IGZpcnN0U2ltcGxlU3Vic3RpdHV0aW9uOyAvLy9cblxuICAgIHJldHVybiBzaW1wbGVTdWJzdGl0dXRpb247XG4gIH1cblxuICBmaW5kQ29tcGxleFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLmZpbmRTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIGNvbXBsZXhTdWJzdGl0dXRpb25zID0gc3Vic3RpdHV0aW9ucy5maWx0ZXJTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uQ29tcGxleCA9IHN1YnN0aXR1dGlvbi5pc0NvbXBsZXgoKTtcblxuICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbkNvbXBsZXgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gY29tcGxleFN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBmaW5kU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLmZpbmRTdWJzdGl0dXRpb25zKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlTWF0Y2ggPSBzdWJzdGl0dXRpb24ubWF0Y2hNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25Ob2RlKTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlTWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGZpbmRDb21wbGV4U3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25Ob2RlKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IHRoaXMuZmluZFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlKG1ldGF2YXJpYWJsZU5vZGUsIHN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICAgIGNvbXBsZXhTdWJzdGl0dXRpb25zID0gc3Vic3RpdHV0aW9ucy5maWx0ZXJTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uQ29tcGxleCA9IHN1YnN0aXR1dGlvbi5pc0NvbXBsZXgoKTtcblxuICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbkNvbXBsZXgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlyc3RDb21wbGV4U3Vic3RpdHV0aW9uID0gY29tcGxleFN1YnN0aXR1dGlvbnMuZ2V0Rmlyc3RTdWJzdGl0dXRpb24oKSxcbiAgICAgICAgICBjb21wbGV4U3Vic3RpdHV0aW9uID0gZmlyc3RDb21wbGV4U3Vic3RpdHV0aW9uOyAvLy9cblxuICAgIHJldHVybiBjb21wbGV4U3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgYWRkU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICAgIHRoaXMuYXJyYXkucHVzaChzdWJzdGl0dXRpb24pO1xuXG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uTm9kZSA9IHN1YnN0aXR1dGlvbi5nZXROb2RlKCksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uU3RyaW5nID0gc3Vic3RpdHV0aW9uLmFzU3RyaW5nKGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgbG9jYWxDb250ZXh0Qi50cmFjZShgQWRkZWQgdGhlICR7c3Vic3RpdHV0aW9uU3RyaW5nfSBzdWJzdGl0dXRpb24uYCwgc3Vic3RpdHV0aW9uTm9kZSk7XG4gIH1cblxuICByZW1vdmVTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uQSA9IHN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICBwcnVuZSh0aGlzLmFycmF5LCAoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25CID0gc3Vic3RpdHV0aW9uOyAvLy9cblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbkEgIT09IHN1YnN0aXR1dGlvbkIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWJzdGl0dXRpb25Ob2RlID0gc3Vic3RpdHV0aW9uLmdldE5vZGUoKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25TdHJpbmcgPSBzdWJzdGl0dXRpb24uYXNTdHJpbmcobG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICBsb2NhbENvbnRleHRCLnRyYWNlKGBSZW1vdmVkIHRoZSAke3N1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uLmAsIHN1YnN0aXR1dGlvbk5vZGUpO1xuICB9XG5cbiAgdW5pZnlXaXRoRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICAgIGNvbnN0IHVuaWZpZWRXaXRoRXF1aXZhbGVuY2VzID0gdGhpcy5ldmVyeVN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gdGhpcywgLy8vXG4gICAgICAgICAgICBzdWJzdGl0dXRpb25VbmlmaWVkV2l0aEVxdWl2YWxlbmNlID0gc3Vic3RpdHV0aW9uLnVuaWZ5V2l0aEVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXMsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uVW5pZmllZFdpdGhFcXVpdmFsZW5jZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB1bmlmaWVkV2l0aEVxdWl2YWxlbmNlcztcbiAgfVxuXG4gIGFyZVJlc29sdmVkKCkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5ldmVyeVN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25SZXNvbHZlZCA9IHN1YnN0aXR1dGlvbi5pc1Jlc29sdmVkKCk7XG5cbiAgICAgIHJldHVybiBzdWJzdGl0dXRpb25SZXNvbHZlZDtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXNvbHZlZDtcbiAgfVxuXG4gIHNuYXBzaG90KCkge1xuICAgIHRoaXMuc2F2ZWRBcnJheSA9IFtcbiAgICAgIC4uLnRoaXMuYXJyYXlcbiAgICBdO1xuICB9XG5cbiAgcm9sbGJhY2sobG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICAgIGNvbnN0IGFycmF5ID0gW1xuICAgICAgLi4udGhpcy5hcnJheVxuICAgIF07XG5cbiAgICByaWdodERpZmZlcmVuY2UodGhpcy5zYXZlZEFycmF5LCBhcnJheSk7XG5cbiAgICBhcnJheS5mb3JFYWNoKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIHRoaXMucmVtb3ZlU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFycmF5ID0gW1xuICAgICAgLi4udGhpcy5zYXZlZEFycmF5XG4gICAgXTtcblxuICAgIHRoaXMuc2F2ZWRBcnJheSA9IG51bGw7XG4gIH1cblxuICBjb250aW51ZSgpIHtcbiAgICB0aGlzLnNhdmVkQXJyYXkgPSBudWxsO1xuICB9XG5cbiAgYXNTdHJpbmcobG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICAgIGxldCBzdHJpbmcgPSB0aGlzLmFycmF5LnJlZHVjZSgoc3RyaW5nLCBzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblN0cmluZyA9IHN1YnN0aXR1dGlvbi5hc1N0cmluZyhsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgc3RyaW5nID0gKHN0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb25TdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgIGAke3N0cmluZ30sICR7c3Vic3RpdHV0aW9uU3RyaW5nfWA7XG5cbiAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICAgIGlmIChzdHJpbmcgIT09IEVNUFRZX1NUUklORykge1xuICAgICAgc3RyaW5nID0gYCAke3N0cmluZ31gO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbUFycmF5KGFycmF5KSB7XG4gICAgY29uc3Qgc2F2ZWRBcnJheSA9IFtdLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBuZXcgU3Vic3RpdHV0aW9ucyhhcnJheSwgc2F2ZWRBcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBhcnJheSA9IFtdLFxuICAgICAgICAgIHNhdmVkQXJyYXkgPSBudWxsLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBuZXcgU3Vic3RpdHV0aW9ucyhhcnJheSwgc2F2ZWRBcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlN1YnN0aXR1dGlvbnMiLCJhcnJheSIsInNhdmVkQXJyYXkiLCJnZXRBcnJheSIsImdldFNhdmVkQXJyYXkiLCJnZXRGaXJzdFN1YnN0aXR1dGlvbiIsImZpcnN0U3Vic3RpdHV0aW9uIiwibGVuZ3RoIiwiZmlyc3QiLCJnZXRNZXRhdmFyaWFibGVOb2RlcyIsIm1ldGF2YXJpYWJsZU5vZGVzIiwiZm9yRWFjaFN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZU5vZGUiLCJnZXRNZXRhdmFyaWFibGVOb2RlIiwicHVzaCIsImNvbXByZXNzIiwibWV0YXZhcmlhYmxlTm9kZUEiLCJtZXRhdmFyaWFibGVOb2RlQiIsIm1ldGF2YXJpYWJsZU5vZGVBTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVCIiwibWF0Y2giLCJmaW5kU3Vic3RpdHV0aW9uIiwiY2FsbGJhY2siLCJmaW5kIiwic29tZVN1YnN0aXR1dGlvbiIsInNvbWUiLCJldmVyeVN1YnN0aXR1dGlvbiIsImV2ZXJ5IiwiZm9yRWFjaCIsImZpbmRTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9ucyIsImZyb21BcnJheSIsImZpbHRlclN1YnN0aXR1dGlvbiIsImZpbHRlciIsImZpbmRTaW1wbGVTdWJzdGl0dXRpb24iLCJzaW1wbGVTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25TaW1wbGUiLCJpc1NpbXBsZSIsImZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZU1hdGNoZXMiLCJtYXRjaFZhcmlhYmxlTm9kZSIsImZpbmRTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsImZpbmRTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGVOb2RlIiwiZmluZFNpbXBsZVN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZSIsInNpbXBsZVN1YnN0aXR1dGlvbnMiLCJmaXJzdFNpbXBsZVN1YnN0aXR1dGlvbiIsImZpbmRDb21wbGV4U3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlTm9kZSIsImNvbXBsZXhTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9uQ29tcGxleCIsImlzQ29tcGxleCIsImZpbmRTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZSIsInN1YnN0aXR1dGlvbk5vZGUiLCJtZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZU1hdGNoIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZSIsImZpbmRDb21wbGV4U3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZSIsImZpcnN0Q29tcGxleFN1YnN0aXR1dGlvbiIsImNvbXBsZXhTdWJzdGl0dXRpb24iLCJhZGRTdWJzdGl0dXRpb24iLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsImdldE5vZGUiLCJzdWJzdGl0dXRpb25TdHJpbmciLCJhc1N0cmluZyIsInRyYWNlIiwicmVtb3ZlU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uQSIsInBydW5lIiwic3Vic3RpdHV0aW9uQiIsInVuaWZ5V2l0aEVxdWl2YWxlbmNlcyIsImVxdWl2YWxlbmNlcyIsInVuaWZpZWRXaXRoRXF1aXZhbGVuY2VzIiwic3Vic3RpdHV0aW9uVW5pZmllZFdpdGhFcXVpdmFsZW5jZSIsImFyZVJlc29sdmVkIiwicmVzb2x2ZWQiLCJzdWJzdGl0dXRpb25SZXNvbHZlZCIsImlzUmVzb2x2ZWQiLCJzbmFwc2hvdCIsInJvbGxiYWNrIiwicmlnaHREaWZmZXJlbmNlIiwiY29udGludWUiLCJzdHJpbmciLCJyZWR1Y2UiLCJFTVBUWV9TVFJJTkciLCJmcm9tTm90aGluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFLcUJBOzs7eUJBSFE7cUJBQ2lDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0MsSUFBQSxBQUFNQSw4QkFBTjthQUFNQSxjQUNQQyxLQUFLLEVBQUVDLFVBQVU7Z0NBRFZGO1FBRWpCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTs7a0JBSERGOztZQU1uQkcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixLQUFLO1lBQ25COzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixVQUFVO1lBQ3hCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDLG9CQUFvQjtnQkFFeEIsSUFBTUMsU0FBUyxJQUFJLENBQUNOLEtBQUssQ0FBQ00sTUFBTTtnQkFFaEMsSUFBSUEsU0FBUyxHQUFHO29CQUNkRCxvQkFBb0JFLElBQUFBLFlBQUssRUFBQyxJQUFJLENBQUNQLEtBQUs7Z0JBQ3RDO2dCQUVBLE9BQU9LO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsb0JBQW9CLEVBQUU7Z0JBRTVCLElBQUksQ0FBQ0MsbUJBQW1CLENBQUMsU0FBQ0M7b0JBQ3hCLElBQU1DLG1CQUFtQkQsYUFBYUUsbUJBQW1CO29CQUV6RCxJQUFJRCxxQkFBcUIsTUFBTTt3QkFDN0JILGtCQUFrQkssSUFBSSxDQUFDRjtvQkFDekI7Z0JBQ0Y7Z0JBRUFHLElBQUFBLGVBQVEsRUFBQ04sbUJBQW1CLFNBQUNPLG1CQUFtQkM7b0JBQzlDLElBQU1DLDRDQUE0Q0Ysa0JBQWtCRyxLQUFLLENBQUNGO29CQUUxRSxJQUFJQywyQ0FBMkM7d0JBQzdDLE9BQU87b0JBQ1Q7Z0JB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
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdWJzdGl0dXRpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGZpbmQsIGZpcnN0LCBwcnVuZSwgY29tcHJlc3MsIHJpZ2h0RGlmZmVyZW5jZSB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWJzdGl0dXRpb25zIHtcbiAgY29uc3RydWN0b3IoYXJyYXksIHNhdmVkQXJyYXkpIHtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gICAgdGhpcy5zYXZlZEFycmF5ID0gc2F2ZWRBcnJheTtcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZ2V0U2F2ZWRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYXZlZEFycmF5O1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkgeyByZXR1cm4gdGhpcy5hcnJheS5sZW5ndGg7IH1cblxuICBnZXRGaXJzdFN1YnN0aXR1dGlvbigpIHtcbiAgICBsZXQgZmlyc3RTdWJzdGl0dXRpb24gPSBudWxsO1xuXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmIChsZW5ndGggPiAwKSB7XG4gICAgICBmaXJzdFN1YnN0aXR1dGlvbiA9IGZpcnN0KHRoaXMuYXJyYXkpO1xuICAgIH1cblxuICAgIHJldHVybiBmaXJzdFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZU5vZGVzKCkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVzID0gW107XG5cbiAgICB0aGlzLmZvckVhY2hTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IHN1YnN0aXR1dGlvbi5nZXRNZXRhdmFyaWFibGVOb2RlKCk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGVzLnB1c2gobWV0YXZhcmlhYmxlTm9kZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb21wcmVzcyhtZXRhdmFyaWFibGVOb2RlcywgKG1ldGF2YXJpYWJsZU5vZGVBLCBtZXRhdmFyaWFibGVOb2RlQikgPT4ge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZUFNYXRjaGVzTWV0YXZhcmlhYmxlTm9kZUIgPSBtZXRhdmFyaWFibGVOb2RlQS5tYXRjaChtZXRhdmFyaWFibGVOb2RlQik7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVOb2RlQU1hdGNoZXNNZXRhdmFyaWFibGVOb2RlQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVOb2RlcztcbiAgfVxuXG4gIGZpbmRTdWJzdGl0dXRpb24oY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkuZmluZChjYWxsYmFjaykgfHwgbnVsbDsgfSAgLy8vXG5cbiAgc29tZVN1YnN0aXR1dGlvbihjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5hcnJheS5zb21lKGNhbGxiYWNrKTsgfVxuXG4gIGV2ZXJ5U3Vic3RpdHV0aW9uKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LmV2ZXJ5KGNhbGxiYWNrKTsgfVxuXG4gIGZvckVhY2hTdWJzdGl0dXRpb24oY2FsbGJhY2spIHsgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTsgfVxuXG4gIGZpbmRTdWJzdGl0dXRpb25zKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYXJyYXkgPSBmaW5kKHRoaXMuYXJyYXksIGNhbGxiYWNrKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zID0gU3Vic3RpdHV0aW9ucy5mcm9tQXJyYXkoYXJyYXkpO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBmaWx0ZXJTdWJzdGl0dXRpb24oY2FsbGJhY2spIHtcbiAgICBjb25zdCBhcnJheSA9IHRoaXMuYXJyYXkuZmlsdGVyKGNhbGxiYWNrKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zID0gU3Vic3RpdHV0aW9ucy5mcm9tQXJyYXkoYXJyYXkpO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBmaW5kU2ltcGxlU3Vic3RpdHV0aW9uKCkge1xuICAgIGNvbnN0IHNpbXBsZVN1YnN0aXR1dGlvbiA9IHRoaXMuZmluZFN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25TaW1wbGUgPSBzdWJzdGl0dXRpb24uaXNTaW1wbGUoKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvblNpbXBsZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzaW1wbGVTdWJzdGl0dXRpb247XG4gIH1cblxuICBmaW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb24ubWF0Y2hWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzID0gc3Vic3RpdHV0aW9uLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbjtcbiAgfVxuICBmaW5kU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IHRoaXMuZmluZFN1YnN0aXR1dGlvbnMoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb24ubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGZpbmRTaW1wbGVTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLmZpbmRTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHNpbXBsZVN1YnN0aXR1dGlvbnMgPSBzdWJzdGl0dXRpb25zLmZpbHRlclN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25TaW1wbGUgPSBzdWJzdGl0dXRpb24uaXNTaW1wbGUoKTtcblxuICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvblNpbXBsZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBmaXJzdFNpbXBsZVN1YnN0aXR1dGlvbiA9IHNpbXBsZVN1YnN0aXR1dGlvbnMuZ2V0Rmlyc3RTdWJzdGl0dXRpb24oKSxcbiAgICAgICAgICBzaW1wbGVTdWJzdGl0dXRpb24gPSBmaXJzdFNpbXBsZVN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICByZXR1cm4gc2ltcGxlU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZENvbXBsZXhTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBjb21wbGV4U3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnMuZmlsdGVyU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbkNvbXBsZXggPSBzdWJzdGl0dXRpb24uaXNDb21wbGV4KCk7XG5cbiAgICAgICAgICAgIGlmIChzdWJzdGl0dXRpb25Db21wbGV4KSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbXBsZXhTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlKG1ldGF2YXJpYWJsZU5vZGUsIHN1YnN0aXR1dGlvbk5vZGUpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gdGhpcy5maW5kU3Vic3RpdHV0aW9ucygoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZU1hdGNoID0gc3Vic3RpdHV0aW9uLm1hdGNoTWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9uTm9kZSk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZU1hdGNoKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBmaW5kQ29tcGxleFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLmZpbmRTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25Ob2RlKSxcbiAgICAgICAgICBjb21wbGV4U3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnMuZmlsdGVyU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbkNvbXBsZXggPSBzdWJzdGl0dXRpb24uaXNDb21wbGV4KCk7XG5cbiAgICAgICAgICAgIGlmIChzdWJzdGl0dXRpb25Db21wbGV4KSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGZpcnN0Q29tcGxleFN1YnN0aXR1dGlvbiA9IGNvbXBsZXhTdWJzdGl0dXRpb25zLmdldEZpcnN0U3Vic3RpdHV0aW9uKCksXG4gICAgICAgICAgY29tcGxleFN1YnN0aXR1dGlvbiA9IGZpcnN0Q29tcGxleFN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICByZXR1cm4gY29tcGxleFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgICB0aGlzLmFycmF5LnB1c2goc3Vic3RpdHV0aW9uKTtcblxuICAgIGNvbnN0IHN1YnN0aXR1dGlvbk5vZGUgPSBzdWJzdGl0dXRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvblN0cmluZyA9IHN1YnN0aXR1dGlvbi5hc1N0cmluZyhsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgIGxvY2FsQ29udGV4dEIudHJhY2UoYEFkZGVkIHRoZSAke3N1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uLmAsIHN1YnN0aXR1dGlvbk5vZGUpO1xuICB9XG5cbiAgcmVtb3ZlU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbkEgPSBzdWJzdGl0dXRpb247IC8vL1xuXG4gICAgcHJ1bmUodGhpcy5hcnJheSwgKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uQiA9IHN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25BICE9PSBzdWJzdGl0dXRpb25CKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uTm9kZSA9IHN1YnN0aXR1dGlvbi5nZXROb2RlKCksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uU3RyaW5nID0gc3Vic3RpdHV0aW9uLmFzU3RyaW5nKGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgbG9jYWxDb250ZXh0Qi50cmFjZShgUmVtb3ZlZCB0aGUgJHtzdWJzdGl0dXRpb25TdHJpbmd9IHN1YnN0aXR1dGlvbi5gLCBzdWJzdGl0dXRpb25Ob2RlKTtcbiAgfVxuXG4gIHVuaWZ5V2l0aEVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgICBjb25zdCB1bmlmaWVkV2l0aEVxdWl2YWxlbmNlcyA9IHRoaXMuZXZlcnlTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IHRoaXMsIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uVW5pZmllZFdpdGhFcXVpdmFsZW5jZSA9IHN1YnN0aXR1dGlvbi51bmlmeVdpdGhFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvblVuaWZpZWRXaXRoRXF1aXZhbGVuY2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdW5pZmllZFdpdGhFcXVpdmFsZW5jZXM7XG4gIH1cblxuICBhcmVSZXNvbHZlZCgpIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHRoaXMuZXZlcnlTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uUmVzb2x2ZWQgPSBzdWJzdGl0dXRpb24uaXNSZXNvbHZlZCgpO1xuXG4gICAgICByZXR1cm4gc3Vic3RpdHV0aW9uUmVzb2x2ZWQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gIH1cblxuICBzbmFwc2hvdCgpIHtcbiAgICB0aGlzLnNhdmVkQXJyYXkgPSBbXG4gICAgICAuLi50aGlzLmFycmF5XG4gICAgXTtcbiAgfVxuXG4gIHJvbGxiYWNrKGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgICBjb25zdCBhcnJheSA9IFtcbiAgICAgIC4uLnRoaXMuYXJyYXlcbiAgICBdO1xuXG4gICAgcmlnaHREaWZmZXJlbmNlKHRoaXMuc2F2ZWRBcnJheSwgYXJyYXkpO1xuXG4gICAgYXJyYXkuZm9yRWFjaCgoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICB0aGlzLnJlbW92ZVN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hcnJheSA9IFtcbiAgICAgIC4uLnRoaXMuc2F2ZWRBcnJheVxuICAgIF07XG5cbiAgICB0aGlzLnNhdmVkQXJyYXkgPSBudWxsO1xuICB9XG5cbiAgY29udGludWUoKSB7XG4gICAgdGhpcy5zYXZlZEFycmF5ID0gbnVsbDtcbiAgfVxuXG4gIGFzU3RyaW5nKGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgICBsZXQgc3RyaW5nID0gdGhpcy5hcnJheS5yZWR1Y2UoKHN0cmluZywgc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25TdHJpbmcgPSBzdWJzdGl0dXRpb24uYXNTdHJpbmcobG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICAgIHN0cmluZyA9IChzdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uU3RyaW5nIDpcbiAgICAgICAgICAgICAgICAgICBgJHtzdHJpbmd9LCAke3N1YnN0aXR1dGlvblN0cmluZ31gO1xuXG4gICAgICByZXR1cm4gc3RyaW5nO1xuICAgIH0sIEVNUFRZX1NUUklORyk7XG5cbiAgICBpZiAoc3RyaW5nICE9PSBFTVBUWV9TVFJJTkcpIHtcbiAgICAgIHN0cmluZyA9IGAgJHtzdHJpbmd9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21BcnJheShhcnJheSkge1xuICAgIGNvbnN0IHNhdmVkQXJyYXkgPSBbXSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zID0gbmV3IFN1YnN0aXR1dGlvbnMoYXJyYXksIHNhdmVkQXJyYXkpO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgYXJyYXkgPSBbXSxcbiAgICAgICAgICBzYXZlZEFycmF5ID0gbnVsbCxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zID0gbmV3IFN1YnN0aXR1dGlvbnMoYXJyYXksIHNhdmVkQXJyYXkpO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnM7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTdWJzdGl0dXRpb25zIiwiYXJyYXkiLCJzYXZlZEFycmF5IiwiZ2V0QXJyYXkiLCJnZXRTYXZlZEFycmF5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiZ2V0Rmlyc3RTdWJzdGl0dXRpb24iLCJmaXJzdFN1YnN0aXR1dGlvbiIsImZpcnN0IiwiZ2V0TWV0YXZhcmlhYmxlTm9kZXMiLCJtZXRhdmFyaWFibGVOb2RlcyIsImZvckVhY2hTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJtZXRhdmFyaWFibGVOb2RlIiwiZ2V0TWV0YXZhcmlhYmxlTm9kZSIsInB1c2giLCJjb21wcmVzcyIsIm1ldGF2YXJpYWJsZU5vZGVBIiwibWV0YXZhcmlhYmxlTm9kZUIiLCJtZXRhdmFyaWFibGVOb2RlQU1hdGNoZXNNZXRhdmFyaWFibGVOb2RlQiIsIm1hdGNoIiwiZmluZFN1YnN0aXR1dGlvbiIsImNhbGxiYWNrIiwiZmluZCIsInNvbWVTdWJzdGl0dXRpb24iLCJzb21lIiwiZXZlcnlTdWJzdGl0dXRpb24iLCJldmVyeSIsImZvckVhY2giLCJmaW5kU3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbnMiLCJmcm9tQXJyYXkiLCJmaWx0ZXJTdWJzdGl0dXRpb24iLCJmaWx0ZXIiLCJmaW5kU2ltcGxlU3Vic3RpdHV0aW9uIiwic2ltcGxlU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uU2ltcGxlIiwiaXNTaW1wbGUiLCJmaW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5vZGVNYXRjaGVzIiwibWF0Y2hWYXJpYWJsZU5vZGUiLCJmaW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlTm9kZSIsImZpbmRTaW1wbGVTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5vZGUiLCJzaW1wbGVTdWJzdGl0dXRpb25zIiwiZmlyc3RTaW1wbGVTdWJzdGl0dXRpb24iLCJmaW5kQ29tcGxleFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZU5vZGUiLCJjb21wbGV4U3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbkNvbXBsZXgiLCJpc0NvbXBsZXgiLCJmaW5kU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb25Ob2RlIiwibWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGVNYXRjaCIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUiLCJmaW5kQ29tcGxleFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUiLCJmaXJzdENvbXBsZXhTdWJzdGl0dXRpb24iLCJjb21wbGV4U3Vic3RpdHV0aW9uIiwiYWRkU3Vic3RpdHV0aW9uIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJnZXROb2RlIiwic3Vic3RpdHV0aW9uU3RyaW5nIiwiYXNTdHJpbmciLCJ0cmFjZSIsInJlbW92ZVN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbkEiLCJwcnVuZSIsInN1YnN0aXR1dGlvbkIiLCJ1bmlmeVdpdGhFcXVpdmFsZW5jZXMiLCJlcXVpdmFsZW5jZXMiLCJ1bmlmaWVkV2l0aEVxdWl2YWxlbmNlcyIsInN1YnN0aXR1dGlvblVuaWZpZWRXaXRoRXF1aXZhbGVuY2UiLCJhcmVSZXNvbHZlZCIsInJlc29sdmVkIiwic3Vic3RpdHV0aW9uUmVzb2x2ZWQiLCJpc1Jlc29sdmVkIiwic25hcHNob3QiLCJyb2xsYmFjayIsInJpZ2h0RGlmZmVyZW5jZSIsImNvbnRpbnVlIiwic3RyaW5nIiwicmVkdWNlIiwiRU1QVFlfU1RSSU5HIiwiZnJvbU5vdGhpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBS3FCQTs7O3lCQUhRO3FCQUNpQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9DLElBQUEsQUFBTUEsOEJBQU47YUFBTUEsY0FDUEMsS0FBSyxFQUFFQyxVQUFVO2dDQURWRjtRQUVqQixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFVBQVUsR0FBR0E7O2tCQUhERjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsS0FBSztZQUNuQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsVUFBVTtZQUN4Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFBYyxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxNQUFNO1lBQUU7OztZQUV4Q0MsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDLG9CQUFvQjtnQkFFeEIsSUFBTUYsU0FBUyxJQUFJLENBQUNELFNBQVM7Z0JBRTdCLElBQUlDLFNBQVMsR0FBRztvQkFDZEUsb0JBQW9CQyxJQUFBQSxZQUFLLEVBQUMsSUFBSSxDQUFDUixLQUFLO2dCQUN0QztnQkFFQSxPQUFPTztZQUNUOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLG9CQUFvQixFQUFFO2dCQUU1QixJQUFJLENBQUNDLG1CQUFtQixDQUFDLFNBQUNDO29CQUN4QixJQUFNQyxtQkFBbUJELGFBQWFFLG1CQUFtQjtvQkFFekQsSUFBSUQscUJBQXFCLE1BQU07d0JBQzdCSCxrQkFBa0JLLElBQUksQ0FBQ0Y7b0JBQ3pCO2dCQUNGO2dCQUVBRyxJ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
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/metaLevel"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement(simpleSubstitutionStatementNode, complexSubstitutionStatementNode, substitutions, localContextA, localContextB) {
|
|
18
|
+
var simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement;
|
|
19
|
+
var simpleSubstitutionStatementString = localContextB.nodeAsString(simpleSubstitutionStatementNode), complexSubstitutionStatementString = localContextB.nodeAsString(complexSubstitutionStatementNode);
|
|
20
|
+
localContextB.trace("Unifying the simple substitution's '".concat(simpleSubstitutionStatementString, "' statement with the complex substitution's '").concat(complexSubstitutionStatementString, "' statement..."), simpleSubstitutionStatementNode);
|
|
21
|
+
var nodeA = complexSubstitutionStatementNode, nodeB = simpleSubstitutionStatementNode; ///
|
|
22
|
+
localContextA = localContextB; ///
|
|
23
|
+
var unified = _metaLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
|
|
24
|
+
simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement = unified; ///
|
|
25
|
+
if (simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement) {
|
|
26
|
+
localContextB.trace("...unified the simple substitution's '".concat(simpleSubstitutionStatementString, "' statement with the complex substitution's '").concat(complexSubstitutionStatementString, "' statement."), simpleSubstitutionStatementNode);
|
|
27
|
+
}
|
|
28
|
+
return simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGFMZXZlbFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YUxldmVsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5Q29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFdpdGhTaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnQoc2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSwgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgbGV0IHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudDtcblxuICBjb25zdCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHRCLm5vZGVBc1N0cmluZyhzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dEIubm9kZUFzU3RyaW5nKGNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHRCLnRyYWNlKGBVbmlmeWluZyB0aGUgc2ltcGxlIHN1YnN0aXR1dGlvbidzICcke3NpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBjb21wbGV4IHN1YnN0aXR1dGlvbidzICcke2NvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gLCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBub2RlQSA9IGNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIG5vZGVCID0gc2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZTsgIC8vL1xuXG4gIGxvY2FsQ29udGV4dEEgPSBsb2NhbENvbnRleHRCOyAgLy8vXG5cbiAgY29uc3QgdW5pZmllZCA9IG1ldGFMZXZlbFVuaWZpZXIudW5pZnkobm9kZUEsIG5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRVbmlmaWVkV2l0aENvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnQgPSB1bmlmaWVkOyAgLy8vXG5cbiAgaWYgKHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudCkge1xuICAgIGxvY2FsQ29udGV4dEIudHJhY2UoYC4uLnVuaWZpZWQgdGhlIHNpbXBsZSBzdWJzdGl0dXRpb24ncyAnJHtzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgY29tcGxleCBzdWJzdGl0dXRpb24ncyAnJHtjb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50LmAsIHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudDtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeUNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnRXaXRoU2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Iiwic2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSIsImNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dEEiLCJsb2NhbENvbnRleHRCIiwic2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50VW5pZmllZFdpdGhDb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50Iiwic2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZyIsInRyYWNlIiwibm9kZUEiLCJub2RlQiIsInVuaWZpZWQiLCJtZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBd0JBOzs7Z0VBRks7Ozs7OztBQUVkLFNBQVNBLGlFQUFpRUMsK0JBQStCLEVBQUVDLGdDQUFnQyxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUNyTSxJQUFJQztJQUVKLElBQU1DLG9DQUFvQ0YsY0FBY0csWUFBWSxDQUFDUCxrQ0FDL0RRLHFDQUFxQ0osY0FBY0csWUFBWSxDQUFDTjtJQUV0RUcsY0FBY0ssS0FBSyxDQUFDLEFBQUMsdUNBQXVIRCxPQUFqRkYsbUNBQWtDLGlEQUFrRixPQUFuQ0Usb0NBQW1DLG1CQUFpQlI7SUFFaE0sSUFBTVUsUUFBUVQsa0NBQ1JVLFFBQVFYLGlDQUFrQyxHQUFHO0lBRW5ERyxnQkFBZ0JDLGVBQWdCLEdBQUc7SUFFbkMsSUFBTVEsVUFBVUMsa0JBQWdCLENBQUNDLEtBQUssQ0FBQ0osT0FBT0MsT0FBT1QsZUFBZUMsZUFBZUM7SUFFbkZDLHFFQUFxRU8sU0FBVSxHQUFHO0lBRWxGLElBQUlQLG9FQUFvRTtRQUN0RUQsY0FBY0ssS0FBSyxDQUFDLEFBQUMseUNBQXlIRCxPQUFqRkYsbUNBQWtDLGlEQUFrRixPQUFuQ0Usb0NBQW1DLGlCQUFlUjtJQUNsTTtJQUVBLE9BQU9LO0FBQ1QifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import Substitutions from "../substitutions";
|
|
4
|
-
import unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement from "../unify/
|
|
4
|
+
import unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement from "../unify/simpleSubstitutionStatementWithComplexSubstitutionStatement";
|
|
5
5
|
|
|
6
6
|
export default function resolveComplexSubstitutionAgainstSimpleSubstitution(complexSubstitution, simpleSubstitution, substitutions, localContextA, localContextB) {
|
|
7
7
|
let complexSubstitutionResolvedAgainstSimpleSubstitution = false;
|
|
@@ -12,52 +12,20 @@ export default function resolveComplexSubstitutionAgainstSimpleSubstitution(comp
|
|
|
12
12
|
|
|
13
13
|
localContextB.trace(`Resolving the complex ${complexSubstitutionString} substitution against the simple ${simpleSubstitutionString} substitution...`, statementNode);
|
|
14
14
|
|
|
15
|
-
const transformedSubstitution =
|
|
15
|
+
const transformedSubstitution = transformedSubstitutionFromComplexSubstitution(complexSubstitution, substitutions, localContextA, localContextB);
|
|
16
16
|
|
|
17
17
|
if (transformedSubstitution !== null) {
|
|
18
|
-
const
|
|
19
|
-
metavariableNode = transformedSubstitution.getMetavariableNode();
|
|
18
|
+
const substitution = substitutionFromComplexSubstitutionAndAndSimpleSubstitution(complexSubstitution, simpleSubstitution, localContextA, localContextB);
|
|
20
19
|
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const substitution = substitutions.findSubstitutionByVariableNode(variableNode);
|
|
20
|
+
if (substitution !== null) {
|
|
21
|
+
const substitutionString = substitution.asString(localContextB, localContextB),
|
|
22
|
+
transformedSubstitutionString = transformedSubstitution.asString(localContextB, localContextB);
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
substitutions.addSubstitution(transformedSubstitution, localContextA, localContextB);
|
|
24
|
+
localContextB.trace(`Equating the ${substitutionString} substitution to the transformed ${transformedSubstitutionString} substitution...`, statementNode);
|
|
28
25
|
|
|
29
|
-
|
|
26
|
+
const substitutionEqualToTransformedSubstitution = substitution.isEqualTo(transformedSubstitution);
|
|
30
27
|
|
|
31
|
-
|
|
32
|
-
} else {
|
|
33
|
-
const termNode = transformedSubstitution.getTermNode(),
|
|
34
|
-
termNodeMatches = substitution.matchTermNode(termNode);
|
|
35
|
-
|
|
36
|
-
if (termNodeMatches) {
|
|
37
|
-
substitutions.removeSubstitution(complexSubstitution, localContextA, localContextB);
|
|
38
|
-
|
|
39
|
-
complexSubstitutionResolvedAgainstSimpleSubstitution = true;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
} else if (metavariableNode !== null) {
|
|
43
|
-
const substitution = substitutions.findSubstitutionByMetavariableNode(metavariableNode);
|
|
44
|
-
|
|
45
|
-
if (substitution === null) {
|
|
46
|
-
substitutions.addSubstitution(transformedSubstitution, localContextA, localContextB);
|
|
47
|
-
|
|
48
|
-
substitutions.removeSubstitution(complexSubstitution, localContextA, localContextB);
|
|
49
|
-
|
|
50
|
-
complexSubstitutionResolvedAgainstSimpleSubstitution = true;
|
|
51
|
-
} else {
|
|
52
|
-
const frameNode = transformedSubstitution.getFrameNode(),
|
|
53
|
-
frameNodeMatches = substitution.matchFrameNode(frameNode);
|
|
54
|
-
|
|
55
|
-
if (frameNodeMatches) {
|
|
56
|
-
substitutions.removeSubstitution(complexSubstitution, localContextA, localContextB);
|
|
57
|
-
|
|
58
|
-
complexSubstitutionResolvedAgainstSimpleSubstitution = true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
28
|
+
complexSubstitutionResolvedAgainstSimpleSubstitution = substitutionEqualToTransformedSubstitution; ///
|
|
61
29
|
}
|
|
62
30
|
}
|
|
63
31
|
|
|
@@ -68,36 +36,44 @@ export default function resolveComplexSubstitutionAgainstSimpleSubstitution(comp
|
|
|
68
36
|
return complexSubstitutionResolvedAgainstSimpleSubstitution;
|
|
69
37
|
}
|
|
70
38
|
|
|
71
|
-
function
|
|
72
|
-
|
|
39
|
+
function transformedSubstitutionFromComplexSubstitution(complexSubstitution, substitutions, localContextA, localContextB) {
|
|
40
|
+
const substitution = complexSubstitution.getSubstitution(),
|
|
41
|
+
substitutionString = substitution.asString(localContextA, localContextA),
|
|
42
|
+
complexSubstitutionStatementNode = complexSubstitution.getStatementNode();
|
|
73
43
|
|
|
74
|
-
|
|
44
|
+
localContextB.trace(`Transforming the complex substitution's '${substitutionString}' substitution....`, complexSubstitutionStatementNode);
|
|
75
45
|
|
|
76
|
-
transformedSubstitution = substitution.transformed(substitutions);
|
|
46
|
+
const transformedSubstitution = substitution.transformed(substitutions);
|
|
77
47
|
|
|
78
48
|
if (transformedSubstitution !== null) {
|
|
79
|
-
|
|
49
|
+
const transformedSubstitutionString = transformedSubstitution.asString(localContextB, localContextB);
|
|
80
50
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
51
|
+
localContextB.debug(`Transformed the complex substitution's '${substitutionString}' substitution into the '${transformedSubstitutionString}' substitution.`, complexSubstitutionStatementNode);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return transformedSubstitution;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function substitutionFromComplexSubstitutionAndAndSimpleSubstitution(complexSubstitution, simpleSubstitution, localContextA, localContextB) {
|
|
58
|
+
let substitution = null;
|
|
85
59
|
|
|
86
|
-
|
|
60
|
+
const substitutions = Substitutions.fromNothing(), ///
|
|
61
|
+
simpleSubstitutionStatementNode = simpleSubstitution.getStatementNode(),
|
|
62
|
+
complexSubstitutionStatementNode = complexSubstitution.getStatementNode();
|
|
87
63
|
|
|
88
|
-
|
|
64
|
+
localContextA = localContextB; ///
|
|
89
65
|
|
|
90
|
-
|
|
91
|
-
const substitution = transformedSubstitution; ///
|
|
66
|
+
const simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement = unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement(complexSubstitutionStatementNode, simpleSubstitutionStatementNode, substitutions, localContextA, localContextB);
|
|
92
67
|
|
|
93
|
-
|
|
68
|
+
if (simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement) {
|
|
69
|
+
const substitutionsLength = substitutions.getLength();
|
|
94
70
|
|
|
95
|
-
|
|
96
|
-
|
|
71
|
+
if (substitutionsLength === 1) {
|
|
72
|
+
const firstSubstitution = substitutions.getFirstSubstitution();
|
|
97
73
|
|
|
98
|
-
|
|
74
|
+
substitution = firstSubstitution; ///
|
|
99
75
|
}
|
|
100
76
|
}
|
|
101
77
|
|
|
102
|
-
return
|
|
78
|
+
return substitution;
|
|
103
79
|
}
|
|
@@ -4,7 +4,7 @@ import Substitution from "../substitution";
|
|
|
4
4
|
|
|
5
5
|
import { nodeQuery } from "../utilities/query";
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const substitutionFrameNodeQuery = nodeQuery("/substitution/frame!"),
|
|
8
8
|
frameMetavariableNodeQuery = nodeQuery("/frame/metavariable!"),
|
|
9
9
|
substitutionMetavariableNodeQuery = nodeQuery("/substitution/metavariable!");
|
|
10
10
|
|
|
@@ -33,11 +33,12 @@ export default class FrameForMetavariableSubstitution extends Substitution {
|
|
|
33
33
|
transformed(substitutions) {
|
|
34
34
|
let transformedSubstitution = null;
|
|
35
35
|
|
|
36
|
-
const transformedFrameNode = transformFrameNode(this.frameNode, substitutions)
|
|
36
|
+
const transformedFrameNode = transformFrameNode(this.frameNode, substitutions),
|
|
37
|
+
transformedMetavariableNode = transformMetavariableNode(this.metavariableNode, substitutions);
|
|
37
38
|
|
|
38
|
-
if (transformedFrameNode !== null) {
|
|
39
|
+
if ((transformedFrameNode !== null) && (transformedMetavariableNode !== null)) {
|
|
39
40
|
const frameNode = transformedFrameNode, ///
|
|
40
|
-
metavariableNode =
|
|
41
|
+
metavariableNode = transformedMetavariableNode, ///
|
|
41
42
|
frameForMetavariableSubstitution = new FrameForMetavariableSubstitution(frameNode, metavariableNode);
|
|
42
43
|
|
|
43
44
|
transformedSubstitution = frameForMetavariableSubstitution; ///
|
|
@@ -46,6 +47,16 @@ export default class FrameForMetavariableSubstitution extends Substitution {
|
|
|
46
47
|
return transformedSubstitution;
|
|
47
48
|
}
|
|
48
49
|
|
|
50
|
+
isEqualTo(substitution) {
|
|
51
|
+
const frameNode = substitution.getFrameNode(),
|
|
52
|
+
metavariableNode = substitution.getMetavariableNode(),
|
|
53
|
+
frameNodeMatches = this.matchFrameNode(frameNode),
|
|
54
|
+
metavariableNodeMatches = this.matchMetavariableNode(metavariableNode),
|
|
55
|
+
equalTo = (frameNodeMatches && metavariableNodeMatches);
|
|
56
|
+
|
|
57
|
+
return equalTo;
|
|
58
|
+
}
|
|
59
|
+
|
|
49
60
|
matchFrameNode(frameNode) {
|
|
50
61
|
const frameNodeMatches = this.frameNode.match(frameNode);
|
|
51
62
|
|
|
@@ -71,11 +82,12 @@ export default class FrameForMetavariableSubstitution extends Substitution {
|
|
|
71
82
|
static fromSubstitutionNode(substitutionNode) {
|
|
72
83
|
let frameForMetavariableSubstitution = null;
|
|
73
84
|
|
|
74
|
-
|
|
85
|
+
const substitutionFrameNode = substitutionFrameNodeQuery(substitutionNode);
|
|
75
86
|
|
|
76
|
-
if (
|
|
87
|
+
if (substitutionFrameNode !== null) {
|
|
77
88
|
const substitutionMetavariableNode = substitutionMetavariableNodeQuery(substitutionNode),
|
|
78
|
-
metavariableNode = substitutionMetavariableNode
|
|
89
|
+
metavariableNode = substitutionMetavariableNode, ///
|
|
90
|
+
frameNode = substitutionFrameNode; ///
|
|
79
91
|
|
|
80
92
|
frameForMetavariableSubstitution = new FrameForMetavariableSubstitution(frameNode, metavariableNode);
|
|
81
93
|
}
|
|
@@ -99,9 +111,9 @@ function transformFrameNode(frameNode, substitutions) {
|
|
|
99
111
|
const metavariableNode = frameMetavariableNode; ///
|
|
100
112
|
|
|
101
113
|
substitutions.someSubstitution((substitution) => {
|
|
102
|
-
const
|
|
114
|
+
const metavariableNodeMatches = substitution.matchMetavariableNode(metavariableNode);
|
|
103
115
|
|
|
104
|
-
if (
|
|
116
|
+
if (metavariableNodeMatches) {
|
|
105
117
|
const frameNode = substitution.getFrameNode();
|
|
106
118
|
|
|
107
119
|
transformedFrameNode = frameNode; ////
|
|
@@ -113,3 +125,24 @@ function transformFrameNode(frameNode, substitutions) {
|
|
|
113
125
|
|
|
114
126
|
return transformedFrameNode;
|
|
115
127
|
}
|
|
128
|
+
|
|
129
|
+
function transformMetavariableNode(metavariableNode, substitutions) {
|
|
130
|
+
let transformedMetavariableNode = null;
|
|
131
|
+
|
|
132
|
+
substitutions.someSubstitution((substitution) => {
|
|
133
|
+
const metavariableNodeMatches = substitution.matchMetavariableNode(metavariableNode);
|
|
134
|
+
|
|
135
|
+
if (metavariableNodeMatches) {
|
|
136
|
+
const frameNode = substitution.getFrameNode(),
|
|
137
|
+
frameMetavariableNode = frameMetavariableNodeQuery(frameNode);
|
|
138
|
+
|
|
139
|
+
if (frameMetavariableNode !== null) {
|
|
140
|
+
transformedMetavariableNode = frameMetavariableNode; ///
|
|
141
|
+
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
return transformedMetavariableNode;
|
|
148
|
+
}
|
|
@@ -4,11 +4,8 @@ import Substitution from "../substitution";
|
|
|
4
4
|
import TermForVariableSubstitution from "../substitution/termForVariable";
|
|
5
5
|
import FrameForMetavariableSubstitution from "../substitution/frameForMetavariable";
|
|
6
6
|
|
|
7
|
-
import { nodeQuery } from "../utilities/query";
|
|
8
7
|
import { stripBracketsFromStatement } from "../utilities/brackets";
|
|
9
8
|
|
|
10
|
-
const statementMetavariableNodeQuery = nodeQuery("/statement/metavariable!");
|
|
11
|
-
|
|
12
9
|
export default class StatementForMetavariableSubstitution extends Substitution {
|
|
13
10
|
constructor(statementNode, metavariableNode, substitution) {
|
|
14
11
|
super();
|
|
@@ -42,23 +39,6 @@ export default class StatementForMetavariableSubstitution extends Substitution {
|
|
|
42
39
|
return simple;
|
|
43
40
|
}
|
|
44
41
|
|
|
45
|
-
transformed(substitutions) {
|
|
46
|
-
let transformedSubstitution = null;
|
|
47
|
-
|
|
48
|
-
const transformedStatementNode = transformStatementNode(this.statementNode, substitutions);
|
|
49
|
-
|
|
50
|
-
if (transformedStatementNode !== null) {
|
|
51
|
-
const substitution = null,
|
|
52
|
-
statementNode = transformedStatementNode, ///
|
|
53
|
-
metavariableNode = this.metavariableNode, ///
|
|
54
|
-
statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(statementNode, metavariableNode, substitution);
|
|
55
|
-
|
|
56
|
-
transformedSubstitution = statementForMetavariableSubstitution; ///
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return transformedSubstitution;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
42
|
matchStatementNode(statementNode) {
|
|
63
43
|
statementNode = stripBracketsFromStatement(statementNode); ///
|
|
64
44
|
|
|
@@ -132,27 +112,3 @@ function substitutionFromSubstitutionNode(substitutionNode) {
|
|
|
132
112
|
|
|
133
113
|
return substitution;
|
|
134
114
|
}
|
|
135
|
-
|
|
136
|
-
function transformStatementNode(statementNode, substitutions) {
|
|
137
|
-
let transformedStatementNode = null;
|
|
138
|
-
|
|
139
|
-
const statementMetavariableNode = statementMetavariableNodeQuery(statementNode);
|
|
140
|
-
|
|
141
|
-
if (statementMetavariableNode !== null) {
|
|
142
|
-
const metavariableNode = statementMetavariableNode; ///
|
|
143
|
-
|
|
144
|
-
substitutions.someSubstitution((substitution) => {
|
|
145
|
-
const substitutionMatchesVariableNode = substitution.matchMetavariableNode(metavariableNode);
|
|
146
|
-
|
|
147
|
-
if (substitutionMatchesVariableNode) {
|
|
148
|
-
const statementNode = substitution.getStatementNode();
|
|
149
|
-
|
|
150
|
-
transformedStatementNode = statementNode; ////
|
|
151
|
-
|
|
152
|
-
return true;
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return transformedStatementNode;
|
|
158
|
-
}
|
|
@@ -5,8 +5,9 @@ import Substitution from "../substitution";
|
|
|
5
5
|
import { nodeQuery } from "../utilities/query";
|
|
6
6
|
import { stripBracketsFromTerm } from "../utilities/brackets";
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const termVariableNodeQuery = nodeQuery("/term/variable!"),
|
|
9
|
+
substitutionTermmNodeQuery = nodeQuery("/substitution/term!"),
|
|
10
|
+
substitutionsVariableNodeQuery = nodeQuery("/substitution/variable!");
|
|
10
11
|
|
|
11
12
|
export default class TermForVariableSubstitution extends Substitution {
|
|
12
13
|
constructor(termNode, variableNode) {
|
|
@@ -33,11 +34,12 @@ export default class TermForVariableSubstitution extends Substitution {
|
|
|
33
34
|
transformed(substitutions) {
|
|
34
35
|
let transformedSubstitution = null;
|
|
35
36
|
|
|
36
|
-
const transformedTermNode = transformTermNode(this.termNode, substitutions)
|
|
37
|
+
const transformedTermNode = transformTermNode(this.termNode, substitutions),
|
|
38
|
+
transformedVariableNode = transformVariableNode(this.variableNode, substitutions);
|
|
37
39
|
|
|
38
|
-
if (transformedTermNode !== null) {
|
|
40
|
+
if ((transformedTermNode !== null) && (transformedVariableNode !== null)) {
|
|
39
41
|
const termNode = transformedTermNode, ///
|
|
40
|
-
variableNode =
|
|
42
|
+
variableNode = transformedVariableNode, ///
|
|
41
43
|
termForVariableSubstitution = new TermForVariableSubstitution(termNode, variableNode);
|
|
42
44
|
|
|
43
45
|
transformedSubstitution = termForVariableSubstitution; ///
|
|
@@ -46,14 +48,14 @@ export default class TermForVariableSubstitution extends Substitution {
|
|
|
46
48
|
return transformedSubstitution;
|
|
47
49
|
}
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
isEqualTo(substitution) {
|
|
50
52
|
const termNode = substitution.getTermNode(),
|
|
51
53
|
variableNode = substitution.getVariableNode(),
|
|
52
54
|
termNodeMatches = this.matchTermNode(termNode),
|
|
53
55
|
variableNodeMatches = this.matchVariableNode(variableNode),
|
|
54
|
-
|
|
56
|
+
equalTo = (termNodeMatches && variableNodeMatches);
|
|
55
57
|
|
|
56
|
-
return
|
|
58
|
+
return equalTo;
|
|
57
59
|
}
|
|
58
60
|
|
|
59
61
|
matchTermNode(termNode) {
|
|
@@ -65,9 +67,9 @@ export default class TermForVariableSubstitution extends Substitution {
|
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
matchVariableNode(variableNode) {
|
|
68
|
-
const
|
|
70
|
+
const variableNodeMatches = this.variableNode.match(variableNode);
|
|
69
71
|
|
|
70
|
-
return
|
|
72
|
+
return variableNodeMatches;
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
unifyWithEquivalence(equivalence, substitutions, localContextA, localContextB) {
|
|
@@ -99,12 +101,16 @@ export default class TermForVariableSubstitution extends Substitution {
|
|
|
99
101
|
static fromSubstitutionNode(substitutionNode) {
|
|
100
102
|
let termForVariableSubstitution = null;
|
|
101
103
|
|
|
102
|
-
let
|
|
103
|
-
|
|
104
|
+
let substitutionTermNode = substitutionTermmNodeQuery(substitutionNode);
|
|
105
|
+
|
|
106
|
+
if (substitutionTermNode !== null) {
|
|
107
|
+
let termNode = substitutionTermNode; ///
|
|
104
108
|
|
|
105
|
-
if (termNode !== null) {
|
|
106
109
|
termNode = stripBracketsFromTerm(termNode); ///
|
|
107
110
|
|
|
111
|
+
const substitutionVariableNode = substitutionsVariableNodeQuery(substitutionNode),
|
|
112
|
+
variableNode = substitutionVariableNode; ///
|
|
113
|
+
|
|
108
114
|
termForVariableSubstitution = new TermForVariableSubstitution(termNode, variableNode);
|
|
109
115
|
}
|
|
110
116
|
|
|
@@ -123,9 +129,11 @@ export default class TermForVariableSubstitution extends Substitution {
|
|
|
123
129
|
function transformTermNode(termNode, substitutions) {
|
|
124
130
|
let transformedTermNode = null;
|
|
125
131
|
|
|
126
|
-
const
|
|
132
|
+
const termVariableNode = termVariableNodeQuery(termNode);
|
|
133
|
+
|
|
134
|
+
if (termVariableNode !== null) {
|
|
135
|
+
const variableNode = termVariableNode; ///
|
|
127
136
|
|
|
128
|
-
if (variableNode !== null) {
|
|
129
137
|
substitutions.someSubstitution((substitution) => {
|
|
130
138
|
const substitutionMatchesVariableNode = substitution.matchVariableNode(variableNode);
|
|
131
139
|
|
|
@@ -141,3 +149,24 @@ function transformTermNode(termNode, substitutions) {
|
|
|
141
149
|
|
|
142
150
|
return transformedTermNode;
|
|
143
151
|
}
|
|
152
|
+
|
|
153
|
+
function transformVariableNode(variableNode, substitutions) {
|
|
154
|
+
let transformedVariableNode = null;
|
|
155
|
+
|
|
156
|
+
substitutions.someSubstitution((substitution) => {
|
|
157
|
+
const variableNodeMatches = substitution.matchVariableNode(variableNode);
|
|
158
|
+
|
|
159
|
+
if (variableNodeMatches) {
|
|
160
|
+
const termNode = substitution.getTermNode(),
|
|
161
|
+
termVariableNode = termVariableNodeQuery(termNode);
|
|
162
|
+
|
|
163
|
+
if (termVariableNode !== null) {
|
|
164
|
+
transformedVariableNode = termVariableNode; ///
|
|
165
|
+
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
return transformedVariableNode;
|
|
172
|
+
}
|
package/src/substitution.js
CHANGED
package/src/substitutions.js
CHANGED
|
@@ -17,10 +17,12 @@ export default class Substitutions {
|
|
|
17
17
|
return this.savedArray;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
getLength() { return this.array.length; }
|
|
21
|
+
|
|
20
22
|
getFirstSubstitution() {
|
|
21
23
|
let firstSubstitution = null;
|
|
22
24
|
|
|
23
|
-
const length = this.
|
|
25
|
+
const length = this.getLength();
|
|
24
26
|
|
|
25
27
|
if (length > 0) {
|
|
26
28
|
firstSubstitution = first(this.array);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import metaLevelUnifier from "../unifier/metaLevel";
|
|
4
|
+
|
|
5
|
+
export default function unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement(simpleSubstitutionStatementNode, complexSubstitutionStatementNode, substitutions, localContextA, localContextB) {
|
|
6
|
+
let simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement;
|
|
7
|
+
|
|
8
|
+
const simpleSubstitutionStatementString = localContextB.nodeAsString(simpleSubstitutionStatementNode),
|
|
9
|
+
complexSubstitutionStatementString = localContextB.nodeAsString(complexSubstitutionStatementNode);
|
|
10
|
+
|
|
11
|
+
localContextB.trace(`Unifying the simple substitution's '${simpleSubstitutionStatementString}' statement with the complex substitution's '${complexSubstitutionStatementString}' statement...`, simpleSubstitutionStatementNode);
|
|
12
|
+
|
|
13
|
+
const nodeA = complexSubstitutionStatementNode, ///
|
|
14
|
+
nodeB = simpleSubstitutionStatementNode; ///
|
|
15
|
+
|
|
16
|
+
localContextA = localContextB; ///
|
|
17
|
+
|
|
18
|
+
const unified = metaLevelUnifier.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
|
|
19
|
+
|
|
20
|
+
simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement = unified; ///
|
|
21
|
+
|
|
22
|
+
if (simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement) {
|
|
23
|
+
localContextB.trace(`...unified the simple substitution's '${simpleSubstitutionStatementString}' statement with the complex substitution's '${complexSubstitutionStatementString}' statement.`, simpleSubstitutionStatementNode);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement;
|
|
27
|
+
}
|