occam-verify-cli 0.0.845 → 0.0.847

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.
Files changed (73) hide show
  1. package/lib/assignment/equality.js +4 -4
  2. package/lib/assignment/variable.js +4 -4
  3. package/lib/conclusion.js +5 -5
  4. package/lib/context/local.js +14 -1
  5. package/lib/equality.js +5 -3
  6. package/lib/equivalence.js +17 -17
  7. package/lib/mixins/nodesVerifier/intrinsiclevel.js +2 -2
  8. package/lib/mixins/nodesVerifier/metaLevel.js +2 -2
  9. package/lib/premise.js +6 -5
  10. package/lib/term.js +9 -9
  11. package/lib/utilities/equivalences.js +14 -14
  12. package/lib/verifier/node/metastatement.js +5 -4
  13. package/lib/verifier/node/statementAsCombinator.js +6 -6
  14. package/lib/verifier/node/termAsConstructor.js +5 -5
  15. package/lib/verifier/nodes/metaLevel.js +7 -7
  16. package/lib/verifier/nodes/metaLevelToIntrinsicLevel.js +18 -19
  17. package/lib/verifier/nodes/statementAgainstCombinator.js +11 -11
  18. package/lib/verifier/nodes/substitution.js +13 -11
  19. package/lib/verifier/nodes/termAgainstConstructor.js +10 -10
  20. package/lib/verify/containment.js +2 -2
  21. package/lib/verify/defining.js +6 -6
  22. package/lib/verify/equality.js +17 -17
  23. package/lib/verify/givenType.js +6 -6
  24. package/lib/verify/givenVariable.js +6 -6
  25. package/lib/verify/metavariable.js +6 -6
  26. package/lib/verify/statement/qualified.js +13 -13
  27. package/lib/verify/statement/unqualified.js +2 -2
  28. package/lib/verify/statement.js +40 -40
  29. package/lib/verify/statementAsCombinator.js +2 -1
  30. package/lib/verify/term.js +30 -30
  31. package/lib/verify/termAndGivenType.js +7 -7
  32. package/lib/verify/termAsConstructor.js +3 -2
  33. package/lib/verify/terms.js +7 -7
  34. package/lib/verify/type.js +7 -7
  35. package/lib/verify/typeAssertion.js +19 -19
  36. package/lib/verify/variable.js +6 -6
  37. package/package.json +2 -2
  38. package/src/assignment/equality.js +5 -5
  39. package/src/assignment/variable.js +5 -5
  40. package/src/conclusion.js +6 -6
  41. package/src/context/local.js +12 -0
  42. package/src/equality.js +6 -4
  43. package/src/equivalence.js +16 -16
  44. package/src/mixins/nodesVerifier/intrinsiclevel.js +2 -2
  45. package/src/mixins/nodesVerifier/metaLevel.js +1 -1
  46. package/src/premise.js +9 -4
  47. package/src/term.js +8 -8
  48. package/src/utilities/equivalences.js +13 -13
  49. package/src/verifier/node/metastatement.js +8 -9
  50. package/src/verifier/node/statementAsCombinator.js +8 -11
  51. package/src/verifier/node/termAsConstructor.js +6 -8
  52. package/src/verifier/nodes/metaLevel.js +6 -6
  53. package/src/verifier/nodes/metaLevelToIntrinsicLevel.js +15 -19
  54. package/src/verifier/nodes/statementAgainstCombinator.js +10 -10
  55. package/src/verifier/nodes/substitution.js +18 -15
  56. package/src/verifier/nodes/termAgainstConstructor.js +9 -9
  57. package/src/verify/containment.js +1 -1
  58. package/src/verify/defining.js +5 -5
  59. package/src/verify/equality.js +16 -16
  60. package/src/verify/givenType.js +5 -5
  61. package/src/verify/givenVariable.js +5 -5
  62. package/src/verify/metavariable.js +5 -5
  63. package/src/verify/statement/qualified.js +12 -13
  64. package/src/verify/statement/unqualified.js +1 -2
  65. package/src/verify/statement.js +39 -39
  66. package/src/verify/statementAsCombinator.js +1 -0
  67. package/src/verify/term.js +29 -29
  68. package/src/verify/termAndGivenType.js +7 -7
  69. package/src/verify/termAsConstructor.js +3 -1
  70. package/src/verify/terms.js +7 -7
  71. package/src/verify/type.js +6 -6
  72. package/src/verify/typeAssertion.js +18 -18
  73. package/src/verify/variable.js +5 -5
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import LocalContext from "../../context/local";
4
3
  import NodesVerifier from "../../verifier/nodes";
