occam-verify-cli 0.0.876 → 0.0.877
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/verify/judgement.js +40 -0
- package/lib/verify/metastatement.js +44 -5
- package/package.json +2 -2
- package/src/verify/judgement.js +41 -0
- package/src/verify/metastatement.js +64 -6
|
@@ -0,0 +1,40 @@
|
|
|
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 verifyJudgement;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _context = /*#__PURE__*/ _interop_require_default(require("../metaType/context"));
|
|
12
|
+
var _query = require("../utilities/query");
|
|
13
|
+
var _metaTypeNames = require("../metaTypeNames");
|
|
14
|
+
function _interop_require_default(obj) {
|
|
15
|
+
return obj && obj.__esModule ? obj : {
|
|
16
|
+
default: obj
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
var contextNodeQuery = (0, _query.nodeQuery)("/judgement/context!"), metavariableNodeQuery = (0, _query.nodeQuery)("/judgement/metavariable!");
|
|
20
|
+
function verifyJudgement(judgementNode, derived, localMetaContext) {
|
|
21
|
+
var judgementVerified;
|
|
22
|
+
var judgementString = localMetaContext.nodeAsString(judgementNode);
|
|
23
|
+
localMetaContext.trace("Verifying the '".concat(judgementString, "' judgement..."), judgementNode);
|
|
24
|
+
var metavariableNode = metavariableNodeQuery(judgementNode), metavariable = localMetaContext.findMetavariableByMetavariableNode(metavariableNode);
|
|
25
|
+
if (metavariable !== null) {
|
|
26
|
+
var metaType = metavariable.getMetaType();
|
|
27
|
+
if (metaType === _context.default) {
|
|
28
|
+
var contextNode = contextNodeQuery(judgementNode);
|
|
29
|
+
} else {
|
|
30
|
+
var metavariableString = localMetaContext.nodeAsString(metavariableNode), metaTypeString = metaType.asString();
|
|
31
|
+
localMetaContext.debug("The '".concat(metavariableString, "' metavariable's meta-type is '").concat(metaTypeString, "' when it should be '").concat(_metaTypeNames.CONTEXT_META_TYPE_NAME, "'."), judgementNode);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (judgementVerified) {
|
|
35
|
+
localMetaContext.debug("...verified the '".concat(judgementString, "' judgement."), judgementNode);
|
|
36
|
+
}
|
|
37
|
+
return judgementVerified;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvanVkZ2VtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgY29udGV4dE1ldGFUeXBlIGZyb20gXCIuLi9tZXRhVHlwZS9jb250ZXh0XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IENPTlRFWFRfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vbWV0YVR5cGVOYW1lc1wiO1xuXG5jb25zdCBjb250ZXh0Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2p1ZGdlbWVudC9jb250ZXh0IVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9qdWRnZW1lbnQvbWV0YXZhcmlhYmxlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5SnVkZ2VtZW50KGp1ZGdlbWVudE5vZGUsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IGp1ZGdlbWVudFZlcmlmaWVkO1xuXG4gIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKGp1ZGdlbWVudE5vZGUpO1xuXG4gIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50Li4uYCwganVkZ2VtZW50Tm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShqdWRnZW1lbnROb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlID0gbG9jYWxNZXRhQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhVHlwZSA9IG1ldGF2YXJpYWJsZS5nZXRNZXRhVHlwZSgpO1xuXG4gICAgaWYgKG1ldGFUeXBlID09PSBjb250ZXh0TWV0YVR5cGUpIHtcbiAgICAgIGNvbnN0IGNvbnRleHROb2RlID0gY29udGV4dE5vZGVRdWVyeShqdWRnZW1lbnROb2RlKTtcblxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgbWV0YVR5cGVTdHJpbmcgPSBtZXRhVHlwZS5hc1N0cmluZygpO1xuXG4gICAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGBUaGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlJ3MgbWV0YS10eXBlIGlzICcke21ldGFUeXBlU3RyaW5nfScgd2hlbiBpdCBzaG91bGQgYmUgJyR7Q09OVEVYVF9NRVRBX1RZUEVfTkFNRX0nLmAsIGp1ZGdlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChqdWRnZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQuYCwganVkZ2VtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4ganVkZ2VtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5SnVkZ2VtZW50IiwiY29udGV4dE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsImp1ZGdlbWVudE5vZGUiLCJkZXJpdmVkIiwibG9jYWxNZXRhQ29udGV4dCIsImp1ZGdlbWVudFZlcmlmaWVkIiwianVkZ2VtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFUeXBlIiwiZ2V0TWV0YVR5cGUiLCJjb250ZXh0TWV0YVR5cGUiLCJjb250ZXh0Tm9kZSIsIm1ldGF2YXJpYWJsZVN0cmluZyIsIm1ldGFUeXBlU3RyaW5nIiwiYXNTdHJpbmciLCJkZWJ1ZyIsIkNPTlRFWFRfTUVUQV9UWVBFX05BTUUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBd0JBOzs7OERBUkk7cUJBRUY7NkJBQ2E7Ozs7OztBQUV2QyxJQUFNQyxtQkFBbUJDLElBQUFBLGdCQUFTLEVBQUMsd0JBQzdCQyx3QkFBd0JELElBQUFBLGdCQUFTLEVBQUM7QUFFekIsU0FBU0YsZ0JBQWdCSSxhQUFhLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCO0lBQzlFLElBQUlDO0lBRUosSUFBTUMsa0JBQWtCRixpQkFBaUJHLFlBQVksQ0FBQ0w7SUFFdERFLGlCQUFpQkksS0FBSyxDQUFDLEFBQUMsa0JBQWlDLE9BQWhCRixpQkFBZ0IsbUJBQWlCSjtJQUUxRSxJQUFNTyxtQkFBbUJSLHNCQUFzQkMsZ0JBQ3pDUSxlQUFlTixpQkFBaUJPLGtDQUFrQyxDQUFDRjtJQUV6RSxJQUFJQyxpQkFBaUIsTUFBTTtRQUN6QixJQUFNRSxXQUFXRixhQUFhRyxXQUFXO1FBRXpDLElBQUlELGFBQWFFLGdCQUFlLEVBQUU7WUFDaEMsSUFBTUMsY0FBY2hCLGlCQUFpQkc7UUFHdkMsT0FBTztZQUNMLElBQU1jLHFCQUFxQlosaUJBQWlCRyxZQUFZLENBQUNFLG1CQUNuRFEsaUJBQWlCTCxTQUFTTSxRQUFRO1lBRXhDZCxpQkFBaUJlLEtBQUssQ0FBQyxBQUFDLFFBQTJERixPQUFwREQsb0JBQW1CLG1DQUF1RUksT0FBdENILGdCQUFlLHlCQUE4QyxPQUF2QkcscUNBQXNCLEVBQUMsT0FBS2xCO1FBQ3ZKO0lBQ0Y7SUFFQSxJQUFJRyxtQkFBbUI7UUFDckJELGlCQUFpQmUsS0FBSyxDQUFDLEFBQUMsb0JBQW1DLE9BQWhCYixpQkFBZ0IsaUJBQWVKO0lBQzVFO0lBRUEsT0FBT0c7QUFDVCJ9
|
|
@@ -8,21 +8,29 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return _default;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _judgement = /*#__PURE__*/ _interop_require_default(require("../verify/judgement"));
|
|
11
12
|
var _metastatement = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metastatement"));
|
|
13
|
+
var _query = require("../utilities/query");
|
|
12
14
|
function _interop_require_default(obj) {
|
|
13
15
|
return obj && obj.__esModule ? obj : {
|
|
14
16
|
default: obj
|
|
15
17
|
};
|
|
16
18
|
}
|
|
19
|
+
var judgementNodeQuery = (0, _query.nodeQuery)("/metastatement/judgement!");
|
|
17
20
|
function verifyMetastatement(metastatementNode, derived, localMetaContext) {
|
|
18
21
|
var metastatementVerified;
|
|
19
22
|
var metastatementString = localMetaContext.nodeAsString(metastatementNode);
|
|
20
23
|
localMetaContext.trace("Verifying the '".concat(metastatementString, "' metastatement..."), metastatementNode);
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
var verifyMetaStatementFunctions = [
|
|
25
|
+
verifyMetastatementAsJudgement,
|
|
26
|
+
verifyMetastatementAsIs
|
|
27
|
+
];
|
|
28
|
+
metastatementVerified = verifyMetaStatementFunctions.some(function(verifyStatementFunction) {
|
|
29
|
+
var metastatementVerified = verifyStatementFunction(metastatementNode, derived, localMetaContext);
|
|
30
|
+
if (metastatementVerified) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
24
33
|
});
|
|
25
|
-
metastatementVerified = nonTerminalNodeVerified; ///
|
|
26
34
|
if (metastatementVerified) {
|
|
27
35
|
localMetaContext.debug("...verified the '".concat(metastatementString, "' metastatement."), metastatementNode);
|
|
28
36
|
}
|
|
@@ -32,5 +40,36 @@ Object.assign(_metastatement.default, {
|
|
|
32
40
|
verifyMetastatement: verifyMetastatement
|
|
33
41
|
});
|
|
34
42
|
var _default = verifyMetastatement;
|
|
43
|
+
function verifyMetastatementAsJudgement(metastatementNode, derived, localMetaContext) {
|
|
44
|
+
var metastatementVerifiedAsJudgement = false;
|
|
45
|
+
var judgementNode = judgementNodeQuery(metastatementNode);
|
|
46
|
+
if (judgementNode !== null) {
|
|
47
|
+
var metastatementString = localMetaContext.nodeAsString(metastatementNode);
|
|
48
|
+
localMetaContext.trace("Verifying the '".concat(metastatementString, "' metastatement as a judgement..."), metastatementNode);
|
|
49
|
+
var judgementVerified = (0, _judgement.default)(judgementNode, derived, localMetaContext);
|
|
50
|
+
metastatementVerifiedAsJudgement = judgementVerified; ///
|
|
51
|
+
if (metastatementVerifiedAsJudgement) {
|
|
52
|
+
localMetaContext.debug("...verified the '".concat(metastatementString, "' metastatement as a judgement."), metastatementNode);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return metastatementVerifiedAsJudgement;
|
|
56
|
+
}
|
|
57
|
+
function verifyMetastatementAsIs(metastatementNode, derived, localMetaContext) {
|
|
58
|
+
var metastatementVerifiedAsIs = false;
|
|
59
|
+
var judgementNode = judgementNodeQuery(metastatementNode);
|
|
60
|
+
if (judgementNode === null) {
|
|
61
|
+
var metastatementString = localMetaContext.nodeAsString(metastatementNode);
|
|
62
|
+
localMetaContext.trace("Verifying the '".concat(metastatementString, "' metastatement as is..."), metastatementNode);
|
|
63
|
+
var nonTerminalNode = metastatementNode, nonTerminalNodeVerified = _metastatement.default.verifyNonTerminalNode(nonTerminalNode, localMetaContext, function() {
|
|
64
|
+
var verifiedAhead = true;
|
|
65
|
+
return verifiedAhead;
|
|
66
|
+
});
|
|
67
|
+
metastatementVerifiedAsIs = nonTerminalNodeVerified; ///
|
|
68
|
+
if (metastatementVerifiedAsIs) {
|
|
69
|
+
localMetaContext.debug("...verified the '".concat(metastatementString, "' metastatement as is."), metastatementNode);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return metastatementVerifiedAsIs;
|
|
73
|
+
}
|
|
35
74
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeUp1ZGdlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L2p1ZGdlbWVudFwiO1xuaW1wb3J0IG1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyL25vZGUvbWV0YXN0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGp1ZGdlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhc3RhdGVtZW50L2p1ZGdlbWVudCFcIik7XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFzdGF0ZW1lbnQobWV0YXN0YXRlbWVudE5vZGUsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IG1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcblxuICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQuLi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgdmVyaWZ5TWV0YVN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlNZXRhc3RhdGVtZW50QXNKdWRnZW1lbnQsXG4gICAgdmVyaWZ5TWV0YXN0YXRlbWVudEFzSXNcbiAgXTtcblxuICBtZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlNZXRhU3RhdGVtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24obWV0YXN0YXRlbWVudE5vZGUsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50LmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24obWV0YXN0YXRlbWVudE5vZGVWZXJpZmllciwge1xuICB2ZXJpZnlNZXRhc3RhdGVtZW50XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5TWV0YXN0YXRlbWVudDtcblxuZnVuY3Rpb24gdmVyaWZ5TWV0YXN0YXRlbWVudEFzSnVkZ2VtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0KSB7XG4gIGxldCBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0p1ZGdlbWVudCA9IGZhbHNlO1xuXG4gIGNvbnN0IGp1ZGdlbWVudE5vZGUgPSBqdWRnZW1lbnROb2RlUXVlcnkobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChqdWRnZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgYSBqdWRnZW1lbnQuLi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRWZXJpZmllZCA9IHZlcmlmeUp1ZGdlbWVudChqdWRnZW1lbnROb2RlLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzSnVkZ2VtZW50ID0ganVkZ2VtZW50VmVyaWZpZWQ7ICAvLy9cblxuICAgIGlmIChtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0p1ZGdlbWVudCkge1xuICAgICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50IGFzIGEganVkZ2VtZW50LmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YXN0YXRlbWVudFZlcmlmaWVkQXNKdWRnZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzKG1ldGFzdGF0ZW1lbnROb2RlLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0KSB7XG4gIGxldCBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzID0gZmFsc2U7XG5cbiAgY29uc3QganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudE5vZGVRdWVyeShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGp1ZGdlbWVudE5vZGUgPT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxNZXRhQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgbWV0YXN0YXRlbWVudCBhcyBpcy4uLmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgbG9jYWxNZXRhQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgbWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcyA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcykge1xuICAgICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50IGFzIGlzLmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcztcbn1cbiJdLCJuYW1lcyI6WyJqdWRnZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2ZXJpZnlNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJkZXJpdmVkIiwibG9jYWxNZXRhQ29udGV4dCIsIm1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsIm1ldGFzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeU1ldGFTdGF0ZW1lbnRGdW5jdGlvbnMiLCJ2ZXJpZnlNZXRhc3RhdGVtZW50QXNKdWRnZW1lbnQiLCJ2ZXJpZnlNZXRhc3RhdGVtZW50QXNJcyIsInNvbWUiLCJ2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbiIsImRlYnVnIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0YXN0YXRlbWVudE5vZGVWZXJpZmllciIsIm1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzSnVkZ2VtZW50IiwianVkZ2VtZW50Tm9kZSIsImp1ZGdlbWVudFZlcmlmaWVkIiwidmVyaWZ5SnVkZ2VtZW50IiwibWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcyIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwidmVyaWZpZWRBaGVhZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd0NBOzs7ZUFBQTs7O2dFQXRDNEI7b0VBQ1U7cUJBRVo7Ozs7OztBQUUxQixJQUFNQSxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFckMsU0FBU0Msb0JBQW9CQyxpQkFBaUIsRUFBRUMsT0FBTyxFQUFFQyxnQkFBZ0I7SUFDdkUsSUFBSUM7SUFFSixJQUFNQyxzQkFBc0JGLGlCQUFpQkcsWUFBWSxDQUFDTDtJQUUxREUsaUJBQWlCSSxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQix1QkFBcUJKO0lBRWxGLElBQU1PLCtCQUErQjtRQUNuQ0M7UUFDQUM7S0FDRDtJQUVETix3QkFBd0JJLDZCQUE2QkcsSUFBSSxDQUFDLFNBQUNDO1FBQ3pELElBQU1SLHdCQUF3QlEsd0JBQXdCWCxtQkFBbUJDLFNBQVNDO1FBRWxGLElBQUlDLHVCQUF1QjtZQUN6QixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUlBLHVCQUF1QjtRQUN6QkQsaUJBQWlCVSxLQUFLLENBQUMsQUFBQyxvQkFBdUMsT0FBcEJSLHFCQUFvQixxQkFBbUJKO0lBQ3BGO0lBRUEsT0FBT0c7QUFDVDtBQUVBVSxPQUFPQyxNQUFNLENBQUNDLHNCQUF5QixFQUFFO0lBQ3ZDaEIscUJBQUFBO0FBQ0Y7SUFFQSxXQUFlQTtBQUVmLFNBQVNTLCtCQUErQlIsaUJBQWlCLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCO0lBQ2xGLElBQUljLG1DQUFtQztJQUV2QyxJQUFNQyxnQkFBZ0JwQixtQkFBbUJHO0lBRXpDLElBQUlpQixrQkFBa0IsTUFBTTtRQUMxQixJQUFNYixzQkFBc0JGLGlCQUFpQkcsWUFBWSxDQUFDTDtRQUUxREUsaUJBQWlCSSxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQixzQ0FBb0NKO1FBRWpHLElBQU1rQixvQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNGLGVBQWVoQixTQUFTQztRQUVsRWMsbUNBQW1DRSxtQkFBb0IsR0FBRztRQUUxRCxJQUFJRixrQ0FBa0M7WUFDcENkLGlCQUFpQlUsS0FBSyxDQUFDLEFBQUMsb0JBQXVDLE9BQXBCUixxQkFBb0Isb0NBQWtDSjtRQUNuRztJQUNGO0lBRUEsT0FBT2dCO0FBQ1Q7QUFFQSxTQUFTUCx3QkFBd0JULGlCQUFpQixFQUFFQyxPQUFPLEVBQUVDLGdCQUFnQjtJQUMzRSxJQUFJa0IsNEJBQTRCO0lBRWhDLElBQU1ILGdCQUFnQnBCLG1CQUFtQkc7SUFFekMsSUFBSWlCLGtCQUFrQixNQUFNO1FBQzFCLElBQU1iLHNCQUFzQkYsaUJBQWlCRyxZQUFZLENBQUNMO1FBRTFERSxpQkFBaUJJLEtBQUssQ0FBQyxBQUFDLGtCQUFxQyxPQUFwQkYscUJBQW9CLDZCQUEyQko7UUFFeEYsSUFBTXFCLGtCQUFrQnJCLG1CQUNsQnNCLDBCQUEwQlAsc0JBQXlCLENBQUNRLHFCQUFxQixDQUFDRixpQkFBaUJuQixrQkFBa0I7WUFDM0csSUFBTXNCLGdCQUFnQjtZQUV0QixPQUFPQTtRQUNUO1FBRU5KLDRCQUE0QkUseUJBQTBCLEdBQUc7UUFFekQsSUFBSUYsMkJBQTJCO1lBQzdCbEIsaUJBQWlCVSxLQUFLLENBQUMsQUFBQyxvQkFBdUMsT0FBcEJSLHFCQUFvQiwyQkFBeUJKO1FBQzFGO0lBQ0Y7SUFFQSxPQUFPb0I7QUFDVCJ9
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.877",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.28",
|
|
14
14
|
"necessary": "^14.0.1",
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
15
|
+
"occam-custom-grammars": "^5.0.782",
|
|
16
16
|
"occam-entities": "^1.0.134",
|
|
17
17
|
"occam-file-system": "^6.0.176",
|
|
18
18
|
"occam-grammar-utilities": "^8.0.205",
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import contextMetaType from "../metaType/context";
|
|
4
|
+
|
|
5
|
+
import { nodeQuery } from "../utilities/query";
|
|
6
|
+
import { CONTEXT_META_TYPE_NAME } from "../metaTypeNames";
|
|
7
|
+
|
|
8
|
+
const contextNodeQuery = nodeQuery("/judgement/context!"),
|
|
9
|
+
metavariableNodeQuery = nodeQuery("/judgement/metavariable!");
|
|
10
|
+
|
|
11
|
+
export default function verifyJudgement(judgementNode, derived, localMetaContext) {
|
|
12
|
+
let judgementVerified;
|
|
13
|
+
|
|
14
|
+
const judgementString = localMetaContext.nodeAsString(judgementNode);
|
|
15
|
+
|
|
16
|
+
localMetaContext.trace(`Verifying the '${judgementString}' judgement...`, judgementNode);
|
|
17
|
+
|
|
18
|
+
const metavariableNode = metavariableNodeQuery(judgementNode),
|
|
19
|
+
metavariable = localMetaContext.findMetavariableByMetavariableNode(metavariableNode);
|
|
20
|
+
|
|
21
|
+
if (metavariable !== null) {
|
|
22
|
+
const metaType = metavariable.getMetaType();
|
|
23
|
+
|
|
24
|
+
if (metaType === contextMetaType) {
|
|
25
|
+
const contextNode = contextNodeQuery(judgementNode);
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
} else {
|
|
29
|
+
const metavariableString = localMetaContext.nodeAsString(metavariableNode),
|
|
30
|
+
metaTypeString = metaType.asString();
|
|
31
|
+
|
|
32
|
+
localMetaContext.debug(`The '${metavariableString}' metavariable's meta-type is '${metaTypeString}' when it should be '${CONTEXT_META_TYPE_NAME}'.`, judgementNode);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (judgementVerified) {
|
|
37
|
+
localMetaContext.debug(`...verified the '${judgementString}' judgement.`, judgementNode);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return judgementVerified;
|
|
41
|
+
}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import verifyJudgement from "../verify/judgement";
|
|
3
4
|
import metastatementNodeVerifier from "../verifier/node/metastatement";
|
|
4
5
|
|
|
6
|
+
import { nodeQuery } from "../utilities/query";
|
|
7
|
+
|
|
8
|
+
const judgementNodeQuery = nodeQuery("/metastatement/judgement!");
|
|
9
|
+
|
|
5
10
|
function verifyMetastatement(metastatementNode, derived, localMetaContext) {
|
|
6
11
|
let metastatementVerified;
|
|
7
12
|
|
|
@@ -9,14 +14,18 @@ function verifyMetastatement(metastatementNode, derived, localMetaContext) {
|
|
|
9
14
|
|
|
10
15
|
localMetaContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
|
|
11
16
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
const verifyMetaStatementFunctions = [
|
|
18
|
+
verifyMetastatementAsJudgement,
|
|
19
|
+
verifyMetastatementAsIs
|
|
20
|
+
];
|
|
15
21
|
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
metastatementVerified = verifyMetaStatementFunctions.some((verifyStatementFunction) => {
|
|
23
|
+
const metastatementVerified = verifyStatementFunction(metastatementNode, derived, localMetaContext);
|
|
18
24
|
|
|
19
|
-
|
|
25
|
+
if (metastatementVerified) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
20
29
|
|
|
21
30
|
if (metastatementVerified) {
|
|
22
31
|
localMetaContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
|
|
@@ -30,3 +39,52 @@ Object.assign(metastatementNodeVerifier, {
|
|
|
30
39
|
});
|
|
31
40
|
|
|
32
41
|
export default verifyMetastatement;
|
|
42
|
+
|
|
43
|
+
function verifyMetastatementAsJudgement(metastatementNode, derived, localMetaContext) {
|
|
44
|
+
let metastatementVerifiedAsJudgement = false;
|
|
45
|
+
|
|
46
|
+
const judgementNode = judgementNodeQuery(metastatementNode);
|
|
47
|
+
|
|
48
|
+
if (judgementNode !== null) {
|
|
49
|
+
const metastatementString = localMetaContext.nodeAsString(metastatementNode);
|
|
50
|
+
|
|
51
|
+
localMetaContext.trace(`Verifying the '${metastatementString}' metastatement as a judgement...`, metastatementNode);
|
|
52
|
+
|
|
53
|
+
const judgementVerified = verifyJudgement(judgementNode, derived, localMetaContext);
|
|
54
|
+
|
|
55
|
+
metastatementVerifiedAsJudgement = judgementVerified; ///
|
|
56
|
+
|
|
57
|
+
if (metastatementVerifiedAsJudgement) {
|
|
58
|
+
localMetaContext.debug(`...verified the '${metastatementString}' metastatement as a judgement.`, metastatementNode);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return metastatementVerifiedAsJudgement;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function verifyMetastatementAsIs(metastatementNode, derived, localMetaContext) {
|
|
66
|
+
let metastatementVerifiedAsIs = false;
|
|
67
|
+
|
|
68
|
+
const judgementNode = judgementNodeQuery(metastatementNode);
|
|
69
|
+
|
|
70
|
+
if (judgementNode === null) {
|
|
71
|
+
const metastatementString = localMetaContext.nodeAsString(metastatementNode);
|
|
72
|
+
|
|
73
|
+
localMetaContext.trace(`Verifying the '${metastatementString}' metastatement as is...`, metastatementNode);
|
|
74
|
+
|
|
75
|
+
const nonTerminalNode = metastatementNode, ///
|
|
76
|
+
nonTerminalNodeVerified = metastatementNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localMetaContext, () => {
|
|
77
|
+
const verifiedAhead = true;
|
|
78
|
+
|
|
79
|
+
return verifiedAhead;
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
metastatementVerifiedAsIs = nonTerminalNodeVerified; ///
|
|
83
|
+
|
|
84
|
+
if (metastatementVerifiedAsIs) {
|
|
85
|
+
localMetaContext.debug(`...verified the '${metastatementString}' metastatement as is.`, metastatementNode);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return metastatementVerifiedAsIs;
|
|
90
|
+
}
|