occam-verify-cli 1.0.825 → 1.0.826

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 (109) hide show
  1. package/lib/element/assertion/contained.js +9 -5
  2. package/lib/element/assertion/property.js +9 -5
  3. package/lib/element/assertion/satisfies.js +9 -5
  4. package/lib/element/assertion/subproof.js +9 -5
  5. package/lib/element/assertion/type.js +9 -9
  6. package/lib/element/assertion.js +4 -3
  7. package/lib/element/assumption.js +7 -6
  8. package/lib/element/combinator.js +8 -7
  9. package/lib/element/conclusion.js +8 -7
  10. package/lib/element/constructor.js +7 -6
  11. package/lib/element/declaration/combinator.js +3 -3
  12. package/lib/element/declaration/complexType.js +3 -3
  13. package/lib/element/declaration/constructor.js +3 -3
  14. package/lib/element/declaration/metavariable.js +3 -3
  15. package/lib/element/declaration/simpleType.js +3 -3
  16. package/lib/element/declaration/typePrefix.js +3 -3
  17. package/lib/element/declaration/variable.js +3 -3
  18. package/lib/element/deduction.js +8 -7
  19. package/lib/element/derivation.js +10 -3
  20. package/lib/element/equality.js +8 -7
  21. package/lib/element/equivalence.js +10 -3
  22. package/lib/element/error.js +8 -1
  23. package/lib/element/frame.js +8 -7
  24. package/lib/element/hypothesis.js +8 -7
  25. package/lib/element/judgement.js +8 -7
  26. package/lib/element/label.js +8 -7
  27. package/lib/element/metaType.js +7 -6
  28. package/lib/element/metavariable.js +6 -5
  29. package/lib/element/parameter.js +8 -7
  30. package/lib/element/procedureCall.js +8 -7
  31. package/lib/element/procedureReference.js +8 -7
  32. package/lib/element/proof.js +10 -3
  33. package/lib/element/proofAssertion.js +3 -3
  34. package/lib/element/property.js +7 -6
  35. package/lib/element/propertyRelation.js +8 -7
  36. package/lib/element/reference.js +8 -7
  37. package/lib/element/rule.js +6 -5
  38. package/lib/element/section.js +10 -3
  39. package/lib/element/signature.js +7 -6
  40. package/lib/element/statement.js +6 -5
  41. package/lib/element/subDerivation.js +10 -3
  42. package/lib/element/subproof.js +10 -3
  43. package/lib/element/substitution/frame.js +5 -5
  44. package/lib/element/substitution/reference.js +5 -5
  45. package/lib/element/substitution/statement.js +5 -5
  46. package/lib/element/substitution/term.js +5 -5
  47. package/lib/element/substitution.js +6 -5
  48. package/lib/element/term.js +7 -6
  49. package/lib/element/topLevelAssertion.js +7 -5
  50. package/lib/element/topLevelMetaAssertion.js +7 -5
  51. package/lib/element/type.js +9 -8
  52. package/lib/element/typePrefix.js +8 -7
  53. package/lib/element/variable.js +7 -6
  54. package/lib/utilities/element.js +101 -109
  55. package/package.json +4 -4
  56. package/src/element/assertion/contained.js +10 -4
  57. package/src/element/assertion/property.js +10 -4
  58. package/src/element/assertion/satisfies.js +10 -4
  59. package/src/element/assertion/subproof.js +10 -4
  60. package/src/element/assertion/type.js +13 -15
  61. package/src/element/assertion.js +3 -1
  62. package/src/element/assumption.js +7 -5
  63. package/src/element/combinator.js +7 -5
  64. package/src/element/conclusion.js +7 -5
  65. package/src/element/constructor.js +6 -4
  66. package/src/element/declaration/combinator.js +2 -2
  67. package/src/element/declaration/complexType.js +2 -2
  68. package/src/element/declaration/constructor.js +2 -2
  69. package/src/element/declaration/metavariable.js +2 -2
  70. package/src/element/declaration/simpleType.js +2 -2
  71. package/src/element/declaration/typePrefix.js +2 -2
  72. package/src/element/declaration/variable.js +2 -2
  73. package/src/element/deduction.js +7 -5
  74. package/src/element/derivation.js +13 -2
  75. package/src/element/equality.js +7 -5
  76. package/src/element/equivalence.js +13 -2
  77. package/src/element/error.js +11 -0
  78. package/src/element/frame.js +7 -5
  79. package/src/element/hypothesis.js +7 -5
  80. package/src/element/judgement.js +7 -5
  81. package/src/element/label.js +7 -5
  82. package/src/element/metaType.js +7 -4
  83. package/src/element/metavariable.js +6 -4
  84. package/src/element/parameter.js +7 -5
  85. package/src/element/procedureCall.js +7 -5
  86. package/src/element/procedureReference.js +7 -5
  87. package/src/element/proof.js +13 -2
  88. package/src/element/proofAssertion.js +2 -2
  89. package/src/element/property.js +6 -4
  90. package/src/element/propertyRelation.js +7 -5
  91. package/src/element/reference.js +7 -5
  92. package/src/element/rule.js +8 -6
  93. package/src/element/section.js +13 -2
  94. package/src/element/signature.js +7 -5
  95. package/src/element/statement.js +5 -3
  96. package/src/element/subDerivation.js +13 -2
  97. package/src/element/subproof.js +13 -2
  98. package/src/element/substitution/frame.js +4 -4
  99. package/src/element/substitution/reference.js +4 -4
  100. package/src/element/substitution/statement.js +4 -4
  101. package/src/element/substitution/term.js +4 -4
  102. package/src/element/substitution.js +5 -3
  103. package/src/element/term.js +6 -4
  104. package/src/element/topLevelAssertion.js +9 -4
  105. package/src/element/topLevelMetaAssertion.js +9 -4
  106. package/src/element/type.js +8 -5
  107. package/src/element/typePrefix.js +7 -5
  108. package/src/element/variable.js +6 -4
  109. package/src/utilities/element.js +193 -146
@@ -29,11 +29,12 @@ export function typeFromTypeNode(typeNode, context) {
29
29
  provisional = provisionalFromTypeNode(typeNode, context),
30
30
  nominalTypeName = nominalTypeNameFromTypeNode(typeNode, context),
31
31
  typeString = typeStringFromNominalTypeName(nominalTypeName),
32
- string = typeString; ///
32
+ string = typeString, ///
33
+ lineIndex = null;
33
34
 
34
35
  context = null;
35
36
 
36
- type = new Type(context, string, node, name, prefixName, superTypes, properties, provisional);
37
+ type = new Type(context, string, node, lineIndex, prefixName, superTypes, properties, provisional);
37
38
  }
