occam-verify-cli 0.0.929 → 0.0.930
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/verifier/nodes/statementAgainstCombinator.js +3 -3
- package/lib/verifier/nodes/termAgainstConstructor.js +2 -2
- package/lib/verify/assertion/contained.js +36 -44
- package/lib/verify/assertion/defined.js +37 -45
- package/lib/verify/statement.js +32 -6
- package/lib/verify/statementAgainstMetaType.js +7 -3
- package/package.json +2 -2
- package/src/verifier/nodes/statementAgainstCombinator.js +4 -3
- package/src/verifier/nodes/termAgainstConstructor.js +1 -1
- package/src/verify/assertion/contained.js +39 -49
- package/src/verify/assertion/defined.js +38 -48
- package/src/verify/statement.js +45 -6
- package/src/verify/statementAgainstMetaType.js +10 -2
- package/lib/verify/metastatement.js +0 -92
- package/src/verify/metastatement.js +0 -114
|
@@ -5,14 +5,22 @@ import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
|
5
5
|
|
|
6
6
|
const metaTypeTerminalNodeQuery = nodeQuery("/metaType/@meta-type!");
|
|
7
7
|
|
|
8
|
-
export default function verifyStatementAgainstMetaType(statementNode, metaTypeNode, localContext, verifyAhead) {
|
|
8
|
+
export default function verifyStatementAgainstMetaType(statementNode, metaTypeNode, localContext, verifyAhead, verifyStatement) {
|
|
9
9
|
let statementVerifiedAgainstMetaType = false;
|
|
10
10
|
|
|
11
11
|
const metaTypeTerminalNode = metaTypeTerminalNodeQuery(metaTypeNode),
|
|
12
12
|
content = metaTypeTerminalNode.getContent();
|
|
13
13
|
|
|
14
14
|
if (content === STATEMENT_META_TYPE_NAME) {
|
|
15
|
-
|
|
15
|
+
let verifiedAhead = false;
|
|
16
|
+
|
|
17
|
+
const derived = false,
|
|
18
|
+
assignments = [],
|
|
19
|
+
statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
|
|
20
|
+
|
|
21
|
+
if (statementVerified) {
|
|
22
|
+
verifiedAhead = verifyAhead();
|
|
23
|
+
}
|
|
16
24
|
|
|
17
25
|
statementVerifiedAgainstMetaType = verifiedAhead; ///
|
|
18
26
|
}
|
|
@@ -1,92 +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 _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metaLevel"));
|
|
12
|
-
var _query = require("../utilities/query");
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
var judgementNodeQuery = (0, _query.nodeQuery)("/statement/judgement!");
|
|
19
|
-
function verifyStatement(statementNode, assignments, derived, localContext) {
|
|
20
|
-
var statementVerified;
|
|
21
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
22
|
-
localContext.trace("Verifying the '".concat(statementString, "' statement..."), statementNode);
|
|
23
|
-
var verifyStatementFunctions = [
|
|
24
|
-
verifyStatementAsIs
|
|
25
|
-
];
|
|
26
|
-
statementVerified = verifyStatementFunctions.some(function(verifyStatementFunction) {
|
|
27
|
-
var statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext);
|
|
28
|
-
if (statementVerified) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
if (statementVerified) {
|
|
33
|
-
localContext.debug("...verified the '".concat(statementString, "' statement."), statementNode);
|
|
34
|
-
}
|
|
35
|
-
return statementVerified;
|
|
36
|
-
}
|
|
37
|
-
Object.assign(_metaLevel.default, {
|
|
38
|
-
verifyStatement: verifyStatement
|
|
39
|
-
});
|
|
40
|
-
var _default = verifyStatement;
|
|
41
|
-
function verifyStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
42
|
-
var statementVerifiedAsIs;
|
|
43
|
-
var statementJudgement = isStatementJudgement(statementNode);
|
|
44
|
-
if (!statementJudgement) {
|
|
45
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
46
|
-
localContext.trace("Verifying the '".concat(statementString, "' statement as is..."), statementNode);
|
|
47
|
-
var verifyStatementAsIsFunctions = [
|
|
48
|
-
verifyDerivedStatementAsIs,
|
|
49
|
-
verifyStatedStatementAsIs
|
|
50
|
-
];
|
|
51
|
-
statementVerifiedAsIs = verifyStatementAsIsFunctions.some(function(verifyStatementAsIsFunction) {
|
|
52
|
-
var statementVerifiedAsIs = verifyStatementAsIsFunction(statementNode, assignments, derived, localContext);
|
|
53
|
-
if (statementVerifiedAsIs) {
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
if (statementVerifiedAsIs) {
|
|
58
|
-
localContext.debug("...verified the '".concat(statementString, "' statement as is."), statementNode);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return statementVerifiedAsIs;
|
|
62
|
-
}
|
|
63
|
-
function verifyDerivedStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
64
|
-
var derivedStatementVerifiedAsIs = false;
|
|
65
|
-
if (derived) {
|
|
66
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
67
|
-
localContext.debug("Cannot verify the '".concat(statementString, "' derived statement as is."), statementNode);
|
|
68
|
-
}
|
|
69
|
-
return derivedStatementVerifiedAsIs;
|
|
70
|
-
}
|
|
71
|
-
function verifyStatedStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
72
|
-
var statedStatementVerifiedAsIs = false;
|
|
73
|
-
if (!derived) {
|
|
74
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
75
|
-
localContext.trace("Verifying the '".concat(statementString, "' stated statement as is..."), statementNode);
|
|
76
|
-
var nonTerminalNode = statementNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
|
|
77
|
-
var verifiedAhead = true;
|
|
78
|
-
return verifiedAhead;
|
|
79
|
-
});
|
|
80
|
-
statedStatementVerifiedAsIs = nonTerminalNodeVerified; ///
|
|
81
|
-
if (statedStatementVerifiedAsIs) {
|
|
82
|
-
localContext.debug("...verified the '".concat(statementString, "' stated statement as is."), statementNode);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return statedStatementVerifiedAsIs;
|
|
86
|
-
}
|
|
87
|
-
function isStatementJudgement(statementNode) {
|
|
88
|
-
var judgementNode = judgementNodeQuery(statementNode), statementJudgement = judgementNode !== null;
|
|
89
|
-
return statementJudgement;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGFMZXZlbE5vZGVWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZS9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBqdWRnZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2p1ZGdlbWVudCFcIik7XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZDtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNJc1xuICBdO1xuXG4gIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24obWV0YUxldmVsTm9kZVZlcmlmaWVyLCB7XG4gIHZlcmlmeVN0YXRlbWVudFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVN0YXRlbWVudDtcblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNJcyhzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzSXM7XG5cbiAgY29uc3Qgc3RhdGVtZW50SnVkZ2VtZW50ID0gaXNTdGF0ZW1lbnRKdWRnZW1lbnQoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKCFzdGF0ZW1lbnRKdWRnZW1lbnQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBpcy4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgdmVyaWZ5U3RhdGVtZW50QXNJc0Z1bmN0aW9ucyA9IFtcbiAgICAgIHZlcmlmeURlcml2ZWRTdGF0ZW1lbnRBc0lzLFxuICAgICAgdmVyaWZ5U3RhdGVkU3RhdGVtZW50QXNJc1xuICAgIF07XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzSXMgPSB2ZXJpZnlTdGF0ZW1lbnRBc0lzRnVuY3Rpb25zLnNvbWUoKHZlcmlmeVN0YXRlbWVudEFzSXNGdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBc0lzID0gdmVyaWZ5U3RhdGVtZW50QXNJc0Z1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0lzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNJcykge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGlzLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzSXM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWRTdGF0ZW1lbnRBc0lzKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzSXMgPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQuZGVidWcoYENhbm5vdCB2ZXJpZnkgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgc3RhdGVtZW50IGFzIGlzLmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzSXM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZFN0YXRlbWVudEFzSXMoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0lzID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZWQgc3RhdGVtZW50IGFzIGlzLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFMZXZlbE5vZGVWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICB9KTtcblxuICAgIHN0YXRlZFN0YXRlbWVudFZlcmlmaWVkQXNJcyA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgICBpZiAoc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0lzKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZWQgc3RhdGVtZW50IGFzIGlzLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZWRTdGF0ZW1lbnRWZXJpZmllZEFzSXM7XG59XG5cbmZ1bmN0aW9uIGlzU3RhdGVtZW50SnVkZ2VtZW50KHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3QganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudE5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3RhdGVtZW50SnVkZ2VtZW50ID0gKGp1ZGdlbWVudE5vZGUgIT09IG51bGwpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRKdWRnZW1lbnQ7XG59Il0sIm5hbWVzIjpbImp1ZGdlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZlcmlmeVN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zIiwidmVyaWZ5U3RhdGVtZW50QXNJcyIsInNvbWUiLCJ2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbiIsImRlYnVnIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0YUxldmVsTm9kZVZlcmlmaWVyIiwic3RhdGVtZW50VmVyaWZpZWRBc0lzIiwic3RhdGVtZW50SnVkZ2VtZW50IiwiaXNTdGF0ZW1lbnRKdWRnZW1lbnQiLCJ2ZXJpZnlTdGF0ZW1lbnRBc0lzRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZFN0YXRlbWVudEFzSXMiLCJ2ZXJpZnlTdGF0ZWRTdGF0ZW1lbnRBc0lzIiwidmVyaWZ5U3RhdGVtZW50QXNJc0Z1bmN0aW9uIiwiZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNJcyIsInN0YXRlZFN0YXRlbWVudFZlcmlmaWVkQXNJcyIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwidmVyaWZpZWRBaGVhZCIsImp1ZGdlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXNDQTs7O2VBQUE7OztnRUFwQ2tDO3FCQUVSOzs7Ozs7QUFFMUIsSUFBTUEscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXJDLFNBQVNDLGdCQUFnQkMsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUN4RSxJQUFJQztJQUVKLElBQU1DLGtCQUFrQkYsYUFBYUcsWUFBWSxDQUFDTjtJQUVsREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQWlDLE9BQWhCRixpQkFBZ0IsbUJBQWlCTDtJQUV0RSxJQUFNUSwyQkFBMkI7UUFDL0JDO0tBQ0Q7SUFFREwsb0JBQW9CSSx5QkFBeUJFLElBQUksQ0FBQyxTQUFDQztRQUNqRCxJQUFNUCxvQkFBb0JPLHdCQUF3QlgsZUFBZUMsYUFBYUMsU0FBU0M7UUFFdkYsSUFBSUMsbUJBQW1CO1lBQ3JCLE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSUEsbUJBQW1CO1FBQ3JCRCxhQUFhUyxLQUFLLENBQUMsQUFBQyxvQkFBbUMsT0FBaEJQLGlCQUFnQixpQkFBZUw7SUFDeEU7SUFFQSxPQUFPSTtBQUNUO0FBRUFTLE9BQU9DLE1BQU0sQ0FBQ0Msa0JBQXFCLEVBQUU7SUFDbkNoQixpQkFBQUE7QUFDRjtJQUVBLFdBQWVBO0FBRWYsU0FBU1Usb0JBQW9CVCxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQzVFLElBQUlhO0lBRUosSUFBTUMscUJBQXFCQyxxQkFBcUJsQjtJQUVoRCxJQUFJLENBQUNpQixvQkFBb0I7UUFDdkIsSUFBTVosa0JBQWtCRixhQUFhRyxZQUFZLENBQUNOO1FBRWxERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBaUMsT0FBaEJGLGlCQUFnQix5QkFBdUJMO1FBRTVFLElBQU1tQiwrQkFBK0I7WUFDbkNDO1lBQ0FDO1NBQ0Q7UUFFREwsd0JBQXdCRyw2QkFBNkJULElBQUksQ0FBQyxTQUFDWTtZQUN6RCxJQUFNTix3QkFBd0JNLDRCQUE0QnRCLGVBQWVDLGFBQWFDLFNBQVNDO1lBRS9GLElBQUlhLHVCQUF1QjtnQkFDekIsT0FBTztZQUNUO1FBQ0Y7UUFFQSxJQUFJQSx1QkFBdUI7WUFDekJiLGFBQWFTLEtBQUssQ0FBQyxBQUFDLG9CQUFtQyxPQUFoQlAsaUJBQWdCLHVCQUFxQkw7UUFDOUU7SUFDRjtJQUVBLE9BQU9nQjtBQUNUO0FBRUEsU0FBU0ksMkJBQTJCcEIsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUNuRixJQUFJb0IsK0JBQStCO0lBRW5DLElBQUlyQixTQUFTO1FBQ1gsSUFBTUcsa0JBQWtCRixhQUFhRyxZQUFZLENBQUNOO1FBRWxERyxhQUFhUyxLQUFLLENBQUMsQUFBQyxzQkFBcUMsT0FBaEJQLGlCQUFnQiwrQkFBNkJMO0lBQ3hGO0lBRUEsT0FBT3VCO0FBQ1Q7QUFFQSxTQUFTRiwwQkFBMEJyQixhQUFhLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ2xGLElBQUlxQiw4QkFBOEI7SUFFbEMsSUFBSSxDQUFDdEIsU0FBUztRQUNaLElBQU1HLGtCQUFrQkYsYUFBYUcsWUFBWSxDQUFDTjtRQUVsREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQWlDLE9BQWhCRixpQkFBZ0IsZ0NBQThCTDtRQUVuRixJQUFNeUIsa0JBQWtCekIsZUFDbEIwQiwwQkFBMEJYLGtCQUFxQixDQUFDWSxxQkFBcUIsQ0FBQ0YsaUJBQWlCdEIsY0FBYztZQUNuRyxJQUFNeUIsZ0JBQWdCO1lBRXRCLE9BQU9BO1FBQ1Q7UUFFTkosOEJBQThCRSx5QkFBMEIsR0FBRztRQUUzRCxJQUFJRiw2QkFBNkI7WUFDL0JyQixhQUFhUyxLQUFLLENBQUMsQUFBQyxvQkFBbUMsT0FBaEJQLGlCQUFnQiw4QkFBNEJMO1FBQ3JGO0lBQ0Y7SUFFQSxPQUFPd0I7QUFDVDtBQUVBLFNBQVNOLHFCQUFxQmxCLGFBQWE7SUFDekMsSUFBTTZCLGdCQUFnQmhDLG1CQUFtQkcsZ0JBQ25DaUIscUJBQXNCWSxrQkFBa0I7SUFFOUMsT0FBT1o7QUFDVCJ9
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import metaLevelNodeVerifier from "../verifier/node/metaLevel";
|
|
4
|
-
|
|
5
|
-
import { nodeQuery } from "../utilities/query";
|
|
6
|
-
|
|
7
|
-
const judgementNodeQuery = nodeQuery("/statement/judgement!");
|
|
8
|
-
|
|
9
|
-
function verifyStatement(statementNode, assignments, derived, localContext) {
|
|
10
|
-
let statementVerified;
|
|
11
|
-
|
|
12
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
13
|
-
|
|
14
|
-
localContext.trace(`Verifying the '${statementString}' statement...`, statementNode);
|
|
15
|
-
|
|
16
|
-
const verifyStatementFunctions = [
|
|
17
|
-
verifyStatementAsIs
|
|
18
|
-
];
|
|
19
|
-
|
|
20
|
-
statementVerified = verifyStatementFunctions.some((verifyStatementFunction) => {
|
|
21
|
-
const statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext);
|
|
22
|
-
|
|
23
|
-
if (statementVerified) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
if (statementVerified) {
|
|
29
|
-
localContext.debug(`...verified the '${statementString}' statement.`, statementNode);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return statementVerified;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
Object.assign(metaLevelNodeVerifier, {
|
|
36
|
-
verifyStatement
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
export default verifyStatement;
|
|
40
|
-
|
|
41
|
-
function verifyStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
42
|
-
let statementVerifiedAsIs;
|
|
43
|
-
|
|
44
|
-
const statementJudgement = isStatementJudgement(statementNode);
|
|
45
|
-
|
|
46
|
-
if (!statementJudgement) {
|
|
47
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
48
|
-
|
|
49
|
-
localContext.trace(`Verifying the '${statementString}' statement as is...`, statementNode);
|
|
50
|
-
|
|
51
|
-
const verifyStatementAsIsFunctions = [
|
|
52
|
-
verifyDerivedStatementAsIs,
|
|
53
|
-
verifyStatedStatementAsIs
|
|
54
|
-
];
|
|
55
|
-
|
|
56
|
-
statementVerifiedAsIs = verifyStatementAsIsFunctions.some((verifyStatementAsIsFunction) => {
|
|
57
|
-
const statementVerifiedAsIs = verifyStatementAsIsFunction(statementNode, assignments, derived, localContext);
|
|
58
|
-
|
|
59
|
-
if (statementVerifiedAsIs) {
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
if (statementVerifiedAsIs) {
|
|
65
|
-
localContext.debug(`...verified the '${statementString}' statement as is.`, statementNode);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return statementVerifiedAsIs;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function verifyDerivedStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
73
|
-
let derivedStatementVerifiedAsIs = false;
|
|
74
|
-
|
|
75
|
-
if (derived) {
|
|
76
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
77
|
-
|
|
78
|
-
localContext.debug(`Cannot verify the '${statementString}' derived statement as is.`, statementNode);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return derivedStatementVerifiedAsIs;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function verifyStatedStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
85
|
-
let statedStatementVerifiedAsIs = false;
|
|
86
|
-
|
|
87
|
-
if (!derived) {
|
|
88
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
89
|
-
|
|
90
|
-
localContext.trace(`Verifying the '${statementString}' stated statement as is...`, statementNode);
|
|
91
|
-
|
|
92
|
-
const nonTerminalNode = statementNode, ///
|
|
93
|
-
nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
|
|
94
|
-
const verifiedAhead = true;
|
|
95
|
-
|
|
96
|
-
return verifiedAhead;
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
statedStatementVerifiedAsIs = nonTerminalNodeVerified; ///
|
|
100
|
-
|
|
101
|
-
if (statedStatementVerifiedAsIs) {
|
|
102
|
-
localContext.debug(`...verified the '${statementString}' stated statement as is.`, statementNode);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return statedStatementVerifiedAsIs;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
function isStatementJudgement(statementNode) {
|
|
110
|
-
const judgementNode = judgementNodeQuery(statementNode),
|
|
111
|
-
statementJudgement = (judgementNode !== null);
|
|
112
|
-
|
|
113
|
-
return statementJudgement;
|
|
114
|
-
}
|