occam-verify-cli 0.0.1066 → 0.0.1068

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 (89) hide show
  1. package/lib/assertion/contained.js +3 -2
  2. package/lib/assertion/defined.js +3 -2
  3. package/lib/assignment/judgement.js +3 -3
  4. package/lib/conclusion.js +8 -4
  5. package/lib/consequent.js +8 -4
  6. package/lib/context/file.js +7 -7
  7. package/lib/context/local.js +12 -25
  8. package/lib/declaration.js +90 -3
  9. package/lib/frame.js +109 -48
  10. package/lib/judgement.js +84 -5
  11. package/lib/metaType.js +24 -3
  12. package/lib/metavariable.js +94 -65
  13. package/lib/mixins/statement/unify.js +1 -1
  14. package/lib/mixins/statement/verify.js +14 -23
  15. package/lib/premise.js +14 -6
  16. package/lib/proofStep.js +22 -13
  17. package/lib/reference.js +11 -9
  18. package/lib/rule.js +9 -2
  19. package/lib/ruleNames.js +5 -1
  20. package/lib/statement/qualified.js +30 -17
  21. package/lib/statement/unqualified.js +30 -6
  22. package/lib/statement.js +20 -9
  23. package/lib/subproof.js +1 -1
  24. package/lib/substitution/frameForMetavariable.js +80 -71
  25. package/lib/substitution/statementForMetavariable.js +118 -56
  26. package/lib/substitution/termForVariable.js +75 -75
  27. package/lib/substitution.js +68 -33
  28. package/lib/substitutions.js +58 -49
  29. package/lib/supposition.js +8 -4
  30. package/lib/unifier/intrinsicLevel.js +4 -4
  31. package/lib/unifier/metaLevel.js +23 -16
  32. package/lib/unifier/statementWithCombinator.js +2 -2
  33. package/lib/utilities/node.js +24 -10
  34. package/lib/utilities/tokens.js +8 -1
  35. package/lib/variable.js +17 -13
  36. package/package.json +2 -2
  37. package/src/assertion/contained.js +3 -1
  38. package/src/assertion/defined.js +3 -1
  39. package/src/assignment/judgement.js +3 -4
  40. package/src/conclusion.js +10 -3
  41. package/src/consequent.js +10 -3
  42. package/src/context/file.js +6 -8
  43. package/src/context/local.js +12 -33
  44. package/src/declaration.js +57 -4
  45. package/src/frame.js +149 -90
  46. package/src/judgement.js +109 -3
  47. package/src/metaType.js +29 -3
  48. package/src/metavariable.js +140 -87
  49. package/src/mixins/statement/unify.js +1 -0
  50. package/src/mixins/statement/verify.js +16 -28
  51. package/src/premise.js +19 -5
  52. package/src/proofStep.js +28 -12
  53. package/src/reference.js +11 -7
  54. package/src/rule.js +13 -1
  55. package/src/ruleNames.js +1 -0
  56. package/src/statement/qualified.js +38 -21
  57. package/src/statement/unqualified.js +35 -5
  58. package/src/statement.js +20 -12
  59. package/src/subproof.js +0 -1
  60. package/src/substitution/frameForMetavariable.js +90 -104
  61. package/src/substitution/statementForMetavariable.js +133 -61
  62. package/src/substitution/termForVariable.js +83 -113
  63. package/src/substitution.js +55 -26
  64. package/src/substitutions.js +59 -47
  65. package/src/supposition.js +10 -3
  66. package/src/unifier/intrinsicLevel.js +4 -3
  67. package/src/unifier/metaLevel.js +42 -24
  68. package/src/unifier/statementWithCombinator.js +1 -1
  69. package/src/utilities/node.js +26 -10
  70. package/src/utilities/tokens.js +7 -0
  71. package/src/variable.js +20 -11
  72. package/lib/resolve/complexSubstitutionAgainstSimpleSubstitution.js +0 -62
  73. package/lib/resolve/substitution.js +0 -27
  74. package/lib/resolve/substitutions.js +0 -37
  75. package/lib/unify/metavariableWithFrame.js +0 -40
  76. package/lib/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +0 -31
  77. package/lib/verify/declaration.js +0 -83
  78. package/lib/verify/frame.js +0 -120
  79. package/lib/verify/judgement.js +0 -88
  80. package/lib/verify/metavariableGivenMetaType.js +0 -44
  81. package/src/resolve/complexSubstitutionAgainstSimpleSubstitution.js +0 -79
  82. package/src/resolve/substitution.js +0 -19
  83. package/src/resolve/substitutions.js +0 -31
  84. package/src/unify/metavariableWithFrame.js +0 -40
  85. package/src/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +0 -27
  86. package/src/verify/declaration.js +0 -113
  87. package/src/verify/frame.js +0 -157
  88. package/src/verify/judgement.js +0 -127
  89. package/src/verify/metavariableGivenMetaType.js +0 -45
@@ -34,26 +34,24 @@ export default class Substitutions {
34
34
  return firstSubstitution;
35
35
  }
36
36
 
