occam-verify-cli 0.0.1067 → 0.0.1068
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/assertion/contained.js +2 -2
- package/lib/assertion/defined.js +2 -2
- package/lib/assignment/judgement.js +3 -3
- package/lib/conclusion.js +4 -4
- package/lib/consequent.js +4 -4
- package/lib/declaration.js +90 -3
- package/lib/frame.js +109 -48
- package/lib/judgement.js +84 -5
- package/lib/metaType.js +24 -3
- package/lib/metavariable.js +93 -25
- package/lib/mixins/statement/unify.js +2 -17
- package/lib/mixins/statement/verify.js +13 -13
- package/lib/premise.js +10 -6
- package/lib/reference.js +11 -9
- package/lib/rule.js +5 -2
- package/lib/ruleNames.js +5 -1
- package/lib/statement/unqualified.js +26 -2
- package/lib/statement.js +4 -2
- package/lib/substitution/frameForMetavariable.js +61 -60
- package/lib/substitution/statementForMetavariable.js +52 -29
- package/lib/substitution/termForVariable.js +53 -52
- package/lib/substitution.js +28 -28
- package/lib/substitutions.js +46 -40
- package/lib/supposition.js +4 -4
- package/lib/unifier/intrinsicLevel.js +4 -4
- package/lib/unifier/metaLevel.js +11 -7
- package/lib/unifier/statementWithCombinator.js +2 -2
- package/lib/utilities/node.js +24 -10
- package/lib/utilities/tokens.js +8 -1
- package/lib/variable.js +9 -5
- package/package.json +1 -1
- package/src/assertion/contained.js +1 -1
- package/src/assertion/defined.js +1 -1
- package/src/assignment/judgement.js +3 -4
- package/src/conclusion.js +4 -4
- package/src/consequent.js +4 -4
- package/src/declaration.js +57 -4
- package/src/frame.js +149 -90
- package/src/judgement.js +109 -3
- package/src/metaType.js +29 -3
- package/src/metavariable.js +145 -42
- package/src/mixins/statement/unify.js +1 -23
- package/src/mixins/statement/verify.js +15 -13
- package/src/premise.js +13 -6
- package/src/reference.js +11 -7
- package/src/rule.js +7 -1
- package/src/ruleNames.js +1 -0
- package/src/statement/unqualified.js +31 -1
- package/src/statement.js +3 -1
- package/src/substitution/frameForMetavariable.js +65 -84
- package/src/substitution/statementForMetavariable.js +63 -32
- package/src/substitution/termForVariable.js +56 -77
- package/src/substitution.js +21 -21
- package/src/substitutions.js +51 -46
- package/src/supposition.js +4 -4
- package/src/unifier/intrinsicLevel.js +4 -3
- package/src/unifier/metaLevel.js +19 -7
- package/src/unifier/statementWithCombinator.js +1 -1
- package/src/utilities/node.js +26 -10
- package/src/utilities/tokens.js +7 -0
- package/src/variable.js +14 -5
- package/lib/unify/metavariableWithFrame.js +0 -40
- package/lib/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +0 -31
- package/lib/verify/declaration.js +0 -83
- package/lib/verify/frame.js +0 -120
- package/lib/verify/judgement.js +0 -88
- package/lib/verify/metavariableGivenMetaType.js +0 -44
- package/src/unify/metavariableWithFrame.js +0 -40
- package/src/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +0 -27
- package/src/verify/declaration.js +0 -113
- package/src/verify/frame.js +0 -157
- package/src/verify/judgement.js +0 -127
- package/src/verify/metavariableGivenMetaType.js +0 -45
package/lib/verify/frame.js
DELETED
|
@@ -1,120 +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 verifyFrame;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _frame = /*#__PURE__*/ _interop_require_default(require("../frame"));
|
|
12
|
-
var _declaration = /*#__PURE__*/ _interop_require_default(require("../verify/declaration"));
|
|
13
|
-
var _metavariableGivenMetaType = /*#__PURE__*/ _interop_require_default(require("./metavariableGivenMetaType"));
|
|
14
|
-
var _metaType = require("../metaType");
|
|
15
|
-
var _query = require("../utilities/query");
|
|
16
|
-
var _name = require("../utilities/name");
|
|
17
|
-
function _interop_require_default(obj) {
|
|
18
|
-
return obj && obj.__esModule ? obj : {
|
|
19
|
-
default: obj
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
var metavariableNodeQuery = (0, _query.nodeQuery)("/frame/metavariable"), declarationNodesQuery = (0, _query.nodesQuery)("/frame/declaration"), metavariableNodesQuery = (0, _query.nodesQuery)("/frame/metavariable");
|
|
23
|
-
var verifyFrameFunctions = [
|
|
24
|
-
verifyDerivedFrame,
|
|
25
|
-
verifyStatedFrame
|
|
26
|
-
];
|
|
27
|
-
function verifyFrame(frameNode, frames, stated, localContext) {
|
|
28
|
-
var frameVerified;
|
|
29
|
-
var frameString = localContext.nodeAsString(frameNode);
|
|
30
|
-
localContext.trace("Verifying the '".concat(frameString, "' frame..."));
|
|
31
|
-
frameVerified = verifyFrameFunctions.some(function(verifyFrameFunction) {
|
|
32
|
-
var frameVerified = verifyFrameFunction(frameNode, frames, stated, localContext);
|
|
33
|
-
if (frameVerified) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
if (frameVerified) {
|
|
38
|
-
localContext.debug("...verified the '".concat(frameString, "' frame."));
|
|
39
|
-
}
|
|
40
|
-
return frameVerified;
|
|
41
|
-
}
|
|
42
|
-
function verifyDerivedFrame(frameNode, frames, stated, localContext) {
|
|
43
|
-
var derivedFrameVerified;
|
|
44
|
-
if (!stated) {
|
|
45
|
-
var frameString = localContext.nodeAsString(frameNode);
|
|
46
|
-
localContext.trace("Verifying the '".concat(frameString, "' derived frame..."));
|
|
47
|
-
var declarations = [], declarationNodes = declarationNodesQuery(frameNode), declarationsVerified = declarationNodes.every(function(declarationNode) {
|
|
48
|
-
var declarationVerified = (0, _declaration.default)(declarationNode, declarations, stated, localContext);
|
|
49
|
-
if (declarationVerified) {
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
if (declarationsVerified) {
|
|
54
|
-
var metavariableNodes = metavariableNodesQuery(frameNode), metavariablesVerified = metavariableNodes.every(function(metavariableNode) {
|
|
55
|
-
var metavariableVerified = verifyMetavariable(metavariableNode, declarations, localContext);
|
|
56
|
-
if (metavariableVerified) {
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
if (metavariablesVerified) {
|
|
61
|
-
var frame = _frame.default.fromDeclarations(declarations);
|
|
62
|
-
frames.push(frame);
|
|
63
|
-
derivedFrameVerified = true; ///
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (derivedFrameVerified) {
|
|
67
|
-
localContext.debug("...verified the '".concat(frameString, "' derived frame."));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return derivedFrameVerified;
|
|
71
|
-
}
|
|
72
|
-
function verifyStatedFrame(frameNode, frames, stated, localContext) {
|
|
73
|
-
var statedFrameVerified;
|
|
74
|
-
if (stated) {
|
|
75
|
-
var frameString = localContext.nodeAsString(frameNode);
|
|
76
|
-
localContext.trace("Verifying the '".concat(frameString, "' stated frame..."));
|
|
77
|
-
var declarationNodes = declarationNodesQuery(frameNode), declarationNodesLength = declarationNodes.length;
|
|
78
|
-
if (declarationNodesLength === 0) {
|
|
79
|
-
var metavariableNode = metavariableNodeQuery(frameNode);
|
|
80
|
-
if (metavariableNode !== null) {
|
|
81
|
-
var metaType = _metaType.frameMetaType, metavariableVerifiedGivenMetaType = (0, _metavariableGivenMetaType.default)(metavariableNode, metaType, localContext);
|
|
82
|
-
if (metavariableVerifiedGivenMetaType) {
|
|
83
|
-
var frame = _frame.default.fromMetavariableNode(metavariableNode);
|
|
84
|
-
frames.push(frame);
|
|
85
|
-
statedFrameVerified = true;
|
|
86
|
-
}
|
|
87
|
-
} else {
|
|
88
|
-
localContext.trace("The '".concat(frameString, "' stated frame cannot have more than one metavariable."));
|
|
89
|
-
}
|
|
90
|
-
} else {
|
|
91
|
-
localContext.trace("The '".concat(frameString, "' stated frame cannot have declarations."));
|
|
92
|
-
}
|
|
93
|
-
if (statedFrameVerified) {
|
|
94
|
-
localContext.debug("...verified the '".concat(frameString, "' stated frame."));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return statedFrameVerified;
|
|
98
|
-
}
|
|
99
|
-
function verifyMetavariable(metavariableNode, declarations, localContext) {
|
|
100
|
-
var metavariableVerified = false;
|
|
101
|
-
var metavariableString = localContext.nodeAsString(metavariableNode);
|
|
102
|
-
localContext.trace("Verifying the '".concat(metavariableString, "' metavariable..."));
|
|
103
|
-
var metaType = _metaType.frameMetaType, metavariableVerifiedGivenMetaType = (0, _metavariableGivenMetaType.default)(metavariableNode, metaType, localContext);
|
|
104
|
-
if (metavariableVerifiedGivenMetaType) {
|
|
105
|
-
var metavariableName = (0, _name.metavariableNameFromMetavariableNode)(metavariableNode), judgement = localContext.findJudgementByMetavariableName(metavariableName);
|
|
106
|
-
if (judgement !== null) {
|
|
107
|
-
var declaration = judgement.getDeclaration();
|
|
108
|
-
declarations.push(declaration);
|
|
109
|
-
metavariableVerified = true;
|
|
110
|
-
} else {
|
|
111
|
-
localContext.trace("There is no judgement for the '".concat(metavariableString, "' metavariable."));
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (metavariableVerified) {
|
|
115
|
-
localContext.debug("...verified the '".concat(metavariableString, "' metavariable."));
|
|
116
|
-
}
|
|
117
|
-
return metavariableVerified;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZnJhbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vZnJhbWVcIjtcbmltcG9ydCB2ZXJpZnlEZWNsYXJhdGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2RlY2xhcmF0aW9uXCI7XG5pbXBvcnQgdmVyaWZ5TWV0YXZhcmlhYmxlR2l2ZW5NZXRhVHlwZSBmcm9tIFwiLi9tZXRhdmFyaWFibGVHaXZlbk1ldGFUeXBlXCI7XG5cbmltcG9ydCB7IGZyYW1lTWV0YVR5cGUgfSBmcm9tIFwiLi4vbWV0YVR5cGVcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZnJhbWUvbWV0YXZhcmlhYmxlXCIpLFxuICAgICAgZGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9mcmFtZS9kZWNsYXJhdGlvblwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL2ZyYW1lL21ldGF2YXJpYWJsZVwiKTtcblxuY29uc3QgdmVyaWZ5RnJhbWVGdW5jdGlvbnMgPSBbXG4gIHZlcmlmeURlcml2ZWRGcmFtZSxcbiAgdmVyaWZ5U3RhdGVkRnJhbWVcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUZyYW1lKGZyYW1lTm9kZSwgZnJhbWVzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZnJhbWVWZXJpZmllZDtcblxuICBjb25zdCBmcmFtZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZnJhbWVOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBmcmFtZS4uLmApO1xuXG4gIGZyYW1lVmVyaWZpZWQgPSB2ZXJpZnlGcmFtZUZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlGcmFtZUZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgZnJhbWVWZXJpZmllZCA9IHZlcmlmeUZyYW1lRnVuY3Rpb24oZnJhbWVOb2RlLCBmcmFtZXMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChmcmFtZVZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChmcmFtZVZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBmcmFtZS5gKTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkRnJhbWUoZnJhbWVOb2RlLCBmcmFtZXMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkRnJhbWVWZXJpZmllZDtcblxuICBpZiAoIXN0YXRlZCkge1xuICAgIGNvbnN0IGZyYW1lU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhmcmFtZU5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ZyYW1lU3RyaW5nfScgZGVyaXZlZCBmcmFtZS4uLmApO1xuXG4gICAgY29uc3QgZGVjbGFyYXRpb25zID0gW10sXG4gICAgICAgICAgZGVjbGFyYXRpb25Ob2RlcyA9IGRlY2xhcmF0aW9uTm9kZXNRdWVyeShmcmFtZU5vZGUpLFxuICAgICAgICAgIGRlY2xhcmF0aW9uc1ZlcmlmaWVkID0gZGVjbGFyYXRpb25Ob2Rlcy5ldmVyeSgoZGVjbGFyYXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvblZlcmlmaWVkID0gdmVyaWZ5RGVjbGFyYXRpb24oZGVjbGFyYXRpb25Ob2RlLCBkZWNsYXJhdGlvbnMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKGRlY2xhcmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoZGVjbGFyYXRpb25zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVzID0gbWV0YXZhcmlhYmxlTm9kZXNRdWVyeShmcmFtZU5vZGUpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlc1ZlcmlmaWVkID0gbWV0YXZhcmlhYmxlTm9kZXMuZXZlcnkoKG1ldGF2YXJpYWJsZU5vZGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgZGVjbGFyYXRpb25zLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgICAgIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZXNWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBmcmFtZSA9IEZyYW1lLmZyb21EZWNsYXJhdGlvbnMoZGVjbGFyYXRpb25zKTtcblxuICAgICAgICBmcmFtZXMucHVzaChmcmFtZSk7XG5cbiAgICAgICAgZGVyaXZlZEZyYW1lVmVyaWZpZWQgPSB0cnVlOyAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVyaXZlZEZyYW1lVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ZyYW1lU3RyaW5nfScgZGVyaXZlZCBmcmFtZS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZEZyYW1lVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZEZyYW1lKGZyYW1lTm9kZSwgZnJhbWVzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkRnJhbWVWZXJpZmllZDtcblxuICBpZiAoc3RhdGVkKSB7XG4gICAgY29uc3QgZnJhbWVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGZyYW1lTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBzdGF0ZWQgZnJhbWUuLi5gKTtcblxuICAgIGNvbnN0IGRlY2xhcmF0aW9uTm9kZXMgPSBkZWNsYXJhdGlvbk5vZGVzUXVlcnkoZnJhbWVOb2RlKSxcbiAgICAgICAgICBkZWNsYXJhdGlvbk5vZGVzTGVuZ3RoID0gZGVjbGFyYXRpb25Ob2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAoZGVjbGFyYXRpb25Ob2Rlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShmcmFtZU5vZGUpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtZXRhVHlwZSA9IGZyYW1lTWV0YVR5cGUsIC8vL1xuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZEdpdmVuTWV0YVR5cGUgPSB2ZXJpZnlNZXRhdmFyaWFibGVHaXZlbk1ldGFUeXBlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZEdpdmVuTWV0YVR5cGUpIHtcbiAgICAgICAgICBjb25zdCBmcmFtZSA9IEZyYW1lLmZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgZnJhbWVzLnB1c2goZnJhbWUpO1xuXG4gICAgICAgICAgc3RhdGVkRnJhbWVWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvY2FsQ29udGV4dC50cmFjZShgVGhlICcke2ZyYW1lU3RyaW5nfScgc3RhdGVkIGZyYW1lIGNhbm5vdCBoYXZlIG1vcmUgdGhhbiBvbmUgbWV0YXZhcmlhYmxlLmApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsb2NhbENvbnRleHQudHJhY2UoYFRoZSAnJHtmcmFtZVN0cmluZ30nIHN0YXRlZCBmcmFtZSBjYW5ub3QgaGF2ZSBkZWNsYXJhdGlvbnMuYCk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlZEZyYW1lVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ZyYW1lU3RyaW5nfScgc3RhdGVkIGZyYW1lLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZWRGcmFtZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgZGVjbGFyYXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCk7XG5cbiAgY29uc3QgbWV0YVR5cGUgPSBmcmFtZU1ldGFUeXBlLCAvLy9cbiAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWRHaXZlbk1ldGFUeXBlID0gdmVyaWZ5TWV0YXZhcmlhYmxlR2l2ZW5NZXRhVHlwZShtZXRhdmFyaWFibGVOb2RlLCBtZXRhVHlwZSwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWRHaXZlbk1ldGFUeXBlKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBqdWRnZW1lbnQgPSBsb2NhbENvbnRleHQuZmluZEp1ZGdlbWVudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICAgIGlmIChqdWRnZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0ganVkZ2VtZW50LmdldERlY2xhcmF0aW9uKCk7XG5cbiAgICAgIGRlY2xhcmF0aW9ucy5wdXNoKGRlY2xhcmF0aW9uKTtcblxuICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2NhbENvbnRleHQudHJhY2UoYFRoZXJlIGlzIG5vIGp1ZGdlbWVudCBmb3IgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gKTtcbiAgICB9XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59Il0sIm5hbWVzIjpbInZlcmlmeUZyYW1lIiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVzUXVlcnkiLCJ2ZXJpZnlGcmFtZUZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWRGcmFtZSIsInZlcmlmeVN0YXRlZEZyYW1lIiwiZnJhbWVOb2RlIiwiZnJhbWVzIiwic3RhdGVkIiwibG9jYWxDb250ZXh0IiwiZnJhbWVWZXJpZmllZCIsImZyYW1lU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJzb21lIiwidmVyaWZ5RnJhbWVGdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZEZyYW1lVmVyaWZpZWQiLCJkZWNsYXJhdGlvbnMiLCJkZWNsYXJhdGlvbk5vZGVzIiwiZGVjbGFyYXRpb25zVmVyaWZpZWQiLCJldmVyeSIsImRlY2xhcmF0aW9uTm9kZSIsImRlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlEZWNsYXJhdGlvbiIsIm1ldGF2YXJpYWJsZU5vZGVzIiwibWV0YXZhcmlhYmxlc1ZlcmlmaWVkIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkIiwidmVyaWZ5TWV0YXZhcmlhYmxlIiwiZnJhbWUiLCJGcmFtZSIsImZyb21EZWNsYXJhdGlvbnMiLCJwdXNoIiwic3RhdGVkRnJhbWVWZXJpZmllZCIsImRlY2xhcmF0aW9uTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJtZXRhVHlwZSIsImZyYW1lTWV0YVR5cGUiLCJtZXRhdmFyaWFibGVWZXJpZmllZEdpdmVuTWV0YVR5cGUiLCJ2ZXJpZnlNZXRhdmFyaWFibGVHaXZlbk1ldGFUeXBlIiwiZnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwianVkZ2VtZW50IiwiZmluZEp1ZGdlbWVudEJ5TWV0YXZhcmlhYmxlTmFtZSIsImRlY2xhcmF0aW9uIiwiZ2V0RGVjbGFyYXRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW1CQTs7O2VBQXdCQTs7OzREQWpCTjtrRUFDWTtnRkFDYzt3QkFFZDtxQkFDUTtvQkFDZTs7Ozs7O0FBRXJELElBQU1DLHdCQUF3QkMsSUFBQUEsZ0JBQVMsRUFBQyx3QkFDbENDLHdCQUF3QkMsSUFBQUEsaUJBQVUsRUFBQyx1QkFDbkNDLHlCQUF5QkQsSUFBQUEsaUJBQVUsRUFBQztBQUUxQyxJQUFNRSx1QkFBdUI7SUFDM0JDO0lBQ0FDO0NBQ0Q7QUFFYyxTQUFTUixZQUFZUyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ3pFLElBQUlDO0lBRUosSUFBTUMsY0FBY0YsYUFBYUcsWUFBWSxDQUFDTjtJQUU5Q0csYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQTZCLE9BQVpGLGFBQVk7SUFFakRELGdCQUFnQlAscUJBQXFCVyxJQUFJLENBQUMsU0FBQ0M7UUFDekMsSUFBTUwsZ0JBQWdCSyxvQkFBb0JULFdBQVdDLFFBQVFDLFFBQVFDO1FBRXJFLElBQUlDLGVBQWU7WUFDakIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJQSxlQUFlO1FBQ2pCRCxhQUFhTyxLQUFLLENBQUMsQUFBQyxvQkFBK0IsT0FBWkwsYUFBWTtJQUNyRDtJQUVBLE9BQU9EO0FBQ1Q7QUFFQSxTQUFTTixtQkFBbUJFLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxNQUFNLEVBQUVDLFlBQVk7SUFDakUsSUFBSVE7SUFFSixJQUFJLENBQUNULFFBQVE7UUFDWCxJQUFNRyxjQUFjRixhQUFhRyxZQUFZLENBQUNOO1FBRTlDRyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBNkIsT0FBWkYsYUFBWTtRQUVqRCxJQUFNTyxlQUFlLEVBQUUsRUFDakJDLG1CQUFtQm5CLHNCQUFzQk0sWUFDekNjLHVCQUF1QkQsaUJBQWlCRSxLQUFLLENBQUMsU0FBQ0M7WUFDN0MsSUFBTUMsc0JBQXNCQyxJQUFBQSxvQkFBaUIsRUFBQ0YsaUJBQWlCSixjQUFjVixRQUFRQztZQUVyRixJQUFJYyxxQkFBcUI7Z0JBQ3ZCLE9BQU87WUFDVDtRQUNGO1FBRU4sSUFBSUgsc0JBQXNCO1lBQ3hCLElBQU1LLG9CQUFvQnZCLHVCQUF1QkksWUFDM0NvQix3QkFBd0JELGtCQUFrQkosS0FBSyxDQUFDLFNBQUNNO2dCQUMvQyxJQUFNQyx1QkFBdUJDLG1CQUFtQkYsa0JBQWtCVCxjQUFjVDtnQkFFaEYsSUFBSW1CLHNCQUFzQjtvQkFDeEIsT0FBTztnQkFDVDtZQUNGO1lBRU4sSUFBSUYsdUJBQXVCO2dCQUN6QixJQUFNSSxRQUFRQyxjQUFLLENBQUNDLGdCQUFnQixDQUFDZDtnQkFFckNYLE9BQU8wQixJQUFJLENBQUNIO2dCQUVaYix1QkFBdUIsTUFBTSxHQUFHO1lBQ2xDO1FBQ0Y7UUFFQSxJQUFJQSxzQkFBc0I7WUFDeEJSLGFBQWFPLEtBQUssQ0FBQyxBQUFDLG9CQUErQixPQUFaTCxhQUFZO1FBQ3JEO0lBQ0Y7SUFFQSxPQUFPTTtBQUNUO0FBRUEsU0FBU1osa0JBQWtCQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ2hFLElBQUl5QjtJQUVKLElBQUkxQixRQUFRO1FBQ1YsSUFBTUcsY0FBY0YsYUFBYUcsWUFBWSxDQUFDTjtRQUU5Q0csYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQTZCLE9BQVpGLGFBQVk7UUFFakQsSUFBTVEsbUJBQW1CbkIsc0JBQXNCTSxZQUN6QzZCLHlCQUF5QmhCLGlCQUFpQmlCLE1BQU07UUFFdEQsSUFBSUQsMkJBQTJCLEdBQUc7WUFDaEMsSUFBTVIsbUJBQW1CN0Isc0JBQXNCUTtZQUUvQyxJQUFJcUIscUJBQXFCLE1BQU07Z0JBQzdCLElBQU1VLFdBQVdDLHVCQUFhLEVBQ3hCQyxvQ0FBb0NDLElBQUFBLGtDQUErQixFQUFDYixrQkFBa0JVLFVBQVU1QjtnQkFFdEcsSUFBSThCLG1DQUFtQztvQkFDckMsSUFBTVQsUUFBUUMsY0FBSyxDQUFDVSxvQkFBb0IsQ0FBQ2Q7b0JBRXpDcEIsT0FBTzBCLElBQUksQ0FBQ0g7b0JBRVpJLHNCQUFzQjtnQkFDeEI7WUFDRixPQUFPO2dCQUNMekIsYUFBYUksS0FBSyxDQUFDLEFBQUMsUUFBbUIsT0FBWkYsYUFBWTtZQUN6QztRQUNGLE9BQU87WUFDTEYsYUFBYUksS0FBSyxDQUFDLEFBQUMsUUFBbUIsT0FBWkYsYUFBWTtRQUN6QztRQUVBLElBQUl1QixxQkFBcUI7WUFDdkJ6QixhQUFhTyxLQUFLLENBQUMsQUFBQyxvQkFBK0IsT0FBWkwsYUFBWTtRQUNyRDtJQUNGO0lBRUEsT0FBT3VCO0FBQ1Q7QUFFQSxTQUFTTCxtQkFBbUJGLGdCQUFnQixFQUFFVCxZQUFZLEVBQUVULFlBQVk7SUFDdEUsSUFBSW1CLHVCQUF1QjtJQUUzQixJQUFNYyxxQkFBcUJqQyxhQUFhRyxZQUFZLENBQUNlO0lBRXJEbEIsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQW9DLE9BQW5CNkIsb0JBQW1CO0lBRXhELElBQU1MLFdBQVdDLHVCQUFhLEVBQ3hCQyxvQ0FBb0NDLElBQUFBLGtDQUErQixFQUFDYixrQkFBa0JVLFVBQVU1QjtJQUV0RyxJQUFJOEIsbUNBQW1DO1FBQ3JDLElBQU1JLG1CQUFtQkMsSUFBQUEsMENBQW9DLEVBQUNqQixtQkFDeERrQixZQUFZcEMsYUFBYXFDLCtCQUErQixDQUFDSDtRQUUvRCxJQUFJRSxjQUFjLE1BQU07WUFDdEIsSUFBTUUsY0FBY0YsVUFBVUcsY0FBYztZQUU1QzlCLGFBQWFlLElBQUksQ0FBQ2M7WUFFbEJuQix1QkFBdUI7UUFDekIsT0FBTztZQUNMbkIsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0NBQW9ELE9BQW5CNkIsb0JBQW1CO1FBQzFFO0lBQ0Y7SUFFQSxJQUFJZCxzQkFBc0I7UUFDeEJuQixhQUFhTyxLQUFLLENBQUMsQUFBQyxvQkFBc0MsT0FBbkIwQixvQkFBbUI7SUFDNUQ7SUFFQSxPQUFPZDtBQUNUIn0=
|
package/lib/verify/judgement.js
DELETED
|
@@ -1,88 +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 verifyJudgement;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _necessary = require("necessary");
|
|
12
|
-
var _judgement = /*#__PURE__*/ _interop_require_default(require("../judgement"));
|
|
13
|
-
var _frame = /*#__PURE__*/ _interop_require_default(require("../verify/frame"));
|
|
14
|
-
var _declaration = /*#__PURE__*/ _interop_require_default(require("./declaration"));
|
|
15
|
-
var _judgement1 = /*#__PURE__*/ _interop_require_default(require("../assignment/judgement"));
|
|
16
|
-
var _query = require("../utilities/query");
|
|
17
|
-
function _interop_require_default(obj) {
|
|
18
|
-
return obj && obj.__esModule ? obj : {
|
|
19
|
-
default: obj
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
var first = _necessary.arrayUtilities.first;
|
|
23
|
-
var frameNodeQuery = (0, _query.nodeQuery)("/judgement/frame"), declarationNodeQuery = (0, _query.nodeQuery)("/judgement/declaration");
|
|
24
|
-
var verifyJudgementFunctions = [
|
|
25
|
-
verifyDerivedJudgement,
|
|
26
|
-
verifyStatedJudgement
|
|
27
|
-
];
|
|
28
|
-
function verifyJudgement(judgementNode, assignments, stated, localContext) {
|
|
29
|
-
var judgementVerified;
|
|
30
|
-
var judgementString = localContext.nodeAsString(judgementNode);
|
|
31
|
-
localContext.trace("Verifying the '".concat(judgementString, "' judgement..."), judgementNode);
|
|
32
|
-
judgementVerified = verifyJudgementFunctions.some(function(verifyJudgementFunction) {
|
|
33
|
-
var judgementVerified = verifyJudgementFunction(judgementNode, assignments, stated, localContext);
|
|
34
|
-
if (judgementVerified) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
if (judgementVerified) {
|
|
39
|
-
localContext.debug("...verified the '".concat(judgementString, "' judgement."), judgementNode);
|
|
40
|
-
}
|
|
41
|
-
return judgementVerified;
|
|
42
|
-
}
|
|
43
|
-
function verifyDerivedJudgement(judgementNode, assignments, stated, localContext) {
|
|
44
|
-
var derivedJudgementVerified = false;
|
|
45
|
-
if (!stated) {
|
|
46
|
-
var judgementString = localContext.nodeAsString(judgementNode);
|
|
47
|
-
localContext.trace("Verifying the '".concat(judgementString, "' derived judgement..."), judgementNode);
|
|
48
|
-
var declarations = [], declarationNode = declarationNodeQuery(judgementNode), declarationVerified = (0, _declaration.default)(declarationNode, declarations, stated, localContext);
|
|
49
|
-
if (declarationVerified) {
|
|
50
|
-
var firstDeclaration = first(declarations), declaration = firstDeclaration, metavariableNode = declaration.getMetavariableNode(), metatheorem = localContext.findMetatheoremByMetavariableNode(metavariableNode), metaLemma = localContext.findMetaLemmaByMetavariableNode(metavariableNode), metaLemmaMetatheorem = metaLemma || metatheorem; ///
|
|
51
|
-
if (metaLemmaMetatheorem !== null) {
|
|
52
|
-
var frames = [], frameNode = frameNodeQuery(judgementNode), frameVerified = (0, _frame.default)(frameNode, frames, stated, localContext);
|
|
53
|
-
if (frameVerified) {
|
|
54
|
-
var firstFrame = first(frames), frame = firstFrame, metaLemmaMetatheoremUnified = frame.unifyMetaLemmaOrMetatheorem(metaLemmaMetatheorem);
|
|
55
|
-
derivedJudgementVerified = metaLemmaMetatheoremUnified; ///
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (derivedJudgementVerified) {
|
|
60
|
-
localContext.debug("...verified the '".concat(judgementString, "' derived judgement."), judgementNode);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return derivedJudgementVerified;
|
|
64
|
-
}
|
|
65
|
-
function verifyStatedJudgement(judgementNode, assignments, stated, localContext) {
|
|
66
|
-
var statedJudgementVerified = false;
|
|
67
|
-
if (stated) {
|
|
68
|
-
var judgementString = localContext.nodeAsString(judgementNode);
|
|
69
|
-
localContext.trace("Verifying the '".concat(judgementString, "' stated judgement..."), judgementNode);
|
|
70
|
-
var frames = [], frameNode = frameNodeQuery(judgementNode), frameVerified = (0, _frame.default)(frameNode, frames, stated, localContext);
|
|
71
|
-
if (frameVerified) {
|
|
72
|
-
var declarations = [], declarationNode = declarationNodeQuery(judgementNode), declarationVerified = (0, _declaration.default)(declarationNode, declarations, stated, localContext);
|
|
73
|
-
if (declarationVerified) {
|
|
74
|
-
if (assignments !== null) {
|
|
75
|
-
var firstDeclaration = first(declarations), firstFrame = first(frames), frame = firstFrame, declaration = firstDeclaration, judgement = _judgement.default.fromJudgementNodeFrameAndDeclaration(judgementNode, frame, declaration), judgementAssignment = _judgement1.default.fromJudgement(judgement), assignment = judgementAssignment;
|
|
76
|
-
assignments.push(assignment);
|
|
77
|
-
}
|
|
78
|
-
statedJudgementVerified = true;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
if (statedJudgementVerified) {
|
|
82
|
-
localContext.debug("...verified the '".concat(judgementString, "' stated judgement."), judgementNode);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return statedJudgementVerified;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvanVkZ2VtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEp1ZGdlbWVudCBmcm9tIFwiLi4vanVkZ2VtZW50XCI7XG5pbXBvcnQgdmVyaWZ5RnJhbWUgZnJvbSBcIi4uL3ZlcmlmeS9mcmFtZVwiO1xuaW1wb3J0IHZlcmlmeURlY2xhcmF0aW9uIGZyb20gXCIuL2RlY2xhcmF0aW9uXCI7XG5pbXBvcnQgSnVkZ2VtZW50QXNzaWdubWVudCBmcm9tIFwiLi4vYXNzaWdubWVudC9qdWRnZW1lbnRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuY29uc3QgZnJhbWVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvanVkZ2VtZW50L2ZyYW1lXCIpLFxuICAgICAgZGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvanVkZ2VtZW50L2RlY2xhcmF0aW9uXCIpO1xuXG5jb25zdCB2ZXJpZnlKdWRnZW1lbnRGdW5jdGlvbnMgPSBbXG4gIHZlcmlmeURlcml2ZWRKdWRnZW1lbnQsXG4gIHZlcmlmeVN0YXRlZEp1ZGdlbWVudFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5SnVkZ2VtZW50KGp1ZGdlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQganVkZ2VtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3QganVkZ2VtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhqdWRnZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50Li4uYCwganVkZ2VtZW50Tm9kZSk7XG5cbiAganVkZ2VtZW50VmVyaWZpZWQgPSB2ZXJpZnlKdWRnZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5SnVkZ2VtZW50RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBqdWRnZW1lbnRWZXJpZmllZCA9IHZlcmlmeUp1ZGdlbWVudEZ1bmN0aW9uKGp1ZGdlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoanVkZ2VtZW50VmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGp1ZGdlbWVudFZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50LmAsIGp1ZGdlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGp1ZGdlbWVudFZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkSnVkZ2VtZW50KGp1ZGdlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZEp1ZGdlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFzdGF0ZWQpIHtcbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGp1ZGdlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGRlcml2ZWQganVkZ2VtZW50Li4uYCwganVkZ2VtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBkZWNsYXJhdGlvbnMgPSBbXSxcbiAgICAgICAgICBkZWNsYXJhdGlvbk5vZGUgPSBkZWNsYXJhdGlvbk5vZGVRdWVyeShqdWRnZW1lbnROb2RlKSxcbiAgICAgICAgICBkZWNsYXJhdGlvblZlcmlmaWVkID0gdmVyaWZ5RGVjbGFyYXRpb24oZGVjbGFyYXRpb25Ob2RlLCBkZWNsYXJhdGlvbnMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChkZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBmaXJzdERlY2xhcmF0aW9uID0gZmlyc3QoZGVjbGFyYXRpb25zKSxcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uID0gZmlyc3REZWNsYXJhdGlvbiwgLy8vXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZGVjbGFyYXRpb24uZ2V0TWV0YXZhcmlhYmxlTm9kZSgpLFxuICAgICAgICAgICAgbWV0YXRoZW9yZW0gPSBsb2NhbENvbnRleHQuZmluZE1ldGF0aGVvcmVtQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgbWV0YUxlbW1hID0gbG9jYWxDb250ZXh0LmZpbmRNZXRhTGVtbWFCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBtZXRhTGVtbWFNZXRhdGhlb3JlbSA9IChtZXRhTGVtbWEgfHwgbWV0YXRoZW9yZW0pOyAgLy8vXG5cbiAgICAgIGlmIChtZXRhTGVtbWFNZXRhdGhlb3JlbSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmcmFtZXMgPSBbXSxcbiAgICAgICAgICAgICAgZnJhbWVOb2RlID0gZnJhbWVOb2RlUXVlcnkoanVkZ2VtZW50Tm9kZSksXG4gICAgICAgICAgICAgIGZyYW1lVmVyaWZpZWQgPSB2ZXJpZnlGcmFtZShmcmFtZU5vZGUsIGZyYW1lcywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChmcmFtZVZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgZmlyc3RGcmFtZSA9IGZpcnN0KGZyYW1lcyksXG4gICAgICAgICAgICAgICAgZnJhbWUgPSBmaXJzdEZyYW1lLCAvLy9cbiAgICAgICAgICAgICAgICBtZXRhTGVtbWFNZXRhdGhlb3JlbVVuaWZpZWQgPSBmcmFtZS51bmlmeU1ldGFMZW1tYU9yTWV0YXRoZW9yZW0obWV0YUxlbW1hTWV0YXRoZW9yZW0pO1xuXG4gICAgICAgICAgZGVyaXZlZEp1ZGdlbWVudFZlcmlmaWVkID0gbWV0YUxlbW1hTWV0YXRoZW9yZW1VbmlmaWVkOyAvLy9cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXJpdmVkSnVkZ2VtZW50VmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGRlcml2ZWQganVkZ2VtZW50LmAsIGp1ZGdlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkSnVkZ2VtZW50VmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZEp1ZGdlbWVudChqdWRnZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlZEp1ZGdlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKHN0YXRlZCkge1xuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoanVkZ2VtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScgc3RhdGVkIGp1ZGdlbWVudC4uLmAsIGp1ZGdlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgZnJhbWVzID0gW10sXG4gICAgICAgICAgZnJhbWVOb2RlID0gZnJhbWVOb2RlUXVlcnkoanVkZ2VtZW50Tm9kZSksXG4gICAgICAgICAgZnJhbWVWZXJpZmllZCA9IHZlcmlmeUZyYW1lKGZyYW1lTm9kZSwgZnJhbWVzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoZnJhbWVWZXJpZmllZCkge1xuICAgICAgY29uc3QgZGVjbGFyYXRpb25zID0gW10sXG4gICAgICAgICAgICBkZWNsYXJhdGlvbk5vZGUgPSBkZWNsYXJhdGlvbk5vZGVRdWVyeShqdWRnZW1lbnROb2RlKSxcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlEZWNsYXJhdGlvbihkZWNsYXJhdGlvbk5vZGUsIGRlY2xhcmF0aW9ucywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoZGVjbGFyYXRpb25WZXJpZmllZCkge1xuICAgICAgICBpZiAoYXNzaWdubWVudHMgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBmaXJzdERlY2xhcmF0aW9uID0gZmlyc3QoZGVjbGFyYXRpb25zKSxcbiAgICAgICAgICAgICAgICBmaXJzdEZyYW1lID0gZmlyc3QoZnJhbWVzKSxcbiAgICAgICAgICAgICAgICBmcmFtZSA9IGZpcnN0RnJhbWUsXG4gICAgICAgICAgICAgICAgZGVjbGFyYXRpb24gPSBmaXJzdERlY2xhcmF0aW9uLCAvLy9cbiAgICAgICAgICAgICAgICBqdWRnZW1lbnQgPSBKdWRnZW1lbnQuZnJvbUp1ZGdlbWVudE5vZGVGcmFtZUFuZERlY2xhcmF0aW9uKGp1ZGdlbWVudE5vZGUsIGZyYW1lLCBkZWNsYXJhdGlvbiksXG4gICAgICAgICAgICAgICAganVkZ2VtZW50QXNzaWdubWVudCA9IEp1ZGdlbWVudEFzc2lnbm1lbnQuZnJvbUp1ZGdlbWVudChqdWRnZW1lbnQpLFxuICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSBqdWRnZW1lbnRBc3NpZ25tZW50O1xuXG4gICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlZEp1ZGdlbWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVkSnVkZ2VtZW50VmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIHN0YXRlZCBqdWRnZW1lbnQuYCwganVkZ2VtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZEp1ZGdlbWVudFZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUp1ZGdlbWVudCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJmcmFtZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwidmVyaWZ5SnVkZ2VtZW50RnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZEp1ZGdlbWVudCIsInZlcmlmeVN0YXRlZEp1ZGdlbWVudCIsImp1ZGdlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsImxvY2FsQ29udGV4dCIsImp1ZGdlbWVudFZlcmlmaWVkIiwianVkZ2VtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJzb21lIiwidmVyaWZ5SnVkZ2VtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsImRlcml2ZWRKdWRnZW1lbnRWZXJpZmllZCIsImRlY2xhcmF0aW9ucyIsImRlY2xhcmF0aW9uTm9kZSIsImRlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlEZWNsYXJhdGlvbiIsImZpcnN0RGVjbGFyYXRpb24iLCJkZWNsYXJhdGlvbiIsIm1ldGF2YXJpYWJsZU5vZGUiLCJnZXRNZXRhdmFyaWFibGVOb2RlIiwibWV0YXRoZW9yZW0iLCJmaW5kTWV0YXRoZW9yZW1CeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhTGVtbWEiLCJmaW5kTWV0YUxlbW1hQnlNZXRhdmFyaWFibGVOb2RlIiwibWV0YUxlbW1hTWV0YXRoZW9yZW0iLCJmcmFtZXMiLCJmcmFtZU5vZGUiLCJmcmFtZVZlcmlmaWVkIiwidmVyaWZ5RnJhbWUiLCJmaXJzdEZyYW1lIiwiZnJhbWUiLCJtZXRhTGVtbWFNZXRhdGhlb3JlbVVuaWZpZWQiLCJ1bmlmeU1ldGFMZW1tYU9yTWV0YXRoZW9yZW0iLCJzdGF0ZWRKdWRnZW1lbnRWZXJpZmllZCIsImp1ZGdlbWVudCIsIkp1ZGdlbWVudCIsImZyb21KdWRnZW1lbnROb2RlRnJhbWVBbmREZWNsYXJhdGlvbiIsImp1ZGdlbWVudEFzc2lnbm1lbnQiLCJKdWRnZW1lbnRBc3NpZ25tZW50IiwiZnJvbUp1ZGdlbWVudCIsImFzc2lnbm1lbnQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFxQkE7OztlQUF3QkE7Ozt5QkFuQk87Z0VBRVQ7NERBQ0U7a0VBQ007aUVBQ0U7cUJBRU47Ozs7OztBQUUxQixJQUFNLEFBQUVDLFFBQVVDLHlCQUFjLENBQXhCRDtBQUVSLElBQU1FLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQyxxQkFDM0JDLHVCQUF1QkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV2QyxJQUFNRSwyQkFBMkI7SUFDL0JDO0lBQ0FDO0NBQ0Q7QUFFYyxTQUFTUixnQkFBZ0JTLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLFlBQVk7SUFDdEYsSUFBSUM7SUFFSixJQUFNQyxrQkFBa0JGLGFBQWFHLFlBQVksQ0FBQ047SUFFbERHLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCLG1CQUFpQkw7SUFFdEVJLG9CQUFvQlAseUJBQXlCVyxJQUFJLENBQUMsU0FBQ0M7UUFDakQsSUFBTUwsb0JBQW9CSyx3QkFBd0JULGVBQWVDLGFBQWFDLFFBQVFDO1FBRXRGLElBQUlDLG1CQUFtQjtZQUNyQixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUlBLG1CQUFtQjtRQUNyQkQsYUFBYU8sS0FBSyxDQUFDLEFBQUMsb0JBQW1DLE9BQWhCTCxpQkFBZ0IsaUJBQWVMO0lBQ3hFO0lBRUEsT0FBT0k7QUFDVDtBQUVBLFNBQVNOLHVCQUF1QkUsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsWUFBWTtJQUM5RSxJQUFJUSwyQkFBMkI7SUFFL0IsSUFBSSxDQUFDVCxRQUFRO1FBQ1gsSUFBTUcsa0JBQWtCRixhQUFhRyxZQUFZLENBQUNOO1FBRWxERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBaUMsT0FBaEJGLGlCQUFnQiwyQkFBeUJMO1FBRTlFLElBQU1ZLGVBQWUsRUFBRSxFQUNqQkMsa0JBQWtCakIscUJBQXFCSSxnQkFDdkNjLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkQsY0FBY1YsUUFBUUM7UUFFckYsSUFBSVcscUJBQXFCO1lBQ3ZCLElBQU1FLG1CQUFtQnhCLE1BQU1vQixlQUN6QkssY0FBY0Qsa0JBQ2RFLG1CQUFtQkQsWUFBWUUsbUJBQW1CLElBQ2xEQyxjQUFjakIsYUFBYWtCLGlDQUFpQyxDQUFDSCxtQkFDN0RJLFlBQVluQixhQUFhb0IsK0JBQStCLENBQUNMLG1CQUN6RE0sdUJBQXdCRixhQUFhRixhQUFlLEdBQUc7WUFFN0QsSUFBSUkseUJBQXlCLE1BQU07Z0JBQ2pDLElBQU1DLFNBQVMsRUFBRSxFQUNYQyxZQUFZaEMsZUFBZU0sZ0JBQzNCMkIsZ0JBQWdCQyxJQUFBQSxjQUFXLEVBQUNGLFdBQVdELFFBQVF2QixRQUFRQztnQkFFN0QsSUFBSXdCLGVBQWU7b0JBQ2pCLElBQU1FLGFBQWFyQyxNQUFNaUMsU0FDbkJLLFFBQVFELFlBQ1JFLDhCQUE4QkQsTUFBTUUsMkJBQTJCLENBQUNSO29CQUV0RWIsMkJBQTJCb0IsNkJBQTZCLEdBQUc7Z0JBQzdEO1lBQ0Y7UUFDRjtRQUVBLElBQUlwQiwwQkFBMEI7WUFDNUJSLGFBQWFPLEtBQUssQ0FBQyxBQUFDLG9CQUFtQyxPQUFoQkwsaUJBQWdCLHlCQUF1Qkw7UUFDaEY7SUFDRjtJQUVBLE9BQU9XO0FBQ1Q7QUFFQSxTQUFTWixzQkFBc0JDLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLFlBQVk7SUFDN0UsSUFBSThCLDBCQUEwQjtJQUU5QixJQUFJL0IsUUFBUTtRQUNWLElBQU1HLGtCQUFrQkYsYUFBYUcsWUFBWSxDQUFDTjtRQUVsREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQWlDLE9BQWhCRixpQkFBZ0IsMEJBQXdCTDtRQUU3RSxJQUFNeUIsU0FBUyxFQUFFLEVBQ1hDLFlBQVloQyxlQUFlTSxnQkFDM0IyQixnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ0YsV0FBV0QsUUFBUXZCLFFBQVFDO1FBRTdELElBQUl3QixlQUFlO1lBQ2pCLElBQU1mLGVBQWUsRUFBRSxFQUNqQkMsa0JBQWtCakIscUJBQXFCSSxnQkFDdkNjLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkQsY0FBY1YsUUFBUUM7WUFFckYsSUFBSVcscUJBQXFCO2dCQUN2QixJQUFJYixnQkFBZ0IsTUFBTTtvQkFDeEIsSUFBTWUsbUJBQW1CeEIsTUFBTW9CLGVBQ3pCaUIsYUFBYXJDLE1BQU1pQyxTQUNuQkssUUFBUUQsWUFDUlosY0FBY0Qsa0JBQ2RrQixZQUFZQyxrQkFBUyxDQUFDQyxvQ0FBb0MsQ0FBQ3BDLGVBQWU4QixPQUFPYixjQUNqRm9CLHNCQUFzQkMsbUJBQW1CLENBQUNDLGFBQWEsQ0FBQ0wsWUFDeERNLGFBQWFIO29CQUVuQnBDLFlBQVl3QyxJQUFJLENBQUNEO2dCQUNuQjtnQkFFQVAsMEJBQTBCO1lBQzVCO1FBQ0Y7UUFFQSxJQUFJQSx5QkFBeUI7WUFDM0I5QixhQUFhTyxLQUFLLENBQUMsQUFBQyxvQkFBbUMsT0FBaEJMLGlCQUFnQix3QkFBc0JMO1FBQy9FO0lBQ0Y7SUFFQSxPQUFPaUM7QUFDVCJ9
|
|
@@ -1,44 +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 verifyMetavariableGivenMetaType;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _metavariable = /*#__PURE__*/ _interop_require_default(require("../unifier/metavariable"));
|
|
12
|
-
var _name = require("../utilities/name");
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
function verifyMetavariableGivenMetaType(metavariableNode, metaType, localContext) {
|
|
19
|
-
var metavariableVerifiedGivenMetaType = false;
|
|
20
|
-
var metaTypeName = metaType.getName(), metavariableString = localContext.nodeAsString(metavariableNode);
|
|
21
|
-
localContext.trace("Verifying the '".concat(metavariableString, "' metavariable given the '").concat(metaTypeName, "' meta-type..."), metavariableNode);
|
|
22
|
-
var metavariableName = (0, _name.metavariableNameFromMetavariableNode)(metavariableNode), metavariable = localContext.findMetavariableByMetavariableName(metavariableName);
|
|
23
|
-
if (metavariable !== null) {
|
|
24
|
-
var metavariableMetaType = metavariable.getMetaType();
|
|
25
|
-
if (metavariableMetaType === metaType) {
|
|
26
|
-
var metavariableNodeA = metavariableNode; ///
|
|
27
|
-
metavariableNode = metavariable.getNode();
|
|
28
|
-
var metavariableNodeB = metavariableNode; ///
|
|
29
|
-
var metavariableUnified = _metavariable.default.unify(metavariableNodeA, metavariableNodeB, localContext);
|
|
30
|
-
metavariableVerifiedGivenMetaType = metavariableUnified; ///
|
|
31
|
-
} else {
|
|
32
|
-
var metavariableMetaTypeName = metavariableMetaType.getName();
|
|
33
|
-
localContext.debug("The '".concat(metavariableString, "' metavariable's meta-type is '").concat(metavariableMetaTypeName, "' when it should be '").concat(metaTypeName, "'."), metavariableNode);
|
|
34
|
-
}
|
|
35
|
-
} else {
|
|
36
|
-
localContext.debug("The '".concat(metavariableString, "' metavariable is not present'."), metavariableNode);
|
|
37
|
-
}
|
|
38
|
-
if (metavariableVerifiedGivenMetaType) {
|
|
39
|
-
localContext.debug("...verified the '".concat(metavariableString, "' metavariable given the '").concat(metaTypeName, "' meta-type."), metavariableNode);
|
|
40
|
-
}
|
|
41
|
-
return metavariableVerifiedGivenMetaType;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlR2l2ZW5NZXRhVHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGVHaXZlbk1ldGFUeXBlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVkR2l2ZW5NZXRhVHlwZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFUeXBlTmFtZSA9IG1ldGFUeXBlLmdldE5hbWUoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlIGdpdmVuIHRoZSAnJHttZXRhVHlwZU5hbWV9JyBtZXRhLXR5cGUuLi5gLCBtZXRhdmFyaWFibGVOb2RlKTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBtZXRhdmFyaWFibGUgPSBsb2NhbENvbnRleHQuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTWV0YVR5cGUgPSBtZXRhdmFyaWFibGUuZ2V0TWV0YVR5cGUoKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVNZXRhVHlwZSA9PT0gbWV0YVR5cGUpIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVBID0gbWV0YXZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGUuZ2V0Tm9kZSgpO1xuXG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlQiA9IG1ldGF2YXJpYWJsZU5vZGU7IC8vL1xuXG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVVbmlmaWVkID0gbWV0YXZhcmlhYmxlVW5pZmllci51bmlmeShtZXRhdmFyaWFibGVOb2RlQSwgbWV0YXZhcmlhYmxlTm9kZUIsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkR2l2ZW5NZXRhVHlwZSA9IG1ldGF2YXJpYWJsZVVuaWZpZWQ7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTWV0YVR5cGVOYW1lID0gbWV0YXZhcmlhYmxlTWV0YVR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUncyBtZXRhLXR5cGUgaXMgJyR7bWV0YXZhcmlhYmxlTWV0YVR5cGVOYW1lfScgd2hlbiBpdCBzaG91bGQgYmUgJyR7bWV0YVR5cGVOYW1lfScuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSBpcyBub3QgcHJlc2VudCcuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWRHaXZlbk1ldGFUeXBlKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlIGdpdmVuIHRoZSAnJHttZXRhVHlwZU5hbWV9JyBtZXRhLXR5cGUuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWRHaXZlbk1ldGFUeXBlO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeU1ldGF2YXJpYWJsZUdpdmVuTWV0YVR5cGUiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YVR5cGUiLCJsb2NhbENvbnRleHQiLCJtZXRhdmFyaWFibGVWZXJpZmllZEdpdmVuTWV0YVR5cGUiLCJtZXRhVHlwZU5hbWUiLCJnZXROYW1lIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU1ldGFUeXBlIiwiZ2V0TWV0YVR5cGUiLCJtZXRhdmFyaWFibGVOb2RlQSIsImdldE5vZGUiLCJtZXRhdmFyaWFibGVOb2RlQiIsIm1ldGF2YXJpYWJsZVVuaWZpZWQiLCJtZXRhdmFyaWFibGVVbmlmaWVyIiwidW5pZnkiLCJtZXRhdmFyaWFibGVNZXRhVHlwZU5hbWUiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7OzttRUFKUTtvQkFFcUI7Ozs7OztBQUV0QyxTQUFTQSxnQ0FBZ0NDLGdCQUFnQixFQUFFQyxRQUFRLEVBQUVDLFlBQVk7SUFDOUYsSUFBSUMsb0NBQW9DO0lBRXhDLElBQU1DLGVBQWVILFNBQVNJLE9BQU8sSUFDL0JDLHFCQUFxQkosYUFBYUssWUFBWSxDQUFDUDtJQUVyREUsYUFBYU0sS0FBSyxDQUFDLEFBQUMsa0JBQWdFSixPQUEvQ0Usb0JBQW1CLDhCQUF5QyxPQUFiRixjQUFhLG1CQUFpQko7SUFFbEgsSUFBTVMsbUJBQW1CQyxJQUFBQSwwQ0FBb0MsRUFBQ1YsbUJBQ3hEVyxlQUFlVCxhQUFhVSxrQ0FBa0MsQ0FBQ0g7SUFFckUsSUFBSUUsaUJBQWlCLE1BQU07UUFDekIsSUFBTUUsdUJBQXVCRixhQUFhRyxXQUFXO1FBRXJELElBQUlELHlCQUF5QlosVUFBVTtZQUNyQyxJQUFNYyxvQkFBb0JmLGtCQUFrQixHQUFHO1lBRS9DQSxtQkFBbUJXLGFBQWFLLE9BQU87WUFFdkMsSUFBTUMsb0JBQW9CakIsa0JBQWtCLEdBQUc7WUFFL0MsSUFBTWtCLHNCQUFzQkMscUJBQW1CLENBQUNDLEtBQUssQ0FBQ0wsbUJBQW1CRSxtQkFBbUJmO1lBRTVGQyxvQ0FBb0NlLHFCQUFzQixHQUFHO1FBQy9ELE9BQU87WUFDTCxJQUFNRywyQkFBMkJSLHFCQUFxQlIsT0FBTztZQUU3REgsYUFBYW9CLEtBQUssQ0FBQyxBQUFDLFFBQTJERCxPQUFwRGYsb0JBQW1CLG1DQUFpRkYsT0FBaERpQiwwQkFBeUIseUJBQW9DLE9BQWJqQixjQUFhLE9BQUtKO1FBQ25KO0lBQ0YsT0FBTztRQUNMRSxhQUFhb0IsS0FBSyxDQUFDLEFBQUMsUUFBMEIsT0FBbkJoQixvQkFBbUIsb0NBQWtDTjtJQUNsRjtJQUVBLElBQUlHLG1DQUFtQztRQUNyQ0QsYUFBYW9CLEtBQUssQ0FBQyxBQUFDLG9CQUFrRWxCLE9BQS9DRSxvQkFBbUIsOEJBQXlDLE9BQWJGLGNBQWEsaUJBQWVKO0lBQ3BIO0lBRUEsT0FBT0c7QUFDVCJ9
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import FrameForMetavariableSubstitution from "../substitution/frameForMetavariable";
|
|
4
|
-
|
|
5
|
-
import { metavariableFromFrameNode } from "../utilities/unify";
|
|
6
|
-
import {metavariableNameFromMetavariableNode} from "../utilities/name";
|
|
7
|
-
|
|
8
|
-
export default function unifyMetavariableWithFrame(metavariableNodeA, frameNodeB, substitutions, localContextA, localContextB) {
|
|
9
|
-
let metavariableUnifiedWithFrame = false;
|
|
10
|
-
|
|
11
|
-
const simpleSubstitution = substitutions.findSimpleSubstitutionByMetavariableNode(metavariableNodeA),
|
|
12
|
-
substitution = simpleSubstitution; ///
|
|
13
|
-
|
|
14
|
-
if (substitution !== null) {
|
|
15
|
-
const frameNodeMatches = substitution.matchFrameNode(frameNodeB);
|
|
16
|
-
|
|
17
|
-
if (frameNodeMatches) {
|
|
18
|
-
metavariableUnifiedWithFrame = true;
|
|
19
|
-
}
|
|
20
|
-
} else {
|
|
21
|
-
const metavariableNameA = metavariableNameFromMetavariableNode(metavariableNodeA),
|
|
22
|
-
metavariableA = localContextA.findMetavariableByMetavariableName(metavariableNameA),
|
|
23
|
-
metavariableB = metavariableFromFrameNode(frameNodeB, localContextB);
|
|
24
|
-
|
|
25
|
-
if (metavariableA === metavariableB) {
|
|
26
|
-
metavariableUnifiedWithFrame = true;
|
|
27
|
-
} else {
|
|
28
|
-
const frameNode = frameNodeB, ///
|
|
29
|
-
metavariable = metavariableA, ///
|
|
30
|
-
frameForMetavariableSubstitution = FrameForMetavariableSubstitution.fromFrameAndMetavariable(frame, metavariable, localContextA, localContextB),
|
|
31
|
-
substitution = frameForMetavariableSubstitution; ///
|
|
32
|
-
|
|
33
|
-
substitutions.addSubstitution(substitution, localContextA, localContextB);
|
|
34
|
-
|
|
35
|
-
metavariableUnifiedWithFrame = true;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return metavariableUnifiedWithFrame;
|
|
40
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import metaLevelUnifier from "../unifier/metaLevel";
|
|
4
|
-
|
|
5
|
-
export default function unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement(simpleSubstitutionStatementNode, complexSubstitutionStatementNode, substitutions, localContextA, localContextB) {
|
|
6
|
-
let simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement;
|
|
7
|
-
|
|
8
|
-
const simpleSubstitutionStatementString = localContextB.nodeAsString(simpleSubstitutionStatementNode),
|
|
9
|
-
complexSubstitutionStatementString = localContextB.nodeAsString(complexSubstitutionStatementNode);
|
|
10
|
-
|
|
11
|
-
localContextB.trace(`Unifying the simple substitution's '${simpleSubstitutionStatementString}' statement with the complex substitution's '${complexSubstitutionStatementString}' statement...`, simpleSubstitutionStatementNode);
|
|
12
|
-
|
|
13
|
-
const nodeA = complexSubstitutionStatementNode, ///
|
|
14
|
-
nodeB = simpleSubstitutionStatementNode; ///
|
|
15
|
-
|
|
16
|
-
localContextA = localContextB; ///
|
|
17
|
-
|
|
18
|
-
const unifiedAtMetaLevel = metaLevelUnifier.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
|
|
19
|
-
|
|
20
|
-
simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement = unifiedAtMetaLevel; ///
|
|
21
|
-
|
|
22
|
-
if (simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement) {
|
|
23
|
-
localContextB.trace(`...unified the simple substitution's '${simpleSubstitutionStatementString}' statement with the complex substitution's '${complexSubstitutionStatementString}' statement.`, simpleSubstitutionStatementNode);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement;
|
|
27
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import shim from "../shim";
|
|
4
|
-
import Reference from "../reference";
|
|
5
|
-
import Declaration from "../declaration"
|
|
6
|
-
import verifyMetavariableGivenMetaType from "../verify/metavariableGivenMetaType";
|
|
7
|
-
|
|
8
|
-
import { nodeQuery } from "../utilities/query";
|
|
9
|
-
import { referenceMetaType } from "../metaType";
|
|
10
|
-
|
|
11
|
-
const statementNodeQuery = nodeQuery("/declaration/statement"),
|
|
12
|
-
metavariableNodeQuery = nodeQuery("/declaration/reference/metavariable"); ///
|
|
13
|
-
|
|
14
|
-
const verifyDeclarationFunctions = [
|
|
15
|
-
verifyDerivedDeclaration,
|
|
16
|
-
verifyStatedDeclaration
|
|
17
|
-
];
|
|
18
|
-
|
|
19
|
-
export default function verifyDeclaration(declarationNode, declarations, stated, localContext) {
|
|
20
|
-
let declarationVerified;
|
|
21
|
-
|
|
22
|
-
const declarationString = localContext.nodeAsString(declarationNode);
|
|
23
|
-
|
|
24
|
-
localContext.trace(`Verifying the '${declarationString}' declaration...`, declarationNode);
|
|
25
|
-
|
|
26
|
-
declarationVerified = verifyDeclarationFunctions.some((verifyDeclarationFunction) => {
|
|
27
|
-
const declarationVerified = verifyDeclarationFunction(declarationNode, declarations, stated, localContext);
|
|
28
|
-
|
|
29
|
-
if (declarationVerified) {
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
if (declarationVerified) {
|
|
35
|
-
localContext.debug(`...verified the '${declarationString}' declaration.`, declarationNode);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return declarationVerified;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function verifyDerivedDeclaration(declarationNode, declarations, stated, localContext) {
|
|
42
|
-
let derivedDeclarationVerified;
|
|
43
|
-
|
|
44
|
-
if (!stated) {
|
|
45
|
-
const declarationString = localContext.nodeAsString(declarationNode);
|
|
46
|
-
|
|
47
|
-
localContext.trace(`Verifying the '${declarationString}' derived declaration...`, declarationNode);
|
|
48
|
-
|
|
49
|
-
const metaType = referenceMetaType, ///
|
|
50
|
-
metavariableNode = metavariableNodeQuery(declarationNode),
|
|
51
|
-
metavariableVerifiedGivenMetaType = verifyMetavariableGivenMetaType(metavariableNode, metaType, localContext);
|
|
52
|
-
|
|
53
|
-
if (metavariableVerifiedGivenMetaType) {
|
|
54
|
-
const { verifyStatement } = shim,
|
|
55
|
-
stated = true,
|
|
56
|
-
assignments = null,
|
|
57
|
-
statementNode = statementNodeQuery(declarationNode),
|
|
58
|
-
statementVerified = verifyStatement(statementNode, assignments, stated, localContext);
|
|
59
|
-
|
|
60
|
-
if (statementVerified) {
|
|
61
|
-
const reference = Reference.fromMetavariableNode(metavariableNode),
|
|
62
|
-
declaration = Declaration.fromReferenceAndStatementNode(reference, statementNode);
|
|
63
|
-
|
|
64
|
-
declarations.push(declaration);
|
|
65
|
-
|
|
66
|
-
derivedDeclarationVerified = true;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (derivedDeclarationVerified) {
|
|
71
|
-
localContext.debug(`...verified the '${declarationString}' derived declaration.`, declarationNode);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return derivedDeclarationVerified;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function verifyStatedDeclaration(declarationNode, declarations, stated, localContext) {
|
|
79
|
-
let statedDeclarationVerified = false;
|
|
80
|
-
|
|
81
|
-
if (stated) {
|
|
82
|
-
const declarationString = localContext.nodeAsString(declarationNode);
|
|
83
|
-
|
|
84
|
-
localContext.trace(`Verifying the '${declarationString}' stated declaration...`, declarationNode);
|
|
85
|
-
|
|
86
|
-
const metaType = referenceMetaType, ///
|
|
87
|
-
metavariableNode = metavariableNodeQuery(declarationNode),
|
|
88
|
-
metavariableVerifiedGivenMetaType = verifyMetavariableGivenMetaType(metavariableNode, metaType, localContext);
|
|
89
|
-
|
|
90
|
-
if (metavariableVerifiedGivenMetaType) {
|
|
91
|
-
const { verifyStatement } = shim,
|
|
92
|
-
stated = true,
|
|
93
|
-
assignments = null,
|
|
94
|
-
statementNode = statementNodeQuery(declarationNode),
|
|
95
|
-
statementVerified = verifyStatement(statementNode, assignments, stated, localContext);
|
|
96
|
-
|
|
97
|
-
if (statementVerified) {
|
|
98
|
-
const reference = Reference.fromMetavariableNode(metavariableNode),
|
|
99
|
-
declaration = Declaration.fromReferenceAndStatementNode(reference, statementNode);
|
|
100
|
-
|
|
101
|
-
declarations.push(declaration);
|
|
102
|
-
|
|
103
|
-
statedDeclarationVerified = true;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if (statedDeclarationVerified) {
|
|
108
|
-
localContext.debug(`...verified the '${declarationString}' stated declaration.`, declarationNode);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return statedDeclarationVerified;
|
|
113
|
-
}
|
package/src/verify/frame.js
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import Frame from "../frame";
|
|
4
|
-
import verifyDeclaration from "../verify/declaration";
|
|
5
|
-
import verifyMetavariableGivenMetaType from "./metavariableGivenMetaType";
|
|
6
|
-
|
|
7
|
-
import { frameMetaType } from "../metaType";
|
|
8
|
-
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
9
|
-
import { metavariableNameFromMetavariableNode } from "../utilities/name";
|
|
10
|
-
|
|
11
|
-
const metavariableNodeQuery = nodeQuery("/frame/metavariable"),
|
|
12
|
-
declarationNodesQuery = nodesQuery("/frame/declaration"),
|
|
13
|
-
metavariableNodesQuery = nodesQuery("/frame/metavariable");
|
|
14
|
-
|
|
15
|
-
const verifyFrameFunctions = [
|
|
16
|
-
verifyDerivedFrame,
|
|
17
|
-
verifyStatedFrame
|
|
18
|
-
];
|
|
19
|
-
|
|
20
|
-
export default function verifyFrame(frameNode, frames, stated, localContext) {
|
|
21
|
-
let frameVerified;
|
|
22
|
-
|
|
23
|
-
const frameString = localContext.nodeAsString(frameNode);
|
|
24
|
-
|
|
25
|
-
localContext.trace(`Verifying the '${frameString}' frame...`);
|
|
26
|
-
|
|
27
|
-
frameVerified = verifyFrameFunctions.some((verifyFrameFunction) => {
|
|
28
|
-
const frameVerified = verifyFrameFunction(frameNode, frames, stated, localContext);
|
|
29
|
-
|
|
30
|
-
if (frameVerified) {
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
if (frameVerified) {
|
|
36
|
-
localContext.debug(`...verified the '${frameString}' frame.`);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return frameVerified;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function verifyDerivedFrame(frameNode, frames, stated, localContext) {
|
|
43
|
-
let derivedFrameVerified;
|
|
44
|
-
|
|
45
|
-
if (!stated) {
|
|
46
|
-
const frameString = localContext.nodeAsString(frameNode);
|
|
47
|
-
|
|
48
|
-
localContext.trace(`Verifying the '${frameString}' derived frame...`);
|
|
49
|
-
|
|
50
|
-
const declarations = [],
|
|
51
|
-
declarationNodes = declarationNodesQuery(frameNode),
|
|
52
|
-
declarationsVerified = declarationNodes.every((declarationNode) => {
|
|
53
|
-
const declarationVerified = verifyDeclaration(declarationNode, declarations, stated, localContext);
|
|
54
|
-
|
|
55
|
-
if (declarationVerified) {
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
if (declarationsVerified) {
|
|
61
|
-
const metavariableNodes = metavariableNodesQuery(frameNode),
|
|
62
|
-
metavariablesVerified = metavariableNodes.every((metavariableNode) => {
|
|
63
|
-
const metavariableVerified = verifyMetavariable(metavariableNode, declarations, localContext);
|
|
64
|
-
|
|
65
|
-
if (metavariableVerified) {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
if (metavariablesVerified) {
|
|
71
|
-
const frame = Frame.fromDeclarations(declarations);
|
|
72
|
-
|
|
73
|
-
frames.push(frame);
|
|
74
|
-
|
|
75
|
-
derivedFrameVerified = true; ///
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (derivedFrameVerified) {
|
|
80
|
-
localContext.debug(`...verified the '${frameString}' derived frame.`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return derivedFrameVerified;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function verifyStatedFrame(frameNode, frames, stated, localContext) {
|
|
88
|
-
let statedFrameVerified;
|
|
89
|
-
|
|
90
|
-
if (stated) {
|
|
91
|
-
const frameString = localContext.nodeAsString(frameNode);
|
|
92
|
-
|
|
93
|
-
localContext.trace(`Verifying the '${frameString}' stated frame...`);
|
|
94
|
-
|
|
95
|
-
const declarationNodes = declarationNodesQuery(frameNode),
|
|
96
|
-
declarationNodesLength = declarationNodes.length;
|
|
97
|
-
|
|
98
|
-
if (declarationNodesLength === 0) {
|
|
99
|
-
const metavariableNode = metavariableNodeQuery(frameNode);
|
|
100
|
-
|
|
101
|
-
if (metavariableNode !== null) {
|
|
102
|
-
const metaType = frameMetaType, ///
|
|
103
|
-
metavariableVerifiedGivenMetaType = verifyMetavariableGivenMetaType(metavariableNode, metaType, localContext);
|
|
104
|
-
|
|
105
|
-
if (metavariableVerifiedGivenMetaType) {
|
|
106
|
-
const frame = Frame.fromMetavariableNode(metavariableNode);
|
|
107
|
-
|
|
108
|
-
frames.push(frame);
|
|
109
|
-
|
|
110
|
-
statedFrameVerified = true;
|
|
111
|
-
}
|
|
112
|
-
} else {
|
|
113
|
-
localContext.trace(`The '${frameString}' stated frame cannot have more than one metavariable.`);
|
|
114
|
-
}
|
|
115
|
-
} else {
|
|
116
|
-
localContext.trace(`The '${frameString}' stated frame cannot have declarations.`);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
if (statedFrameVerified) {
|
|
120
|
-
localContext.debug(`...verified the '${frameString}' stated frame.`);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return statedFrameVerified;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
function verifyMetavariable(metavariableNode, declarations, localContext) {
|
|
128
|
-
let metavariableVerified = false;
|
|
129
|
-
|
|
130
|
-
const metavariableString = localContext.nodeAsString(metavariableNode);
|
|
131
|
-
|
|
132
|
-
localContext.trace(`Verifying the '${metavariableString}' metavariable...`);
|
|
133
|
-
|
|
134
|
-
const metaType = frameMetaType, ///
|
|
135
|
-
metavariableVerifiedGivenMetaType = verifyMetavariableGivenMetaType(metavariableNode, metaType, localContext);
|
|
136
|
-
|
|
137
|
-
if (metavariableVerifiedGivenMetaType) {
|
|
138
|
-
const metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
|
|
139
|
-
judgement = localContext.findJudgementByMetavariableName(metavariableName);
|
|
140
|
-
|
|
141
|
-
if (judgement !== null) {
|
|
142
|
-
const declaration = judgement.getDeclaration();
|
|
143
|
-
|
|
144
|
-
declarations.push(declaration);
|
|
145
|
-
|
|
146
|
-
metavariableVerified = true;
|
|
147
|
-
} else {
|
|
148
|
-
localContext.trace(`There is no judgement for the '${metavariableString}' metavariable.`);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
if (metavariableVerified) {
|
|
153
|
-
localContext.debug(`...verified the '${metavariableString}' metavariable.`);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
return metavariableVerified;
|
|
157
|
-
}
|