occam-verify-cli 1.0.781 → 1.0.785

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 (45) hide show
  1. package/lib/context/branching.js +1 -1
  2. package/lib/context/ephemeral.js +22 -11
  3. package/lib/context/file/nominal.js +4 -4
  4. package/lib/context/proof.js +45 -40
  5. package/lib/context.js +16 -20
  6. package/lib/element/assumption.js +47 -17
  7. package/lib/element/frame.js +1 -39
  8. package/lib/element/judgement.js +33 -5
  9. package/lib/element/metavariable.js +7 -7
  10. package/lib/element/topLevelMetaAssertion.js +9 -9
  11. package/lib/nonTerminalNodeMap.js +1 -3
  12. package/lib/preamble.js +1 -2
  13. package/lib/process/instantiate.js +2 -8
  14. package/lib/process/unify.js +72 -5
  15. package/lib/ruleNames.js +1 -5
  16. package/lib/utilities/context.js +30 -10
  17. package/lib/utilities/element.js +18 -41
  18. package/lib/utilities/json.js +1 -23
  19. package/lib/utilities/string.js +8 -19
  20. package/lib/utilities/unification.js +8 -6
  21. package/package.json +4 -4
  22. package/src/context/branching.js +1 -1
  23. package/src/context/ephemeral.js +26 -10
  24. package/src/context/file/nominal.js +3 -3
  25. package/src/context/proof.js +52 -46
  26. package/src/context.js +21 -27
  27. package/src/element/assumption.js +72 -23
  28. package/src/element/frame.js +1 -61
  29. package/src/element/judgement.js +45 -5
  30. package/src/element/metavariable.js +6 -9
  31. package/src/element/topLevelMetaAssertion.js +13 -13
  32. package/src/nonTerminalNodeMap.js +0 -3
  33. package/src/preamble.js +0 -1
  34. package/src/process/instantiate.js +2 -6
  35. package/src/process/unify.js +117 -7
  36. package/src/ruleNames.js +0 -1
  37. package/src/utilities/context.js +43 -11
  38. package/src/utilities/element.js +26 -56
  39. package/src/utilities/json.js +0 -26
  40. package/src/utilities/string.js +8 -22
  41. package/src/utilities/unification.js +8 -8
  42. package/lib/element/substitution/metaLevel.js +0 -148
  43. package/lib/node/substitution/metaLevel.js +0 -40
  44. package/src/element/substitution/metaLevel.js +0 -212
  45. package/src/node/substitution/metaLevel.js +0 -37
@@ -91,13 +91,7 @@ export function nominally(innerFunction) {
91
91
  }
92
92
 