37
- getMetavariableNodes() {
38
- const metavariableNodes = [];
37
+ getMetavariableNames() {
38
+ const metavariableNames = [];
39
39
 
40
40
  this.forEachSubstitution((substitution) => {
41
- const metavariableNode = substitution.getMetavariableNode();
41
+ const metavariableName = substitution.getMetavariableName();
42
42
 
43
- if (metavariableNode !== null) {
44
- metavariableNodes.push(metavariableNode);
43
+ if (metavariableName !== null) {
44
+ metavariableNames.push(metavariableName);
45
45
  }
46
46
  });
47
47
 
48
- compress(metavariableNodes, (metavariableNodeA, metavariableNodeB) => {
49
- const metavariableNodeAMatchesMetavariableNodeB = metavariableNodeA.match(metavariableNodeB);
50
-
51
- if (metavariableNodeAMatchesMetavariableNodeB) {
48
+ compress(metavariableNames, (metavariableNameA, metavariableNameB) => {
49
+ if (metavariableNameA === metavariableNameB) {
52
50
  return true;
53
51
  }
54
52
  });
55
53
 
56
- return metavariableNodes;
54
+ return metavariableNames;
57
55
  }
58
56
 
59
57
  findSubstitution(callback) { return this.array.find(callback) || null; } ///
@@ -90,11 +88,11 @@ export default class Substitutions {
90
88
  return simpleSubstitution;
91
89
  }
92
90
 
93
- findSubstitutionByVariableNode(variableNode) {
91
+ findSubstitutionByVariableName(variableName) {
94
92
  const substitution = this.findSubstitution((substitution) => {
95
- const variableNodeMatches = substitution.matchVariableNode(variableNode);
93
+ const variableNameMatches = substitution.matchVariableName(variableName);
96
94
 
97
- if (variableNodeMatches) {
95
+ if (variableNameMatches) {
98
96
  return true;
99
97
  }
100
98
  });
@@ -102,22 +100,23 @@ export default class Substitutions {
102
100
  return substitution;
103
101
  }
104
102
 
105
- findSubstitutionByMetavariableNode(metavariableNode) {
103
+ findSubstitutionByMetavariableName(metavariableName) {
106
104
  const substitution = this.findSubstitution((substitution) => {
107
- const metavariableNodeMatches = substitution.matchMetavariableNode(metavariableNode);
105
+ const metavariableNameMatches = substitution.matchMetavariableName(metavariableName);
108
106
 
109
- if (metavariableNodeMatches) {
107
+ if (metavariableNameMatches) {
110
108
  return true;
111
109
  }
112
110
  });
113
111
 
114
112
  return substitution;
115
113
  }
116
- findSubstitutionsByMetavariableNode(metavariableNode) {
114
+
115
+ findSubstitutionsByMetavariableName(metavariableName) {
117
116
  const substitutions = this.findSubstitutions((substitution) => {
118
- const metavariableNodeMatches = substitution.matchMetavariableNode(metavariableNode);
117
+ const metavariableNameMatches = substitution.matchMetavariableName(metavariableName);
119
118
 
120
- if (metavariableNodeMatches) {
119
+ if (metavariableNameMatches) {
121
120
  return true;
122
121
  }
123
122
  });
@@ -125,8 +124,8 @@ export default class Substitutions {
125
124
  return substitutions;
126
125
  }
127
126
 
128
- findSimpleSubstitutionByMetavariableNode(metavariableNode) {
129
- const substitutions = this.findSubstitutionsByMetavariableNode(metavariableNode),
127
+ findSimpleSubstitutionByMetavariableName(metavariableName) {
128
+ const substitutions = this.findSubstitutionsByMetavariableName(metavariableName),
130
129
  simpleSubstitutions = substitutions.filterSubstitution((substitution) => {
131
130
  const substitutionSimple = substitution.isSimple();
132
131
 
@@ -140,8 +139,8 @@ export default class Substitutions {
140
139
  return simpleSubstitution;
141
140
  }
142
141
 
143
- findComplexSubstitutionsByMetavariableNode(metavariableNode) {
144
- const substitutions = this.findSubstitutionsByMetavariableNode(metavariableNode),
142
+ findComplexSubstitutionsByMetavariableName(metavariableName) {
143
+ const substitutions = this.findSubstitutionsByMetavariableName(metavariableName),
145
144
  complexSubstitutions = substitutions.filterSubstitution((substitution) => {
146
145
  const substitutionComplex = substitution.isComplex();
147
146
 
@@ -153,31 +152,32 @@ export default class Substitutions {
153
152
  return complexSubstitutions;
154
153
  }
155
154
 
156
- findSubstitutionsByMetavariableNodeAndSubstitutionNode(metavariableNode, substitutionNode) {
155
+ findSubstitutionByMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode) {
157
156
  const substitutions = this.findSubstitutions((substitution) => {
158
- const metavariableNodeAndSubstitutionNodeMatch = substitution.matchMetavariableNodeAndSubstitutionNode(metavariableNode, substitutionNode);
157
+ const metavariableNameAndSubstitutionNodeMatch = substitution.matchMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode);
159
158
 
160
- if (metavariableNodeAndSubstitutionNodeMatch) {
161
- return true;
162
- }
163
- });
159
+ if (metavariableNameAndSubstitutionNodeMatch) {
160
+ return true;
161
+ }
162
+ }),
163
+ firstSubstitution = substitutions.getFirstSubstitution(),
164
+ substitution = firstSubstitution; ///
164
165
 
165
- return substitutions;
166
+ return substitution;
166
167
  }
167
168
 
168
- findComplexSubstitutionByMetavariableNodeAndSubstitutionNode(metavariableNode, substitutionNode) {
169
- const substitutions = this.findSubstitutionsByMetavariableNodeAndSubstitutionNode(metavariableNode, substitutionNode),
170
- complexSubstitutions = substitutions.filterSubstitution((substitution) => {
171
- const substitutionComplex = substitution.isComplex();
169
+ isSimpleSubstitutionPresentByMetavariableName(metavariableName) {
170
+ const simpleSubstitution = this.findSimpleSubstitutionByMetavariableName(metavariableName),
171
+ simpleSubstitutionPresent = (simpleSubstitution !== null);
172
172
 
173
- if (substitutionComplex) {
174
- return true;
175
- }
176
- }),
177
- firstComplexSubstitution = complexSubstitutions.getFirstSubstitution(),
178
- complexSubstitution = firstComplexSubstitution; ///
173
+ return simpleSubstitutionPresent;
174
+ }
175
+
176
+ isSubstitutionPresentByMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode) {
177
+ const substitution = this.findSubstitutionByMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode),
178
+ substitutionPresent = (substitution !== null);
179
179
 
180
- return complexSubstitution;
180
+ return substitutionPresent;
181
181
  }
182
182
 
183
183
  addSubstitution(substitution, localContext) {
@@ -218,12 +218,24 @@ export default class Substitutions {
218
218
  return unifiedWithEquivalences;
219
219
  }
220
220
 
221
- areResolved() {
222
- const resolved = this.everySubstitution((substitution) => {
223
- const substitutionResolved = substitution.isResolved();
224
-
225
- return substitutionResolved;
226
- });
221
+ resolve(localContextA, localContextB) {
222
+ const metavariableNames = this.getMetavariableNames(),
223
+ resolved = metavariableNames.every((metavariableName) => {
224
+ const complexSubstitutions = this.findComplexSubstitutionsByMetavariableName(metavariableName),
225
+ complexSubstitutionsResolved = complexSubstitutions.everySubstitution((complexSubstitution) => {
226
+ const substitution = complexSubstitution, ///
227
+ substitutions = this, ///
228
+ substitutionResolved = substitution.resolve(substitutions, localContextA, localContextB);
229
+
230
+ if (substitutionResolved) {
231
+ return true;
232
+ }
233
+ });
234
+
235
+ if (complexSubstitutionsResolved) {
236
+ return true;
237
+ }
238
+ });
227
239
 
228
240
  return resolved;
229
241
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import shim from "./shim";
4
+ import LocalContext from "./context/local";
4
5
  import SubproofAssertion from "./assertion/subproof";
5
6
  import UnqualifiedStatement from "./statement/unqualified";
6
7
 
@@ -112,12 +113,18 @@ export default class Supposition {
112
113
  const statementString = statement.getString(),
113
114
  suppositionString = this.getString();
114
115
 
115
- localContext.trace(`Unifying the '${statementString}' statement with the '${suppositionString}' supposition...`);
116
+ const localContextB = localContext; ///
116
117
 
117
- statementUnified = this.unqualifiedStatement.unifyStatement(statement, substitutions, this.fileContext, localContext);
118
+ localContext = LocalContext.fromFileContext(this.fileContext);
119
+
120
+ const localContextA = localContext; ///
121
+
122
+ localContextB.trace(`Unifying the '${statementString}' statement with the '${suppositionString}' supposition...`);
123
+
124
+ statementUnified = this.unqualifiedStatement.unifyStatement(statement, substitutions, localContextA, localContextB);
118
125
 
119
126
  if (statementUnified) {
120
- localContext.debug(`...unified the '${statementString}' statement with the '${suppositionString}' supposition.`);
127
+ localContextB.debug(`...unified the '${statementString}' statement with the '${suppositionString}' supposition.`);
121
128
  }
122
129
 
123
130
  return statementUnified;
@@ -31,12 +31,13 @@ class IntrinsicLevelUnifier extends Unifier {
31
31
 
32
32
  const variableNode = termVariableNodeA, ///
33
33
  variableName = variableNameFromVariableNode(variableNode),
34
- variable = localContextA.findVariableByVariableName(variableName);
34
+ variablePresent = localContextA.isVariablePresentByVariableName(variableName);
35
35
 
36
- if (variable !== null) {
37
- const { Term } = shim,
36
+ if (variablePresent !== null) {
37
+ const { Term, Variable } = shim,
38
38
  localContext = localContextB, ///
39
39
  termNode = termNodeB, ///
40
+ variable = Variable.fromVariableNode(variableNode, localContextA),
40
41
  term = Term.fromTermNode(termNode, localContextB);
41
42
 
42
43
  termUnified = variable.unifyTerm(term, substitutions, localContext);
@@ -2,7 +2,8 @@
2
2
 
3
3
  import shim from "../shim";
4
4
  import Unifier from "../unifier";
5
- import unifyMetavariableWithFrame from "../unify/metavariableWithFrame";
5
+ import TermForVariableSubstitution from "../substitution/termForVariable";
6
+ import FrameForMetavariableSubstitution from "../substitution/frameForMetavariable";
6
7
 
7
8
  import { nodeQuery } from "../utilities/query";
8
9
  import { variableNameFromVariableNode, metavariableNameFromMetavariableNode } from "../utilities/name";
@@ -39,27 +40,32 @@ class MetaLevelUnifier extends Unifier {
39
40
  if (matches) {
40
41
  statementUnified = true;
41
42
  } else {
42
- const statementNode = statementNodeA, ///
43
- statementSubstitution = null, ///
44
- statementMetavariableNode = statementMetavariableNodeQuery(statementNode);
43
+ let localContext,
44
+ statementNode;
45
+
46
+ localContext = localContextA; ///
47
+
48
+ statementNode = statementNodeA; ///
49
+
50
+ const statementMetavariableNode = statementMetavariableNodeQuery(statementNode);
45
51
 
46
52
  if (statementMetavariableNode !== null) {
53
+ const substitution = FrameForMetavariableSubstitution.fromStatementNode(statementNode, localContext) ||
54
+ TermForVariableSubstitution.fromStatementNode(statementNode, localContext) ||
55
+ null;
56
+
47
57
  const { Statement } = shim,
48
58
  metavariableNode = statementMetavariableNode, ///
49
59
  metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
50
- metavariable = localContextA.findMetavariableByMetavariableName(metavariableName),
51
- substitution = statementSubstitution, ///
52
- localContext = localContextB, ///
53
- statementNode = statementNodeB, ///
54
- statement = Statement.fromStatementNode(statementNode, localContext);
55
-
56
- if (substitution === null) {
57
- statementUnified = metavariable.unifyStatement(statement, substitutions, localContext);
58
- } else {
59
- const statementUnifiedGivenSubstitution = metavariable.unifyStatementGivenSubstitution(statement, substitution, substitutions, localContext);
60
-
61
- statementUnified = statementUnifiedGivenSubstitution; ///
62
- }
60
+ metavariable = localContextA.findMetavariableByMetavariableName(metavariableName);
61
+
62
+ localContext = localContextB; ///
63
+
64
+ statementNode = statementNodeB; ///
65
+
66
+ const statement = Statement.fromStatementNode(statementNode, localContext);
67
+
68
+ statementUnified = metavariable.unifyStatement(statement, substitution, substitutions, localContext);
63
69
  } else {
64
70
  statementUnified = unifyStatementWithStatement(statementNodeA, statementNodeB, substitutions, localContextA, localContextB);
65
71
  }
@@ -72,12 +78,23 @@ class MetaLevelUnifier extends Unifier {
72
78
  nodeQueryA: frameMetavariableNodeQuery,
73
79
  nodeQueryB: frameNodeQuery,
74
80
  unify: (frameMetavariableNodeA, frameNodeB, substitutions, localContextA, localContextB) => {
75
- debugger
81
+ let frameUnified = false;
82
+
83
+ const metavariableNode = frameMetavariableNodeA, ///
84
+ metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
85
+ metavariablePresent = localContextA.findMetavariableByMetavariableName(metavariableName);
76
86
 
77
- const metavariableNodeA = frameMetavariableNodeA, ///
78
- metavariableUnifiedWithFrame = unifyMetavariableWithFrame(metavariableNodeA, frameNodeB, substitutions, localContextA, localContextB);
87
+ if (metavariablePresent) {
88
+ const { Frame, Metavariable } = shim,
89
+ localContext = localContextB, ///
90
+ frameNode = frameNodeB, ///
91
+ metavariable = Metavariable.fromMetavariableNode(metavariableNode, localContextA),
92
+ frame = Frame.fromFrameNode(frameNode, localContextB);
93
+
94
+ frameUnified = metavariable.unifyFrame(frame, substitutions, localContext);
95
+ }
79
96
 
80
- return metavariableUnifiedWithFrame;
97
+ return frameUnified;
81
98
  }
82
99
  },
83
100
  {
@@ -88,12 +105,13 @@ class MetaLevelUnifier extends Unifier {
88
105
 
89
106
  const variableNode = termVariableNodeA, ///
90
107
  variableName = variableNameFromVariableNode(variableNode),
91
- variable = localContextA.findVariableByVariableName(variableName);
108
+ variablePresent = localContextA.isVariablePresentByVariableName(variableName);
92
109
 
93
- if (variable !== null) {
94
- const { Term } = shim,
110
+ if (variablePresent !== null) {
111
+ const { Term, Variable } = shim,
95
112
  localContext = localContextB, ///
96
113
  termNode = termNodeB, ///
114
+ variable = Variable.fromVariableNode(variableNode, localContextA),
97
115
  term = Term.fromTermNode(termNode, localContextB);
98
116
 
99
117
  termUnified = variable.unifyTerm(term, substitutions, localContext);
@@ -55,7 +55,7 @@ class StatementWithCombinatorUnifier extends Unifier {
55
55
  frameNode = frameNodeA, ///
56
56
  metaType = MetaType.fromMetaTypeNode(metaTypeNode, localContext),
57
57
  frame = Frame.fromFrameNode(frameNode, localContext),
58
- frameVerifiedGivenType = frame.verifyGivenMetaType(metaType, localContext);
58
+ frameVerifiedGivenType = frame.verifyGivenMetaType(metaType, assignments, stated, localContext);
59
59
 
60
60
  unified = frameVerifiedGivenType;
61
61
 
@@ -6,10 +6,12 @@ import { nodeQuery } from "../utilities/query";
6
6
  import { combinedCustomGrammarFromNothing } from "./customGrammar";
7
7
  import { VARIABLE_RULE_NAME,
8
8
  METAVARIABLE_RULE_NAME,
9
+ SUBSTITUTION_RULE_NAME,
9
10
  UNQUALIFIED_STATEMENT_RULE_NAME,
10
11
  CONSTRUCTOR_DECLARATION_RULE_NAME } from "../ruleNames";
11
12
  import { variableTokensFromVariableString,
12
13
  metavariableTokensFromMetavariableString,
14
+ substitutionTokensFromSubstitutionString,
13
15
  unqualifiedStatementTokensFromUnqualifiedStatementString,
14
16
  constructorDeclarationTokensFromConstructorDeclarationString } from "../utilities/tokens";
15
17
 
@@ -46,16 +48,18 @@ export function statementNodeFromStatementString(statementString, lexer, parser)
46
48
  return statementNode;
47
49
  }
48
50
 
49
- export function termNodeFromConstructorDeclarationNode(constructorDeclarationNode) {
50
- const termNode = termNodeQuery(constructorDeclarationNode, constructorDeclarationNode);
51
+ export function metavariableNodeFromMetavariableString(metavariableString, lexer, parser) {
52
+ const metavariableTokens = metavariableTokensFromMetavariableString(metavariableString, lexer),
53
+ metavariableNode = metavariableNodeFromMetavariableTokens(metavariableTokens, parser);
51
54
 
52
- return termNode;
55
+ return metavariableNode;
53
56
  }
54
57
 
55
- export function statementNodeFromUnqualifiedStatementNode(unqualifiedStatementNode) {
56
- const statementNode = statementNodeQuery(unqualifiedStatementNode);
58
+ export function substitutionNodeFromSubstitutionString(substitutionString, lexer, parser) {
59
+ const substitutionTokens = substitutionTokensFromSubstitutionString(substitutionString, lexer),
60
+ substitutionNode = substitutionNodeFromSubstitutionTokens(substitutionTokens, parser);
57
61
 
58
- return statementNode;
62
+ return substitutionNode;
59
63
  }
60
64
 
61
65
  export function constructorDeclarationStringFromTermString(termString) {
@@ -72,11 +76,16 @@ export function unqualifiedStatementStringFromStatementString(statementString) {
72
76
  return unqualifiedStatementString;
73
77
  }
74
78
 
75
- export function metavariableNodeFromMetavariableString(metavariableString, lexer, parser) {
76
- const metavariableTokens = metavariableTokensFromMetavariableString(metavariableString, lexer),
77
- metavariableNode = metavariableNodeFromMetavariableTokens(metavariableTokens, parser);
79
+ export function termNodeFromConstructorDeclarationNode(constructorDeclarationNode) {
80
+ const termNode = termNodeQuery(constructorDeclarationNode, constructorDeclarationNode);
78
81
 
79
- return metavariableNode;
82
+ return termNode;
83
+ }
84
+
85
+ export function statementNodeFromUnqualifiedStatementNode(unqualifiedStatementNode) {
86
+ const statementNode = statementNodeQuery(unqualifiedStatementNode);
87
+
88
+ return statementNode;
80
89
  }
81
90
 
82
91
  export function variableNodeFromVariableTokens(variableTokens, parser) {
@@ -93,6 +102,13 @@ export function metavariableNodeFromMetavariableTokens(metavariableTokens, parse
93
102
  return metavariableNode;
94
103
  }
95
104
 
105
+ export function substitutionNodeFromSubstitutionTokens(substitutionTokens, parser) {
106
+ const ruleName = SUBSTITUTION_RULE_NAME,
107
+ substitutionNode = nodeFromTokensRuleNameAndParser(substitutionTokens, ruleName, parser);
108
+
109
+ return substitutionNode;
110
+ }
111
+
96
112
  export function unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser) {
97
113
  const tokens = unqualifiedStatementTokens, ///
98
114
  ruleName = UNQUALIFIED_STATEMENT_RULE_NAME,
@@ -25,6 +25,13 @@ export function metavariableTokensFromMetavariableString(metavariableString, lex
25
25
  return metavariableTokens;
26
26
  }
27
27
 
28
+ export function substitutionTokensFromSubstitutionString(substitutionString, lexer) {
29
+ const substitutionContent = `${substitutionString}`,
30
+ substitutionTokens = tokensFromContentAndLexer(substitutionContent, lexer);
31
+
32
+ return substitutionTokens;
33
+ }
34
+
28
35
  export function unqualifiedStatementTokensFromUnqualifiedStatementString(unqualifiedStatementString, lexer) {
29
36
  const content = unqualifiedStatementString, ///
30
37
  unqualifiedStatementTokens = tokensFromContentAndLexer(content, lexer);
package/src/variable.js CHANGED
@@ -46,16 +46,16 @@ class Variable {
46
46
  this.type = type;
47
47
  }
48
48
 
49
- matchNode(node) {
50
- const nodeMatches = this.node.match(node);
49
+ matchVariableName(variableName) {
50
+ const variableNameMatches = (this.name === variableName);
51
51
 
52
- return nodeMatches;
52
+ return variableNameMatches;
53
53
  }
54
54
 
55
- matchName(name) {
56
- const nameMatches = (this.name === name);
55
+ matchVariableNode(variableNode) {
56
+ const variableNodeMatches = this.node.match(variableNode);
57
57
 
58
- return nameMatches;
58
+ return variableNodeMatches;
59
59
  }
60
60
 
61
61
  verify(localContext) {
@@ -149,8 +149,8 @@ class Variable {
149
149
  localContext.trace(`Unifying the '${termString}' term with the '${variableString}' variable...`);
150
150
 
151
151
  const termNode = term.getNode(),
152
- variableNode = this.node, ///
153
- substitution = substitutions.findSubstitutionByVariableNode(variableNode);
152
+ variableName = this.name, ///
153
+ substitution = substitutions.findSubstitutionByVariableName(variableName);
154
154
 
155
155
  if (substitution !== null) {
156
156
  const termNodeMatches = substitution.matchTermNode(termNode);
@@ -159,13 +159,15 @@ class Variable {
159
159
  termUnified = true;
160
160
  }
161
161
  } else {
162
- const variable = this, ///
162
+ const variableNode = this.node, ///
163
+ variable = variableFromVariableNode(variableNode, localContext),
163
164
  termVariable = termVariableFromTermNode(termNode, localContext);
164
165
 
165
- if (termVariable === variable) {
166
+ if (variable === termVariable) {
166
167
  termUnified = true;
167
168
  } else {
168
- const termForVariableSubstitution = TermForVariableSubstitution.fromTernAndVariable(term, variable),
169
+ const variable = this, ///
170
+ termForVariableSubstitution = TermForVariableSubstitution.fromTernAndVariable(term, variable, localContext),
169
171
  substitution = termForVariableSubstitution; ///
170
172
 
171
173
  substitutions.addSubstitution(substitution, localContext);
@@ -300,4 +302,11 @@ function termVariableFromTermNode(termNode, localContext) {
300
302
  }
301
303
 
302
304
  return termVariable;
305
+ }
306
+
307
+ function variableFromVariableNode(variableNode, localContext) {
308
+ const variableName = variableNameFromVariableNode(variableNode),
309
+ variable = localContext.findVariableByVariableName(variableName);
310
+
311
+ return variable;
303
312
  }
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return resolveComplexSubstitutionAgainstSimpleSubstitution;
9
- }
10
- });
11
- var _substitutions = /*#__PURE__*/ _interop_require_default(require("../substitutions"));
12
- var _simpleSubstitutionStatementWithComplexSubstitutionStatement = /*#__PURE__*/ _interop_require_default(require("../unify/simpleSubstitutionStatementWithComplexSubstitutionStatement"));
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- function resolveComplexSubstitutionAgainstSimpleSubstitution(complexSubstitution, simpleSubstitution, substitutions, localContextA, localContextB) {
19
- var complexSubstitutionResolvedAgainstSimpleSubstitution = false;
20
- var statementNode = complexSubstitution.getStatementNode(), simpleSubstitutionString = simpleSubstitution.asString(localContextA, localContextB), complexSubstitutionString = complexSubstitution.asString(localContextA, localContextB);
21
- localContextB.trace("Resolving the complex ".concat(complexSubstitutionString, " substitution against the simple ").concat(simpleSubstitutionString, " substitution..."), statementNode);
22
- var transformedSubstitution = transformedSubstitutionFromComplexSubstitution(complexSubstitution, substitutions, localContextA, localContextB);
23
- if (transformedSubstitution !== null) {
24
- var substitution = substitutionFromComplexSubstitutionAndAndSimpleSubstitution(complexSubstitution, simpleSubstitution, localContextA, localContextB);
25
- if (substitution !== null) {
26
- var substitutionString = substitution.asString(localContextB, localContextB), transformedSubstitutionString = transformedSubstitution.asString(localContextB, localContextB);
27
- localContextB.trace("Equating the ".concat(substitutionString, " substitution to the transformed ").concat(transformedSubstitutionString, " substitution..."), statementNode);
28
- var substitutionEqualToTransformedSubstitution = substitution.isEqualTo(transformedSubstitution);
29
- complexSubstitutionResolvedAgainstSimpleSubstitution = substitutionEqualToTransformedSubstitution; ///
30
- }
31
- }
32
- if (complexSubstitutionResolvedAgainstSimpleSubstitution) {
33
- localContextB.debug("...resolved the complex ".concat(complexSubstitutionString, " substitution against the simple ").concat(simpleSubstitutionString, " substitution."), statementNode);
34
- }
35
- return complexSubstitutionResolvedAgainstSimpleSubstitution;
36
- }
37
- function transformedSubstitutionFromComplexSubstitution(complexSubstitution, substitutions, localContextA, localContextB) {
38
- var substitution = complexSubstitution.getSubstitution(), substitutionString = substitution.asString(localContextA, localContextA), complexSubstitutionStatementNode = complexSubstitution.getStatementNode();
39
- localContextB.trace("Transforming the complex substitution's '".concat(substitutionString, "' substitution...."), complexSubstitutionStatementNode);
40
- var transformedSubstitution = substitution.transformed(substitutions);
41
- if (transformedSubstitution !== null) {
42
- var transformedSubstitutionString = transformedSubstitution.asString(localContextB, localContextB);
43
- localContextB.debug("Transformed the complex substitution's '".concat(substitutionString, "' substitution into the '").concat(transformedSubstitutionString, "' substitution."), complexSubstitutionStatementNode);
44
- }
45
- return transformedSubstitution;
46
- }
47
- function substitutionFromComplexSubstitutionAndAndSimpleSubstitution(complexSubstitution, simpleSubstitution, localContextA, localContextB) {
48
- var substitution = null;
49
- var substitutions = _substitutions.default.fromNothing(), simpleSubstitutionStatementNode = simpleSubstitution.getStatementNode(), complexSubstitutionStatementNode = complexSubstitution.getStatementNode();
50
- localContextA = localContextB; ///
51
- var simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement = (0, _simpleSubstitutionStatementWithComplexSubstitutionStatement.default)(complexSubstitutionStatementNode, simpleSubstitutionStatementNode, substitutions, localContextA, localContextB);
52
- if (simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement) {
53
- var substitutionsLength = substitutions.getLength();
54
- if (substitutionsLength === 1) {
55
- var firstSubstitution = substitutions.getFirstSubstitution();
56
- substitution = firstSubstitution; ///
57
- }
58
- }
59
- return substitution;
60
- }
61
-
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlL2NvbXBsZXhTdWJzdGl0dXRpb25BZ2FpbnN0U2ltcGxlU3Vic3RpdHV0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgU3Vic3RpdHV0aW9ucyBmcm9tIFwiLi4vc3Vic3RpdHV0aW9uc1wiO1xuaW1wb3J0IHVuaWZ5Q29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFdpdGhTaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnQgZnJvbSBcIi4uL3VuaWZ5L3NpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFdpdGhDb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVDb21wbGV4U3Vic3RpdHV0aW9uQWdhaW5zdFNpbXBsZVN1YnN0aXR1dGlvbihjb21wbGV4U3Vic3RpdHV0aW9uLCBzaW1wbGVTdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgbGV0IGNvbXBsZXhTdWJzdGl0dXRpb25SZXNvbHZlZEFnYWluc3RTaW1wbGVTdWJzdGl0dXRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gY29tcGxleFN1YnN0aXR1dGlvbi5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgIHNpbXBsZVN1YnN0aXR1dGlvblN0cmluZyA9IHNpbXBsZVN1YnN0aXR1dGlvbi5hc1N0cmluZyhsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSxcbiAgICAgICAgY29tcGxleFN1YnN0aXR1dGlvblN0cmluZyA9IGNvbXBsZXhTdWJzdGl0dXRpb24uYXNTdHJpbmcobG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgbG9jYWxDb250ZXh0Qi50cmFjZShgUmVzb2x2aW5nIHRoZSBjb21wbGV4ICR7Y29tcGxleFN1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uIGFnYWluc3QgdGhlIHNpbXBsZSAke3NpbXBsZVN1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWRTdWJzdGl0dXRpb24gPSB0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvbkZyb21Db21wbGV4U3Vic3RpdHV0aW9uKGNvbXBsZXhTdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gIGlmICh0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbkZyb21Db21wbGV4U3Vic3RpdHV0aW9uQW5kQW5kU2ltcGxlU3Vic3RpdHV0aW9uKGNvbXBsZXhTdWJzdGl0dXRpb24sIHNpbXBsZVN1YnN0aXR1dGlvbiwgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25TdHJpbmcgPSBzdWJzdGl0dXRpb24uYXNTdHJpbmcobG9jYWxDb250ZXh0QiwgbG9jYWxDb250ZXh0QiksXG4gICAgICAgICAgICB0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvblN0cmluZyA9IHRyYW5zZm9ybWVkU3Vic3RpdHV0aW9uLmFzU3RyaW5nKGxvY2FsQ29udGV4dEIsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgICBsb2NhbENvbnRleHRCLnRyYWNlKGBFcXVhdGluZyB0aGUgJHtzdWJzdGl0dXRpb25TdHJpbmd9IHN1YnN0aXR1dGlvbiB0byB0aGUgdHJhbnNmb3JtZWQgJHt0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbkVxdWFsVG9UcmFuc2Zvcm1lZFN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbi5pc0VxdWFsVG8odHJhbnNmb3JtZWRTdWJzdGl0dXRpb24pO1xuXG4gICAgICBjb21wbGV4U3Vic3RpdHV0aW9uUmVzb2x2ZWRBZ2FpbnN0U2ltcGxlU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uRXF1YWxUb1RyYW5zZm9ybWVkU3Vic3RpdHV0aW9uOyAgLy8vXG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbXBsZXhTdWJzdGl0dXRpb25SZXNvbHZlZEFnYWluc3RTaW1wbGVTdWJzdGl0dXRpb24pIHtcbiAgICBsb2NhbENvbnRleHRCLmRlYnVnKGAuLi5yZXNvbHZlZCB0aGUgY29tcGxleCAke2NvbXBsZXhTdWJzdGl0dXRpb25TdHJpbmd9IHN1YnN0aXR1dGlvbiBhZ2FpbnN0IHRoZSBzaW1wbGUgJHtzaW1wbGVTdWJzdGl0dXRpb25TdHJpbmd9IHN1YnN0aXR1dGlvbi5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBjb21wbGV4U3Vic3RpdHV0aW9uUmVzb2x2ZWRBZ2FpbnN0U2ltcGxlU3Vic3RpdHV0aW9uO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvbkZyb21Db21wbGV4U3Vic3RpdHV0aW9uKGNvbXBsZXhTdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgY29uc3Qgc3Vic3RpdHV0aW9uID0gY29tcGxleFN1YnN0aXR1dGlvbi5nZXRTdWJzdGl0dXRpb24oKSxcbiAgICAgICAgc3Vic3RpdHV0aW9uU3RyaW5nID0gc3Vic3RpdHV0aW9uLmFzU3RyaW5nKGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEEpLFxuICAgICAgICBjb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSA9IGNvbXBsZXhTdWJzdGl0dXRpb24uZ2V0U3RhdGVtZW50Tm9kZSgpO1xuXG4gIGxvY2FsQ29udGV4dEIudHJhY2UoYFRyYW5zZm9ybWluZyB0aGUgY29tcGxleCBzdWJzdGl0dXRpb24ncyAnJHtzdWJzdGl0dXRpb25TdHJpbmd9JyBzdWJzdGl0dXRpb24uLi4uYCwgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uLnRyYW5zZm9ybWVkKHN1YnN0aXR1dGlvbnMpO1xuXG4gIGlmICh0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHRyYW5zZm9ybWVkU3Vic3RpdHV0aW9uU3RyaW5nID0gdHJhbnNmb3JtZWRTdWJzdGl0dXRpb24uYXNTdHJpbmcobG9jYWxDb250ZXh0QiwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICBsb2NhbENvbnRleHRCLmRlYnVnKGBUcmFuc2Zvcm1lZCB0aGUgY29tcGxleCBzdWJzdGl0dXRpb24ncyAnJHtzdWJzdGl0dXRpb25TdHJpbmd9JyBzdWJzdGl0dXRpb24gaW50byB0aGUgJyR7dHJhbnNmb3JtZWRTdWJzdGl0dXRpb25TdHJpbmd9JyBzdWJzdGl0dXRpb24uYCwgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkU3Vic3RpdHV0aW9uO1xufVxuXG5mdW5jdGlvbiBzdWJzdGl0dXRpb25Gcm9tQ29tcGxleFN1YnN0aXR1dGlvbkFuZEFuZFNpbXBsZVN1YnN0aXR1dGlvbihjb21wbGV4U3Vic3RpdHV0aW9uLCBzaW1wbGVTdWJzdGl0dXRpb24sIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgbGV0IHN1YnN0aXR1dGlvbiA9IG51bGw7XG5cbiAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSwgIC8vL1xuICAgICAgICBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlID0gc2ltcGxlU3Vic3RpdHV0aW9uLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUgPSBjb21wbGV4U3Vic3RpdHV0aW9uLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICBsb2NhbENvbnRleHRBID0gbG9jYWxDb250ZXh0QjsgIC8vL1xuXG4gIGNvbnN0IHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudCA9IHVuaWZ5Q29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFdpdGhTaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnQoY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUsIHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gIGlmIChzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRVbmlmaWVkV2l0aENvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnQpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb25zTGVuZ3RoID0gc3Vic3RpdHV0aW9ucy5nZXRMZW5ndGgoKTtcblxuICAgIGlmIChzdWJzdGl0dXRpb25zTGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdFN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbnMuZ2V0Rmlyc3RTdWJzdGl0dXRpb24oKTtcblxuICAgICAgc3Vic3RpdHV0aW9uID0gZmlyc3RTdWJzdGl0dXRpb247IC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdWJzdGl0dXRpb247XG59XG4iXSwibmFtZXMiOlsicmVzb2x2ZUNvbXBsZXhTdWJzdGl0dXRpb25BZ2FpbnN0U2ltcGxlU3Vic3RpdHV0aW9uIiwiY29tcGxleFN1YnN0aXR1dGlvbiIsInNpbXBsZVN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsImNvbXBsZXhTdWJzdGl0dXRpb25SZXNvbHZlZEFnYWluc3RTaW1wbGVTdWJzdGl0dXRpb24iLCJzdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInNpbXBsZVN1YnN0aXR1dGlvblN0cmluZyIsImFzU3RyaW5nIiwiY29tcGxleFN1YnN0aXR1dGlvblN0cmluZyIsInRyYWNlIiwidHJhbnNmb3JtZWRTdWJzdGl0dXRpb24iLCJ0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvbkZyb21Db21wbGV4U3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uRnJvbUNvbXBsZXhTdWJzdGl0dXRpb25BbmRBbmRTaW1wbGVTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25TdHJpbmciLCJ0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvblN0cmluZyIsInN1YnN0aXR1dGlvbkVxdWFsVG9UcmFuc2Zvcm1lZFN1YnN0aXR1dGlvbiIsImlzRXF1YWxUbyIsImRlYnVnIiwiZ2V0U3Vic3RpdHV0aW9uIiwiY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUiLCJ0cmFuc2Zvcm1lZCIsIlN1YnN0aXR1dGlvbnMiLCJmcm9tTm90aGluZyIsInNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUiLCJzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRVbmlmaWVkV2l0aENvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnQiLCJ1bmlmeUNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnRXaXRoU2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Iiwic3Vic3RpdHV0aW9uc0xlbmd0aCIsImdldExlbmd0aCIsImZpcnN0U3Vic3RpdHV0aW9uIiwiZ2V0Rmlyc3RTdWJzdGl0dXRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUtBOzs7ZUFBd0JBOzs7b0VBSEU7a0hBQ21EOzs7Ozs7QUFFOUQsU0FBU0Esb0RBQW9EQyxtQkFBbUIsRUFBRUMsa0JBQWtCLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhO0lBQzlKLElBQUlDLHVEQUF1RDtJQUUzRCxJQUFNQyxn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
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return resolveSubstitution;
9
- }
10
- });
11
- var _complexSubstitutionAgainstSimpleSubstitution = /*#__PURE__*/ _interop_require_default(require("../resolve/complexSubstitutionAgainstSimpleSubstitution"));
12
- function _interop_require_default(obj) {
13
- return obj && obj.__esModule ? obj : {
14
- default: obj
15
- };
16
- }
17
- function resolveSubstitution(substitution, substitutions, localContextA, localContextB) {
18
- var complexSubstitutionResolved = false;
19
- var metavariableNode = substitution.getMetavariableNode(), simpleSubstitution = substitutions.findSimpleSubstitutionByMetavariableNode(metavariableNode);
20
- if (simpleSubstitution !== null) {
21
- var complexSubstitution = substitution, complexSubstitutionResolvedAgainstSimpleSubstitution = (0, _complexSubstitutionAgainstSimpleSubstitution.default)(complexSubstitution, simpleSubstitution, substitutions, localContextA, localContextB);
22
- complexSubstitutionResolved = complexSubstitutionResolvedAgainstSimpleSubstitution; ///
23
- }
24
- return complexSubstitutionResolved;
25
- }
26
-
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlL3N1YnN0aXR1dGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHJlc29sdmVDb21wbGV4U3Vic3RpdHV0aW9uQWdhaW5zdFNpbXBsZVN1YnN0aXR1dGlvbiBmcm9tIFwiLi4vcmVzb2x2ZS9jb21wbGV4U3Vic3RpdHV0aW9uQWdhaW5zdFNpbXBsZVN1YnN0aXR1dGlvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICBsZXQgY29tcGxleFN1YnN0aXR1dGlvblJlc29sdmVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IHN1YnN0aXR1dGlvbi5nZXRNZXRhdmFyaWFibGVOb2RlKCksXG4gICAgICAgIHNpbXBsZVN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbnMuZmluZFNpbXBsZVN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAoc2ltcGxlU3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29tcGxleFN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgY29tcGxleFN1YnN0aXR1dGlvblJlc29sdmVkQWdhaW5zdFNpbXBsZVN1YnN0aXR1dGlvbiA9IHJlc29sdmVDb21wbGV4U3Vic3RpdHV0aW9uQWdhaW5zdFNpbXBsZVN1YnN0aXR1dGlvbihjb21wbGV4U3Vic3RpdHV0aW9uLCBzaW1wbGVTdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgY29tcGxleFN1YnN0aXR1dGlvblJlc29sdmVkID0gY29tcGxleFN1YnN0aXR1dGlvblJlc29sdmVkQWdhaW5zdFNpbXBsZVN1YnN0aXR1dGlvbjsgLy8vXG4gIH1cblxuICByZXR1cm4gY29tcGxleFN1YnN0aXR1dGlvblJlc29sdmVkO1xufVxuIl0sIm5hbWVzIjpbInJlc29sdmVTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJjb21wbGV4U3Vic3RpdHV0aW9uUmVzb2x2ZWQiLCJtZXRhdmFyaWFibGVOb2RlIiwiZ2V0TWV0YXZhcmlhYmxlTm9kZSIsInNpbXBsZVN1YnN0aXR1dGlvbiIsImZpbmRTaW1wbGVTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5vZGUiLCJjb21wbGV4U3Vic3RpdHV0aW9uIiwiY29tcGxleFN1YnN0aXR1dGlvblJlc29sdmVkQWdhaW5zdFNpbXBsZVN1YnN0aXR1dGlvbiIsInJlc29sdmVDb21wbGV4U3Vic3RpdHV0aW9uQWdhaW5zdFNpbXBsZVN1YnN0aXR1dGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUF3QkE7OzttR0FGd0M7Ozs7OztBQUVqRCxTQUFTQSxvQkFBb0JDLFlBQVksRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLGFBQWE7SUFDbkcsSUFBSUMsOEJBQThCO0lBRWxDLElBQU1DLG1CQUFtQkwsYUFBYU0sbUJBQW1CLElBQ25EQyxxQkFBcUJOLGNBQWNPLHdDQUF3QyxDQUFDSDtJQUVsRixJQUFJRSx1QkFBdUIsTUFBTTtRQUMvQixJQUFNRSxzQkFBc0JULGNBQ3RCVSx1REFBdURDLElBQUFBLHFEQUFtRCxFQUFDRixxQkFBcUJGLG9CQUFvQk4sZUFBZUMsZUFBZUM7UUFFeExDLDhCQUE4Qk0sc0RBQXNELEdBQUc7SUFDekY7SUFFQSxPQUFPTjtBQUNUIn0=