occam-verify-cli 0.0.903 → 0.0.904
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/conclusion.js +3 -3
- package/lib/verifier/node/metastatement.js +31 -6
- package/lib/verifier/node/statementAsCombinator.js +32 -12
- package/lib/verifier/node/termAsConstructor.js +25 -5
- package/lib/verifier/nodes/equality.js +13 -3
- package/lib/verifier/nodes/intrinsicLevel.js +13 -3
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +13 -3
- package/lib/verifier/nodes/statementAgainstCombinator.js +13 -3
- package/lib/verifier/nodes/termAgainstConstructor.js +13 -3
- package/lib/verify/statement.js +7 -4
- package/lib/verify/statementAsCombinator.js +1 -2
- package/package.json +1 -1
- package/src/conclusion.js +2 -2
- package/src/verifier/node/metastatement.js +46 -6
- package/src/verifier/node/statementAsCombinator.js +49 -16
- package/src/verifier/node/termAsConstructor.js +37 -6
- package/src/verifier/nodes/equality.js +19 -4
- package/src/verifier/nodes/intrinsicLevel.js +18 -3
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +18 -3
- package/src/verifier/nodes/statementAgainstCombinator.js +18 -3
- package/src/verifier/nodes/termAgainstConstructor.js +19 -4
- package/src/verify/statement.js +7 -3
- package/src/verify/statementAsCombinator.js +0 -1
|
@@ -10,6 +10,7 @@ import { verifyNodes } from "../../utilities/verifier";
|
|
|
10
10
|
|
|
11
11
|
const termNodeQuery = nodeQuery("/term!"),
|
|
12
12
|
statementNodeQuery = nodeQuery("/statement!"),
|
|
13
|
+
nonTerminalNodeQuery = nodeQuery("/*"),
|
|
13
14
|
termVariableNodeQuery = nodeQuery("/term/variable!"),
|
|
14
15
|
metastatementNodeQuery = nodeQuery("/metastatement!"),
|
|
15
16
|
metaArgumentStatementNodeQuery = nodeQuery("/metaArgument/statement!"),
|
|
@@ -88,6 +89,22 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
|
|
|
88
89
|
|
|
89
90
|
nonTerminalNodeVerified = termVariableNodeVerifiedAgainstTermNode; ///
|
|
90
91
|
|
|
92
|
+
return nonTerminalNodeVerified;
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
97
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
98
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
99
|
+
let nonTerminalNodeVerified;
|
|
100
|
+
|
|
101
|
+
const nonTerminalNodeA = nodeA, ///
|
|
102
|
+
nonTerminalNodeB = nodeB; ///
|
|
103
|
+
|
|
104
|
+
nonTerminalNodeVerified =
|
|
105
|
+
|
|
106
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
107
|
+
|
|
91
108
|
return nonTerminalNodeVerified;
|
|
92
109
|
}
|
|
93
110
|
}
|
|
@@ -95,9 +112,7 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
|
|
|
95
112
|
|
|
96
113
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
97
114
|
|
|
98
|
-
nonTerminalNodeVerified = nodesVerified
|
|
99
|
-
true :
|
|
100
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
115
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
101
116
|
|
|
102
117
|
return nonTerminalNodeVerified;
|
|
103
118
|
}
|
|
@@ -8,6 +8,7 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
8
8
|
import { verifyNodes } from "../../utilities/verifier";
|
|
9
9
|
|
|
10
10
|
const argumentNodeQuery = nodeQuery("/argument!"),
|
|
11
|
+
nonTerminalNodeQuery = nodeQuery("/*"),
|
|
11
12
|
metaArgumentMetaTypeNodeQuery = nodeQuery("/metaArgument/metaType!"),
|
|
12
13
|
metaArgumentStatementNodeQuery = nodeQuery("/metaArgument/statement!");
|
|
13
14
|
|
|
@@ -47,6 +48,22 @@ class StatementAgainstCombinatorNodesVerifier extends NodesVerifier {
|
|
|
47
48
|
|
|
48
49
|
nonTerminalNodeVerified = argumentNodeVerifiedAgainstArgumentNode; ///
|
|
49
50
|
|
|
51
|
+
return nonTerminalNodeVerified;
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
56
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
57
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
58
|
+
let nonTerminalNodeVerified;
|
|
59
|
+
|
|
60
|
+
const nonTerminalNodeA = nodeA, ///
|
|
61
|
+
nonTerminalNodeB = nodeB; ///
|
|
62
|
+
|
|
63
|
+
nonTerminalNodeVerified =
|
|
64
|
+
|
|
65
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
66
|
+
|
|
50
67
|
return nonTerminalNodeVerified;
|
|
51
68
|
}
|
|
52
69
|
}
|
|
@@ -54,9 +71,7 @@ class StatementAgainstCombinatorNodesVerifier extends NodesVerifier {
|
|
|
54
71
|
|
|
55
72
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
56
73
|
|
|
57
|
-
nonTerminalNodeVerified = nodesVerified
|
|
58
|
-
true :
|
|
59
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
74
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
60
75
|
|
|
61
76
|
return nonTerminalNodeVerified;
|
|
62
77
|
}
|
|
@@ -7,7 +7,8 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
7
7
|
import { verifyNodes } from "../../utilities/verifier";
|
|
8
8
|
|
|
9
9
|
const termNodeQuery = nodeQuery("/argument/term!"),
|
|
10
|
-
typeNodeQuery = nodeQuery("/argument/type!")
|
|
10
|
+
typeNodeQuery = nodeQuery("/argument/type!"),
|
|
11
|
+
nonTerminalNodeQuery = nodeQuery("/*");
|
|
11
12
|
|
|
12
13
|
class TermAgainstConstructorNodesVerifier extends NodesVerifier {
|
|
13
14
|
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead) {
|
|
@@ -28,6 +29,22 @@ class TermAgainstConstructorNodesVerifier extends NodesVerifier {
|
|
|
28
29
|
|
|
29
30
|
nonTerminalNodeVerified = termNodeVerifiedAgainstTypeNode; ///
|
|
30
31
|
|
|
32
|
+
return nonTerminalNodeVerified;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
37
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
38
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
39
|
+
let nonTerminalNodeVerified;
|
|
40
|
+
|
|
41
|
+
const nonTerminalNodeA = nodeA, ///
|
|
42
|
+
nonTerminalNodeB = nodeB; ///
|
|
43
|
+
|
|
44
|
+
nonTerminalNodeVerified =
|
|
45
|
+
|
|
46
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
47
|
+
|
|
31
48
|
return nonTerminalNodeVerified;
|
|
32
49
|
}
|
|
33
50
|
}
|
|
@@ -35,9 +52,7 @@ class TermAgainstConstructorNodesVerifier extends NodesVerifier {
|
|
|
35
52
|
|
|
36
53
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
37
54
|
|
|
38
|
-
nonTerminalNodeVerified = nodesVerified
|
|
39
|
-
true :
|
|
40
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
55
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
41
56
|
|
|
42
57
|
return nonTerminalNodeVerified;
|
|
43
58
|
}
|
package/src/verify/statement.js
CHANGED
|
@@ -45,8 +45,8 @@ function verifyStatement(statementNode, assignments, derived, localContext) {
|
|
|
45
45
|
return statementVerified;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
export function verifyStandaloneStatement(statementNode, localContext) {
|
|
49
|
-
let standaloneStatementVerified;
|
|
48
|
+
export function verifyStandaloneStatement(statementNode, localContext, verifyAhead) {
|
|
49
|
+
let standaloneStatementVerified = false;
|
|
50
50
|
|
|
51
51
|
const statementString = localContext.nodeAsString(statementNode);
|
|
52
52
|
|
|
@@ -56,7 +56,11 @@ export function verifyStandaloneStatement(statementNode, localContext) {
|
|
|
56
56
|
assignments = [],
|
|
57
57
|
statementVerified = verifyStatement(statementNode, assignments, derived);
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
if (statementVerified) {
|
|
60
|
+
const verifiedAhead = verifyAhead();
|
|
61
|
+
|
|
62
|
+
standaloneStatementVerified = verifiedAhead; ///
|
|
63
|
+
}
|
|
60
64
|
|
|
61
65
|
if (standaloneStatementVerified) {
|
|
62
66
|
localContext.debug(`...verified the '${statementString}' standalone statement.`, statementNode);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import Combinator from "../combinator";
|
|
4
|
-
import LocalContext from "../context/local";
|
|
5
4
|
import statementAsCombinatorNodeVerifier from "../verifier/node/statementAsCombinator";
|
|
6
5
|
|
|
7
6
|
export default function verifyStatementAsCombinator(statementNode, fileContext) {
|