93
93
  export function simplify(innerFunction, context) {
94
- let contextExtraneousContext = isContextExtraneousContext(context);
95
-
96
- while (contextExtraneousContext) {
97
- context = context.getContext();
98
-
99
- contextExtraneousContext = isContextExtraneousContext(context);
100
- }
94
+ context = removeExtraneousContexts(context);
101
95
 
102
96
  const ephemeralContext = EphemeralContext.fromNothing(context);
103
97
 
@@ -124,14 +118,14 @@ export function unserialise(innerFunction, json, context) {
124
118
  return innerFunction(json, context);
125
119
  }
126
120
 
127
- export async function asyncRestrict(innerFunction, metaLevelSubstitutions, context) {
121
+ export async function asyncRestrict(innerFunction, assumptions, context) {
128
122
  if (context === undefined) {
129
- context = metaLevelSubstitutions; ///
123
+ context = assumptions; ///
130
124
 
131
- metaLevelSubstitutions = null;
125
+ assumptions = null;
132
126
  }
133
127
 
134
- const proofContext = ProofContext.fromMetaLevelSubstitutions(metaLevelSubstitutions, context);
128
+ const proofContext = ProofContext.fromAssumptions(assumptions, context);
135
129
 
136
130
  context = proofContext; ///
137
131
 
@@ -158,3 +152,41 @@ function isContextExtraneousContext(context) {
158
152
 
159
153
  return contextExtraneousContext;
160
154
  }
155
+
156
+ function removeExtraneousContexts(context) {
157
+ context = trimExtraneousContexts(context);
158
+
159
+ const firstContext = context; ///
160
+
161
+ let currentContext = context; ///
162
+
163
+ while (currentContext !== null) {
164
+ context = currentContext.getContext();
165
+
166
+ context = trimExtraneousContexts(context);
167
+
168
+ currentContext.setContext(context);
169
+
170
+ currentContext = context; ///
171
+ }
172
+
173
+ context = firstContext; ///
174
+
175
+ return context;
176
+ }
177
+
178
+ function trimExtraneousContexts(context) {
179
+ let contextExtraneousContext = isContextExtraneousContext(context);
180
+
181
+ while (contextExtraneousContext) {
182
+ context = context.getContext();
183
+
184
+ if (context === null) {
185
+ break;
186
+ }
187
+
188
+ contextExtraneousContext = isContextExtraneousContext(context);
189
+ }
190
+
191
+ return context;
192
+ }
@@ -348,11 +348,11 @@ export function metaLemmaFromMetaLemmaNode(metaLemmaNode, context) {
348
348
  label = labelFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
349
349
  deduction = deductionFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
350
350
  suppositions = suppositionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
351
- metaLevelSubstitutions = metaLevelSubstitutionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
351
+ assumptions = assumptionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
352
352
  topLevelMetaAssertionString = topLevelMetaAssertionStringFromLabelSuppositionsAndDeduction(label, suppositions, deduction),
353
353
  node = metaLemmaMetathoremNode, ///
354
354
  string = topLevelMetaAssertionString, ///
355
- metaLemma = new MetaLemma(context, string, node, label, suppositions, deduction, proof, metaLevelSubstitutions);
355
+ metaLemma = new MetaLemma(context, string, node, label, suppositions, deduction, proof, assumptions);
356
356
 
357
357
  return metaLemma;
358
358
  }
@@ -437,20 +437,6 @@ export function conclusionFromConclusionNode(conclusionNode, context) {
437
437
  return conclusion;
438
438
  }
439
439
 
440
- export function assumptionFromAssumptionNode(assumptionNode, context) {
441
- const { Assumption } = elements,
442
- node = assumptionNode, ///
443
- string = context.nodeAsString(node),
444
- reference = referenceFromAssumptionNode(assumptionNode, context),
445
- statement = statementFromAssumptionNode(assumptionNode, context);
446
-
447
- context = null;
448
-
449
- const assumption = new Assumption(context, string, node, reference, statement);
450
-
451
- return assumption;
452
- }
453
-
454
440
  export function derivationFromDerivationNode(derivationNode, context) {
455
441
  const { Derivation } = elements,
456
442
  node = derivationNode, ///
@@ -478,6 +464,20 @@ export function typePrefixFromTypePrefixNode(typePrefixNode, context) {
478
464
  return typePrefix;
479
465
  }
480
466
 
467
+ export function assumptionFromAssumptionNode(assumptionNode, context) {
468
+ const { Assumption } = elements,
469
+ node = assumptionNode, ///
470
+ string = context.nodeAsString(node),
471
+ reference = referenceFromAssumptionNode(assumptionNode, context),
472
+ statement = statementFromAssumptionNode(assumptionNode, context);
473
+
474
+ context = null;
475
+
476
+ const assumption = new Assumption(context, string, node, reference, statement);
477
+
478
+ return assumption;
479
+ }
480
+
481
481
  export function constructorFromConstructorNode(constructorNode, context) {
482
482
  const { Constructor } = elements,
483
483
  node = constructorNode, ///
@@ -525,11 +525,11 @@ export function metatheoremFromMetatheoremNode(metatheoremNode, context) {
525
525
  label = labelFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
526
526
  deduction = deductionFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
527
527
  suppositions = suppositionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
528
- metaLevelSubstitutions = metaLevelSubstitutionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
528
+ assumptions = assumptionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
529
529
  topLevelMetaAssertionString = topLevelMetaAssertionStringFromLabelSuppositionsAndDeduction(label, suppositions, deduction),
530
530
  node = metaLemmaMetathoremNode, ///
531
531
  string = topLevelMetaAssertionString, ///
532
- metatheorem = new Metatheorem(context, string, node, label, suppositions, deduction, proof, metaLevelSubstitutions);
532
+ metatheorem = new Metatheorem(context, string, node, label, suppositions, deduction, proof, assumptions);
533
533
 
534
534
  return metatheorem;
535
535
  }
@@ -788,21 +788,6 @@ export function statementSubstitutionFromStatementSubstitutionNode(statementSubs
788
788
  return statementSubstitution;
789
789
  }
790
790
 
791
- export function metaLevelSubstitutionFromMetaLevelSubstitutionNode(metaLevelSubstitutionNode, context) {
792
- const { MetaLevelSubstitution } = elements,
793
- node = metaLevelSubstitutionNode, ///
794
- string = context.nodeAsString(node),
795
- targetReference = targetReferenceFromMetaLevelSubstitutionNode(metaLevelSubstitutionNode, context),
796
- replacementStatement = replacementStatementFromMetaLevelSubstitutionNode(metaLevelSubstitutionNode, context),
797
- ephemeralContext = context.retrieveEphemeralContext();
798
-
799
- context = ephemeralContext; ///
800
-
801
- const metaLevelSubstitution = new MetaLevelSubstitution(context, string, node, targetReference, replacementStatement);
802
-
803
- return metaLevelSubstitution;
804
- }
805
-
806
791
  export function constructorDeclarationFromConstructorDeclarationNode(constructorDeclarationNode, context) {
807
792
  const { ConstructorDeclaration } = elements,
808
793
  node = constructorDeclarationNode, ///
@@ -1813,6 +1798,12 @@ export function metaTypeFromMetavariableDeclarationNode(metavariableDeclarationN
1813
1798
  return metaType;
1814
1799
  }
1815
1800
 
1801
+ export function assumptionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context) {
1802
+ const assumptions = [];
1803
+
1804
+ return assumptions;
1805
+ }
1806
+
1816
1807
  export function provisionalFromSimpleTypeDeclarationNode(simpleTypeDeclarationNode, context) {
1817
1808
  const provisional = simpleTypeDeclarationNode.isProvisional();
1818
1809
 
@@ -1891,17 +1882,9 @@ export function metavariableFromMetavariableDeclarationNode(metavariableDeclarat
1891
1882
  export function targetReferenceFromReferenceSubstitutionNode(referenceSubstitutionNode, context) {
1892
1883
  const targetReferenceNode = referenceSubstitutionNode.getTargetReferenceNode(),
1893
1884
  targetReferenceString = context.nodeAsString(targetReferenceNode),
1894
- targetRefernece = referenceFromReferenceString(targetReferenceString, context);
1885
+ targetReference = referenceFromReferenceString(targetReferenceString, context);
1895
1886
 
1896
- return targetRefernece;
1897
- }
1898
-
1899
- export function targetReferenceFromMetaLevelSubstitutionNode(metaLevelSubstitutionNode, context) {
1900
- const targetReferenceNode = metaLevelSubstitutionNode.getTargetReferenceNode(),
1901
- targetReferenceString = context.nodeAsString(targetReferenceNode),
1902
- targetRefernece = referenceFromReferenceString(targetReferenceString, context);
1903
-
1904
- return targetRefernece;
1887
+ return targetReference;
1905
1888
  }
1906
1889
 
1907
1890
  export function targetStatementFromStatementSubstitutionNode(statementSubstitutionNode, context) {
@@ -1950,19 +1933,6 @@ export function replacementStatementFromStatementSubstitutionNode(statementSubst
1950
1933
  return replacementStatement;
1951
1934
  }
1952
1935
 
1953
- export function replacementStatementFromMetaLevelSubstitutionNode(metaLevelSubstitutionNode, context) {
1954
- const replacementStatementNode = metaLevelSubstitutionNode.getReplacementStatementNode(),
1955
- replacementStatement = statementFromStatementNode(replacementStatementNode, context);
1956
-
1957
- return replacementStatement;
1958
- }
1959
-
1960
- export function metaLevelSubstitutionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context) {
1961
- const metaLevelSubstitutions = [];
1962
-
1963
- return metaLevelSubstitutions;
1964
- }
1965
-
1966
1936
  export function termsFromTermNodes(termNodes, context) {
1967
1937
  const terms = termNodes.map((termNode) => {
1968
1938
  const term = termFromTermNode(termNode, context);
@@ -703,22 +703,6 @@ export function propertyRelationsFromJSON(json, context) {
703
703
  return propertyRelations;
704
704
  }
705
705
 
706
- export function metaLevelSubstitutionsFromJSON(json, context) {
707
- let { metaLevelSubstitutions } = json; ///
708
-
709
- const { MetaLevelSubstitution } = elements,
710
- metaLevelSubstitutionsJSON = metaLevelSubstitutions; ///
711
-
712
- metaLevelSubstitutions = metaLevelSubstitutionsJSON.map((metaLevelSubstitutionJSON) => {
713
- const json = metaLevelSubstitutionJSON, ///
714
- metaLevelSubstitution = MetaLevelSubstitution.fromJSON(json, context);
715
-
716
- return metaLevelSubstitution;
717
- });
718
-
719
- return metaLevelSubstitutions;
720
- }
721
-
722
706
  export function nameToNameJSON(name) {
723
707
  const nameJSON = name; ///
724
708
 
@@ -1127,16 +1111,6 @@ export function propertyRelationsToPropertyRelationsJSON(propertyRelations) {
1127
1111
  return propertyRelationsJSON;
1128
1112
  }
1129
1113
 
1130
- export function metaLevelSubstitutionsToMetaLevelSubstitutionsJSON(metaLevelSubstitutions) {
1131
- const metaLevelSubstitutionsJSON = metaLevelSubstitutions.map((metaLevelSubstitution) => {
1132
- const metaLevelSubstitutionJSON = metaLevelSubstitution.toJSON();
1133
-
1134
- return metaLevelSubstitutionJSON;
1135
- });
1136
-
1137
- return metaLevelSubstitutionsJSON;
1138
- }
1139
-
1140
1114
  function findTypeByName(name, context) {
1141
1115
  const typeName = name, ///
1142
1116
  type = context.findTypeByTypeName(typeName);
@@ -117,20 +117,6 @@ export function suppositionsStringFromSuppositions(suppositions) {
117
117
  return suppositionsString;
118
118
  }
119
119
 
120
- export function metaLevelSubstitutionsStringFromMetaLevelSubstitutions(metaLevelSubstitutions) {
121
- const metaLevelSubstitutionsString = metaLevelSubstitutions.reduce((metaLevelSubstitutionsString, metaLevelSubstitution) => {
122
- const metaLevelSubstitutionString = metaLevelSubstitution.getString();
123
-
124
- metaLevelSubstitutionsString = (metaLevelSubstitutionsString === null) ?
125
- metaLevelSubstitutionString: ///
126
- `${metaLevelSubstitutionsString}, ${metaLevelSubstitutionString}`;
127
-
128
- return metaLevelSubstitutionsString;
129
- }, null);
130
-
131
- return metaLevelSubstitutionsString;
132
- }
133
-
134
120
  export function signatureStringFromTerms(terms) {
135
121
  const termsString = termsStringFromTerms(terms),
136
122
  signatureString = `[${termsString}]`;
@@ -151,6 +137,14 @@ export function typeStringFromNominalTypeName(nominalTypeName) {
151
137
  return typeString;
152
138
  }
153
139
 
140
+ export function assumptionStringFromStatementAndReference(statement, reference) {
141
+ const statementString = statement.getString(),
142
+ referneceString = reference.getString(),
143
+ assumptionString = `${referneceString} :: ${statementString}`;
144
+
145
+ return assumptionString;
146
+ }
147
+
154
148
  export function termSubstitutionStringFromTermAndVariable(term, variable) {
155
149
  const termString = term.getString(),
156
150
  variableString = variable.getString(),
@@ -198,14 +192,6 @@ export function frameSubstitutionStringFromFrameAndMetavariable(frame, metavaria
198
192
  return string;
199
193
  }
200
194
 
201
- export function metaLevelSubstitutionStringFromStatementAndReference(statement, reference) {
202
- const statementString = statement.getString(),
203
- referenceString = reference.getString(),
204
- metaLevelSubstitutionString = `[${statementString} for ${referenceString}]`;
205
-
206
- return metaLevelSubstitutionString;
207
- }
208
-
209
195
  export function procedureCallStringFromProcedureReferenceAndParameters(procedureReference, parameters) {
210
196
  const procedureReferenceName = procedureReference.getName(),
211
197
  parametersString = parametersStringFromParameters(parameters),
@@ -55,17 +55,17 @@ async function unifyStatementWithReference(statement, reference, satisfiesAssert
55
55
  statementUnifiesWithReference = true;
56
56
  }
57
57
  } else {
58
- const metaLevelSubstitutions = context.hasMetaLevelSubstitutions();
58
+ const metaLevel = context.isMetaLevel();
59
59
 
60
- if (metaLevelSubstitutions) {
61
- const { MetaLevelSubstitution } = elements,
62
- metaLevelSubstitution = MetaLevelSubstitution.fromStatementAndReference(statement, reference, context),
63
- generalContext = context, ///
64
- specificContext = context; ///
60
+ if (metaLevel) {
61
+ descend((context) => {
62
+ const { Assumption } = elements,
63
+ assumption = Assumption.fromStatementAndReference(statement, reference, context);
65
64
 
66
- metaLevelSubstitution.validate(generalContext, specificContext);
65
+ assumption.validate(context, metaLevel);
67
66
 
68
- statementUnifiesWithReference = true;
67
+ statementUnifiesWithReference = true;
68
+ }, context);
69
69
  }
70
70
  }
71
71
 
@@ -1,148 +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 _default;
9
- }
10
- });
11
- const _substitution = /*#__PURE__*/ _interop_require_default(require("../substitution"));
12
- const _elements = require("../../elements");
13
- const _instantiate = require("../../process/instantiate");
14
- const _element = require("../../utilities/element");
15
- const _string = require("../../utilities/string");
16
- const _context = require("../../utilities/context");
17
- function _interop_require_default(obj) {
18
- return obj && obj.__esModule ? obj : {
19
- default: obj
20
- };
21
- }
22
- const _default = (0, _elements.define)(class MetaLevelSubstitution extends _substitution.default {
23
- constructor(context, string, node, targetReference, replacementStatement){
24
- super(context, string, node);
25
- this.targetReference = targetReference;
26
- this.replacementStatement = replacementStatement;
27
- }
28
- getTargetReference() {
29
- return this.targetReference;
30
- }
31
- getReplacementStatement() {
32
- return this.replacementStatement;
33
- }
34
- getMetaLevelSubstitutionNode() {
35
- const node = this.getNode(), metaLevelSubstitutionNode = node; ///
36
- return metaLevelSubstitutionNode;
37
- }
38
- getTargetNode() {
39
- const targetReferenceNode = this.targetReference.getNode(), tergetNode = targetReferenceNode; ///
40
- return tergetNode;
41
- }
42
- getReplacementNode() {
43
- const replacementStatementNode = this.replacementStatement.getNode(), replacementNode = replacementStatementNode; ///
44
- return replacementNode;
45
- }
46
- matchMetaLevelSubstitutionNode(metaLevelSubstitutionNode) {
47
- const node = metaLevelSubstitutionNode, nodeMatches = this.matchNode(node), metaLevelSubstitutionNodeMatches = nodeMatches; ///
48
- return metaLevelSubstitutionNodeMatches;
49
- }
50
- findValidMetaLevelSubstiution(context) {
51
- const metaLevelSubstitutionNode = this.getMetaLevelSubstitutionNode(), metaLevelSubstitution = context.findMetaLevelSubstitutionByMetaLevelSubstitutionNode(metaLevelSubstitutionNode), validMetaLevelSubstitution = metaLevelSubstitution; ///
52
- return validMetaLevelSubstitution;
53
- }
54
- validate(generalContext, specificContext) {
55
- let metaLevelSubstitution = null;
56
- const context = specificContext, metaLevelSubstitutionString = this.getString(); ///
57
- context.trace(`Validating the '${metaLevelSubstitutionString}' meta-level substitution...`);
58
- const validMetaLevelSubstitution = this.findValidMetaLevelSubstiution(context);
59
- if (validMetaLevelSubstitution) {
60
- metaLevelSubstitution = validMetaLevelSubstitution; ///
61
- context.debug(`...the '${metaLevelSubstitutionString}' meta-level substitution is already valid.`);
62
- } else {
63
- let validates = false;
64
- const targetReferenceValidates = this.validateTargetReference(generalContext, specificContext);
65
- if (targetReferenceValidates) {
66
- const replacementStatementValidates = this.validateReplacementStatement(generalContext, specificContext);
67
- if (replacementStatementValidates) {
68
- validates = true;
69
- }
70
- }
71
- if (validates) {
72
- metaLevelSubstitution = this; ///
73
- context.addMetaLevelSubstitution(metaLevelSubstitution);
74
- context.debug(`...validated the '${metaLevelSubstitutionString}' meta-level substitution.`);
75
- }
76
- }
77
- return metaLevelSubstitution;
78
- }
79
- validateTargetReference(generalContext, specificContext) {
80
- let targetReferenceValidates = false;
81
- const context = generalContext, targetReferenceString = this.targetReference.getString(), metaLevelSubstitutionString = this.getString(); ///
82
- context.trace(`Validating the '${metaLevelSubstitutionString}' meta-level substitution's '${targetReferenceString}' target reference...`);
83
- const targetReference = this.targetReference.validate(context);
84
- if (targetReference !== null) {
85
- targetReferenceValidates = true;
86
- }
87
- if (targetReferenceValidates) {
88
- context.debug(`...validated the '${metaLevelSubstitutionString}' meta-level substitution's '${targetReferenceString}' target reference...`);
89
- }
90
- return targetReferenceValidates;
91
- }
92
- validateReplacementStatement(generalContext, specificContext) {
93
- let replacementStatementValidates = false;
94
- const context = this.getContext(), replacementStatementString = this.replacementStatement.getString(), metaLevelSubstitutionString = this.getString(); ///
95
- context.trace(`Validating the '${metaLevelSubstitutionString}' meta-level substitution's '${replacementStatementString}' replacement statement...`);
96
- (0, _context.descend)((context)=>{
97
- const replacementStatement = this.replacementStatement.validate(context);
98
- if (replacementStatement !== null) {
99
- replacementStatementValidates = true;
100
- }
101
- }, context);
102
- if (replacementStatementValidates) {
103
- context.debug(`...validated the '${metaLevelSubstitutionString}' meta-level substitution's '${replacementStatementString}' replacement statement.`);
104
- }
105
- return replacementStatementValidates;
106
- }
107
- toJSON() {
108
- const context = this.getContext();
109
- return (0, _context.serialise)((context)=>{
110
- const string = this.getString(), json = {
111
- context,
112
- string
113
- };
114
- return json;
115
- }, context);
116
- }
117
- static name = "MetaLevelSubstitution";
118
- static fromJSON(json, context) {
119
- let metaLevelSubstitution;
120
- (0, _context.unserialise)((json, context)=>{
121
- (0, _context.instantiate)((context)=>{
122
- const { string } = json, metaLevelSubstitutionNode = (0, _instantiate.instantiateMetaLevelSubstitution)(string, context), node = metaLevelSubstitutionNode, targetReference = targetReferenceFromMetaLevelSubstitutionNode(metaLevelSubstitutionNode, context), replacementStatement = replacementStatementFromMetaLevelSubstitutionNode(metaLevelSubstitutionNode, context);
123
- metaLevelSubstitution = new MetaLevelSubstitution(context, string, node, targetReference, replacementStatement);
124
- }, context);
125
- }, json, context);
126
- return metaLevelSubstitution;
127
- }
128
- static fromStatementAndReference(statement, reference, context) {
129
- let metaLevelSubstitution;
130
- (0, _context.simplify)((context)=>{
131
- (0, _context.instantiate)((context)=>{
132
- const metaLevelSubstitutionString = (0, _string.metaLevelSubstitutionStringFromStatementAndReference)(statement, reference), string = metaLevelSubstitutionString, metaLevelSubstitutionNode = (0, _instantiate.instantiateMetaLevelSubstitution)(string, context);
133
- metaLevelSubstitution = (0, _element.metaLevelSubstitutionFromMetaLevelSubstitutionNode)(metaLevelSubstitutionNode, context);
134
- }, context);
135
- }, context);
136
- return metaLevelSubstitution;
137
- }
138
- });
139
- function targetReferenceFromMetaLevelSubstitutionNode(metaLevelSubstitutionNode, context) {
140
- const targetReferenceNode = metaLevelSubstitutionNode.getTargetReferenceNode(), targetReference = context.findReferenceByReferenceNode(targetReferenceNode);
141
- return targetReference;
142
- }
143
- function replacementStatementFromMetaLevelSubstitutionNode(metaLevelSubstitutionNode, context) {
144
- const replacementStatementNode = metaLevelSubstitutionNode.getReplacementStatementNode(), replacementStatement = context.findStatementByStatementNode(replacementStatementNode);
145
- return replacementStatement;
146
- }
147
-
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3N1YnN0aXR1dGlvbi9tZXRhTGV2ZWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBTdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlTWV0YUxldmVsU3Vic3RpdHV0aW9uIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IG1ldGFMZXZlbFN1YnN0aXR1dGlvbkZyb21NZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBtZXRhTGV2ZWxTdWJzdGl0dXRpb25TdHJpbmdGcm9tU3RhdGVtZW50QW5kUmVmZXJlbmNlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IGRlc2NlbmQsIHNpbXBsaWZ5LCBzZXJpYWxpc2UsIHVuc2VyaWFsaXNlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTWV0YUxldmVsU3Vic3RpdHV0aW9uIGV4dGVuZHMgU3Vic3RpdHV0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCB0YXJnZXRSZWZlcmVuY2UsIHJlcGxhY2VtZW50U3RhdGVtZW50KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlKTtcblxuICAgIHRoaXMudGFyZ2V0UmVmZXJlbmNlID0gdGFyZ2V0UmVmZXJlbmNlO1xuICAgIHRoaXMucmVwbGFjZW1lbnRTdGF0ZW1lbnQgPSByZXBsYWNlbWVudFN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFRhcmdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy50YXJnZXRSZWZlcmVuY2U7XG4gIH1cblxuICBnZXRSZXBsYWNlbWVudFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlbWVudFN0YXRlbWVudDtcbiAgfVxuXG4gIGdldE1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlO1xuICB9XG5cbiAgZ2V0VGFyZ2V0Tm9kZSgpIHtcbiAgICBjb25zdCB0YXJnZXRSZWZlcmVuY2VOb2RlID0gdGhpcy50YXJnZXRSZWZlcmVuY2UuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHRlcmdldE5vZGUgPSB0YXJnZXRSZWZlcmVuY2VOb2RlOyAvLy9cblxuICAgIHJldHVybiB0ZXJnZXROb2RlO1xuICB9XG5cbiAgZ2V0UmVwbGFjZW1lbnROb2RlKCkge1xuICAgIGNvbnN0IHJlcGxhY2VtZW50U3RhdGVtZW50Tm9kZSA9IHRoaXMucmVwbGFjZW1lbnRTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHJlcGxhY2VtZW50Tm9kZSA9IHJlcGxhY2VtZW50U3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgICByZXR1cm4gcmVwbGFjZW1lbnROb2RlO1xuICB9XG5cbiAgbWF0Y2hNZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlKG1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUpIHtcbiAgICBjb25zdCBub2RlID0gbWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcztcbiAgfVxuXG4gIGZpbmRWYWxpZE1ldGFMZXZlbFN1YnN0aXV0aW9uKGNvbnRleHQpIHtcbiAgICBjb25zdCBtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlID0gdGhpcy5nZXRNZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlKCksXG4gICAgICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uID0gY29udGV4dC5maW5kTWV0YUxldmVsU3Vic3RpdHV0aW9uQnlNZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlKG1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICAgIHZhbGlkTWV0YUxldmVsU3Vic3RpdHV0aW9uID0gbWV0YUxldmVsU3Vic3RpdHV0aW9uOyAgLy8vXG5cbiAgICByZXR1cm4gdmFsaWRNZXRhTGV2ZWxTdWJzdGl0dXRpb247XG4gIH1cblxuICB2YWxpZGF0ZShnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IG1ldGFMZXZlbFN1YnN0aXR1dGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nfScgbWV0YS1sZXZlbCBzdWJzdGl0dXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHZhbGlkTWV0YUxldmVsU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kVmFsaWRNZXRhTGV2ZWxTdWJzdGl1dGlvbihjb250ZXh0KTtcblxuICAgIGlmICh2YWxpZE1ldGFMZXZlbFN1YnN0aXR1dGlvbikge1xuICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uID0gdmFsaWRNZXRhTGV2ZWxTdWJzdGl0dXRpb247ICAvLy9cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udGhlICcke21ldGFMZXZlbFN1YnN0aXR1dGlvblN0cmluZ30nIG1ldGEtbGV2ZWwgc3Vic3RpdHV0aW9uIGlzIGFscmVhZHkgdmFsaWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCB2YWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgY29uc3QgdGFyZ2V0UmVmZXJlbmNlVmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZVRhcmdldFJlZmVyZW5jZShnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgaWYgKHRhcmdldFJlZmVyZW5jZVZhbGlkYXRlcykge1xuICAgICAgICBjb25zdCByZXBsYWNlbWVudFN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVSZXBsYWNlbWVudFN0YXRlbWVudChnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICBpZiAocmVwbGFjZW1lbnRTdGF0ZW1lbnRWYWxpZGF0ZXMpIHtcbiAgICAgICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uID0gdGhpczsgLy8vXG5cbiAgICAgICAgY29udGV4dC5hZGRNZXRhTGV2ZWxTdWJzdGl0dXRpb24obWV0YUxldmVsU3Vic3RpdHV0aW9uKTtcblxuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke21ldGFMZXZlbFN1YnN0aXR1dGlvblN0cmluZ30nIG1ldGEtbGV2ZWwgc3Vic3RpdHV0aW9uLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtZXRhTGV2ZWxTdWJzdGl0dXRpb247XG4gIH1cblxuICB2YWxpZGF0ZVRhcmdldFJlZmVyZW5jZShnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHRhcmdldFJlZmVyZW5jZVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICB0YXJnZXRSZWZlcmVuY2VTdHJpbmcgPSB0aGlzLnRhcmdldFJlZmVyZW5jZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBtZXRhTGV2ZWxTdWJzdGl0dXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHttZXRhTGV2ZWxTdWJzdGl0dXRpb25TdHJpbmd9JyBtZXRhLWxldmVsIHN1YnN0aXR1dGlvbidzICcke3RhcmdldFJlZmVyZW5jZVN0cmluZ30nIHRhcmdldCByZWZlcmVuY2UuLi5gKTtcblxuICAgIGNvbnN0IHRhcmdldFJlZmVyZW5jZSA9IHRoaXMudGFyZ2V0UmVmZXJlbmNlLnZhbGlkYXRlKGNvbnRleHQpO1xuXG4gICAgaWYgKHRhcmdldFJlZmVyZW5jZSAhPT0gbnVsbCkge1xuICAgICAgdGFyZ2V0UmVmZXJlbmNlVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0UmVmZXJlbmNlVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke21ldGFMZXZlbFN1YnN0aXR1dGlvblN0cmluZ30nIG1ldGEtbGV2ZWwgc3Vic3RpdHV0aW9uJ3MgJyR7dGFyZ2V0UmVmZXJlbmNlU3RyaW5nfScgdGFyZ2V0IHJlZmVyZW5jZS4uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRSZWZlcmVuY2VWYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVJlcGxhY2VtZW50U3RhdGVtZW50KGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgcmVwbGFjZW1lbnRTdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICByZXBsYWNlbWVudFN0YXRlbWVudFN0cmluZyA9IHRoaXMucmVwbGFjZW1lbnRTdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nfScgbWV0YS1sZXZlbCBzdWJzdGl0dXRpb24ncyAnJHtyZXBsYWNlbWVudFN0YXRlbWVudFN0cmluZ30nIHJlcGxhY2VtZW50IHN0YXRlbWVudC4uLmApO1xuXG4gICAgZGVzY2VuZCgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgcmVwbGFjZW1lbnRTdGF0ZW1lbnQgPSB0aGlzLnJlcGxhY2VtZW50U3RhdGVtZW50LnZhbGlkYXRlKGNvbnRleHQpO1xuXG4gICAgICBpZiAocmVwbGFjZW1lbnRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgcmVwbGFjZW1lbnRTdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHJlcGxhY2VtZW50U3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke21ldGFMZXZlbFN1YnN0aXR1dGlvblN0cmluZ30nIG1ldGEtbGV2ZWwgc3Vic3RpdHV0aW9uJ3MgJyR7cmVwbGFjZW1lbnRTdGF0ZW1lbnRTdHJpbmd9JyByZXBsYWNlbWVudCBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcGxhY2VtZW50U3RhdGVtZW50VmFsaWRhdGVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgIH07XG5cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk1ldGFMZXZlbFN1YnN0aXR1dGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IG1ldGFMZXZlbFN1YnN0aXR1dGlvbjtcblxuICAgIHVuc2VyaWFsaXNlKChqc29uLCBjb250ZXh0KSA9PiB7XG4gICAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZSA9IGluc3RhbnRpYXRlTWV0YUxldmVsU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgdGFyZ2V0UmVmZXJlbmNlID0gdGFyZ2V0UmVmZXJlbmNlRnJvbU1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUobWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHJlcGxhY2VtZW50U3RhdGVtZW50ID0gcmVwbGFjZW1lbnRTdGF0ZW1lbnRGcm9tTWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZShtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICBtZXRhTGV2ZWxTdWJzdGl0dXRpb24gPSBuZXcgTWV0YUxldmVsU3Vic3RpdHV0aW9uKGNvbnRleHQsIHN0cmluZywgbm9kZSwgdGFyZ2V0UmVmZXJlbmNlLCByZXBsYWNlbWVudFN0YXRlbWVudCk7XG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9LCBqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBtZXRhTGV2ZWxTdWJzdGl0dXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudEFuZFJlZmVyZW5jZShzdGF0ZW1lbnQsIHJlZmVyZW5jZSwgY29udGV4dCkge1xuICAgIGxldCBtZXRhTGV2ZWxTdWJzdGl0dXRpb247XG5cbiAgICBzaW1wbGlmeSgoY29udGV4dCkgPT4ge1xuICAgICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgbWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nID0gbWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nRnJvbVN0YXRlbWVudEFuZFJlZmVyZW5jZShzdGF0ZW1lbnQsIHJlZmVyZW5jZSksXG4gICAgICAgICAgICAgIHN0cmluZyA9IG1ldGFMZXZlbFN1YnN0aXR1dGlvblN0cmluZywgIC8vL1xuICAgICAgICAgICAgICBtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlID0gaW5zdGFudGlhdGVNZXRhTGV2ZWxTdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KTtcblxuICAgICAgICBtZXRhTGV2ZWxTdWJzdGl0dXRpb24gPSBtZXRhTGV2ZWxTdWJzdGl0dXRpb25Gcm9tTWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZShtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlLCBjb250ZXh0KTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIG1ldGFMZXZlbFN1YnN0aXR1dGlvbjtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHRhcmdldFJlZmVyZW5jZUZyb21NZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlKG1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgdGFyZ2V0UmVmZXJlbmNlTm9kZSA9IG1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUuZ2V0VGFyZ2V0UmVmZXJlbmNlTm9kZSgpLFxuICAgICAgICB0YXJnZXRSZWZlcmVuY2UgPSBjb250ZXh0LmZpbmRSZWZlcmVuY2VCeVJlZmVyZW5jZU5vZGUodGFyZ2V0UmVmZXJlbmNlTm9kZSk7XG5cbiAgcmV0dXJuIHRhcmdldFJlZmVyZW5jZTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZW1lbnRTdGF0ZW1lbnRGcm9tTWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZShtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHJlcGxhY2VtZW50U3RhdGVtZW50Tm9kZSA9IG1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUuZ2V0UmVwbGFjZW1lbnRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgIHJlcGxhY2VtZW50U3RhdGVtZW50ID0gY29udGV4dC5maW5kU3RhdGVtZW50QnlTdGF0ZW1lbnROb2RlKHJlcGxhY2VtZW50U3RhdGVtZW50Tm9kZSk7XG5cbiAgcmV0dXJuIHJlcGxhY2VtZW50U3RhdGVtZW50O1xufVxuIl0sIm5hbWVzIjpbImRlZmluZSIsIk1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsIlN1YnN0aXR1dGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwidGFyZ2V0UmVmZXJlbmNlIiwicmVwbGFjZW1lbnRTdGF0ZW1lbnQiLCJnZXRUYXJnZXRSZWZlcmVuY2UiLCJnZXRSZXBsYWNlbWVudFN0YXRlbWVudCIsImdldE1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUiLCJnZXROb2RlIiwibWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZSIsImdldFRhcmdldE5vZGUiLCJ0YXJnZXRSZWZlcmVuY2VOb2RlIiwidGVyZ2V0Tm9kZSIsImdldFJlcGxhY2VtZW50Tm9kZSIsInJlcGxhY2VtZW50U3RhdGVtZW50Tm9kZSIsInJlcGxhY2VtZW50Tm9kZSIsIm1hdGNoTWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZSIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwibWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMiLCJmaW5kVmFsaWRNZXRhTGV2ZWxTdWJzdGl1dGlvbiIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsImZpbmRNZXRhTGV2ZWxTdWJzdGl0dXRpb25CeU1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUiLCJ2YWxpZE1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsInZhbGlkYXRlIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImRlYnVnIiwidmFsaWRhdGVzIiwidGFyZ2V0UmVmZXJlbmNlVmFsaWRhdGVzIiwidmFsaWRhdGVUYXJnZXRSZWZlcmVuY2UiLCJyZXBsYWNlbWVudFN0YXRlbWVudFZhbGlkYXRlcyIsInZhbGlkYXRlUmVwbGFjZW1lbnRTdGF0ZW1lbnQiLCJhZGRNZXRhTGV2ZWxTdWJzdGl0dXRpb24iLCJ0YXJnZXRSZWZlcmVuY2VTdHJpbmciLCJnZXRDb250ZXh0IiwicmVwbGFjZW1lbnRTdGF0ZW1lbnRTdHJpbmciLCJkZXNjZW5kIiwidG9KU09OIiwic2VyaWFsaXNlIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZU1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsInRhcmdldFJlZmVyZW5jZUZyb21NZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlIiwicmVwbGFjZW1lbnRTdGF0ZW1lbnRGcm9tTWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZSIsImZyb21TdGF0ZW1lbnRBbmRSZWZlcmVuY2UiLCJzdGF0ZW1lbnQiLCJyZWZlcmVuY2UiLCJzaW1wbGlmeSIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvblN0cmluZ0Zyb21TdGF0ZW1lbnRBbmRSZWZlcmVuY2UiLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25Gcm9tTWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZSIsImdldFRhcmdldFJlZmVyZW5jZU5vZGUiLCJmaW5kUmVmZXJlbmNlQnlSZWZlcmVuY2VOb2RlIiwiZ2V0UmVwbGFjZW1lbnRT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
@@ -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 MetaLevelSubstitutionNode;
9
- }
10
- });
11
- const _substitution = /*#__PURE__*/ _interop_require_default(require("../../node/substitution"));
12
- const _ruleNames = require("../../ruleNames");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- class MetaLevelSubstitutionNode extends _substitution.default {
19
- getTargetReferenceNode() {
20
- const referenceNode = this.getReferenceNode(), targetReferenceNode = referenceNode; ///
21
- return targetReferenceNode;
22
- }
23
- getReplacementStatementNode() {
24
- const statementNode = this.getStatementNode(), replacementStatementNode = statementNode; ///
25
- return replacementStatementNode;
26
- }
27
- getReferenceNode() {
28
- const ruleName = _ruleNames.REFERENCE_RULE_NAME, referenceNode = this.getNodeByRuleName(ruleName);
29
- return referenceNode;
30
- }
31
- getStatementNode() {
32
- const ruleName = _ruleNames.STATEMENT_RULE_NAME, statementNode = this.getFirstNodeByRuleName(ruleName);
33
- return statementNode;
34
- }
35
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) {
36
- return _substitution.default.fromRuleNameChildNodesOpacityAndPrecedence(MetaLevelSubstitutionNode, ruleName, childNodes, opacity, precedence);
37
- }
38
- }
39
-
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL3N1YnN0aXR1dGlvbi9tZXRhTGV2ZWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBTdWJzdGl0dXRpb25Ob2RlIGZyb20gXCIuLi8uLi9ub2RlL3N1YnN0aXR1dGlvblwiO1xuXG5pbXBvcnQgeyBTVEFURU1FTlRfUlVMRV9OQU1FLCBSRUZFUkVOQ0VfUlVMRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlIGV4dGVuZHMgU3Vic3RpdHV0aW9uTm9kZSB7XG4gIGdldFRhcmdldFJlZmVyZW5jZU5vZGUoKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlTm9kZSA9IHRoaXMuZ2V0UmVmZXJlbmNlTm9kZSgpLFxuICAgICAgICAgIHRhcmdldFJlZmVyZW5jZU5vZGUgPSByZWZlcmVuY2VOb2RlOyAvLy9cblxuICAgIHJldHVybiB0YXJnZXRSZWZlcmVuY2VOb2RlO1xuICB9XG5cbiAgZ2V0UmVwbGFjZW1lbnRTdGF0ZW1lbnROb2RlKCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSB0aGlzLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICByZXBsYWNlbWVudFN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlOyAvLy9cblxuICAgIHJldHVybiByZXBsYWNlbWVudFN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRSZWZlcmVuY2VOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgICByZWZlcmVuY2VOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlTm9kZTtcbiAgfVxuXG4gIGdldFN0YXRlbWVudE5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBTVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSB0aGlzLmdldEZpcnN0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKSB7IHJldHVybiBTdWJzdGl0dXRpb25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShNZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJNZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlIiwiU3Vic3RpdHV0aW9uTm9kZSIsImdldFRhcmdldFJlZmVyZW5jZU5vZGUiLCJyZWZlcmVuY2VOb2RlIiwiZ2V0UmVmZXJlbmNlTm9kZSIsInRhcmdldFJlZmVyZW5jZU5vZGUiLCJnZXRSZXBsYWNlbWVudFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInJlcGxhY2VtZW50U3RhdGVtZW50Tm9kZSIsInJ1bGVOYW1lIiwiUkVGRVJFTkNFX1JVTEVfTkFNRSIsImdldE5vZGVCeVJ1bGVOYW1lIiwiU1RBVEVNRU5UX1JVTEVfTkFNRSIsImdldEZpcnN0Tm9kZUJ5UnVsZU5hbWUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UiLCJjaGlsZE5vZGVzIiwib3BhY2l0eSIsInByZWNlZGVuY2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBcUJBOzs7cUVBSlE7MkJBRTRCOzs7Ozs7QUFFMUMsTUFBTUEsa0NBQWtDQyxxQkFBZ0I7SUFDckVDLHlCQUF5QjtRQUN2QixNQUFNQyxnQkFBZ0IsSUFBSSxDQUFDQyxnQkFBZ0IsSUFDckNDLHNCQUFzQkYsZUFBZSxHQUFHO1FBRTlDLE9BQU9FO0lBQ1Q7SUFFQUMsOEJBQThCO1FBQzVCLE1BQU1DLGdCQUFnQixJQUFJLENBQUNDLGdCQUFnQixJQUNyQ0MsMkJBQTJCRixlQUFlLEdBQUc7UUFFbkQsT0FBT0U7SUFDVDtJQUVBTCxtQkFBbUI7UUFDakIsTUFBTU0sV0FBV0MsOEJBQW1CLEVBQzlCUixnQkFBZ0IsSUFBSSxDQUFDUyxpQkFBaUIsQ0FBQ0Y7UUFFN0MsT0FBT1A7SUFDVDtJQUVBSyxtQkFBbUI7UUFDakIsTUFBTUUsV0FBV0csOEJBQW1CLEVBQzlCTixnQkFBZ0IsSUFBSSxDQUFDTyxzQkFBc0IsQ0FBQ0o7UUFFbEQsT0FBT0g7SUFDVDtJQUVBLE9BQU9RLDJDQUEyQ0wsUUFBUSxFQUFFTSxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFO1FBQUUsT0FBT2pCLHFCQUFnQixDQUFDYywwQ0FBMEMsQ0FBQ2YsMkJBQTJCVSxVQUFVTSxZQUFZQyxTQUFTQztJQUFhO0FBQzNPIn0=