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.
- package/lib/assertion/contained.js +3 -2
- package/lib/assertion/defined.js +3 -2
- package/lib/assignment/judgement.js +3 -3
- package/lib/conclusion.js +8 -4
- package/lib/consequent.js +8 -4
- package/lib/context/file.js +7 -7
- package/lib/context/local.js +12 -25
- package/lib/declaration.js +90 -3
- package/lib/frame.js +109 -48
- package/lib/judgement.js +84 -5
- package/lib/metaType.js +24 -3
- package/lib/metavariable.js +94 -65
- package/lib/mixins/statement/unify.js +1 -1
- package/lib/mixins/statement/verify.js +14 -23
- package/lib/premise.js +14 -6
- package/lib/proofStep.js +22 -13
- package/lib/reference.js +11 -9
- package/lib/rule.js +9 -2
- package/lib/ruleNames.js +5 -1
- package/lib/statement/qualified.js +30 -17
- package/lib/statement/unqualified.js +30 -6
- package/lib/statement.js +20 -9
- package/lib/subproof.js +1 -1
- package/lib/substitution/frameForMetavariable.js +80 -71
- package/lib/substitution/statementForMetavariable.js +118 -56
- package/lib/substitution/termForVariable.js +75 -75
- package/lib/substitution.js +68 -33
- package/lib/substitutions.js +58 -49
- package/lib/supposition.js +8 -4
- package/lib/unifier/intrinsicLevel.js +4 -4
- package/lib/unifier/metaLevel.js +23 -16
- package/lib/unifier/statementWithCombinator.js +2 -2
- package/lib/utilities/node.js +24 -10
- package/lib/utilities/tokens.js +8 -1
- package/lib/variable.js +17 -13
- package/package.json +2 -2
- package/src/assertion/contained.js +3 -1
- package/src/assertion/defined.js +3 -1
- package/src/assignment/judgement.js +3 -4
- package/src/conclusion.js +10 -3
- package/src/consequent.js +10 -3
- package/src/context/file.js +6 -8
- package/src/context/local.js +12 -33
- package/src/declaration.js +57 -4
- package/src/frame.js +149 -90
- package/src/judgement.js +109 -3
- package/src/metaType.js +29 -3
- package/src/metavariable.js +140 -87
- package/src/mixins/statement/unify.js +1 -0
- package/src/mixins/statement/verify.js +16 -28
- package/src/premise.js +19 -5
- package/src/proofStep.js +28 -12
- package/src/reference.js +11 -7
- package/src/rule.js +13 -1
- package/src/ruleNames.js +1 -0
- package/src/statement/qualified.js +38 -21
- package/src/statement/unqualified.js +35 -5
- package/src/statement.js +20 -12
- package/src/subproof.js +0 -1
- package/src/substitution/frameForMetavariable.js +90 -104
- package/src/substitution/statementForMetavariable.js +133 -61
- package/src/substitution/termForVariable.js +83 -113
- package/src/substitution.js +55 -26
- package/src/substitutions.js +59 -47
- package/src/supposition.js +10 -3
- package/src/unifier/intrinsicLevel.js +4 -3
- package/src/unifier/metaLevel.js +42 -24
- package/src/unifier/statementWithCombinator.js +1 -1
- package/src/utilities/node.js +26 -10
- package/src/utilities/tokens.js +7 -0
- package/src/variable.js +20 -11
- package/lib/resolve/complexSubstitutionAgainstSimpleSubstitution.js +0 -62
- package/lib/resolve/substitution.js +0 -27
- package/lib/resolve/substitutions.js +0 -37
- package/lib/unify/metavariableWithFrame.js +0 -40
- package/lib/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +0 -31
- package/lib/verify/declaration.js +0 -83
- package/lib/verify/frame.js +0 -120
- package/lib/verify/judgement.js +0 -88
- package/lib/verify/metavariableGivenMetaType.js +0 -44
- package/src/resolve/complexSubstitutionAgainstSimpleSubstitution.js +0 -79
- package/src/resolve/substitution.js +0 -19
- package/src/resolve/substitutions.js +0 -31
- package/src/unify/metavariableWithFrame.js +0 -40
- package/src/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +0 -27
- package/src/verify/declaration.js +0 -113
- package/src/verify/frame.js +0 -157
- package/src/verify/judgement.js +0 -127
- package/src/verify/metavariableGivenMetaType.js +0 -45
package/src/substitutions.js
CHANGED
|
@@ -34,26 +34,24 @@ export default class Substitutions {
|
|
|
34
34
|
return firstSubstitution;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
const
|
|
37
|
+
getMetavariableNames() {
|
|
38
|
+
const metavariableNames = [];
|
|
39
39
|
|
|
40
40
|
this.forEachSubstitution((substitution) => {
|
|
41
|
-
const
|
|
41
|
+
const metavariableName = substitution.getMetavariableName();
|
|
42
42
|
|
|
43
|
-
if (
|
|
44
|
-
|
|
43
|
+
if (metavariableName !== null) {
|
|
44
|
+
metavariableNames.push(metavariableName);
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
-
compress(
|
|
49
|
-
|
|
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
|
|
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
|
-
|
|
91
|
+
findSubstitutionByVariableName(variableName) {
|
|
94
92
|
const substitution = this.findSubstitution((substitution) => {
|
|
95
|
-
const
|
|
93
|
+
const variableNameMatches = substitution.matchVariableName(variableName);
|
|
96
94
|
|
|
97
|
-
if (
|
|
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
|
-
|
|
103
|
+
findSubstitutionByMetavariableName(metavariableName) {
|
|
106
104
|
const substitution = this.findSubstitution((substitution) => {
|
|
107
|
-
const
|
|
105
|
+
const metavariableNameMatches = substitution.matchMetavariableName(metavariableName);
|
|
108
106
|
|
|
109
|
-
if (
|
|
107
|
+
if (metavariableNameMatches) {
|
|
110
108
|
return true;
|
|
111
109
|
}
|
|
112
110
|
});
|
|
113
111
|
|
|
114
112
|
return substitution;
|
|
115
113
|
}
|
|
116
|
-
|
|
114
|
+
|
|
115
|
+
findSubstitutionsByMetavariableName(metavariableName) {
|
|
117
116
|
const substitutions = this.findSubstitutions((substitution) => {
|
|
118
|
-
const
|
|
117
|
+
const metavariableNameMatches = substitution.matchMetavariableName(metavariableName);
|
|
119
118
|
|
|
120
|
-
if (
|
|
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
|
-
|
|
129
|
-
const substitutions = this.
|
|
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
|
-
|
|
144
|
-
const substitutions = this.
|
|
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
|
-
|
|
155
|
+
findSubstitutionByMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode) {
|
|
157
156
|
const substitutions = this.findSubstitutions((substitution) => {
|
|
158
|
-
|
|
157
|
+
const metavariableNameAndSubstitutionNodeMatch = substitution.matchMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode);
|
|
159
158
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
159
|
+
if (metavariableNameAndSubstitutionNodeMatch) {
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
}),
|
|
163
|
+
firstSubstitution = substitutions.getFirstSubstitution(),
|
|
164
|
+
substitution = firstSubstitution; ///
|
|
164
165
|
|
|
165
|
-
return
|
|
166
|
+
return substitution;
|
|
166
167
|
}
|
|
167
168
|
|
|
168
|
-
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
const substitutionComplex = substitution.isComplex();
|
|
169
|
+
isSimpleSubstitutionPresentByMetavariableName(metavariableName) {
|
|
170
|
+
const simpleSubstitution = this.findSimpleSubstitutionByMetavariableName(metavariableName),
|
|
171
|
+
simpleSubstitutionPresent = (simpleSubstitution !== null);
|
|
172
172
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
173
|
+
return simpleSubstitutionPresent;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
isSubstitutionPresentByMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode) {
|
|
177
|
+
const substitution = this.findSubstitutionByMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode),
|
|
178
|
+
substitutionPresent = (substitution !== null);
|
|
179
179
|
|
|
180
|
-
return
|
|
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
|
-
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
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
|
}
|
package/src/supposition.js
CHANGED
|
@@ -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
|
-
|
|
116
|
+
const localContextB = localContext; ///
|
|
116
117
|
|
|
117
|
-
|
|
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
|
-
|
|
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
|
-
|
|
34
|
+
variablePresent = localContextA.isVariablePresentByVariableName(variableName);
|
|
35
35
|
|
|
36
|
-
if (
|
|
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);
|
package/src/unifier/metaLevel.js
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import shim from "../shim";
|
|
4
4
|
import Unifier from "../unifier";
|
|
5
|
-
import
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
81
|
+
let frameUnified = false;
|
|
82
|
+
|
|
83
|
+
const metavariableNode = frameMetavariableNodeA, ///
|
|
84
|
+
metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
|
|
85
|
+
metavariablePresent = localContextA.findMetavariableByMetavariableName(metavariableName);
|
|
76
86
|
|
|
77
|
-
|
|
78
|
-
|
|
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
|
|
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
|
-
|
|
108
|
+
variablePresent = localContextA.isVariablePresentByVariableName(variableName);
|
|
92
109
|
|
|
93
|
-
if (
|
|
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
|
|
package/src/utilities/node.js
CHANGED
|
@@ -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
|
|
50
|
-
const
|
|
51
|
+
export function metavariableNodeFromMetavariableString(metavariableString, lexer, parser) {
|
|
52
|
+
const metavariableTokens = metavariableTokensFromMetavariableString(metavariableString, lexer),
|
|
53
|
+
metavariableNode = metavariableNodeFromMetavariableTokens(metavariableTokens, parser);
|
|
51
54
|
|
|
52
|
-
return
|
|
55
|
+
return metavariableNode;
|
|
53
56
|
}
|
|
54
57
|
|
|
55
|
-
export function
|
|
56
|
-
const
|
|
58
|
+
export function substitutionNodeFromSubstitutionString(substitutionString, lexer, parser) {
|
|
59
|
+
const substitutionTokens = substitutionTokensFromSubstitutionString(substitutionString, lexer),
|
|
60
|
+
substitutionNode = substitutionNodeFromSubstitutionTokens(substitutionTokens, parser);
|
|
57
61
|
|
|
58
|
-
return
|
|
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
|
|
76
|
-
const
|
|
77
|
-
metavariableNode = metavariableNodeFromMetavariableTokens(metavariableTokens, parser);
|
|
79
|
+
export function termNodeFromConstructorDeclarationNode(constructorDeclarationNode) {
|
|
80
|
+
const termNode = termNodeQuery(constructorDeclarationNode, constructorDeclarationNode);
|
|
78
81
|
|
|
79
|
-
return
|
|
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,
|
package/src/utilities/tokens.js
CHANGED
|
@@ -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
|
-
|
|
50
|
-
const
|
|
49
|
+
matchVariableName(variableName) {
|
|
50
|
+
const variableNameMatches = (this.name === variableName);
|
|
51
51
|
|
|
52
|
-
return
|
|
52
|
+
return variableNameMatches;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
const
|
|
55
|
+
matchVariableNode(variableNode) {
|
|
56
|
+
const variableNodeMatches = this.node.match(variableNode);
|
|
57
57
|
|
|
58
|
-
return
|
|
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
|
-
|
|
153
|
-
substitution = substitutions.
|
|
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
|
|
162
|
+
const variableNode = this.node, ///
|
|
163
|
+
variable = variableFromVariableNode(variableNode, localContext),
|
|
163
164
|
termVariable = termVariableFromTermNode(termNode, localContext);
|
|
164
165
|
|
|
165
|
-
if (
|
|
166
|
+
if (variable === termVariable) {
|
|
166
167
|
termUnified = true;
|
|
167
168
|
} else {
|
|
168
|
-
const
|
|
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=
|