38
39
 
39
40
  return type;
@@ -43,11 +44,12 @@ export function termFromTermNode(termNode, context) {
43
44
  const { Term } = elements,
44
45
  node = termNode, ///
45
46
  string = context.nodeAsString(node),
47
+ lineIndex = null,
46
48
  type = typeFromTermNode(termNode, context);
47
49
 
48
50
  context = null;
49
51
 
50
- const term = new Term(context, string, node, type);
52
+ const term = new Term(context, string, node, lineIndex, type);
51
53
 
52
54
  return term;
53
55
  }
@@ -56,13 +58,14 @@ export function stepFromStepNode(stepNode, context) {
56
58
  const { Step } = elements,
57
59
  node = stepNode, ///
58
60
  string = context.nodeAsString(node),
61
+ lineIndex = null,
59
62
  statement = statementFromStepNode(stepNode, context),
60
63
  reference = referenceFromStepNode(stepNode, context),
61
64
  satisfiesAssertion = satisfiesAssertionFromStepNode(stepNode, context);
62
65
 
63
66
  context = null;
64
67
 
65
- const step = new Step(context, string, node, statement, reference, satisfiesAssertion);
68
+ const step = new Step(context, string, node, lineIndex, statement, reference, satisfiesAssertion);
66
69
 
67
70
  return step;
68
71
  }
@@ -76,7 +79,8 @@ export function ruleFromRuleNode(ruleNode, context) {
76
79
  ruleString = rulsStringFromLabelsPremisesAndConclusion(labels, premises, conclusion),
77
80
  node = ruleNode, ///
78
81
  string = ruleString, ///
79
- rule = new Rule(context, string, node, proof, labels, premises, conclusion);
82
+ lineIndex = null,
83
+ rule = new Rule(context, string, node, lineIndex, proof, labels, premises, conclusion);
80
84
 
81
85
  return rule;
82
86
  }
@@ -85,8 +89,9 @@ export function labelFromLabelNode(labelNode, context) {
85
89
  const { Label } = elements,
86
90
  node = labelNode, ///
87
91
  string = context.nodeAsString(node),
92
+ lineIndex = null,
88
93
  metavariable = metavariableFromLabelNode(labelNode, context),
89
- label = new Label(context, string, node, metavariable);
94
+ label = new Label(context, string, node, lineIndex, metavariable);
90
95
 
91
96
  return label;
92
97
  }
@@ -95,7 +100,8 @@ export function errorFromErrorNode(errorNode, context) {
95
100
  const { Error } = elements,
96
101
  node = errorNode, ///
97
102
  string = context.nodeAsString(node),
98
- error = new Error(context, string, node);
103
+ lineIndex = null,
104
+ error = new Error(context, string, node, lineIndex);
99
105
 
100
106
  return error;
101
107
  }
@@ -112,7 +118,8 @@ export function lemmaFromLemmaNode(lemmaNode, context) {
112
118
  topLevelAsssertionString = topLevelAssertionStringFromLabelsSuppositionsAndDeduction(labels, suppositions, deduction),
113
119
  node = lemmaNode, ///
114
120
  string = topLevelAsssertionString, ///
115
- lemma = new Lemma(context, string, node, labels, suppositions, deduction, proof, signature, hypotheses);
121
+ lineIndex = null,
122
+ lemma = new Lemma(context, string, node, lineIndex, labels, suppositions, deduction, proof, signature, hypotheses);
116
123
 
117
124
  return lemma;
118
125
  }
@@ -121,12 +128,10 @@ export function frameFromFrameNode(frameNode, context) {
121
128
  const { Frame } = elements,
122
129
  node = frameNode, ///
123
130
  string = context.nodeAsString(node),
131
+ lineIndex = null,
124
132
  assumptions = assumptionsFromFrameNode(frameNode, context),
125
- metavariable = metavariableFromFrameNode(frameNode, context);
126
-
127
- context = null;
128
-
129
- const frame = new Frame(context, string, node, assumptions, metavariable);
133
+ metavariable = metavariableFromFrameNode(frameNode, context),
134
+ frame = new Frame(context, string, node, lineIndex, assumptions, metavariable);
130
135
 
131
136
  return frame;
132
137
  }
@@ -135,11 +140,9 @@ export function proofFromProofNode(proofNode, context) {
135
140
  const { Proof } = elements,
136
141
  node = proofNode, ///
137
142
  string = null,
138
- derivation = derivationFromProofNode(proofNode, context);
139
-
140
- context = null;
141
-
142
- const proof = new Proof(context, string, node, derivation);
143
+ lineIndex = null,
144
+ derivation = derivationFromProofNode(proofNode, context),
145
+ proof = new Proof(context, string, node, lineIndex, derivation);
143
146
 
144
147
  return proof;
145
148
  }
@@ -156,7 +159,8 @@ export function axiomFromAxiomNode(axiomNode, context) {
156
159
  topLevelAsssertionString = topLevelAssertionStringFromLabelsSuppositionsAndDeduction(labels, suppositions, deduction),
157
160
  node = axiomNode, ///
158
161
  string = topLevelAsssertionString, ///
159
- axiom = new Axiom(context, string, node, labels, suppositions, deduction, proof, signature, hypotheses);
162
+ lineIndex = null,
163
+ axiom = new Axiom(context, string, node, lineIndex, labels, suppositions, deduction, proof, signature, hypotheses);
160
164
 
161
165
  return axiom;
162
166
  }
@@ -170,11 +174,9 @@ export function sectionFromSectionNode(sectionNode, context) {
170
174
  conjecture = conjectureFromSectionNode(sectionNode, context),
171
175
  sectionString = sectionStringFromHypothesesTopLevelAssertion(hypotheses, axiom, lemma, theorem, conjecture),
172
176
  node = sectionNode, ///
173
- string = sectionString; ///
174
-
175
- context = null;
176
-
177
- const section = new Section(context, string, node, hypotheses, axiom, lemma, theorem, conjecture);
177
+ string = sectionString, ///
178
+ lineIndex = null,
179
+ section = new Section(context, string, node, lineIndex, hypotheses, axiom, lemma, theorem, conjecture);
178
180
 
179
181
  return section;
180
182
  }
