occam-verify-cli 0.0.524 → 0.0.525

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.
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import Combinator from "../combinator";
4
+ import verifyTerm from "../verify/term";
5
+ import verifyStatement from "../verify/statement";
4
6
 
5
7
  import { nodeAsString } from "../utilities/string";
6
8
  import { typeNameFromTypeNode } from "../utilities/query";
7
- import { TERM_RULE_NAME, TYPE_RULE_NAME } from "../ruleNames";
9
+ import { TYPE_RULE_NAME, TERM_RULE_NAME, STATEMENT_RULE_NAME } from "../ruleNames";
8
10
 
9
11
  export default function verifyStatementAsCombinator(statementNode, fileContext) {
10
12
  let statementVerifiedAsCombinator = false;
@@ -58,29 +60,6 @@ function verifyNode(node, fileContext) {
58
60
  return nodeVerified;
59
61
  }
60
62
 
61
- function verifyTypeNode(typeNode, fileContext) {
62
- let typeNodeVerified = false;
63
-
64
- const typeName = typeNameFromTypeNode(typeNode),
65
- typePresent = fileContext.isTypePresentByTypeName(typeName);
66
-
67
- if (!typePresent) {
68
- fileContext.error(`The type '${typeName}' is missing.`);
69
- } else {
70
- typeNodeVerified = true;
71
- }
72
-
73
- return typeNodeVerified;
74
- }
75
-
76
- function verifyTermNode(termNode, fileContext) {
77
- let termNodeVerified = false;
78
-
79
- debugger
80
-
81
- return termNodeVerified;
82
- }
83
-
84
63
  function verifyChildNodes(childNodes, fileContext) {
85
64
  const childNodesVerified = childNodes.every((childNode) => {
86
65
  const node = childNode, ///
@@ -124,6 +103,15 @@ function verifyNonTerminalNode(nonTerminalNode, fileContext) {
124
103
  break;
125
104
  }
126
105
 
106
+ case STATEMENT_RULE_NAME: {
107
+ const statmentNode = nonTerminalNode, ///
108
+ statmentNodeVerified = verifyStatementNode(statmentNode, fileContext);
109
+
110
+ nonTerminalNodeVerified = statmentNodeVerified; ///
111
+
112
+ break;
113
+ }
114
+
127
115
  default: {
128
116
  const childNodes = nonTerminalNode.getChildNodes(),
129
117
  childNodesVerified = verifyChildNodes(childNodes, fileContext);
@@ -136,3 +124,38 @@ function verifyNonTerminalNode(nonTerminalNode, fileContext) {
136
124
 
137
125
  return nonTerminalNodeVerified;
138
126
  }
127
+
128
+ function verifyTypeNode(typeNode, fileContext) {
129
+ let typeNodeVerified = false;
130
+
131
+ const typeName = typeNameFromTypeNode(typeNode),
132
+ typePresent = fileContext.isTypePresentByTypeName(typeName);
133
+
134
+ if (!typePresent) {
135
+ fileContext.error(`The type '${typeName}' is missing.`);
136
+ } else {
137
+ typeNodeVerified = true;
138
+ }
139
+
140
+ return typeNodeVerified;
141
+ }
142
+
143
+ function verifyTermNode(termNode, fileContext) {
144
+ const types = [],
145
+ context = fileContext, ///
146
+ termVerified = verifyTerm(termNode, types, context),
147
+ termNodeVerified = termVerified; ///
148
+
149
+ return termNodeVerified;
150
+ }
151
+
152
+ function verifyStatementNode(statementNode, fileContext) {
153
+ const context = fileContext, ///
154
+ derived = false,
155
+ assertions = [],
156
+ statementVerified = verifyStatement(statementNode, assertions, derived, context),
157
+ statementNodeVerified = statementVerified; ///
158
+
159
+ return statementNodeVerified;
160
+ }
161
+
@@ -97,29 +97,6 @@ function verifyTerminalNode(terminalNode, fileContext) {
97
97
  return terminalNodeVerified;
98
98
  }
99
99
 
100
- function verifyArgumentNode(argumentNode, fileContext) {
101
- let typeNodeVerified = false;
102
-
103
- const typeNode = typeNodeQuery(argumentNode);
104
-
105
- if (typeNode === null) {
106
- const argumentString = nodeAsString(argumentNode);
107
-
108
- fileContext.error(`The ${argumentString} argument should be a type.`);
109
- } else {
110
- const typeName = typeNameFromTypeNode(typeNode),
111
- typePresent = fileContext.isTypePresentByTypeName(typeName);
112
-
113
- if (!typePresent) {
114
- fileContext.error(`The type '${typeName}' is missing.`);
115
- } else {
116
- typeNodeVerified = true;
117
- }
118
- }
119
-
120
- return typeNodeVerified;
121
- }
122
-
123
100
  function verifyNonTerminalNode(nonTerminalNode, fileContext) {
124
101
  let nonTerminalNodeVerified;
125
102
 
@@ -170,3 +147,25 @@ function verifyNonTerminalNode(nonTerminalNode, fileContext) {
170
147
  return nonTerminalNodeVerified;
171
148
  }
172
149
 
150
+ function verifyArgumentNode(argumentNode, fileContext) {
151
+ let typeNodeVerified = false;
152
+
153
+ const typeNode = typeNodeQuery(argumentNode);
154
+
155
+ if (typeNode === null) {
156
+ const argumentString = nodeAsString(argumentNode);
157
+
158
+ fileContext.error(`The ${argumentString} argument should be a type.`);
159
+ } else {
160
+ const typeName = typeNameFromTypeNode(typeNode),
161
+ typePresent = fileContext.isTypePresentByTypeName(typeName);
162
+
163
+ if (!typePresent) {
164
+ fileContext.error(`The type '${typeName}' is missing.`);
165
+ } else {
166
+ typeNodeVerified = true;
167
+ }
168
+ }
169
+
170
+ return typeNodeVerified;
171
+ }