occam-verify-cli 0.0.1067 → 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 +2 -2
- package/lib/assertion/defined.js +2 -2
- package/lib/assignment/judgement.js +3 -3
- package/lib/conclusion.js +4 -4
- package/lib/consequent.js +4 -4
- 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 +93 -25
- package/lib/mixins/statement/unify.js +2 -17
- package/lib/mixins/statement/verify.js +13 -13
- package/lib/premise.js +10 -6
- package/lib/reference.js +11 -9
- package/lib/rule.js +5 -2
- package/lib/ruleNames.js +5 -1
- package/lib/statement/unqualified.js +26 -2
- package/lib/statement.js +4 -2
- package/lib/substitution/frameForMetavariable.js +61 -60
- package/lib/substitution/statementForMetavariable.js +52 -29
- package/lib/substitution/termForVariable.js +53 -52
- package/lib/substitution.js +28 -28
- package/lib/substitutions.js +46 -40
- package/lib/supposition.js +4 -4
- package/lib/unifier/intrinsicLevel.js +4 -4
- package/lib/unifier/metaLevel.js +11 -7
- 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 +9 -5
- package/package.json +1 -1
- package/src/assertion/contained.js +1 -1
- package/src/assertion/defined.js +1 -1
- package/src/assignment/judgement.js +3 -4
- package/src/conclusion.js +4 -4
- package/src/consequent.js +4 -4
- 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 +145 -42
- package/src/mixins/statement/unify.js +1 -23
- package/src/mixins/statement/verify.js +15 -13
- package/src/premise.js +13 -6
- package/src/reference.js +11 -7
- package/src/rule.js +7 -1
- package/src/ruleNames.js +1 -0
- package/src/statement/unqualified.js +31 -1
- package/src/statement.js +3 -1
- package/src/substitution/frameForMetavariable.js +65 -84
- package/src/substitution/statementForMetavariable.js +63 -32
- package/src/substitution/termForVariable.js +56 -77
- package/src/substitution.js +21 -21
- package/src/substitutions.js +51 -46
- package/src/supposition.js +4 -4
- package/src/unifier/intrinsicLevel.js +4 -3
- package/src/unifier/metaLevel.js +19 -7
- 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 +14 -5
- 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/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,11 +100,11 @@ 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
|
});
|
|
@@ -114,11 +112,11 @@ export default class Substitutions {
|
|
|
114
112
|
return substitution;
|
|
115
113
|
}
|
|
116
114
|
|
|
117
|
-
|
|
115
|
+
findSubstitutionsByMetavariableName(metavariableName) {
|
|
118
116
|
const substitutions = this.findSubstitutions((substitution) => {
|
|
119
|
-
const
|
|
117
|
+
const metavariableNameMatches = substitution.matchMetavariableName(metavariableName);
|
|
120
118
|
|
|
121
|
-
if (
|
|
119
|
+
if (metavariableNameMatches) {
|
|
122
120
|
return true;
|
|
123
121
|
}
|
|
124
122
|
});
|
|
@@ -126,8 +124,8 @@ export default class Substitutions {
|
|
|
126
124
|
return substitutions;
|
|
127
125
|
}
|
|
128
126
|
|
|
129
|
-
|
|
130
|
-
const substitutions = this.
|
|
127
|
+
findSimpleSubstitutionByMetavariableName(metavariableName) {
|
|
128
|
+
const substitutions = this.findSubstitutionsByMetavariableName(metavariableName),
|
|
131
129
|
simpleSubstitutions = substitutions.filterSubstitution((substitution) => {
|
|
132
130
|
const substitutionSimple = substitution.isSimple();
|
|
133
131
|
|
|
@@ -141,8 +139,8 @@ export default class Substitutions {
|
|
|
141
139
|
return simpleSubstitution;
|
|
142
140
|
}
|
|
143
141
|
|
|
144
|
-
|
|
145
|
-
const substitutions = this.
|
|
142
|
+
findComplexSubstitutionsByMetavariableName(metavariableName) {
|
|
143
|
+
const substitutions = this.findSubstitutionsByMetavariableName(metavariableName),
|
|
146
144
|
complexSubstitutions = substitutions.filterSubstitution((substitution) => {
|
|
147
145
|
const substitutionComplex = substitution.isComplex();
|
|
148
146
|
|
|
@@ -154,11 +152,11 @@ export default class Substitutions {
|
|
|
154
152
|
return complexSubstitutions;
|
|
155
153
|
}
|
|
156
154
|
|
|
157
|
-
|
|
155
|
+
findSubstitutionByMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode) {
|
|
158
156
|
const substitutions = this.findSubstitutions((substitution) => {
|
|
159
|
-
const
|
|
157
|
+
const metavariableNameAndSubstitutionNodeMatch = substitution.matchMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode);
|
|
160
158
|
|
|
161
|
-
if (
|
|
159
|
+
if (metavariableNameAndSubstitutionNodeMatch) {
|
|
162
160
|
return true;
|
|
163
161
|
}
|
|
164
162
|
}),
|
|
@@ -168,8 +166,15 @@ export default class Substitutions {
|
|
|
168
166
|
return substitution;
|
|
169
167
|
}
|
|
170
168
|
|
|
171
|
-
|
|
172
|
-
const
|
|
169
|
+
isSimpleSubstitutionPresentByMetavariableName(metavariableName) {
|
|
170
|
+
const simpleSubstitution = this.findSimpleSubstitutionByMetavariableName(metavariableName),
|
|
171
|
+
simpleSubstitutionPresent = (simpleSubstitution !== null);
|
|
172
|
+
|
|
173
|
+
return simpleSubstitutionPresent;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
isSubstitutionPresentByMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode) {
|
|
177
|
+
const substitution = this.findSubstitutionByMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode),
|
|
173
178
|
substitutionPresent = (substitution !== null);
|
|
174
179
|
|
|
175
180
|
return substitutionPresent;
|
|
@@ -213,24 +218,24 @@ export default class Substitutions {
|
|
|
213
218
|
return unifiedWithEquivalences;
|
|
214
219
|
}
|
|
215
220
|
|
|
216
|
-
resolve(
|
|
217
|
-
const
|
|
218
|
-
resolved =
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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
|
+
});
|
|
234
239
|
|
|
235
240
|
return resolved;
|
|
236
241
|
}
|
package/src/supposition.js
CHANGED
|
@@ -113,18 +113,18 @@ export default class Supposition {
|
|
|
113
113
|
const statementString = statement.getString(),
|
|
114
114
|
suppositionString = this.getString();
|
|
115
115
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
const localContextB = localContext;
|
|
116
|
+
const localContextB = localContext; ///
|
|
119
117
|
|
|
120
118
|
localContext = LocalContext.fromFileContext(this.fileContext);
|
|
121
119
|
|
|
122
120
|
const localContextA = localContext; ///
|
|
123
121
|
|
|
122
|
+
localContextB.trace(`Unifying the '${statementString}' statement with the '${suppositionString}' supposition...`);
|
|
123
|
+
|
|
124
124
|
statementUnified = this.unqualifiedStatement.unifyStatement(statement, substitutions, localContextA, localContextB);
|
|
125
125
|
|
|
126
126
|
if (statementUnified) {
|
|
127
|
-
|
|
127
|
+
localContextB.debug(`...unified the '${statementString}' statement with the '${suppositionString}' supposition.`);
|
|
128
128
|
}
|
|
129
129
|
|
|
130
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
|
@@ -78,12 +78,23 @@ class MetaLevelUnifier extends Unifier {
|
|
|
78
78
|
nodeQueryA: frameMetavariableNodeQuery,
|
|
79
79
|
nodeQueryB: frameNodeQuery,
|
|
80
80
|
unify: (frameMetavariableNodeA, frameNodeB, substitutions, localContextA, localContextB) => {
|
|
81
|
-
|
|
81
|
+
let frameUnified = false;
|
|
82
82
|
|
|
83
|
-
const
|
|
84
|
-
|
|
83
|
+
const metavariableNode = frameMetavariableNodeA, ///
|
|
84
|
+
metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
|
|
85
|
+
metavariablePresent = localContextA.findMetavariableByMetavariableName(metavariableName);
|
|
85
86
|
|
|
86
|
-
|
|
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
|
+
}
|
|
96
|
+
|
|
97
|
+
return frameUnified;
|
|
87
98
|
}
|
|
88
99
|
},
|
|
89
100
|
{
|
|
@@ -94,12 +105,13 @@ class MetaLevelUnifier extends Unifier {
|
|
|
94
105
|
|
|
95
106
|
const variableNode = termVariableNodeA, ///
|
|
96
107
|
variableName = variableNameFromVariableNode(variableNode),
|
|
97
|
-
|
|
108
|
+
variablePresent = localContextA.isVariablePresentByVariableName(variableName);
|
|
98
109
|
|
|
99
|
-
if (
|
|
100
|
-
const { Term } = shim,
|
|
110
|
+
if (variablePresent !== null) {
|
|
111
|
+
const { Term, Variable } = shim,
|
|
101
112
|
localContext = localContextB, ///
|
|
102
113
|
termNode = termNodeB, ///
|
|
114
|
+
variable = Variable.fromVariableNode(variableNode, localContextA),
|
|
103
115
|
term = Term.fromTermNode(termNode, localContextB);
|
|
104
116
|
|
|
105
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
|
@@ -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,40 +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 unifyMetavariableWithFrame;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _frameForMetavariable = /*#__PURE__*/ _interop_require_default(require("../substitution/frameForMetavariable"));
|
|
12
|
-
var _unify = require("../utilities/unify");
|
|
13
|
-
var _name = require("../utilities/name");
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
function unifyMetavariableWithFrame(metavariableNodeA, frameNodeB, substitutions, localContextA, localContextB) {
|
|
20
|
-
var metavariableUnifiedWithFrame = false;
|
|
21
|
-
var simpleSubstitution = substitutions.findSimpleSubstitutionByMetavariableNode(metavariableNodeA), substitution = simpleSubstitution; ///
|
|
22
|
-
if (substitution !== null) {
|
|
23
|
-
var frameNodeMatches = substitution.matchFrameNode(frameNodeB);
|
|
24
|
-
if (frameNodeMatches) {
|
|
25
|
-
metavariableUnifiedWithFrame = true;
|
|
26
|
-
}
|
|
27
|
-
} else {
|
|
28
|
-
var metavariableNameA = (0, _name.metavariableNameFromMetavariableNode)(metavariableNodeA), metavariableA = localContextA.findMetavariableByMetavariableName(metavariableNameA), metavariableB = (0, _unify.metavariableFromFrameNode)(frameNodeB, localContextB);
|
|
29
|
-
if (metavariableA === metavariableB) {
|
|
30
|
-
metavariableUnifiedWithFrame = true;
|
|
31
|
-
} else {
|
|
32
|
-
var frameNode = frameNodeB, metavariable = metavariableA, frameForMetavariableSubstitution = _frameForMetavariable.default.fromFrameAndMetavariable(frame, metavariable, localContextA, localContextB), substitution1 = frameForMetavariableSubstitution; ///
|
|
33
|
-
substitutions.addSubstitution(substitution1, localContextA, localContextB);
|
|
34
|
-
metavariableUnifiedWithFrame = true;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return metavariableUnifiedWithFrame;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9tZXRhdmFyaWFibGVXaXRoRnJhbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFtZUZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiBmcm9tIFwiLi4vc3Vic3RpdHV0aW9uL2ZyYW1lRm9yTWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG1ldGF2YXJpYWJsZUZyb21GcmFtZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3VuaWZ5XCI7XG5pbXBvcnQge21ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZX0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlV2l0aEZyYW1lKG1ldGF2YXJpYWJsZU5vZGVBLCBmcmFtZU5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aEZyYW1lID0gZmFsc2U7XG5cbiAgY29uc3Qgc2ltcGxlU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kU2ltcGxlU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGVBKSxcbiAgICAgICAgc3Vic3RpdHV0aW9uID0gc2ltcGxlU3Vic3RpdHV0aW9uOyAgLy8vXG5cbiAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGZyYW1lTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb24ubWF0Y2hGcmFtZU5vZGUoZnJhbWVOb2RlQik7XG5cbiAgICBpZiAoZnJhbWVOb2RlTWF0Y2hlcykge1xuICAgICAgbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhGcmFtZSA9IHRydWU7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWVBID0gbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGVBKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVBID0gbG9jYWxDb250ZXh0QS5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWVBKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVCID0gbWV0YXZhcmlhYmxlRnJvbUZyYW1lTm9kZShmcmFtZU5vZGVCLCBsb2NhbENvbnRleHRCKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVBID09PSBtZXRhdmFyaWFibGVCKSB7XG4gICAgICBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aEZyYW1lID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZnJhbWVOb2RlID0gZnJhbWVOb2RlQiwgLy8vXG4gICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGVBLCAvLy9cbiAgICAgICAgICAgIGZyYW1lRm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uID0gRnJhbWVGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24uZnJvbUZyYW1lQW5kTWV0YXZhcmlhYmxlKGZyYW1lLCBtZXRhdmFyaWFibGUsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpLFxuICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gZnJhbWVGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb247ICAvLy9cblxuICAgICAgc3Vic3RpdHV0aW9ucy5hZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhGcmFtZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoRnJhbWU7XG59XG4iXSwibmFtZXMiOlsidW5pZnlNZXRhdmFyaWFibGVXaXRoRnJhbWUiLCJtZXRhdmFyaWFibGVOb2RlQSIsImZyYW1lTm9kZUIiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJtZXRhdmFyaWFibGVVbmlmaWVkV2l0aEZyYW1lIiwic2ltcGxlU3Vic3RpdHV0aW9uIiwiZmluZFNpbXBsZVN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZSIsInN1YnN0aXR1dGlvbiIsImZyYW1lTm9kZU1hdGNoZXMiLCJtYXRjaEZyYW1lTm9kZSIsIm1ldGF2YXJpYWJsZU5hbWVBIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlQSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVCIiwibWV0YXZhcmlhYmxlRnJvbUZyYW1lTm9kZSIsImZyYW1lTm9kZSIsIm1ldGF2YXJpYWJsZSIsImZyYW1lRm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiRnJhbWVGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24iLCJmcm9tRnJhbWVBbmRNZXRhdmFyaWFibGUiLCJmcmFtZSIsImFkZFN1YnN0aXR1dGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUF3QkE7OzsyRUFMcUI7cUJBRUg7b0JBQ1M7Ozs7OztBQUVwQyxTQUFTQSwyQkFBMkJDLGlCQUFpQixFQUFFQyxVQUFVLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhO0lBQzNILElBQUlDLCtCQUErQjtJQUVuQyxJQUFNQyxxQkFBcUJKLGNBQWNLLHdDQUF3QyxDQUFDUCxvQkFDNUVRLGVBQWVGLG9CQUFxQixHQUFHO0lBRTdDLElBQUlFLGlCQUFpQixNQUFNO1FBQ3pCLElBQU1DLG1CQUFtQkQsYUFBYUUsY0FBYyxDQUFDVDtRQUVyRCxJQUFJUSxrQkFBa0I7WUFDcEJKLCtCQUErQjtRQUNqQztJQUNGLE9BQU87UUFDTCxJQUFNTSxvQkFBb0JDLElBQUFBLDBDQUFvQyxFQUFDWixvQkFDekRhLGdCQUFnQlYsY0FBY1csa0NBQWtDLENBQUNILG9CQUNqRUksZ0JBQWdCQyxJQUFBQSxnQ0FBeUIsRUFBQ2YsWUFBWUc7UUFFNUQsSUFBSVMsa0JBQWtCRSxlQUFlO1lBQ25DViwrQkFBK0I7UUFDakMsT0FBTztZQUNMLElBQU1ZLFlBQVloQixZQUNaaUIsZUFBZUwsZUFDZk0sbUNBQW1DQyw2QkFBZ0MsQ0FBQ0Msd0JBQXdCLENBQUNDLE9BQU9KLGNBQWNmLGVBQWVDLGdCQUNqSUksZ0JBQWVXLGtDQUFtQyxHQUFHO1lBRTNEakIsY0FBY3FCLGVBQWUsQ0FBQ2YsZUFBY0wsZUFBZUM7WUFFM0RDLCtCQUErQjtRQUNqQztJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9
|
|
@@ -1,31 +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 unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/metaLevel"));
|
|
12
|
-
function _interop_require_default(obj) {
|
|
13
|
-
return obj && obj.__esModule ? obj : {
|
|
14
|
-
default: obj
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
function unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement(simpleSubstitutionStatementNode, complexSubstitutionStatementNode, substitutions, localContextA, localContextB) {
|
|
18
|
-
var simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement;
|
|
19
|
-
var simpleSubstitutionStatementString = localContextB.nodeAsString(simpleSubstitutionStatementNode), complexSubstitutionStatementString = localContextB.nodeAsString(complexSubstitutionStatementNode);
|
|
20
|
-
localContextB.trace("Unifying the simple substitution's '".concat(simpleSubstitutionStatementString, "' statement with the complex substitution's '").concat(complexSubstitutionStatementString, "' statement..."), simpleSubstitutionStatementNode);
|
|
21
|
-
var nodeA = complexSubstitutionStatementNode, nodeB = simpleSubstitutionStatementNode; ///
|
|
22
|
-
localContextA = localContextB; ///
|
|
23
|
-
var unifiedAtMetaLevel = _metaLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
|
|
24
|
-
simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement = unifiedAtMetaLevel; ///
|
|
25
|
-
if (simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement) {
|
|
26
|
-
localContextB.trace("...unified the simple substitution's '".concat(simpleSubstitutionStatementString, "' statement with the complex substitution's '").concat(complexSubstitutionStatementString, "' statement."), simpleSubstitutionStatementNode);
|
|
27
|
-
}
|
|
28
|
-
return simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGFMZXZlbFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YUxldmVsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5Q29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFdpdGhTaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnQoc2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSwgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgbGV0IHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudDtcblxuICBjb25zdCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHRCLm5vZGVBc1N0cmluZyhzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dEIubm9kZUFzU3RyaW5nKGNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHRCLnRyYWNlKGBVbmlmeWluZyB0aGUgc2ltcGxlIHN1YnN0aXR1dGlvbidzICcke3NpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBjb21wbGV4IHN1YnN0aXR1dGlvbidzICcke2NvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gLCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBub2RlQSA9IGNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIG5vZGVCID0gc2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZTsgIC8vL1xuXG4gIGxvY2FsQ29udGV4dEEgPSBsb2NhbENvbnRleHRCOyAgLy8vXG5cbiAgY29uc3QgdW5pZmllZEF0TWV0YUxldmVsID0gbWV0YUxldmVsVW5pZmllci51bmlmeShub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gIHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudCA9IHVuaWZpZWRBdE1ldGFMZXZlbDsgIC8vL1xuXG4gIGlmIChzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRVbmlmaWVkV2l0aENvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnQpIHtcbiAgICBsb2NhbENvbnRleHRCLnRyYWNlKGAuLi51bmlmaWVkIHRoZSBzaW1wbGUgc3Vic3RpdHV0aW9uJ3MgJyR7c2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlIGNvbXBsZXggc3Vic3RpdHV0aW9uJ3MgJyR7Y29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRVbmlmaWVkV2l0aENvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnQ7XG59XG4iXSwibmFtZXMiOlsidW5pZnlDb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50V2l0aFNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudCIsInNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUiLCJjb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudCIsInNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmciLCJ0cmFjZSIsIm5vZGVBIiwibm9kZUIiLCJ1bmlmaWVkQXRNZXRhTGV2ZWwiLCJtZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBd0JBOzs7Z0VBRks7Ozs7OztBQUVkLFNBQVNBLGlFQUFpRUMsK0JBQStCLEVBQUVDLGdDQUFnQyxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUNyTSxJQUFJQztJQUVKLElBQU1DLG9DQUFvQ0YsY0FBY0csWUFBWSxDQUFDUCxrQ0FDL0RRLHFDQUFxQ0osY0FBY0csWUFBWSxDQUFDTjtJQUV0RUcsY0FBY0ssS0FBSyxDQUFDLEFBQUMsdUNBQXVIRCxPQUFqRkYsbUNBQWtDLGlEQUFrRixPQUFuQ0Usb0NBQW1DLG1CQUFpQlI7SUFFaE0sSUFBTVUsUUFBUVQsa0NBQ1JVLFFBQVFYLGlDQUFrQyxHQUFHO0lBRW5ERyxnQkFBZ0JDLGVBQWdCLEdBQUc7SUFFbkMsSUFBTVEscUJBQXFCQyxrQkFBZ0IsQ0FBQ0MsS0FBSyxDQUFDSixPQUFPQyxPQUFPVCxlQUFlQyxlQUFlQztJQUU5RkMscUVBQXFFTyxvQkFBcUIsR0FBRztJQUU3RixJQUFJUCxvRUFBb0U7UUFDdEVELGNBQWNLLEtBQUssQ0FBQyxBQUFDLHlDQUF5SEQsT0FBakZGLG1DQUFrQyxpREFBa0YsT0FBbkNFLG9DQUFtQyxpQkFBZVI7SUFDbE07SUFFQSxPQUFPSztBQUNUIn0=
|
|
@@ -1,83 +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 verifyDeclaration;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
|
-
var _reference = /*#__PURE__*/ _interop_require_default(require("../reference"));
|
|
13
|
-
var _declaration = /*#__PURE__*/ _interop_require_default(require("../declaration"));
|
|
14
|
-
var _metavariableGivenMetaType = /*#__PURE__*/ _interop_require_default(require("../verify/metavariableGivenMetaType"));
|
|
15
|
-
var _query = require("../utilities/query");
|
|
16
|
-
var _metaType = require("../metaType");
|
|
17
|
-
function _interop_require_default(obj) {
|
|
18
|
-
return obj && obj.__esModule ? obj : {
|
|
19
|
-
default: obj
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
var statementNodeQuery = (0, _query.nodeQuery)("/declaration/statement"), metavariableNodeQuery = (0, _query.nodeQuery)("/declaration/reference/metavariable"); ///
|
|
23
|
-
var verifyDeclarationFunctions = [
|
|
24
|
-
verifyDerivedDeclaration,
|
|
25
|
-
verifyStatedDeclaration
|
|
26
|
-
];
|
|
27
|
-
function verifyDeclaration(declarationNode, declarations, stated, localContext) {
|
|
28
|
-
var declarationVerified;
|
|
29
|
-
var declarationString = localContext.nodeAsString(declarationNode);
|
|
30
|
-
localContext.trace("Verifying the '".concat(declarationString, "' declaration..."), declarationNode);
|
|
31
|
-
declarationVerified = verifyDeclarationFunctions.some(function(verifyDeclarationFunction) {
|
|
32
|
-
var declarationVerified = verifyDeclarationFunction(declarationNode, declarations, stated, localContext);
|
|
33
|
-
if (declarationVerified) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
if (declarationVerified) {
|
|
38
|
-
localContext.debug("...verified the '".concat(declarationString, "' declaration."), declarationNode);
|
|
39
|
-
}
|
|
40
|
-
return declarationVerified;
|
|
41
|
-
}
|
|
42
|
-
function verifyDerivedDeclaration(declarationNode, declarations, stated, localContext) {
|
|
43
|
-
var derivedDeclarationVerified;
|
|
44
|
-
if (!stated) {
|
|
45
|
-
var declarationString = localContext.nodeAsString(declarationNode);
|
|
46
|
-
localContext.trace("Verifying the '".concat(declarationString, "' derived declaration..."), declarationNode);
|
|
47
|
-
var metaType = _metaType.referenceMetaType, metavariableNode = metavariableNodeQuery(declarationNode), metavariableVerifiedGivenMetaType = (0, _metavariableGivenMetaType.default)(metavariableNode, metaType, localContext);
|
|
48
|
-
if (metavariableVerifiedGivenMetaType) {
|
|
49
|
-
var verifyStatement = _shim.default.verifyStatement, _$stated = true, assignments = null, statementNode = statementNodeQuery(declarationNode), statementVerified = verifyStatement(statementNode, assignments, _$stated, localContext);
|
|
50
|
-
if (statementVerified) {
|
|
51
|
-
var reference = _reference.default.fromMetavariableNode(metavariableNode), declaration = _declaration.default.fromReferenceAndStatementNode(reference, statementNode);
|
|
52
|
-
declarations.push(declaration);
|
|
53
|
-
derivedDeclarationVerified = true;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (derivedDeclarationVerified) {
|
|
57
|
-
localContext.debug("...verified the '".concat(declarationString, "' derived declaration."), declarationNode);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return derivedDeclarationVerified;
|
|
61
|
-
}
|
|
62
|
-
function verifyStatedDeclaration(declarationNode, declarations, stated, localContext) {
|
|
63
|
-
var statedDeclarationVerified = false;
|
|
64
|
-
if (stated) {
|
|
65
|
-
var declarationString = localContext.nodeAsString(declarationNode);
|
|
66
|
-
localContext.trace("Verifying the '".concat(declarationString, "' stated declaration..."), declarationNode);
|
|
67
|
-
var metaType = _metaType.referenceMetaType, metavariableNode = metavariableNodeQuery(declarationNode), metavariableVerifiedGivenMetaType = (0, _metavariableGivenMetaType.default)(metavariableNode, metaType, localContext);
|
|
68
|
-
if (metavariableVerifiedGivenMetaType) {
|
|
69
|
-
var verifyStatement = _shim.default.verifyStatement, _$stated = true, assignments = null, statementNode = statementNodeQuery(declarationNode), statementVerified = verifyStatement(statementNode, assignments, _$stated, localContext);
|
|
70
|
-
if (statementVerified) {
|
|
71
|
-
var reference = _reference.default.fromMetavariableNode(metavariableNode), declaration = _declaration.default.fromReferenceAndStatementNode(reference, statementNode);
|
|
72
|
-
declarations.push(declaration);
|
|
73
|
-
statedDeclarationVerified = true;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (statedDeclarationVerified) {
|
|
77
|
-
localContext.debug("...verified the '".concat(declarationString, "' stated declaration."), declarationNode);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return statedDeclarationVerified;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuLi9zaGltXCI7XG5pbXBvcnQgUmVmZXJlbmNlIGZyb20gXCIuLi9yZWZlcmVuY2VcIjtcbmltcG9ydCBEZWNsYXJhdGlvbiBmcm9tIFwiLi4vZGVjbGFyYXRpb25cIlxuaW1wb3J0IHZlcmlmeU1ldGF2YXJpYWJsZUdpdmVuTWV0YVR5cGUgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhdmFyaWFibGVHaXZlbk1ldGFUeXBlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IHJlZmVyZW5jZU1ldGFUeXBlIH0gZnJvbSBcIi4uL21ldGFUeXBlXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kZWNsYXJhdGlvbi9zdGF0ZW1lbnRcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZGVjbGFyYXRpb24vcmVmZXJlbmNlL21ldGF2YXJpYWJsZVwiKTsgLy8vXG5cbmNvbnN0IHZlcmlmeURlY2xhcmF0aW9uRnVuY3Rpb25zID0gW1xuICB2ZXJpZnlEZXJpdmVkRGVjbGFyYXRpb24sXG4gIHZlcmlmeVN0YXRlZERlY2xhcmF0aW9uXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlEZWNsYXJhdGlvbihkZWNsYXJhdGlvbk5vZGUsIGRlY2xhcmF0aW9ucywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlY2xhcmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgZGVjbGFyYXRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2RlY2xhcmF0aW9uU3RyaW5nfScgZGVjbGFyYXRpb24uLi5gLCBkZWNsYXJhdGlvbk5vZGUpO1xuXG4gIGRlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlEZWNsYXJhdGlvbkZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlEZWNsYXJhdGlvbkZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25WZXJpZmllZCA9IHZlcmlmeURlY2xhcmF0aW9uRnVuY3Rpb24oZGVjbGFyYXRpb25Ob2RlLCBkZWNsYXJhdGlvbnMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChkZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChkZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZGVjbGFyYXRpb25TdHJpbmd9JyBkZWNsYXJhdGlvbi5gLCBkZWNsYXJhdGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWREZWNsYXJhdGlvbihkZWNsYXJhdGlvbk5vZGUsIGRlY2xhcmF0aW9ucywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWREZWNsYXJhdGlvblZlcmlmaWVkO1xuXG4gIGlmICghc3RhdGVkKSB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZGVjbGFyYXRpb25TdHJpbmd9JyBkZXJpdmVkIGRlY2xhcmF0aW9uLi4uYCwgZGVjbGFyYXRpb25Ob2RlKTtcblxuICAgIGNvbnN0IG1ldGFUeXBlID0gcmVmZXJlbmNlTWV0YVR5cGUsIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkoZGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZEdpdmVuTWV0YVR5cGUgPSB2ZXJpZnlNZXRhdmFyaWFibGVHaXZlbk1ldGFUeXBlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVkR2l2ZW5NZXRhVHlwZSkge1xuICAgICAgY29uc3QgeyB2ZXJpZnlTdGF0ZW1lbnQgfSA9IHNoaW0sXG4gICAgICAgICAgICBzdGF0ZWQgPSB0cnVlLFxuICAgICAgICAgICAgYXNzaWdubWVudHMgPSBudWxsLFxuICAgICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShkZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IFJlZmVyZW5jZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAgZGVjbGFyYXRpb24gPSBEZWNsYXJhdGlvbi5mcm9tUmVmZXJlbmNlQW5kU3RhdGVtZW50Tm9kZShyZWZlcmVuY2UsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgICAgIGRlY2xhcmF0aW9ucy5wdXNoKGRlY2xhcmF0aW9uKTtcblxuICAgICAgICBkZXJpdmVkRGVjbGFyYXRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlcml2ZWREZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtkZWNsYXJhdGlvblN0cmluZ30nIGRlcml2ZWQgZGVjbGFyYXRpb24uYCwgZGVjbGFyYXRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZERlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZERlY2xhcmF0aW9uKGRlY2xhcmF0aW9uTm9kZSwgZGVjbGFyYXRpb25zLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkRGVjbGFyYXRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChzdGF0ZWQpIHtcbiAgICBjb25zdCBkZWNsYXJhdGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZGVjbGFyYXRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtkZWNsYXJhdGlvblN0cmluZ30nIHN0YXRlZCBkZWNsYXJhdGlvbi4uLmAsIGRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBtZXRhVHlwZSA9IHJlZmVyZW5jZU1ldGFUeXBlLCAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGRlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWRHaXZlbk1ldGFUeXBlID0gdmVyaWZ5TWV0YXZhcmlhYmxlR2l2ZW5NZXRhVHlwZShtZXRhdmFyaWFibGVOb2RlLCBtZXRhVHlwZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZEdpdmVuTWV0YVR5cGUpIHtcbiAgICAgIGNvbnN0IHsgdmVyaWZ5U3RhdGVtZW50IH0gPSBzaGltLFxuICAgICAgICAgICAgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gbnVsbCxcbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkoZGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBSZWZlcmVuY2UuZnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgIGRlY2xhcmF0aW9uID0gRGVjbGFyYXRpb24uZnJvbVJlZmVyZW5jZUFuZFN0YXRlbWVudE5vZGUocmVmZXJlbmNlLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBkZWNsYXJhdGlvbnMucHVzaChkZWNsYXJhdGlvbik7XG5cbiAgICAgICAgc3RhdGVkRGVjbGFyYXRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlZERlY2xhcmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2RlY2xhcmF0aW9uU3RyaW5nfScgc3RhdGVkIGRlY2xhcmF0aW9uLmAsIGRlY2xhcmF0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZERlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RGVjbGFyYXRpb24iLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJ2ZXJpZnlEZWNsYXJhdGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWREZWNsYXJhdGlvbiIsInZlcmlmeVN0YXRlZERlY2xhcmF0aW9uIiwiZGVjbGFyYXRpb25Ob2RlIiwiZGVjbGFyYXRpb25zIiwic3RhdGVkIiwibG9jYWxDb250ZXh0IiwiZGVjbGFyYXRpb25WZXJpZmllZCIsImRlY2xhcmF0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJzb21lIiwidmVyaWZ5RGVjbGFyYXRpb25GdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZERlY2xhcmF0aW9uVmVyaWZpZWQiLCJtZXRhVHlwZSIsInJlZmVyZW5jZU1ldGFUeXBlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkR2l2ZW5NZXRhVHlwZSIsInZlcmlmeU1ldGF2YXJpYWJsZUdpdmVuTWV0YVR5cGUiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzaGltIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VmVyaWZpZWQiLCJyZWZlcmVuY2UiLCJSZWZlcmVuY2UiLCJmcm9tTWV0YXZhcmlhYmxlTm9kZSIsImRlY2xhcmF0aW9uIiwiRGVjbGFyYXRpb24iLCJmcm9tUmVmZXJlbmNlQW5kU3RhdGVtZW50Tm9kZSIsInB1c2giLCJzdGF0ZWREZWNsYXJhdGlvblZlcmlmaWVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrQkE7OztlQUF3QkE7OzsyREFoQlA7Z0VBQ0s7a0VBQ0U7Z0ZBQ29CO3FCQUVsQjt3QkFDUTs7Ozs7O0FBRWxDLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQywyQkFDL0JDLHdCQUF3QkQsSUFBQUEsZ0JBQVMsRUFBQyx3Q0FBd0MsR0FBRztBQUVuRixJQUFNRSw2QkFBNkI7SUFDakNDO0lBQ0FDO0NBQ0Q7QUFFYyxTQUFTTixrQkFBa0JPLGVBQWUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLEVBQUVDLFlBQVk7SUFDM0YsSUFBSUM7SUFFSixJQUFNQyxvQkFBb0JGLGFBQWFHLFlBQVksQ0FBQ047SUFFcERHLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGtCQUFtQyxPQUFsQkYsbUJBQWtCLHFCQUFtQkw7SUFFMUVJLHNCQUFzQlAsMkJBQTJCVyxJQUFJLENBQUMsU0FBQ0M7UUFDckQsSUFBTUwsc0JBQXNCSywwQkFBMEJULGlCQUFpQkMsY0FBY0MsUUFBUUM7UUFFN0YsSUFBSUMscUJBQXFCO1lBQ3ZCLE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSUEscUJBQXFCO1FBQ3ZCRCxhQUFhTyxLQUFLLENBQUMsQUFBQyxvQkFBcUMsT0FBbEJMLG1CQUFrQixtQkFBaUJMO0lBQzVFO0lBRUEsT0FBT0k7QUFDVDtBQUVBLFNBQVNOLHlCQUF5QkUsZUFBZSxFQUFFQyxZQUFZLEVBQUVDLE1BQU0sRUFBRUMsWUFBWTtJQUNuRixJQUFJUTtJQUVKLElBQUksQ0FBQ1QsUUFBUTtRQUNYLElBQU1HLG9CQUFvQkYsYUFBYUcsWUFBWSxDQUFDTjtRQUVwREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQW1DLE9BQWxCRixtQkFBa0IsNkJBQTJCTDtRQUVsRixJQUFNWSxXQUFXQywyQkFBaUIsRUFDNUJDLG1CQUFtQmxCLHNCQUFzQkksa0JBQ3pDZSxvQ0FBb0NDLElBQUFBLGtDQUErQixFQUFDRixrQkFBa0JGLFVBQVVUO1FBRXRHLElBQUlZLG1DQUFtQztZQUNyQyxJQUFNLEFBQUVFLGtCQUFvQkMsYUFBSSxDQUF4QkQsaUJBQ0ZmLFdBQVMsTUFDVGlCLGNBQWMsTUFDZEMsZ0JBQWdCMUIsbUJBQW1CTSxrQkFDbkNxQixvQkFBb0JKLGdCQUFnQkcsZUFBZUQsYUFBYWpCLFVBQVFDO1lBRTlFLElBQUlrQixtQkFBbUI7Z0JBQ3JCLElBQU1DLFlBQVlDLGtCQUFTLENBQUNDLG9CQUFvQixDQUFDVixtQkFDM0NXLGNBQWNDLG9CQUFXLENBQUNDLDZCQUE2QixDQUFDTCxXQUFXRjtnQkFFekVuQixhQUFhMkIsSUFBSSxDQUFDSDtnQkFFbEJkLDZCQUE2QjtZQUMvQjtRQUNGO1FBRUEsSUFBSUEsNEJBQTRCO1lBQzlCUixhQUFhTyxLQUFLLENBQUMsQUFBQyxvQkFBcUMsT0FBbEJMLG1CQUFrQiwyQkFBeUJMO1FBQ3BGO0lBQ0Y7SUFFQSxPQUFPVztBQUNUO0FBRUEsU0FBU1osd0JBQXdCQyxlQUFlLEVBQUVDLFlBQVksRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ2xGLElBQUkwQiw0QkFBNEI7SUFFaEMsSUFBSTNCLFFBQVE7UUFDVixJQUFNRyxvQkFBb0JGLGFBQWFHLFlBQVksQ0FBQ047UUFFcERHLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGtCQUFtQyxPQUFsQkYsbUJBQWtCLDRCQUEwQkw7UUFFakYsSUFBTVksV0FBV0MsMkJBQWlCLEVBQzVCQyxtQkFBbUJsQixzQkFBc0JJLGtCQUN6Q2Usb0NBQW9DQyxJQUFBQSxrQ0FBK0IsRUFBQ0Ysa0JBQWtCRixVQUFVVDtRQUV0RyxJQUFJWSxtQ0FBbUM7WUFDckMsSUFBTSxBQUFFRSxrQkFBb0JDLGFBQUksQ0FBeEJELGlCQUNGZixXQUFTLE1BQ1RpQixjQUFjLE1BQ2RDLGdCQUFnQjFCLG1CQUFtQk0sa0JBQ25DcUIsb0JBQW9CSixnQkFBZ0JHLGVBQWVELGFBQWFqQixVQUFRQztZQUU5RSxJQUFJa0IsbUJBQW1CO2dCQUNyQixJQUFNQyxZQUFZQyxrQkFBUyxDQUFDQyxvQkFBb0IsQ0FBQ1YsbUJBQzNDVyxjQUFjQyxvQkFBVyxDQUFDQyw2QkFBNkIsQ0FBQ0wsV0FBV0Y7Z0JBRXpFbkIsYUFBYTJCLElBQUksQ0FBQ0g7Z0JBRWxCSSw0QkFBNEI7WUFDOUI7UUFDRjtRQUVBLElBQUlBLDJCQUEyQjtZQUM3QjFCLGFBQWFPLEtBQUssQ0FBQyxBQUFDLG9CQUFxQyxPQUFsQkwsbUJBQWtCLDBCQUF3Qkw7UUFDbkY7SUFDRjtJQUVBLE9BQU82QjtBQUNUIn0=
|