occam-verify-cli 0.0.1092 → 0.0.1094
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 +18 -16
- package/lib/combinator/bracketed.js +12 -5
- package/lib/constructor/bracketed.js +12 -5
- package/lib/index.js +2 -2
- package/lib/metavariable.js +9 -9
- package/lib/mixins/statement/qualified/unify.js +4 -4
- package/lib/mixins/statement/resolve.js +3 -3
- package/lib/nodeAndTokens/metavariable.js +193 -0
- package/lib/nodeAndTokens/statement.js +193 -0
- package/lib/nodeAndTokens/substitution/frame.js +159 -0
- package/lib/nodeAndTokens/substitution/statement.js +159 -0
- package/lib/nodeAndTokens/substitution/term.js +159 -0
- package/lib/nodeAndTokens/term.js +193 -0
- package/lib/nodeAndTokens/variable.js +193 -0
- package/lib/nodeAndTokens.js +93 -0
- package/lib/statement/unqualified.js +4 -4
- package/lib/statement.js +3 -4
- package/lib/substitution/frame.js +208 -0
- package/lib/substitution/statement.js +318 -0
- package/lib/substitution/term.js +202 -0
- package/lib/substitution.js +1 -8
- package/lib/substitutions.js +1 -13
- package/lib/term.js +3 -3
- package/lib/unifier/metaLevel.js +4 -4
- package/lib/unifier/termWithConstructor.js +6 -6
- package/lib/utilities/json.js +2 -2
- package/lib/utilities/substitutions.js +6 -21
- package/lib/variable.js +5 -5
- package/package.json +3 -1
- package/src/assertion/contained.js +17 -15
- package/src/combinator/bracketed.js +18 -13
- package/src/constructor/bracketed.js +19 -14
- package/src/index.js +1 -1
- package/src/metavariable.js +10 -11
- package/src/mixins/statement/qualified/unify.js +5 -5
- package/src/mixins/statement/resolve.js +4 -4
- package/src/nodeAndTokens/metavariable.js +49 -0
- package/src/nodeAndTokens/statement.js +49 -0
- package/src/nodeAndTokens/substitution/frame.js +23 -0
- package/src/nodeAndTokens/substitution/statement.js +23 -0
- package/src/nodeAndTokens/substitution/term.js +23 -0
- package/src/nodeAndTokens/term.js +49 -0
- package/src/nodeAndTokens/variable.js +49 -0
- package/src/nodeAndTokens.js +78 -0
- package/src/statement/unqualified.js +6 -3
- package/src/statement.js +5 -13
- package/src/substitution/{frameForMetavariable.js → frame.js} +21 -31
- package/src/substitution/{statementForMetavariable.js → statement.js} +59 -65
- package/src/substitution/{termForVariable.js → term.js} +21 -31
- package/src/substitution.js +0 -6
- package/src/substitutions.js +0 -12
- package/src/term.js +3 -4
- package/src/unifier/metaLevel.js +5 -5
- package/src/unifier/termWithConstructor.js +5 -5
- package/src/utilities/json.js +3 -2
- package/src/utilities/substitutions.js +7 -23
- package/src/variable.js +7 -8
- package/lib/ruleNames.js +0 -30
- package/lib/substitution/frameForMetavariable.js +0 -209
- package/lib/substitution/statementForMetavariable.js +0 -314
- package/lib/substitution/termForVariable.js +0 -203
- package/lib/utilities/node.js +0 -113
- package/lib/utilities/tokens.js +0 -69
- package/src/ruleNames.js +0 -6
- package/src/utilities/node.js +0 -114
- package/src/utilities/tokens.js +0 -63
|
@@ -0,0 +1,208 @@
|
|
|
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 FrameSubstitution;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
|
+
var _substitution = /*#__PURE__*/ _interop_require_default(require("../substitution"));
|
|
13
|
+
var _frame = /*#__PURE__*/ _interop_require_default(require("../nodeAndTokens/substitution/frame"));
|
|
14
|
+
var _query = require("../utilities/query");
|
|
15
|
+
function _assert_this_initialized(self) {
|
|
16
|
+
if (self === void 0) {
|
|
17
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
18
|
+
}
|
|
19
|
+
return self;
|
|
20
|
+
}
|
|
21
|
+
function _call_super(_this, derived, args) {
|
|
22
|
+
derived = _get_prototype_of(derived);
|
|
23
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
24
|
+
}
|
|
25
|
+
function _class_call_check(instance, Constructor) {
|
|
26
|
+
if (!(instance instanceof Constructor)) {
|
|
27
|
+
throw new TypeError("Cannot call a class as a function");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function _defineProperties(target, props) {
|
|
31
|
+
for(var i = 0; i < props.length; i++){
|
|
32
|
+
var descriptor = props[i];
|
|
33
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
34
|
+
descriptor.configurable = true;
|
|
35
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
36
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
40
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
41
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
42
|
+
return Constructor;
|
|
43
|
+
}
|
|
44
|
+
function _get_prototype_of(o) {
|
|
45
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
46
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
47
|
+
};
|
|
48
|
+
return _get_prototype_of(o);
|
|
49
|
+
}
|
|
50
|
+
function _inherits(subClass, superClass) {
|
|
51
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
52
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
53
|
+
}
|
|
54
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
55
|
+
constructor: {
|
|
56
|
+
value: subClass,
|
|
57
|
+
writable: true,
|
|
58
|
+
configurable: true
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
62
|
+
}
|
|
63
|
+
function _interop_require_default(obj) {
|
|
64
|
+
return obj && obj.__esModule ? obj : {
|
|
65
|
+
default: obj
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function _possible_constructor_return(self, call) {
|
|
69
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
70
|
+
return call;
|
|
71
|
+
}
|
|
72
|
+
return _assert_this_initialized(self);
|
|
73
|
+
}
|
|
74
|
+
function _set_prototype_of(o, p) {
|
|
75
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
76
|
+
o.__proto__ = p;
|
|
77
|
+
return o;
|
|
78
|
+
};
|
|
79
|
+
return _set_prototype_of(o, p);
|
|
80
|
+
}
|
|
81
|
+
function _type_of(obj) {
|
|
82
|
+
"@swc/helpers - typeof";
|
|
83
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
84
|
+
}
|
|
85
|
+
function _is_native_reflect_construct() {
|
|
86
|
+
try {
|
|
87
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
88
|
+
} catch (_) {}
|
|
89
|
+
return (_is_native_reflect_construct = function() {
|
|
90
|
+
return !!result;
|
|
91
|
+
})();
|
|
92
|
+
}
|
|
93
|
+
var frameNodeQuery = (0, _query.nodeQuery)("/frameSubstitution/frame[0]"), metavariableNodeQuery = (0, _query.nodeQuery)("/frameSubstitution/frame[1]/metavariable!"), frameSubstitutionNodeQuery = (0, _query.nodeQuery)("/statement/frameSubstitution");
|
|
94
|
+
var FrameSubstitution = /*#__PURE__*/ function(Substitution) {
|
|
95
|
+
_inherits(FrameSubstitution, Substitution);
|
|
96
|
+
function FrameSubstitution(string, node, tokens, frame, metavariable) {
|
|
97
|
+
_class_call_check(this, FrameSubstitution);
|
|
98
|
+
var _this;
|
|
99
|
+
_this = _call_super(this, FrameSubstitution, [
|
|
100
|
+
string,
|
|
101
|
+
node,
|
|
102
|
+
tokens
|
|
103
|
+
]);
|
|
104
|
+
_this.frame = frame;
|
|
105
|
+
_this.metavariable = metavariable;
|
|
106
|
+
return _this;
|
|
107
|
+
}
|
|
108
|
+
_create_class(FrameSubstitution, [
|
|
109
|
+
{
|
|
110
|
+
key: "getFrame",
|
|
111
|
+
value: function getFrame() {
|
|
112
|
+
return this.frame;
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
key: "getMetavariable",
|
|
117
|
+
value: function getMetavariable() {
|
|
118
|
+
return this.metavariable;
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
key: "getMetavariableName",
|
|
123
|
+
value: function getMetavariableName() {
|
|
124
|
+
var metavariableName = this.metavariable.getName();
|
|
125
|
+
return metavariableName;
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
key: "getSubstitutionString",
|
|
130
|
+
value: function getSubstitutionString() {
|
|
131
|
+
var frameString = this.frame.getString(), metavariableString = this.metavariable.getString(), substitutionString = "[".concat(frameString, " for [").concat(metavariableString, "]]");
|
|
132
|
+
return substitutionString;
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
key: "isEqualTo",
|
|
137
|
+
value: function isEqualTo(substitution) {
|
|
138
|
+
var equalTo = false;
|
|
139
|
+
var frameNode = substitution.getFrameNode(), metavariableName = substitution.getMetavariableName();
|
|
140
|
+
if (frameNode !== null && metavariableName !== null) {
|
|
141
|
+
var frameNodeMatches = this.matchFrameNode(frameNode), metavariableNameMatches = this.matchMetavariableName(metavariableName);
|
|
142
|
+
equalTo = frameNodeMatches && metavariableNameMatches;
|
|
143
|
+
}
|
|
144
|
+
return equalTo;
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
key: "matchFrameNode",
|
|
149
|
+
value: function matchFrameNode(frameNode) {
|
|
150
|
+
return this.frame.matchFrameNode(frameNode);
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
key: "matchMetavariableNode",
|
|
155
|
+
value: function matchMetavariableNode(metavariableNode) {
|
|
156
|
+
return this.metavariable.matchMetavariableNode(metavariableNode);
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
key: "matchMetavariableName",
|
|
161
|
+
value: function matchMetavariableName(metavariableName) {
|
|
162
|
+
var metavariableNameMatches;
|
|
163
|
+
var generalMetavariableName = metavariableName; ///
|
|
164
|
+
metavariableName = this.metavariable.getName();
|
|
165
|
+
var specificMetavariableName = metavariableName; ///
|
|
166
|
+
metavariableNameMatches = generalMetavariableName === specificMetavariableName;
|
|
167
|
+
return metavariableNameMatches;
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
key: "matchMetavariableNameAndSubstitutionNode",
|
|
172
|
+
value: function matchMetavariableNameAndSubstitutionNode(metavariableName, substitutionNode) {
|
|
173
|
+
var metavariableNameMatches = this.matchMetavariableName(metavariableName), substitutionNodeMatches = this.matchSubstitutionNode(substitutionNode), metavariableNameAndSubstitutionNodeMatches = metavariableNameMatches && substitutionNodeMatches;
|
|
174
|
+
return metavariableNameAndSubstitutionNodeMatches;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
], [
|
|
178
|
+
{
|
|
179
|
+
key: "fromStatementNode",
|
|
180
|
+
value: function fromStatementNode(statementNode, context) {
|
|
181
|
+
var frameSubstitution = null;
|
|
182
|
+
var frameSubstitutionNode = frameSubstitutionNodeQuery(statementNode);
|
|
183
|
+
if (frameSubstitutionNode !== null) {
|
|
184
|
+
var frameNode = frameNodeQuery(frameSubstitutionNode), metavariableNode = metavariableNodeQuery(frameSubstitutionNode);
|
|
185
|
+
if (frameNode !== null && metavariableNode !== null) {
|
|
186
|
+
var Frame = _shim.default.Frame, Metavariable = _shim.default.Metavariable, frame = Frame.fromFrameNode(frameNode, context), metavariable = Metavariable.fromMetavariableNode(metavariableNode, context), node = frameSubstitutionNode, tokens = context.nodeAsTokens(node), string = stringFromFrameAndMetavariable(frame, metavariable);
|
|
187
|
+
frameSubstitution = new FrameSubstitution(string, node, tokens, frame, metavariable);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return frameSubstitution;
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
key: "fromFrameAndMetavariable",
|
|
195
|
+
value: function fromFrameAndMetavariable(frame, metavariable, context) {
|
|
196
|
+
var string = stringFromFrameAndMetavariable(frame, metavariable), frameSubstitutionString = string, frameSubstitutionNodeAndTokens = _frame.default.fromFrameSubstitutionString(frameSubstitutionString, context), node = frameSubstitutionNodeAndTokens.getNode(), tokens = frameSubstitutionNodeAndTokens.getTokens(), frameSubstitution = new FrameSubstitution(string, node, tokens, frame, metavariable);
|
|
197
|
+
return frameSubstitution;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
]);
|
|
201
|
+
return FrameSubstitution;
|
|
202
|
+
}(_substitution.default);
|
|
203
|
+
function stringFromFrameAndMetavariable(frame, metavariable) {
|
|
204
|
+
var frameString = frame.getString(), metavariableString = metavariable.getString(), string = "[".concat(frameString, " for [").concat(metavariableString, "]]");
|
|
205
|
+
return string;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdWJzdGl0dXRpb24vZnJhbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuLi9zaGltXCI7XG5pbXBvcnQgU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb25cIjtcbmltcG9ydCBGcmFtZVN1YnN0aXR1dGlvbk5vZGVBbmRUb2tlbnMgZnJvbSBcIi4uL25vZGVBbmRUb2tlbnMvc3Vic3RpdHV0aW9uL2ZyYW1lXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgZnJhbWVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZnJhbWVTdWJzdGl0dXRpb24vZnJhbWVbMF1cIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZnJhbWVTdWJzdGl0dXRpb24vZnJhbWVbMV0vbWV0YXZhcmlhYmxlIVwiKSxcbiAgICAgIGZyYW1lU3Vic3RpdHV0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9mcmFtZVN1YnN0aXR1dGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnJhbWVTdWJzdGl0dXRpb24gZXh0ZW5kcyBTdWJzdGl0dXRpb24ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIHRva2VucywgZnJhbWUsIG1ldGF2YXJpYWJsZSkge1xuICAgIHN1cGVyKHN0cmluZywgbm9kZSwgdG9rZW5zKTtcblxuICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcbiAgICB0aGlzLm1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldEZyYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmZyYW1lO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZU5hbWUoKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IHRoaXMubWV0YXZhcmlhYmxlLmdldE5hbWUoKTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVOYW1lO1xuICB9XG5cbiAgZ2V0U3Vic3RpdHV0aW9uU3RyaW5nKCkge1xuICAgIGNvbnN0IGZyYW1lU3RyaW5nID0gdGhpcy5mcmFtZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSB0aGlzLm1ldGF2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25TdHJpbmcgPSBgWyR7ZnJhbWVTdHJpbmd9IGZvciBbJHttZXRhdmFyaWFibGVTdHJpbmd9XV1gO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvblN0cmluZztcbiAgfVxuXG4gIGlzRXF1YWxUbyhzdWJzdGl0dXRpb24pIHtcbiAgICBsZXQgZXF1YWxUbyA9IGZhbHNlO1xuXG4gICAgY29uc3QgZnJhbWVOb2RlID0gc3Vic3RpdHV0aW9uLmdldEZyYW1lTm9kZSgpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZU5hbWUgPSBzdWJzdGl0dXRpb24uZ2V0TWV0YXZhcmlhYmxlTmFtZSgpO1xuXG4gICAgaWYgKChmcmFtZU5vZGUgIT09IG51bGwpICYmIChtZXRhdmFyaWFibGVOYW1lICE9PSBudWxsKSkge1xuICAgICAgY29uc3QgZnJhbWVOb2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hGcmFtZU5vZGUoZnJhbWVOb2RlKSxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5hbWVNYXRjaGVzID0gdGhpcy5tYXRjaE1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgICAgIGVxdWFsVG8gPSAoZnJhbWVOb2RlTWF0Y2hlcyAmJiBtZXRhdmFyaWFibGVOYW1lTWF0Y2hlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBtYXRjaEZyYW1lTm9kZShmcmFtZU5vZGUpIHsgcmV0dXJuIHRoaXMuZnJhbWUubWF0Y2hGcmFtZU5vZGUoZnJhbWVOb2RlKTsgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZS5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7IH1cblxuICBtYXRjaE1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSkge1xuICAgIGxldCBtZXRhdmFyaWFibGVOYW1lTWF0Y2hlcztcblxuICAgIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTmFtZTsgLy8vXG5cbiAgICBtZXRhdmFyaWFibGVOYW1lID0gdGhpcy5tZXRhdmFyaWFibGUuZ2V0TmFtZSgpO1xuXG4gICAgY29uc3Qgc3BlY2lmaWNNZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTmFtZTsgLy8vXG5cbiAgICBtZXRhdmFyaWFibGVOYW1lTWF0Y2hlcyA9IChnZW5lcmFsTWV0YXZhcmlhYmxlTmFtZSA9PT0gc3BlY2lmaWNNZXRhdmFyaWFibGVOYW1lKTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVOYW1lTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTmFtZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTmFtZSwgc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWVNYXRjaGVzID0gdGhpcy5tYXRjaE1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoU3Vic3RpdHV0aW9uTm9kZShzdWJzdGl0dXRpb25Ob2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOYW1lQW5kU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSAobWV0YXZhcmlhYmxlTmFtZU1hdGNoZXMgJiYgc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZU5hbWVBbmRTdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGZyYW1lU3Vic3RpdHV0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGZyYW1lU3Vic3RpdHV0aW9uTm9kZSA9IGZyYW1lU3Vic3RpdHV0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKGZyYW1lU3Vic3RpdHV0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZnJhbWVOb2RlID0gZnJhbWVOb2RlUXVlcnkoZnJhbWVTdWJzdGl0dXRpb25Ob2RlKSxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkoZnJhbWVTdWJzdGl0dXRpb25Ob2RlKTtcblxuICAgICAgaWYgKChmcmFtZU5vZGUgIT09IG51bGwpICYmIChtZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSkge1xuICAgICAgICBjb25zdCB7IEZyYW1lLCBNZXRhdmFyaWFibGUgfSA9IHNoaW0sXG4gICAgICAgICAgICAgIGZyYW1lID0gRnJhbWUuZnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBmcmFtZVN1YnN0aXR1dGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgICAgdG9rZW5zID0gY29udGV4dC5ub2RlQXNUb2tlbnMobm9kZSksXG4gICAgICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21GcmFtZUFuZE1ldGF2YXJpYWJsZShmcmFtZSwgbWV0YXZhcmlhYmxlKTtcblxuICAgICAgICBmcmFtZVN1YnN0aXR1dGlvbiA9IG5ldyBGcmFtZVN1YnN0aXR1dGlvbihzdHJpbmcsIG5vZGUsIHRva2VucywgZnJhbWUsIG1ldGF2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZyYW1lU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21GcmFtZUFuZE1ldGF2YXJpYWJsZShmcmFtZSwgbWV0YXZhcmlhYmxlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbUZyYW1lQW5kTWV0YXZhcmlhYmxlKGZyYW1lLCBtZXRhdmFyaWFibGUpLFxuICAgICAgICAgIGZyYW1lU3Vic3RpdHV0aW9uU3RyaW5nID0gc3RyaW5nLCAgLy8vXG4gICAgICAgICAgZnJhbWVTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zID0gRnJhbWVTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zLmZyb21GcmFtZVN1YnN0aXR1dGlvblN0cmluZyhmcmFtZVN1YnN0aXR1dGlvblN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgbm9kZSA9IGZyYW1lU3Vic3RpdHV0aW9uTm9kZUFuZFRva2Vucy5nZXROb2RlKCksXG4gICAgICAgICAgdG9rZW5zID0gZnJhbWVTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zLmdldFRva2VucygpLFxuICAgICAgICAgIGZyYW1lU3Vic3RpdHV0aW9uID0gbmV3IEZyYW1lU3Vic3RpdHV0aW9uKHN0cmluZywgbm9kZSwgdG9rZW5zLCBmcmFtZSwgbWV0YXZhcmlhYmxlKTtcblxuICAgIHJldHVybiBmcmFtZVN1YnN0aXR1dGlvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdHJpbmdGcm9tRnJhbWVBbmRNZXRhdmFyaWFibGUoZnJhbWUsIG1ldGF2YXJpYWJsZSkge1xuICBjb25zdCBmcmFtZVN0cmluZyA9IGZyYW1lLmdldFN0cmluZygpLFxuICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBtZXRhdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHN0cmluZyA9IGBbJHtmcmFtZVN0cmluZ30gZm9yIFske21ldGF2YXJpYWJsZVN0cmluZ31dXWA7XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJGcmFtZVN1YnN0aXR1dGlvbiIsImZyYW1lTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwiZnJhbWVTdWJzdGl0dXRpb25Ob2RlUXVlcnkiLCJzdHJpbmciLCJub2RlIiwidG9rZW5zIiwiZnJhbWUiLCJtZXRhdmFyaWFibGUiLCJnZXRGcmFtZSIsImdldE1ldGF2YXJpYWJsZSIsImdldE1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lIiwiZ2V0TmFtZSIsImdldFN1YnN0aXR1dGlvblN0cmluZyIsImZyYW1lU3RyaW5nIiwiZ2V0U3RyaW5nIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwic3Vic3RpdHV0aW9uU3RyaW5nIiwiaXNFcXVhbFRvIiwic3Vic3RpdHV0aW9uIiwiZXF1YWxUbyIsImZyYW1lTm9kZSIsImdldEZyYW1lTm9kZSIsImZyYW1lTm9kZU1hdGNoZXMiLCJtYXRjaEZyYW1lTm9kZSIsIm1ldGF2YXJpYWJsZU5hbWVNYXRjaGVzIiwibWF0Y2hNZXRhdmFyaWFibGVOYW1lIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsImdlbmVyYWxNZXRhdmFyaWFibGVOYW1lIiwic3BlY2lmaWNNZXRhdmFyaWFibGVOYW1lIiwibWF0Y2hNZXRhdmFyaWFibGVOYW1lQW5kU3Vic3RpdHV0aW9uTm9kZSIsInN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyIsIm1hdGNoU3Vic3RpdHV0aW9uTm9kZSIsIm1ldGF2YXJpYWJsZU5hbWVBbmRTdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyIsImZyb21TdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZSIsImNvbnRleHQiLCJmcmFtZVN1YnN0aXR1dGlvbiIsImZyYW1lU3Vic3RpdHV0aW9uTm9kZSIsIkZyYW1lIiwic2hpbSIsIk1ldGF2YXJpYWJsZSIsImZyb21GcmFtZU5vZGUiLCJmcm9tTWV0YXZhcmlhYmxlTm9kZSIsIm5vZGVBc1Rva2VucyIsInN0cmluZ0Zyb21GcmFtZUFuZE1ldGF2YXJpYWJsZSIsImZyb21GcmFtZUFuZE1ldGF2YXJpYWJsZSIsImZyYW1lU3Vic3RpdHV0aW9uU3RyaW5nIiwiZnJhbWVTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zIiwiRnJhbWVTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zIiwiZnJvbUZyYW1lU3Vic3RpdHV0aW9uU3RyaW5nIiwiZ2V0Tm9kZSIsImdldFRva2VucyIsIlN1YnN0aXR1dGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFZcUJBOzs7MkRBVko7bUVBQ1E7NERBQ2tCO3FCQUVqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixJQUFNQyxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsZ0NBQzNCQyx3QkFBd0JELElBQUFBLGdCQUFTLEVBQUMsOENBQ2xDRSw2QkFBNkJGLElBQUFBLGdCQUFTLEVBQUM7QUFFOUIsSUFBQSxBQUFNRixrQ0FBTjtjQUFNQTthQUFBQSxrQkFDUEssTUFBTSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxZQUFZO2dDQURsQ1Q7O2dCQUVqQixrQkFGaUJBO1lBRVhLO1lBQVFDO1lBQU1DOztRQUVwQixNQUFLQyxLQUFLLEdBQUdBO1FBQ2IsTUFBS0MsWUFBWSxHQUFHQTs7O2tCQUxIVDs7WUFRbkJVLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsS0FBSztZQUNuQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsWUFBWTtZQUMxQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFN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
|
|
@@ -0,0 +1,318 @@
|
|
|
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
|
+
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
|
+
var _substitution = /*#__PURE__*/ _interop_require_default(require("../substitution"));
|
|
13
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
14
|
+
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/metaLevel"));
|
|
15
|
+
var _statement = /*#__PURE__*/ _interop_require_default(require("../nodeAndTokens/substitution/statement"));
|
|
16
|
+
var _brackets = require("../utilities/brackets");
|
|
17
|
+
var _json = require("../utilities/json");
|
|
18
|
+
function _assert_this_initialized(self) {
|
|
19
|
+
if (self === void 0) {
|
|
20
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
21
|
+
}
|
|
22
|
+
return self;
|
|
23
|
+
}
|
|
24
|
+
function _call_super(_this, derived, args) {
|
|
25
|
+
derived = _get_prototype_of(derived);
|
|
26
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
27
|
+
}
|
|
28
|
+
function _class_call_check(instance, Constructor) {
|
|
29
|
+
if (!(instance instanceof Constructor)) {
|
|
30
|
+
throw new TypeError("Cannot call a class as a function");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function _defineProperties(target, props) {
|
|
34
|
+
for(var i = 0; i < props.length; i++){
|
|
35
|
+
var descriptor = props[i];
|
|
36
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
37
|
+
descriptor.configurable = true;
|
|
38
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
39
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
43
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
44
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
45
|
+
return Constructor;
|
|
46
|
+
}
|
|
47
|
+
function _get_prototype_of(o) {
|
|
48
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
49
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
50
|
+
};
|
|
51
|
+
return _get_prototype_of(o);
|
|
52
|
+
}
|
|
53
|
+
function _inherits(subClass, superClass) {
|
|
54
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
55
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
56
|
+
}
|
|
57
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
58
|
+
constructor: {
|
|
59
|
+
value: subClass,
|
|
60
|
+
writable: true,
|
|
61
|
+
configurable: true
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
65
|
+
}
|
|
66
|
+
function _interop_require_default(obj) {
|
|
67
|
+
return obj && obj.__esModule ? obj : {
|
|
68
|
+
default: obj
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function _possible_constructor_return(self, call) {
|
|
72
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
73
|
+
return call;
|
|
74
|
+
}
|
|
75
|
+
return _assert_this_initialized(self);
|
|
76
|
+
}
|
|
77
|
+
function _set_prototype_of(o, p) {
|
|
78
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
79
|
+
o.__proto__ = p;
|
|
80
|
+
return o;
|
|
81
|
+
};
|
|
82
|
+
return _set_prototype_of(o, p);
|
|
83
|
+
}
|
|
84
|
+
function _type_of(obj) {
|
|
85
|
+
"@swc/helpers - typeof";
|
|
86
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
87
|
+
}
|
|
88
|
+
function _is_native_reflect_construct() {
|
|
89
|
+
try {
|
|
90
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
91
|
+
} catch (_) {}
|
|
92
|
+
return (_is_native_reflect_construct = function() {
|
|
93
|
+
return !!result;
|
|
94
|
+
})();
|
|
95
|
+
}
|
|
96
|
+
var StatementSubstitution = /*#__PURE__*/ function(Substitution) {
|
|
97
|
+
_inherits(StatementSubstitution, Substitution);
|
|
98
|
+
function StatementSubstitution(string, node, tokens, resolved, statement, metavariable, substitution) {
|
|
99
|
+
_class_call_check(this, StatementSubstitution);
|
|
100
|
+
var _this;
|
|
101
|
+
_this = _call_super(this, StatementSubstitution, [
|
|
102
|
+
string,
|
|
103
|
+
node,
|
|
104
|
+
tokens
|
|
105
|
+
]);
|
|
106
|
+
_this.resolved = resolved;
|
|
107
|
+
_this.statement = statement;
|
|
108
|
+
_this.metavariable = metavariable;
|
|
109
|
+
_this.substitution = substitution;
|
|
110
|
+
return _this;
|
|
111
|
+
}
|
|
112
|
+
_create_class(StatementSubstitution, [
|
|
113
|
+
{
|
|
114
|
+
key: "isResolved",
|
|
115
|
+
value: function isResolved() {
|
|
116
|
+
return this.resolved;
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
key: "getStatement",
|
|
121
|
+
value: function getStatement() {
|
|
122
|
+
return this.statement;
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
key: "getMetavariable",
|
|
127
|
+
value: function getMetavariable() {
|
|
128
|
+
return this.metavariable;
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
key: "getSubstitution",
|
|
133
|
+
value: function getSubstitution() {
|
|
134
|
+
return this.substitution;
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
key: "getMetavariableNode",
|
|
139
|
+
value: function getMetavariableNode() {
|
|
140
|
+
var metavariableNode = this.metavariable.getNode();
|
|
141
|
+
return metavariableNode;
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
key: "isSimple",
|
|
146
|
+
value: function isSimple() {
|
|
147
|
+
var simple = this.substitution === null;
|
|
148
|
+
return simple;
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
key: "matchStatementNode",
|
|
153
|
+
value: function matchStatementNode(statementNode) {
|
|
154
|
+
statementNode = (0, _brackets.stripBracketsFromStatementNode)(statementNode); ///
|
|
155
|
+
var statementNodeMatches = this.statement.matchStatementNode(statementNode);
|
|
156
|
+
return statementNodeMatches;
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
key: "matchMetavariableNode",
|
|
161
|
+
value: function matchMetavariableNode(metavariableNode) {
|
|
162
|
+
return this.metavariable.matchMetavariableNode(metavariableNode);
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
key: "matchSubstitutionNode",
|
|
167
|
+
value: function matchSubstitutionNode(substitutionNode) {
|
|
168
|
+
var substitutionNodeMatches;
|
|
169
|
+
if (substitutionNode === null && this.substitution === null) {
|
|
170
|
+
substitutionNodeMatches = true;
|
|
171
|
+
} else if (substitutionNode === null && this.substitution !== null) {
|
|
172
|
+
substitutionNodeMatches = false;
|
|
173
|
+
} else if (substitutionNode !== null && this.substitution === null) {
|
|
174
|
+
substitutionNodeMatches = false;
|
|
175
|
+
} else {
|
|
176
|
+
substitutionNodeMatches = this.substitution.matchSubstitutionNode(substitutionNode);
|
|
177
|
+
}
|
|
178
|
+
return substitutionNodeMatches;
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
key: "matchMetavariableNodeAndSubstitutionNode",
|
|
183
|
+
value: function matchMetavariableNodeAndSubstitutionNode(metavariableNode, substitutionNode) {
|
|
184
|
+
var metavariableNodeMatches = this.matchMetavariableNode(metavariableNode), substitutionNodeMatches = this.matchSubstitutionNode(substitutionNode), metavariableNodeAndSubstitutionNodeMatches = metavariableNodeMatches && substitutionNodeMatches;
|
|
185
|
+
return metavariableNodeAndSubstitutionNodeMatches;
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
key: "resolve",
|
|
190
|
+
value: function resolve(substitutions, generalContext, specificContext) {
|
|
191
|
+
var substitutionString = this.string;
|
|
192
|
+
var metavariableNode = this.getMetavariableNode(), simpleSubstitution = substitutions.findSimpleSubstitutionByMetavariableNode(metavariableNode);
|
|
193
|
+
if (simpleSubstitution !== null) {
|
|
194
|
+
specificContext.trace("Resolving the ".concat(substitutionString, " substitution..."));
|
|
195
|
+
var context = generalContext, localContext = _local.default.fromContextAndTokens(context, this.tokens);
|
|
196
|
+
generalContext = localContext; ///
|
|
197
|
+
var substitution = simpleSubstitution, substitutionResolved = substitution.resolveSubstitution(this.substitution, this.statement, substitutions, generalContext, specificContext);
|
|
198
|
+
this.resolved = substitutionResolved; ///
|
|
199
|
+
if (this.resolved) {
|
|
200
|
+
specificContext.debug("...resolved the ".concat(substitutionString, " substitution."));
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
key: "resolveSubstitution",
|
|
207
|
+
value: function resolveSubstitution(substitution, statement, substitutions, generalContext, specificContext) {
|
|
208
|
+
var substitutionResolved = false;
|
|
209
|
+
var substitutionString = substitution.getString();
|
|
210
|
+
specificContext.trace("Resolving the ".concat(substitutionString, " substitution..."));
|
|
211
|
+
var generalSubstitution = substitution, specificSubstitution = this.unifyStatement(statement, specificContext, specificContext); ///
|
|
212
|
+
if (specificSubstitution !== null) {
|
|
213
|
+
substitutions.snapshot();
|
|
214
|
+
var generalSubstitutionString = generalSubstitution.getString(), specificSubstitutionString = specificSubstitution.getString();
|
|
215
|
+
specificContext.trace("Unifying the '".concat(specificSubstitutionString, "' substitution with the '").concat(generalSubstitutionString, "' substitution..."));
|
|
216
|
+
var generalSubstitutionNode = generalSubstitution.getNode(), specificSubstitutionNode = specificSubstitution.getNode(), generalSubstitutionTokens = generalSubstitution.getTokens(), specificSubstitutionTokens = specificSubstitution.getTokens();
|
|
217
|
+
var tokens, context, localContext;
|
|
218
|
+
tokens = generalSubstitutionTokens; ///
|
|
219
|
+
context = generalContext; ///
|
|
220
|
+
localContext = _local.default.fromContextAndTokens(context, tokens);
|
|
221
|
+
generalContext = localContext; ///
|
|
222
|
+
tokens = specificSubstitutionTokens; ///
|
|
223
|
+
context = specificContext; ///
|
|
224
|
+
localContext = _local.default.fromContextAndTokens(context, tokens);
|
|
225
|
+
specificContext = localContext; ///
|
|
226
|
+
var generalNode = generalSubstitutionNode, specificNode = specificSubstitutionNode, unifiedAtMetaLevel = _metaLevel.default.unify(generalNode, specificNode, substitutions, generalContext, specificContext);
|
|
227
|
+
if (unifiedAtMetaLevel) {
|
|
228
|
+
specificContext.trace("...unified the '".concat(specificSubstitutionString, "' substitution with the '").concat(generalSubstitutionString, "' substitution."));
|
|
229
|
+
}
|
|
230
|
+
unifiedAtMetaLevel ? substitutions.continue() : substitutions.rollback(specificContext);
|
|
231
|
+
substitutionResolved = unifiedAtMetaLevel; ///
|
|
232
|
+
}
|
|
233
|
+
if (substitutionResolved) {
|
|
234
|
+
specificContext.debug("...resolved the ".concat(substitutionString, " substitution."));
|
|
235
|
+
}
|
|
236
|
+
return substitutionResolved;
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
key: "unifyStatement",
|
|
241
|
+
value: function unifyStatement(statement, generalContext, specificContext) {
|
|
242
|
+
var specificSubstitution = null;
|
|
243
|
+
var Substitutions = _shim.default.Substitutions, substitutions = Substitutions.fromNothing(), statementUnified = this.statement.unifyStatement(statement, substitutions, generalContext, specificContext);
|
|
244
|
+
if (statementUnified) {
|
|
245
|
+
var substitutionsLength = substitutions.getLength();
|
|
246
|
+
if (substitutionsLength === 1) {
|
|
247
|
+
var firstSubstitution = substitutions.getFirstSubstitution();
|
|
248
|
+
specificSubstitution = firstSubstitution; ///
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return specificSubstitution;
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
key: "toJSON",
|
|
256
|
+
value: function toJSON() {
|
|
257
|
+
var metavariableJSON = (0, _json.metavariableToMetavariableJSON)(this.metavariable), statementJSON = (0, _json.statementToStatementJSON)(this.statement), metavariable = metavariableJSON, statement = statementJSON, string = this.string, json = {
|
|
258
|
+
string: string,
|
|
259
|
+
statement: statement,
|
|
260
|
+
metavariable: metavariable
|
|
261
|
+
};
|
|
262
|
+
return json;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
], [
|
|
266
|
+
{
|
|
267
|
+
key: "fromJSON",
|
|
268
|
+
value: function fromJSON(json, fileContext) {
|
|
269
|
+
var string = json.string, context = fileContext, statementSubstitutionString = string, statementSubstitutionNodeAndTokens = _statement.default.fromStatementSubstitutionString(statementSubstitutionString, context), node = statementSubstitutionNodeAndTokens.getNode(), tokens = statementSubstitutionNodeAndTokens.getTokens(), resolved = true, statement = (0, _json.statementFromJSON)(json, fileContext), metavariable = (0, _json.metavariableFromJSON)(json, fileContext), substitution = null, statementSubstitution = new StatementSubstitution(string, node, tokens, resolved, statement, metavariable, substitution);
|
|
270
|
+
return statementSubstitution;
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
key: "fromStatementAndMetavariable",
|
|
275
|
+
value: function fromStatementAndMetavariable(statement, metavariable, context) {
|
|
276
|
+
var statementNode = statement.getNode();
|
|
277
|
+
statementNode = (0, _brackets.stripBracketsFromStatementNode)(statementNode); ///
|
|
278
|
+
var Statement = _shim.default.Statement;
|
|
279
|
+
statement = Statement.fromStatementNode(statementNode, context);
|
|
280
|
+
var string = stringFromStatementAndMetavariable(statement, metavariable), statementSubstitutionString = string, statementSubstitutionNodeAndTokens = _statement.default.fromStatementSubstitutionString(statementSubstitutionString, context), node = statementSubstitutionNodeAndTokens.getNode(), tokens = statementSubstitutionNodeAndTokens.getTokens(), resolved = true, substitution = null, statementSubstitution = new StatementSubstitution(string, node, tokens, resolved, statement, metavariable, substitution);
|
|
281
|
+
return statementSubstitution;
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
key: "fromStatementMetavariableAndSubstitution",
|
|
286
|
+
value: function fromStatementMetavariableAndSubstitution(statement, metavariable, substitution, context) {
|
|
287
|
+
var statementNode = statement.getNode();
|
|
288
|
+
statementNode = (0, _brackets.stripBracketsFromStatementNode)(statementNode); ///
|
|
289
|
+
var Statement = _shim.default.Statement;
|
|
290
|
+
statement = Statement.fromStatementNode(statementNode, context);
|
|
291
|
+
var string = stringFromStatementMetavariableAndSubstitution(statement, metavariable, substitution, context), statementSubstitutionString = string, statementSubstitutionNodeAndTokens = _statement.default.fromStatementSubstitutionString(statementSubstitutionString, context), node = statementSubstitutionNodeAndTokens.getNode(), tokens = statementSubstitutionNodeAndTokens.getTokens(), resolved = false, statementSubstitution = new StatementSubstitution(string, node, tokens, resolved, statement, metavariable, substitution);
|
|
292
|
+
return statementSubstitution;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
]);
|
|
296
|
+
return StatementSubstitution;
|
|
297
|
+
}(_substitution.default);
|
|
298
|
+
Object.assign(_shim.default, {
|
|
299
|
+
StatementSubstitution: StatementSubstitution
|
|
300
|
+
});
|
|
301
|
+
var _default = StatementSubstitution;
|
|
302
|
+
function stringFromStatementAndMetavariable(statement, metavariable) {
|
|
303
|
+
var statementString = statement.getString(), metavariableString = metavariable.getString(), string = "[".concat(statementString, " for ").concat(metavariableString, "]");
|
|
304
|
+
return string;
|
|
305
|
+
}
|
|
306
|
+
function stringFromStatementMetavariableAndSubstitution(statement, metavariable, substitution) {
|
|
307
|
+
var string;
|
|
308
|
+
var statementString = statement.getString(), metavariableString = metavariable.getString();
|
|
309
|
+
if (substitution === null) {
|
|
310
|
+
string = "[".concat(statementString, " for ").concat(metavariableString, "]");
|
|
311
|
+
} else {
|
|
312
|
+
var substitutionString = substitution.getString();
|
|
313
|
+
string = "[".concat(statementString, " for ").concat(metavariableString).concat(substitutionString, "]");
|
|
314
|
+
}
|
|
315
|
+
return string;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdWJzdGl0dXRpb24vc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi4vc2hpbVwiO1xuaW1wb3J0IFN1YnN0aXR1dGlvbiBmcm9tIFwiLi4vc3Vic3RpdHV0aW9uXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9tZXRhTGV2ZWxcIjtcbmltcG9ydCBTdGF0ZW1lbnRTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zIGZyb20gXCIuLi9ub2RlQW5kVG9rZW5zL3N1YnN0aXR1dGlvbi9zdGF0ZW1lbnRcIjtcblxuaW1wb3J0IHsgc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9icmFja2V0c1wiO1xuaW1wb3J0IHsgc3RhdGVtZW50RnJvbUpTT04sIHN0YXRlbWVudFRvU3RhdGVtZW50SlNPTiwgbWV0YXZhcmlhYmxlRnJvbUpTT04sIG1ldGF2YXJpYWJsZVRvTWV0YXZhcmlhYmxlSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5jbGFzcyBTdGF0ZW1lbnRTdWJzdGl0dXRpb24gZXh0ZW5kcyBTdWJzdGl0dXRpb24ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIHRva2VucywgcmVzb2x2ZWQsIHN0YXRlbWVudCwgbWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb24pIHtcbiAgICBzdXBlcihzdHJpbmcsIG5vZGUsIHRva2Vucyk7XG5cbiAgICB0aGlzLnJlc29sdmVkID0gcmVzb2x2ZWQ7XG4gICAgdGhpcy5zdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7XG4gICAgdGhpcy5tZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGU7XG4gICAgdGhpcy5zdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb247XG4gIH1cblxuICBpc1Jlc29sdmVkKCkge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGU7XG4gIH1cblxuICBnZXRTdWJzdGl0dXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlTm9kZSgpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gdGhpcy5tZXRhdmFyaWFibGUuZ2V0Tm9kZSgpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZU5vZGU7XG4gIH1cblxuICBpc1NpbXBsZSgpIHtcbiAgICBjb25zdCBzaW1wbGUgPSAodGhpcy5zdWJzdGl0dXRpb24gPT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHNpbXBsZTtcbiAgfVxuXG4gIG1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSB7XG4gICAgc3RhdGVtZW50Tm9kZSA9IHN0cmlwQnJhY2tldHNGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTsgLy8vXG5cbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHRoaXMuc3RhdGVtZW50Lm1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIHJldHVybiBzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZS5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7IH1cblxuICBtYXRjaFN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGxldCBzdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcztcblxuICAgIGlmICgoc3Vic3RpdHV0aW9uTm9kZSA9PT0gbnVsbCkgJiYgKHRoaXMuc3Vic3RpdHV0aW9uID09PSBudWxsKSkge1xuICAgICAgc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoKHN1YnN0aXR1dGlvbk5vZGUgPT09IG51bGwpICYmICh0aGlzLnN1YnN0aXR1dGlvbiAhPT0gbnVsbCkpIHtcbiAgICAgIHN1YnN0aXR1dGlvbk5vZGVNYXRjaGVzID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICgoc3Vic3RpdHV0aW9uTm9kZSAhPT0gbnVsbCkgJiYgKHRoaXMuc3Vic3RpdHV0aW9uID09PSBudWxsKSkge1xuICAgICAgc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSB0aGlzLnN1YnN0aXR1dGlvbi5tYXRjaFN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbk5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25Ob2RlKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hTdWJzdGl0dXRpb25Ob2RlKHN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyA9IChtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcyAmJiBzdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGVNYXRjaGVzO1xuICB9XG5cbiAgcmVzb2x2ZShzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gdGhpcy5nZXRNZXRhdmFyaWFibGVOb2RlKCksXG4gICAgICAgICAgc2ltcGxlU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kU2ltcGxlU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgaWYgKHNpbXBsZVN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgc3BlY2lmaWNDb250ZXh0LnRyYWNlKGBSZXNvbHZpbmcgdGhlICR7c3Vic3RpdHV0aW9uU3RyaW5nfSBzdWJzdGl0dXRpb24uLi5gKTtcblxuICAgICAgY29uc3QgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tQ29udGV4dEFuZFRva2Vucyhjb250ZXh0LCB0aGlzLnRva2Vucyk7XG5cbiAgICAgIGdlbmVyYWxDb250ZXh0ID0gbG9jYWxDb250ZXh0OyAgLy8vXG5cbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHNpbXBsZVN1YnN0aXR1dGlvbiwgIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uUmVzb2x2ZWQgPSBzdWJzdGl0dXRpb24ucmVzb2x2ZVN1YnN0aXR1dGlvbih0aGlzLnN1YnN0aXR1dGlvbiwgdGhpcy5zdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICB0aGlzLnJlc29sdmVkID0gc3Vic3RpdHV0aW9uUmVzb2x2ZWQ7IC8vL1xuXG4gICAgICBpZiAodGhpcy5yZXNvbHZlZCkge1xuICAgICAgICBzcGVjaWZpY0NvbnRleHQuZGVidWcoYC4uLnJlc29sdmVkIHRoZSAke3N1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgc3Vic3RpdHV0aW9uUmVzb2x2ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1YnN0aXR1dGlvblN0cmluZyA9IHN1YnN0aXR1dGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIHNwZWNpZmljQ29udGV4dC50cmFjZShgUmVzb2x2aW5nIHRoZSAke3N1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBnZW5lcmFsU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICBzcGVjaWZpY1N1YnN0aXR1dGlvbiA9IHRoaXMudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzcGVjaWZpY0NvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7ICAvLy9cblxuICAgIGlmIChzcGVjaWZpY1N1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgc3Vic3RpdHV0aW9ucy5zbmFwc2hvdCgpO1xuXG4gICAgICBjb25zdCBnZW5lcmFsU3Vic3RpdHV0aW9uU3RyaW5nID0gZ2VuZXJhbFN1YnN0aXR1dGlvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHNwZWNpZmljU3Vic3RpdHV0aW9uU3RyaW5nID0gc3BlY2lmaWNTdWJzdGl0dXRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICAgIHNwZWNpZmljQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NwZWNpZmljU3Vic3RpdHV0aW9uU3RyaW5nfScgc3Vic3RpdHV0aW9uIHdpdGggdGhlICcke2dlbmVyYWxTdWJzdGl0dXRpb25TdHJpbmd9JyBzdWJzdGl0dXRpb24uLi5gKTtcblxuICAgICAgY29uc3QgZ2VuZXJhbFN1YnN0aXR1dGlvbk5vZGUgPSBnZW5lcmFsU3Vic3RpdHV0aW9uLmdldE5vZGUoKSxcbiAgICAgICAgICAgIHNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSA9IHNwZWNpZmljU3Vic3RpdHV0aW9uLmdldE5vZGUoKSxcbiAgICAgICAgICAgIGdlbmVyYWxTdWJzdGl0dXRpb25Ub2tlbnMgPSBnZW5lcmFsU3Vic3RpdHV0aW9uLmdldFRva2VucygpLFxuICAgICAgICAgICAgc3BlY2lmaWNTdWJzdGl0dXRpb25Ub2tlbnMgPSBzcGVjaWZpY1N1YnN0aXR1dGlvbi5nZXRUb2tlbnMoKTtcblxuICAgICAgbGV0IHRva2VucyxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIGxvY2FsQ29udGV4dDtcblxuICAgICAgdG9rZW5zID0gZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VuczsgLy8vXG5cbiAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tQ29udGV4dEFuZFRva2Vucyhjb250ZXh0LCB0b2tlbnMpO1xuXG4gICAgICBnZW5lcmFsQ29udGV4dCA9IGxvY2FsQ29udGV4dDsgIC8vL1xuXG4gICAgICB0b2tlbnMgPSBzcGVjaWZpY1N1YnN0aXR1dGlvblRva2VuczsgIC8vL1xuXG4gICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tQ29udGV4dEFuZFRva2Vucyhjb250ZXh0LCB0b2tlbnMpO1xuXG4gICAgICBzcGVjaWZpY0NvbnRleHQgPSBsb2NhbENvbnRleHQ7IC8vL1xuXG4gICAgICBjb25zdCBnZW5lcmFsTm9kZSA9IGdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUsICAvLy8sXG4gICAgICAgICAgICB1bmlmaWVkQXRNZXRhTGV2ZWwgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5KGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAodW5pZmllZEF0TWV0YUxldmVsKSB7XG4gICAgICAgIHNwZWNpZmljQ29udGV4dC50cmFjZShgLi4udW5pZmllZCB0aGUgJyR7c3BlY2lmaWNTdWJzdGl0dXRpb25TdHJpbmd9JyBzdWJzdGl0dXRpb24gd2l0aCB0aGUgJyR7Z2VuZXJhbFN1YnN0aXR1dGlvblN0cmluZ30nIHN1YnN0aXR1dGlvbi5gKTtcbiAgICAgIH1cblxuICAgICAgdW5pZmllZEF0TWV0YUxldmVsID9cbiAgICAgICAgc3Vic3RpdHV0aW9ucy5jb250aW51ZSgpIDpcbiAgICAgICAgICBzdWJzdGl0dXRpb25zLnJvbGxiYWNrKHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgIHN1YnN0aXR1dGlvblJlc29sdmVkID0gdW5pZmllZEF0TWV0YUxldmVsOyAgLy8vXG4gICAgfVxuXG4gICAgaWYgKHN1YnN0aXR1dGlvblJlc29sdmVkKSB7XG4gICAgICBzcGVjaWZpY0NvbnRleHQuZGVidWcoYC4uLnJlc29sdmVkIHRoZSAke3N1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25SZXNvbHZlZDtcbiAgfVxuXG4gIHVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCBzcGVjaWZpY1N1YnN0aXR1dGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCB7IFN1YnN0aXR1dGlvbnMgfSA9IHNoaW0sXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gdGhpcy5zdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVkKSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25zTGVuZ3RoID0gc3Vic3RpdHV0aW9ucy5nZXRMZW5ndGgoKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbnNMZW5ndGggPT09IDEpIHtcbiAgICAgICAgY29uc3QgZmlyc3RTdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmdldEZpcnN0U3Vic3RpdHV0aW9uKCk7XG5cbiAgICAgICAgc3BlY2lmaWNTdWJzdGl0dXRpb24gPSBmaXJzdFN1YnN0aXR1dGlvbjsgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwZWNpZmljU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZUpTT04gPSBtZXRhdmFyaWFibGVUb01ldGF2YXJpYWJsZUpTT04odGhpcy5tZXRhdmFyaWFibGUpLFxuICAgICAgICAgIHN0YXRlbWVudEpTT04gPSBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04odGhpcy5zdGF0ZW1lbnQpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZUpTT04sICAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRKU09OLCAgLy8vXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5zdHJpbmcsXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIHN0YXRlbWVudCxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgIGNvbnRleHQgPSBmaWxlQ29udGV4dCwgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGVBbmRUb2tlbnMgPSBTdGF0ZW1lbnRTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zLmZyb21TdGF0ZW1lbnRTdWJzdGl0dXRpb25TdHJpbmcoc3RhdGVtZW50U3Vic3RpdHV0aW9uU3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICBub2RlID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZUFuZFRva2Vucy5nZXROb2RlKCksXG4gICAgICAgICAgdG9rZW5zID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZUFuZFRva2Vucy5nZXRUb2tlbnMoKSxcbiAgICAgICAgICByZXNvbHZlZCA9IHRydWUsXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdWJzdGl0dXRpb24gPSBudWxsLCAgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3Vic3RpdHV0aW9uID0gbmV3IFN0YXRlbWVudFN1YnN0aXR1dGlvbihzdHJpbmcsIG5vZGUsIHRva2VucywgcmVzb2x2ZWQsIHN0YXRlbWVudCwgbWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb24pO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50QW5kTWV0YXZhcmlhYmxlKHN0YXRlbWVudCwgbWV0YXZhcmlhYmxlLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpO1xuXG4gICAgc3RhdGVtZW50Tm9kZSA9IHN0cmlwQnJhY2tldHNGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTsgLy8vXG5cbiAgICBjb25zdCB7IFN0YXRlbWVudCB9ID0gc2hpbTtcblxuICAgIHN0YXRlbWVudCA9IFN0YXRlbWVudC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IHN0cmluZyA9IHN0cmluZ0Zyb21TdGF0ZW1lbnRBbmRNZXRhdmFyaWFibGUoc3RhdGVtZW50LCBtZXRhdmFyaWFibGUpLFxuICAgICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGVBbmRUb2tlbnMgPSBTdGF0ZW1lbnRTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zLmZyb21TdGF0ZW1lbnRTdWJzdGl0dXRpb25TdHJpbmcoc3RhdGVtZW50U3Vic3RpdHV0aW9uU3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICBub2RlID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZUFuZFRva2Vucy5nZXROb2RlKCksXG4gICAgICAgICAgdG9rZW5zID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZUFuZFRva2Vucy5nZXRUb2tlbnMoKSxcbiAgICAgICAgICByZXNvbHZlZCA9IHRydWUsXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gbnVsbCxcbiAgICAgICAgICBzdGF0ZW1lbnRTdWJzdGl0dXRpb24gPSBuZXcgU3RhdGVtZW50U3Vic3RpdHV0aW9uKHN0cmluZywgbm9kZSwgdG9rZW5zLCByZXNvbHZlZCwgc3RhdGVtZW50LCBtZXRhdmFyaWFibGUsIHN1YnN0aXR1dGlvbik7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50U3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnRNZXRhdmFyaWFibGVBbmRTdWJzdGl0dXRpb24oc3RhdGVtZW50LCBtZXRhdmFyaWFibGUsIHN1YnN0aXR1dGlvbiwgY29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKTtcblxuICAgIHN0YXRlbWVudE5vZGUgPSBzdHJpcEJyYWNrZXRzRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7IC8vL1xuXG4gICAgY29uc3QgeyBTdGF0ZW1lbnQgfSA9IHNoaW07XG5cbiAgICBzdGF0ZW1lbnQgPSBTdGF0ZW1lbnQuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICBjb25zdCBzdHJpbmcgPSBzdHJpbmdGcm9tU3RhdGVtZW50TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uKHN0YXRlbWVudCwgbWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb24sIGNvbnRleHQpLFxuICAgICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGVBbmRUb2tlbnMgPSBTdGF0ZW1lbnRTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zLmZyb21TdGF0ZW1lbnRTdWJzdGl0dXRpb25TdHJpbmcoc3RhdGVtZW50U3Vic3RpdHV0aW9uU3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICBub2RlID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZUFuZFRva2Vucy5nZXROb2RlKCksXG4gICAgICAgICAgdG9rZW5zID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZUFuZFRva2Vucy5nZXRUb2tlbnMoKSxcbiAgICAgICAgICByZXNvbHZlZCA9IGZhbHNlLFxuICAgICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvbiA9IG5ldyBTdGF0ZW1lbnRTdWJzdGl0dXRpb24oc3RyaW5nLCBub2RlLCB0b2tlbnMsIHJlc29sdmVkLCBzdGF0ZW1lbnQsIG1ldGF2YXJpYWJsZSwgc3Vic3RpdHV0aW9uKTtcblxuICAgIHJldHVybiBzdGF0ZW1lbnRTdWJzdGl0dXRpb247XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihzaGltLCB7XG4gIFN0YXRlbWVudFN1YnN0aXR1dGlvblxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0YXRlbWVudFN1YnN0aXR1dGlvbjtcblxuZnVuY3Rpb24gc3RyaW5nRnJvbVN0YXRlbWVudEFuZE1ldGF2YXJpYWJsZShzdGF0ZW1lbnQsIG1ldGF2YXJpYWJsZSkge1xuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IG1ldGF2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgc3RyaW5nID0gYFske3N0YXRlbWVudFN0cmluZ30gZm9yICR7bWV0YXZhcmlhYmxlU3RyaW5nfV1gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21TdGF0ZW1lbnRNZXRhdmFyaWFibGVBbmRTdWJzdGl0dXRpb24oc3RhdGVtZW50LCBtZXRhdmFyaWFibGUsIHN1YnN0aXR1dGlvbikge1xuICBsZXQgc3RyaW5nO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpO1xuXG4gIGlmIChzdWJzdGl0dXRpb24gPT09IG51bGwpIHtcbiAgICBzdHJpbmcgPSBgWyR7c3RhdGVtZW50U3RyaW5nfSBmb3IgJHttZXRhdmFyaWFibGVTdHJpbmd9XWA7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uU3RyaW5nID0gc3Vic3RpdHV0aW9uLmdldFN0cmluZygpO1xuXG4gICAgc3RyaW5nID0gYFske3N0YXRlbWVudFN0cmluZ30gZm9yICR7bWV0YXZhcmlhYmxlU3RyaW5nfSR7c3Vic3RpdHV0aW9uU3RyaW5nfV1gO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJTdGF0ZW1lbnRTdWJzdGl0dXRpb24iLCJzdHJpbmciLCJub2RlIiwidG9rZW5zIiwicmVzb2x2ZWQiLCJzdGF0ZW1lbnQiLCJtZXRhdmFyaWFibGUiLCJzdWJzdGl0dXRpb24iLCJpc1Jlc29sdmVkIiwiZ2V0U3RhdGVtZW50IiwiZ2V0TWV0YXZhcmlhYmxlIiwiZ2V0U3Vic3RpdHV0aW9uIiwiZ2V0TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJnZXROb2RlIiwiaXNTaW1wbGUiLCJzaW1wbGUiLCJtYXRjaFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwic3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJtYXRjaFN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb25Ob2RlIiwic3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlIiwibWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMiLCJtZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMiLCJyZXNvbHZlIiwic3Vic3RpdHV0aW9ucyIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0Iiwic3Vic3RpdHV0aW9uU3RyaW5nIiwic2ltcGxlU3Vic3RpdHV0aW9uIiwiZmluZFNpbXBsZVN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZSIsInRyYWNlIiwiY29udGV4dCIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21Db250ZXh0QW5kVG9rZW5zIiwic3Vic3RpdHV0aW9uUmVzb2x2ZWQiLCJyZXNvbHZlU3Vic3RpdHV0aW9uIiwiZGVidWciLCJnZXRTdHJpbmciLCJnZW5lcmFsU3Vic3RpdHV0aW9uIiwic3BlY2lmaWNTdWJzdGl0dXRpb24iLCJ1bmlmeVN0YXRlbWVudCIsInNuYXBzaG90IiwiZ2VuZXJhbFN1YnN0aXR1dGlvblN0cmluZyIsInNwZWNpZmljU3Vic3RpdHV0aW9uU3RyaW5nIiwiZ2VuZXJhbFN1YnN0aXR1dGlvbk5vZGUiLCJzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUiLCJnZW5lcmFsU3Vic3RpdHV0aW9uVG9rZW5zIiwiZ2V0VG9rZW5zIiwic3BlY2lmaWNTdWJzdGl0dXRpb25Ub2tlbnMiLCJnZW5lcmFsTm9kZSIsInNwZWNpZmljTm9kZSIsInVuaWZpZWRBdE1ldGFMZXZlbCIsIm1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeSIsImNvbnRpbnVlIiwicm9sbGJhY2siLCJTdWJzdGl0dXRpb25zIiwic2hpbSIsImZyb21Ob3RoaW5nIiwic3RhdGVtZW50VW5pZmllZCIsInN1YnN0aXR1dGlvbnNMZW5ndGgiLCJnZXRMZW5ndGgiLCJmaXJzdFN1YnN0aXR1dGlvbiIsImdldEZpcnN0U3Vic3RpdHV0aW9uIiwidG9KU09OIiwibWV0YXZhcmlhYmxlSlNPTiIsIm1ldGF2YXJpYWJsZVRvTWV0YXZhcmlhYmxlSlNPTiIsInN0YXRlbWVudEpTT04iLCJzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJmaWxlQ29udGV4dCIsInN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZyIsInN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGVBbmRUb2tlbnMiLCJTdGF0ZW1lbnRTdWJzdGl0dXRpb25Ob2RlQW5kVG9rZW5zIiwiZnJvbVN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZyIsInN0YXRlbWVudEZyb21KU09OIiwibWV0YXZhcmlhYmxlRnJvbUpTT04iLCJzdGF0ZW1lbnRTdWJzdGl0dXRpb24iLCJmcm9tU3RhdGVtZW50QW5kTWV0YXZhcmlhYmxlIiwiU3RhdGVtZW50IiwiZnJvbVN0YXRlbWVudE5vZGUiLCJzdHJpbmdGcm9tU3RhdGVtZW50QW5kTWV0YXZhcmlhYmxlIiwiZnJvbVN0YXRlbWVudE1ldGF2YXJpYWJsZUFuZFN1YnN0aXR1dGlvbiIsInN0cmluZ0Zyb21TdGF0ZW1lbnRNZXRhdmFyaWFibGVBbmRTdWJzdGl0dXRpb24iLCJTdWJzdGl0dXRpb24iLCJPYmplY3QiLCJhc3NpZ24iLCJzdGF0ZW1lbnRTdHJpbmciLCJtZXRhdmFyaWFibGVTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQThRQTs7O2VBQUE7OzsyREE1UWlCO21FQUNROzREQUNBO2dFQUNJO2dFQUNrQjt3QkFFQTtvQkFDbUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEgsSUFBQSxBQUFNQSxzQ0FBTjtjQUFNQTthQUFBQSxzQkFDUUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLFlBQVksRUFBRUMsWUFBWTtnQ0FEN0VQOztnQkFFRixrQkFGRUE7WUFFSUM7WUFBUUM7WUFBTUM7O1FBRXBCLE1BQUtDLFFBQVEsR0FBR0E7UUFDaEIsTUFBS0MsU0FBUyxHQUFHQTtRQUNqQixNQUFLQyxZQUFZLEdBQUdBO1FBQ3BCLE1BQUtDLFlBQVksR0FBR0E7OztrQkFQbEJQOztZQVVKUSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFFBQVE7WUFDdEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFNBQVM7WUFDdkI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFlBQVk7WUFDMUI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFlBQVk7WUFDMUI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsbUJBQW1CLElBQUksQ0FBQ1AsWUFBWSxDQUFDUSxPQUFPO2dCQUVsRCxPQUFPRDtZQUNUOzs7WUFFQUUsS0FBQUE7bUJBQUFB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
|