@@ -183,12 +185,10 @@ export function premiseFromPremiseNode(premiseNode, context) {
183
185
  const { Premise } = elements,
184
186
  node = premiseNode, ///
185
187
  string = context.nodeAsString(node),
188
+ lineIndex = null,
186
189
  statement = statementFromPremiseNode(premiseNode, context),
187
- procedureCall = procedureCallFromPremiseNode(premiseNode, context);
188
-
189
- context = null;
190
-
191
- const premise = new Premise(context, string, node, statement, procedureCall);
190
+ procedureCall = procedureCallFromPremiseNode(premiseNode, context),
191
+ premise = new Premise(context, string, node, lineIndex, statement, procedureCall);
192
192
 
193
193
  return premise
194
194
  }
@@ -205,7 +205,8 @@ export function theoremFromTheoremNode(theoremNode, context) {
205
205
  topLevelAsssertionString = topLevelAssertionStringFromLabelsSuppositionsAndDeduction(labels, suppositions, deduction),
206
206
  node = theoremNode, ///
207
207
  string = topLevelAsssertionString, ///
208
- theorem = new Theorem(context, string, node, labels, suppositions, deduction, proof, signature, hypotheses);
208
+ lineIndex = null,
209
+ theorem = new Theorem(context, string, node, lineIndex, labels, suppositions, deduction, proof, signature, hypotheses);
209
210
 
210
211
  return theorem;
211
212
  }
@@ -214,13 +215,11 @@ export function propertyFromPropertyNode(propertyNode, context) {
214
215
  const { Property } = elements,
215
216
  node = propertyNode, ///
216
217
  string = context.nodeAsString(node),
218
+ lineIndex = null,
217
219
  propertyName = propertyNode.getPropertyName(),
218
220
  nominalTypeName = null,
219
- name = propertyName; ///
220
-
221
- context = null;
222
-
223
- const property = new Property(context, string, node, name, nominalTypeName);
221
+ name = propertyName, ///
222
+ property = new Property(context, string, node, lineIndex, name, nominalTypeName);
224
223
 
225
224
  return property;
226
225
  }
@@ -229,13 +228,11 @@ export function variableFromVariableNode(variableNode, context) {
229
228
  const { Variable } = elements,
230
229
  node = variableNode, ///
231
230
  string = context.nodeAsString(node),
231
+ lineIndex = null,
232
232
  type = null,
233
233
  identifier = identifierFromVarialbeNode(variableNode, context),
234
- propertyRelations = [];
235
-
236
- context = null;
237
-
238
- const variable = new Variable(context, string, node, type, identifier, propertyRelations);
234
+ propertyRelations = [],
235
+ variable = new Variable(context, string, node, lineIndex, type, identifier, propertyRelations);
239
236
 
240
237
  return variable;
241
238
  }
@@ -246,11 +243,9 @@ export function subproofFromSubproofNode(subproofNode, context) {
246
243
  suppositions = suppositionsFromSubproofNode(subproofNode, context),
247
244
  subDerivation = subDerivationFromSubproofNode(subproofNode, context),
248
245
  subproofString = subproofStringFromSuppositionsAndSubDerivation(suppositions, subDerivation, context),
249
- string = subproofString; ///
250
-
251
- context = null;
252
-
253
- const subproof = new Subproof(context, string, node, suppositions, subDerivation);
246
+ string = subproofString, ///
247
+ lineIndex = null,
248
+ subproof = new Subproof(context, string, node, lineIndex, suppositions, subDerivation);
254
249
 
255
250
  return subproof;
256
251
  }
@@ -259,12 +254,10 @@ export function equalityFromEqualityNode(equalityNode, context) {
259
254
  const { Equality } = elements,
260
255
  node = equalityNode, ///
261
256
  string = context.nodeAsString(node),
257
+ lineIndex = null,
262
258
  leftTerm = leftTermFromEqualityNode(equalityNode, context),
263
- rightTerm = rightTermFromEqualityNode(equalityNode, context);
264
-
265
- context = null;
266
-
267
- const equality = new Equality(context, string, node, leftTerm, rightTerm);
259
+ rightTerm = rightTermFromEqualityNode(equalityNode, context),
260
+ equality = new Equality(context, string, node, lineIndex, leftTerm, rightTerm);
268
261
 
269
262
  return equality;
270
263
  }
@@ -273,8 +266,9 @@ export function deductionFromDeductionNode(deductionNode, context) {
273
266
  const { Deduction } = elements,
274
267
  node = deductionNode, ///
275
268
  string = context.nodeAsString(node),
269
+ lineIndex = null,
276
270
  statement = statementFromDeductionNode(deductionNode, context),
277
- deduction = new Deduction(context, string, node, statement);
271
+ deduction = new Deduction(context, string, node, lineIndex, statement);
278
272
 
279
273
  return deduction;
280
274
  }
