occam-verify-cli 0.0.1009 → 0.0.1011

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.
@@ -86,8 +86,6 @@ export function createReleaseContext(dependency, dependentNames, context, callba
86
86
  }
87
87
 
88
88
  export function initialiseReleaseContext(dependency, context) {
89
- let releaseContextInitialised = false;
90
-
91
89
  const { releaseContextMap } = context,
92
90
  dependencyName = dependency.getName(),
93
91
  releaseName = dependencyName, ///
@@ -98,7 +96,7 @@ export function initialiseReleaseContext(dependency, context) {
98
96
 
99
97
  log.warning(`Unable to initialise the '${dependencyName}' context because it has not been created.`);
100
98
  } else {
101
- releaseContextInitialised = releaseContext.isInitialised();
99
+ const releaseContextInitialised = releaseContext.isInitialised();
102
100
 
103
101
  if (!releaseContextInitialised) {
104
102
  initialiseDependencyReleaseContexts(dependency, releaseContext, context);
@@ -113,8 +111,6 @@ export function initialiseReleaseContext(dependency, context) {
113
111
  log.info(`...initialised the '${dependencyName}' context.`);
114
112
  }
115
113
  }
116
-
117
- return releaseContextInitialised;
118
114
  }
119
115
 
120
116
  export default {
@@ -277,14 +273,9 @@ function createDependencyReleaseContexts(dependency, releaseContext, dependentNa
277
273
  }
278
274
 
279
275
  function initialiseDependencyReleaseContexts(dependency, releaseContext, context) {
280
- const dependencies = releaseContext.getDependencies(),
281
- dependencyReleaseContextsInitialised = dependencies.everyDependency((dependency) => { ///
282
- const releaseContextInitialised = initialiseReleaseContext(dependency, context);
283
-
284
- if (releaseContextInitialised) {
285
- return true;
286
- }
287
- });
276
+ const dependencies = releaseContext.getDependencies();
288
277
 
289
- return dependencyReleaseContextsInitialised;
278
+ dependencies.forEachDependency((dependency) => { ///
279
+ initialiseReleaseContext(dependency, context);
280
+ });
290
281
  }
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import Rule from "../rule";
4
+ import CombinatorDeclaration from "../declaration/combinator";
5
+ import MetavariableDeclaration from "../declaration/metavariable";
6
+
4
7
  import Verifier from "../verifier";
5
8
  import verifyError from "../verify/error";
6
9
  import verifyAxiom from "../verify/axiom";
@@ -9,11 +12,9 @@ import verifyTheorem from "../verify/theorem";
9
12
  import verifyMetaLemma from "../verify/metaLemma";
10
13
  import verifyConjecture from "../verify/conjecture";
11
14
  import verifyMetatheorem from "../verify/metatheorem";
12
- import CombinatorDeclaration from "../declaration/combinator";
13
15
  import verifyTypeDeclaration from "../verify/declaration/type";
14
16
  import verifyVariableDeclaration from "../verify/declaration/variable";
15
17
  import verifyConstructorDeclaration from "../verify/declaration/constructor";
16
- import verifyMetavariableDeclaration from "../verify/declaration/metavariable";
17
18
 
18
19
  import { nodeQuery } from "../utilities/query";
19
20
 
@@ -145,7 +146,8 @@ class TopLevelVerifier extends Verifier {
145
146
  {
146
147
  nodeQuery: metavariableDeclarationNodeQuery,
147
148
  verify: (metavariableDeclarationNode, fileContext) => {
148
- const metavariableDeclarationVerified = verifyMetavariableDeclaration(metavariableDeclarationNode, fileContext);
149
+ const metavariableDeclaration = MetavariableDeclaration.fromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext),
150
+ metavariableDeclarationVerified = metavariableDeclaration.verify(fileContext);
149
151
 
150
152
  return metavariableDeclarationVerified;
151
153
  }
@@ -1,89 +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 verifyMetavariableDeclaration;
9
- }
10
- });
11
- var _metavariable = /*#__PURE__*/ _interop_require_default(require("../../metavariable"));
12
- var _metavariable1 = /*#__PURE__*/ _interop_require_default(require("../../assignment/metavariable"));
13
- var _array = require("../../utilities/array");
14
- var _query = require("../../utilities/query");
15
- function _interop_require_default(obj) {
16
- return obj && obj.__esModule ? obj : {
17
- default: obj
18
- };
19
- }
20
- var termNodeQuery = (0, _query.nodeQuery)("/argument/term"), typeNodeQuery = (0, _query.nodeQuery)("/argument/type"), argumentNodeQuery = (0, _query.nodeQuery)("/metavariable/argument!"), metaTypeNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metaType"), metavariableNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metavariable");
21
- function verifyMetavariableDeclaration(metavariableDeclarationNode, fileContext) {
22
- var metavariableDeclarationVerified;
23
- var metaTypeNode = metaTypeNodeQuery(metavariableDeclarationNode), metavariableNode = metavariableNodeQuery(metavariableDeclarationNode), metaTypeString = fileContext.nodeAsString(metaTypeNode), metavariableString = fileContext.nodeAsString(metavariableNode);
24
- fileContext.trace("Verifying the '".concat(metavariableString, ":").concat(metaTypeString, "' metavariable declaration..."));
25
- var metavariableVVerified = verifyMetavariable(metavariableNode, metaTypeNode, fileContext);
26
- metavariableDeclarationVerified = metavariableVVerified; ///
27
- if (metavariableDeclarationVerified) {
28
- fileContext.debug("...verified the '".concat(metavariableString, ":").concat(metaTypeString, "' metavariable declaration."));
29
- }
30
- return metavariableDeclarationVerified;
31
- }
32
- function verifyMetavariable(metavariableNode, metaTypeNode, fileContext) {
33
- var metavariableVerified = false;
34
- var metavariableString = fileContext.nodeAsString(metavariableNode);
35
- fileContext.trace("Verifying the '".concat(metavariableString, "' metavariable..."));
36
- var metavariablePresent = fileContext.isMetavariablePresentByMetavariableNode(metavariableNode);
37
- if (metavariablePresent) {
38
- fileContext.debug("The metavariable '".concat(metavariableString, "' is already present."));
39
- } else {
40
- var termTypes = [], metaTypes = [], argumentNode = argumentNodeQuery(metavariableNode), argumentVerified = verifyArgument(argumentNode, termTypes, fileContext), metaTypeVerified = verifyMetaType(metaTypeNode, metaTypes, fileContext);
41
- if (argumentVerified && metaTypeVerified) {
42
- var metaType;
43
- var firstMetaType = (0, _array.first)(metaTypes);
44
- metaType = firstMetaType; ///
45
- var metavariable = _metavariable.default.fromMetavariableNodeAndMetaType(metavariableNode, metaType, fileContext), metavariableAssignment = _metavariable1.default.fromMetavariable(metavariable), metavariableAssigned = metavariableAssignment.assign(fileContext);
46
- if (metavariableAssigned) {
47
- metavariableVerified = true;
48
- }
49
- }
50
- }
51
- if (metavariableVerified) {
52
- fileContext.debug("...verified the '".concat(metavariableString, "' metavariable."));
53
- }
54
- return metavariableVerified;
55
- }
56
- function verifyArgument(argumentNode, termTypes, fileContext) {
57
- var argumentVerified = false;
58
- if (argumentNode === null) {
59
- argumentVerified = true;
60
- } else {
61
- var termNode = termNodeQuery(argumentNode);
62
- if (termNode === null) {} else {
63
- var termString = fileContext.nodeAsString(termNode);
64
- fileContext.debug("The '".concat(termString, "' term was found when a type should have been present."));
65
- }
66
- var typeNode = typeNodeQuery(argumentNode);
67
- if (typeNode !== null) {
68
- var type = fileContext.findTypeByTypeNode(typeNode);
69
- if (type !== null) {
70
- var termType = type; ///
71
- termTypes.push(termType);
72
- argumentVerified = true;
73
- } else {
74
- var typeString = fileContext.nodeAsString(typeNode);
75
- fileContext.debug("The '".concat(typeString, "' type is not present."));
76
- }
77
- }
78
- }
79
- return argumentVerified;
80
- }
81
- function verifyMetaType(metaTypeNode, metaTypes, fileContext) {
82
- var metaTypeVerified;
83
- var metaType = fileContext.findMetaTypeByMetaTypeNode(metaTypeNode);
84
- metaTypes.push(metaType);
85
- metaTypeVerified = true;
86
- return metaTypeVerified;
87
- }
88
-
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi8uLi9tZXRhdmFyaWFibGVcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuLi8uLi9hc3NpZ25tZW50L21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90ZXJtXCIpLFxuICAgICAgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90eXBlXCIpLFxuICAgICAgYXJndW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlL2FyZ3VtZW50IVwiKSxcbiAgICAgIG1ldGFUeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF2YXJpYWJsZURlY2xhcmF0aW9uL21ldGFUeXBlXCIpLFxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF2YXJpYWJsZURlY2xhcmF0aW9uL21ldGF2YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5TWV0YXZhcmlhYmxlRGVjbGFyYXRpb24obWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZDtcblxuICBjb25zdCBtZXRhVHlwZU5vZGUgPSBtZXRhVHlwZU5vZGVRdWVyeShtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIG1ldGFUeXBlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFUeXBlTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9OiR7bWV0YVR5cGVTdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24uLi5gKTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVWVmVyaWZpZWQgPSB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YVR5cGVOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZCA9IG1ldGF2YXJpYWJsZVZWZXJpZmllZDsgIC8vL1xuXG4gIGlmIChtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9OiR7bWV0YVR5cGVTdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24uYCk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS4uLmApO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVByZXNlbnQgPSBmaWxlQ29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlIG1ldGF2YXJpYWJsZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdGVybVR5cGVzID0gW10sXG4gICAgICAgICAgbWV0YVR5cGVzID0gW10sXG4gICAgICAgICAgYXJndW1lbnROb2RlID0gYXJndW1lbnROb2RlUXVlcnkobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgYXJndW1lbnRWZXJpZmllZCA9IHZlcmlmeUFyZ3VtZW50KGFyZ3VtZW50Tm9kZSwgdGVybVR5cGVzLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgbWV0YVR5cGVWZXJpZmllZCA9IHZlcmlmeU1ldGFUeXBlKG1ldGFUeXBlTm9kZSwgbWV0YVR5cGVzLCBmaWxlQ29udGV4dCk7XG5cbiAgICBpZiAoYXJndW1lbnRWZXJpZmllZCAmJiBtZXRhVHlwZVZlcmlmaWVkKSB7XG4gICAgICBsZXQgbWV0YVR5cGU7XG5cbiAgICAgIGNvbnN0IGZpcnN0TWV0YVR5cGUgPSBmaXJzdChtZXRhVHlwZXMpO1xuXG4gICAgICBtZXRhVHlwZSA9IGZpcnN0TWV0YVR5cGU7IC8vL1xuXG4gICAgICBjb25zdCBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbU1ldGF2YXJpYWJsZU5vZGVBbmRNZXRhVHlwZShtZXRhdmFyaWFibGVOb2RlLCBtZXRhVHlwZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlQXNzaWdubWVudCA9IE1ldGF2YXJpYWJsZUFzc2lnbm1lbnQuZnJvbU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlQXNzaWduZWQgPSBtZXRhdmFyaWFibGVBc3NpZ25tZW50LmFzc2lnbihmaWxlQ29udGV4dCk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVBc3NpZ25lZCkge1xuICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFyZ3VtZW50KGFyZ3VtZW50Tm9kZSwgdGVybVR5cGVzLCBmaWxlQ29udGV4dCkge1xuICBsZXQgYXJndW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChhcmd1bWVudE5vZGUgPT09IG51bGwpIHtcbiAgICBhcmd1bWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICAgIGlmICh0ZXJtTm9kZSA9PT0gbnVsbCkge1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdhcyBmb3VuZCB3aGVuIGEgdHlwZSBzaG91bGQgaGF2ZSBiZWVuIHByZXNlbnQuYCk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeShhcmd1bWVudE5vZGUpO1xuXG4gICAgaWYgKHR5cGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0eXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOb2RlKHR5cGVOb2RlKTtcblxuICAgICAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgdGVybVR5cGUgPSB0eXBlOyAgLy8vXG5cbiAgICAgICAgdGVybVR5cGVzLnB1c2godGVybVR5cGUpO1xuXG4gICAgICAgIGFyZ3VtZW50VmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXJndW1lbnRWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5TWV0YVR5cGUobWV0YVR5cGVOb2RlLCBtZXRhVHlwZXMsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBtZXRhVHlwZVZlcmlmaWVkO1xuXG4gIGNvbnN0IG1ldGFUeXBlID0gZmlsZUNvbnRleHQuZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5vZGUobWV0YVR5cGVOb2RlKTtcblxuICBtZXRhVHlwZXMucHVzaChtZXRhVHlwZSk7XG5cbiAgbWV0YVR5cGVWZXJpZmllZCA9IHRydWU7XG5cbiAgcmV0dXJuIG1ldGFUeXBlVmVyaWZpZWQ7XG59Il0sIm5hbWVzIjpbInZlcmlmeU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJhcmd1bWVudE5vZGVRdWVyeSIsIm1ldGFUeXBlTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiZmlsZUNvbnRleHQiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkIiwibWV0YVR5cGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFUeXBlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVWVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhdmFyaWFibGUiLCJkZWJ1ZyIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkIiwibWV0YXZhcmlhYmxlUHJlc2VudCIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZSIsInRlcm1UeXBlcyIsIm1ldGFUeXBlcyIsImFyZ3VtZW50Tm9kZSIsImFyZ3VtZW50VmVyaWZpZWQiLCJ2ZXJpZnlBcmd1bWVudCIsIm1ldGFUeXBlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhVHlwZSIsIm1ldGFUeXBlIiwiZmlyc3RNZXRhVHlwZSIsImZpcnN0IiwibWV0YXZhcmlhYmxlIiwiTWV0YXZhcmlhYmxlIiwiZnJvbU1ldGF2YXJpYWJsZU5vZGVBbmRNZXRhVHlwZSIsIm1ldGF2YXJpYWJsZUFzc2lnbm1lbnQiLCJNZXRhdmFyaWFibGVBc3NpZ25tZW50IiwiZnJvbU1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUFzc2lnbmVkIiwiYXNzaWduIiwidGVybU5vZGUiLCJ0ZXJtU3RyaW5nIiwidHlwZU5vZGUiLCJ0eXBlIiwiZmluZFR5cGVCeVR5cGVOb2RlIiwidGVybVR5cGUiLCJwdXNoIiwidHlwZVN0cmluZyIsImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQXdCQTs7O21FQVpDO29FQUNVO3FCQUViO3FCQUNJOzs7Ozs7QUFFMUIsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLG1CQUMxQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDLG1CQUMxQkUsb0JBQW9CRixJQUFBQSxnQkFBUyxFQUFDLDRCQUM5Qkcsb0JBQW9CSCxJQUFBQSxnQkFBUyxFQUFDLHND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
@@ -1,125 +0,0 @@
1
- "use strict";
2
-
3
- import Metavariable from "../../metavariable";
4
- import MetavariableAssignment from "../../assignment/metavariable";
5
-
6
- import { first } from "../../utilities/array";
7
- import { nodeQuery } from "../../utilities/query";
8
-
9
- const termNodeQuery = nodeQuery("/argument/term"),
10
- typeNodeQuery = nodeQuery("/argument/type"),
11
- argumentNodeQuery = nodeQuery("/metavariable/argument!"),
12
- metaTypeNodeQuery = nodeQuery("/metavariableDeclaration/metaType"),
13
- metavariableNodeQuery = nodeQuery("/metavariableDeclaration/metavariable");
14
-
15
- export default function verifyMetavariableDeclaration(metavariableDeclarationNode, fileContext) {
16
- let metavariableDeclarationVerified;
17
-
18
- const metaTypeNode = metaTypeNodeQuery(metavariableDeclarationNode),
19
- metavariableNode = metavariableNodeQuery(metavariableDeclarationNode),
20
- metaTypeString = fileContext.nodeAsString(metaTypeNode),
21
- metavariableString = fileContext.nodeAsString(metavariableNode);
22
-
23
- fileContext.trace(`Verifying the '${metavariableString}:${metaTypeString}' metavariable declaration...`);
24
-
25
- const metavariableVVerified = verifyMetavariable(metavariableNode, metaTypeNode, fileContext);
26
-
27
- metavariableDeclarationVerified = metavariableVVerified; ///
28
-
29
- if (metavariableDeclarationVerified) {
30
- fileContext.debug(`...verified the '${metavariableString}:${metaTypeString}' metavariable declaration.`);
31
- }
32
-
33
- return metavariableDeclarationVerified;
34
- }
35
-
36
- function verifyMetavariable(metavariableNode, metaTypeNode, fileContext) {
37
- let metavariableVerified = false;
38
-
39
- const metavariableString = fileContext.nodeAsString(metavariableNode);
40
-
41
- fileContext.trace(`Verifying the '${metavariableString}' metavariable...`);
42
-
43
- const metavariablePresent = fileContext.isMetavariablePresentByMetavariableNode(metavariableNode);
44
-
45
- if (metavariablePresent) {
46
- fileContext.debug(`The metavariable '${metavariableString}' is already present.`);
47
- } else {
48
- const termTypes = [],
49
- metaTypes = [],
50
- argumentNode = argumentNodeQuery(metavariableNode),
51
- argumentVerified = verifyArgument(argumentNode, termTypes, fileContext),
52
- metaTypeVerified = verifyMetaType(metaTypeNode, metaTypes, fileContext);
53
-
54
- if (argumentVerified && metaTypeVerified) {
55
- let metaType;
56
-
57
- const firstMetaType = first(metaTypes);
58
-
59
- metaType = firstMetaType; ///
60
-
61
- const metavariable = Metavariable.fromMetavariableNodeAndMetaType(metavariableNode, metaType, fileContext),
62
- metavariableAssignment = MetavariableAssignment.fromMetavariable(metavariable),
63
- metavariableAssigned = metavariableAssignment.assign(fileContext);
64
-
65
- if (metavariableAssigned) {
66
- metavariableVerified = true;
67
- }
68
- }
69
- }
70
-
71
- if (metavariableVerified) {
72
- fileContext.debug(`...verified the '${metavariableString}' metavariable.`);
73
- }
74
-
75
- return metavariableVerified;
76
- }
77
-
78
- function verifyArgument(argumentNode, termTypes, fileContext) {
79
- let argumentVerified = false;
80
-
81
- if (argumentNode === null) {
82
- argumentVerified = true;
83
- } else {
84
- const termNode = termNodeQuery(argumentNode);
85
-
86
- if (termNode === null) {
87
-
88
- } else {
89
- const termString = fileContext.nodeAsString(termNode);
90
-
91
- fileContext.debug(`The '${termString}' term was found when a type should have been present.`);
92
- }
93
- const typeNode = typeNodeQuery(argumentNode);
94
-
95
- if (typeNode !== null) {
96
- const type = fileContext.findTypeByTypeNode(typeNode);
97
-
98
- if (type !== null) {
99
- const termType = type; ///
100
-
101
- termTypes.push(termType);
102
-
103
- argumentVerified = true;
104
- } else {
105
- const typeString = fileContext.nodeAsString(typeNode);
106
-
107
- fileContext.debug(`The '${typeString}' type is not present.`);
108
- }
109
- }
110
- }
111
-
112
- return argumentVerified;
113
- }
114
-
115
- function verifyMetaType(metaTypeNode, metaTypes, fileContext) {
116
- let metaTypeVerified;
117
-
118
- const metaType = fileContext.findMetaTypeByMetaTypeNode(metaTypeNode);
119
-
120
- metaTypes.push(metaType);
121
-
122
- metaTypeVerified = true;
123
-
124
- return metaTypeVerified;
125
- }