occam-verify-cli 0.0.1192 → 0.0.1195
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/context/file.js +13 -1
- package/lib/dom/frame.js +2 -16
- package/lib/dom/parameter.js +14 -64
- package/lib/dom/procedureCall.js +20 -5
- package/lib/dom/reference.js +14 -2
- package/lib/dom/statement.js +2 -14
- package/lib/dom/term.js +2 -14
- package/package.json +5 -5
- package/src/context/file.js +14 -0
- package/src/dom/frame.js +0 -17
- package/src/dom/parameter.js +14 -23
- package/src/dom/procedureCall.js +28 -4
- package/src/dom/reference.js +20 -1
- package/src/dom/statement.js +0 -15
- package/src/dom/term.js +1 -18
package/src/dom/procedureCall.js
CHANGED
|
@@ -9,11 +9,16 @@ const parameterNodesQuery = nodesQuery("/procedureCall/parameter"),
|
|
|
9
9
|
procedureCallNodeQuery = nodeQuery("/statement/procedureCall");
|
|
10
10
|
|
|
11
11
|
export default domAssigned(class ProcedureCall {
|
|
12
|
-
constructor(reference, parameters) {
|
|
12
|
+
constructor(string, reference, parameters) {
|
|
13
|
+
this.string = string;
|
|
13
14
|
this.reference = reference;
|
|
14
15
|
this.parameters = parameters;
|
|
15
16
|
}
|
|
16
17
|
|
|
18
|
+
getString() {
|
|
19
|
+
return this.string;
|
|
20
|
+
}
|
|
21
|
+
|
|
17
22
|
getReference() {
|
|
18
23
|
return this.reference;
|
|
19
24
|
}
|
|
@@ -29,7 +34,7 @@ export default domAssigned(class ProcedureCall {
|
|
|
29
34
|
|
|
30
35
|
context.trace(`Verifying the '${procedureCallString}' procedure call...`);
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
const procedure = context.findProcedure
|
|
33
38
|
|
|
34
39
|
if (verified) {
|
|
35
40
|
context.debug(`...verified the '${procedureCallString}' procedure call.`);
|
|
@@ -46,9 +51,12 @@ export default domAssigned(class ProcedureCall {
|
|
|
46
51
|
const procedureCallNode = procedureCallNodeQuery(statementNode);
|
|
47
52
|
|
|
48
53
|
if (procedureCallNode !== null) {
|
|
49
|
-
const
|
|
54
|
+
const { Reference } = dom,
|
|
55
|
+
parameters = parametersFromProcedureCallNode(procedureCallNode, context),
|
|
56
|
+
reference = Reference.fromProcedureCallNode(procedureCallNode, context),
|
|
57
|
+
string = stringFromReferenceAndParameters(reference, parameters);
|
|
50
58
|
|
|
51
|
-
procedureCall = new ProcedureCall(parameters);
|
|
59
|
+
procedureCall = new ProcedureCall(string, reference, parameters);
|
|
52
60
|
}
|
|
53
61
|
|
|
54
62
|
return procedureCall;
|
|
@@ -66,3 +74,19 @@ function parametersFromProcedureCallNode(procedureCallNode, context) {
|
|
|
66
74
|
|
|
67
75
|
return parameters;
|
|
68
76
|
}
|
|
77
|
+
|
|
78
|
+
function stringFromReferenceAndParameters(reference, parameters) {
|
|
79
|
+
const referenceString = reference.getString(),
|
|
80
|
+
parametersString = parameters.reduce((parametersString, parameter) => {
|
|
81
|
+
const parameterString = parameter.getString();
|
|
82
|
+
|
|
83
|
+
parametersString = (parametersString === null) ?
|
|
84
|
+
parameterString : ///
|
|
85
|
+
`${parametersString}, ${parameterString}`;
|
|
86
|
+
|
|
87
|
+
return parametersString;
|
|
88
|
+
}, null),
|
|
89
|
+
string = `${referenceString}(${parametersString})`;
|
|
90
|
+
|
|
91
|
+
return string;
|
|
92
|
+
}
|
package/src/dom/reference.js
CHANGED
|
@@ -10,7 +10,8 @@ import { unifyLabelWithReference } from "../utilities/unification";
|
|
|
10
10
|
import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utilities/json";
|
|
11
11
|
|
|
12
12
|
const proofStepReferenceNodeQuery = nodeQuery("/proofStep/reference"),
|
|
13
|
-
declarationReferenceNodeQuery = nodeQuery("/declaration/reference")
|
|
13
|
+
declarationReferenceNodeQuery = nodeQuery("/declaration/reference"),
|
|
14
|
+
procedureCallReferenceNodeQuery = nodeQuery("/procedureCall/reference");
|
|
14
15
|
|
|
15
16
|
export default domAssigned(class Reference {
|
|
16
17
|
constructor(metavariable) {
|
|
@@ -165,4 +166,22 @@ export default domAssigned(class Reference {
|
|
|
165
166
|
|
|
166
167
|
return reference;
|
|
167
168
|
}
|
|
169
|
+
|
|
170
|
+
static fromProcedureCallNode(procedureCallNode, fileContext) {
|
|
171
|
+
let reference = null;
|
|
172
|
+
|
|
173
|
+
const procedureCallReferenceNode = procedureCallReferenceNodeQuery(procedureCallNode);
|
|
174
|
+
|
|
175
|
+
if (procedureCallReferenceNode !== null) {
|
|
176
|
+
const { Metavariable } = dom,
|
|
177
|
+
referenceNode = procedureCallReferenceNode, ///
|
|
178
|
+
localContext = LocalContext.fromFileContext(fileContext),
|
|
179
|
+
context = localContext, ///
|
|
180
|
+
metavariable = Metavariable.fromReferenceNode(referenceNode, context);
|
|
181
|
+
|
|
182
|
+
reference = new Reference(metavariable);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return reference;
|
|
186
|
+
}
|
|
168
187
|
});
|
package/src/dom/statement.js
CHANGED
|
@@ -19,7 +19,6 @@ const { match, backwardsSome } = arrayUtilities;
|
|
|
19
19
|
const statementTermNodesQuery = nodesQuery("/statement//term"),
|
|
20
20
|
statementFrameNodesQuery = nodesQuery("/statement//frame"),
|
|
21
21
|
premiseStatementNodeQuery = nodeQuery("/premise/statement"),
|
|
22
|
-
parameterStatementNodeQuery = nodeQuery("/parameter/statement"),
|
|
23
22
|
proofStepStatementNodeQuery = nodeQuery("/proofStep/statement"),
|
|
24
23
|
conclusionStatementNodeQuery = nodeQuery("/conclusion/statement"),
|
|
25
24
|
consequentStatementNodeQuery = nodeQuery("/consequent/statement"),
|
|
@@ -336,20 +335,6 @@ export default domAssigned(class Statement {
|
|
|
336
335
|
return statement;
|
|
337
336
|
}
|
|
338
337
|
|
|
339
|
-
static fromParameterNode(parameterNode, context) {
|
|
340
|
-
let statement = null;
|
|
341
|
-
|
|
342
|
-
const parameterStatementNode = parameterStatementNodeQuery(parameterNode);
|
|
343
|
-
|
|
344
|
-
if (parameterStatementNode !== null) {
|
|
345
|
-
const statementNode = parameterStatementNode; ///
|
|
346
|
-
|
|
347
|
-
statement = statementFromStatementNode(statementNode, context);
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
return statement;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
338
|
static fromConclusionNode(conclusionNode, fileContext) {
|
|
354
339
|
let statement = null;
|
|
355
340
|
|
package/src/dom/term.js
CHANGED
|
@@ -16,8 +16,7 @@ import { typeFromJSON, typeToTypeJSON } from "../utilities/json";
|
|
|
16
16
|
const { filter, compress } = arrayUtilities;
|
|
17
17
|
|
|
18
18
|
const variableNodesQuery = nodesQuery("//variable"),
|
|
19
|
-
termVariableNodeQuery = nodeQuery("/*/term[0]/variable!")
|
|
20
|
-
parameterTermNodeQuery = nodeQuery("/parameter/term");
|
|
19
|
+
termVariableNodeQuery = nodeQuery("/*/term[0]/variable!");
|
|
21
20
|
|
|
22
21
|
export default domAssigned(class Term {
|
|
23
22
|
constructor(string, node, type) {
|
|
@@ -270,22 +269,6 @@ export default domAssigned(class Term {
|
|
|
270
269
|
return term;
|
|
271
270
|
}
|
|
272
271
|
|
|
273
|
-
static fromParameterNode(parameterNode, context) {
|
|
274
|
-
let term = null;
|
|
275
|
-
|
|
276
|
-
const parameterTermNode = parameterTermNodeQuery(parameterNode);
|
|
277
|
-
|
|
278
|
-
if (parameterTermNode !== null) {
|
|
279
|
-
const node = parameterTermNode, ///
|
|
280
|
-
string = context.nodeAsString(node),
|
|
281
|
-
type = null;
|
|
282
|
-
|
|
283
|
-
term = new Term(string, node, type);
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
return term;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
272
|
static fromTermNodeAndType(termNode, type, context) {
|
|
290
273
|
const node = termNode, ///
|
|
291
274
|
string = context.nodeAsString(node),
|