@@ -282,11 +276,9 @@ export function deductionFromDeductionNode(deductionNode, context) {
282
276
  export function statementFromStatementNode(statementNode, context) {
283
277
  const { Statement } = elements,
284
278
  node = statementNode, ///
285
- string = context.nodeAsString(node);
286
-
287
- context = null;
288
-
289
- const statement = new Statement(context, string, node);
279
+ string = context.nodeAsString(node),
280
+ lineIndex = null,
281
+ statement = new Statement(context, string, node, lineIndex);
290
282
 
291
283
  return statement;
292
284
  }
@@ -295,11 +287,9 @@ export function signatureFromSignatureNode(signatureNode, context) {
295
287
  const { Signature } = elements,
296
288
  node = signatureNode, ///
297
289
  string = context.nodeAsString(node),
298
- terms = termsFromSignatureNode(signatureNode, context);
299
-
300
- context = null;
301
-
302
- const signature = new Signature(context, string, node, terms);
290
+ lineIndex = null,
291
+ terms = termsFromSignatureNode(signatureNode, context),
292
+ signature = new Signature(context, string, node, lineIndex, terms);
303
293
 
304
294
  return signature;
305
295
  }
@@ -308,9 +298,10 @@ export function referenceFromReferenceNode(referenceNode, context) {
308
298
  const { Reference } = elements,
309
299
  node = referenceNode, ///
310
300
  string = context.nodeAsString(node),
301
+ lineIndex = null,
311
302
  metavariable = metavariableFromReferenceNode(referenceNode, context),
312
303
  topLevelMetaAssertion = topLevelMetaAssertionFromReferenceNode(referenceNode, context),
313
- reference = new Reference(context, string, node, metavariable, topLevelMetaAssertion);
304
+ reference = new Reference(context, string, node, lineIndex, metavariable, topLevelMetaAssertion);
314
305
 
315
306
  return reference;
316
307
  }
@@ -319,12 +310,10 @@ export function judgementFromJudgementNode(judgementNode, context) {
319
310
  const { Judgement } = elements,
320
311
  node = judgementNode, ///
321
312
  string = context.nodeAsString(node),
313
+ lineIndex = null,
322
314
  frame = frameFromJudgementNode(judgementNode, context),
323
- assumption = assumptionFromJudgementNode(judgementNode, context);
324
-
325
- context = null;
326
-
327
- const judgement = new Judgement(context, string, node, frame, assumption);
315
+ assumption = assumptionFromJudgementNode(judgementNode, context),
316
+ judgement = new Judgement(context, string, node, lineIndex, frame, assumption);
328
317
 
329
318
  return judgement;
330
319
  }
@@ -340,7 +329,8 @@ export function metaLemmaFromMetaLemmaNode(metaLemmaNode, context) {
340
329
  topLevelMetaAssertionString = topLevelMetaAssertionStringFromLabelSuppositionsDeductionAndMetaLevelAssumptions(label, suppositions, deduction, metaLevelAssumptions),
341
330
  node = metaLemmaMetathoremNode, ///
342
331
  string = topLevelMetaAssertionString, ///
343
- metaLemma = new MetaLemma(context, string, node, label, suppositions, deduction, proof, metaLevelAssumptions);
332
+ lineIndex = null,
333
+ metaLemma = new MetaLemma(context, string, node, lineIndex, label, suppositions, deduction, proof, metaLevelAssumptions);
344
334
 
345
335
  return metaLemma;
346
336
  }
@@ -349,12 +339,10 @@ export function parameterFromParameterNode(parameterNode, context) {
349
339
  const { Parameter } = elements,
350
340
  node = parameterNode, ///
351
341
  string = context.nodeAsString(node),
342
+ lineIndex = null,
352
343
  name = parameterNode.getName(),
353
- identifier = parameterNode.getIdentifier();
354
-
355
- context = null;
356
-
357
- const parameter = new Parameter(context, string, node, name, identifier);
344
+ identifier = parameterNode.getIdentifier(),
345
+ parameter = new Parameter(context, string, node, lineIndex, name, identifier);
358
346
 
359
347
  return parameter;
360
348
  }
@@ -363,11 +351,9 @@ export function signatureFromJSignatureNode(signatureNode, context) {
363
351
  const { Signature } = elements,
364
352
  node = signatureNode,
365
353
  string = context.nodeAsString(node),
366
- terms = termsFromSignatureNode(signatureNode, context);
367
-
368
- context = null;
369
-
370
- const signature = new Signature(context, string, node, terms);
354
+ lineIndex = null,
355
+ terms = termsFromSignatureNode(signatureNode, context),
356
+ signature = new Signature(context, string, node, lineIndex, terms);
371
357
 
372
358
  return signature;
373
359
  }
@@ -376,11 +362,9 @@ export function hypothesisFromHypothesisNode(hypotheseNode, context) {
376
362
  const { Hypothsis } = elements,
377
363
  node = hypotheseNode, ///
378
364
  string = context.nodeAsString(node),
379
- statement = statementFromHypothesisNode(hypotheseNode, context);
380
-
381
- context = null;
382
-
383
- const hypohtesis = new Hypothsis(context, string, node, statement);
365
+ lineIndex = null,
366
+ statement = statementFromHypothesisNode(hypotheseNode, context),
367
+ hypohtesis = new Hypothsis(context, string, node, lineIndex, statement);
384
368
 
385
369
  return hypohtesis;
386
370
  }
@@ -397,7 +381,8 @@ export function conjectureFromConjectureNode(conjectureNode, context) {
397
381
  topLevelAsssertionString = topLevelAssertionStringFromLabelsSuppositionsAndDeduction(labels, suppositions, deduction),
398
382
  node = conjectureNode, ///
399
383
  string = topLevelAsssertionString, ///
400
- conjecture = new Conjecture(context, string, node, labels, suppositions, deduction, proof, signature, hypotheses);
384
+ lineIndex = null,
385
+ conjecture = new Conjecture(context, string, node, lineIndex, labels, suppositions, deduction, proof, signature, hypotheses);
401
386
 
402
387
  return conjecture;
403
388
  }
@@ -406,8 +391,9 @@ export function combinatorFromCombinatorNode(combinatorNode, context) {
406
391
  const { Combinator } = elements,
407
392
  node = combinatorNode, ///
408
393
  string = context.nodeAsString(node),
394
+ lineIndex = null,
409
395
  statement = statementFromCombinatorNode(combinatorNode, context),
410
- combinator = new Combinator(context, string, node, statement);
396
+ combinator = new Combinator(context, string, node, lineIndex, statement);
411
397
 
412
398
  return combinator;
413
399
  }
@@ -416,8 +402,9 @@ export function conclusionFromConclusionNode(conclusionNode, context) {
416
402
  const { Conclusion } = elements,
417
403
  node = conclusionNode, ///
418
404
  string = context.nodeAsString(node),
405
+ lineIndex = null,
419
406
  statement = statementFromConclusionNode(conclusionNode, context),
420
- conclusion = new Conclusion(context, string, node, statement);
407
+ conclusion = new Conclusion(context, string, node, lineIndex, statement);
421
408
 
422
409
  return conclusion;
423
410
  }
@@ -426,11 +413,9 @@ export function derivationFromDerivationNode(derivationNode, context) {
426
413
  const { Derivation } = elements,
427
414
  node = derivationNode, ///
428
415
  string = null,
429
- stepsOrSubproofs = stepsOrSubproofsFromDerivationNode(derivationNode, context);
430
-
431
- context = null;
432
-
433
- const derivation = new Derivation(context, string, node, stepsOrSubproofs);
416
+ lineIndex = null,
417
+ stepsOrSubproofs = stepsOrSubproofsFromDerivationNode(derivationNode, context),
418
+ derivation = new Derivation(context, string, node, lineIndex, stepsOrSubproofs);
434
419
 
435
420
  return derivation;
436
421
  }
@@ -439,12 +424,10 @@ export function typePrefixFromTypePrefixNode(typePrefixNode, context) {
439
424
  const { TypePrefix } = elements,
440
425
  node = typePrefixNode, ///
441
426
  string = context.nodeAsString(node),
427
+ lineIndex = null,
442
428
  term = termFromTypePrefixNode(typePrefixNode, context),
443
- type = typeFromTypePrefixNode(typePrefixNode, context);
444
-
445
- context = null;
446
-
447
- const typePrefix = new TypePrefix(context, string, node, term, type);
429
+ type = typeFromTypePrefixNode(typePrefixNode, context),
430
+ typePrefix = new TypePrefix(context, string, node, lineIndex, term, type);
448
431
 
449
432
  return typePrefix;
450
433
  }
@@ -453,9 +436,10 @@ export function assumptionFromAssumptionNode(assumptionNode, context) {
453
436
  const { Assumption } = elements,
454
437
  node = assumptionNode, ///
455
438
  string = context.nodeAsString(node),
439
+ lineIndex = null,
456
440
  reference = referenceFromAssumptionNode(assumptionNode, context),
457
441
  statement = statementFromAssumptionNode(assumptionNode, context),
458
- assumption = new Assumption(context, string, node, reference, statement);
442
+ assumption = new Assumption(context, string, node, lineIndex, reference, statement);
459
443
 
460
444
  return assumption;
461
445
  }
@@ -464,9 +448,10 @@ export function constructorFromConstructorNode(constructorNode, context) {
464
448
  const { Constructor } = elements,
465
449
  node = constructorNode, ///
466
450
  string = context.nodeAsString(node),
451
+ lineIndex = null,
467
452
  term = termFromConstructorNode(constructorNode, context),
468
453
  type = typeFromConstructorNode(constructorNode, context),
469
- constructor = new Constructor(context, string, node, term, type);
454
+ constructor = new Constructor(context, string, node, lineIndex, term, type);
470
455
 
471
456
  return constructor;
472
457
  }
@@ -475,12 +460,10 @@ export function suppositionFromSuppositionNode(suppositionNode, context) {
475
460
  const { Supposition } = elements,
476
461
  node = suppositionNode, ///
477
462
  string = context.nodeAsString(node),
463
+ lineIndex = null,
478
464
  statement = statementFromSuppositionNode(suppositionNode, context),
479
- procedureCall = procedureCallFromSuppositionNode(suppositionNode, context);
480
-
481
- context = null;
482
-
483
- const supposition = new Supposition(context, string, node, statement, procedureCall);
465
+ procedureCall = procedureCallFromSuppositionNode(suppositionNode, context),
466
+ supposition = new Supposition(context, string, node, lineIndex, statement, procedureCall);
484
467
 
485
468
  return supposition
486
469
  }
@@ -488,14 +471,12 @@ export function suppositionFromSuppositionNode(suppositionNode, context) {
488
471
  export function equivalenceFromEquivalenceNode(equivalenceNode, context) {
489
472
  const { Equivalence } = elements,
490
473
  node = equivalenceNode, ///
474
+ lineIndex = null,
491
475
  type = typeFromEquivalenceNode(equivalenceNode, context),
492
476
  terms = termsFromEquivalenceNode(equivalenceNode, context),
493
477
  equivalenceString = equivalenceStringFromTerms(terms),
494
- string = equivalenceString; ///
495
-
496
- context = null;
497
-
498
- const equivalence = new Equivalence(context, string, node, type, terms);
478
+ string = equivalenceString, ///
479
+ equivalence = new Equivalence(context, string, node, lineIndex, type, terms);
499
480
 
500
481
  return equivalence;
501
482
  }
@@ -511,7 +492,11 @@ export function metatheoremFromMetatheoremNode(metatheoremNode, context) {
511
492
  topLevelMetaAssertionString = topLevelMetaAssertionStringFromLabelSuppositionsDeductionAndMetaLevelAssumptions(label, suppositions, deduction, metaLevelAssumptions),
512
493
  node = metaLemmaMetathoremNode, ///
513
494
  string = topLevelMetaAssertionString, ///
514
- metatheorem = new Metatheorem(context, string, node, label, suppositions, deduction, proof, metaLevelAssumptions);
495
+ lineIndex = null;
496
+
497
+ context = null;
498
+
499
+ const metatheorem = new Metatheorem(context, string, node, lineIndex, label, suppositions, deduction, proof, metaLevelAssumptions);
515
500
 
516
501
  return metatheorem;
517
502
  }
@@ -520,11 +505,15 @@ export function metavariableFromMetavariableNode(metavariableNode, context) {
520
505
  const { Metavariable } = elements,
521
506
  node = metavariableNode, ///
522
507
  string = context.nodeAsString(node),
508
+ lineIndex = null,
523
509
  name = nameFromMetavariableNode(metavariableNode, context),
524
510
  term = termFromMetavariableNode(metavariableNode, context),
525
511
  type = typeFromMetavariableNode(metavariableNode, context),
526
- metaType = null,
527
- metavariable = new Metavariable(context, string, node, name, term, type, metaType);
512
+ metaType = null;
513
+
514
+ context = null;
515
+
516
+ const metavariable = new Metavariable(context, string, node, lineIndex, name, term, type, metaType);
528
517
 
529
518
  return metavariable;
530
519
  }
@@ -533,11 +522,12 @@ export function subDerivationFromSubDerivationNode(subDerivationNode, context) {
533
522
  const { SubDerivation } = elements,
534
523
  node = subDerivationNode, ///
535
524
  string = null,
525
+ lineIndex = null,
536
526
  stepsOrSubproofs = stepsOrSubproofsFromSubDerivationNode(subDerivationNode, context);
537
527
 
538
528
  context = null;
539
529
 
540
- const subDerivation = new SubDerivation(context, string, node, stepsOrSubproofs);
530
+ const subDerivation = new SubDerivation(context, string, node, lineIndex, stepsOrSubproofs);
541
531
 
542
532
  return subDerivation;
543
533
  }
@@ -546,12 +536,13 @@ export function typeAssertionFromTypeAssertionNode(typeAssertionNode, context) {
546
536
  const { TypeAssertion } = elements,
547
537
  node = typeAssertionNode, ///
548
538
  string = context.nodeAsString(node),
539
+ lineIndex = null,
549
540
  term = termFromTypeAssertionNode(typeAssertionNode, context),
550
541
  type = typeFromTypeAssertionNode(typeAssertionNode, context);
551
542
 
552
543
  context = null;
553
544
 
554
- const typeAssertion = new TypeAssertion(context, string, node, term, type);
545
+ const typeAssertion = new TypeAssertion(context, string, node, lineIndex, term, type);
555
546
 
556
547
  return typeAssertion;
557
548
  }
@@ -562,11 +553,12 @@ export function procedureCallFromProcedureCallNode(procedureCallNode, context) {
562
553
  procedureReference = procedureReferenceFromProcedureCallNode(procedureCallNode, context),
563
554
  procedureCallString = procedureCallStringFromProcedureReferenceAndParameters(procedureReference, parameters),
564
555
  node = procedureCallNode, ///
565
- string = procedureCallString; ///
556
+ string = procedureCallString, ///
557
+ lineIndex = null;
566
558
 
567
559
  context = null;
568
560
 
569
- const procedureCall = new ProcedureCall(context, string, node, parameters, procedureReference);
561
+ const procedureCall = new ProcedureCall(context, string, node, lineIndex, parameters, procedureReference);
570
562
 
571
563
  return procedureCall;
572
564
  }
@@ -583,13 +575,14 @@ export function definedAssertionFromDefinedAssertionNode(definedAssertionNode, c
583
575
  const { DefinedAssertion } = elements,
584
576
  node = definedAssertionNode, ///
585
577
  string = context.nodeAsString(node),
578
+ lineIndex = null,
586
579
  negated = definedAssertionNode.isNegated(),
587
580
  term = termFromDefinedAssertionNode(definedAssertionNode, context),
588
581
  frame = frameFromDefinedAssertionNode(definedAssertionNode, context);
589
582
 
590
583
  context = null;
591
584
 
592
- const definedAssertion = new DefinedAssertion(context, string, node, term, frame, negated);
585
+ const definedAssertion = new DefinedAssertion(context, string, node, lineIndex, term, frame, negated);
593
586
 
594
587
  return definedAssertion;
595
588
  }
@@ -598,12 +591,13 @@ export function propertyRelationFromPropertyRelationNode(propertyRelationNode, c
598
591
  const { PropertyRelation } = elements,
599
592
  node = propertyRelationNode, ///
600
593
  string = context.nodeAsString(node),
594
+ lineIndex = null,
601
595
  term = termFromPropertyRelationNode(propertyRelationNode, context),
602
596
  property = propertyFromPropertyRelationNode(propertyRelationNode, context);
603
597
 
604
598
  context = null;
605
599
 
606
- const propertyRelation = new PropertyRelation(context, string, node, term, property);
600
+ const propertyRelation = new PropertyRelation(context, string, node, lineIndex, term, property);
607
601
 
608
602
  return propertyRelation;
609
603
  }
@@ -612,10 +606,14 @@ export function termSubstitutionFromTermSubstitutionNode(termSubstitutionNode, c
612
606
  const { TermSubstitution } = elements,
613
607
  node = termSubstitutionNode, ///
614
608
  string = context.nodeAsString(node),
609
+ lineIndex = null,
615
610
  generalContext = generalContextFromTermSubstitutionNode(termSubstitutionNode, context),
616
611
  targetTerm = targetTermFromTermSubstitutionNode(termSubstitutionNode, context),
617
- replacementTerm = replacementTermFromTermSubstitutionNode(termSubstitutionNode, context),
618
- termSubstitution = new TermSubstitution(context, string, node, generalContext, targetTerm, replacementTerm);
612
+ replacementTerm = replacementTermFromTermSubstitutionNode(termSubstitutionNode, context);
613
+
614
+ context = null;
615
+
616
+ const termSubstitution = new TermSubstitution(context, string, node, lineIndex, generalContext, targetTerm, replacementTerm);
619
617
 
620
618
  return termSubstitution;
621
619
  }
@@ -624,10 +622,14 @@ export function frameSubstitutionFromFrameSubstitutionNode(frameSubstitutionNode
624
622
  const { FrameSubstitution } = elements,
625
623
  node = frameSubstitutionNode, ///
626
624
  string = context.nodeAsString(node),
625
+ lineIndex = null,
627
626
  generalContext = generalContextFromFrameSubstitutionNode(frameSubstitutionNode, context),
628
627
  targetFrame = targetFrameFromFrameSubstitutionNode(frameSubstitutionNode, context),
629
- replacementFrame = replacementFrameFromFrameSubstitutionNode(frameSubstitutionNode, context),
630
- frameSubstitution = new FrameSubstitution(context, string, node, generalContext, targetFrame, replacementFrame);
628
+ replacementFrame = replacementFrameFromFrameSubstitutionNode(frameSubstitutionNode, context);
629
+
630
+ context = null;
631
+
632
+ const frameSubstitution = new FrameSubstitution(context, string, node, lineIndex, generalContext, targetFrame, replacementFrame);
631
633
 
632
634
  return frameSubstitution;
633
635
  }
@@ -636,12 +638,13 @@ export function propertyAssertionFromPropertyAssertionNode(propertyAssertionNode
636
638
  const { PropertyAssertion } = elements,
637
639
  node = propertyAssertionNode, ///
638
640
  string = context.nodeAsString(node),
641
+ lineIndex = null,
639
642
  term = termFromPropertyAssertionNode(propertyAssertionNode, context),
640
643
  propertyRelation = propertyRelationFromPropertyAssertionNode(propertyAssertionNode, context);
641
644
 
642
645
  context = null;
643
646
 
644
- const propertyAssertion = new PropertyAssertion(context, string, node, term, propertyRelation);
647
+ const propertyAssertion = new PropertyAssertion(context, string, node, lineIndex, term, propertyRelation);
645
648
 
646
649
  return propertyAssertion;
647
650
  }
@@ -650,11 +653,12 @@ export function subproofAssertionFromSubproofAssertionNode(subproofAssertionNode
650
653
  const { SubproofAssertion } = elements,
651
654
  node = subproofAssertionNode, ///
652
655
  string = context.nodeAsString(node),
656
+ lineIndex = null,
653
657
  statements = statementsFromSubproofAssertionNode(subproofAssertionNode, context);
654
658
 
655
659
  context = null;
656
660
 
657
- const subproofAssertion = new SubproofAssertion(context, string, node, statements);
661
+ const subproofAssertion = new SubproofAssertion(context, string, node, lineIndex, statements);
658
662
 
659
663
  return subproofAssertion;
660
664
  }
@@ -663,6 +667,7 @@ export function containedAssertionFromContainedAssertionNode(containedAssertionN
663
667
  const { ContainedAssertion } = elements,
664
668
  node = containedAssertionNode, ///
665
669
  string = context.nodeAsString(node),
670
+ lineIndex = null,
666
671
  negated = containedAssertionNode.isNegated(),
667
672
  term = termFromContainedAssertionNode(containedAssertionNode, context),
668
673
  frame = frameFromContainedAssertionNode(containedAssertionNode, context),
@@ -670,7 +675,7 @@ export function containedAssertionFromContainedAssertionNode(containedAssertionN
670
675
 
671
676
  context = null;
672
677
 
673
- const containedAssertion = new ContainedAssertion(context, string, node, term, frame, negated, statement);
678
+ const containedAssertion = new ContainedAssertion(context, string, node, lineIndex, term, frame, negated, statement);
674
679
 
675
680
  return containedAssertion;
676
681
  }
@@ -679,12 +684,13 @@ export function satisfiesAssertionFromSatisfiesAssertionNode(satisfiesAssertionN
679
684
  const { SatisfiesAssertion } = elements,
680
685
  node = satisfiesAssertionNode, ///
681
686
  string = context.nodeAsString(node),
687
+ lineIndex = null,
682
688
  signature = signatureFromSatisfiesAssertionNode(satisfiesAssertionNode, context),
683
689
  reference = referenceFromSatisfiesAssertionNode(satisfiesAssertionNode, context);
684
690
 
685
691
  context = null;
686
692
 
687
- const satisfiesAssertion = new SatisfiesAssertion(context, string, node, signature, reference);
693
+ const satisfiesAssertion = new SatisfiesAssertion(context, string, node, lineIndex, signature, reference);
688
694
 
689
695
  return satisfiesAssertion;
690
696
  }
@@ -693,11 +699,12 @@ export function procedureReferenceFromProcedureReferenceNode(procedureReferenceN
693
699
  const { ProcedureReference } = elements,
694
700
  node = procedureReferenceNode, ///
695
701
  string = context.nodeAsString(node),
702
+ lineIndex = null,
696
703
  name = nameFromProcedureReferenceNode(procedureReferenceNode, context);
697
704
 
698
705
  context = null;
699
706
 
700
- const procedureRefereence = new ProcedureReference(context, string, node, name);
707
+ const procedureRefereence = new ProcedureReference(context, string, node, lineIndex, name);
701
708
 
702
709
  return procedureRefereence;
703
710
  }
@@ -706,12 +713,16 @@ export function variableDeclarationFromVariableDeclarationNode(variableDeclarati
706
713
  const { VariableDeclaration } = elements,
707
714
  node = variableDeclarationNode, ///
708
715
  string = context.nodeAsString(node),
716
+ lineIndex = null,
709
717
  typeNode = variableDeclarationNode.getTypeNode(),
710
718
  provisional = variableDeclarationNode.isProvisional(),
711
719
  variableNode = variableDeclarationNode.getVariableNode(),
712
720
  type = typeFromTypeNode(typeNode, context),
713
- variable = variableFromVariableNode(variableNode, context),
714
- variableDeclaration = new VariableDeclaration(context, string, node, type, variable, provisional);
721
+ variable = variableFromVariableNode(variableNode, context);
722
+
723
+ context = null;
724
+
725
+ const variableDeclaration = new VariableDeclaration(context, string, node, lineIndex, type, variable, provisional);
715
726
 
716
727
  return variableDeclaration;
717
728
  }
@@ -720,9 +731,13 @@ export function metaLevelAssumptionFromMetaLevelAssumptionNode(metaLevelAssumpti
720
731
  const { MetaLevelAssumption } = elements,
721
732
  node = metaLevelAssumptionNode, ///
722
733
  string = context.nodeAsString(node),
734
+ lineIndex = null,
723
735
  reference = referenceFromMetaLevelAssumptionNode(metaLevelAssumptionNode, context),
724
- statement = statementFromMetaLevelAssumptionNode(metaLevelAssumptionNode, context),
725
- metaLevelAssumption = new MetaLevelAssumption(context, string, node, reference, statement);
736
+ statement = statementFromMetaLevelAssumptionNode(metaLevelAssumptionNode, context);
737
+
738
+ context = null;
739
+
740
+ const metaLevelAssumption = new MetaLevelAssumption(context, string, node, lineIndex, reference, statement);
726
741
 
727
742
  return metaLevelAssumption;
728
743
  }
@@ -731,8 +746,12 @@ export function typePrefixDeclarationFromTypePrefixDeclarationNode(typePrefixDec
731
746
  const { TypePrefixDeclaration } = elements,
732
747
  node = typePrefixDeclarationNode, ///
733
748
  string = context.nodeAsString(node), ///
734
- typePrefix = typePrefixFromTypePrefixDeclarationNode(typePrefixDeclarationNode, context),
735
- typePrefixDeclaration = new TypePrefixDeclaration(context, string, node, typePrefix);
749
+ lineIndex = null,
750
+ typePrefix = typePrefixFromTypePrefixDeclarationNode(typePrefixDeclarationNode, context);
751
+
752
+ context = null;
753
+
754
+ const typePrefixDeclaration = new TypePrefixDeclaration(context, string, node, lineIndex, typePrefix);
736
755
 
737
756
  return typePrefixDeclaration;
738
757
  }
@@ -741,8 +760,12 @@ export function combinatorDeclarationFromCombinatorDeclarationNode(combinatorDec
741
760
  const { CombinatorDeclaration } = elements,
742
761
  node = combinatorDeclarationNode, ///
743
762
  string = context.nodeAsString(node),
744
- combinator = combinatorFromCombinatorDeclarationNode(combinatorDeclarationNode, context),
745
- combinatorDeclaration = new CombinatorDeclaration(context, string, node, combinator);
763
+ lineIndex = null,
764
+ combinator = combinatorFromCombinatorDeclarationNode(combinatorDeclarationNode, context);
765
+
766
+ context = null;
767
+
768
+ const combinatorDeclaration = new CombinatorDeclaration(context, string, node, lineIndex, combinator);
746
769
 
747
770
  return combinatorDeclaration;
748
771
  }
@@ -751,10 +774,14 @@ export function simpleTypeDeclarationFromSimpleTypeDeclarationNode(simpleTypeDec
751
774
  const { SimpleTypeDeclaration } = elements,
752
775
  node = simpleTypeDeclarationNode, ///
753
776
  string = context.nodeAsString(node),
777
+ lineIndex = null,
754
778
  type = typeFromSimpleTypeDeclarationNode(simpleTypeDeclarationNode, context),
755
779
  superTypes = superTypesFromSimpleTypeDeclarationNode(simpleTypeDeclarationNode, context),
756
- provisional = provisionalFromSimpleTypeDeclarationNode(simpleTypeDeclarationNode, context),
757
- simpleTypeDeclaration = new SimpleTypeDeclaration(context, string, node, type, superTypes, provisional);
780
+ provisional = provisionalFromSimpleTypeDeclarationNode(simpleTypeDeclarationNode, context);
781
+
782
+ context = null;
783
+
784
+ const simpleTypeDeclaration = new SimpleTypeDeclaration(context, string, node, lineIndex, type, superTypes, provisional);
758
785
 
759
786
  return simpleTypeDeclaration;
760
787
  }
@@ -763,10 +790,14 @@ export function referenceSubstitutionFromReferenceSubstitutionNode(referenceSubs
763
790
  const { ReferenceSubstitution } = elements,
764
791
  node = referenceSubstitutionNode, ///
765
792
  string = context.nodeAsString(node),
793
+ lineIndex = null,
766
794
  generalContext = generalContextFromReferenceSubstitutionNode(referenceSubstitutionNode, context),
767
795
  targetReference = targetReferenceFromReferenceSubstitutionNode(referenceSubstitutionNode, context),
768
- replacementReference = replacementReferenceFromReferenceSubstitutionNode(referenceSubstitutionNode, context),
769
- referenceSubstitution = new ReferenceSubstitution(context, string, node, generalContext, targetReference, replacementReference);
796
+ replacementReference = replacementReferenceFromReferenceSubstitutionNode(referenceSubstitutionNode, context);
797
+
798
+ context = null;
799
+
800
+ const referenceSubstitution = new ReferenceSubstitution(context, string, node, lineIndex, generalContext, targetReference, replacementReference);
770
801
 
771
802
  return referenceSubstitution;
772
803
  }
@@ -776,12 +807,16 @@ export function statementSubstitutionFromStatementSubstitutionNode(statementSubs
776
807
  const { StatementSubstitution } = elements,
777
808
  node = statementSubstitutionNode, ///
778
809
  string = context.nodeAsString(node),
810
+ lineIndex = null,
779
811
  generalContext = generalContextFromStatementSubstitutionNode(statementSubstitutionNode, context),
780
812
  resolved = resolvedFromStatementSubstitutionNode(statementSubstitutionNode, context),
781
813
  substitution = substitutionFromStatementSubstitutionNode(statementSubstitutionNode, context),
782
814
  targetStatement = targetStatementFromStatementSubstitutionNode(statementSubstitutionNode, context),
783
- replacementStatement = replacementStatementFromStatementSubstitutionNode(statementSubstitutionNode, context),
784
- statementSubstitution = new StatementSubstitution(context, string, node, generalContext, resolved, substitution, targetStatement, replacementStatement);
815
+ replacementStatement = replacementStatementFromStatementSubstitutionNode(statementSubstitutionNode, context);
816
+
817
+ context = null;
818
+
819
+ const statementSubstitution = new StatementSubstitution(context, string, node, lineIndex, generalContext, resolved, substitution, targetStatement, replacementStatement);
785
820
 
786
821
  return statementSubstitution;
787
822
  }
@@ -790,10 +825,14 @@ export function constructorDeclarationFromConstructorDeclarationNode(constructor
790
825
  const { ConstructorDeclaration } = elements,
791
826
  node = constructorDeclarationNode, ///
792
827
  string = context.nodeAsString(node),
828
+ lineIndex = null,
793
829
  type = typeFromConstructorDeclarationNode(constructorDeclarationNode, context),
794
830
  provisional = provisionalFromConstructorDeclarationNode(constructorDeclarationNode, context),
795
- constructor = constructorFromConstructorDeclarationNode(constructorDeclarationNode, context),
796
- constructorDeclaration = new ConstructorDeclaration(context, string, node, type, provisional, constructor);
831
+ constructor = constructorFromConstructorDeclarationNode(constructorDeclarationNode, context);
832
+
833
+ context = null;
834
+
835
+ const constructorDeclaration = new ConstructorDeclaration(context, string, node, lineIndex, type, provisional, constructor);
797
836
 
798
837
  return constructorDeclaration;
799
838
  }
@@ -802,10 +841,14 @@ export function complexTypeDeclarationFromComplexTypeDeclarationNode(complexType
802
841
  const { ComplexTypeDeclaration } = elements,
803
842
  node = complexTypeDeclarationNode, ///
804
843
  string = context.nodeAsString(node),
844
+ lineIndex = null,
805
845
  type = typeFromComplexTypeDeclarationNode(complexTypeDeclarationNode, context),
806
846
  superTypes = superTypesFromComplexTypeDeclarationNode(complexTypeDeclarationNode, context),
807
- provisional = provisionalFromComplexTypeDeclarationNode(complexTypeDeclarationNode, context),
808
- complexTypeDeclaration = new ComplexTypeDeclaration(context, string, node, type, superTypes, provisional);
847
+ provisional = provisionalFromComplexTypeDeclarationNode(complexTypeDeclarationNode, context);
848
+
849
+ context = null;
850
+
851
+ const complexTypeDeclaration = new ComplexTypeDeclaration(context, string, node, lineIndex, type, superTypes, provisional);
809
852
 
810
853
  return complexTypeDeclaration;
811
854
  }
@@ -814,9 +857,13 @@ export function metavariableDeclarationFromMetavariableDeclarationNode(metavaria
814
857
  const { MetavariableDeclaration } = elements,
815
858
  node = metavariableDeclarationNode, ///
816
859
  string = context.nodeAsString(node),
860
+ lineIndex = null,
817
861
  metaType = metaTypeFromMetavariableDeclarationNode(metavariableDeclarationNode, context),
818
- metavariable = metavariableFromMetavariableDeclarationNode(metavariableDeclarationNode, context),
819
- metavariableDeclaration = new MetavariableDeclaration(context, string, node, metaType, metavariable);
862
+ metavariable = metavariableFromMetavariableDeclarationNode(metavariableDeclarationNode, context);
863
+
864
+ context = null;
865
+
866
+ const metavariableDeclaration = new MetavariableDeclaration(context, string, node, lineIndex, metaType, metavariable);
820
867
 
821
868
  return metavariableDeclaration;
822
869
  }