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.
@@ -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
- debugger
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 parameters = parametersFromProcedureCallNode(procedureCallNode, context);
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
+ }
@@ -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
  });
@@ -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),