occam-parsers 23.0.115 → 23.0.117
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/example.js +514 -428
- package/lib/index.js +5 -1
- package/lib/mixins/node.js +195 -0
- package/lib/node/nonTerminal.js +24 -176
- package/lib/node/terminal.js +12 -27
- package/package.json +1 -1
- package/src/index.js +2 -0
- package/src/mixins/node.js +205 -0
- package/src/node/nonTerminal.js +21 -141
- package/src/node/terminal.js +10 -30
package/lib/node/terminal.js
CHANGED
|
@@ -230,25 +230,10 @@ var TerminalNode = /*#__PURE__*/ function() {
|
|
|
230
230
|
}
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
|
-
key: "
|
|
234
|
-
value: function
|
|
235
|
-
var
|
|
236
|
-
|
|
237
|
-
if (this === node) {
|
|
238
|
-
includedIn = true;
|
|
239
|
-
} else {
|
|
240
|
-
var nodeNonTerminalNode = node.isNonTerminalNode();
|
|
241
|
-
if (nodeNonTerminalNode) {
|
|
242
|
-
var nonTerminalNode = node, childNodes = nonTerminalNode.getChildNodes();
|
|
243
|
-
includedIn = childNodes.some(function(childNode) {
|
|
244
|
-
var includedInChildNode = _this.isIncludedIn(childNode);
|
|
245
|
-
if (includedInChildNode) {
|
|
246
|
-
return true;
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return includedIn;
|
|
233
|
+
key: "asParseTree",
|
|
234
|
+
value: function asParseTree(tokens) {
|
|
235
|
+
var terminalNode = this, terminalNodeParseTree = _terminalNode.default.fromTerminalNodeAndTokens(terminalNode, tokens), parseTree = terminalNodeParseTree; ///
|
|
236
|
+
return parseTree;
|
|
252
237
|
}
|
|
253
238
|
},
|
|
254
239
|
{
|
|
@@ -264,13 +249,6 @@ var TerminalNode = /*#__PURE__*/ function() {
|
|
|
264
249
|
return matches;
|
|
265
250
|
}
|
|
266
251
|
},
|
|
267
|
-
{
|
|
268
|
-
key: "asParseTree",
|
|
269
|
-
value: function asParseTree(tokens) {
|
|
270
|
-
var terminalNode = this, terminalNodeParseTree = _terminalNode.default.fromTerminalNodeAndTokens(terminalNode, tokens), parseTree = terminalNodeParseTree; ///
|
|
271
|
-
return parseTree;
|
|
272
|
-
}
|
|
273
|
-
},
|
|
274
252
|
{
|
|
275
253
|
key: "clone",
|
|
276
254
|
value: function clone() {
|
|
@@ -283,6 +261,13 @@ var TerminalNode = /*#__PURE__*/ function() {
|
|
|
283
261
|
].concat(_to_consumable_array(remainingArguments)));
|
|
284
262
|
return terminalNode;
|
|
285
263
|
}
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
key: "destroy",
|
|
267
|
+
value: function destroy() {
|
|
268
|
+
this.parentNode = null;
|
|
269
|
+
this.significantToken = null;
|
|
270
|
+
}
|
|
286
271
|
}
|
|
287
272
|
], [
|
|
288
273
|
{
|
|
@@ -322,4 +307,4 @@ var TerminalNode = /*#__PURE__*/ function() {
|
|
|
322
307
|
return TerminalNode;
|
|
323
308
|
}();
|
|
324
309
|
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Rlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybWluYWxOb2RlUGFyc2VUcmVlIGZyb20gXCIuLi9wYXJzZVRyZWUvdGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHBhcmVudE5vZGUsIHNpZ25pZmljYW50VG9rZW4pIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9IHNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBzZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICB9XG5cbiAgc2V0U2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSB7XG4gICAgdGhpcy5zaWduaWZpY2FudFRva2VuID0gc2lnbmlmaWNhbnRUb2tlbjtcbiAgfVxuXG4gIGlzU3RhcnRPZkNvbnRlbnROb2RlKCkge1xuICAgIGNvbnN0IHN0YXJ0T2ZDb250ZW50Tm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHN0YXJ0T2ZDb250ZW50Tm9kZTtcbiAgfVxuXG4gIGlzTm9XaGl0ZXNwYWNlTm9kZSgpIHtcbiAgICBjb25zdCBub1doaXRlc3BhY2VOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlTm9kZTtcbiAgfVxuXG4gIGlzRXBzaWxvbk5vZGUoKSB7XG4gICAgY29uc3QgZXBzaWxvbk5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBlcHNpbG9uTm9kZTtcbiAgfVxuXG4gIGlzVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRydWU7XG4gICAgXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGlzTm9uVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW4uZ2V0VHlwZSgpOyB9XG5cbiAgZ2V0Q29udGVudCgpIHsgcmV0dXJuIHRoaXMuc2lnbmlmaWNhbnRUb2tlbi5nZXRDb250ZW50KCk7IH1cblxuICBnZXRQcmVjZWRlbmNlKCkgIHtcbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbDtcblxuICAgIHJldHVybiBwcmVjZWRlbmNlO1xuICB9XG5cbiAgaXNMb3dlclByZWNlZGVuY2UocGFyZW50UnVsZU5hbWUsIHBhcmVudFByZWNlZGVuY2UpIHtcbiAgICBjb25zdCBsb3dlclByZWNlZGVuY2UgPSBmYWxzZTtcblxuICAgIHJldHVybiBsb3dlclByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0aGlzLmdldFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICAgIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gc2lnbmlmaWNhbnRUb2tlbkluZGV4OyAvLy9cblxuICAgIHJldHVybiBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcbiAgfVxuXG4gIGdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gdGhpcy5nZXRTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSxcbiAgICAgICAgICBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gc2lnbmlmaWNhbnRUb2tlbkluZGV4OyAvLy9cblxuICAgIHJldHVybiBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGxldCBzaWduaWZpY2FudFRva2VuSW5kZXggPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgc2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gdG9rZW5zLmluZGV4T2YodGhpcy5zaWduaWZpY2FudFRva2VuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0U2lnbmlmaWNhbnRUb2tlbnMoc2lnbmlmaWNhbnRUb2tlbnMgPSBbXSkge1xuICAgIGlmICh0aGlzLnNpZ25pZmljYW50VG9rZW4gIT09IG51bGwpIHtcbiAgICAgIHNpZ25pZmljYW50VG9rZW5zLnB1c2godGhpcy5zaWduaWZpY2FudFRva2VuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbnM7XG4gIH1cblxuICBnZXRBbmNlc3Rvck5vZGVzKCkge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSBbXTtcblxuICAgIGxldCBwYXJlbnROb2RlID0gdGhpcy5wYXJlbnROb2RlO1xuXG4gICAgd2hpbGUgKHBhcmVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGFuY2VzdG9yTm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cblxuICAgICAgYW5jZXN0b3JOb2Rlcy5wdXNoKGFuY2VzdG9yTm9kZSk7XG5cbiAgICAgIHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLmdldFBhcmVudE5vZGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2RlcztcbiAgfVxuXG4gIGlzSW5jbHVkZWRJbihub2RlKSB7XG4gICAgbGV0IGluY2x1ZGVkSW4gPSBmYWxzZTtcblxuICAgIGlmICh0aGlzID09PSBub2RlKSB7XG4gICAgICBpbmNsdWRlZEluID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgICAgaWYgKG5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgICAgIGluY2x1ZGVkSW4gPSBjaGlsZE5vZGVzLnNvbWUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluY2x1ZGVkSW5DaGlsZE5vZGUgPSB0aGlzLmlzSW5jbHVkZWRJbihjaGlsZE5vZGUpO1xuXG4gICAgICAgICAgaWYgKGluY2x1ZGVkSW5DaGlsZE5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGluY2x1ZGVkSW47XG4gIH1cblxuICBtYXRjaChub2RlLCBkZXB0aCA9IEluZmluaXR5LCBleGFjdGx5ID0gZmFsc2UpIHtcbiAgICBsZXQgbWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gdGVybWluYWxOb2RlLmdldFNpZ25pZmljYW50VG9rZW4oKTtcblxuICAgICAgbWF0Y2hlcyA9IGV4YWN0bHkgP1xuICAgICAgICAgICAgICAgICAgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9PT0gc2lnbmlmaWNhbnRUb2tlbikgOlxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWduaWZpY2FudFRva2VuLm1hdGNoKHNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgYXNQYXJzZVRyZWUodG9rZW5zKSB7XG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIHRlcm1pbmFsTm9kZVBhcnNlVHJlZSA9IFRlcm1pbmFsTm9kZVBhcnNlVHJlZS5mcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBwYXJzZVRyZWUgPSB0ZXJtaW5hbE5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBjbG9uZSguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBDbGFzcyA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IHRoaXMuc2lnbmlmaWNhbnRUb2tlbixcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3MocGFyZW50Tm9kZSwgc2lnbmlmaWNhbnRUb2tlbiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoQ2xhc3MsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChDbGFzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBDbGFzcyA9IFRlcm1pbmFsTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IG51bGwsXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHBhcmVudE5vZGUsIHNpZ25pZmljYW50VG9rZW4sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21TaWduaWZpY2FudFRva2VuKENsYXNzLCBzaWduaWZpY2FudFRva2VuLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAoc2lnbmlmaWNhbnRUb2tlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzaWduaWZpY2FudFRva2VuID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFRlcm1pbmFsTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHBhcmVudE5vZGUsIHNpZ25pZmljYW50VG9rZW4sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlRlcm1pbmFsTm9kZSIsInBhcmVudE5vZGUiLCJzaWduaWZpY2FudFRva2VuIiwiZ2V0UGFyZW50Tm9kZSIsImdldFNpZ25pZmljYW50VG9rZW4iLCJzZXRQYXJlbnROb2RlIiwic2V0U2lnbmlmaWNhbnRUb2tlbiIsImlzU3RhcnRPZkNvbnRlbnROb2RlIiwic3RhcnRPZkNvbnRlbnROb2RlIiwiaXNOb1doaXRlc3BhY2VOb2RlIiwibm9XaGl0ZXNwYWNlTm9kZSIsImlzRXBzaWxvbk5vZGUiLCJlcHNpbG9uTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJnZXRUeXBlIiwiZ2V0Q29udGVudCIsImdldFByZWNlZGVuY2UiLCJwcmVjZWRlbmNlIiwiaXNMb3dlclByZWNlZGVuY2UiLCJwYXJlbnRSdWxlTmFtZSIsInBhcmVudFByZWNlZGVuY2UiLCJsb3dlclByZWNlZGVuY2UiLCJnZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsInRva2VucyIsInNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldFNpZ25pZmljYW50VG9rZW5JbmRleCIsImZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImxhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJpbmRleE9mIiwiZ2V0U2lnbmlmaWNhbnRUb2tlbnMiLCJzaWduaWZpY2FudFRva2VucyIsInB1c2giLCJnZXRBbmNlc3Rvck5vZGVzIiwiYW5jZXN0b3JOb2RlcyIsImFuY2VzdG9yTm9kZSIsImlzSW5jbHVkZWRJbiIsIm5vZGUiLCJpbmNsdWRlZEluIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic29tZSIsImNoaWxkTm9kZSIsImluY2x1ZGVkSW5DaGlsZE5vZGUiLCJtYXRjaCIsImRlcHRoIiwiSW5maW5pdHkiLCJleGFjdGx5IiwibWF0Y2hlcyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJhc1BhcnNlVHJlZSIsInRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsIlRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsImZyb21UZXJtaW5hbE5vZGVBbmRUb2tlbnMiLCJwYXJzZVRyZWUiLCJjbG9uZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsIkNsYXNzIiwiY29uc3RydWN0b3IiLCJmcm9tTm90aGluZyIsInVuZGVmaW5lZCIsImZyb21TaWduaWZpY2FudFRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUlxQkE7OzttRUFGYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQixJQUFBLEFBQU1BLDZCQUFOO2FBQU1BLGFBQ1BDLFVBQVUsRUFBRUMsZ0JBQWdCO2dDQURyQkY7UUFFakIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsZ0JBQWdCLEdBQUdBOztrQkFIUEY7O1lBTW5CRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLFVBQVU7WUFDeEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLGdCQUFnQjtZQUM5Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxjQUFjSixVQUFVO2dCQUN0QixJQUFJLENBQUNBLFVBQVUsR0FBR0E7WUFDcEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsb0JBQW9CSixnQkFBZ0I7Z0JBQ2xDLElBQUksQ0FBQ0EsZ0JBQWdCLEdBQUdBO1lBQzFCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLHFCQUFxQjtnQkFFM0IsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxtQkFBbUI7Z0JBRXpCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsY0FBYztnQkFFcEIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxlQUFlO2dCQUVyQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGtCQUFrQjtnQkFFeEIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFBWSxPQUFPLElBQUksQ0FBQ2YsZ0JBQWdCLENBQUNlLE9BQU87WUFBSTs7O1lBRXBEQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQWUsT0FBTyxJQUFJLENBQUNoQixnQkFBZ0IsQ0FBQ2dCLFVBQVU7WUFBSTs7O1lBRTFEQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsYUFBYTtnQkFFbkIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxrQkFBa0JDLGNBQWMsRUFBRUMsZ0JBQWdCO2dCQUNoRCxJQUFNQyxrQkFBa0I7Z0JBRXhCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsOEJBQThCQyxNQUFNO2dCQUNsQyxJQUFNQyx3QkFBd0IsSUFBSSxDQUFDQyx3QkFBd0IsQ0FBQ0YsU0FDdERHLDZCQUE2QkYsdUJBQXVCLEdBQUc7Z0JBRTdELE9BQU9FO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsNkJBQTZCSixNQUFNO2dCQUNqQyxJQUFNQyx3QkFBd0IsSUFBSSxDQUFDQyx3QkFBd0IsQ0FBQ0YsU0FDdERLLDRCQUE0QkosdUJBQXVCLEdBQUc7Z0JBRTVELE9BQU9JO1lBQ1Q7OztZQUVBSCxLQUFBQTttQkFBQUEsU0FBQUEseUJBQXlCRixNQUFNO2dCQUM3QixJQUFJQyx3QkFBd0I7Z0JBRTVCLElBQUksSUFBSSxDQUFDekIsZ0JBQWdCLEtBQUssTUFBTTtvQkFDbEN5Qix3QkFBd0JELE9BQU9NLE9BQU8sQ0FBQyxJQUFJLENBQUM5QixnQkFBZ0I7Z0JBQzlEO2dCQUVBLE9BQU95QjtZQUNUOzs7WUFFQU0sS0FBQUE7bUJBQUFBLFNBQUFBO29CQUFxQkMsb0JBQUFBLGlFQUFvQixFQUFFO2dCQUN6QyxJQUFJLElBQUksQ0FBQ2hDLGdCQUFnQixLQUFLLE1BQU07b0JBQ2xDZ0Msa0JBQWtCQyxJQUFJLENBQUMsSUFBSSxDQUFDakMsZ0JBQWdCO2dCQUM5QztnQkFFQSxPQUFPZ0M7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxnQkFBZ0IsRUFBRTtnQkFFeEIsSUFBSXBDLGFBQWEsSUFBSSxDQUFDQSxVQUFVO2dCQUVoQyxNQUFPQSxlQUFlLEtBQU07b0JBQzFCLElBQU1xQyxlQUFlckMsWUFBYSxHQUFHO29CQUVyQ29DLGNBQWNGLElBQUksQ0FBQ0c7b0JBRW5CckMsYUFBYUEsV0FBV0UsYUFBYTtnQkFDdkM7Z0JBRUEsT0FBT2tDO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsYUFBYUMsSUFBSTs7Z0JBQ2YsSUFBSUMsYUFBYTtnQkFFakIsSUFBSSxJQUFJLEtBQUtELE1BQU07b0JBQ2pCQyxhQUFhO2dCQUNmLE9BQU87b0JBQ0wsSUFBTUMsc0JBQXNCRixLQUFLekIsaUJBQWlCO29CQUVsRCxJQUFJMkIscUJBQXFCO3dCQUN2QixJQUFNMUIsa0JBQWtCd0IsTUFDbEJHLGFBQWEzQixnQkFBZ0I0QixhQUFhO3dCQUVoREgsYUFBYUUsV0FBV0UsSUFBSSxDQUFDLFNBQUNDOzRCQUM1QixJQUFNQyxzQkFBc0IsTUFBS1IsWUFBWSxDQUFDTzs0QkFFOUMsSUFBSUMscUJBQXFCO2dDQUN2QixPQUFPOzRCQUNUO3dCQUNGO29CQUNGO2dCQUNGO2dCQUVBLE9BQU9OO1lBQ1Q7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTVIsSUFBSTtvQkFBRVMsUUFBQUEsaUVBQVFDLFVBQVVDLFVBQUFBLGlFQUFVO2dCQUN0QyxJQUFJQyxVQUFVO2dCQUVkLElBQU1DLG1CQUFtQmIsS0FBSzNCLGNBQWM7Z0JBRTVDLElBQUl3QyxrQkFBa0I7b0JBQ3BCLElBQU12QyxlQUFlMEIsTUFDZnRDLG1CQUFtQlksYUFBYVYsbUJBQW1CO29CQUV6RGdELFVBQVVELFVBQ0csSUFBSSxDQUFDakQsZ0JBQWdCLEtBQUtBLG1CQUN4QixJQUFJLENBQUNBLGdCQUFnQixDQUFDOEMsS0FBSyxDQUFDOUM7Z0JBQzdDO2dCQUVBLE9BQU9rRDtZQUNUOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLFlBQVk1QixNQUFNO2dCQUNoQixJQUFNWixlQUFlLElBQUksRUFDbkJ5Qyx3QkFBd0JDLHFCQUFxQixDQUFDQyx5QkFBeUIsQ0FBQzNDLGNBQWNZLFNBQ3RGZ0MsWUFBWUgsdUJBQXdCLEdBQUc7Z0JBRTdDLE9BQU9HO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQU0sSUFBQSxJQUFBLE9BQUEsVUFBQSxRQUFBLEFBQUdDLHFCQUFILFVBQUEsT0FBQSxPQUFBLEdBQUEsT0FBQSxNQUFBO29CQUFHQSxtQkFBSCxRQUFBLFNBQUEsQ0FBQSxLQUFxQjs7Z0JBQ3pCLElBQU1DLFFBQVEsSUFBSSxDQUFDQyxXQUFXLEVBQ3hCN0QsYUFBYSxNQUNiQyxtQkFBbUIsSUFBSSxDQUFDQSxnQkFBZ0IsRUFDeENZLGVBQWUsV0FBSStDLE9BQUo7b0JBQVU1RDtvQkFBWUM7aUJBQXdDLENBQTlELE9BQXdDLHFCQUFHMEQ7Z0JBRWhFLE9BQU85QztZQUNUOzs7O1lBRU9pRCxLQUFBQTttQkFBUCxTQUFPQSxZQUFZRixLQUFLO2dCQUFFLElBQUEsSUFBQSxPQUFBLFVBQUEsUUFBQSxBQUFHRCxxQkFBSCxVQUFBLE9BQUEsSUFBQSxPQUFBLFFBQUEsT0FBQSxHQUFBLE9BQUEsTUFBQTtvQkFBR0EsbUJBQUgsT0FBQSxLQUFBLFNBQUEsQ0FBQSxLQUFxQjs7Z0JBQzdDLElBQUlDLFVBQVVHLFdBQVc7b0JBQ3ZCSCxRQWpMZTdELGNBaUxPLEdBQUc7Z0JBQzNCO2dCQUVBLElBQU1DLGFBQWEsTUFDYkMsbUJBQW1CLE1BQ25CWSxlQUFlLFdBQUkrQyxPQUFKO29CQUFVNUQ7b0JBQVlDO2lCQUF3QyxDQUE5RCxPQUF3QyxxQkFBRzBEO2dCQUVoRSxPQUFPOUM7WUFDVDs7O1lBRU9tRCxLQUFBQTttQkFBUCxTQUFPQSxxQkFBcUJKLEtBQUssRUFBRTNELGdCQUFnQjtnQkFBRSxJQUFBLElBQUEsT0FBQSxVQUFBLFFBQUEsQUFBRzBELHFCQUFILFVBQUEsT0FBQSxJQUFBLE9BQUEsUUFBQSxPQUFBLEdBQUEsT0FBQSxNQUFBO29CQUFHQSxtQkFBSCxPQUFBLEtBQUEsU0FBQSxDQUFBLEtBQXFCOztnQkFDeEUsSUFBSTFELHFCQUFxQjhELFdBQVc7b0JBQ2xDOUQsbUJBQW1CMkQsT0FBTyxHQUFHO29CQUU3QkEsUUEvTGU3RCxjQStMTyxHQUFHO2dCQUMzQjtnQkFFQSxJQUFNQyxhQUFhLE1BQ2JhLGVBQWUsV0FBSStDLE9BQUo7b0JBQVU1RDtvQkFBWUM7aUJBQXdDLENBQTlELE9BQXdDLHFCQUFHMEQ7Z0JBRWhFLE9BQU85QztZQUNUOzs7V0F0TW1CZCJ9
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Rlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybWluYWxOb2RlUGFyc2VUcmVlIGZyb20gXCIuLi9wYXJzZVRyZWUvdGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHBhcmVudE5vZGUsIHNpZ25pZmljYW50VG9rZW4pIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9IHNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBzZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICB9XG5cbiAgc2V0U2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSB7XG4gICAgdGhpcy5zaWduaWZpY2FudFRva2VuID0gc2lnbmlmaWNhbnRUb2tlbjtcbiAgfVxuXG4gIGlzU3RhcnRPZkNvbnRlbnROb2RlKCkge1xuICAgIGNvbnN0IHN0YXJ0T2ZDb250ZW50Tm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHN0YXJ0T2ZDb250ZW50Tm9kZTtcbiAgfVxuXG4gIGlzTm9XaGl0ZXNwYWNlTm9kZSgpIHtcbiAgICBjb25zdCBub1doaXRlc3BhY2VOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlTm9kZTtcbiAgfVxuXG4gIGlzRXBzaWxvbk5vZGUoKSB7XG4gICAgY29uc3QgZXBzaWxvbk5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBlcHNpbG9uTm9kZTtcbiAgfVxuXG4gIGlzVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRydWU7XG4gICAgXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGlzTm9uVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW4uZ2V0VHlwZSgpOyB9XG5cbiAgZ2V0Q29udGVudCgpIHsgcmV0dXJuIHRoaXMuc2lnbmlmaWNhbnRUb2tlbi5nZXRDb250ZW50KCk7IH1cblxuICBnZXRQcmVjZWRlbmNlKCkgIHtcbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbDtcblxuICAgIHJldHVybiBwcmVjZWRlbmNlO1xuICB9XG5cbiAgaXNMb3dlclByZWNlZGVuY2UocGFyZW50UnVsZU5hbWUsIHBhcmVudFByZWNlZGVuY2UpIHtcbiAgICBjb25zdCBsb3dlclByZWNlZGVuY2UgPSBmYWxzZTtcblxuICAgIHJldHVybiBsb3dlclByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0aGlzLmdldFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICAgIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gc2lnbmlmaWNhbnRUb2tlbkluZGV4OyAvLy9cblxuICAgIHJldHVybiBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcbiAgfVxuXG4gIGdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gdGhpcy5nZXRTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSxcbiAgICAgICAgICBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gc2lnbmlmaWNhbnRUb2tlbkluZGV4OyAvLy9cblxuICAgIHJldHVybiBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGxldCBzaWduaWZpY2FudFRva2VuSW5kZXggPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgc2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gdG9rZW5zLmluZGV4T2YodGhpcy5zaWduaWZpY2FudFRva2VuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0U2lnbmlmaWNhbnRUb2tlbnMoc2lnbmlmaWNhbnRUb2tlbnMgPSBbXSkge1xuICAgIGlmICh0aGlzLnNpZ25pZmljYW50VG9rZW4gIT09IG51bGwpIHtcbiAgICAgIHNpZ25pZmljYW50VG9rZW5zLnB1c2godGhpcy5zaWduaWZpY2FudFRva2VuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbnM7XG4gIH1cblxuICBnZXRBbmNlc3Rvck5vZGVzKCkge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSBbXTtcblxuICAgIGxldCBwYXJlbnROb2RlID0gdGhpcy5wYXJlbnROb2RlO1xuXG4gICAgd2hpbGUgKHBhcmVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGFuY2VzdG9yTm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cblxuICAgICAgYW5jZXN0b3JOb2Rlcy5wdXNoKGFuY2VzdG9yTm9kZSk7XG5cbiAgICAgIHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLmdldFBhcmVudE5vZGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2RlcztcbiAgfVxuXG4gIGFzUGFyc2VUcmVlKHRva2Vucykge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICB0ZXJtaW5hbE5vZGVQYXJzZVRyZWUgPSBUZXJtaW5hbE5vZGVQYXJzZVRyZWUuZnJvbVRlcm1pbmFsTm9kZUFuZFRva2Vucyh0ZXJtaW5hbE5vZGUsIHRva2VucyksXG4gICAgICAgICAgcGFyc2VUcmVlID0gdGVybWluYWxOb2RlUGFyc2VUcmVlOyAgLy8vXG5cbiAgICByZXR1cm4gcGFyc2VUcmVlO1xuICB9XG5cbiAgbWF0Y2gobm9kZSwgZGVwdGggPSBJbmZpbml0eSwgZXhhY3RseSA9IGZhbHNlKSB7XG4gICAgbGV0IG1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IHRlcm1pbmFsTm9kZS5nZXRTaWduaWZpY2FudFRva2VuKCk7XG5cbiAgICAgIG1hdGNoZXMgPSBleGFjdGx5ID9cbiAgICAgICAgICAgICAgICAgICh0aGlzLnNpZ25pZmljYW50VG9rZW4gPT09IHNpZ25pZmljYW50VG9rZW4pIDpcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lnbmlmaWNhbnRUb2tlbi5tYXRjaChzaWduaWZpY2FudFRva2VuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIGNsb25lKC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IENsYXNzID0gdGhpcy5jb25zdHJ1Y3RvcixcbiAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gdGhpcy5zaWduaWZpY2FudFRva2VuLFxuICAgICAgICAgIHRlcm1pbmFsTm9kZSA9IG5ldyBDbGFzcyhwYXJlbnROb2RlLCBzaWduaWZpY2FudFRva2VuLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gbnVsbDtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBudWxsO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKENsYXNzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAoQ2xhc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgQ2xhc3MgPSBUZXJtaW5hbE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSBudWxsLFxuICAgICAgICAgIHRlcm1pbmFsTm9kZSA9IG5ldyBDbGFzcyhwYXJlbnROb2RlLCBzaWduaWZpY2FudFRva2VuLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU2lnbmlmaWNhbnRUb2tlbihDbGFzcywgc2lnbmlmaWNhbnRUb2tlbiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKHNpZ25pZmljYW50VG9rZW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IENsYXNzOyAvLy9cblxuICAgICAgQ2xhc3MgPSBUZXJtaW5hbE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIHRlcm1pbmFsTm9kZSA9IG5ldyBDbGFzcyhwYXJlbnROb2RlLCBzaWduaWZpY2FudFRva2VuLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIFxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJUZXJtaW5hbE5vZGUiLCJwYXJlbnROb2RlIiwic2lnbmlmaWNhbnRUb2tlbiIsImdldFBhcmVudE5vZGUiLCJnZXRTaWduaWZpY2FudFRva2VuIiwic2V0UGFyZW50Tm9kZSIsInNldFNpZ25pZmljYW50VG9rZW4iLCJpc1N0YXJ0T2ZDb250ZW50Tm9kZSIsInN0YXJ0T2ZDb250ZW50Tm9kZSIsImlzTm9XaGl0ZXNwYWNlTm9kZSIsIm5vV2hpdGVzcGFjZU5vZGUiLCJpc0Vwc2lsb25Ob2RlIiwiZXBzaWxvbk5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiZ2V0VHlwZSIsImdldENvbnRlbnQiLCJnZXRQcmVjZWRlbmNlIiwicHJlY2VkZW5jZSIsImlzTG93ZXJQcmVjZWRlbmNlIiwicGFyZW50UnVsZU5hbWUiLCJwYXJlbnRQcmVjZWRlbmNlIiwibG93ZXJQcmVjZWRlbmNlIiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJ0b2tlbnMiLCJzaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRTaWduaWZpY2FudFRva2VuSW5kZXgiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiaW5kZXhPZiIsImdldFNpZ25pZmljYW50VG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbnMiLCJwdXNoIiwiZ2V0QW5jZXN0b3JOb2RlcyIsImFuY2VzdG9yTm9kZXMiLCJhbmNlc3Rvck5vZGUiLCJhc1BhcnNlVHJlZSIsInRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsIlRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsImZyb21UZXJtaW5hbE5vZGVBbmRUb2tlbnMiLCJwYXJzZVRyZWUiLCJtYXRjaCIsIm5vZGUiLCJkZXB0aCIsIkluZmluaXR5IiwiZXhhY3RseSIsIm1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiY2xvbmUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJDbGFzcyIsImNvbnN0cnVjdG9yIiwiZGVzdHJveSIsImZyb21Ob3RoaW5nIiwidW5kZWZpbmVkIiwiZnJvbVNpZ25pZmljYW50VG9rZW4iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7O21FQUZhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5CLElBQUEsQUFBTUEsNkJBQU47YUFBTUEsYUFDUEMsVUFBVSxFQUFFQyxnQkFBZ0I7Z0NBRHJCRjtRQUVqQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxnQkFBZ0IsR0FBR0E7O2tCQUhQRjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsVUFBVTtZQUN4Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsZ0JBQWdCO1lBQzlCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNKLFVBQVU7Z0JBQ3RCLElBQUksQ0FBQ0EsVUFBVSxHQUFHQTtZQUNwQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxvQkFBb0JKLGdCQUFnQjtnQkFDbEMsSUFBSSxDQUFDQSxnQkFBZ0IsR0FBR0E7WUFDMUI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMscUJBQXFCO2dCQUUzQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLG1CQUFtQjtnQkFFekIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxjQUFjO2dCQUVwQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGVBQWU7Z0JBRXJCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsa0JBQWtCO2dCQUV4QixPQUFPQTtZQUNU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
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -4,6 +4,8 @@ export { default as BNFParser } from "./bnf/parser";
|
|
|
4
4
|
export { default as BasicParser } from "./basic/parser";
|
|
5
5
|
export { default as CommonParser } from "./common/parser";
|
|
6
6
|
|
|
7
|
+
export { default as nodeMixins } from "./mixins/node";
|
|
8
|
+
|
|
7
9
|
export { default as rulesUtilities } from "./utilities/rules";
|
|
8
10
|
export { default as parserUtilities } from "./utilities/parser";
|
|
9
11
|
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
5
|
+
const { first, forwardsSome, backwardsSome } = arrayUtilities;
|
|
6
|
+
|
|
7
|
+
function getMultiplicity() {
|
|
8
|
+
const childNodesLength = this.childNodes.length,
|
|
9
|
+
multiplicity = childNodesLength; ///
|
|
10
|
+
|
|
11
|
+
return multiplicity;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function mapChildNode(callback) { return this.childNodes.map(callback); }
|
|
15
|
+
|
|
16
|
+
function someChildNode(callback) { return this.childNodes.some(callback); }
|
|
17
|
+
|
|
18
|
+
function findChildNode(callback) { return this.childNodes.find(callback); }
|
|
19
|
+
|
|
20
|
+
function everyChildNode(callback) { return this.childNodes.every(callback); }
|
|
21
|
+
|
|
22
|
+
function filterChildNode(callback) { return this.childNodes.filter(callback); }
|
|
23
|
+
|
|
24
|
+
function reduceChildNode(callback, initialValue) { return this.childNodes.reduce(callback, initialValue); }
|
|
25
|
+
|
|
26
|
+
function forEachChildNode(callback) { this.childNodes.forEach(callback); }
|
|
27
|
+
|
|
28
|
+
function forwardsSomeChildNode(callback) { return forwardsSome(this.childNodes, callback); }
|
|
29
|
+
|
|
30
|
+
function backwardsSomeChildNode(callback) { return backwardsSome(this.childNodes, callback); }
|
|
31
|
+
|
|
32
|
+
function indexOfChildNode(childNode) { return this.childNodes.indexOf(childNode); }
|
|
33
|
+
|
|
34
|
+
function setChildNodesParentNode(childNodes) {
|
|
35
|
+
if (childNodes === undefined) {
|
|
36
|
+
childNodes = [
|
|
37
|
+
...this.childNodes
|
|
38
|
+
];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const parentNode = this;
|
|
42
|
+
|
|
43
|
+
childNodes.forEach((childNode) => {
|
|
44
|
+
childNode.setParentNode(parentNode);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function resetChildNodesParentNode(childNodes) {
|
|
49
|
+
if (childNodes === undefined) {
|
|
50
|
+
childNodes = [
|
|
51
|
+
...this.childNodes
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const parentNode = null;
|
|
56
|
+
|
|
57
|
+
childNodes.forEach((childNode) => {
|
|
58
|
+
childNode.setParentNode(parentNode);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function addChildNode(addedChildNode, startIndex) {
|
|
63
|
+
const addedChildNodes = [
|
|
64
|
+
addedChildNode
|
|
65
|
+
];
|
|
66
|
+
|
|
67
|
+
this.addChildNodes(addedChildNodes, startIndex);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function addChildNodes(addedChildNodes, startIndex) {
|
|
71
|
+
const deleteCount = 0;
|
|
72
|
+
|
|
73
|
+
this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function removeChildNode(removedChildNode) {
|
|
77
|
+
let removedChildNodes;
|
|
78
|
+
|
|
79
|
+
removedChildNodes = [
|
|
80
|
+
removedChildNode
|
|
81
|
+
];
|
|
82
|
+
|
|
83
|
+
removedChildNodes = this.removeChildNodes(removedChildNodes);
|
|
84
|
+
|
|
85
|
+
return removedChildNodes;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function removeChildNodes(removedChildNodes) {
|
|
89
|
+
if (removedChildNodes === undefined) {
|
|
90
|
+
removedChildNodes = [
|
|
91
|
+
...this.childNodes
|
|
92
|
+
];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const removedChildNodesLength = removedChildNodes.length;
|
|
96
|
+
|
|
97
|
+
if (removedChildNodesLength === 0) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const firstReplacedChildNode = first(removedChildNodes),
|
|
102
|
+
firstIndex = this.childNodes.indexOf(firstReplacedChildNode),
|
|
103
|
+
startIndex = firstIndex, ///
|
|
104
|
+
deleteCount = removedChildNodesLength, ///
|
|
105
|
+
addedChildNodes = [];
|
|
106
|
+
|
|
107
|
+
removedChildNodes = this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
|
|
108
|
+
|
|
109
|
+
return removedChildNodes;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function replaceChildNode(replacedChildNode, replacementChildNodes) {
|
|
113
|
+
const replacedChildNodes = [
|
|
114
|
+
replacedChildNode
|
|
115
|
+
];
|
|
116
|
+
|
|
117
|
+
this.replaceChildNodes(replacedChildNodes, replacementChildNodes);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function replaceChildNodes(replacedChildNodes, replacementChildNodes) {
|
|
121
|
+
const replacedChildNodesLength = replacedChildNodes.length,
|
|
122
|
+
firstReplacedChildNode = first(replacedChildNodes),
|
|
123
|
+
firstIndex = this.childNodes.indexOf(firstReplacedChildNode),
|
|
124
|
+
startIndex = firstIndex, ///
|
|
125
|
+
deleteCount = replacedChildNodesLength; ///
|
|
126
|
+
|
|
127
|
+
this.spliceChildNodes(startIndex, deleteCount, replacementChildNodes);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function appendChildNode(appendedChildNode) {
|
|
131
|
+
const appendedChildNodes = [
|
|
132
|
+
appendedChildNode
|
|
133
|
+
];
|
|
134
|
+
|
|
135
|
+
this.appendChildNodes(appendedChildNodes);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function appendChildNodes(appendedChildNodes) {
|
|
139
|
+
const addedChildNodes = appendedChildNodes, ///
|
|
140
|
+
multiplicity = this.getMultiplicity(),
|
|
141
|
+
startIndex = multiplicity; ///
|
|
142
|
+
|
|
143
|
+
this.addChildNodes(addedChildNodes, startIndex);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function prependChildNode(prependedChildNode) {
|
|
147
|
+
const prependedChildNodes = [
|
|
148
|
+
prependedChildNode
|
|
149
|
+
];
|
|
150
|
+
|
|
151
|
+
this.prependChildNodes(prependedChildNodes);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function prependChildNodes(prependedChildNodes) {
|
|
155
|
+
const addedChildNodes = prependedChildNodes, ///
|
|
156
|
+
startIndex = 0;
|
|
157
|
+
|
|
158
|
+
this.addChildNodes(addedChildNodes, startIndex);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function spliceChildNodes(startIndex, deleteCount, addedChildNodes = []) {
|
|
162
|
+
const removedChildNodes = this.childNodes.splice(startIndex, deleteCount, ...addedChildNodes);
|
|
163
|
+
|
|
164
|
+
this.resetChildNodesParentNode(removedChildNodes);
|
|
165
|
+
|
|
166
|
+
this.setChildNodesParentNode(addedChildNodes);
|
|
167
|
+
|
|
168
|
+
return removedChildNodes;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function sliceChildNodes(startIndex, endIndex = Infinity) {
|
|
172
|
+
const childNodes = this.childNodes.slice(startIndex, endIndex);
|
|
173
|
+
|
|
174
|
+
return childNodes;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
const nodeMixins = {
|
|
178
|
+
getMultiplicity,
|
|
179
|
+
mapChildNode,
|
|
180
|
+
someChildNode,
|
|
181
|
+
findChildNode,
|
|
182
|
+
everyChildNode,
|
|
183
|
+
filterChildNode,
|
|
184
|
+
reduceChildNode,
|
|
185
|
+
forEachChildNode,
|
|
186
|
+
forwardsSomeChildNode,
|
|
187
|
+
backwardsSomeChildNode,
|
|
188
|
+
indexOfChildNode,
|
|
189
|
+
setChildNodesParentNode,
|
|
190
|
+
resetChildNodesParentNode,
|
|
191
|
+
addChildNode,
|
|
192
|
+
addChildNodes,
|
|
193
|
+
removeChildNode,
|
|
194
|
+
removeChildNodes,
|
|
195
|
+
replaceChildNode,
|
|
196
|
+
replaceChildNodes,
|
|
197
|
+
appendChildNode,
|
|
198
|
+
appendChildNodes,
|
|
199
|
+
prependChildNode,
|
|
200
|
+
prependChildNodes,
|
|
201
|
+
spliceChildNodes,
|
|
202
|
+
sliceChildNodes
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
export default nodeMixins;
|
package/src/node/nonTerminal.js
CHANGED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
import { specialSymbols } from "occam-lexers";
|
|
5
5
|
|
|
6
|
+
import nodeMixins from "../mixins/node";
|
|
6
7
|
import NonTerminalNodeParseTree from "../parseTree/nonTerminalNode";
|
|
7
8
|
|
|
8
|
-
const { first, match
|
|
9
|
+
const { first, match } = arrayUtilities,
|
|
9
10
|
{ opaque: opaqueSpecialSymbol , semiOpaque: semiOpaqueSpecialSymbol } = specialSymbols;
|
|
10
11
|
|
|
11
12
|
export default class NonTerminalNode {
|
|
@@ -41,6 +42,10 @@ export default class NonTerminalNode {
|
|
|
41
42
|
this.ruleName = ruleName;
|
|
42
43
|
}
|
|
43
44
|
|
|
45
|
+
setParentNode(parentNode) {
|
|
46
|
+
this.parentNode = parentNode;
|
|
47
|
+
}
|
|
48
|
+
|
|
44
49
|
setChildNodes(childNodes) {
|
|
45
50
|
const startIndex = 0,
|
|
46
51
|
deleteCount = Infinity,
|
|
@@ -49,18 +54,14 @@ export default class NonTerminalNode {
|
|
|
49
54
|
this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
|
|
50
55
|
}
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
this.
|
|
57
|
+
setOpacity(opacity) {
|
|
58
|
+
this.opacity = opacity;
|
|
54
59
|
}
|
|
55
60
|
|
|
56
61
|
setPrecedence(precedence) {
|
|
57
62
|
this.precedence = precedence;
|
|
58
63
|
}
|
|
59
64
|
|
|
60
|
-
setOpacity(opacity) {
|
|
61
|
-
this.opacity = opacity;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
65
|
isOpaque() {
|
|
65
66
|
const opaque = (this.opacity === opaqueSpecialSymbol);
|
|
66
67
|
|
|
@@ -220,136 +221,12 @@ export default class NonTerminalNode {
|
|
|
220
221
|
return unprecedented;
|
|
221
222
|
}
|
|
222
223
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
findChildNode(callback) { return this.childNodes.find(callback); }
|
|
228
|
-
|
|
229
|
-
everyChildNode(callback) { return this.childNodes.every(callback); }
|
|
230
|
-
|
|
231
|
-
filterChildNode(callback) { return this.childNodes.filter(callback); }
|
|
232
|
-
|
|
233
|
-
reduceChildNode(callback, initialValue) { return this.childNodes.reduce(callback, initialValue); }
|
|
234
|
-
|
|
235
|
-
forEachChildNode(callback) { this.childNodes.forEach(callback); }
|
|
236
|
-
|
|
237
|
-
forwardsSomeChildNode(callback) { return forwardsSome(this.childNodes, callback); }
|
|
238
|
-
|
|
239
|
-
backwardsSomeChildNode(callback) { return backwardsSome(this.childNodes, callback); }
|
|
240
|
-
|
|
241
|
-
indexOfChildNode(childNode) { return this.childNodes.indexOf(childNode); }
|
|
242
|
-
|
|
243
|
-
setChildNodesParentNode(childNodes) {
|
|
244
|
-
if (childNodes === undefined) {
|
|
245
|
-
childNodes = [
|
|
246
|
-
...this.childNodes
|
|
247
|
-
];
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
const parentNode = this;
|
|
251
|
-
|
|
252
|
-
childNodes.forEach((childNode) => {
|
|
253
|
-
childNode.setParentNode(parentNode);
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
resetChildNodesParentNode(childNodes) {
|
|
258
|
-
if (childNodes === undefined) {
|
|
259
|
-
childNodes = [
|
|
260
|
-
...this.childNodes
|
|
261
|
-
];
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
const parentNode = null;
|
|
265
|
-
|
|
266
|
-
childNodes.forEach((childNode) => {
|
|
267
|
-
childNode.setParentNode(parentNode);
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
addChildNode(addedChildNode, startIndex) {
|
|
272
|
-
const addedChildNodes = [
|
|
273
|
-
addedChildNode
|
|
274
|
-
];
|
|
275
|
-
|
|
276
|
-
this.addChildNodes(addedChildNodes, startIndex);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
addChildNodes(addedChildNodes, startIndex) {
|
|
280
|
-
const deleteCount = 0;
|
|
281
|
-
|
|
282
|
-
this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
removeChildNode(removedChildNode) {
|
|
286
|
-
let removedChildNodes;
|
|
287
|
-
|
|
288
|
-
removedChildNodes = [
|
|
289
|
-
removedChildNode
|
|
290
|
-
];
|
|
291
|
-
|
|
292
|
-
removedChildNodes = this.removeChildNodes(removedChildNodes);
|
|
293
|
-
|
|
294
|
-
return removedChildNodes;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
removeChildNodes(removedChildNodes) {
|
|
298
|
-
if (removedChildNodes === undefined) {
|
|
299
|
-
removedChildNodes = [
|
|
300
|
-
...this.childNodes
|
|
301
|
-
];
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
const removedChildNodesLength = removedChildNodes.length;
|
|
305
|
-
|
|
306
|
-
if (removedChildNodesLength === 0) {
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
const firstReplacedChildNode = first(removedChildNodes),
|
|
311
|
-
firstIndex = this.childNodes.indexOf(firstReplacedChildNode),
|
|
312
|
-
startIndex = firstIndex, ///
|
|
313
|
-
deleteCount = removedChildNodesLength, ///
|
|
314
|
-
addedChildNodes = [];
|
|
315
|
-
|
|
316
|
-
removedChildNodes = this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
|
|
317
|
-
|
|
318
|
-
return removedChildNodes;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
replaceChildNode(replacedChildNode, replacementChildNodes) {
|
|
322
|
-
const replacedChildNodes = [
|
|
323
|
-
replacedChildNode
|
|
324
|
-
];
|
|
325
|
-
|
|
326
|
-
this.replaceChildNodes(replacedChildNodes, replacementChildNodes);
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
replaceChildNodes(replacedChildNodes, replacementChildNodes) {
|
|
330
|
-
const replacedChildNodesLength = replacedChildNodes.length,
|
|
331
|
-
firstReplacedChildNode = first(replacedChildNodes),
|
|
332
|
-
firstIndex = this.childNodes.indexOf(firstReplacedChildNode),
|
|
333
|
-
startIndex = firstIndex, ///
|
|
334
|
-
deleteCount = replacedChildNodesLength; ///
|
|
335
|
-
|
|
336
|
-
this.spliceChildNodes(startIndex, deleteCount, replacementChildNodes);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
spliceChildNodes(startIndex, deleteCount, addedChildNodes = []) {
|
|
340
|
-
const removedChildNodes = this.childNodes.splice(startIndex, deleteCount, ...addedChildNodes);
|
|
341
|
-
|
|
342
|
-
this.resetChildNodesParentNode(removedChildNodes);
|
|
343
|
-
|
|
344
|
-
this.setChildNodesParentNode(addedChildNodes);
|
|
345
|
-
|
|
346
|
-
return removedChildNodes;
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
sliceChildNodes(startIndex, endIndex = Infinity) {
|
|
350
|
-
const childNodes = this.childNodes.slice(startIndex, endIndex);
|
|
224
|
+
asParseTree(tokens) {
|
|
225
|
+
const nonTerminalNode = this, ///
|
|
226
|
+
nonTerminalNodeParseTree = NonTerminalNodeParseTree.fromNonTerminalNodeAndTokens(nonTerminalNode, tokens),
|
|
227
|
+
parseTree = nonTerminalNodeParseTree; ///
|
|
351
228
|
|
|
352
|
-
return
|
|
229
|
+
return parseTree;
|
|
353
230
|
}
|
|
354
231
|
|
|
355
232
|
match(node, depth = Infinity, exactly = false) {
|
|
@@ -398,12 +275,13 @@ export default class NonTerminalNode {
|
|
|
398
275
|
return rewrittenNonTerminalNode;
|
|
399
276
|
}
|
|
400
277
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
278
|
+
destroy() {
|
|
279
|
+
this.forEachChildNode((childNode) => {
|
|
280
|
+
childNode.destroy();
|
|
281
|
+
});
|
|
405
282
|
|
|
406
|
-
|
|
283
|
+
this.parentNode = null;
|
|
284
|
+
this.childNodes = null;
|
|
407
285
|
}
|
|
408
286
|
|
|
409
287
|
clone(...remainingArguments) {
|
|
@@ -450,3 +328,5 @@ function cloneChildNodes(childNodes) {
|
|
|
450
328
|
|
|
451
329
|
return childNodes;
|
|
452
330
|
}
|
|
331
|
+
|
|
332
|
+
Object.assign(NonTerminalNode.prototype, nodeMixins);
|
package/src/node/terminal.js
CHANGED
|
@@ -118,29 +118,12 @@ export default class TerminalNode {
|
|
|
118
118
|
return ancestorNodes;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
includedIn = true;
|
|
126
|
-
} else {
|
|
127
|
-
const nodeNonTerminalNode = node.isNonTerminalNode();
|
|
128
|
-
|
|
129
|
-
if (nodeNonTerminalNode) {
|
|
130
|
-
const nonTerminalNode = node, ///
|
|
131
|
-
childNodes = nonTerminalNode.getChildNodes();
|
|
132
|
-
|
|
133
|
-
includedIn = childNodes.some((childNode) => {
|
|
134
|
-
const includedInChildNode = this.isIncludedIn(childNode);
|
|
135
|
-
|
|
136
|
-
if (includedInChildNode) {
|
|
137
|
-
return true;
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
}
|
|
121
|
+
asParseTree(tokens) {
|
|
122
|
+
const terminalNode = this, ///
|
|
123
|
+
terminalNodeParseTree = TerminalNodeParseTree.fromTerminalNodeAndTokens(terminalNode, tokens),
|
|
124
|
+
parseTree = terminalNodeParseTree; ///
|
|
142
125
|
|
|
143
|
-
return
|
|
126
|
+
return parseTree;
|
|
144
127
|
}
|
|
145
128
|
|
|
146
129
|
match(node, depth = Infinity, exactly = false) {
|
|
@@ -160,14 +143,6 @@ export default class TerminalNode {
|
|
|
160
143
|
return matches;
|
|
161
144
|
}
|
|
162
145
|
|
|
163
|
-
asParseTree(tokens) {
|
|
164
|
-
const terminalNode = this, ///
|
|
165
|
-
terminalNodeParseTree = TerminalNodeParseTree.fromTerminalNodeAndTokens(terminalNode, tokens),
|
|
166
|
-
parseTree = terminalNodeParseTree; ///
|
|
167
|
-
|
|
168
|
-
return parseTree;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
146
|
clone(...remainingArguments) {
|
|
172
147
|
const Class = this.constructor,
|
|
173
148
|
parentNode = null,
|
|
@@ -177,6 +152,11 @@ export default class TerminalNode {
|
|
|
177
152
|
return terminalNode;
|
|
178
153
|
}
|
|
179
154
|
|
|
155
|
+
destroy() {
|
|
156
|
+
this.parentNode = null;
|
|
157
|
+
this.significantToken = null;
|
|
158
|
+
}
|
|
159
|
+
|
|
180
160
|
static fromNothing(Class, ...remainingArguments) {
|
|
181
161
|
if (Class === undefined) {
|
|
182
162
|
Class = TerminalNode; ///
|