occam-verify-cli 0.0.869 → 0.0.871
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/axiomLemmaTheoremConjecture.js +13 -13
- package/lib/conclusion.js +3 -3
- package/lib/context/file.js +77 -73
- package/lib/equality.js +2 -4
- package/lib/equivalence.js +1 -1
- package/lib/label.js +5 -6
- package/lib/metaLemmaMetatheorem.js +13 -13
- package/lib/mixins/context.js +28 -28
- package/lib/premise.js +4 -4
- package/lib/rule.js +13 -13
- package/lib/ruleNames.js +1 -29
- package/lib/substitution/metastatementForMetavariable.js +3 -2
- package/lib/substitution/statementForMetavariable.js +27 -64
- package/lib/substitution/termForVariable.js +5 -5
- package/lib/utilities/name.js +8 -8
- package/lib/utilities/node.js +14 -14
- package/lib/utilities/query.js +4 -9
- package/lib/utilities/tokens.js +6 -6
- package/lib/utilities/verifier.js +86 -0
- package/lib/verifier/node/metastatement.js +41 -28
- package/lib/verifier/node/statementAsCombinator.js +41 -28
- package/lib/verifier/node/termAsConstructor.js +30 -22
- package/lib/verifier/nodes/equality.js +27 -32
- package/lib/verifier/nodes/intrinsicLevel.js +25 -34
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +270 -0
- package/lib/verifier/nodes/metaLevel.js +25 -34
- package/lib/verifier/nodes/statementAgainstCombinator.js +45 -49
- package/lib/verifier/nodes/termAgainstConstructor.js +24 -51
- package/lib/verify/argumentAgainstArgument.js +24 -0
- package/lib/verify/axiom.js +4 -4
- package/lib/verify/conjecture.js +4 -4
- package/lib/verify/containment.js +5 -5
- package/lib/verify/equality.js +9 -9
- package/lib/verify/label.js +8 -9
- package/lib/verify/labels.js +15 -8
- package/lib/verify/lemma.js +4 -4
- package/lib/verify/metaDerivation.js +19 -19
- package/lib/verify/metaLemma.js +4 -4
- package/lib/verify/metaproof.js +4 -6
- package/lib/verify/metastatement/qualified.js +3 -3
- package/lib/verify/metatheorem.js +4 -4
- package/lib/verify/metavariable.js +7 -5
- package/lib/verify/metavariableAgainstMetastatement.js +44 -0
- package/lib/verify/metavariableAgainstStatement.js +65 -0
- package/lib/verify/rule.js +4 -4
- package/lib/verify/statement/qualified.js +29 -29
- package/lib/verify/statement.js +4 -4
- package/lib/verify/statementAgainstMetaType.js +24 -0
- package/lib/verify/statementAtainstStatement.js +52 -0
- package/lib/verify/term.js +7 -8
- package/lib/verify/termAgainstTerm.js +22 -0
- package/lib/verify/termAgainstType.js +26 -0
- package/lib/verify/terms.js +2 -3
- package/lib/verify/theorem.js +4 -4
- package/lib/verify/type.js +7 -5
- package/lib/verify/typeAssertion.js +45 -40
- package/lib/verify/variable.js +7 -5
- package/lib/verify/variableAgainstTerm.js +70 -0
- package/package.json +4 -4
- package/src/axiomLemmaTheoremConjecture.js +13 -13
- package/src/conclusion.js +2 -2
- package/src/context/file.js +79 -73
- package/src/equality.js +3 -9
- package/src/equivalence.js +1 -1
- package/src/label.js +6 -7
- package/src/metaLemmaMetatheorem.js +13 -13
- package/src/mixins/context.js +17 -17
- package/src/premise.js +3 -3
- package/src/rule.js +13 -13
- package/src/ruleNames.js +0 -7
- package/src/substitution/metastatementForMetavariable.js +3 -1
- package/src/substitution/statementForMetavariable.js +32 -74
- package/src/substitution/termForVariable.js +3 -3
- package/src/utilities/name.js +7 -7
- package/src/utilities/node.js +13 -13
- package/src/utilities/query.js +3 -9
- package/src/utilities/tokens.js +4 -4
- package/src/utilities/verifier.js +46 -0
- package/src/verifier/node/metastatement.js +41 -34
- package/src/verifier/node/statementAsCombinator.js +39 -32
- package/src/verifier/node/termAsConstructor.js +30 -25
- package/src/verifier/nodes/equality.js +31 -36
- package/src/verifier/nodes/intrinsicLevel.js +30 -38
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +222 -0
- package/src/verifier/nodes/metaLevel.js +30 -38
- package/src/verifier/nodes/statementAgainstCombinator.js +52 -55
- package/src/verifier/nodes/termAgainstConstructor.js +30 -71
- package/src/verify/argumentAgainstArgument.js +15 -0
- package/src/verify/axiom.js +4 -4
- package/src/verify/conjecture.js +4 -4
- package/src/verify/containment.js +4 -4
- package/src/verify/equality.js +8 -8
- package/src/verify/label.js +8 -9
- package/src/verify/labels.js +17 -7
- package/src/verify/lemma.js +4 -4
- package/src/verify/metaDerivation.js +18 -18
- package/src/verify/metaLemma.js +6 -6
- package/src/verify/metaproof.js +3 -6
- package/src/verify/metastatement/qualified.js +5 -4
- package/src/verify/metatheorem.js +4 -4
- package/src/verify/metavariable.js +7 -5
- package/src/verify/metavariableAgainstMetastatement.js +42 -0
- package/src/verify/metavariableAgainstStatement.js +77 -0
- package/src/verify/rule.js +4 -4
- package/src/verify/statement/qualified.js +35 -30
- package/src/verify/statement.js +5 -5
- package/src/verify/statementAgainstMetaType.js +21 -0
- package/src/verify/statementAtainstStatement.js +60 -0
- package/src/verify/term.js +13 -17
- package/src/verify/termAgainstTerm.js +20 -0
- package/src/verify/termAgainstType.js +28 -0
- package/src/verify/terms.js +1 -3
- package/src/verify/theorem.js +4 -4
- package/src/verify/type.js +7 -5
- package/src/verify/typeAssertion.js +56 -55
- package/src/verify/variable.js +7 -5
- package/src/verify/variableAgainstTerm.js +86 -0
- package/lib/verifier/nodes/metaLevelToIntrinsicLevel.js +0 -327
- package/lib/verifier/nodes/substitution.js +0 -223
- package/lib/verify/givenMetavariable.js +0 -31
- package/lib/verify/givenType.js +0 -31
- package/lib/verify/givenVariable.js +0 -31
- package/lib/verify/termAndGivenType.js +0 -39
- package/src/verifier/nodes/metaLevelToIntrinsicLevel.js +0 -219
- package/src/verifier/nodes/substitution.js +0 -125
- package/src/verify/givenMetavariable.js +0 -31
- package/src/verify/givenType.js +0 -31
- package/src/verify/givenVariable.js +0 -31
- package/src/verify/termAndGivenType.js +0 -37
package/lib/verify/givenType.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
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 verifyGivenType;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function verifyGivenType(typeNode, types, localContext, verifyAhead) {
|
|
12
|
-
var givenTypeVerified = false;
|
|
13
|
-
var typeString = localContext.nodeAsString(typeNode);
|
|
14
|
-
localContext.trace("Verifying the given '".concat(typeString, "' type..."), typeNode);
|
|
15
|
-
var type = localContext.findTypeByTypeNode(typeNode);
|
|
16
|
-
if (type !== null) {
|
|
17
|
-
var verifiedAhead;
|
|
18
|
-
types.push(type);
|
|
19
|
-
verifiedAhead = verifyAhead();
|
|
20
|
-
if (!verifiedAhead) {
|
|
21
|
-
types.pop();
|
|
22
|
-
}
|
|
23
|
-
givenTypeVerified = verifiedAhead; ///
|
|
24
|
-
}
|
|
25
|
-
if (givenTypeVerified) {
|
|
26
|
-
localContext.debug("...verified the given '".concat(typeString, "' type."), typeNode);
|
|
27
|
-
}
|
|
28
|
-
return givenTypeVerified;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZ2l2ZW5UeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlHaXZlblR5cGUodHlwZU5vZGUsIHR5cGVzLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBnaXZlblR5cGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHR5cGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgZ2l2ZW4gJyR7dHlwZVN0cmluZ30nIHR5cGUuLi5gLCB0eXBlTm9kZSk7XG5cbiAgY29uc3QgdHlwZSA9IGxvY2FsQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICB0eXBlcy5wdXNoKHR5cGUpXG5cbiAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgdHlwZXMucG9wKCk7XG4gICAgfVxuXG4gICAgZ2l2ZW5UeXBlVmVyaWZpZWQgPSB2ZXJpZmllZEFoZWFkOyAvLy9cbiAgfVxuXG4gIGlmIChnaXZlblR5cGVWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlIGdpdmVuICcke3R5cGVTdHJpbmd9JyB0eXBlLmAsIHR5cGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBnaXZlblR5cGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlHaXZlblR5cGUiLCJ0eXBlTm9kZSIsInR5cGVzIiwibG9jYWxDb250ZXh0IiwidmVyaWZ5QWhlYWQiLCJnaXZlblR5cGVWZXJpZmllZCIsInR5cGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5vZGUiLCJ2ZXJpZmllZEFoZWFkIiwicHVzaCIsInBvcCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFQTs7O2VBQXdCQTs7O0FBQVQsU0FBU0EsZ0JBQWdCQyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsWUFBWSxFQUFFQyxXQUFXO0lBQ2hGLElBQUlDLG9CQUFvQjtJQUV4QixJQUFNQyxhQUFhSCxhQUFhSSxZQUFZLENBQUNOO0lBRTdDRSxhQUFhSyxLQUFLLENBQUMsQUFBQyx3QkFBa0MsT0FBWEYsWUFBVyxjQUFZTDtJQUVsRSxJQUFNUSxPQUFPTixhQUFhTyxrQkFBa0IsQ0FBQ1Q7SUFFN0MsSUFBSVEsU0FBUyxNQUFNO1FBQ2pCLElBQUlFO1FBRUpULE1BQU1VLElBQUksQ0FBQ0g7UUFFWEUsZ0JBQWdCUDtRQUVoQixJQUFJLENBQUNPLGVBQWU7WUFDbEJULE1BQU1XLEdBQUc7UUFDWDtRQUVBUixvQkFBb0JNLGVBQWUsR0FBRztJQUN4QztJQUVBLElBQUlOLG1CQUFtQjtRQUNyQkYsYUFBYVcsS0FBSyxDQUFDLEFBQUMsMEJBQW9DLE9BQVhSLFlBQVcsWUFBVUw7SUFDcEU7SUFFQSxPQUFPSTtBQUNUIn0=
|
|
@@ -1,31 +0,0 @@
|
|
|
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 verifyGivenVariable;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function verifyGivenVariable(variableNode, variables, localContext, verifyAhead) {
|
|
12
|
-
var givenVariableVerified = false;
|
|
13
|
-
var variableString = localContext.nodeAsString(variableNode);
|
|
14
|
-
localContext.trace("Verifying the '".concat(variableString, "' given variable..."), variableNode);
|
|
15
|
-
var variable = localContext.findVariableByVariableNode(variableNode);
|
|
16
|
-
if (variable !== null) {
|
|
17
|
-
var verifiedAhead;
|
|
18
|
-
variables.push(variable);
|
|
19
|
-
verifiedAhead = verifyAhead();
|
|
20
|
-
if (!verifiedAhead) {
|
|
21
|
-
variables.pop();
|
|
22
|
-
}
|
|
23
|
-
givenVariableVerified = verifiedAhead; ///
|
|
24
|
-
}
|
|
25
|
-
if (givenVariableVerified) {
|
|
26
|
-
localContext.debug("...verified the '".concat(variableString, "' given variable."), variableNode);
|
|
27
|
-
}
|
|
28
|
-
return givenVariableVerified;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZ2l2ZW5WYXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5R2l2ZW5WYXJpYWJsZSh2YXJpYWJsZU5vZGUsIHZhcmlhYmxlcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgZ2l2ZW5WYXJpYWJsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHZhcmlhYmxlTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgZ2l2ZW4gdmFyaWFibGUuLi5gLCB2YXJpYWJsZU5vZGUpO1xuXG4gIGNvbnN0IHZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICB2YXJpYWJsZXMucHVzaCh2YXJpYWJsZSk7XG5cbiAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgdmFyaWFibGVzLnBvcCgpO1xuICAgIH1cblxuICAgIGdpdmVuVmFyaWFibGVWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgaWYgKGdpdmVuVmFyaWFibGVWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgZ2l2ZW4gdmFyaWFibGUuYCwgdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBnaXZlblZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5R2l2ZW5WYXJpYWJsZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlcyIsImxvY2FsQ29udGV4dCIsInZlcmlmeUFoZWFkIiwiZ2l2ZW5WYXJpYWJsZVZlcmlmaWVkIiwidmFyaWFibGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUiLCJ2ZXJpZmllZEFoZWFkIiwicHVzaCIsInBvcCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFQTs7O2VBQXdCQTs7O0FBQVQsU0FBU0Esb0JBQW9CQyxZQUFZLEVBQUVDLFNBQVMsRUFBRUMsWUFBWSxFQUFFQyxXQUFXO0lBQzVGLElBQUlDLHdCQUF3QjtJQUU1QixJQUFNQyxpQkFBaUJILGFBQWFJLFlBQVksQ0FBQ047SUFFakRFLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGtCQUFnQyxPQUFmRixnQkFBZSx3QkFBc0JMO0lBRTFFLElBQU1RLFdBQVdOLGFBQWFPLDBCQUEwQixDQUFDVDtJQUV6RCxJQUFJUSxhQUFhLE1BQU07UUFDckIsSUFBSUU7UUFFSlQsVUFBVVUsSUFBSSxDQUFDSDtRQUVmRSxnQkFBZ0JQO1FBRWhCLElBQUksQ0FBQ08sZUFBZTtZQUNsQlQsVUFBVVcsR0FBRztRQUNmO1FBRUFSLHdCQUF3Qk0sZUFBZSxHQUFHO0lBQzVDO0lBRUEsSUFBSU4sdUJBQXVCO1FBQ3pCRixhQUFhVyxLQUFLLENBQUMsQUFBQyxvQkFBa0MsT0FBZlIsZ0JBQWUsc0JBQW9CTDtJQUM1RTtJQUVBLE9BQU9JO0FBQ1QifQ==
|
|
@@ -1,39 +0,0 @@
|
|
|
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 verifyTermAndGivenType;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _term = /*#__PURE__*/ _interop_require_default(require("../verify/term"));
|
|
12
|
-
var _givenType = /*#__PURE__*/ _interop_require_default(require("../verify/givenType"));
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
function verifyTermAndGivenType(termNode, typeNode, terms, types, localContext, verifyAhead) {
|
|
19
|
-
var termAndGivenTypeVerified;
|
|
20
|
-
var termString = localContext.nodeAsString(termNode), typeString = localContext.nodeAsString(typeNode);
|
|
21
|
-
localContext.trace("Verifying the '".concat(termString, "' term and the given '").concat(typeString, "' type..."), termNode);
|
|
22
|
-
var termVerified = (0, _term.default)(termNode, terms, localContext, function() {
|
|
23
|
-
var verifiedAhead;
|
|
24
|
-
var givenTypeVerified = (0, _givenType.default)(typeNode, types, localContext, function() {
|
|
25
|
-
var verifiedAhead;
|
|
26
|
-
verifiedAhead = verifyAhead();
|
|
27
|
-
return verifiedAhead;
|
|
28
|
-
});
|
|
29
|
-
verifiedAhead = givenTypeVerified; ///
|
|
30
|
-
return verifiedAhead;
|
|
31
|
-
});
|
|
32
|
-
termAndGivenTypeVerified = termVerified; ///
|
|
33
|
-
if (termAndGivenTypeVerified) {
|
|
34
|
-
localContext.debug("...verified the '".concat(termString, "' term and the given '").concat(typeString, "' type."), termNode);
|
|
35
|
-
}
|
|
36
|
-
return termAndGivenTypeVerified;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybUFuZEdpdmVuVHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4uL3ZlcmlmeS90ZXJtXCI7XG5pbXBvcnQgdmVyaWZ5R2l2ZW5UeXBlIGZyb20gXCIuLi92ZXJpZnkvZ2l2ZW5UeXBlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVRlcm1BbmRHaXZlblR5cGUodGVybU5vZGUsIHR5cGVOb2RlLCB0ZXJtcywgdHlwZXMsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHRlcm1BbmRHaXZlblR5cGVWZXJpZmllZDtcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSksXG4gICAgICAgIHR5cGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYW5kIHRoZSBnaXZlbiAnJHt0eXBlU3RyaW5nfScgdHlwZS4uLmAsIHRlcm1Ob2RlKTtcblxuICBjb25zdCB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICAgICAgICBjb25zdCBnaXZlblR5cGVWZXJpZmllZCA9IHZlcmlmeUdpdmVuVHlwZSh0eXBlTm9kZSwgdHlwZXMsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSBnaXZlblR5cGVWZXJpZmllZDsgIC8vL1xuXG4gICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgIH0pO1xuXG4gIHRlcm1BbmRHaXZlblR5cGVWZXJpZmllZCA9IHRlcm1WZXJpZmllZDsgLy8vXG5cbiAgaWYgKHRlcm1BbmRHaXZlblR5cGVWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFuZCB0aGUgZ2l2ZW4gJyR7dHlwZVN0cmluZ30nIHR5cGUuYCwgdGVybU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1BbmRHaXZlblR5cGVWZXJpZmllZFxufVxuIl0sIm5hbWVzIjpbInZlcmlmeVRlcm1BbmRHaXZlblR5cGUiLCJ0ZXJtTm9kZSIsInR5cGVOb2RlIiwidGVybXMiLCJ0eXBlcyIsImxvY2FsQ29udGV4dCIsInZlcmlmeUFoZWFkIiwidGVybUFuZEdpdmVuVHlwZVZlcmlmaWVkIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInR5cGVTdHJpbmciLCJ0cmFjZSIsInRlcm1WZXJpZmllZCIsInZlcmlmeVRlcm0iLCJ2ZXJpZmllZEFoZWFkIiwiZ2l2ZW5UeXBlVmVyaWZpZWQiLCJ2ZXJpZnlHaXZlblR5cGUiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUF3QkE7OzsyREFIRDtnRUFDSzs7Ozs7O0FBRWIsU0FBU0EsdUJBQXVCQyxRQUFRLEVBQUVDLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLFlBQVksRUFBRUMsV0FBVztJQUN4RyxJQUFJQztJQUVKLElBQU1DLGFBQWFILGFBQWFJLFlBQVksQ0FBQ1IsV0FDdkNTLGFBQWFMLGFBQWFJLFlBQVksQ0FBQ1A7SUFFN0NHLGFBQWFNLEtBQUssQ0FBQyxBQUFDLGtCQUFvREQsT0FBbkNGLFlBQVcsMEJBQW1DLE9BQVhFLFlBQVcsY0FBWVQ7SUFFL0YsSUFBTVcsZUFBZUMsSUFBQUEsYUFBVSxFQUFDWixVQUFVRSxPQUFPRSxjQUFjO1FBQ3ZELElBQUlTO1FBRUosSUFBTUMsb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDZCxVQUFVRSxPQUFPQyxjQUFjO1lBQ3ZFLElBQUlTO1lBRUpBLGdCQUFnQlI7WUFFaEIsT0FBT1E7UUFDVDtRQUVBQSxnQkFBZ0JDLG1CQUFvQixHQUFHO1FBRXZDLE9BQU9EO0lBQ1Q7SUFFTlAsMkJBQTJCSyxjQUFjLEdBQUc7SUFFNUMsSUFBSUwsMEJBQTBCO1FBQzVCRixhQUFhWSxLQUFLLENBQUMsQUFBQyxvQkFBc0RQLE9BQW5DRixZQUFXLDBCQUFtQyxPQUFYRSxZQUFXLFlBQVVUO0lBQ2pHO0lBRUEsT0FBT007QUFDVCJ9
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import NodesVerifier from "../../verifier/nodes";
|
|
4
|
-
import TermForVariableSubstitution from "../../substitution/termForVariable";
|
|
5
|
-
import intrinsicLevelNodesVerifierMixins from "../../mixins/nodesVerifier/intrinsiclevel";
|
|
6
|
-
import StatementForMetavariableSubstitution from "../../substitution/statementForMetavariable";
|
|
7
|
-
|
|
8
|
-
import { nodeQuery } from "../../utilities/query";
|
|
9
|
-
import { matchStatementNode } from "../../substitution/statementForMetavariable";
|
|
10
|
-
import { TERM_RULE_NAME, STATEMENT_RULE_NAME, METASTATEMENT_RULE_NAME, META_ARGUMENT_RULE_NAME } from "../../ruleNames";
|
|
11
|
-
|
|
12
|
-
const variableNodeQuery = nodeQuery("/*/variable!"),
|
|
13
|
-
statementNodeQuery = nodeQuery("/*/statement"),
|
|
14
|
-
metavariableNodeQuery = nodeQuery("/metastatement/metavariable!"),
|
|
15
|
-
substitutionNodeQuery = nodeQuery("/metastatement/substitution!");
|
|
16
|
-
|
|
17
|
-
class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
|
|
18
|
-
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
19
|
-
let nonTerminalNodeVerified;
|
|
20
|
-
|
|
21
|
-
const nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName();
|
|
22
|
-
|
|
23
|
-
switch (nonTerminalNodeARuleName) {
|
|
24
|
-
case METASTATEMENT_RULE_NAME: {
|
|
25
|
-
const metastatementNodeA = nonTerminalNodeA, ///
|
|
26
|
-
metaArgumentNodeVerified = this.verifyMetastatementNode(metastatementNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
27
|
-
|
|
28
|
-
nonTerminalNodeVerified = metaArgumentNodeVerified; ///
|
|
29
|
-
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
case TERM_RULE_NAME: {
|
|
34
|
-
const termNodeA = nonTerminalNodeA, ///
|
|
35
|
-
termNodeVerified = this.verifyTermNode(termNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
36
|
-
|
|
37
|
-
nonTerminalNodeVerified = termNodeVerified; ///
|
|
38
|
-
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
default: {
|
|
43
|
-
nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return nonTerminalNodeVerified;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
verifyMetastatementNode(metastatementNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
51
|
-
let metastatementNodeVerified;
|
|
52
|
-
|
|
53
|
-
const statementNodeA = statementNodeQuery(metastatementNodeA);
|
|
54
|
-
|
|
55
|
-
if (statementNodeA !== null) {
|
|
56
|
-
const nonTerminalNodeA = statementNodeA, ///
|
|
57
|
-
nonTerminalNodeVerified = this.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
58
|
-
|
|
59
|
-
metastatementNodeVerified = nonTerminalNodeVerified; ///
|
|
60
|
-
} else {
|
|
61
|
-
const nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName();
|
|
62
|
-
|
|
63
|
-
switch (nonTerminalNodeBRuleName) {
|
|
64
|
-
case META_ARGUMENT_RULE_NAME: {
|
|
65
|
-
const metaArgumentNodeB = nonTerminalNodeB, ///
|
|
66
|
-
metaArgumentNodeVerified = this.verifyMetaArgumentNode(metastatementNodeA, metaArgumentNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
67
|
-
|
|
68
|
-
metastatementNodeVerified = metaArgumentNodeVerified; ///
|
|
69
|
-
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
case STATEMENT_RULE_NAME: {
|
|
74
|
-
const statementNodeB = nonTerminalNodeB, ///
|
|
75
|
-
statementNodeVerified = this.verifyStatementNode(metastatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
76
|
-
|
|
77
|
-
metastatementNodeVerified = statementNodeVerified; ///
|
|
78
|
-
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return metastatementNodeVerified;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
verifyMetaArgumentNode(metastatementNodeA, metaArgumentNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
88
|
-
let metaArgumentNodeVerified = false;
|
|
89
|
-
|
|
90
|
-
const statementNodeB = statementNodeQuery(metaArgumentNodeB),
|
|
91
|
-
metavariableNodeA = metavariableNodeQuery(metastatementNodeA);
|
|
92
|
-
|
|
93
|
-
if ((metavariableNodeA !== null) && (statementNodeB !== null)) {
|
|
94
|
-
const substitutionNodeA = substitutionNodeQuery(metastatementNodeA),
|
|
95
|
-
metavariableNodeVerified = this.verifyMetavariableNode(metavariableNodeA, substitutionNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
96
|
-
|
|
97
|
-
metaArgumentNodeVerified = metavariableNodeVerified; ///
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return metaArgumentNodeVerified;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
verifyStatementNode(metastatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
104
|
-
let statementNodeVerified;
|
|
105
|
-
|
|
106
|
-
const metavariableNodeA = metavariableNodeQuery(metastatementNodeA);
|
|
107
|
-
|
|
108
|
-
if (metavariableNodeA !== null) {
|
|
109
|
-
const substitutionNodeA = substitutionNodeQuery(metastatementNodeA),
|
|
110
|
-
metavariableNodeVerified = this.verifyMetavariableNode(metavariableNodeA, substitutionNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
111
|
-
|
|
112
|
-
statementNodeVerified = metavariableNodeVerified; ///
|
|
113
|
-
} else {
|
|
114
|
-
const nonTerminalNodeA = metastatementNodeA, ///
|
|
115
|
-
nonTerminalNodeB = statementNodeB, ///
|
|
116
|
-
nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(),
|
|
117
|
-
nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(),
|
|
118
|
-
childNodesA = nonTerminalNodeAChildNodes, ///
|
|
119
|
-
childNodesB = nonTerminalNodeBChildNodes, ///
|
|
120
|
-
childNodesVerified = super.verifyChildNodes(childNodesA, childNodesB, substitutions, localContextA, localContextB, verifyAhead);
|
|
121
|
-
|
|
122
|
-
statementNodeVerified = childNodesVerified; ///
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return statementNodeVerified;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
verifyMetavariableNode(metavariableNodeA, substitutionNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
129
|
-
let metavariableNodeVerified;
|
|
130
|
-
|
|
131
|
-
const substitution = substitutions.find((substitution) => {
|
|
132
|
-
const substitutionMatchesMetavariableNodeA = substitution.matchMetavariableNode(metavariableNodeA);
|
|
133
|
-
|
|
134
|
-
if (substitutionMatchesMetavariableNodeA) {
|
|
135
|
-
return true;
|
|
136
|
-
}
|
|
137
|
-
}) || null;
|
|
138
|
-
|
|
139
|
-
if (substitution !== null) {
|
|
140
|
-
const statementNode = substitution.getStatementNode();
|
|
141
|
-
|
|
142
|
-
if (substitutionNodeA !== null) {
|
|
143
|
-
const substitutionNode = substitutionNodeA, ///
|
|
144
|
-
termForVariableSubstitution = TermForVariableSubstitution.fromSubstitutionNode(substitutionNode),
|
|
145
|
-
substitution = termForVariableSubstitution, ///
|
|
146
|
-
statementNodeA = statementNode, ///
|
|
147
|
-
statementNodeMatches = matchStatementNode(statementNodeA, statementNodeB, substitution, substitutions, localContextA, localContextB);
|
|
148
|
-
|
|
149
|
-
metavariableNodeVerified = statementNodeMatches; ///
|
|
150
|
-
} else {
|
|
151
|
-
const statementNode = statementNodeB, ///
|
|
152
|
-
statementNodeMatches = substitution.matchStatementNode(statementNode, substitutions, localContextA, localContextB);
|
|
153
|
-
|
|
154
|
-
metavariableNodeVerified = statementNodeMatches; ///
|
|
155
|
-
}
|
|
156
|
-
} else {
|
|
157
|
-
const substitutionNode = substitutionNodeA, ///
|
|
158
|
-
metavariableNode = metavariableNodeA, ///
|
|
159
|
-
statementNode = statementNodeB, ///
|
|
160
|
-
substitution = substitutionFromSubstitutionNodeMetavariableNodeAndStatementNode(substitutionNode, metavariableNode, statementNode);
|
|
161
|
-
|
|
162
|
-
substitutions.push(substitution);
|
|
163
|
-
|
|
164
|
-
metavariableNodeVerified = true;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return metavariableNodeVerified;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
verifyTermNode(termNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
171
|
-
let termNodeVerified = false;
|
|
172
|
-
|
|
173
|
-
const nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName();
|
|
174
|
-
|
|
175
|
-
switch (nonTerminalNodeBRuleName) {
|
|
176
|
-
case TERM_RULE_NAME: {
|
|
177
|
-
const variableNodeA = variableNodeQuery(termNodeA);
|
|
178
|
-
|
|
179
|
-
if (variableNodeA !== null) {
|
|
180
|
-
const termNodeB = nonTerminalNodeB, ///
|
|
181
|
-
variableNodeVerified = this.verifyVariableNode(variableNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
182
|
-
|
|
183
|
-
termNodeVerified = variableNodeVerified; ///
|
|
184
|
-
} else {
|
|
185
|
-
const nonTerminalNodeA = termNodeA, ///
|
|
186
|
-
nonTerminalNodeB = termNodeB, ///
|
|
187
|
-
nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
188
|
-
|
|
189
|
-
termNodeVerified = nonTerminalNodeVerified; ///
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
return termNodeVerified;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
Object.assign(MetaLevelToIntrinsicLevelNodesVerifier.prototype, intrinsicLevelNodesVerifierMixins);
|
|
199
|
-
|
|
200
|
-
const metaLevelToIntrinsicLevelNodesVerifier = new MetaLevelToIntrinsicLevelNodesVerifier();
|
|
201
|
-
|
|
202
|
-
export default metaLevelToIntrinsicLevelNodesVerifier;
|
|
203
|
-
|
|
204
|
-
function substitutionFromSubstitutionNodeMetavariableNodeAndStatementNode(substitutionNode, metavariableNode, statementNode) {
|
|
205
|
-
let statementForMetavariableSubstitution;
|
|
206
|
-
|
|
207
|
-
if (substitutionNode !== null) {
|
|
208
|
-
const termForVariableSubstitution = TermForVariableSubstitution.fromSubstitutionNode(substitutionNode),
|
|
209
|
-
substitution = termForVariableSubstitution; ///
|
|
210
|
-
|
|
211
|
-
statementForMetavariableSubstitution = StatementForMetavariableSubstitution.fromMetavariableNodeStatementNodeAndSubstitution(metavariableNode, statementNode, substitution);
|
|
212
|
-
} else {
|
|
213
|
-
statementForMetavariableSubstitution = StatementForMetavariableSubstitution.fromMetavariableNodeAndStatementNode(metavariableNode, statementNode);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
const substitution = statementForMetavariableSubstitution; ///
|
|
217
|
-
|
|
218
|
-
return substitution;
|
|
219
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import NodesVerifier from "../../verifier/nodes";
|
|
4
|
-
|
|
5
|
-
import TermForVariableSubstitution from "../../substitution/termForVariable";
|
|
6
|
-
|
|
7
|
-
import { nodeQuery } from "../../utilities/query";
|
|
8
|
-
import { TERM_RULE_NAME } from "../../ruleNames";
|
|
9
|
-
|
|
10
|
-
const variableNodeQuery = nodeQuery("/term/variable");
|
|
11
|
-
|
|
12
|
-
class SubstitutionNodesVerifier extends NodesVerifier {
|
|
13
|
-
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
14
|
-
let nonTerminalNodeVerified = false;
|
|
15
|
-
|
|
16
|
-
const nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(),
|
|
17
|
-
nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName();
|
|
18
|
-
|
|
19
|
-
if (nonTerminalNodeARuleName === nonTerminalNodeBRuleName) {
|
|
20
|
-
const ruleName = nonTerminalNodeARuleName; ///
|
|
21
|
-
|
|
22
|
-
switch (ruleName) {
|
|
23
|
-
case TERM_RULE_NAME: {
|
|
24
|
-
const termNodeA = nonTerminalNodeA, ///
|
|
25
|
-
termNodeB = nonTerminalNodeB, ///
|
|
26
|
-
termNodeVerified = this.verifyTermNode(termNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
27
|
-
|
|
28
|
-
nonTerminalNodeVerified = termNodeVerified; ///
|
|
29
|
-
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
default: {
|
|
34
|
-
nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
35
|
-
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return nonTerminalNodeVerified;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
verifyTermNode(termNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
45
|
-
let termNodeVerified;
|
|
46
|
-
|
|
47
|
-
const variableNodeA = variableNodeQuery(termNodeA);
|
|
48
|
-
|
|
49
|
-
if (variableNodeA !== null) {
|
|
50
|
-
const variableNodeVerified = this.verifyVariableNode(variableNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
51
|
-
|
|
52
|
-
termNodeVerified = variableNodeVerified; ///
|
|
53
|
-
} else {
|
|
54
|
-
const nonTerminalNodeA = termNodeA, ///
|
|
55
|
-
nonTerminalNodeB = termNodeB, ///
|
|
56
|
-
nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
57
|
-
|
|
58
|
-
termNodeVerified = nonTerminalNodeVerified; ///
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return termNodeVerified;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
verifyVariableNode(variableNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
65
|
-
let variableNodeVerified = false;
|
|
66
|
-
|
|
67
|
-
if (variableNodeVerified === false) {
|
|
68
|
-
const variableNodeB = variableNodeQuery(termNodeB);
|
|
69
|
-
|
|
70
|
-
if (variableNodeB !== null) {
|
|
71
|
-
const variableNodeAMatchedVariableNodeB = variableNodeA.match(variableNodeB);
|
|
72
|
-
|
|
73
|
-
if (variableNodeAMatchedVariableNodeB) {
|
|
74
|
-
const verifiedAhead = verifyAhead();
|
|
75
|
-
|
|
76
|
-
variableNodeVerified = verifiedAhead; ///
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
if (variableNodeVerified === false) {
|
|
82
|
-
const variableNode = variableNodeA,
|
|
83
|
-
substitution = substitutions.find((substitution) => {
|
|
84
|
-
const matches = substitution.matchVariableNode(variableNode);
|
|
85
|
-
|
|
86
|
-
if (matches) {
|
|
87
|
-
return true;
|
|
88
|
-
}
|
|
89
|
-
}) || null;
|
|
90
|
-
|
|
91
|
-
if (substitution !== null) {
|
|
92
|
-
const termNode = termNodeB, ///
|
|
93
|
-
termNodeMatches = substitution.matchTermNode(termNode);
|
|
94
|
-
|
|
95
|
-
if (termNodeMatches) {
|
|
96
|
-
const verifiedAhead = verifyAhead();
|
|
97
|
-
|
|
98
|
-
variableNodeVerified = verifiedAhead; ///
|
|
99
|
-
}
|
|
100
|
-
} else {
|
|
101
|
-
let verifiedAhead;
|
|
102
|
-
|
|
103
|
-
const termNode = termNodeB, ///
|
|
104
|
-
termForVariableSubstitution = TermForVariableSubstitution.fromVariableNodeAndTermNode(variableNode, termNode),
|
|
105
|
-
substitution = termForVariableSubstitution; ///
|
|
106
|
-
|
|
107
|
-
substitutions.push(substitution);
|
|
108
|
-
|
|
109
|
-
verifiedAhead = verifyAhead();
|
|
110
|
-
|
|
111
|
-
if (!verifiedAhead) {
|
|
112
|
-
substitutions.pop();
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
variableNodeVerified = verifiedAhead; ///
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return variableNodeVerified;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
const substitutionNodesVerifier = new SubstitutionNodesVerifier();
|
|
124
|
-
|
|
125
|
-
export default substitutionNodesVerifier;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export default function verifyGivenMetavariable(metavariableNode, metavariables, localMetaContext, verifyAhead) {
|
|
4
|
-
let givenMetavariableVerified = false;
|
|
5
|
-
|
|
6
|
-
const metavariableString = localMetaContext.nodeAsString(metavariableNode);
|
|
7
|
-
|
|
8
|
-
localMetaContext.trace(`Verifying the '${metavariableString}' given metavariable...`, metavariableNode);
|
|
9
|
-
|
|
10
|
-
const metavariable = localMetaContext.findMetavariableByMetavariableNode(metavariableNode);
|
|
11
|
-
|
|
12
|
-
if (metavariable !== null) {
|
|
13
|
-
let verifiedAhead;
|
|
14
|
-
|
|
15
|
-
metavariables.push(metavariable);
|
|
16
|
-
|
|
17
|
-
verifiedAhead = verifyAhead();
|
|
18
|
-
|
|
19
|
-
if (!verifiedAhead) {
|
|
20
|
-
metavariables.pop();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
givenMetavariableVerified = verifiedAhead; ///
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (givenMetavariableVerified) {
|
|
27
|
-
localMetaContext.debug(`...verified the '${metavariableString}' given metavariable.`, metavariableNode);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return givenMetavariableVerified;
|
|
31
|
-
}
|
package/src/verify/givenType.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export default function verifyGivenType(typeNode, types, localContext, verifyAhead) {
|
|
4
|
-
let givenTypeVerified = false;
|
|
5
|
-
|
|
6
|
-
const typeString = localContext.nodeAsString(typeNode);
|
|
7
|
-
|
|
8
|
-
localContext.trace(`Verifying the given '${typeString}' type...`, typeNode);
|
|
9
|
-
|
|
10
|
-
const type = localContext.findTypeByTypeNode(typeNode);
|
|
11
|
-
|
|
12
|
-
if (type !== null) {
|
|
13
|
-
let verifiedAhead;
|
|
14
|
-
|
|
15
|
-
types.push(type)
|
|
16
|
-
|
|
17
|
-
verifiedAhead = verifyAhead();
|
|
18
|
-
|
|
19
|
-
if (!verifiedAhead) {
|
|
20
|
-
types.pop();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
givenTypeVerified = verifiedAhead; ///
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (givenTypeVerified) {
|
|
27
|
-
localContext.debug(`...verified the given '${typeString}' type.`, typeNode);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return givenTypeVerified;
|
|
31
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export default function verifyGivenVariable(variableNode, variables, localContext, verifyAhead) {
|
|
4
|
-
let givenVariableVerified = false;
|
|
5
|
-
|
|
6
|
-
const variableString = localContext.nodeAsString(variableNode);
|
|
7
|
-
|
|
8
|
-
localContext.trace(`Verifying the '${variableString}' given variable...`, variableNode);
|
|
9
|
-
|
|
10
|
-
const variable = localContext.findVariableByVariableNode(variableNode);
|
|
11
|
-
|
|
12
|
-
if (variable !== null) {
|
|
13
|
-
let verifiedAhead;
|
|
14
|
-
|
|
15
|
-
variables.push(variable);
|
|
16
|
-
|
|
17
|
-
verifiedAhead = verifyAhead();
|
|
18
|
-
|
|
19
|
-
if (!verifiedAhead) {
|
|
20
|
-
variables.pop();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
givenVariableVerified = verifiedAhead; ///
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (givenVariableVerified) {
|
|
27
|
-
localContext.debug(`...verified the '${variableString}' given variable.`, variableNode);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return givenVariableVerified;
|
|
31
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import verifyTerm from "../verify/term";
|
|
4
|
-
import verifyGivenType from "../verify/givenType";
|
|
5
|
-
|
|
6
|
-
export default function verifyTermAndGivenType(termNode, typeNode, terms, types, localContext, verifyAhead) {
|
|
7
|
-
let termAndGivenTypeVerified;
|
|
8
|
-
|
|
9
|
-
const termString = localContext.nodeAsString(termNode),
|
|
10
|
-
typeString = localContext.nodeAsString(typeNode);
|
|
11
|
-
|
|
12
|
-
localContext.trace(`Verifying the '${termString}' term and the given '${typeString}' type...`, termNode);
|
|
13
|
-
|
|
14
|
-
const termVerified = verifyTerm(termNode, terms, localContext, () => {
|
|
15
|
-
let verifiedAhead;
|
|
16
|
-
|
|
17
|
-
const givenTypeVerified = verifyGivenType(typeNode, types, localContext, () => {
|
|
18
|
-
let verifiedAhead;
|
|
19
|
-
|
|
20
|
-
verifiedAhead = verifyAhead();
|
|
21
|
-
|
|
22
|
-
return verifiedAhead;
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
verifiedAhead = givenTypeVerified; ///
|
|
26
|
-
|
|
27
|
-
return verifiedAhead;
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
termAndGivenTypeVerified = termVerified; ///
|
|
31
|
-
|
|
32
|
-
if (termAndGivenTypeVerified) {
|
|
33
|
-
localContext.debug(`...verified the '${termString}' term and the given '${typeString}' type.`, termNode);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return termAndGivenTypeVerified
|
|
37
|
-
}
|