5
4
  import TermForVariableSubstitution from "../../substitution/termForVariable";
6
5
  import intrinsicLevelNodesVerifierMixins from "../../mixins/nodesVerifier/intrinsiclevel";
@@ -16,7 +15,7 @@ const variableNodeQuery = nodeQuery("/*/variable!"),
16
15
  substitutionNodeQuery = nodeQuery("/metastatement/substitution!");
17
16
 
18
17
  class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
19
- verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, localContextB, verifyAhead) {
18
+ verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead) {
20
19
  let nonTerminalNodeVerified;
21
20
 
22
21
  const nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName();
@@ -24,7 +23,7 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
24
23
  switch (nonTerminalNodeARuleName) {
25
24
  case METASTATEMENT_RULE_NAME: {
26
25
  const metastatementNodeA = nonTerminalNodeA, ///
27
- metaArgumentNodeVerified = this.verifyMetastatementNode(metastatementNodeA, nonTerminalNodeB, substitutions, fileContextA, localContextB, verifyAhead);
26
+ metaArgumentNodeVerified = this.verifyMetastatementNode(metastatementNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
28
27
 
29
28
  nonTerminalNodeVerified = metaArgumentNodeVerified; ///
30
29
 
@@ -33,7 +32,6 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
33
32
 
34
33
  case TERM_RULE_NAME: {
35
34
  const termNodeA = nonTerminalNodeA, ///
36
- localContextA = LocalContext.fromFileContext(fileContextA),
37
35
  termNodeVerified = this.verifyTermNode(termNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
38
36
 
39
37
  nonTerminalNodeVerified = termNodeVerified; ///
@@ -42,14 +40,14 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
42
40
  }
43
41
 
44
42
  default: {
45
- nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, localContextB, verifyAhead);
43
+ nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
46
44
  }
47
45
  }
48
46
 
49
47
  return nonTerminalNodeVerified;
50
48
  }
51
49
 
52
- verifyMetastatementNode(metastatementNodeA, nonTerminalNodeB, substitutions, fileContextA, localContextB, verifyAhead) {
50
+ verifyMetastatementNode(metastatementNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead) {
53
51
  let metastatementNodeVerified;
54
52
 
55
53
  const nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName();
@@ -57,7 +55,7 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
57
55
  switch (nonTerminalNodeBRuleName) {
58
56
  case META_ARGUMENT_RULE_NAME: {
59
57
  const metaArgumentNodeB = nonTerminalNodeB, ///
60
- metaArgumentNodeVerified = this.verifyMetaArgumentNode(metastatementNodeA, metaArgumentNodeB, substitutions, fileContextA, localContextB, verifyAhead);
58
+ metaArgumentNodeVerified = this.verifyMetaArgumentNode(metastatementNodeA, metaArgumentNodeB, substitutions, localContextA, localContextB, verifyAhead);
61
59
 
62
60
  metastatementNodeVerified = metaArgumentNodeVerified; ///
63
61
 
@@ -66,7 +64,7 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
66
64
 
67
65
  case STATEMENT_RULE_NAME: {
68
66
  const statementNodeB = nonTerminalNodeB, ///
69
- statementNodeVerified = this.verifyStatementNode(metastatementNodeA, statementNodeB, substitutions, fileContextA, localContextB, verifyAhead);
67
+ statementNodeVerified = this.verifyStatementNode(metastatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
70
68
 
71
69
  metastatementNodeVerified = statementNodeVerified; ///
72
70
 
@@ -77,7 +75,7 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
77
75
  return metastatementNodeVerified;
78
76
  }
79
77
 
80
- verifyMetaArgumentNode(metastatementNodeA, metaArgumentNodeB, substitutions, fileContextA, localContextB, verifyAhead) {
78
+ verifyMetaArgumentNode(metastatementNodeA, metaArgumentNodeB, substitutions, localContextA, localContextB, verifyAhead) {
81
79
  let metaArgumentNodeVerified = false;
82
80
 
83
81
  const statementNodeB = statementNodeQuery(metaArgumentNodeB),
@@ -85,7 +83,7 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
85
83
 
86
84
  if ((metavariableNodeA !== null) && (statementNodeB !== null)) {
87
85
  const substitutionNodeA = substitutionNodeQuery(metastatementNodeA),
88
- metavariableNodeVerified = this.verifyMetavariableNode(metavariableNodeA, substitutionNodeA, statementNodeB, substitutions, fileContextA, localContextB, verifyAhead);
86
+ metavariableNodeVerified = this.verifyMetavariableNode(metavariableNodeA, substitutionNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
89
87
 
90
88
  metaArgumentNodeVerified = metavariableNodeVerified; ///
91
89
  }
@@ -93,14 +91,14 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
93
91
  return metaArgumentNodeVerified;
94
92
  }
95
93
 
96
- verifyStatementNode(metastatementNodeA, statementNodeB, substitutions, fileContextA, localContextB, verifyAhead) {
94
+ verifyStatementNode(metastatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
97
95
  let statementNodeVerified;
98
96
 
99
97
  const metavariableNodeA = metavariableNodeQuery(metastatementNodeA);
100
98
 
101
99
  if (metavariableNodeA !== null) {
102
100
  const substitutionNodeA = substitutionNodeQuery(metastatementNodeA),
103
- metavariableNodeVerified = this.verifyMetavariableNode(metavariableNodeA, substitutionNodeA, statementNodeB, substitutions, fileContextA, localContextB, verifyAhead);
101
+ metavariableNodeVerified = this.verifyMetavariableNode(metavariableNodeA, substitutionNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
104
102
 
105
103
  statementNodeVerified = metavariableNodeVerified; ///
106
104
  } else {
@@ -110,7 +108,7 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
110
108
  nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(),
111
109
  childNodesA = nonTerminalNodeAChildNodes, ///
112
110
  childNodesB = nonTerminalNodeBChildNodes, ///
113
- childNodesVerified = super.verifyChildNodes(childNodesA, childNodesB, substitutions, fileContextA, localContextB, verifyAhead);
111
+ childNodesVerified = super.verifyChildNodes(childNodesA, childNodesB, substitutions, localContextA, localContextB, verifyAhead);
114
112
 
115
113
  statementNodeVerified = childNodesVerified; ///
116
114
  }
@@ -118,7 +116,7 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
118
116
  return statementNodeVerified;
119
117
  }
120
118
 
121
- verifyMetavariableNode(metavariableNodeA, substitutionNodeA, statementNodeB, substitutions, fileContextA, localContextB, verifyAhead) {
119
+ verifyMetavariableNode(metavariableNodeA, substitutionNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
122
120
  let metavariableNodeVerified;
123
121
 
124
122
  const substitution = substitutions.find((substitution) => {
@@ -130,8 +128,7 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
130
128
  }) || null;
131
129
 
132
130
  if (substitution !== null) {
133
- const statementNode = substitution.getStatementNode(),
134
- localContextA = LocalContext.fromFileContext(fileContextA);
131
+ const statementNode = substitution.getStatementNode();
135
132
 
136
133
  if (substitutionNodeA !== null) {
137
134
  const substitutionNode = substitutionNodeA, ///
@@ -161,7 +158,7 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
161
158
  return metavariableNodeVerified;
162
159
  }
163
160
 
164
- verifyTermNode(termNodeA, nonTerminalNodeB, substitutions, fileContextA, localContextB, verifyAhead) {
161
+ verifyTermNode(termNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead) {
165
162
  let termNodeVerified = false;
166
163
 
167
164
  const nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName();
@@ -172,14 +169,13 @@ class MetaLevelToIntrinsicLevelNodesVerifier extends NodesVerifier {
172
169
 
173
170
  if (variableNodeA !== null) {
174
171
  const termNodeB = nonTerminalNodeB, ///
175
- localContextA = LocalContext.fromFileContext(fileContextA),
176
172
  variableNodeVerified = this.verifyVariableNode(variableNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead);
177
173
 
178
174
  termNodeVerified = variableNodeVerified; ///
179
175
  } else {
180
176
  const nonTerminalNodeA = termNodeA, ///
181
177
  nonTerminalNodeB = termNodeB, ///
182
- nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, localContextB, verifyAhead);
178
+ nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
183
179
 
184
180
  termNodeVerified = nonTerminalNodeVerified; ///
185
181
  }
@@ -12,7 +12,7 @@ const metaTypeNodeQuery = nodeQuery("/metaArgument/metaType!"),
12
12
  metaTypeTerminalNodeQuery = nodeQuery("/metaType/@meta-type");
13
13
 
14
14
  class StatementAgainstCombinatorNodesVerifier extends NodesVerifier {
15
- verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, context, verifyAhead) {
15
+ verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead) {
16
16
  let nonTerminalNodeVerified = false;
17
17
 
18
18
  const nonTerminalNode = nonTerminalNodeA, ///
@@ -25,7 +25,7 @@ class StatementAgainstCombinatorNodesVerifier extends NodesVerifier {
25
25
  case META_ARGUMENT_RULE_NAME: {
26
26
  const metaArgumentNode = nonTerminalNode, ///
27
27
  combinatorMetaargumentNode = combinatorNonTerminalNode, ///
28
- metaArgumentNodeVerified = this.verifyMetaargumentNode(metaArgumentNode, combinatorMetaargumentNode, context, verifyAhead);
28
+ metaArgumentNodeVerified = this.verifyMetaargumentNode(metaArgumentNode, combinatorMetaargumentNode, localContext, verifyAhead);
29
29
 
30
30
  nonTerminalNodeVerified = metaArgumentNodeVerified; ///
31
31
 
@@ -35,7 +35,7 @@ class StatementAgainstCombinatorNodesVerifier extends NodesVerifier {
35
35
  case ARGUMENT_RULE_NAME: {
36
36
  const argumentNode = nonTerminalNode, ///
37
37
  constructorArgumentNode = combinatorNonTerminalNode, ///
38
- argumentNodeVerified = termAgainstConstructorNodesVerifier.verifyArgumentNode(argumentNode, constructorArgumentNode, context, verifyAhead);
38
+ argumentNodeVerified = termAgainstConstructorNodesVerifier.verifyArgumentNode(argumentNode, constructorArgumentNode, localContext, verifyAhead);
39
39
 
40
40
  nonTerminalNodeVerified = argumentNodeVerified; ///
41
41
 
@@ -43,7 +43,7 @@ class StatementAgainstCombinatorNodesVerifier extends NodesVerifier {
43
43
  }
44
44
 
45
45
  default: {
46
- nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, context, verifyAhead);
46
+ nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
47
47
 
48
48
  break;
49
49
  }
@@ -53,28 +53,28 @@ class StatementAgainstCombinatorNodesVerifier extends NodesVerifier {
53
53
  return nonTerminalNodeVerified;
54
54
  }
55
55
 
56
- verifyMetaargumentNode(metaArgumentNode, combinatorMetaargumentNode, context, verifyAhead) {
56
+ verifyMetaargumentNode(metaArgumentNode, combinatorMetaargumentNode, localContext, verifyAhead) {
57
57
  let metaArgumentNodeVerified = false;
58
58
 
59
- const metaArgumentString = context.nodeAsString(metaArgumentNode);
59
+ const metaArgumentString = localContext.nodeAsString(metaArgumentNode);
60
60
 
61
61
  const statementNode = statementNodeQuery(metaArgumentNode),
62
62
  combinatorMetaTYpeNode = metaTypeNodeQuery(combinatorMetaargumentNode);
63
63
 
64
64
  if (statementNode === null) {
65
- context.debug(`Expected a statement but got a '${metaArgumentString}' meta-type.`, metaArgumentNode);
65
+ localContext.debug(`Expected a statement but got a '${metaArgumentString}' meta-type.`, metaArgumentNode);
66
66
  } else {
67
67
  if (combinatorMetaTYpeNode === null) {
68
- const combinatorMetaargumentString = context.nodeAsString(combinatorMetaargumentNode);
68
+ const combinatorMetaargumentString = localContext.nodeAsString(combinatorMetaargumentNode);
69
69
 
70
- context.debug(`Expected a meta-type but got a '${combinatorMetaargumentString}' statement.`, metaArgumentNode);
70
+ localContext.debug(`Expected a meta-type but got a '${combinatorMetaargumentString}' statement.`, metaArgumentNode);
71
71
  } else {
72
72
  const combinatorMetaTypeTerminalNode = metaTypeTerminalNodeQuery(combinatorMetaTYpeNode),
73
73
  content = combinatorMetaTypeTerminalNode.getContent(),
74
74
  contentStatementMetaType = (content === STATEMENT_META_TYPE);
75
75
 
76
76
  if (!contentStatementMetaType) {
77
- context.debug(`Expected the meta-type of the combinator to be '${STATEMENT_META_TYPE}' but got '${content}' instead.`, metaArgumentNode);
77
+ localContext.debug(`Expected the meta-type of the combinator to be '${STATEMENT_META_TYPE}' but got '${content}' instead.`, metaArgumentNode);
78
78
  } else {
79
79
  const verifiedAhead = verifyAhead();
80
80
 
@@ -64,26 +64,29 @@ class SubstitutionNodesVerifier extends NodesVerifier {
64
64
  verifyVariableNode(variableNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead) {
65
65
  let variableNodeVerified = false;
66
66
 
67
- const variableNodeB = variableNodeQuery(termNodeB);
67
+ if (variableNodeVerified === false) {
68
+ const variableNodeB = variableNodeQuery(termNodeB);
68
69
 
69
- if (variableNodeB !== null) {
70
- const variableNodeAMatchedVariableNodeB = variableNodeA.match(variableNodeB);
70
+ if (variableNodeB !== null) {
71
+ const variableNodeAMatchedVariableNodeB = variableNodeA.match(variableNodeB);
71
72
 
72
- if (variableNodeAMatchedVariableNodeB) {
73
- const verifiedAhead = verifyAhead();
73
+ if (variableNodeAMatchedVariableNodeB) {
74
+ const verifiedAhead = verifyAhead();
74
75
 
75
- variableNodeVerified = verifiedAhead;
76
+ variableNodeVerified = verifiedAhead; ///
77
+ }
76
78
  }
77
- } else {
78
- const variableNode = variableNodeA; ///
79
+ }
79
80
 
80
- const substitution = substitutions.find((substitution) => {
81
- const matches = substitution.matchVariableNode(variableNode);
81
+ if (variableNodeVerified === false) {
82
+ const variableNode = variableNodeA,
83
+ substitution = substitutions.find((substitution) => {
84
+ const matches = substitution.matchVariableNode(variableNode);
82
85
 
83
- if (matches) {
84
- return true;
85
- }
86
- }) || null;
86
+ if (matches) {
87
+ return true;
88
+ }
89
+ }) || null;
87
90
 
88
91
  if (substitution !== null) {
89
92
  const termNode = termNodeB, ///
@@ -109,7 +112,7 @@ class SubstitutionNodesVerifier extends NodesVerifier {
109
112
  substitutions.pop();
110
113
  }
111
114
 
112
- variableNodeVerified = verifiedAhead;
115
+ variableNodeVerified = verifiedAhead; ///
113
116
  }
114
117
  }
115
118
 
@@ -10,7 +10,7 @@ const termNodeQuery = nodeQuery("/argument/term!"),
10
10
  typeNodeQuery = nodeQuery("/argument/type!");
11
11
 
12
12
  class TermAgainstConstructorNodesVerifier extends NodesVerifier {
13
- verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, context, verifyAhead) {
13
+ verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead) {
14
14
  let nonTerminalNodeVerified = false;
15
15
 
16
16
  const nonTerminalNode = nonTerminalNodeA, ///
@@ -23,7 +23,7 @@ class TermAgainstConstructorNodesVerifier extends NodesVerifier {
23
23
  case ARGUMENT_RULE_NAME: {
24
24
  const argumentNode = nonTerminalNode, ///
25
25
  constructorArgumentNode = constructorNonTerminalNode, ///
26
- argumentNodeVerified = this.verifyArgumentNode(argumentNode, constructorArgumentNode, context, verifyAhead);
26
+ argumentNodeVerified = this.verifyArgumentNode(argumentNode, constructorArgumentNode, localContext, verifyAhead);
27
27
 
28
28
  nonTerminalNodeVerified = argumentNodeVerified; ///
29
29
 
@@ -31,7 +31,7 @@ class TermAgainstConstructorNodesVerifier extends NodesVerifier {
31
31
  }
32
32
 
33
33
  default: {
34
- nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNode, constructorNonTerminalNode, context, verifyAhead);
34
+ nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNode, constructorNonTerminalNode, localContext, verifyAhead);
35
35
 
36
36
  break;
37
37
  }
@@ -41,15 +41,15 @@ class TermAgainstConstructorNodesVerifier extends NodesVerifier {
41
41
  return nonTerminalNodeVerified;
42
42
  }
43
43
 
44
- verifyArgumentNode(argumentNode, constructorArgumentNode, context, verifyAhead) {
44
+ verifyArgumentNode(argumentNode, constructorArgumentNode, localContext, verifyAhead) {
45
45
  let argumentNodeVerified = false;
46
46
 
47
- const argumentString = context.nodeAsString(argumentNode);
47
+ const argumentString = localContext.nodeAsString(argumentNode);
48
48
 
49
49
  const typeNode = typeNodeQuery(argumentNode);
50
50
 
51
51
  if (typeNode !== null) {
52
- context.debug(`The '${argumentString}' argument should be a term, not a type.`, argumentNode);
52
+ localContext.debug(`The '${argumentString}' argument should be a term, not a type.`, argumentNode);
53
53
  } else {
54
54
  const termNode = termNodeQuery(argumentNode);
55
55
 
@@ -59,7 +59,7 @@ class TermAgainstConstructorNodesVerifier extends NodesVerifier {
59
59
  if (constructorTermNode !== null) {
60
60
  const node = termNode, ///
61
61
  constructorNode = constructorTermNode, ///
62
- nodeVerified = this.verifyNode(node, constructorNode, context, verifyAhead);
62
+ nodeVerified = this.verifyNode(node, constructorNode, localContext, verifyAhead);
63
63
 
64
64
  argumentNodeVerified = nodeVerified; ///
65
65
  }
@@ -71,14 +71,14 @@ class TermAgainstConstructorNodesVerifier extends NodesVerifier {
71
71
  if (constructorTypeNode !== null) {
72
72
  const { verifyTerm } = termAgainstConstructorNodesVerifier,
73
73
  terms = [],
74
- termVerified = verifyTerm(termNode, terms, context, () => {
74
+ termVerified = verifyTerm(termNode, terms, localContext, () => {
75
75
  let verifiedAhead = false;
76
76
 
77
77
  const constructorTypeName = typeNameFromTypeNode(constructorTypeNode),
78
78
  firstTerm = first(terms),
79
79
  term = firstTerm, ///
80
80
  termType = term.getType(),
81
- constructorType = context.findTypeByTypeName(constructorTypeName),
81
+ constructorType = localContext.findTypeByTypeName(constructorTypeName),
82
82
  termTypeEqualToOrSubTypeOfType = termType.isEqualToOrSubTypeOf(constructorType);
83
83
 
84
84
  if (termTypeEqualToOrSubTypeOfType) {
@@ -9,7 +9,7 @@ const termNodeQuery = nodeQuery("/argument/term!"),
9
9
  metaArgumentTermNodesQuery = nodesQuery("/metaArgument//term"),
10
10
  metaArgumentVariableNodesQuery = nodesQuery("/metaArgument//variable");
11
11
 
12
- export default function verifyContainment(argumentNode, containmentNode, metaArgumentNode, context) {
12
+ export default function verifyContainment(argumentNode, containmentNode, metaArgumentNode, localContext) {
13
13
  let containmentVerified = false;
14
14
 
15
15
  const contained = containedFromContainmentNode(containmentNode),
@@ -9,7 +9,7 @@ import { first, second } from "../utilities/array";
9
9
  const termNodeQuery = nodeQuery("/argument/term!"),
10
10
  variableNodeQuery = nodeQuery("/argument/term/variable!");
11
11
 
12
- export default function verifyDefining(argumentNode, definingNode, context) {
12
+ export default function verifyDefining(argumentNode, definingNode, localContext) {
13
13
  let definingVerified = false;
14
14
 
15
15
  const defined = definedFromDefiningNode(definingNode),
@@ -19,10 +19,10 @@ export default function verifyDefining(argumentNode, definingNode, context) {
19
19
  if (false) {
20
20
  ///
21
21
  } else if (variableNode !== null) {
22
- const variable = context.findVariableByVariableNode(variableNode);
22
+ const variable = localContext.findVariableByVariableNode(variableNode);
23
23
 
24
24
  if (variable !== null) {
25
- const variableDefined = context.isVariableDefined(variable);
25
+ const variableDefined = localContext.isVariableDefined(variable);
26
26
 
27
27
  if (defined) {
28
28
  if (variableDefined) {
@@ -38,12 +38,12 @@ export default function verifyDefining(argumentNode, definingNode, context) {
38
38
  }
39
39
  } else if (termNode !== null) {
40
40
  const terms = [],
41
- termVerified = verifyTerm(termNode, terms, context, () => {
41
+ termVerified = verifyTerm(termNode, terms, localContext, () => {
42
42
  let verifiedAhead;
43
43
 
44
44
  const firstTerm = first(terms),
45
45
  term = firstTerm, ///
46
- termGrounded = context.isTermGrounded(term);
46
+ termGrounded = localContext.isTermGrounded(term);
47
47
 
48
48
  if (defined) {
49
49
  if (termGrounded) {
@@ -10,12 +10,12 @@ import { first, second } from "../utilities/array";
10
10
  const leftTermNodeQuery = nodeQuery("/equality/argument[0]/term!"),
11
11
  rightTermNodeQuery = nodeQuery("/equality/argument[1]/term!");
12
12
 
13
- export default function verifyEquality(equalityNode, assignments, derived, context, verifyAhead) {
13
+ export default function verifyEquality(equalityNode, assignments, derived, localContext, verifyAhead) {
14
14
  let equalityVerified;
15
15
 
16
- const equalityString = context.nodeAsString(equalityNode);
16
+ const equalityString = localContext.nodeAsString(equalityNode);
17
17
 
18
- context.trace(`Verifying the '${equalityString}' equality...`, equalityNode);
18
+ localContext.trace(`Verifying the '${equalityString}' equality...`, equalityNode);
19
19
 
20
20
  const verifyEqualityFunctions = [
21
21
  verifyDerivedEquality,
@@ -23,7 +23,7 @@ export default function verifyEquality(equalityNode, assignments, derived, conte
23
23
  ];
24
24
 
25
25
  equalityVerified = verifyEqualityFunctions.some((verifyEqualityFunction) => {
26
- const equalityVerified = verifyEqualityFunction(equalityNode, assignments, derived, context, verifyAhead);
26
+ const equalityVerified = verifyEqualityFunction(equalityNode, assignments, derived, localContext, verifyAhead);
27
27
 
28
28
  if (equalityVerified) {
29
29
  return true;
@@ -31,19 +31,19 @@ export default function verifyEquality(equalityNode, assignments, derived, conte
31
31
  });
32
32
 
33
33
  if (equalityVerified) {
34
- context.debug(`...verified the '${equalityString}' equality.`, equalityNode);
34
+ localContext.debug(`...verified the '${equalityString}' equality.`, equalityNode);
35
35
  }
36
36
 
37
37
  return equalityVerified;
38
38
  }
39
39
 
40
- function verifyDerivedEquality(equalityNode, assignments, derived, context, verifyAhead) {
40
+ function verifyDerivedEquality(equalityNode, assignments, derived, localContext, verifyAhead) {
41
41
  let derivedEqualityVerified = false;
42
42
 
43
43
  if (derived) {
44
- const equalityString = context.nodeAsString(equalityNode);
44
+ const equalityString = localContext.nodeAsString(equalityNode);
45
45
 
46
- context.trace(`Verifying the '${equalityString}' derived equality...`, equalityNode);
46
+ localContext.trace(`Verifying the '${equalityString}' derived equality...`, equalityNode);
47
47
 
48
48
  const terms = [],
49
49
  leftTermNode = leftTermNodeQuery(equalityNode),
@@ -52,7 +52,7 @@ function verifyDerivedEquality(equalityNode, assignments, derived, context, veri
52
52
  leftTermNode,
53
53
  rightTermNode
54
54
  ],
55
- termsVerified = verifyTerms(termNodes, terms, context, () => {
55
+ termsVerified = verifyTerms(termNodes, terms, localContext, () => {
56
56
  let verifiedAhead = false;
57
57
 
58
58
  const firstTerm = first(terms),
@@ -62,7 +62,7 @@ function verifyDerivedEquality(equalityNode, assignments, derived, context, veri
62
62
  equality = Equality.fromLeftTermRightTermAndEqualityNode(leftTerm, rightTerm, equalityNode);
63
63
 
64
64
  if (equality !== null) {
65
- const equalityEqual = equality.isEqual(context);
65
+ const equalityEqual = equality.isEqual(localContext);
66
66
 
67
67
  if (equalityEqual) {
68
68
  const equalityAssignment = EqualityAssignment.fromEquality(equality),
@@ -84,20 +84,20 @@ function verifyDerivedEquality(equalityNode, assignments, derived, context, veri
84
84
  derivedEqualityVerified = termsVerified; ///
85
85
 
86
86
  if (derivedEqualityVerified) {
87
- context.trace(`...verified the '${equalityString}' derived equality.`, equalityNode);
87
+ localContext.trace(`...verified the '${equalityString}' derived equality.`, equalityNode);
88
88
  }
89
89
  }
90
90
 
91
91
  return derivedEqualityVerified;
92
92
  }
93
93
 
94
- function verifyGivenEquality(equalityNode, assignments, derived, context, verifyAhead) {
94
+ function verifyGivenEquality(equalityNode, assignments, derived, localContext, verifyAhead) {
95
95
  let givenEqualityVerified = false;
96
96
 
97
97
  if (!derived) {
98
- const equalityString = context.nodeAsString(equalityNode);
98
+ const equalityString = localContext.nodeAsString(equalityNode);
99
99
 
100
- context.trace(`Verifying the '${equalityString}' given equality...`, equalityNode);
100
+ localContext.trace(`Verifying the '${equalityString}' given equality...`, equalityNode);
101
101
 
102
102
  const terms = [],
103
103
  leftTermNode = leftTermNodeQuery(equalityNode),
@@ -106,7 +106,7 @@ function verifyGivenEquality(equalityNode, assignments, derived, context, verify
106
106
  leftTermNode,
107
107
  rightTermNode
108
108
  ],
109
- termsVerified = verifyTerms(termNodes, terms, context, () => {
109
+ termsVerified = verifyTerms(termNodes, terms, localContext, () => {
110
110
  let verifiedAhead = false;
111
111
 
112
112
  const firstTerm = first(terms),
@@ -134,7 +134,7 @@ function verifyGivenEquality(equalityNode, assignments, derived, context, verify
134
134
  givenEqualityVerified = termsVerified; ///
135
135
 
136
136
  if (givenEqualityVerified) {
137
- context.trace(`...verified the '${equalityString}' given equality.`, equalityNode);
137
+ localContext.trace(`...verified the '${equalityString}' given equality.`, equalityNode);
138
138
  }
139
139
  }
140
140
 
@@ -2,15 +2,15 @@
2
2
 
3
3
  import { typeNameFromTypeNode } from "../utilities/query";
4
4
 
5
- export default function verifyGivenType(typeNode, types, context, verifyAhead) {
5
+ export default function verifyGivenType(typeNode, types, localContext, verifyAhead) {
6
6
  let givenTypeVerified = false;
7
7
 
8
- const typeString = context.nodeAsString(typeNode);
8
+ const typeString = localContext.nodeAsString(typeNode);
9
9
 
10
- context.trace(`Verifying the given '${typeString}' type...`, typeNode);
10
+ localContext.trace(`Verifying the given '${typeString}' type...`, typeNode);
11
11
 
12
12
  const typeName = typeNameFromTypeNode(typeNode),
13
- type = context.findTypeByTypeName(typeName);
13
+ type = localContext.findTypeByTypeName(typeName);
14
14
 
15
15
  if (type !== null) {
16
16
  let verifiedAhead;
@@ -27,7 +27,7 @@ export default function verifyGivenType(typeNode, types, context, verifyAhead) {
27
27
  }
28
28
 
29
29
  if (givenTypeVerified) {
30
- context.debug(`...verified the given '${typeString}' type.`, typeNode);
30
+ localContext.debug(`...verified the given '${typeString}' type.`, typeNode);
31
31
  }
32
32
 
33
33
  return givenTypeVerified;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- export default function verifyGivenVariable(variableNode, variables, context, verifyAhead) {
3
+ export default function verifyGivenVariable(variableNode, variables, localContext, verifyAhead) {
4
4
  let givenVariableVerified = false;
5
5
 
6
- const variableString = context.nodeAsString(variableNode);
6
+ const variableString = localContext.nodeAsString(variableNode);
7
7
 
8
- context.trace(`Verifying the '${variableString}' given variable...`, variableNode);
8
+ localContext.trace(`Verifying the '${variableString}' given variable...`, variableNode);
9
9
 
10
- const variable = context.findVariableByVariableNode(variableNode);
10
+ const variable = localContext.findVariableByVariableNode(variableNode);
11
11
 
12
12
  if (variable !== null) {
13
13
  let verifiedAhead;
@@ -24,7 +24,7 @@ export default function verifyGivenVariable(variableNode, variables, context, ve
24
24
  }
25
25
 
26
26
  if (givenVariableVerified) {
27
- context.debug(`...verified the '${variableString}' given variable.`, variableNode);
27
+ localContext.debug(`...verified the '${variableString}' given variable.`, variableNode);
28
28
  }
29
29
 
30
30
  return givenVariableVerified;
@@ -35,14 +35,14 @@ export default function verifyMetavariable(metavariableNode, metaTypeNode, fileC
35
35
  return metavariableVerified;
36
36
  }
37
37
 
38
- export function verifyStandaloneMetavariable(metavariableNode, contexct, verifyAhead) {
38
+ export function verifyStandaloneMetavariable(metavariableNode, localMetaContext, verifyAhead) {
39
39
  let standaloneMetavariableVerified = false;
40
40
 
41
- const metavariableString = contexct.nodeAsString(metavariableNode);
41
+ const metavariableString = localMetaContext.nodeAsString(metavariableNode);
42
42
 
43
- contexct.trace(`Verifying the '${metavariableString}' standalone metavariable...`, metavariableNode);
43
+ localMetaContext.trace(`Verifying the '${metavariableString}' standalone metavariable...`, metavariableNode);
44
44
 
45
- const metavariablePresent = contexct.isMetavariablePresentByMetavariableNode(metavariableNode);
45
+ const metavariablePresent = localMetaContext.isMetavariablePresentByMetavariableNode(metavariableNode);
46
46
 
47
47
  if (metavariablePresent) {
48
48
  const verifiedAhead = verifyAhead();
@@ -51,7 +51,7 @@ export function verifyStandaloneMetavariable(metavariableNode, contexct, verifyA
51
51
  }
52
52
 
53
53
  if (standaloneMetavariableVerified) {
54
- contexct.debug(`...verified the '${metavariableString}' standalone metavariable.`, metavariableNode);
54
+ localMetaContext.debug(`...verified the '${metavariableString}' standalone metavariable.`, metavariableNode);
55
55
  }
56
56
 
57
57
  return standaloneMetavariableVerified;