occam-furtle 2.0.73 → 2.0.75
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/dom/assignment/array.js +16 -3
- package/lib/dom/assignment/object.js +10 -7
- package/lib/dom/assignment/variable.js +150 -0
- package/lib/dom/assignments/variable.js +149 -0
- package/lib/dom/procedure/anonymous.js +10 -3
- package/lib/dom/procedureCall/anonymous.js +141 -0
- package/lib/dom/{returnStatement.js → statement/return.js} +3 -3
- package/lib/dom/value.js +51 -20
- package/lib/dom/values.js +9 -2
- package/lib/dom/variable.js +45 -77
- package/lib/index.js +5 -4
- package/package.json +4 -4
- package/src/dom/assignment/array.js +18 -3
- package/src/dom/assignment/object.js +12 -9
- package/src/dom/assignment/variable.js +69 -0
- package/src/dom/assignments/variable.js +80 -0
- package/src/dom/procedure/anonymous.js +11 -2
- package/src/dom/procedureCall/anonymous.js +61 -0
- package/src/dom/{returnStatement.js → statement/return.js} +3 -3
- package/src/dom/value.js +57 -23
- package/src/dom/values.js +10 -1
- package/src/dom/variable.js +53 -83
- package/src/index.js +4 -4
- package/lib/dom/assignment.js +0 -160
- package/lib/dom/declaration/variables.js +0 -148
- package/lib/utilities/node.js +0 -21
- package/src/dom/assignment.js +0 -84
- package/src/dom/declaration/variables.js +0 -82
- package/src/utilities/node.js +0 -16
package/lib/dom/variable.js
CHANGED
|
@@ -90,15 +90,14 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
90
90
|
return newObj;
|
|
91
91
|
}
|
|
92
92
|
var _Variable;
|
|
93
|
-
var someVariableNodeQuery = (0, _query.nodeQuery)("/some/variable"), valueVariableNodeQuery = (0, _query.nodeQuery)("/value/variable"), nodeQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodeQuery/variable"), nodesQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodesQuery/variable"), variableNameTerminalNodeQuery = (0, _query.nodeQuery)("/variable/@name"), arrayAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/arrayAssignment/variable"), objectAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/objectAssignment/variable");
|
|
93
|
+
var someVariableNodeQuery = (0, _query.nodeQuery)("/some/variable"), valueVariableNodeQuery = (0, _query.nodeQuery)("/value/variable"), nodeQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodeQuery/variable"), nodesQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodesQuery/variable"), variableNameTerminalNodeQuery = (0, _query.nodeQuery)("/variable/@name"), arrayAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/arrayAssignment/variable"), objectAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/objectAssignment/variable"), variableAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/variableAssignment/variable");
|
|
94
94
|
var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
95
|
-
function Variable(string, type, name, value
|
|
95
|
+
function Variable(string, type, name, value) {
|
|
96
96
|
_class_call_check(this, Variable);
|
|
97
97
|
this.string = string;
|
|
98
98
|
this.type = type;
|
|
99
99
|
this.name = name;
|
|
100
100
|
this.value = value;
|
|
101
|
-
this.assignment = assignment;
|
|
102
101
|
}
|
|
103
102
|
_create_class(Variable, [
|
|
104
103
|
{
|
|
@@ -125,42 +124,6 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
125
124
|
return this.value;
|
|
126
125
|
}
|
|
127
126
|
},
|
|
128
|
-
{
|
|
129
|
-
key: "getAssignment",
|
|
130
|
-
value: function getAssignment() {
|
|
131
|
-
return this.assignment;
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
key: "setString",
|
|
136
|
-
value: function setString(string) {
|
|
137
|
-
this.string = string;
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
key: "setType",
|
|
142
|
-
value: function setType(type) {
|
|
143
|
-
this.type = type;
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
key: "setName",
|
|
148
|
-
value: function setName(name) {
|
|
149
|
-
this.name = name;
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
key: "setValue",
|
|
154
|
-
value: function setValue(value) {
|
|
155
|
-
this.value = value;
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
key: "setAssignment",
|
|
160
|
-
value: function setAssignment(assignment) {
|
|
161
|
-
this.assignment = assignment;
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
127
|
{
|
|
165
128
|
key: "matchVariableName",
|
|
166
129
|
value: function matchVariableName(variableName) {
|
|
@@ -168,42 +131,39 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
168
131
|
return nameMatches;
|
|
169
132
|
}
|
|
170
133
|
},
|
|
134
|
+
{
|
|
135
|
+
key: "evaluate",
|
|
136
|
+
value: function evaluate(context) {
|
|
137
|
+
var variableString = this.string; ///
|
|
138
|
+
context.trace("Evaluating the '".concat(variableString, "' variable..."));
|
|
139
|
+
var variableName = this.name, variablePresent = context.isVariablePresentByVariableName(variableName);
|
|
140
|
+
if (!variablePresent) {
|
|
141
|
+
var message = "The '".concat(variableString, "; variable is not present.'"), exception = _exception.default.fromMessage(message);
|
|
142
|
+
throw exception;
|
|
143
|
+
}
|
|
144
|
+
var variable = context.findVariableByVariableName(variableName), value = variable.getValue(), valueString = value.asString(context);
|
|
145
|
+
context.debug("...evaluated the '".concat(variableString, "' variable to the ").concat(valueString, " value."));
|
|
146
|
+
return value;
|
|
147
|
+
}
|
|
148
|
+
},
|
|
171
149
|
{
|
|
172
150
|
key: "assign",
|
|
173
151
|
value: function assign(context) {
|
|
174
|
-
if (this.assignment === null) {
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
152
|
var variableName = this.name, variableString = this.string, variablePresent = context.isVariablePresentByVariableName(variableName);
|
|
178
153
|
context.trace("Assigning a value to the '".concat(variableString, "' variable..."));
|
|
179
154
|
if (!variablePresent) {
|
|
180
155
|
var message = "The '".concat(variableString, "' variable is not present."), exception = _exception.default.fromMessage(message);
|
|
181
156
|
throw exception;
|
|
182
157
|
}
|
|
183
|
-
var value = this.
|
|
158
|
+
var value = this.value.evaluate(context), valueType = value.getType(), variableType = this.type;
|
|
184
159
|
if (valueType !== variableType) {
|
|
185
160
|
var message1 = "The '".concat(variableString, " variable's '").concat(variableType, "' type does not match the assigned value's '").concat(valueType, "' type.'"), exception1 = _exception.default.fromMessage(message1);
|
|
186
161
|
throw exception1;
|
|
187
162
|
}
|
|
188
|
-
|
|
163
|
+
this.value = value;
|
|
189
164
|
var valueString = value.asString(context);
|
|
190
165
|
context.debug("...assigned the ".concat(valueString, " value to the '").concat(variableString, "' variable."));
|
|
191
166
|
}
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
key: "evaluate",
|
|
195
|
-
value: function evaluate(context) {
|
|
196
|
-
var variableString = this.string; ///
|
|
197
|
-
context.trace("Evaluating the '".concat(variableString, "' variable..."));
|
|
198
|
-
var variableName = this.name, variablePresent = context.isVariablePresentByVariableName(variableName);
|
|
199
|
-
if (!variablePresent) {
|
|
200
|
-
var message = "The '".concat(variableString, "; variable is not present.'"), exception = _exception.default.fromMessage(message);
|
|
201
|
-
throw exception;
|
|
202
|
-
}
|
|
203
|
-
var variable = context.findVariableByVariableName(variableName), value = variable.getValue(), valueString = value.asString(context);
|
|
204
|
-
context.debug("...evaluated the '".concat(variableString, "' variable to the ").concat(valueString, " value."));
|
|
205
|
-
return value;
|
|
206
|
-
}
|
|
207
167
|
}
|
|
208
168
|
], [
|
|
209
169
|
{
|
|
@@ -242,14 +202,14 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
242
202
|
{
|
|
243
203
|
key: "fromValueAndParameter",
|
|
244
204
|
value: function fromValueAndParameter(value, parameter, context) {
|
|
245
|
-
var type = parameter.getType(), name = parameter.getName(), string = name,
|
|
205
|
+
var type = parameter.getType(), name = parameter.getName(), string = name, variable = new Variable(string, type, name, value);
|
|
246
206
|
return variable;
|
|
247
207
|
}
|
|
248
208
|
},
|
|
249
209
|
{
|
|
250
210
|
key: "fromVariableNodeAndType",
|
|
251
211
|
value: function fromVariableNodeAndType(variableNode, type, context) {
|
|
252
|
-
var node = variableNode, string = context.nodeAsString(node), name = nameFromVariableNode(variableNode), value = null,
|
|
212
|
+
var node = variableNode, string = context.nodeAsString(node), name = nameFromVariableNode(variableNode), value = null, variable = new Variable(string, type, name, value);
|
|
253
213
|
return variable;
|
|
254
214
|
}
|
|
255
215
|
},
|
|
@@ -268,23 +228,16 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
268
228
|
}
|
|
269
229
|
},
|
|
270
230
|
{
|
|
271
|
-
key: "
|
|
272
|
-
value: function
|
|
273
|
-
var
|
|
231
|
+
key: "fromValueAndNamedParameter",
|
|
232
|
+
value: function fromValueAndNamedParameter(value, namedParameter, context) {
|
|
233
|
+
var asName = namedParameter.getAsName(), name = asName !== null ? asName : namedParameter.getName(), type = namedParameter.getType(), string = name, variable = new Variable(string, type, name, value);
|
|
274
234
|
return variable;
|
|
275
235
|
}
|
|
276
236
|
},
|
|
277
237
|
{
|
|
278
|
-
key: "
|
|
279
|
-
value: function
|
|
280
|
-
var
|
|
281
|
-
return variable;
|
|
282
|
-
}
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
key: "fromTypeVariableNodeAndAssignmentNode",
|
|
286
|
-
value: function fromTypeVariableNodeAndAssignmentNode(type, variableNode, assignmentNode, context) {
|
|
287
|
-
var Assignment = _dom.default.Assignment, node = variableNode, string = context.nodeAsString(node), name = nameFromVariableNode(variableNode), value = null, assignment = Assignment.fromAssignmentNode(assignmentNode, context), variable = new Variable(string, type, name, value, assignment);
|
|
238
|
+
key: "fromTypeAndVariableAssignmentNode",
|
|
239
|
+
value: function fromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context) {
|
|
240
|
+
var variableAssignmentVariableNode = variableAssignmentVariableNodeQuery(variableAssignmentNode), variableNode = variableAssignmentVariableNode, variable = variableFromVariableNode(variableNode, context);
|
|
288
241
|
return variable;
|
|
289
242
|
}
|
|
290
243
|
}
|
|
@@ -292,12 +245,27 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
292
245
|
return Variable;
|
|
293
246
|
}(), _define_property(_Variable, "name", "Variable"), _Variable));
|
|
294
247
|
function variableFromVariableNode(variableNode, context) {
|
|
295
|
-
var Variable = _dom.default.Variable, node = variableNode, string = context.nodeAsString(node), type = null, name = nameFromVariableNode(variableNode), value = null,
|
|
248
|
+
var Variable = _dom.default.Variable, node = variableNode, string = context.nodeAsString(node), type = null, name = nameFromVariableNode(variableNode), value = null, variable = new Variable(string, type, name, value);
|
|
296
249
|
return variable;
|
|
297
250
|
}
|
|
298
251
|
function nameFromVariableNode(variableNode) {
|
|
299
252
|
var variableNameTerminalNode = variableNameTerminalNodeQuery(variableNode), variableNameTerminalNodeContent = variableNameTerminalNode.getContent(), name = variableNameTerminalNodeContent; ///
|
|
300
253
|
return name;
|
|
301
|
-
}
|
|
254
|
+
} /*
|
|
255
|
+
|
|
256
|
+
static fromNamedParameterAndAssignment(namedParameter, assignment, context) {
|
|
257
|
+
const asName = namedParameter.getAsName(),
|
|
258
|
+
name = (asName !== null) ?
|
|
259
|
+
asName : ///
|
|
260
|
+
namedParameter.getName(),
|
|
261
|
+
type = namedParameter.getType(),
|
|
262
|
+
value = null,
|
|
263
|
+
string = name, ///
|
|
264
|
+
variable = new Variable(string, type, name, value, assignment);
|
|
265
|
+
|
|
266
|
+
return variable;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
*/
|
|
302
270
|
|
|
303
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCBzb21lVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc29tZS92YXJpYWJsZVwiKSxcbiAgICAgIHZhbHVlVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFsdWUvdmFyaWFibGVcIiksXG4gICAgICBub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ub2RlUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbm9kZXNRdWVyeS92YXJpYWJsZVwiKSxcbiAgICAgIHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlL0BuYW1lXCIpLFxuICAgICAgYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJyYXlBc3NpZ25tZW50L3ZhcmlhYmxlXCIpLFxuICAgICAgb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL29iamVjdEFzc2lnbm1lbnQvdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSwgYXNzaWdubWVudCkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5hc3NpZ25tZW50ID0gYXNzaWdubWVudDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIGdldEFzc2lnbm1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXNzaWdubWVudDtcbiAgfVxuXG4gIHNldFN0cmluZyhzdHJpbmcpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgfVxuXG4gIHNldFR5cGUodHlwZSkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBzZXROYW1lKG5hbWUpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWUpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBzZXRBc3NpZ25tZW50KGFzc2lnbm1lbnQpIHtcbiAgICB0aGlzLmFzc2lnbm1lbnQgPSBhc3NpZ25tZW50O1xuICB9XG5cbiAgbWF0Y2hWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSB2YXJpYWJsZU5hbWUpO1xuXG4gICAgcmV0dXJuIG5hbWVNYXRjaGVzO1xuICB9XG5cbiAgYXNzaWduKGNvbnRleHQpIHtcbiAgICBpZiAodGhpcy5hc3NpZ25tZW50ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFzc2lnbmluZyBhIHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBpZiAoIXZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBub3QgcHJlc2VudC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmFzc2lnbm1lbnQuZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhcmlhYmxlVHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKTtcblxuICAgIGlmICh2YWx1ZVR5cGUgIT09IHZhcmlhYmxlVHlwZSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9IHZhcmlhYmxlJ3MgJyR7dmFyaWFibGVUeXBlfScgdHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUgYXNzaWduZWQgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlLidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgdmFyaWFibGUuc2V0VmFsdWUodmFsdWUpO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5hc1N0cmluZyhjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmFzc2lnbmVkIHRoZSAke3ZhbHVlU3RyaW5nfSB2YWx1ZSB0byB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gKTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICBpZiAoIXZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9OyB2YXJpYWJsZSBpcyBub3QgcHJlc2VudC4nYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpLFxuICAgICAgICAgIHZhbHVlID0gdmFyaWFibGUuZ2V0VmFsdWUoKSxcbiAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmFzU3RyaW5nKGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIHRvIHRoZSAke3ZhbHVlU3RyaW5nfSB2YWx1ZS5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYXJpYWJsZVwiO1xuXG4gIHN0YXRpYyBmcm9tU29tZU5vZGUoc29tZUxvb3BOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc29tZVZhcmlhYmxlTm9kZSA9IHNvbWVWYXJpYWJsZU5vZGVRdWVyeShzb21lTG9vcE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHNvbWVWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlTm9kZSh2YWx1ZU5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29uc3QgdmFsdWVWYXJpYWJsZU5vZGUgPSB2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5KHZhbHVlTm9kZSk7XG5cbiAgICBpZiAodmFsdWVWYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhbHVlVmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVRdWVyeU5vZGUobm9kZVF1ZXJ5Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGVRdWVyeVZhcmlhYmxlTm9kZSA9IG5vZGVRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5KG5vZGVRdWVyeU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG5vZGVRdWVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZXNRdWVyeU5vZGUobm9kZXNRdWVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlID0gbm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5KG5vZGVzUXVlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYWx1ZUFuZFBhcmFtZXRlcih2YWx1ZSwgcGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IHBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZSA9IHBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgc3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICAgIGFzc2lnbm1lbnQgPSBudWxsLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUsIGFzc2lnbm1lbnQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZU5vZGVBbmRUeXBlKHZhcmlhYmxlTm9kZSwgdHlwZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICBuYW1lID0gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgICAgYXNzaWdubWVudCA9IG51bGwsXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSwgYXNzaWdubWVudCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUFycmF5QXNzaWdubWVudE5vZGUoYXJyYXlBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KGFycmF5QXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT2JqZWN0QXNzaWdubWVudE5vZGUob2JqZWN0QXNzaWdubWVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KG9iamVjdEFzc2lnbm1lbnROb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJhbWV0ZXJBbmRBc3NpZ25tZW50KHBhcmFtZXRlciwgYXNzaWdubWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBwYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBwYXJhbWV0ZXIuZ2V0TmFtZSgpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSwgYXNzaWdubWVudCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5hbWVkUGFyYW1ldGVyQW5kQXNzaWdubWVudChuYW1lZFBhcmFtZXRlciwgYXNzaWdubWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IGFzTmFtZSA9IG5hbWVkUGFyYW1ldGVyLmdldEFzTmFtZSgpLFxuICAgICAgICAgIG5hbWUgPSAoYXNOYW1lICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgYXNOYW1lIDogLy8vXG4gICAgICAgICAgICAgICAgICAgIG5hbWVkUGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICB0eXBlID0gbmFtZWRQYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSwgYXNzaWdubWVudCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVWYXJpYWJsZU5vZGVBbmRBc3NpZ25tZW50Tm9kZSh0eXBlLCB2YXJpYWJsZU5vZGUsIGFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBBc3NpZ25tZW50IH0gPSBkb20sXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBhc3NpZ25tZW50ID0gQXNzaWdubWVudC5mcm9tQXNzaWdubWVudE5vZGUoYXNzaWdubWVudE5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUsIGFzc2lnbm1lbnQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59KTtcblxuZnVuY3Rpb24gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgIHR5cGUgPSBudWxsLFxuICAgICAgICBuYW1lID0gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICBhc3NpZ25tZW50ID0gbnVsbCxcbiAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSwgYXNzaWdubWVudCk7XG5cbiAgcmV0dXJuIHZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpIHtcbiAgY29uc3QgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkodmFyaWFibGVOb2RlKSxcbiAgICAgICAgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudCA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cblxuICByZXR1cm4gbmFtZTtcbn1cbiJdLCJuYW1lcyI6WyJzb21lVmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeSIsImFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5Iiwib2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJWYXJpYWJsZSIsInN0cmluZyIsInR5cGUiLCJuYW1lIiwidmFsdWUiLCJhc3NpZ25tZW50IiwiZ2V0U3RyaW5nIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJnZXRWYWx1ZSIsImdldEFzc2lnbm1lbnQiLCJzZXRTdHJpbmciLCJzZXRUeXBlIiwic2V0TmFtZSIsInNldFZhbHVlIiwic2V0QXNzaWdubWVudCIsIm1hdGNoVmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lIiwibmFtZU1hdGNoZXMiLCJhc3NpZ24iLCJjb250ZXh0IiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwidHJhY2UiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJldmFsdWF0ZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJ2YWx1ZVR5cGUiLCJ2YXJpYWJsZVR5cGUiLCJ2YWx1ZVN0cmluZyIsImFzU3RyaW5nIiwiZGVidWciLCJmcm9tU29tZU5vZGUiLCJzb21lTG9vcE5vZGUiLCJzb21lVmFyaWFibGVOb2RlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVGcm9tVmFyaWFibGVOb2RlIiwiZnJvbVZhbHVlTm9kZSIsInZhbHVlTm9kZSIsInZhbHVlVmFyaWFibGVOb2RlIiwiZnJvbU5vZGVRdWVyeU5vZGUiLCJub2RlUXVlcnlOb2RlIiwibm9kZVF1ZXJ5VmFyaWFibGVOb2RlIiwiZnJvbU5vZGVzUXVlcnlOb2RlIiwibm9kZXNRdWVyeU5vZGUiLCJub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlIiwiZnJvbVZhbHVlQW5kUGFyYW1ldGVyIiwicGFyYW1ldGVyIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiLCJub2RlIiwibm9kZUFzU3RyaW5nIiwibmFtZUZyb21WYXJpYWJsZU5vZGUiLCJmcm9tQXJyYXlBc3NpZ25tZW50Tm9kZSIsImFycmF5QXNzaWdubWVudE5vZGUiLCJhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUiLCJmcm9tT2JqZWN0QXNzaWdubWVudE5vZGUiLCJvYmplY3RBc3NpZ25tZW50Tm9kZSIsIm9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUiLCJmcm9tUGFyYW1ldGVyQW5kQXNzaWdubWVudCIsImZyb21OYW1lZFBhcmFtZXRlckFuZEFzc2lnbm1lbnQiLCJuYW1lZFBhcmFtZXRlciIsImFzTmFtZSIsImdldEFzTmFtZSIsImZyb21UeXBlVmFyaWFibGVOb2RlQW5kQXNzaWdubWVudE5vZGUiLCJhc3NpZ25tZW50Tm9kZSIsIkFzc2lnbm1lbnQiLCJkb20iLCJmcm9tQXNzaWdubWVudE5vZGUiLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUiLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0JBOzs7ZUFBQTs7OzJEQWRnQjtnRUFDTTtxQkFFSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHMUIsSUFBTUEsd0JBQXdCQyxJQUFBQSxnQkFBUyxFQUFDLG1CQUNsQ0MseUJBQXlCRCxJQUFBQSxnQkFBUyxFQUFDLG9CQUNuQ0UsNkJBQTZCRixJQUFBQSxnQkFBUyxFQUFDLHdCQUN2Q0csOEJBQThCSCxJQUFBQSxnQkFBUyxFQUFDLHlCQUN4Q0ksZ0NB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
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCBzb21lVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc29tZS92YXJpYWJsZVwiKSxcbiAgICAgIHZhbHVlVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFsdWUvdmFyaWFibGVcIiksXG4gICAgICBub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ub2RlUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbm9kZXNRdWVyeS92YXJpYWJsZVwiKSxcbiAgICAgIHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlL0BuYW1lXCIpLFxuICAgICAgYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJyYXlBc3NpZ25tZW50L3ZhcmlhYmxlXCIpLFxuICAgICAgb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL29iamVjdEFzc2lnbm1lbnQvdmFyaWFibGVcIiksXG4gICAgICB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZUFzc2lnbm1lbnQvdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBtYXRjaFZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBuYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IHZhcmlhYmxlTmFtZSk7XG5cbiAgICByZXR1cm4gbmFtZU1hdGNoZXM7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKCF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfTsgdmFyaWFibGUgaXMgbm90IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSxcbiAgICAgICAgICB2YWx1ZSA9IHZhcmlhYmxlLmdldFZhbHVlKCksXG4gICAgICAgICAgdmFsdWVTdHJpbmcgPSB2YWx1ZS5hc1N0cmluZyhjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB0byB0aGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBhc3NpZ24oY29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZywgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBBc3NpZ25pbmcgYSB2YWx1ZSB0byB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgaWYgKCF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgaXMgbm90IHByZXNlbnQuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gdGhpcy50eXBlO1xuXG4gICAgaWYgKHZhbHVlVHlwZSAhPT0gdmFyaWFibGVUeXBlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30gdmFyaWFibGUncyAnJHt2YXJpYWJsZVR5cGV9JyB0eXBlIGRvZXMgbm90IG1hdGNoIHRoZSBhc3NpZ25lZCB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmFzU3RyaW5nKGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uYXNzaWduZWQgdGhlICR7dmFsdWVTdHJpbmd9IHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlXCI7XG5cbiAgc3RhdGljIGZyb21Tb21lTm9kZShzb21lTG9vcE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzb21lVmFyaWFibGVOb2RlID0gc29tZVZhcmlhYmxlTm9kZVF1ZXJ5KHNvbWVMb29wTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gc29tZVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFsdWVOb2RlKHZhbHVlTm9kZSwgY29udGV4dCkge1xuICAgIGxldCB2YXJpYWJsZSA9IG51bGw7XG5cbiAgICBjb25zdCB2YWx1ZVZhcmlhYmxlTm9kZSA9IHZhbHVlVmFyaWFibGVOb2RlUXVlcnkodmFsdWVOb2RlKTtcblxuICAgIGlmICh2YWx1ZVZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFsdWVWYXJpYWJsZU5vZGU7IC8vL1xuXG4gICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZVF1ZXJ5Tm9kZShub2RlUXVlcnlOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZVF1ZXJ5VmFyaWFibGVOb2RlID0gbm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkobm9kZVF1ZXJ5Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gbm9kZVF1ZXJ5VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2Rlc1F1ZXJ5Tm9kZShub2Rlc1F1ZXJ5Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGVzUXVlcnlWYXJpYWJsZU5vZGUgPSBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkobm9kZXNRdWVyeU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG5vZGVzUXVlcnlWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlQW5kUGFyYW1ldGVyKHZhbHVlLCBwYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUodmFyaWFibGVOb2RlLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQXJyYXlBc3NpZ25tZW50Tm9kZShhcnJheUFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkoYXJyYXlBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3RBc3NpZ25tZW50Tm9kZShvYmplY3RBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUgPSBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkob2JqZWN0QXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlQW5kTmFtZWRQYXJhbWV0ZXIodmFsdWUsIG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXNOYW1lID0gbmFtZWRQYXJhbWV0ZXIuZ2V0QXNOYW1lKCksXG4gICAgICAgICAgbmFtZSA9IChhc05hbWUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICBhc05hbWUgOiAvLy9cbiAgICAgICAgICAgICAgICAgICAgIG5hbWVkUGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICB0eXBlID0gbmFtZWRQYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIHN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudE5vZGUodHlwZSwgdmFyaWFibGVBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KHZhcmlhYmxlQXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgdHlwZSA9IG51bGwsXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gIHJldHVybiB2YXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gIGNvbnN0IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5KHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG5cbi8qXG5cbiAgc3RhdGljIGZyb21OYW1lZFBhcmFtZXRlckFuZEFzc2lnbm1lbnQobmFtZWRQYXJhbWV0ZXIsIGFzc2lnbm1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBhc05hbWUgPSBuYW1lZFBhcmFtZXRlci5nZXRBc05hbWUoKSxcbiAgICAgICAgICBuYW1lID0gKGFzTmFtZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgIGFzTmFtZSA6IC8vL1xuICAgICAgICAgICAgICAgICAgICBuYW1lZFBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgICAgc3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUsIGFzc2lnbm1lbnQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAqLyJdLCJuYW1lcyI6WyJzb21lVmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeSIsImFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5Iiwib2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5IiwidmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkiLCJkb21Bc3NpZ25lZCIsIlZhcmlhYmxlIiwic3RyaW5nIiwidHlwZSIsIm5hbWUiLCJ2YWx1ZSIsImdldFN0cmluZyIsImdldFR5cGUiLCJnZXROYW1lIiwiZ2V0VmFsdWUiLCJtYXRjaFZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZSIsIm5hbWVNYXRjaGVzIiwiZXZhbHVhdGUiLCJjb250ZXh0IiwidmFyaWFibGVTdHJpbmciLCJ0cmFjZSIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwidmFsdWVTdHJpbmciLCJhc1N0cmluZyIsImRlYnVnIiwiYXNzaWduIiwidmFsdWVUeXBlIiwidmFyaWFibGVUeXBlIiwiZnJvbVNvbWVOb2RlIiwic29tZUxvb3BOb2RlIiwic29tZVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSIsImZyb21WYWx1ZU5vZGUiLCJ2YWx1ZU5vZGUiLCJ2YWx1ZVZhcmlhYmxlTm9kZSIsImZyb21Ob2RlUXVlcnlOb2RlIiwibm9kZVF1ZXJ5Tm9kZSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21Ob2Rlc1F1ZXJ5Tm9kZSIsIm5vZGVzUXVlcnlOb2RlIiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21WYWx1ZUFuZFBhcmFtZXRlciIsInBhcmFtZXRlciIsImZyb21WYXJpYWJsZU5vZGVBbmRUeXBlIiwibm9kZSIsIm5vZGVBc1N0cmluZyIsIm5hbWVGcm9tVmFyaWFibGVOb2RlIiwiZnJvbUFycmF5QXNzaWdubWVudE5vZGUiLCJhcnJheUFzc2lnbm1lbnROb2RlIiwiYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbU9iamVjdEFzc2lnbm1lbnROb2RlIiwib2JqZWN0QXNzaWdubWVudE5vZGUiLCJvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbVZhbHVlQW5kTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImFzTmFtZSIsImdldEFzTmFtZSIsImZyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50Tm9kZSIsInZhcmlhYmxlQXNzaWdubWVudE5vZGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUiLCJkb20iLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUiLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBQTs7OzJEQWZnQjtnRUFDTTtx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
|
package/lib/index.js
CHANGED
|
@@ -35,7 +35,6 @@ var _parameter = /*#__PURE__*/ _interop_require_default(require("./dom/parameter
|
|
|
35
35
|
var _parameters = /*#__PURE__*/ _interop_require_default(require("./dom/parameters"));
|
|
36
36
|
var _nodes = /*#__PURE__*/ _interop_require_default(require("./dom/query/nodes"));
|
|
37
37
|
var _comparison = /*#__PURE__*/ _interop_require_default(require("./dom/comparison"));
|
|
38
|
-
var _assignment = /*#__PURE__*/ _interop_require_default(require("./dom/assignment"));
|
|
39
38
|
var _return = /*#__PURE__*/ _interop_require_default(require("./dom/block/return"));
|
|
40
39
|
var _negated = /*#__PURE__*/ _interop_require_default(require("./dom/value/negated"));
|
|
41
40
|
var _bitwise = /*#__PURE__*/ _interop_require_default(require("./dom/value/bitwise"));
|
|
@@ -43,13 +42,15 @@ var _procedureCall = /*#__PURE__*/ _interop_require_default(require("./dom/proce
|
|
|
43
42
|
var _named = /*#__PURE__*/ _interop_require_default(require("./dom/parameter/named"));
|
|
44
43
|
var _bracketed = /*#__PURE__*/ _interop_require_default(require("./dom/value/bracketed"));
|
|
45
44
|
var _array = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/array"));
|
|
46
|
-
var
|
|
45
|
+
var _return1 = /*#__PURE__*/ _interop_require_default(require("./dom/statement/return"));
|
|
47
46
|
var _named1 = /*#__PURE__*/ _interop_require_default(require("./dom/parameters/named"));
|
|
48
47
|
var _object = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/object"));
|
|
49
48
|
var _conditionalBlocks = /*#__PURE__*/ _interop_require_default(require("./dom/conditionalBlocks"));
|
|
50
49
|
var _anonymous = /*#__PURE__*/ _interop_require_default(require("./dom/procedure/anonymous"));
|
|
50
|
+
var _variable1 = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/variable"));
|
|
51
|
+
var _variable2 = /*#__PURE__*/ _interop_require_default(require("./dom/assignments/variable"));
|
|
51
52
|
var _procedure1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/procedure"));
|
|
52
|
-
var
|
|
53
|
+
var _anonymous1 = /*#__PURE__*/ _interop_require_default(require("./dom/procedureCall/anonymous"));
|
|
53
54
|
var _file = /*#__PURE__*/ _interop_require_default(require("./context/file"));
|
|
54
55
|
var _string = /*#__PURE__*/ _interop_require_default(require("./utilities/string"));
|
|
55
56
|
function _interop_require_default(obj) {
|
|
@@ -58,4 +59,4 @@ function _interop_require_default(obj) {
|
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZG9tL3N0ZXBcIjtcbmltcG9ydCBTb21lIGZyb20gXCIuL2RvbS9zb21lXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vZG9tL2xhYmVsXCI7XG5pbXBvcnQgQmxvY2sgZnJvbSBcIi4vZG9tL2Jsb2NrXCI7XG5pbXBvcnQgRXJyb3IgZnJvbSBcIi4vZG9tL2Vycm9yXCI7XG5pbXBvcnQgVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlXCI7XG5pbXBvcnQgVmFsdWVzIGZyb20gXCIuL2RvbS92YWx1ZXNcIjtcbmltcG9ydCBUZXJuYXJ5IGZyb20gXCIuL2RvbS90ZXJuYXJ5XCI7XG5pbXBvcnQgVmFyaWFibGUgZnJvbSBcIi4vZG9tL3ZhcmlhYmxlXCI7XG5pbXBvcnQgUmVmZXJlbmNlIGZyb20gXCIuL2RvbS9yZWZlcmVuY2VcIjtcbmltcG9ydCBQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZVwiO1xuaW1wb3J0IE5vZGVRdWVyeSBmcm9tIFwiLi9kb20vcXVlcnkvbm9kZVwiO1xuaW1wb3J0IFBhcmFtZXRlciBmcm9tIFwiLi9kb20vcGFyYW1ldGVyXCI7XG5pbXBvcnQgUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVyc1wiO1xuaW1wb3J0IE5vZGVzUXVlcnkgZnJvbSBcIi4vZG9tL3F1ZXJ5L25vZGVzXCI7XG5pbXBvcnQgQ29tcGFyaXNvbiBmcm9tIFwiLi9kb20vY29tcGFyaXNvblwiO1xuaW1wb3J0IFJldHVybkJsb2NrIGZyb20gXCIuL2RvbS9ibG9jay9yZXR1cm5cIjtcbmltcG9ydCBOZWdhdGVkVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlL25lZ2F0ZWRcIjtcbmltcG9ydCBCaXR3aXNlVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlL2JpdHdpc2VcIjtcbmltcG9ydCBQcm9jZWR1cmVDYWxsIGZyb20gXCIuL2RvbS9wcm9jZWR1cmVDYWxsXCI7XG5pbXBvcnQgTmFtZWRQYXJhbWV0ZXIgZnJvbSBcIi4vZG9tL3BhcmFtZXRlci9uYW1lZFwiO1xuaW1wb3J0IEJyYWNrZXRlZFZhbHVlIGZyb20gXCIuL2RvbS92YWx1ZS9icmFja2V0ZWRcIjtcbmltcG9ydCBBcnJheUFzc2lnbWVudCBmcm9tIFwiLi9kb20vYXNzaWdubWVudC9hcnJheVwiO1xuaW1wb3J0IFJldHVyblN0YXRlbWVudCBmcm9tIFwiLi9kb20vc3RhdGVtZW50L3JldHVyblwiO1xuaW1wb3J0IE5hbWVkUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVycy9uYW1lZFwiO1xuaW1wb3J0IE9iamVjdEFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvb2JqZWN0XCI7XG5pbXBvcnQgQ29uZGl0aW9uYWxCbG9ja3MgZnJvbSBcIi4vZG9tL2NvbmRpdGlvbmFsQmxvY2tzXCI7XG5pbXBvcnQgQW5vbnltb3VzUHJvY2VkdXJlIGZyb20gXCIuL2RvbS9wcm9jZWR1cmUvYW5vbnltb3VzXCI7XG5pbXBvcnQgVmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuL2RvbS9hc3NpZ25tZW50L3ZhcmlhYmxlXCI7XG5pbXBvcnQgVmFyaWFibGVBc3NpZ25tZW50cyBmcm9tIFwiLi9kb20vYXNzaWdubWVudHMvdmFyaWFibGVcIjtcbmltcG9ydCBQcm9jZWR1cmVEZWNsYXJhdGlvbiBmcm9tIFwiLi9kb20vZGVjbGFyYXRpb24vcHJvY2VkdXJlXCI7XG5pbXBvcnQgQW5vbnltb3VzUHJvY2VkdXJlQ2FsbCBmcm9tIFwiLi9kb20vcHJvY2VkdXJlQ2FsbC9hbm9ueW1vdXNcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBWYWx1ZXMgfSBmcm9tIFwiLi9kb20vdmFsdWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9maWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN0cmluZ1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbiJdLCJuYW1lcyI6WyJGaWxlQ29udGV4dCIsIlZhbHVlcyIsInN0cmluZ1V0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBb0NvQkEsV0FBVztlQUFYQSxhQUFXOztJQURYQyxNQUFNO2VBQU5BLGVBQU07O0lBRU5DLGVBQWU7ZUFBZkEsZUFBZTs7OzJEQW5DbEI7MkRBQ0E7NERBQ0M7NERBQ0E7NERBQ0E7NERBQ0E7NkRBQ0M7OERBQ0M7K0RBQ0M7Z0VBQ0M7Z0VBQ0E7MkRBQ0E7Z0VBQ0E7aUVBQ0M7NERBQ0E7aUVBQ0E7NkRBQ0M7OERBQ0M7OERBQ0E7b0VBQ0M7NERBQ0M7Z0VBQ0E7NERBQ0E7OERBQ0M7NkRBQ0E7NkRBQ0M7d0VBQ0M7Z0VBQ0M7Z0VBQ0E7Z0VBQ0M7aUVBQ0M7aUVBQ0U7MkRBR0k7NkRBQ0kifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-furtle",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.75",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-furtle",
|
|
7
7
|
"description": "Occam's Furtle language.",
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"necessary": "^14.3.2",
|
|
14
|
-
"occam-grammars": "^1.3.
|
|
14
|
+
"occam-grammars": "^1.3.167"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@swc/core": "^1.5.6",
|
|
18
|
-
"occam-custom-grammars": "^5.0.
|
|
19
|
-
"occam-entities": "^1.0.
|
|
18
|
+
"occam-custom-grammars": "^5.0.1088",
|
|
19
|
+
"occam-entities": "^1.0.298",
|
|
20
20
|
"occam-query": "^4.1.30",
|
|
21
21
|
"watchful-cli": "^1.7.56"
|
|
22
22
|
},
|
|
@@ -85,9 +85,10 @@ export default domAssigned(class ArrayAssigment {
|
|
|
85
85
|
throw exception;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
debugger
|
|
89
|
+
|
|
90
|
+
const { Variable } = dom,
|
|
91
|
+
variable = Variable.fromValueAndParameter(value, parameter, context);
|
|
91
92
|
|
|
92
93
|
context.addVariable(variable);
|
|
93
94
|
|
|
@@ -116,3 +117,17 @@ export default domAssigned(class ArrayAssigment {
|
|
|
116
117
|
return arrayAssignment;
|
|
117
118
|
}
|
|
118
119
|
});
|
|
120
|
+
|
|
121
|
+
/*
|
|
122
|
+
static fromParameterAndAssignment(parameter, assignment, context) {
|
|
123
|
+
const type = parameter.getType(),
|
|
124
|
+
name = parameter.getName(),
|
|
125
|
+
value = null,
|
|
126
|
+
string = name, ///
|
|
127
|
+
variable = new Variable(string, type, name, value, assignment);
|
|
128
|
+
|
|
129
|
+
return variable;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
*/
|
|
@@ -108,15 +108,16 @@ export default domAssigned(class ObjectAssigment {
|
|
|
108
108
|
throw exception;
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
const { Value, Variable
|
|
111
|
+
const { Value, Variable } = dom,
|
|
112
112
|
terminalNode = node, ///
|
|
113
113
|
content = terminalNode.getContent(),
|
|
114
114
|
string = content; ///
|
|
115
115
|
|
|
116
116
|
value = Value.fromString(string, context); ///
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
debugger
|
|
119
|
+
|
|
120
|
+
const variable = Variable.fromValueAndNamedParameter(value, namedParameter, context);
|
|
120
121
|
|
|
121
122
|
context.addVariable(variable);
|
|
122
123
|
|
|
@@ -138,13 +139,14 @@ export default domAssigned(class ObjectAssigment {
|
|
|
138
139
|
nodeTerminalNode = node.isTerminalNode(),
|
|
139
140
|
terminal = nodeTerminalNode; ///
|
|
140
141
|
|
|
141
|
-
const { Value, Variable
|
|
142
|
+
const { Value, Variable } = dom,
|
|
142
143
|
boolean = terminal; ///
|
|
143
144
|
|
|
144
145
|
value = Value.fromBoolean(boolean, context); ///
|
|
145
146
|
|
|
146
|
-
|
|
147
|
-
|
|
147
|
+
debugger
|
|
148
|
+
|
|
149
|
+
const variable = Variable.fromValueAndNamedParameter(value, namedParameter, context);
|
|
148
150
|
|
|
149
151
|
context.addVariable(variable);
|
|
150
152
|
|
|
@@ -173,15 +175,16 @@ export default domAssigned(class ObjectAssigment {
|
|
|
173
175
|
throw exception;
|
|
174
176
|
}
|
|
175
177
|
|
|
176
|
-
const { Value, Variable
|
|
178
|
+
const { Value, Variable } = dom,
|
|
177
179
|
nonTerminalNode = node, ///
|
|
178
180
|
childNodes = nonTerminalNode.getChildNodes(),
|
|
179
181
|
nodes = childNodes; ///
|
|
180
182
|
|
|
181
183
|
value = Value.fromNodes(nodes, context); ///
|
|
182
184
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
+
debugger
|
|
186
|
+
|
|
187
|
+
const variable = Variable.fromValueAndNamedParameter(value, namedParameter, context);
|
|
185
188
|
|
|
186
189
|
context.addVariable(variable);
|
|
187
190
|
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import dom from "../../dom";
|
|
4
|
+
import Exception from "../../exception";
|
|
5
|
+
|
|
6
|
+
import { domAssigned } from "../../dom";
|
|
7
|
+
|
|
8
|
+
export default domAssigned(class VariableAssignment {
|
|
9
|
+
constructor(string, variable, value) {
|
|
10
|
+
this.string = string;
|
|
11
|
+
this.variable = variable;
|
|
12
|
+
this.value = value;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getString() {
|
|
16
|
+
return this.string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
getVariable() {
|
|
20
|
+
return this.variable;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getValue() {
|
|
24
|
+
return this.value;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
evaluate(context) {
|
|
28
|
+
let value;
|
|
29
|
+
|
|
30
|
+
const variableAssignmentString = this.string; ///
|
|
31
|
+
|
|
32
|
+
context.trace(`Evaluating the '${variableAssignmentString}' variable assignment...`);
|
|
33
|
+
|
|
34
|
+
value = this.value.evaluate(context);
|
|
35
|
+
|
|
36
|
+
debugger
|
|
37
|
+
|
|
38
|
+
if (value === null) {
|
|
39
|
+
const variableAssignmentString = this.string, ///
|
|
40
|
+
message = `The '${variableAssignmentString}' variable assignment cannot be evaluated.`,
|
|
41
|
+
exception = Exception.fromMessage(message);
|
|
42
|
+
|
|
43
|
+
throw exception;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
context.debug(`...evaluated the '${variableAssignmentString}' variable assignment.`);
|
|
47
|
+
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static name = "VariableAssignment";
|
|
52
|
+
|
|
53
|
+
static fromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context) {
|
|
54
|
+
const variableAssignment = variableAssignmentFromTypeAndAssignmentNode(type, variableAssignmentNode, context);
|
|
55
|
+
|
|
56
|
+
return variableAssignment;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
function variableAssignmentFromTypeAndAssignmentNode(type, variableAssignmentNode, context) {
|
|
61
|
+
const { Variable, Value, VariableAssignment } = dom,
|
|
62
|
+
node = variableAssignmentNode, ///
|
|
63
|
+
string = context.nodeAsString(node),
|
|
64
|
+
value = Value.fromVariableAssignmentNode(variableAssignmentNode, context),
|
|
65
|
+
variable = Variable.fromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context),
|
|
66
|
+
assignment = new VariableAssignment(string, variable, value);
|
|
67
|
+
|
|
68
|
+
return assignment;
|
|
69
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import dom from "../../dom";
|
|
4
|
+
|
|
5
|
+
import { domAssigned } from "../../dom";
|
|
6
|
+
import { nodeQuery, nodesQuery } from "../../utilities/query";
|
|
7
|
+
|
|
8
|
+
const typeTerminalNodeQuery = nodeQuery("/variableAssignments/@type"),
|
|
9
|
+
variableAssignmentsNodeQuery = nodeQuery("/step/variableAssignments"),
|
|
10
|
+
variableAssignmentNodesQuery = nodesQuery("/variableAssignments/variableAssignment");
|
|
11
|
+
|
|
12
|
+
export default domAssigned(class VariableAssignments {
|
|
13
|
+
constructor(string, array) {
|
|
14
|
+
this.string = string;
|
|
15
|
+
this.array = array;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
getString() {
|
|
19
|
+
return this.string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
getArray() {
|
|
23
|
+
return this.array;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
evaluate(context) {
|
|
27
|
+
const variableAssignmentsString = this.string; ///
|
|
28
|
+
|
|
29
|
+
context.trace(`Evaluating the '${variableAssignmentsString}' variable assignments...`);
|
|
30
|
+
|
|
31
|
+
this.array.forEach((variableAssignment) => {
|
|
32
|
+
variableAssignment.evaluate(context);
|
|
33
|
+
|
|
34
|
+
// context.addVariable(variable);
|
|
35
|
+
//
|
|
36
|
+
// variable.assign(context);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
context.debug(`...evaluated the '${variableAssignmentsString}' variable assignments.`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static name = "VariableAssignments";
|
|
43
|
+
|
|
44
|
+
static fromStepNode(stepNode, context) {
|
|
45
|
+
let variableAssignments = null;
|
|
46
|
+
|
|
47
|
+
const variableAssignmentsNode = variableAssignmentsNodeQuery(stepNode);
|
|
48
|
+
|
|
49
|
+
if (variableAssignmentsNode !== null) {
|
|
50
|
+
const node = variableAssignmentsNode, ////
|
|
51
|
+
string = context.nodeAsString(node),
|
|
52
|
+
type = typeFromVariableAssignmentsNode(variableAssignmentsNode, context),
|
|
53
|
+
array = arrayFromTypeAndVariableAssignmentsNode(type, variableAssignmentsNode, context);
|
|
54
|
+
|
|
55
|
+
variableAssignments = new VariableAssignments(string, array);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return variableAssignments;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
function typeFromVariableAssignmentsNode(variableAssignmentsNode, context) {
|
|
63
|
+
const typeTerminalNode = typeTerminalNodeQuery(variableAssignmentsNode),
|
|
64
|
+
typeTerminalNodeContent = typeTerminalNode.getContent(),
|
|
65
|
+
type = typeTerminalNodeContent; ///
|
|
66
|
+
|
|
67
|
+
return type;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function arrayFromTypeAndVariableAssignmentsNode(type, variableAssignmentsNode, context) {
|
|
71
|
+
const variableAssignmentNodes = variableAssignmentNodesQuery(variableAssignmentsNode),
|
|
72
|
+
array = variableAssignmentNodes.map((variableAssignmentNode) => {
|
|
73
|
+
const { VariableAssignment } = dom,
|
|
74
|
+
variableAssignment = VariableAssignment.fromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context);
|
|
75
|
+
|
|
76
|
+
return variableAssignment;
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
return array;
|
|
80
|
+
}
|
|
@@ -9,7 +9,8 @@ import { variablesFromValuesAndParameters } from "../procedure";
|
|
|
9
9
|
|
|
10
10
|
const parametersNodeQuery = nodeQuery("/anonymousProcedure/parameters"),
|
|
11
11
|
typeTerminalNodeQuery = nodeQuery("/anonymousProcedure/@type"),
|
|
12
|
-
|
|
12
|
+
someAnonymousProcedureNodeQuery = nodeQuery("/some/anonymousProcedure"),
|
|
13
|
+
anonymousProcedureCallAnonymousProcedureNodeQuery = nodeQuery("/anonymousProcedureCall/anonymousProcedure");
|
|
13
14
|
|
|
14
15
|
export default domAssigned(class AnonymousProcedure {
|
|
15
16
|
constructor(string, type, parameters, returnBlock) {
|
|
@@ -63,12 +64,20 @@ export default domAssigned(class AnonymousProcedure {
|
|
|
63
64
|
static name = "AnonymousProcedure";
|
|
64
65
|
|
|
65
66
|
static fromSomeNode(someNode, context) {
|
|
66
|
-
const someAnonymousProcedureNode =
|
|
67
|
+
const someAnonymousProcedureNode = someAnonymousProcedureNodeQuery(someNode),
|
|
67
68
|
anonymousProcedureNode = someAnonymousProcedureNode, ///
|
|
68
69
|
anonymousProcedure = anonymousProcedureFromAnonymousProcedureNode(anonymousProcedureNode, context);
|
|
69
70
|
|
|
70
71
|
return anonymousProcedure;
|
|
71
72
|
}
|
|
73
|
+
|
|
74
|
+
static fromAnonymousProcedureCallNode(anonymousProcedureCallNode, context) {
|
|
75
|
+
const anonymousProcedureCallAnonymousProcedureNode = anonymousProcedureCallAnonymousProcedureNodeQuery(anonymousProcedureCallNode),
|
|
76
|
+
anonymousProcedureNode = anonymousProcedureCallAnonymousProcedureNode, ///
|
|
77
|
+
anonymousProcedure = anonymousProcedureFromAnonymousProcedureNode(anonymousProcedureNode, context);
|
|
78
|
+
|
|
79
|
+
return anonymousProcedure;
|
|
80
|
+
}
|
|
72
81
|
});
|
|
73
82
|
|
|
74
83
|
function anonymousProcedureFromAnonymousProcedureNode(anonymousProcedureNode, context) {
|