occam-verify-cli 0.0.959 → 0.0.961
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/bin/action/verify.js +16 -5
- package/bin/utilities/releaseContext.js +5 -8
- package/lib/context/file.js +38 -14
- package/lib/context/local.js +3 -9
- package/lib/context/release.js +82 -52
- package/lib/frame.js +3 -3
- package/lib/index.js +5 -5
- package/lib/metavariable.js +9 -9
- package/lib/proofStep.js +21 -18
- package/lib/releaseContext/create.js +8 -9
- package/lib/releaseContext/initialise.js +67 -0
- package/lib/rule.js +5 -5
- package/lib/substitution/statementForMetavariable.js +8 -8
- package/lib/substitution/termForVariable.js +29 -30
- package/lib/substitution.js +7 -7
- package/lib/substitutions.js +7 -7
- package/lib/topLevelAssertion.js +5 -5
- package/lib/unifier/equality.js +7 -7
- package/lib/unifier/intrinsicLevel.js +4 -4
- package/lib/unifier/metaLevel.js +10 -10
- package/lib/unifier/statementWithCombinator.js +147 -0
- package/lib/unifier/{termAgainstConstructor.js → termWithConstructor.js} +17 -17
- package/lib/unify/conclusionWithStatement.js +34 -0
- package/lib/unify/consequentWithStatement.js +34 -0
- package/lib/unify/metavariableWithStatement.js +74 -0
- package/lib/unify/premiseWithProofStep.js +41 -0
- package/lib/unify/premisesWithProofSteps.js +31 -0
- package/lib/unify/statementAtainstStatement.js +18 -18
- package/lib/unify/statementWithBracketedCombinator.js +30 -0
- package/lib/unify/statementWithCombinators.js +40 -0
- package/lib/unify/statementWithMetaType.js +24 -0
- package/lib/unify/suppositionWithProffStep.js +41 -0
- package/lib/unify/suppositionsWithProofSteps.js +31 -0
- package/lib/unify/termWithBracketedConstructor.js +37 -0
- package/lib/unify/termWithConstructors.js +53 -0
- package/lib/unify/termWithTerm.js +21 -0
- package/lib/unify/termWithType.js +24 -0
- package/lib/unify/variableWithTerm.js +54 -0
- package/lib/utilities/assignments.js +9 -12
- package/lib/verifier/intrinsicLevel.js +140 -0
- package/lib/verifier/metaLevel.js +11 -20
- package/lib/verifier/statementAsCombinator.js +9 -9
- package/lib/verifier/termAsConstructor.js +5 -5
- package/lib/verify/assertion/contained.js +2 -3
- package/lib/verify/assertion/defined.js +2 -4
- package/lib/verify/assertion/subproof.js +20 -18
- package/lib/verify/assertion/type.js +1 -2
- package/lib/verify/declaration.js +27 -9
- package/lib/verify/error.js +2 -2
- package/lib/verify/frame.js +25 -6
- package/lib/verify/judgement.js +3 -3
- package/lib/verify/metavariable.js +4 -4
- package/lib/verify/premise.js +3 -3
- package/lib/verify/proofStep.js +23 -30
- package/lib/verify/statement/qualified.js +93 -137
- package/lib/verify/statement/unqualified.js +18 -104
- package/lib/verify/statement.js +95 -76
- package/lib/verify/statementAsCombinator.js +3 -3
- package/lib/verify/statementGivenMetaType.js +41 -0
- package/lib/verify/supposition.js +3 -3
- package/lib/verify/term.js +36 -64
- package/lib/verify/termAsConstructor.js +2 -2
- package/lib/verify/termGivenType.js +34 -0
- package/package.json +1 -1
- package/src/context/file.js +42 -17
- package/src/context/local.js +4 -13
- package/src/context/release.js +84 -45
- package/src/frame.js +2 -2
- package/src/index.js +1 -1
- package/src/metavariable.js +6 -6
- package/src/proofStep.js +24 -19
- package/src/releaseContext/create.js +8 -16
- package/src/releaseContext/{verify.js → initialise.js} +32 -23
- package/src/rule.js +4 -4
- package/src/substitution/statementForMetavariable.js +7 -7
- package/src/substitution/termForVariable.js +37 -34
- package/src/substitution.js +5 -5
- package/src/substitutions.js +5 -5
- package/src/topLevelAssertion.js +4 -4
- package/src/unifier/equality.js +6 -6
- package/src/unifier/intrinsicLevel.js +3 -3
- package/src/unifier/metaLevel.js +9 -9
- package/src/unifier/statementWithCombinator.js +55 -0
- package/src/unifier/{termAgainstConstructor.js → termWithConstructor.js} +9 -9
- package/src/unify/{conclusionAgainstStatement.js → conclusionWithStatement.js} +3 -3
- package/src/unify/{consequentAgainstStatement.js → consequentWithStatement.js} +3 -3
- package/src/unify/{metavariableAgainstStatement.js → metavariableWithStatement.js} +12 -12
- package/src/unify/{premiseAgainstProofStep.js → premiseWithProofStep.js} +5 -5
- package/src/unify/{premisesAgainstProofSteps.js → premisesWithProofSteps.js} +3 -3
- package/src/unify/statementAtainstStatement.js +14 -14
- package/src/unify/statementWithBracketedCombinator.js +22 -0
- package/src/unify/statementWithCombinators.js +38 -0
- package/src/unify/statementWithMetaType.js +14 -0
- package/src/unify/{suppositionAgainstProofStep.js → suppositionWithProffStep.js} +5 -5
- package/src/unify/{suppositionsAgainstProofSteps.js → suppositionsWithProofSteps.js} +3 -3
- package/src/unify/termWithBracketedConstructor.js +36 -0
- package/src/unify/termWithConstructors.js +63 -0
- package/src/unify/{termAgainstTerm.js → termWithTerm.js} +4 -4
- package/src/unify/termWithType.js +15 -0
- package/src/unify/{variableAgainstTerm.js → variableWithTerm.js} +5 -5
- package/src/utilities/assignments.js +6 -13
- package/src/verifier/intrinsicLevel.js +42 -0
- package/src/verifier/metaLevel.js +13 -21
- package/src/verifier/statementAsCombinator.js +11 -7
- package/src/verifier/termAsConstructor.js +4 -3
- package/src/verify/assertion/contained.js +1 -3
- package/src/verify/assertion/defined.js +1 -4
- package/src/verify/assertion/subproof.js +22 -18
- package/src/verify/assertion/type.js +0 -1
- package/src/verify/declaration.js +34 -11
- package/src/verify/error.js +1 -1
- package/src/verify/frame.js +32 -5
- package/src/verify/judgement.js +3 -3
- package/src/verify/metavariable.js +3 -3
- package/src/verify/premise.js +3 -3
- package/src/verify/proofStep.js +26 -38
- package/src/verify/statement/qualified.js +104 -184
- package/src/verify/statement/unqualified.js +19 -149
- package/src/verify/statement.js +126 -72
- package/src/verify/statementAsCombinator.js +2 -2
- package/src/verify/statementGivenMetaType.js +37 -0
- package/src/verify/supposition.js +3 -3
- package/src/verify/term.js +38 -93
- package/src/verify/termAsConstructor.js +1 -1
- package/src/verify/termGivenType.js +32 -0
- package/lib/releaseContext/verify.js +0 -66
- package/lib/unifier/statementAgainstCombinator.js +0 -147
- package/lib/unify/conclusionAgainstStatement.js +0 -34
- package/lib/unify/consequentAgainstStatement.js +0 -34
- package/lib/unify/metavariableAgainstStatement.js +0 -74
- package/lib/unify/premiseAgainstProofStep.js +0 -41
- package/lib/unify/premisesAgainstProofSteps.js +0 -31
- package/lib/unify/statementAgainstMetaType.js +0 -48
- package/lib/unify/suppositionAgainstProofStep.js +0 -41
- package/lib/unify/suppositionsAgainstProofSteps.js +0 -31
- package/lib/unify/termAgainstTerm.js +0 -21
- package/lib/unify/termAgainstType.js +0 -32
- package/lib/unify/variableAgainstTerm.js +0 -54
- package/src/unifier/statementAgainstCombinator.js +0 -55
- package/src/unify/statementAgainstMetaType.js +0 -50
- package/src/unify/termAgainstType.js +0 -31
|
@@ -27,8 +27,8 @@ function verifySupposition(suppositionNode, suppositions, localContext) {
|
|
|
27
27
|
if (unqualifiedStatementNode !== null) {
|
|
28
28
|
var derived = false, assignments = [], unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments, derived, localContext);
|
|
29
29
|
if (unqualifiedStatementVerified) {
|
|
30
|
-
var
|
|
31
|
-
if (
|
|
30
|
+
var assignmentsAssigned = (0, _assignments.assignAssignments)(assignments, localContext);
|
|
31
|
+
if (assignmentsAssigned) {
|
|
32
32
|
var statementNode = statementNodeQuery(unqualifiedStatementNode), supposition = _supposition.default.fromStatementNode(statementNode), proofStep = _proofStep.default.fromStatementNode(statementNode);
|
|
33
33
|
suppositions.push(supposition);
|
|
34
34
|
localContext.addProofStep(proofStep);
|
|
@@ -42,4 +42,4 @@ function verifySupposition(suppositionNode, suppositions, localContext) {
|
|
|
42
42
|
return suppositionVerified;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3VwcG9zaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBQcm9vZlN0ZXAgZnJvbSBcIi4uL3Byb29mU3RlcFwiO1xuaW1wb3J0IFN1cHBvc2l0aW9uIGZyb20gXCIuLi9zdXBwb3NpdGlvblwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnRzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hc3NpZ25tZW50c1wiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N1cHBvc2l0aW9uL3VucXVhbGlmaWVkU3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb25Ob2RlLCBzdXBwb3NpdGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3VwcG9zaXRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHN1cHBvc2l0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdXBwb3NpdGlvbk5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLi4uYCwgc3VwcG9zaXRpb25Ob2RlKTtcblxuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShzdXBwb3NpdGlvbk5vZGUpO1xuXG4gIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBhc3NpZ25tZW50c0Fzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudHMoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChhc3NpZ25tZW50c0Fzc2lnbmVkKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgc3VwcG9zaXRpb24gPSBTdXBwb3NpdGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgcHJvb2ZTdGVwID0gUHJvb2ZTdGVwLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgICAgIHN1cHBvc2l0aW9ucy5wdXNoKHN1cHBvc2l0aW9uKTtcblxuICAgICAgICBsb2NhbENvbnRleHQuYWRkUHJvb2ZTdGVwKHByb29mU3RlcCk7XG5cbiAgICAgICAgc3VwcG9zaXRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLmAsIHN1cHBvc2l0aW9uTm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3VwcG9zaXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdXBwb3NpdGlvbiIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25Ob2RlIiwic3VwcG9zaXRpb25zIiwibG9jYWxDb250ZXh0Iiwic3VwcG9zaXRpb25WZXJpZmllZCIsInN1cHBvc2l0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJkZXJpdmVkIiwiYXNzaWdubWVudHMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJhc3NpZ25tZW50c0Fzc2lnbmVkIiwiYXNzaWduQXNzaWdubWVudHMiLCJzdGF0ZW1lbnROb2RlIiwic3VwcG9zaXRpb24iLCJTdXBwb3NpdGlvbiIsImZyb21TdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGVwIiwiUHJvb2ZTdGVwIiwicHVzaCIsImFkZFByb29mU3RlcCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7O2dFQVZGO2tFQUNFO2tFQUNlO3FCQUViOzJCQUNROzs7Ozs7QUFFbEMsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLHFDQUMvQkMsZ0NBQWdDRCxJQUFBQSxnQkFBUyxFQUFDO0FBRWpDLFNBQVNGLGtCQUFrQkksZUFBZSxFQUFFQyxZQUFZLEVBQUVDLFlBQVk7SUFDbkYsSUFBSUMsc0JBQXNCO0lBRTFCLElBQU1DLG9CQUFvQkYsYUFBYUcsWUFBWSxDQUFDTDtJQUVwREUsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQW1DLE9BQWxCRixtQkFBa0IscUJBQW1CSjtJQUUxRSxJQUFNTywyQkFBMkJSLDhCQUE4QkM7SUFFL0QsSUFBSU8sNkJBQTZCLE1BQU07UUFDckMsSUFBTUMsVUFBVSxPQUNWQyxjQUFjLEVBQUUsRUFDaEJDLCtCQUErQkMsSUFBQUEsb0JBQTBCLEVBQUNKLDBCQUEwQkUsYUFBYUQsU0FBU047UUFFaEgsSUFBSVEsOEJBQThCO1lBQ2hDLElBQU1FLHNCQUFzQkMsSUFBQUEsOEJBQWlCLEVBQUNKLGFBQWFQO1lBRTNELElBQUlVLHFCQUFxQjtnQkFDdkIsSUFBTUUsZ0JBQWdCakIsbUJBQW1CVSwyQkFDbkNRLGNBQWNDLG9CQUFXLENBQUNDLGlCQUFpQixDQUFDSCxnQkFDNUNJLFlBQVlDLGtCQUFTLENBQUNGLGlCQUFpQixDQUFDSDtnQkFFOUNiLGFBQWFtQixJQUFJLENBQUNMO2dCQUVsQmIsYUFBYW1CLFlBQVksQ0FBQ0g7Z0JBRTFCZixzQkFBc0I7WUFDeEI7UUFDRjtJQUNGO0lBRUEsSUFBSUEscUJBQXFCO1FBQ3ZCRCxhQUFhb0IsS0FBSyxDQUFDLEFBQUMsb0JBQXFDLE9BQWxCbEIsbUJBQWtCLG1CQUFpQko7SUFDNUU7SUFFQSxPQUFPRztBQUNUIn0=
|
package/lib/verify/term.js
CHANGED
|
@@ -10,30 +10,36 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
12
|
var _term = /*#__PURE__*/ _interop_require_default(require("../term"));
|
|
13
|
-
var
|
|
14
|
-
var
|
|
13
|
+
var _termWithConstructors = /*#__PURE__*/ _interop_require_default(require("../unify/termWithConstructors"));
|
|
14
|
+
var _termWithBracketedConstructor = /*#__PURE__*/ _interop_require_default(require("../unify/termWithBracketedConstructor"));
|
|
15
15
|
var _query = require("../utilities/query");
|
|
16
16
|
function _interop_require_default(obj) {
|
|
17
17
|
return obj && obj.__esModule ? obj : {
|
|
18
18
|
default: obj
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
var
|
|
21
|
+
var variableNodeQuery = (0, _query.nodeQuery)("/term/variable!");
|
|
22
|
+
var unifyTermFunctions = [
|
|
23
|
+
_termWithBracketedConstructor.default,
|
|
24
|
+
_termWithConstructors.default
|
|
25
|
+
];
|
|
22
26
|
function verifyTerm(termNode, terms, localContext, verifyAhead) {
|
|
23
|
-
var termVerified;
|
|
27
|
+
var termVerified = false;
|
|
24
28
|
var termString = localContext.nodeAsString(termNode);
|
|
25
29
|
localContext.trace("Verifying the '".concat(termString, "' term..."), termNode);
|
|
26
|
-
|
|
27
|
-
verifyTermAsVariable,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
if (!termVerified) {
|
|
31
|
+
var termVerifiedAsVariable = verifyTermAsVariable(termNode, terms, localContext, verifyAhead);
|
|
32
|
+
termVerified = termVerifiedAsVariable; ///
|
|
33
|
+
}
|
|
34
|
+
if (!termVerified) {
|
|
35
|
+
var termUnified = unifyTermFunctions.some(function(unifyTermFunction) {
|
|
36
|
+
var termUnified = unifyTermFunction(termNode, terms, localContext, verifyAhead);
|
|
37
|
+
if (termUnified) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
termVerified = termUnified; ///
|
|
42
|
+
}
|
|
37
43
|
if (termVerified) {
|
|
38
44
|
localContext.debug("...verified the '".concat(termString, "' term."), termNode);
|
|
39
45
|
}
|
|
@@ -49,8 +55,8 @@ function verifyTermAsVariable(termNode, terms, localContext, verifyAhead) {
|
|
|
49
55
|
if (variableNode !== null) {
|
|
50
56
|
var termString = localContext.nodeAsString(termNode);
|
|
51
57
|
localContext.trace("Verifying the '".concat(termString, "' term as a variable..."), termNode);
|
|
52
|
-
var
|
|
53
|
-
if (
|
|
58
|
+
var variableVerified = verifyVariable(variableNode, localContext);
|
|
59
|
+
if (variableVerified) {
|
|
54
60
|
var verifiedAhead;
|
|
55
61
|
var type = variable.getType(), term = _term.default.fromTermNodeAndType(termNode, type);
|
|
56
62
|
terms.push(term);
|
|
@@ -64,54 +70,20 @@ function verifyTermAsVariable(termNode, terms, localContext, verifyAhead) {
|
|
|
64
70
|
}
|
|
65
71
|
return termVerifiedAsVariable;
|
|
66
72
|
}
|
|
67
|
-
function
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
return termUnifiedAgainstConstructors;
|
|
80
|
-
}
|
|
81
|
-
function unifyTermAgainstBracketedConstructor(termNode, terms, localContext, verifyAhead) {
|
|
82
|
-
var termUnifiedAgainstBracketedConstructor;
|
|
83
|
-
var termString = localContext.nodeAsString(termNode), bracketedTerms = [];
|
|
84
|
-
localContext.trace("Unifying the '".concat(termString, "' term against the bracketed constructor..."), termNode);
|
|
85
|
-
termUnifiedAgainstBracketedConstructor = unifyTermAgainstConstructor(termNode, bracketedTerms, _bracketed.default, localContext, function() {
|
|
86
|
-
var verifiedAhead;
|
|
87
|
-
var bracketedTermNode = termNode; ///
|
|
88
|
-
termNode = termNodeQuery(bracketedTermNode); ///
|
|
89
|
-
var termVVerified = verifyTerm(termNode, terms, localContext, verifyAhead);
|
|
90
|
-
verifiedAhead = termVVerified; ///
|
|
91
|
-
return verifiedAhead;
|
|
92
|
-
});
|
|
93
|
-
if (termUnifiedAgainstBracketedConstructor) {
|
|
94
|
-
localContext.debug("...unified the '".concat(termString, "' term against the bracketed constructor."), termNode);
|
|
95
|
-
}
|
|
96
|
-
return termUnifiedAgainstBracketedConstructor;
|
|
97
|
-
}
|
|
98
|
-
function unifyTermAgainstConstructor(termNode, terms, constructor, localContext, verifyAhead) {
|
|
99
|
-
var termUnifiedAgainstConstructor = false;
|
|
100
|
-
var termString = localContext.nodeAsString(termNode), constructorString = constructor.getString(), constructorTermNode = constructor.getTermNode();
|
|
101
|
-
localContext.trace("Unifying the '".concat(termString, "' term against the '").concat(constructorString, "' constructor..."), termNode);
|
|
102
|
-
var termNodeA = termNode, constructorTermNodeB = constructorTermNode, unified = _termAgainstConstructor.default.unify(termNodeA, constructorTermNodeB, localContext);
|
|
103
|
-
if (unified) {
|
|
104
|
-
var verifiedAhead;
|
|
105
|
-
var type = constructor.getType(), term = _term.default.fromTermNodeAndType(termNode, type);
|
|
106
|
-
terms.push(term);
|
|
107
|
-
verifiedAhead = verifyAhead();
|
|
108
|
-
terms.pop();
|
|
109
|
-
termUnifiedAgainstConstructor = verifiedAhead; ///
|
|
73
|
+
function verifyVariable(variableNode, localContext) {
|
|
74
|
+
var variableVerified = false;
|
|
75
|
+
var variableString = localContext.nodeAsString(variableNode);
|
|
76
|
+
localContext.trace("Verifying the '".concat(variableString, "' variable..."), variableNode);
|
|
77
|
+
var variablePresent = localContext.isVariablePresentByVariableNode(variableNode);
|
|
78
|
+
if (!variablePresent) {
|
|
79
|
+
localContext.trace("The '".concat(variableString, "' variable is not present."), variableNode);
|
|
80
|
+
} else {
|
|
81
|
+
variableVerified = true;
|
|
110
82
|
}
|
|
111
|
-
if (
|
|
112
|
-
localContext.debug("...
|
|
83
|
+
if (variableVerified) {
|
|
84
|
+
localContext.debug("...verified the '".concat(variableString, "' variable."), variableNode);
|
|
113
85
|
}
|
|
114
|
-
return
|
|
86
|
+
return variableVerified;
|
|
115
87
|
}
|
|
116
88
|
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBUZXJtIGZyb20gXCIuLi90ZXJtXCI7XG5pbXBvcnQgYnJhY2tldGVkQ29uc3RydWN0b3IgZnJvbSBcIi4uL2NvbnN0cnVjdG9yL2JyYWNrZXRlZFwiO1xuaW1wb3J0IHRlcm1BZ2FpbnN0Q29uc3RydWN0b3JVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL3Rlcm1BZ2FpbnN0Q29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vYXJndW1lbnQvdGVybVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpO1xuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgdmVyaWZ5VGVybUZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlUZXJtQXNWYXJpYWJsZSxcbiAgICB1bmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3JzLFxuICAgIHVuaWZ5VGVybUFnYWluc3RCcmFja2V0ZWRDb25zdHJ1Y3RvclxuICBdO1xuXG4gIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm1GdW5jdGlvbnMuc29tZSgodmVyaWZ5VGVybUZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybUZ1bmN0aW9uKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkO1xufVxuXG5PYmplY3QuYXNzaWduKHNoaW0sIHtcbiAgdmVyaWZ5VGVybVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVRlcm07XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgdmFyaWFibGUuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgY29uc3QgdHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUpO1xuXG4gICAgICB0ZXJtcy5wdXNoKHRlcm0pO1xuXG4gICAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgICAgdGVybXMucG9wKCk7XG5cbiAgICAgIHRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZmllZEFoZWFkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSB2YXJpYWJsZS5gLCB0ZXJtTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEFzVmFyaWFibGU7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvcnModGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVW5pZmllZEFnYWluc3RDb25zdHJ1Y3RvcnMgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZSk7XG5cbiAgaWYgKHZhcmlhYmxlTm9kZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IGxvY2FsQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTtcblxuICAgIHRlcm1VbmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycyA9IGNvbnN0cnVjdG9ycy5zb21lKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgICAgY29uc3QgdGVybVVuaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3IgPSB1bmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBjb25zdHJ1Y3RvciwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIGlmICh0ZXJtVW5pZmllZEFnYWluc3RDb25zdHJ1Y3Rvcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVW5pZmllZEFnYWluc3RDb25zdHJ1Y3RvcnM7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5VGVybUFnYWluc3RCcmFja2V0ZWRDb25zdHJ1Y3Rvcih0ZXJtTm9kZSwgdGVybXMsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHRlcm1VbmlmaWVkQWdhaW5zdEJyYWNrZXRlZENvbnN0cnVjdG9yO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKSxcbiAgICAgICAgYnJhY2tldGVkVGVybXMgPSBbXTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhZ2FpbnN0IHRoZSBicmFja2V0ZWQgY29uc3RydWN0b3IuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgdGVybVVuaWZpZWRBZ2FpbnN0QnJhY2tldGVkQ29uc3RydWN0b3IgPSB1bmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3IodGVybU5vZGUsIGJyYWNrZXRlZFRlcm1zLCBicmFja2V0ZWRDb25zdHJ1Y3RvciwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICBjb25zdCBicmFja2V0ZWRUZXJtTm9kZSA9IHRlcm1Ob2RlOyAvLy9cblxuICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShicmFja2V0ZWRUZXJtTm9kZSk7IC8vL1xuXG4gICAgY29uc3QgdGVybVZWZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIHZlcmlmaWVkQWhlYWQgPSB0ZXJtVlZlcmlmaWVkOyAgLy8vXG5cbiAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgfSk7XG5cbiAgaWYgKHRlcm1VbmlmaWVkQWdhaW5zdEJyYWNrZXRlZENvbnN0cnVjdG9yKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhZ2FpbnN0IHRoZSBicmFja2V0ZWQgY29uc3RydWN0b3IuYCwgdGVybU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1VbmlmaWVkQWdhaW5zdEJyYWNrZXRlZENvbnN0cnVjdG9yO1xufVxuXG5mdW5jdGlvbiB1bmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBjb25zdHJ1Y3RvciwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVVuaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3IgPSBmYWxzZTtcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSksXG4gICAgICAgIGNvbnN0cnVjdG9yU3RyaW5nID0gY29uc3RydWN0b3IuZ2V0U3RyaW5nKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3Rvci5nZXRUZXJtTm9kZSgpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFnYWluc3QgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgdGVybU5vZGVBID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgY29uc3RydWN0b3JUZXJtTm9kZUIgPSBjb25zdHJ1Y3RvclRlcm1Ob2RlLCAgLy8vXG4gICAgICAgIHVuaWZpZWQgPSB0ZXJtQWdhaW5zdENvbnN0cnVjdG9yVW5pZmllci51bmlmeSh0ZXJtTm9kZUEsIGNvbnN0cnVjdG9yVGVybU5vZGVCLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmICh1bmlmaWVkKSB7XG4gICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICBjb25zdCB0eXBlID0gY29uc3RydWN0b3IuZ2V0VHlwZSgpLFxuICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUpO1xuXG4gICAgdGVybXMucHVzaCh0ZXJtKTtcblxuICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgdGVybXMucG9wKCk7XG5cbiAgICB0ZXJtVW5pZmllZEFnYWluc3RDb25zdHJ1Y3RvciA9IHZlcmlmaWVkQWhlYWQ7ICAvLy9cbiAgfVxuXG4gIGlmICh0ZXJtVW5pZmllZEFnYWluc3RDb25zdHJ1Y3Rvcikge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYWdhaW5zdCB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGVybVVuaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3I7XG59XG5cbiJdLCJuYW1lcyI6WyJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJ2ZXJpZnlUZXJtIiwidGVybU5vZGUiLCJ0ZXJtcyIsImxvY2FsQ29udGV4dCIsInZlcmlmeUFoZWFkIiwidGVybVZlcmlmaWVkIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5VGVybUZ1bmN0aW9ucyIsInZlcmlmeVRlcm1Bc1ZhcmlhYmxlIiwidW5pZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyIsInVuaWZ5VGVybUFnYWluc3RCcmFja2V0ZWRDb25zdHJ1Y3RvciIsInNvbWUiLCJ2ZXJpZnlUZXJtRnVuY3Rpb24iLCJkZWJ1ZyIsIk9iamVjdCIsImFzc2lnbiIsInNoaW0iLCJ0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSIsInZlcmlmaWVkQWhlYWQiLCJ0eXBlIiwiZ2V0VHlwZSIsInRlcm0iLCJUZXJtIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSIsInB1c2giLCJwb3AiLCJ0ZXJtVW5pZmllZEFnYWluc3RDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvciIsInRlcm1VbmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yIiwidW5pZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9yIiwidGVybVVuaWZpZWRBZ2FpbnN0QnJhY2tldGVkQ29uc3RydWN0b3IiLCJicmFja2V0ZWRUZXJtcyIsImJyYWNrZXRlZENvbnN0cnVjdG9yIiwiYnJhY2tldGVkVGVybU5vZGUiLCJ0ZXJtVlZlcmlmaWVkIiwiY29uc3RydWN0b3JTdHJpbmciLCJnZXRTdHJpbmciLCJjb25zdHJ1Y3RvclRlcm1Ob2RlIiwiZ2V0VGVybU5vZGUiLCJ0ZXJtTm9kZUEiLCJjb25zdHJ1Y3RvclRlcm1Ob2RlQiIsInVuaWZpZWQiLCJ0ZXJtQWdhaW5zdENvbnN0cnVjdG9yVW5pZmllciIsInVuaWZ5Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE0Q0E7OztlQUFBOzs7MkRBMUNpQjsyREFDQTtnRUFDZ0I7NkVBQ1M7cUJBRWhCOzs7Ozs7QUFFMUIsSUFBTUEsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLHdCQUMxQkMsb0JBQW9CRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXBDLFNBQVNFLFdBQVdDLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxZQUFZLEVBQUVDLFdBQVc7SUFDNUQsSUFBSUM7SUFFSixJQUFNQyxhQUFhSCxhQUFhSSxZQUFZLENBQUNOO0lBRTdDRSxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBNEIsT0FBWEYsWUFBVyxjQUFZTDtJQUU1RCxJQUFNUSxzQkFBc0I7UUFDMUJDO1FBQ0FDO1FBQ0FDO0tBQ0Q7SUFFRFAsZUFBZUksb0JBQW9CSSxJQUFJLENBQUMsU0FBQ0M7UUFDdkMsSUFBTVQsZUFBZVMsbUJB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
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBUZXJtIGZyb20gXCIuLi90ZXJtXCI7XG5pbXBvcnQgdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9ycyBmcm9tIFwiLi4vdW5pZnkvdGVybVdpdGhDb25zdHJ1Y3RvcnNcIjtcbmltcG9ydCB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IgZnJvbSBcIi4uL3VuaWZ5L3Rlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKTtcblxuY29uc3QgdW5pZnlUZXJtRnVuY3Rpb25zID0gW1xuICAgICAgICB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IsXG4gICAgICAgIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvcnMsXG4gICAgICBdO1xuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmAsIHRlcm1Ob2RlKTtcblxuICBpZiAoIXRlcm1WZXJpZmllZCkge1xuICAgIGNvbnN0IHRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZnlUZXJtQXNWYXJpYWJsZSh0ZXJtTm9kZSwgdGVybXMsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgdGVybVZlcmlmaWVkID0gdGVybVZlcmlmaWVkQXNWYXJpYWJsZTsgLy8vXG4gIH1cblxuICBpZiAoIXRlcm1WZXJpZmllZCkge1xuICAgIGNvbnN0IHRlcm1VbmlmaWVkID0gdW5pZnlUZXJtRnVuY3Rpb25zLnNvbWUoKHVuaWZ5VGVybUZ1bmN0aW9uKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtVW5pZmllZCA9IHVuaWZ5VGVybUZ1bmN0aW9uKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIGlmICh0ZXJtVW5pZmllZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRlcm1WZXJpZmllZCA9IHRlcm1VbmlmaWVkOyAvLy9cbiAgfVxuXG4gIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkO1xufVxuXG5PYmplY3QuYXNzaWduKHNoaW0sIHtcbiAgdmVyaWZ5VGVybVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVRlcm07XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgdmFyaWFibGUuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgICBjb25zdCB2YXJpYWJsZVZlcmlmaWVkID0gdmVyaWZ5VmFyaWFibGUodmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICBjb25zdCB0eXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlQW5kVHlwZSh0ZXJtTm9kZSwgdHlwZSk7XG5cbiAgICAgIHRlcm1zLnB1c2godGVybSk7XG5cbiAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICB0ZXJtcy5wb3AoKTtcblxuICAgICAgdGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICAgIH1cblxuICAgIGlmICh0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIHZhcmlhYmxlLmAsIHRlcm1Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkQXNWYXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VmFyaWFibGUodmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodmFyaWFibGVOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmAsIHZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgdmFyaWFibGVQcmVzZW50ID0gbG9jYWxDb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICBpZiAoIXZhcmlhYmxlUHJlc2VudCkge1xuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgaXMgbm90IHByZXNlbnQuYCwgdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICB2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICh2YXJpYWJsZVZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gLCB2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ1bmlmeVRlcm1GdW5jdGlvbnMiLCJ1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IiLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzIiwidmVyaWZ5VGVybSIsInRlcm1Ob2RlIiwidGVybXMiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsInRlcm1WZXJpZmllZCIsInRlcm1TdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInRlcm1WZXJpZmllZEFzVmFyaWFibGUiLCJ2ZXJpZnlUZXJtQXNWYXJpYWJsZSIsInRlcm1VbmlmaWVkIiwic29tZSIsInVuaWZ5VGVybUZ1bmN0aW9uIiwiZGVidWciLCJPYmplY3QiLCJhc3NpZ24iLCJzaGltIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVWZXJpZmllZCIsInZlcmlmeVZhcmlhYmxlIiwidmVyaWZpZWRBaGVhZCIsInR5cGUiLCJ2YXJpYWJsZSIsImdldFR5cGUiLCJ0ZXJtIiwiVGVybSIsImZyb21UZXJtTm9kZUFuZFR5cGUiLCJwdXNoIiwicG9wIiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZVBy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
|
|
@@ -25,7 +25,7 @@ function verifyTermAsConstructor(termNode, typeNode, fileContext) {
|
|
|
25
25
|
if (typeVerified) {
|
|
26
26
|
var firstType = (0, _array.first)(types);
|
|
27
27
|
type = firstType; ///
|
|
28
|
-
termVerifiedAsConstructor = _termAsConstructor.default.
|
|
28
|
+
termVerifiedAsConstructor = _termAsConstructor.default.verifyTerm(termNode, fileContext);
|
|
29
29
|
}
|
|
30
30
|
if (termVerifiedAsConstructor) {
|
|
31
31
|
var tokens = fileContext.getTokens(), constructor = _constructor.default.fromTermNodeTypeAndTokens(termNode, type, tokens);
|
|
@@ -55,4 +55,4 @@ function verifyType(typeNode, types, fileContext) {
|
|
|
55
55
|
return typeVerified;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybUFzQ29uc3RydWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb25zdHJ1Y3RvciBmcm9tIFwiLi4vY29uc3RydWN0b3JcIjtcbmltcG9ydCB0ZXJtQXNDb25zdHJ1Y3RvclZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci90ZXJtQXNDb25zdHJ1Y3RvclwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VGVybUFzQ29uc3RydWN0b3IodGVybU5vZGUsIHR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdGVybVZlcmlmaWVkQXNDb25zdHJ1Y3RvciA9IGZhbHNlO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgY29uc3RydWN0b3IuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgdHlwZVZlcmlmaWVkID0gdmVyaWZ5VHlwZSh0eXBlTm9kZSwgdHlwZXMsIGZpbGVDb250ZXh0KTtcblxuICBsZXQgdHlwZTtcblxuICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgY29uc3QgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpO1xuXG4gICAgdHlwZSA9IGZpcnN0VHlwZTsgLy8vXG5cbiAgICB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yID0gdGVybUFzQ29uc3RydWN0b3JWZXJpZmllci52ZXJpZnlUZXJtKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCk7XG4gIH1cblxuICBpZiAodGVybVZlcmlmaWVkQXNDb25zdHJ1Y3Rvcikge1xuICAgIGNvbnN0IHRva2VucyA9IGZpbGVDb250ZXh0LmdldFRva2VucygpLFxuICAgICAgICAgIGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3IuZnJvbVRlcm1Ob2RlVHlwZUFuZFRva2Vucyh0ZXJtTm9kZSwgdHlwZSwgdG9rZW5zKTtcblxuICAgIGZpbGVDb250ZXh0LmFkZENvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIGlmICh0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIGNvbnN0cnVjdG9yLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUeXBlKHR5cGVOb2RlLCB0eXBlcywgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHR5cGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmICh0eXBlTm9kZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHR5cGUgPSBudWxsO1xuXG4gICAgdHlwZXMucHVzaCh0eXBlKTtcblxuICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZXMucHVzaCh0eXBlKTtcblxuICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0eXBlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VGVybUFzQ29uc3RydWN0b3IiLCJ0ZXJtTm9kZSIsInR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJ0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwidHlwZXMiLCJ0eXBlVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlIiwidHlwZSIsImZpcnN0VHlwZSIsImZpcnN0IiwidGVybUFzQ29uc3RydWN0b3JWZXJpZmllciIsInZlcmlmeVRlcm0iLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJjb25zdHJ1Y3RvciIsIkNvbnN0cnVjdG9yIiwiZnJvbVRlcm1Ob2RlVHlwZUFuZFRva2VucyIsImFkZENvbnN0cnVjdG9yIiwicHVzaCIsImZpbmRUeXBlQnlUeXBlTm9kZSIsInR5cGVTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBd0JBOzs7a0VBTEE7d0VBQ2M7cUJBRWhCOzs7Ozs7QUFFUCxTQUFTQSx3QkFBd0JDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxXQUFXO0lBQzdFLElBQUlDLDRCQUE0QjtJQUVoQyxJQUFNQyxhQUFhRixZQUFZRyxZQUFZLENBQUNMO0lBRTVDRSxZQUFZSSxLQUFLLENBQUMsQUFBQyxrQkFBNEIsT0FBWEYsWUFBVywrQkFBNkJKO0lBRTVFLElBQU1PLFFBQVEsRUFBRSxFQUNWQyxlQUFlQyxXQUFXUixVQUFVTSxPQUFPTDtJQUVqRCxJQUFJUTtJQUVKLElBQUlGLGNBQWM7UUFDaEIsSUFBTUcsWUFBWUMsSUFBQUEsWUFBSyxFQUFDTDtRQUV4QkcsT0FBT0MsV0FBVyxHQUFHO1FBRXJCUiw0QkFBNEJVLDBCQUF5QixDQUFDQyxVQUFVLENBQUNkLFVBQVVFO0lBQzdFO0lBRUEsSUFBSUMsMkJBQTJCO1FBQzdCLElBQU1ZLFNBQVNiLFlBQVljLFNBQVMsSUFDOUJDLGNBQWNDLG9CQUFXLENBQUNDLHlCQUF5QixDQUFDbkIsVUFBVVUsTUFBTUs7UUFFMUViLFlBQVlrQixjQUFjLENBQUNIO0lBQzdCO0lBRUEsSUFBSWQsMkJBQTJCO1FBQzdCRCxZQUFZSSxLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWEYsWUFBVyw2QkFBMkJKO0lBQzlFO0lBRUEsT0FBT0c7QUFDVDtBQUVBLFNBQVNNLFdBQVdSLFFBQVEsRUFBRU0sS0FBSyxFQUFFTCxXQUFXO0lBQzlDLElBQUlNLGVBQWU7SUFFbkIsSUFBSVAsYUFBYSxNQUFNO1FBQ3JCLElBQU1TLE9BQU87UUFFYkgsTUFBTWMsSUFBSSxDQUFDWDtRQUVYRixlQUFlO0lBQ2pCLE9BQU87UUFDTCxJQUFNRSxRQUFPUixZQUFZb0Isa0JBQWtCLENBQUNyQjtRQUU1QyxJQUFJUyxVQUFTLE1BQU07WUFDakJILE1BQU1jLElBQUksQ0FBQ1g7WUFFWEYsZUFBZTtRQUNqQixPQUFPO1lBQ0wsSUFBTWUsYUFBYXJCLFlBQVlHLFlBQVksQ0FBQ0o7WUFFNUNDLFlBQVlJLEtBQUssQ0FBQyxBQUFDLFFBQWtCLE9BQVhpQixZQUFXLDJCQUF5QnRCO1FBQ2hFO0lBQ0Y7SUFFQSxPQUFPTztBQUNUIn0=
|
|
@@ -0,0 +1,34 @@
|
|
|
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 verifyTermGivenType;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
|
+
var _array = require("../utilities/array");
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function verifyTermGivenType(termNode, type, localContext) {
|
|
19
|
+
var termVerifiedGivenType = false;
|
|
20
|
+
if (type !== null) {
|
|
21
|
+
var verifyTerm = _shim.default.verifyTerm, terms = [], termVerified = verifyTerm(termNode, terms, localContext, function() {
|
|
22
|
+
var verifiedAhead = false;
|
|
23
|
+
var firstTerm = (0, _array.first)(terms), term = firstTerm, termType = term.getType(), termTypeEqualToOrSubTypeOfType = termType.isEqualToOrSubTypeOf(type);
|
|
24
|
+
if (termTypeEqualToOrSubTypeOfType) {
|
|
25
|
+
verifiedAhead = true;
|
|
26
|
+
}
|
|
27
|
+
return verifiedAhead;
|
|
28
|
+
});
|
|
29
|
+
termVerifiedGivenType = termVerified; ///
|
|
30
|
+
}
|
|
31
|
+
return termVerifiedGivenType;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybUdpdmVuVHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVRlcm1HaXZlblR5cGUodGVybU5vZGUsIHR5cGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdGVybVZlcmlmaWVkR2l2ZW5UeXBlID0gZmFsc2U7XG5cbiAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB7IHZlcmlmeVRlcm0gfSA9IHNoaW0sXG4gICAgICAgICAgdGVybXMgPSBbXSxcbiAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zdCBmaXJzdFRlcm0gPSBmaXJzdCh0ZXJtcyksXG4gICAgICAgICAgICAgICAgICB0ZXJtID0gZmlyc3RUZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgICB0ZXJtVHlwZUVxdWFsVG9PclN1YlR5cGVPZlR5cGUgPSB0ZXJtVHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZih0eXBlKTtcblxuICAgICAgICAgICAgaWYgKHRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSkge1xuICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICB0ZXJtVmVyaWZpZWRHaXZlblR5cGUgPSB0ZXJtVmVyaWZpZWQ7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEdpdmVuVHlwZTtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUZXJtR2l2ZW5UeXBlIiwidGVybU5vZGUiLCJ0eXBlIiwibG9jYWxDb250ZXh0IiwidGVybVZlcmlmaWVkR2l2ZW5UeXBlIiwidmVyaWZ5VGVybSIsInNoaW0iLCJ0ZXJtcyIsInRlcm1WZXJpZmllZCIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm0iLCJ0ZXJtVHlwZSIsImdldFR5cGUiLCJ0ZXJtVHlwZUVxdWFsVG9PclN1YlR5cGVPZlR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7OzsyREFKUDtxQkFFSzs7Ozs7O0FBRVAsU0FBU0Esb0JBQW9CQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsWUFBWTtJQUN0RSxJQUFJQyx3QkFBd0I7SUFFNUIsSUFBSUYsU0FBUyxNQUFNO1FBQ2pCLElBQU0sQUFBRUcsYUFBZUMsYUFBSSxDQUFuQkQsWUFDRkUsUUFBUSxFQUFFLEVBQ1ZDLGVBQWVILFdBQVdKLFVBQVVNLE9BQU9KLGNBQWM7WUFDdkQsSUFBSU0sZ0JBQWdCO1lBRXBCLElBQU1DLFlBQVlDLElBQUFBLFlBQUssRUFBQ0osUUFDbEJLLE9BQU9GLFdBQ1BHLFdBQVdELEtBQUtFLE9BQU8sSUFDdkJDLGlDQUFpQ0YsU0FBU0csb0JBQW9CLENBQUNkO1lBRXJFLElBQUlhLGdDQUFnQztnQkFDbENOLGdCQUFnQjtZQUNsQjtZQUVBLE9BQU9BO1FBQ1Q7UUFFTkwsd0JBQXdCSSxjQUFjLEdBQUc7SUFDM0M7SUFFQSxPQUFPSjtBQUNUIn0=
|
package/package.json
CHANGED
package/src/context/file.js
CHANGED
|
@@ -620,6 +620,45 @@ export default class FileContext {
|
|
|
620
620
|
|
|
621
621
|
fatal(message, node) { this.releaseContext.fatal(message, node, this.tokens, this.filePath); }
|
|
622
622
|
|
|
623
|
+
reset() {
|
|
624
|
+
this.types = [];
|
|
625
|
+
this.rules = [];
|
|
626
|
+
this.axioms = [];
|
|
627
|
+
this.lemmas = [];
|
|
628
|
+
this.theorems = [];
|
|
629
|
+
this.variables = [];
|
|
630
|
+
this.metaLemmas = [];
|
|
631
|
+
this.conjectures = [];
|
|
632
|
+
this.combinators = [];
|
|
633
|
+
this.constructors = [];
|
|
634
|
+
this.metatheorems = [];
|
|
635
|
+
this.metavariables = [];
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
verify() {
|
|
639
|
+
let verified = false;
|
|
640
|
+
|
|
641
|
+
if (this.tokens === null) {
|
|
642
|
+
const lexer = this.getLexer(),
|
|
643
|
+
parser = this.getParser(),
|
|
644
|
+
content = this.fileContent; ///
|
|
645
|
+
|
|
646
|
+
this.tokens = lexer.tokenise(content);
|
|
647
|
+
|
|
648
|
+
this.node = parser.parse(this.tokens);
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
if (this.node !== null) {
|
|
652
|
+
this.reset();
|
|
653
|
+
|
|
654
|
+
const fileContext = this; ///
|
|
655
|
+
|
|
656
|
+
verified = topLevelVerifier.verify(this.node, fileContext);
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
return verified;
|
|
660
|
+
}
|
|
661
|
+
|
|
623
662
|
toJSON() {
|
|
624
663
|
const filePath = this.filePath,
|
|
625
664
|
fileContent = this.fileContent,
|
|
@@ -631,23 +670,9 @@ export default class FileContext {
|
|
|
631
670
|
return json;
|
|
632
671
|
}
|
|
633
672
|
|
|
634
|
-
|
|
635
|
-
const
|
|
636
|
-
|
|
637
|
-
content = this.fileContent, ///
|
|
638
|
-
fileContext = this;
|
|
639
|
-
|
|
640
|
-
this.tokens = lexer.tokenise(content);
|
|
641
|
-
|
|
642
|
-
this.node = parser.parse(this.tokens);
|
|
643
|
-
|
|
644
|
-
const verified = topLevelVerifier.verify(this.node, fileContext);
|
|
645
|
-
|
|
646
|
-
return verified;
|
|
647
|
-
}
|
|
648
|
-
|
|
649
|
-
static fromJSONAndReleaseContext(json, releaseContext) {
|
|
650
|
-
const { fileContent, filePath } = json,
|
|
673
|
+
static fromFileAndReleaseContext(file, releaseContext) {
|
|
674
|
+
const fileContent = file.getContent(),
|
|
675
|
+
filePath = file.getPath(),
|
|
651
676
|
tokens = null,
|
|
652
677
|
node = null,
|
|
653
678
|
types = [],
|
package/src/context/local.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import Variable from "../variable";
|
|
4
3
|
import Equivalence from "../equivalence";
|
|
5
4
|
|
|
6
5
|
import { last, reverse } from "../utilities/array";
|
|
@@ -235,26 +234,18 @@ class LocalContext {
|
|
|
235
234
|
|
|
236
235
|
proofSteps = reverse(proofSteps); ///
|
|
237
236
|
|
|
238
|
-
const localContextA = this, ///
|
|
239
|
-
localContextB = localContext, ///
|
|
240
|
-
statementNodeAB = statementNode, ///
|
|
241
|
-
statementStringB = localContextA.nodeAsString(statementNodeAB);
|
|
242
|
-
|
|
243
|
-
localContextB.trace(`Unifying the '${statementStringB}' statement...`, statementNodeAB);
|
|
244
|
-
|
|
245
237
|
const equivalences = this.getEquivalences(),
|
|
238
|
+
localContextA = this, ///
|
|
239
|
+
localContextB = localContext, ///
|
|
240
|
+
statementNodeB = statementNode, ///
|
|
246
241
|
statementUnified = proofSteps.some((proofStep) => {
|
|
247
|
-
const statementUnified = proofStep.unifyStatement(
|
|
242
|
+
const statementUnified = proofStep.unifyStatement(statementNodeB, equivalences, localContextA, localContextB);
|
|
248
243
|
|
|
249
244
|
if (statementUnified) {
|
|
250
245
|
return true;
|
|
251
246
|
}
|
|
252
247
|
});
|
|
253
248
|
|
|
254
|
-
if (statementUnified) {
|
|
255
|
-
localContextB.debug(`...unified the '${statementStringB}' statement.`, statementNodeAB);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
249
|
return statementUnified;
|
|
259
250
|
}
|
|
260
251
|
|
package/src/context/release.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { filePathUtilities } from "occam-entities";
|
|
3
4
|
import { lexersUtilities, parsersUtilities } from "occam-custom-grammars";
|
|
4
5
|
|
|
5
6
|
import FileContext from "./file";
|
|
@@ -8,18 +9,20 @@ import { objectType } from "../type";
|
|
|
8
9
|
import { tail, push, leftDifference } from "../utilities/array";
|
|
9
10
|
import { customGrammarFromNameAndEntries, combinedCustomGrammarFromReleaseContexts } from "../utilities/customGrammar";
|
|
10
11
|
|
|
11
|
-
const {
|
|
12
|
+
const { isFilePathFlorenceFilePath } = filePathUtilities,
|
|
13
|
+
{ florenceLexerFromCombinedCustomGrammar } = lexersUtilities,
|
|
12
14
|
{ florenceParserFromCombinedCustomGrammar } = parsersUtilities;
|
|
13
15
|
|
|
14
16
|
export default class ReleaseContext {
|
|
15
|
-
constructor(log,
|
|
17
|
+
constructor(log, name, entries, released, lexer, parser, verified, initialised, fileContexts, customGrammar, loggingDisabled, dependencyReleaseContexts) {
|
|
16
18
|
this.log = log;
|
|
17
|
-
this.json = json;
|
|
18
19
|
this.name = name;
|
|
20
|
+
this.entries = entries;
|
|
21
|
+
this.released = released;
|
|
19
22
|
this.lexer = lexer;
|
|
20
23
|
this.parser = parser;
|
|
21
|
-
this.entries = entries;
|
|
22
24
|
this.verified = verified;
|
|
25
|
+
this.initialised = initialised;
|
|
23
26
|
this.fileContexts = fileContexts;
|
|
24
27
|
this.customGrammar = customGrammar;
|
|
25
28
|
this.loggingDisabled = loggingDisabled;
|
|
@@ -30,14 +33,18 @@ export default class ReleaseContext {
|
|
|
30
33
|
return log;
|
|
31
34
|
}
|
|
32
35
|
|
|
33
|
-
getJSON() {
|
|
34
|
-
return this.json;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
36
|
getName() {
|
|
38
37
|
return this.name;
|
|
39
38
|
}
|
|
40
39
|
|
|
40
|
+
getEntries() {
|
|
41
|
+
return this.entries;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
isReleased() {
|
|
45
|
+
return this.released;
|
|
46
|
+
}
|
|
47
|
+
|
|
41
48
|
getLexer() {
|
|
42
49
|
return this.lexer;
|
|
43
50
|
}
|
|
@@ -46,14 +53,14 @@ export default class ReleaseContext {
|
|
|
46
53
|
return this.parser;
|
|
47
54
|
}
|
|
48
55
|
|
|
49
|
-
getEntries() {
|
|
50
|
-
return this.entries;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
56
|
isVerified() {
|
|
54
57
|
return this.verified;
|
|
55
58
|
}
|
|
56
59
|
|
|
60
|
+
isInitialised() {
|
|
61
|
+
return this.initialised;
|
|
62
|
+
}
|
|
63
|
+
|
|
57
64
|
getFileContexts() {
|
|
58
65
|
return this.fileContexts;
|
|
59
66
|
}
|
|
@@ -74,14 +81,18 @@ export default class ReleaseContext {
|
|
|
74
81
|
this.log = log;
|
|
75
82
|
}
|
|
76
83
|
|
|
77
|
-
setJSON(json) {
|
|
78
|
-
this.json = json;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
84
|
setName(name) {
|
|
82
85
|
this.name = name;
|
|
83
86
|
}
|
|
84
87
|
|
|
88
|
+
setEntries(entries) {
|
|
89
|
+
this.entries = entries;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
setReleased(released) {
|
|
93
|
+
this.released = released;
|
|
94
|
+
}
|
|
95
|
+
|
|
85
96
|
setLexer(lexer) {
|
|
86
97
|
this.lexer = lexer;
|
|
87
98
|
}
|
|
@@ -90,14 +101,14 @@ export default class ReleaseContext {
|
|
|
90
101
|
this.parser = parser;
|
|
91
102
|
}
|
|
92
103
|
|
|
93
|
-
setEntries(entries) {
|
|
94
|
-
this.entries = entries;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
104
|
setVerified(verified) {
|
|
98
105
|
this.verified = verified;
|
|
99
106
|
}
|
|
100
107
|
|
|
108
|
+
setInitialised(initialised) {
|
|
109
|
+
return this.initialised = initialised;
|
|
110
|
+
}
|
|
111
|
+
|
|
101
112
|
setFileContexts(fileContexts) {
|
|
102
113
|
this.fileContexts = fileContexts;
|
|
103
114
|
}
|
|
@@ -376,12 +387,6 @@ export default class ReleaseContext {
|
|
|
376
387
|
return type;
|
|
377
388
|
}
|
|
378
389
|
|
|
379
|
-
isReleased() {
|
|
380
|
-
const released = (this.json !== null);
|
|
381
|
-
|
|
382
|
-
return released;
|
|
383
|
-
}
|
|
384
|
-
|
|
385
390
|
getReleaseName() {
|
|
386
391
|
const name = this.getName(),
|
|
387
392
|
releaseName = name; ///
|
|
@@ -459,7 +464,9 @@ export default class ReleaseContext {
|
|
|
459
464
|
this.log.fatal(message, node, tokens, filePath);
|
|
460
465
|
}
|
|
461
466
|
|
|
462
|
-
|
|
467
|
+
initialise(releaseContexts) {
|
|
468
|
+
let initialised;
|
|
469
|
+
|
|
463
470
|
const combinedCustomGrammar = combinedCustomGrammarFromReleaseContexts(releaseContexts),
|
|
464
471
|
florenceParser = florenceParserFromCombinedCustomGrammar(combinedCustomGrammar),
|
|
465
472
|
florenceLexer = florenceLexerFromCombinedCustomGrammar(combinedCustomGrammar);
|
|
@@ -468,21 +475,39 @@ export default class ReleaseContext {
|
|
|
468
475
|
|
|
469
476
|
this.parser = florenceParser; ///
|
|
470
477
|
|
|
471
|
-
this.dependencyReleaseContexts = tail(releaseContexts)
|
|
478
|
+
this.dependencyReleaseContexts = tail(releaseContexts);
|
|
472
479
|
|
|
473
|
-
if (this.
|
|
474
|
-
const
|
|
480
|
+
if (this.released) {
|
|
481
|
+
const verified = this.verify();
|
|
475
482
|
|
|
476
|
-
|
|
483
|
+
initialised = verified; ///
|
|
484
|
+
} else {
|
|
485
|
+
initialised = true;
|
|
486
|
+
}
|
|
477
487
|
|
|
478
|
-
|
|
488
|
+
this.initialised = initialised;
|
|
479
489
|
|
|
480
|
-
|
|
490
|
+
return initialised;
|
|
491
|
+
}
|
|
481
492
|
|
|
482
|
-
|
|
493
|
+
verify() {
|
|
494
|
+
let verified;
|
|
483
495
|
|
|
484
|
-
|
|
485
|
-
|
|
496
|
+
const releaseContext = this;
|
|
497
|
+
|
|
498
|
+
releaseContext.disableLogging();
|
|
499
|
+
|
|
500
|
+
this.fileContexts = fileContextsFromEntries(this.entries, releaseContext);
|
|
501
|
+
|
|
502
|
+
const fileContextsVerified = verifyFileContexts(this.fileContexts, releaseContext);
|
|
503
|
+
|
|
504
|
+
verified = fileContextsVerified; ///
|
|
505
|
+
|
|
506
|
+
releaseContext.enableLogging();
|
|
507
|
+
|
|
508
|
+
this.verified = verified;
|
|
509
|
+
|
|
510
|
+
return verified;
|
|
486
511
|
}
|
|
487
512
|
|
|
488
513
|
toJSON() {
|
|
@@ -496,21 +521,24 @@ export default class ReleaseContext {
|
|
|
496
521
|
return json;
|
|
497
522
|
}
|
|
498
523
|
|
|
499
|
-
static
|
|
524
|
+
static fromLogNameEntriesAndReleased(log, name, entries, released) {
|
|
500
525
|
const lexer = null,
|
|
501
526
|
parser = null,
|
|
502
527
|
verified = false,
|
|
528
|
+
initialised = false,
|
|
503
529
|
fileContexts = [],
|
|
504
530
|
customGrammar = customGrammarFromNameAndEntries(name, entries),
|
|
505
531
|
loggingDisabled = false,
|
|
506
532
|
dependencyReleaseContexts = null,
|
|
507
|
-
releaseContext = new ReleaseContext(log,
|
|
533
|
+
releaseContext = new ReleaseContext(log, name, entries, released, lexer, parser, verified, initialised, fileContexts, customGrammar, loggingDisabled, dependencyReleaseContexts);
|
|
508
534
|
|
|
509
535
|
return releaseContext;
|
|
510
536
|
}
|
|
511
537
|
}
|
|
512
538
|
|
|
513
539
|
function verifyFileContexts(fileContexts, releaseContext) {
|
|
540
|
+
let fileContextsVerified;
|
|
541
|
+
|
|
514
542
|
fileContexts = [ ///
|
|
515
543
|
...fileContexts
|
|
516
544
|
];
|
|
@@ -543,16 +571,27 @@ function verifyFileContexts(fileContexts, releaseContext) {
|
|
|
543
571
|
|
|
544
572
|
leftDifference(fileContexts, verifiedFileContexts);
|
|
545
573
|
}
|
|
574
|
+
|
|
575
|
+
const fileContextsLength = fileContexts.length;
|
|
576
|
+
|
|
577
|
+
fileContextsVerified = (fileContextsLength === 0);
|
|
578
|
+
|
|
579
|
+
return fileContextsVerified;
|
|
546
580
|
}
|
|
547
581
|
|
|
548
|
-
function
|
|
549
|
-
const
|
|
550
|
-
fileContexts = fileContextsJSON.map((fileContextJSON) => {
|
|
551
|
-
const json = fileContextJSON, ///
|
|
552
|
-
fileContext = FileContext.fromJSONAndReleaseContext(json, releaseContext);
|
|
582
|
+
function fileContextsFromEntries(entries, releaseContext) {
|
|
583
|
+
const fileContexts = [];
|
|
553
584
|
|
|
554
|
-
|
|
555
|
-
|
|
585
|
+
entries.forEachFile((file) => {
|
|
586
|
+
const filePath = file.getPath(),
|
|
587
|
+
filePathFlorenceFilePath = isFilePathFlorenceFilePath(filePath);
|
|
588
|
+
|
|
589
|
+
if (filePathFlorenceFilePath) {
|
|
590
|
+
const fileContext = FileContext.fromFileAndReleaseContext(file, releaseContext);
|
|
591
|
+
|
|
592
|
+
fileContexts.push(fileContext);
|
|
593
|
+
}
|
|
594
|
+
});
|
|
556
595
|
|
|
557
596
|
return fileContexts;
|
|
558
597
|
}
|
package/src/frame.js
CHANGED
|
@@ -38,9 +38,9 @@ export default class Frame {
|
|
|
38
38
|
|
|
39
39
|
unifySubstitution(substitution) {
|
|
40
40
|
const substitutionUnified = this.declarations.some((declaration) => {
|
|
41
|
-
const
|
|
41
|
+
const substitutionUnifiedWithDeclaration = declaration.unifySubstitution(substitution);
|
|
42
42
|
|
|
43
|
-
if (
|
|
43
|
+
if (substitutionUnifiedWithDeclaration) {
|
|
44
44
|
return true;
|
|
45
45
|
}
|
|
46
46
|
});
|