occam-languages 2.1.1 → 2.1.3
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/index.js +5 -9
- package/lib/pass/continuationZip.js +84 -0
- package/lib/utilities/continuation.js +21 -11
- package/package.json +1 -1
- package/src/index.js +1 -2
- package/src/pass/continuationZip.js +121 -0
- package/src/utilities/continuation.js +18 -9
- package/lib/pass/async.js +0 -79
- package/lib/pass/asyncZip.js +0 -89
- package/src/pass/async.js +0 -100
- package/src/pass/asyncZip.js +0 -125
package/lib/index.js
CHANGED
|
@@ -9,12 +9,6 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
get AsyncPass () {
|
|
13
|
-
return _async.default;
|
|
14
|
-
},
|
|
15
|
-
get AsyncZipPass () {
|
|
16
|
-
return _asyncZip.default;
|
|
17
|
-
},
|
|
18
12
|
get BreakPoint () {
|
|
19
13
|
return _breakPoint.default;
|
|
20
14
|
},
|
|
@@ -24,6 +18,9 @@ _export(exports, {
|
|
|
24
18
|
get ContinuationPass () {
|
|
25
19
|
return _continuation.default;
|
|
26
20
|
},
|
|
21
|
+
get ContinuationZipPass () {
|
|
22
|
+
return _continuationZip.default;
|
|
23
|
+
},
|
|
27
24
|
get Element () {
|
|
28
25
|
return _element.default;
|
|
29
26
|
},
|
|
@@ -104,13 +101,12 @@ const _breakPoint = /*#__PURE__*/ _interop_require_default(require("./breakPoint
|
|
|
104
101
|
const _file = /*#__PURE__*/ _interop_require_default(require("./context/file"));
|
|
105
102
|
const _release = /*#__PURE__*/ _interop_require_default(require("./context/release"));
|
|
106
103
|
const _zip = /*#__PURE__*/ _interop_require_default(require("./pass/zip"));
|
|
107
|
-
const _async = /*#__PURE__*/ _interop_require_default(require("./pass/async"));
|
|
108
104
|
const _simple = /*#__PURE__*/ _interop_require_default(require("./pass/simple"));
|
|
109
105
|
const _forward = /*#__PURE__*/ _interop_require_default(require("./pass/forward"));
|
|
110
|
-
const _asyncZip = /*#__PURE__*/ _interop_require_default(require("./pass/asyncZip"));
|
|
111
106
|
const _forwardZip = /*#__PURE__*/ _interop_require_default(require("./pass/forwardZip"));
|
|
112
107
|
const _equivalence = /*#__PURE__*/ _interop_require_default(require("./pass/equivalence"));
|
|
113
108
|
const _continuation = /*#__PURE__*/ _interop_require_default(require("./pass/continuation"));
|
|
109
|
+
const _continuationZip = /*#__PURE__*/ _interop_require_default(require("./pass/continuationZip"));
|
|
114
110
|
const _lexer = /*#__PURE__*/ _interop_require_default(require("./furtle/lexer"));
|
|
115
111
|
const _parser = /*#__PURE__*/ _interop_require_default(require("./furtle/parser"));
|
|
116
112
|
const _lexer1 = /*#__PURE__*/ _interop_require_default(require("./nominal/lexer"));
|
|
@@ -132,4 +128,4 @@ function _interop_require_default(obj) {
|
|
|
132
128
|
};
|
|
133
129
|
}
|
|
134
130
|
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCIuL2VsZW1lbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWtQb2ludCB9IGZyb20gXCIuL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy96aXBcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2ltcGxlUGFzcyB9IGZyb20gXCIuL3Bhc3Mvc2ltcGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvcndhcmRQYXNzIH0gZnJvbSBcIi4vcGFzcy9mb3J3YXJkXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvcndhcmRaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy9mb3J3YXJkWmlwXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVxdWl2YWxlbmNlUGFzcyB9IGZyb20gXCIuL3Bhc3MvZXF1aXZhbGVuY2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCIuL3Bhc3MvY29udGludWF0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRpbnVhdGlvblppcFBhc3MgfSBmcm9tIFwiLi9wYXNzL2NvbnRpbnVhdGlvblppcFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZUxleGVyIH0gZnJvbSBcIi4vZnVydGxlL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuL2Z1cnRsZS9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbExleGVyIH0gZnJvbSBcIi4vbm9taW5hbC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb21pbmFsUGFyc2VyIH0gZnJvbSBcIi4vbm9taW5hbC9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub25UZXJtaW5hbE5vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlTWl4aW5zIH0gZnJvbSBcIi4vbWl4aW5zL25vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBibmZVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYm5mXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmdXJ0bGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZnVydGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vbWluYWxVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9taW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZUNvbnRleHRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZUNvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJpZmljYXRpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyaWZpY2F0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbGVhc2VDb250ZXh0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3JlbGVhc2VDb250ZXh0XCI7XG4iXSwibmFtZXMiOlsiQnJlYWtQb2ludCIsIkNvbnRleHQiLCJDb250aW51YXRpb25QYXNzIiwiQ29udGludWF0aW9uWmlwUGFzcyIsIkVsZW1lbnQiLCJFcXVpdmFsZW5jZVBhc3MiLCJGaWxlQ29udGV4dCIsIkZvcndhcmRQYXNzIiwiRm9yd2FyZFppcFBhc3MiLCJGdXJ0bGVMZXhlciIsIkZ1cnRsZVBhcnNlciIsIkxvZyIsIk5vbWluYWxMZXhlciIsIk5vbWluYWxQYXJzZXIiLCJOb25UZXJtaW5hbE5vZGUiLCJSZWxlYXNlQ29udGV4dCIsIlNpbXBsZVBhc3MiLCJaaXBQYXNzIiwiYm5mVXRpbGl0aWVzIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImZpbGVDb250ZXh0VXRpbGl0aWVzIiwiZnVydGxlVXRpbGl0aWVzIiwibm9kZU1peGlucyIsIm5vZGVVdGlsaXRpZXMiLCJub21pbmFsVXRpbGl0aWVzIiwicmVsZWFzZUNvbnRleHRVdGlsaXRpZXMiLCJ2ZXJpZmljYXRpb25VdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUtvQkE7ZUFBQUEsbUJBQVU7O1FBRFZDO2VBQUFBLGdCQUFPOztRQVVQQztlQUFBQSxxQkFBZ0I7O1FBQ2hCQztlQUFBQSx3QkFBbUI7O1FBWm5CQztlQUFBQSxnQkFBTzs7UUFVUEM7ZUFBQUEsb0JBQWU7O1FBUGZDO2VBQUFBLGFBQVc7O1FBS1hDO2VBQUFBLGdCQUFXOztRQUNYQztlQUFBQSxtQkFBYzs7UUFLZEM7ZUFBQUEsY0FBVzs7UUFDWEM7ZUFBQUEsZUFBWTs7UUFoQlpDO2VBQUFBLFlBQUc7O1FBaUJIQztlQUFBQSxlQUFZOztRQUNaQztlQUFBQSxnQkFBYTs7UUFFYkM7ZUFBQUEsd0JBQWU7O1FBZmZDO2VBQUFBLGdCQUFjOztRQUdkQztlQUFBQSxlQUFVOztRQURWQztlQUFBQSxZQUFPOztRQWlCUEM7ZUFBQUEsWUFBWTs7UUFJWkM7ZUFBQUEsb0JBQW1COztRQUVuQkM7ZUFBQUEsc0JBQXFCOztRQURyQkM7ZUFBQUEsb0JBQW9COztRQUhwQkM7ZUFBQUEsZUFBZTs7UUFKZkM7ZUFBQUEsYUFBVTs7UUFHVkM7ZUFBQUEsY0FBYTs7UUFFYkM7ZUFBQUEsZ0JBQWdCOztRQUtoQkM7ZUFBQUEsdUJBQXVCOztRQUR2QkM7ZUFBQUEscUJBQXFCOzs7NERBL0JWO2dFQUNJO2dFQUNBO21FQUNHOzZEQUNDO2dFQUNHOzREQUVQOytEQUNHO2dFQUNDO21FQUNHO29FQUNDO3FFQUNDO3dFQUNHOzhEQUVSOytEQUNDOytEQUNBO2dFQUNDO3dFQUVFOzZEQUVMOzREQUVFOzhEQUNDOytEQUNFO2dFQUNDO29FQUNHO29FQUNDO3NFQUNDO3FFQUNBO3VFQUNFIn0=
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return ContinuationZipPass;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _asynchronous = require("../utilities/asynchronous");
|
|
12
|
+
const _pass = require("../utilities/pass");
|
|
13
|
+
class ContinuationZipPass {
|
|
14
|
+
run(generalNode, specificNode, ...remainingArguments) {
|
|
15
|
+
const continuation = remainingArguments.pop();
|
|
16
|
+
this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
|
|
17
|
+
}
|
|
18
|
+
descend(generalChildNodes, specificChildNodes, ...remainingArguments) {
|
|
19
|
+
const continuation = remainingArguments.pop(), childNodesCongruent = (0, _pass.areChildNodesCongruent)(generalChildNodes, specificChildNodes);
|
|
20
|
+
if (!childNodesCongruent) {
|
|
21
|
+
const descended = false;
|
|
22
|
+
continuation(descended);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
let index = -1;
|
|
26
|
+
(0, _asynchronous.every)(generalChildNodes, (generalChildNode, continuation)=>{
|
|
27
|
+
index++;
|
|
28
|
+
const specificChildNode = specificChildNodes[index], specificNode = specificChildNode, generalNode = generalChildNode; ///
|
|
29
|
+
this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
|
|
30
|
+
}, continuation);
|
|
31
|
+
}
|
|
32
|
+
visitNode(generalNode, specificNode, ...remainingArguments) {
|
|
33
|
+
const continuation = remainingArguments.pop(), generalNodeTerminalNode = generalNode.isTerminalNode(), specificNodeTerminalNode = specificNode.isTerminalNode(), generalNodeNonTerminalNode = generalNode.isNonTerminalNode(), specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
|
|
34
|
+
if (false) {
|
|
35
|
+
///
|
|
36
|
+
} else if (generalNodeTerminalNode && specificNodeTerminalNode) {
|
|
37
|
+
const generalTerminalNode = generalNode, specificTerminalNode = specificNode; ///
|
|
38
|
+
this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments, continuation);
|
|
39
|
+
} else if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
|
|
40
|
+
const generalNonTerminalNode = generalNode, specificNonTerminalNode = specificNode; ///
|
|
41
|
+
this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments, continuation);
|
|
42
|
+
} else {
|
|
43
|
+
const visited = false;
|
|
44
|
+
continuation(visited);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments) {
|
|
48
|
+
const visited = true, continuation = remainingArguments.pop();
|
|
49
|
+
continuation(visited);
|
|
50
|
+
}
|
|
51
|
+
visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments) {
|
|
52
|
+
const continuation = remainingArguments.pop();
|
|
53
|
+
let { maps } = this.constructor;
|
|
54
|
+
maps = [
|
|
55
|
+
...maps,
|
|
56
|
+
{
|
|
57
|
+
generalNodeQuery: _pass.nonTerminalNodeQuery,
|
|
58
|
+
specificNodeQuery: _pass.nonTerminalNodeQuery,
|
|
59
|
+
run: (generalNode, specificNode, ...remainingArguments)=>{
|
|
60
|
+
const continuation = remainingArguments.pop(), generalNonTerminalNodeRuleName = generalNonTerminalNode.getRuleName(), specificNonTerminalNodeRuleName = specificNonTerminalNode.getRuleName(); ///
|
|
61
|
+
if (generalNonTerminalNodeRuleName !== specificNonTerminalNodeRuleName) {
|
|
62
|
+
const visited = false;
|
|
63
|
+
continuation(visited);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const generalNonTerminalNodeChildNodes = generalNonTerminalNode.getChildNodes(), specificNonTerminalNodeChildNodes = specificNonTerminalNode.getChildNodes(), generalChildNodes = generalNonTerminalNodeChildNodes, specificChildNodes = specificNonTerminalNodeChildNodes; ///
|
|
67
|
+
this.descend(generalChildNodes, specificChildNodes, ...remainingArguments, continuation);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
];
|
|
71
|
+
(0, _asynchronous.some)(maps, (map, continuation)=>{
|
|
72
|
+
const { generalNodeQuery, specificNodeQuery, run } = map;
|
|
73
|
+
const generalNode = generalNodeQuery(generalNonTerminalNode), specificNode = specificNodeQuery(specificNonTerminalNode); ///
|
|
74
|
+
if (generalNode === null || specificNode === null) {
|
|
75
|
+
const visited = false;
|
|
76
|
+
continuation(visited);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
run(generalNode, specificNode, ...remainingArguments, continuation);
|
|
80
|
+
}, continuation);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvblppcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc29tZSwgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FzeW5jaHJvbm91c1wiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uWmlwUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICBkZXNjZW5kKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICBjaGlsZE5vZGVzQ29uZ3J1ZW50ID0gYXJlQ2hpbGROb2Rlc0NvbmdydWVudChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzKTtcblxuICAgIGlmICghY2hpbGROb2Rlc0NvbmdydWVudCkge1xuICAgICAgY29uc3QgZGVzY2VuZGVkID0gZmFsc2U7XG5cbiAgICAgIGNvbnRpbnVhdGlvbihkZXNjZW5kZWQpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gLTE7XG5cbiAgICBldmVyeShnZW5lcmFsQ2hpbGROb2RlcywgKGdlbmVyYWxDaGlsZE5vZGUsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgY29uc3Qgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsQ2hpbGROb2RlOyAvLy9cblxuICAgICAgdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH0sIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVUZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAgLy8vXG5cbiAgICAgIHRoaXMudmlzaXRUZXJtaW5hbE5vZGUoZ2VuZXJhbFRlcm1pbmFsTm9kZSwgc3BlY2lmaWNUZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9IGVsc2UgaWYgKGdlbmVyYWxOb2RlTm9uVGVybWluYWxOb2RlICYmIHNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZTsgLy8vXG5cbiAgICAgIHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICBjb250aW51YXRpb24odmlzaXRlZCk7XG4gICAgfVxuICB9XG5cbiAgdmlzaXRUZXJtaW5hbE5vZGUoZ2VuZXJhbFRlcm1pbmFsTm9kZSwgc3BlY2lmaWNUZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgeyAvLy9cbiAgICBjb25zdCB2aXNpdGVkID0gdHJ1ZSxcbiAgICAgICAgICBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBjb250aW51YXRpb24odmlzaXRlZCk7XG4gIH1cblxuICB2aXNpdE5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgbGV0IHsgbWFwcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIG1hcHMgPSBbIC8vL1xuICAgICAgLi4ubWFwcyxcbiAgICAgIHtcbiAgICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgcnVuOiAoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgICAgIGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSwgLy8vXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gICAgICAgICAgaWYgKGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSAhPT0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb250aW51YXRpb24odmlzaXRlZCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBnZW5lcmFsQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXM7IC8vL1xuXG4gICAgICAgICAgdGhpcy5kZXNjZW5kKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cblxuICAgIHNvbWUobWFwcywgKG1hcCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICBjb25zdCB7IGdlbmVyYWxOb2RlUXVlcnksIHNwZWNpZmljTm9kZVF1ZXJ5LCBydW4gfSA9IG1hcDtcblxuICAgICAgY29uc3QgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTm9kZVF1ZXJ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUpLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY05vZGVRdWVyeShzcGVjaWZpY05vblRlcm1pbmFsTm9kZSk7ICAvLy9cblxuICAgICAgaWYgKChnZW5lcmFsTm9kZSA9PT0gbnVsbCkgfHwgKHNwZWNpZmljTm9kZSA9PT0gbnVsbCkpIHtcbiAgICAgICAgY29uc3QgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnRpbnVhdGlvbih2aXNpdGVkKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gICAgfSwgY29udGludWF0aW9uKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbnRpbnVhdGlvblppcFBhc3MiLCJydW4iLCJnZW5lcmFsTm9kZSIsInNwZWNpZmljTm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJnZW5lcmFsQ2hpbGROb2RlcyIsInNwZWNpZmljQ2hpbGROb2RlcyIsImNoaWxkTm9kZXNDb25ncnVlbnQiLCJhcmVDaGlsZE5vZGVzQ29uZ3J1ZW50IiwiZGVzY2VuZGVkIiwiaW5kZXgiLCJldmVyeSIsImdlbmVyYWxDaGlsZE5vZGUiLCJzcGVjaWZpY0NoaWxkTm9kZSIsImdlbmVyYWxOb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlIiwiZ2VuZXJhbFRlcm1pbmFsTm9kZSIsInNwZWNpZmljVGVybWluYWxOb2RlIiwidmlzaXRUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJ2aXNpdE5vblRlcm1pbmFsTm9kZSIsInZpc2l0ZWQiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5Iiwic3BlY2lmaWNOb2RlUXVlcnkiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJzb21lIiwibWFwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXFCQTs7OzhCQUhPO3NCQUNpQztBQUU5QyxNQUFNQTtJQUNuQkMsSUFBSUMsV0FBVyxFQUFFQyxZQUFZLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDcEQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTND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
|
|
@@ -9,6 +9,9 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
get all () {
|
|
13
|
+
return all;
|
|
14
|
+
},
|
|
12
15
|
get backwardsEvery () {
|
|
13
16
|
return backwardsEvery;
|
|
14
17
|
},
|
|
@@ -21,6 +24,9 @@ _export(exports, {
|
|
|
21
24
|
get every () {
|
|
22
25
|
return every;
|
|
23
26
|
},
|
|
27
|
+
get exists () {
|
|
28
|
+
return exists;
|
|
29
|
+
},
|
|
24
30
|
get extract () {
|
|
25
31
|
return extract;
|
|
26
32
|
},
|
|
@@ -39,9 +45,6 @@ _export(exports, {
|
|
|
39
45
|
get resolve () {
|
|
40
46
|
return resolve;
|
|
41
47
|
},
|
|
42
|
-
get sequence () {
|
|
43
|
-
return sequence;
|
|
44
|
-
},
|
|
45
48
|
get some () {
|
|
46
49
|
return some;
|
|
47
50
|
},
|
|
@@ -183,12 +186,6 @@ function resolve(arrayA, arrayB, callback, ...remainingArguments) {
|
|
|
183
186
|
}
|
|
184
187
|
nextPass();
|
|
185
188
|
}
|
|
186
|
-
function sequence(callbacks, ...remainingArguments) {
|
|
187
|
-
const continuation = remainingArguments.pop();
|
|
188
|
-
every(callbacks, (callback, continuation)=>{
|
|
189
|
-
callback(...remainingArguments, continuation);
|
|
190
|
-
}, continuation);
|
|
191
|
-
}
|
|
192
189
|
function forwardsEvery(array, callback, ...remainingArguments) {
|
|
193
190
|
let success = true;
|
|
194
191
|
const continuation = remainingArguments.pop();
|
|
@@ -221,6 +218,18 @@ function backwardsEvery(array, callback, ...remainingArguments) {
|
|
|
221
218
|
continuation(success);
|
|
222
219
|
});
|
|
223
220
|
}
|
|
221
|
+
function all(callbacks, ...remainingArguments) {
|
|
222
|
+
const continuation = remainingArguments.pop();
|
|
223
|
+
every(callbacks, (callback, continuation)=>{
|
|
224
|
+
callback(...remainingArguments, continuation);
|
|
225
|
+
}, continuation);
|
|
226
|
+
}
|
|
227
|
+
function exists(callbacks, ...remainingArguments) {
|
|
228
|
+
const continuation = remainingArguments.pop();
|
|
229
|
+
some(callbacks, (callback, continuation)=>{
|
|
230
|
+
callback(...remainingArguments, continuation);
|
|
231
|
+
}, continuation);
|
|
232
|
+
}
|
|
224
233
|
function breakable(innerFunction) {
|
|
225
234
|
return function(...remainingArguments) {
|
|
226
235
|
const remainingArgumentsLength = remainingArguments.length, innerFunctionLength = innerFunction.length, continuation = remainingArguments.pop(), context = remainingArguments.pop();
|
|
@@ -253,11 +262,12 @@ const _default = {
|
|
|
253
262
|
forEach,
|
|
254
263
|
extract,
|
|
255
264
|
resolve,
|
|
256
|
-
sequence,
|
|
257
265
|
forwardsEvery,
|
|
258
266
|
backwardsEvery,
|
|
267
|
+
all,
|
|
268
|
+
exists,
|
|
259
269
|
breakable,
|
|
260
270
|
unbreakable
|
|
261
271
|
};
|
|
262
272
|
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0OiBhcnJheUZpcnN0LCBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgZm9yRWFjaDogYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgICAgICAgZm9yd2FyZHNGb3JFYWNoOiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2gsXG4gICAgICAgIGJhY2t3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGlmIChhcnJheUFMZW5ndGggIT09IGFycmF5Qkxlbmd0aCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGV2ZXJ5KGFycmF5QSwgKGVsZW1lbnRBLCBjb250aW51YXRpb24pID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgY29uc3QgZWxlbWVudEIgPSBhcnJheUJbaW5kZXhdO1xuXG4gICAgY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIChzdWNjZXNzKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN1Y2Nlc3M7ICAvLy9cblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgdmFsdWUgPSBpbml0aWFsVmFsdWU7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChjdXJyZW50VmFsdWUpID0+IHtcbiAgICAgIHZhbHVlID0gY3VycmVudFZhbHVlOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbih2YWx1ZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsICgpID0+IHtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3QoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgc29tZShhcnJheSwgKGVsZW1lbnQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50cyA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgICAgICBmaXJzdERlbGV0ZWRFbGVtZW50ID0gYXJyYXlGaXJzdChkZWxldGVkRWxlbWVudHMpO1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZmlyc3REZWxldGVkRWxlbWVudDsgIC8vL1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24ocGFzc2VkKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihkZWxldGVkRWxlbWVudCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dFBhc3MoKSB7XG4gICAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBsZXQgY291bnQgPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGNvdW50ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTsgLy8vXG5cbiAgICAgICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheUZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IGNvdW50LCAgLy8vXG4gICAgICAgICAgICAgIGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICBjYWxsYmFjayhlbGVtZW50QSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudEIgPSBlbGVtZW50QTsgIC8vL1xuXG4gICAgICAgICAgICBhcnJheUIucHVzaChlbGVtZW50Qik7XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHRFbGVtZW50KCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5leHRFbGVtZW50KCk7XG4gIH1cblxuICBuZXh0UGFzcygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VxdWVuY2UoY2FsbGJhY2tzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGV2ZXJ5KGNhbGxiYWNrcywgKGNhbGxiYWNrLCBjb250aW51YXRpb24pID0+IHtcbiAgICBjYWxsYmFjayguLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIGNvbnRpbnVhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCByZW1haW5pbmdBcmd1bWVudHNMZW5ndGggPSByZW1haW5pbmdBcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgIGlubmVyRnVuY3Rpb25MZW5ndGggPSBpbm5lckZ1bmN0aW9uLmxlbmd0aCxcbiAgICAgICAgICBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgaWYgKGlubmVyRnVuY3Rpb25MZW5ndGggPT09IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCkge1xuICAgICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCk7XG5cbiAgICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5icmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoID0gcmVtYWluaW5nQXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICBpbm5lckZ1bmN0aW9uTGVuZ3RoID0gaW5uZXJGdW5jdGlvbi5sZW5ndGgsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5uZXJGdW5jdGlvbkxlbmd0aCA9PT0gcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoKSB7XG4gICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCk7XG5cbiAgICBjb250aW51YXRpb24ocmVzdWx0KTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBzb21lLFxuICBldmVyeSxcbiAgbWF0Y2gsXG4gIHJlZHVjZSxcbiAgZm9yRWFjaCxcbiAgZXh0cmFjdCxcbiAgcmVzb2x2ZSxcbiAgc2VxdWVuY2UsXG4gIGZvcndhcmRzRXZlcnksXG4gIGJhY2t3YXJkc0V2ZXJ5LFxuICBicmVha2FibGUsXG4gIHVuYnJlYWthYmxlXG59XG4iXSwibmFtZXMiOlsiYmFja3dhcmRzRXZlcnkiLCJicmVha2FibGUiLCJldmVyeSIsImV4dHJhY3QiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsIm1hdGNoIiwicmVkdWNlIiwicmVzb2x2ZSIsInNlcXVlbmNlIiwic29tZSIsInVuYnJlYWthYmxlIiwiZmlyc3QiLCJhcnJheUZpcnN0IiwiZmlsdGVyIiwiYXJyYXlGaWx0ZXIiLCJhcnJheVV0aWxpdGllcyIsImFzeW5jaHJvbm91c0ZvckVhY2giLCJmb3J3YXJkc0ZvckVhY2giLCJhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2giLCJiYWNrd2FyZHNGb3JFYWNoIiwiYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImFycmF5IiwiY2FsbGJhY2siLCJyZW1haW5pbmdBcmd1bWVudHMiLCJzdWNjZXNzIiwiY29udGludWF0aW9uIiwicG9wIiwiZWxlbWVudCIsIm5leHQiLCJkb25lIiwicGFzc2VkIiwiYXJyYXlBIiwiYXJyYXlCIiwiYXJyYXlBTGVuZ3RoIiwibGVuZ3RoIiwiYXJyYXlCTGVuZ3RoIiwibWF0Y2hlcyIsImluZGV4IiwiZWxlbWVudEEiLCJlbGVtZW50QiIsImluaXRpYWxWYWx1ZSIsInZhbHVlIiwiY3VycmVudFZhbHVlIiwiZGVsZXRlZEVsZW1lbnQiLCJ1bmRlZmluZWQiLCJzdGFydCIsImRlbGV0ZUNvdW50IiwiZGVsZXRlZEVsZW1lbnRzIiwic3BsaWNlIiwiZmlyc3REZWxldGVkRWxlbWVudCIsIm5leHRQYXNzIiwiY291bnQiLCJuZXh0RWxlbWVudCIsInRlcm1pbmF0ZSIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsInB1c2giLCJjYWxsYmFja3MiLCJpbm5lckZ1bmN0aW9uIiwicmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoIiwiaW5uZXJGdW5jdGlvbkxlbmd0aCIsImNvbnRleHQiLCJicmVhayIsImNhbGwiLCJyZXN1bHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXlPZ0JBO2VBQUFBOztRQXNCQUM7ZUFB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
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0OiBhcnJheUZpcnN0LCBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgZm9yRWFjaDogYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgICAgICAgZm9yd2FyZHNGb3JFYWNoOiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2gsXG4gICAgICAgIGJhY2t3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGlmIChhcnJheUFMZW5ndGggIT09IGFycmF5Qkxlbmd0aCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGV2ZXJ5KGFycmF5QSwgKGVsZW1lbnRBLCBjb250aW51YXRpb24pID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgY29uc3QgZWxlbWVudEIgPSBhcnJheUJbaW5kZXhdO1xuXG4gICAgY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIChzdWNjZXNzKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN1Y2Nlc3M7ICAvLy9cblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgdmFsdWUgPSBpbml0aWFsVmFsdWU7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChjdXJyZW50VmFsdWUpID0+IHtcbiAgICAgIHZhbHVlID0gY3VycmVudFZhbHVlOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbih2YWx1ZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsICgpID0+IHtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3QoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgc29tZShhcnJheSwgKGVsZW1lbnQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50cyA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgICAgICBmaXJzdERlbGV0ZWRFbGVtZW50ID0gYXJyYXlGaXJzdChkZWxldGVkRWxlbWVudHMpO1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZmlyc3REZWxldGVkRWxlbWVudDsgIC8vL1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24ocGFzc2VkKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihkZWxldGVkRWxlbWVudCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dFBhc3MoKSB7XG4gICAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBsZXQgY291bnQgPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGNvdW50ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTsgLy8vXG5cbiAgICAgICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheUZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IGNvdW50LCAgLy8vXG4gICAgICAgICAgICAgIGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICBjYWxsYmFjayhlbGVtZW50QSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudEIgPSBlbGVtZW50QTsgIC8vL1xuXG4gICAgICAgICAgICBhcnJheUIucHVzaChlbGVtZW50Qik7XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHRFbGVtZW50KCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5leHRFbGVtZW50KCk7XG4gIH1cblxuICBuZXh0UGFzcygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNCYWNrd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGwoY2FsbGJhY2tzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGV2ZXJ5KGNhbGxiYWNrcywgKGNhbGxiYWNrLCBjb250aW51YXRpb24pID0+IHtcbiAgICBjYWxsYmFjayguLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIGNvbnRpbnVhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGlzdHMoY2FsbGJhY2tzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIHNvbWUoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGNhbGxiYWNrKC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCByZW1haW5pbmdBcmd1bWVudHNMZW5ndGggPSByZW1haW5pbmdBcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgIGlubmVyRnVuY3Rpb25MZW5ndGggPSBpbm5lckZ1bmN0aW9uLmxlbmd0aCxcbiAgICAgICAgICBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgaWYgKGlubmVyRnVuY3Rpb25MZW5ndGggPT09IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCkge1xuICAgICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCk7XG5cbiAgICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5icmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoID0gcmVtYWluaW5nQXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICBpbm5lckZ1bmN0aW9uTGVuZ3RoID0gaW5uZXJGdW5jdGlvbi5sZW5ndGgsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5uZXJGdW5jdGlvbkxlbmd0aCA9PT0gcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoKSB7XG4gICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCk7XG5cbiAgICBjb250aW51YXRpb24ocmVzdWx0KTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBzb21lLFxuICBldmVyeSxcbiAgbWF0Y2gsXG4gIHJlZHVjZSxcbiAgZm9yRWFjaCxcbiAgZXh0cmFjdCxcbiAgcmVzb2x2ZSxcbiAgZm9yd2FyZHNFdmVyeSxcbiAgYmFja3dhcmRzRXZlcnksXG4gIGFsbCxcbiAgZXhpc3RzLFxuICBicmVha2FibGUsXG4gIHVuYnJlYWthYmxlXG59XG4iXSwibmFtZXMiOlsiYWxsIiwiYmFja3dhcmRzRXZlcnkiLCJicmVha2FibGUiLCJldmVyeSIsImV4aXN0cyIsImV4dHJhY3QiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsIm1hdGNoIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJ1bmJyZWFrYWJsZSIsImZpcnN0IiwiYXJyYXlGaXJzdCIsImZpbHRlciIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiZm9yd2FyZHNGb3JFYWNoIiwiYXN5bmNocm9ub3VzRm9yd2FyZHNGb3JFYWNoIiwiYmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2giLCJhc3luY2hyb25vdXNVdGlsaXRpZXMiLCJhcnJheSIsImNhbGxiYWNrIiwicmVtYWluaW5nQXJndW1lbnRzIiwic3VjY2VzcyIsImNvbnRpbnVhdGlvbiIsInBvcCIsImVsZW1lbnQiLCJuZXh0IiwiZG9uZSIsInBhc3NlZCIsImFycmF5QSIsImFycmF5QiIsImFycmF5QUxlbmd0aCIsImxlbmd0aCIsImFycmF5Qkxlbmd0aCIsIm1hdGNoZXMiLCJpbmRleCIsImVsZW1lbnRBIiwiZWxlbWVudEIiLCJpbml0aWFsVmFsdWUiLCJ2YWx1ZSIsImN1cnJlbnRWYWx1ZSIsImRlbGV0ZWRFbGVtZW50IiwidW5kZWZpbmVkIiwic3RhcnQiLCJkZWxldGVDb3VudCIsImRlbGV0ZWRFbGVtZW50cyIsInNwbGljZSIsImZpcnN0RGVsZXRlZEVsZW1lbnQiLCJuZXh0UGFzcyIsImNvdW50IiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMiLCJwdXNoIiwiY2FsbGJhY2tzIiwiaW5uZXJGdW5jdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCIsImlubmVyRnVuY3Rpb25MZW5ndGgiLCJjb250ZXh0IiwiYnJlYWsiLCJjYWxsIiwicmVzdWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF1UGdCQTtlQUFBQTs7UUF0QkFDO2VBQUFBOztRQXNDQUM7ZUFBQUE7O1FBd0NoQjtlQUFBOztRQWhSZ0JDO2VBQUFBOztRQWdPQUM7ZUFBQUE7O1FBcEpBQztlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBMEdBQztlQUFBQTs7UUF0SkFDO2VBQUFBOztRQTRCQUM7ZUFBQUE7O1FBcURBQztlQUFBQTs7UUE3SEFDO2VBQUFBOztRQW1SQUM7ZUFBQUE7OzsyQkExUnNDO0FBRXRELE1BQU0sRUFBRUMsT0FBT0MsVUFBVSxFQUFFQyxRQUFRQyxXQUFXLEVBQUUsR0FBR0MseUJBQWMsRUFDM0QsRUFBRVgsU0FBU1ksbUJBQW1CLEVBQzVCQyxpQkFBaUJDLDJCQUEyQixFQUM1Q0Msa0JBQWtCQyw0QkFBNEIsRUFBRSxHQUFHQyxnQ0FBcUI7QUFFekUsU0FBU1osS0FBS2EsS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQ3pELElBQUlDLFVBQVU7SUFFZCxNQUFNQyxlQUFlRixtQkFBbUJHLEdBQUc7SUFFM0NYLG9CQUFvQk0sT0FBTyxDQUFDTSxTQUFTQyxNQUFNQztRQUN6Q1AsU0FBU0ssWUFBWUosb0JBQW9CLENBQUNPO1lBQ3hDLElBQUlBLFFBQVE7Z0JBQ1ZOLFVBQVU7Z0JBRVZLO2dCQUVBO1lBQ0Y7WUFFQUQ7UUFDRjtJQUNGLEdBQUc7UUFDREgsYUFBYUQ7SUFDZjtBQUNGO0FBRU8sU0FBU3hCLE1BQU1xQixLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxrQkFBa0I7SUFDMUQsSUFBSUMsVUFB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
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -8,13 +8,12 @@ export { default as FileContext } from "./context/file";
|
|
|
8
8
|
export { default as ReleaseContext } from "./context/release";
|
|
9
9
|
|
|
10
10
|
export { default as ZipPass } from "./pass/zip";
|
|
11
|
-
export { default as AsyncPass } from "./pass/async";
|
|
12
11
|
export { default as SimplePass } from "./pass/simple";
|
|
13
12
|
export { default as ForwardPass } from "./pass/forward";
|
|
14
|
-
export { default as AsyncZipPass } from "./pass/asyncZip";
|
|
15
13
|
export { default as ForwardZipPass } from "./pass/forwardZip";
|
|
16
14
|
export { default as EquivalencePass } from "./pass/equivalence";
|
|
17
15
|
export { default as ContinuationPass } from "./pass/continuation";
|
|
16
|
+
export { default as ContinuationZipPass } from "./pass/continuationZip";
|
|
18
17
|
|
|
19
18
|
export { default as FurtleLexer } from "./furtle/lexer";
|
|
20
19
|
export { default as FurtleParser } from "./furtle/parser";
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { some, every } from "../utilities/asynchronous";
|
|
4
|
+
import { nonTerminalNodeQuery, areChildNodesCongruent } from "../utilities/pass";
|
|
5
|
+
|
|
6
|
+
export default class ContinuationZipPass {
|
|
7
|
+
run(generalNode, specificNode, ...remainingArguments) {
|
|
8
|
+
const continuation = remainingArguments.pop();
|
|
9
|
+
|
|
10
|
+
this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
descend(generalChildNodes, specificChildNodes, ...remainingArguments) {
|
|
14
|
+
const continuation = remainingArguments.pop(),
|
|
15
|
+
childNodesCongruent = areChildNodesCongruent(generalChildNodes, specificChildNodes);
|
|
16
|
+
|
|
17
|
+
if (!childNodesCongruent) {
|
|
18
|
+
const descended = false;
|
|
19
|
+
|
|
20
|
+
continuation(descended);
|
|
21
|
+
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
let index = -1;
|
|
26
|
+
|
|
27
|
+
every(generalChildNodes, (generalChildNode, continuation) => {
|
|
28
|
+
index++;
|
|
29
|
+
|
|
30
|
+
const specificChildNode = specificChildNodes[index],
|
|
31
|
+
specificNode = specificChildNode, ///
|
|
32
|
+
generalNode = generalChildNode; ///
|
|
33
|
+
|
|
34
|
+
this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
|
|
35
|
+
}, continuation);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
visitNode(generalNode, specificNode, ...remainingArguments) {
|
|
39
|
+
const continuation = remainingArguments.pop(),
|
|
40
|
+
generalNodeTerminalNode = generalNode.isTerminalNode(),
|
|
41
|
+
specificNodeTerminalNode = specificNode.isTerminalNode(),
|
|
42
|
+
generalNodeNonTerminalNode = generalNode.isNonTerminalNode(),
|
|
43
|
+
specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
|
|
44
|
+
|
|
45
|
+
if (false) {
|
|
46
|
+
///
|
|
47
|
+
} else if (generalNodeTerminalNode && specificNodeTerminalNode) {
|
|
48
|
+
const generalTerminalNode = generalNode, ///
|
|
49
|
+
specificTerminalNode = specificNode; ///
|
|
50
|
+
|
|
51
|
+
this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments, continuation);
|
|
52
|
+
} else if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
|
|
53
|
+
const generalNonTerminalNode = generalNode, ///
|
|
54
|
+
specificNonTerminalNode = specificNode; ///
|
|
55
|
+
|
|
56
|
+
this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments, continuation);
|
|
57
|
+
} else {
|
|
58
|
+
const visited = false;
|
|
59
|
+
|
|
60
|
+
continuation(visited);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments) { ///
|
|
65
|
+
const visited = true,
|
|
66
|
+
continuation = remainingArguments.pop();
|
|
67
|
+
|
|
68
|
+
continuation(visited);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments) {
|
|
72
|
+
const continuation = remainingArguments.pop();
|
|
73
|
+
|
|
74
|
+
let { maps } = this.constructor;
|
|
75
|
+
|
|
76
|
+
maps = [ ///
|
|
77
|
+
...maps,
|
|
78
|
+
{
|
|
79
|
+
generalNodeQuery: nonTerminalNodeQuery,
|
|
80
|
+
specificNodeQuery: nonTerminalNodeQuery,
|
|
81
|
+
run: (generalNode, specificNode, ...remainingArguments) => {
|
|
82
|
+
const continuation = remainingArguments.pop(),
|
|
83
|
+
generalNonTerminalNodeRuleName = generalNonTerminalNode.getRuleName(), ///
|
|
84
|
+
specificNonTerminalNodeRuleName = specificNonTerminalNode.getRuleName(); ///
|
|
85
|
+
|
|
86
|
+
if (generalNonTerminalNodeRuleName !== specificNonTerminalNodeRuleName) {
|
|
87
|
+
const visited = false;
|
|
88
|
+
|
|
89
|
+
continuation(visited);
|
|
90
|
+
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const generalNonTerminalNodeChildNodes = generalNonTerminalNode.getChildNodes(),
|
|
95
|
+
specificNonTerminalNodeChildNodes = specificNonTerminalNode.getChildNodes(),
|
|
96
|
+
generalChildNodes = generalNonTerminalNodeChildNodes, ///
|
|
97
|
+
specificChildNodes = specificNonTerminalNodeChildNodes; ///
|
|
98
|
+
|
|
99
|
+
this.descend(generalChildNodes, specificChildNodes, ...remainingArguments, continuation);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
|
|
104
|
+
some(maps, (map, continuation) => {
|
|
105
|
+
const { generalNodeQuery, specificNodeQuery, run } = map;
|
|
106
|
+
|
|
107
|
+
const generalNode = generalNodeQuery(generalNonTerminalNode), ///
|
|
108
|
+
specificNode = specificNodeQuery(specificNonTerminalNode); ///
|
|
109
|
+
|
|
110
|
+
if ((generalNode === null) || (specificNode === null)) {
|
|
111
|
+
const visited = false;
|
|
112
|
+
|
|
113
|
+
continuation(visited);
|
|
114
|
+
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
run(generalNode, specificNode, ...remainingArguments, continuation);
|
|
119
|
+
}, continuation);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -201,14 +201,6 @@ export function resolve(arrayA, arrayB, callback, ...remainingArguments) {
|
|
|
201
201
|
nextPass();
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
-
export function sequence(callbacks, ...remainingArguments) {
|
|
205
|
-
const continuation = remainingArguments.pop();
|
|
206
|
-
|
|
207
|
-
every(callbacks, (callback, continuation) => {
|
|
208
|
-
callback(...remainingArguments, continuation);
|
|
209
|
-
}, continuation);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
204
|
export function forwardsEvery(array, callback, ...remainingArguments) {
|
|
213
205
|
let success = true;
|
|
214
206
|
|
|
@@ -253,6 +245,22 @@ export function backwardsEvery(array, callback, ...remainingArguments) {
|
|
|
253
245
|
});
|
|
254
246
|
}
|
|
255
247
|
|
|
248
|
+
export function all(callbacks, ...remainingArguments) {
|
|
249
|
+
const continuation = remainingArguments.pop();
|
|
250
|
+
|
|
251
|
+
every(callbacks, (callback, continuation) => {
|
|
252
|
+
callback(...remainingArguments, continuation);
|
|
253
|
+
}, continuation);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export function exists(callbacks, ...remainingArguments) {
|
|
257
|
+
const continuation = remainingArguments.pop();
|
|
258
|
+
|
|
259
|
+
some(callbacks, (callback, continuation) => {
|
|
260
|
+
callback(...remainingArguments, continuation);
|
|
261
|
+
}, continuation);
|
|
262
|
+
}
|
|
263
|
+
|
|
256
264
|
export function breakable(innerFunction) {
|
|
257
265
|
return function(...remainingArguments) {
|
|
258
266
|
const remainingArgumentsLength = remainingArguments.length,
|
|
@@ -301,9 +309,10 @@ export default {
|
|
|
301
309
|
forEach,
|
|
302
310
|
extract,
|
|
303
311
|
resolve,
|
|
304
|
-
sequence,
|
|
305
312
|
forwardsEvery,
|
|
306
313
|
backwardsEvery,
|
|
314
|
+
all,
|
|
315
|
+
exists,
|
|
307
316
|
breakable,
|
|
308
317
|
unbreakable
|
|
309
318
|
}
|
package/lib/pass/async.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return AsyncPass;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _pass = require("../utilities/pass");
|
|
12
|
-
const _asynchronous = require("../utilities/asynchronous");
|
|
13
|
-
class AsyncPass {
|
|
14
|
-
async run(node, ...remainingArguments) {
|
|
15
|
-
let success;
|
|
16
|
-
const visited = await this.visitNode(node, ...remainingArguments);
|
|
17
|
-
success = visited; ///
|
|
18
|
-
return success;
|
|
19
|
-
}
|
|
20
|
-
async descend(childNodes, ...remainingArguments) {
|
|
21
|
-
let descended = false;
|
|
22
|
-
const visited = await (0, _asynchronous.asyncEvery)(childNodes, async (childNode)=>{
|
|
23
|
-
const node = childNode, visited = await this.visitNode(node, ...remainingArguments);
|
|
24
|
-
if (visited) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
if (visited) {
|
|
29
|
-
descended = true;
|
|
30
|
-
}
|
|
31
|
-
return descended;
|
|
32
|
-
}
|
|
33
|
-
async visitNode(node, ...remainingArguments) {
|
|
34
|
-
let visited;
|
|
35
|
-
const nodeTerminalNode = node.isTerminalNode();
|
|
36
|
-
if (nodeTerminalNode) {
|
|
37
|
-
const terminalNode = node; ///
|
|
38
|
-
visited = await this.visitTerminalNode(terminalNode, ...remainingArguments);
|
|
39
|
-
} else {
|
|
40
|
-
const nonTerminalNode = node; ///
|
|
41
|
-
visited = await this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments);
|
|
42
|
-
}
|
|
43
|
-
return visited;
|
|
44
|
-
}
|
|
45
|
-
async visitTerminalNode(terminalNode, ...remainingArguments) {
|
|
46
|
-
const visited = true;
|
|
47
|
-
return visited;
|
|
48
|
-
}
|
|
49
|
-
async visitNonTerminalNode(nonTerminalNode, ...remainingArguments) {
|
|
50
|
-
let visited = false;
|
|
51
|
-
let { maps } = this.constructor;
|
|
52
|
-
maps = [
|
|
53
|
-
...maps,
|
|
54
|
-
{
|
|
55
|
-
nodeQuery: _pass.nonTerminalNodeQuery,
|
|
56
|
-
run: async (node, ...remainingArguments)=>{
|
|
57
|
-
let visited = false;
|
|
58
|
-
const childNodes = nonTerminalNode.getChildNodes(), descended = await this.descend(childNodes, ...remainingArguments);
|
|
59
|
-
if (descended) {
|
|
60
|
-
visited = true;
|
|
61
|
-
}
|
|
62
|
-
return visited;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
];
|
|
66
|
-
await (0, _asynchronous.asyncSome)(maps, async (map)=>{
|
|
67
|
-
const { nodeQuery, run } = map;
|
|
68
|
-
const node = nodeQuery(nonTerminalNode);
|
|
69
|
-
if (node !== null) {
|
|
70
|
-
const success = await run(node, ...remainingArguments);
|
|
71
|
-
visited = success; ///
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
return visited;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2FzeW5jLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub25UZXJtaW5hbE5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcGFzc1wiO1xuaW1wb3J0IHsgYXN5bmNTb21lLCBhc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hc3luY2hyb25vdXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXN5bmNQYXNzIHtcbiAgYXN5bmMgcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzO1xuXG4gICAgY29uc3QgdmlzaXRlZCA9IGF3YWl0IHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBzdWNjZXNzID0gdmlzaXRlZDsgIC8vL1xuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBhc3luYyBkZXNjZW5kKGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBkZXNjZW5kZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZpc2l0ZWQgPSBhd2FpdCBhc3luY0V2ZXJ5KGNoaWxkTm9kZXMsIGFzeW5jIChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBjaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgdmlzaXRlZCA9IGF3YWl0IHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgIGlmICh2aXNpdGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHZpc2l0ZWQpIHtcbiAgICAgIGRlc2NlbmRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NlbmRlZDtcbiAgfVxuXG4gIGFzeW5jIHZpc2l0Tm9kZShub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgdmlzaXRlZDtcblxuICAgIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgICB2aXNpdGVkID0gYXdhaXQgdGhpcy52aXNpdFRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgICAgdmlzaXRlZCA9IGF3YWl0IHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG5cbiAgYXN5bmMgdmlzaXRUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCB2aXNpdGVkID0gdHJ1ZTtcblxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG5cbiAgYXN5bmMgdmlzaXROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgbGV0IHsgbWFwcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIG1hcHMgPSBbIC8vL1xuICAgICAgLi4ubWFwcyxcbiAgICAgIHtcbiAgICAgICAgbm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgcnVuOiBhc3luYyAobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLCAvLy9cbiAgICAgICAgICAgICAgICBkZXNjZW5kZWQgPSBhd2FpdCB0aGlzLmRlc2NlbmQoY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgIGlmIChkZXNjZW5kZWQpIHtcbiAgICAgICAgICAgIHZpc2l0ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2aXNpdGVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuXG4gICAgYXdhaXQgYXN5bmNTb21lKG1hcHMsIGFzeW5jIChtYXApID0+IHtcbiAgICAgIGNvbnN0IHsgbm9kZVF1ZXJ5LCBydW4gfSA9IG1hcDtcblxuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVRdWVyeShub25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgdmlzaXRlZCA9IHN1Y2Nlc3M7ICAvLy9cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG59XG4iXSwibmFtZXMiOlsiQXN5bmNQYXNzIiwicnVuIiwibm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJ2aXNpdGVkIiwidmlzaXROb2RlIiwiZGVzY2VuZCIsImNoaWxkTm9kZXMiLCJkZXNjZW5kZWQiLCJhc3luY0V2ZXJ5IiwiY2hpbGROb2RlIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwidmlzaXRUZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJ2aXNpdE5vblRlcm1pbmFsTm9kZSIsIm1hcHMiLCJub2RlUXVlcnkiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsImdldENoaWxkTm9kZXMiLCJhc3luY1NvbWUiLCJtYXAiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUtBOzs7ZUFBcUJBOzs7c0JBSGdCOzhCQUNDO0FBRXZCLE1BQU1BO0lBQ25CLE1BQU1DLElBQUlDLElBQUksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUNyQyxJQUFJQztRQUVKLE1BQU1DLFVBQVUsTUFBTSxJQUFJLENBQUNDLFNBQVMsQ0FBQ0osU0FBU0M7UUFFOUNDLFVBQVVDLFNBQVUsR0FBRztRQUV2QixPQUFPRDtJQUNUO0lBRUEsTUFBTUcsUUFBUUMsVUFBVSxFQUFFLEdBQUdMLGtCQUFrQixFQUFFO1FBQy9DLElBQUlNLFlBQVk7UUFFaEIsTUFBTUosVUFBVSxNQUFNSyxJQUFBQSx3QkFBVSxFQUFDRixZQUFZLE9BQU9HO1lBQ2xELE1BQU1ULE9BQU9TLFdBQ1BOLFVBQVUsTUFBTSxJQUFJLENBQUNDLFNBQVMsQ0FBQ0osU0FBU0M7WUFFOUMsSUFBSUUsU0FBUztnQkFDWCxPQUFPO1lBQ1Q7UUFDRjtRQUVBLElBQUlBLFNBQVM7WUFDWEksWUFBWTtRQUNkO1FBRUEsT0FBT0E7SUFDVDtJQUVBLE1BQU1ILFVBQVVKLElBQUksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUMzQyxJQUFJRTtRQUVKLE1BQU1PLG1CQUFtQlYsS0FBS1csY0FBYztRQUU1QyxJQUFJRCxrQkFBa0I7WUFDcEIsTUFBTUUsZUFBZVosTUFBTyxHQUFHO1lBRS9CRyxVQUFVLE1BQU0sSUFBSSxDQUFDVSxpQkFBaUIsQ0FBQ0QsaUJBQWlCWDtRQUMxRCxPQUFPO1lBQ0wsTUFBTWEsa0JBQWtCZCxNQUFPLEdBQUc7WUFFbENHLFVBQVUsTUFBTSxJQUFJLENBQUNZLG9CQUFvQixDQUFDRCxvQkFBb0JiO1FBQ2hFO1FBRUEsT0FBT0U7SUFDVDtJQUVBLE1BQU1VLGtCQUFrQkQsWUFBWSxFQUFFLEdBQUdYLGtCQUFrQixFQUFFO1FBQzNELE1BQU1FLFVBQVU7UUFFaEIsT0FBT0E7SUFDVDtJQUVBLE1BQU1ZLHFCQUFxQkQsZUFBZSxFQUFFLEdBQUdiLGtCQUFrQixFQUFFO1FBQ2pFLElBQUlFLFVBQVU7UUFFZCxJQUFJLEVBQUVhLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXO1FBRS9CQSxPQUFPO2VBQ0ZBO1lBQ0g7Z0JBQ0VDLFdBQVdDLDBCQUFvQjtnQkFDL0JuQixLQUFLLE9BQU9DLE1BQU0sR0FBR0M7b0JBQ25CLElBQUlFLFVBQVU7b0JBRWQsTUFBTUcsYUFBYVEsZ0JBQWdCSyxhQUFhLElBQzFDWixZQUFZLE1BQU0sSUFBSSxDQUFDRixPQUFPLENBQUNDLGVBQWVMO29CQUVwRCxJQUFJTSxXQUFXO3dCQUNiSixVQUFVO29CQUNaO29CQUVBLE9BQU9BO2dCQUNUO1lBQ0Y7U0FDRDtRQUVELE1BQU1pQixJQUFBQSx1QkFBUyxFQUFDSixNQUFNLE9BQU9LO1lBQzNCLE1BQU0sRUFBRUosU0FBUyxFQUFFbEIsR0FBRyxFQUFFLEdBQUdzQjtZQUUzQixNQUFNckIsT0FBT2lCLFVBQVVIO1lBRXZCLElBQUlkLFNBQVMsTUFBTTtnQkFDakIsTUFBTUUsVUFBVSxNQUFNSCxJQUFJQyxTQUFTQztnQkFFbkNFLFVBQVVELFNBQVUsR0FBRztnQkFFdkIsT0FBTztZQUNUO1FBQ0Y7UUFFQSxPQUFPQztJQUNUO0FBQ0YifQ==
|
package/lib/pass/asyncZip.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return AsyncZipPass;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _asynchronous = require("../utilities/asynchronous");
|
|
12
|
-
const _pass = require("../utilities/pass");
|
|
13
|
-
class AsyncZipPass {
|
|
14
|
-
async run(generalNode, specificNode, ...remainingArguments) {
|
|
15
|
-
let success;
|
|
16
|
-
const visited = await this.visitNode(generalNode, specificNode, ...remainingArguments);
|
|
17
|
-
success = visited; ///
|
|
18
|
-
return success;
|
|
19
|
-
}
|
|
20
|
-
async descend(generalChildNodes, specificChildNodes, ...remainingArguments) {
|
|
21
|
-
let descended = false;
|
|
22
|
-
const childNodesCongruent = (0, _pass.areChildNodesCongruent)(generalChildNodes, specificChildNodes);
|
|
23
|
-
if (childNodesCongruent) {
|
|
24
|
-
const visited = await (0, _asynchronous.asyncEvery)(generalChildNodes, async (generalChildNode, index)=>{
|
|
25
|
-
const specificChildNode = specificChildNodes[index], specificNode = specificChildNode, generalNode = generalChildNode, visited = await this.visitNode(generalNode, specificNode, ...remainingArguments);
|
|
26
|
-
if (visited) {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
if (visited) {
|
|
31
|
-
descended = true;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return descended;
|
|
35
|
-
}
|
|
36
|
-
async visitNode(generalNode, specificNode, ...remainingArguments) {
|
|
37
|
-
let visited = false;
|
|
38
|
-
const generalNodeTerminalNode = generalNode.isTerminalNode(), specificNodeTerminalNode = specificNode.isTerminalNode(), generalNodeNonTerminalNode = generalNode.isNonTerminalNode(), specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
|
|
39
|
-
if (false) {
|
|
40
|
-
///
|
|
41
|
-
} else if (generalNodeTerminalNode && specificNodeTerminalNode) {
|
|
42
|
-
const generalTerminalNode = generalNode, specificTerminalNode = specificNode; ///
|
|
43
|
-
visited = await this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments);
|
|
44
|
-
} else if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
|
|
45
|
-
const generalNonTerminalNode = generalNode, specificNonTerminalNode = specificNode; ///
|
|
46
|
-
visited = await this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments);
|
|
47
|
-
}
|
|
48
|
-
return visited;
|
|
49
|
-
}
|
|
50
|
-
async visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments) {
|
|
51
|
-
let visited;
|
|
52
|
-
visited = true;
|
|
53
|
-
return visited;
|
|
54
|
-
}
|
|
55
|
-
async visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments) {
|
|
56
|
-
let visited = false;
|
|
57
|
-
let { maps } = this.constructor;
|
|
58
|
-
maps = [
|
|
59
|
-
...maps,
|
|
60
|
-
{
|
|
61
|
-
generalNodeQuery: _pass.nonTerminalNodeQuery,
|
|
62
|
-
specificNodeQuery: _pass.nonTerminalNodeQuery,
|
|
63
|
-
run: async (generalNode, specificNode, ...remainingArguments)=>{
|
|
64
|
-
let visited = false;
|
|
65
|
-
const generalNonTerminalNodeRuleName = generalNonTerminalNode.getRuleName(), specificNonTerminalNodeRuleName = specificNonTerminalNode.getRuleName(); ///
|
|
66
|
-
if (generalNonTerminalNodeRuleName === specificNonTerminalNodeRuleName) {
|
|
67
|
-
const generalNonTerminalNodeChildNodes = generalNonTerminalNode.getChildNodes(), specificNonTerminalNodeChildNodes = specificNonTerminalNode.getChildNodes(), generalChildNodes = generalNonTerminalNodeChildNodes, specificChildNodes = specificNonTerminalNodeChildNodes, descended = await this.descend(generalChildNodes, specificChildNodes, ...remainingArguments);
|
|
68
|
-
if (descended) {
|
|
69
|
-
visited = true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return visited;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
];
|
|
76
|
-
await (0, _asynchronous.asyncSome)(maps, async (map)=>{
|
|
77
|
-
const { generalNodeQuery, specificNodeQuery, run } = map;
|
|
78
|
-
const generalNode = generalNodeQuery(generalNonTerminalNode), specificNode = specificNodeQuery(specificNonTerminalNode); ///
|
|
79
|
-
if (generalNode !== null && specificNode !== null) {
|
|
80
|
-
const success = await run(generalNode, specificNode, ...remainingArguments);
|
|
81
|
-
visited = success; ///
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
return visited;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2FzeW5jWmlwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhc3luY1NvbWUsIGFzeW5jRXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FzeW5jaHJvbm91c1wiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXN5bmNaaXBQYXNzIHtcbiAgYXN5bmMgcnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzO1xuXG4gICAgY29uc3QgdmlzaXRlZCA9IGF3YWl0IHRoaXMudmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBzdWNjZXNzID0gdmlzaXRlZDsgIC8vL1xuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBhc3luYyBkZXNjZW5kKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBkZXNjZW5kZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNoaWxkTm9kZXNDb25ncnVlbnQgPSBhcmVDaGlsZE5vZGVzQ29uZ3J1ZW50KGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMpO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNDb25ncnVlbnQpIHtcbiAgICAgIGNvbnN0IHZpc2l0ZWQgPSBhd2FpdCBhc3luY0V2ZXJ5KGdlbmVyYWxDaGlsZE5vZGVzLCBhc3luYyAoZ2VuZXJhbENoaWxkTm9kZSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbENoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHZpc2l0ZWQgPSBhd2FpdCB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgIGlmICh2aXNpdGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICBkZXNjZW5kZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZXNjZW5kZWQ7XG4gIH1cblxuICBhc3luYyB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVUZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAgLy8vXG5cbiAgICAgIHZpc2l0ZWQgPSBhd2FpdCB0aGlzLnZpc2l0VGVybWluYWxOb2RlKGdlbmVyYWxUZXJtaW5hbE5vZGUsIHNwZWNpZmljVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgdmlzaXRlZCA9IGF3YWl0IHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICBhc3luYyB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGxldCB2aXNpdGVkO1xuXG4gICAgdmlzaXRlZCA9IHRydWU7XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxuXG4gIGFzeW5jIHZpc2l0Tm9uVGVybWluYWxOb2RlKGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgbGV0IHsgbWFwcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIG1hcHMgPSBbIC8vL1xuICAgICAgLi4ubWFwcyxcbiAgICAgIHtcbiAgICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgcnVuOiBhc3luYyAoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSwgLy8vXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gICAgICAgICAgaWYgKGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9PT0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICAgIGdlbmVyYWxDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICAgIGRlc2NlbmRlZCA9IGF3YWl0IHRoaXMuZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgICAgICBpZiAoZGVzY2VuZGVkKSB7XG4gICAgICAgICAgICAgIHZpc2l0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2aXNpdGVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuXG4gICAgYXdhaXQgYXN5bmNTb21lKG1hcHMsIGFzeW5jIChtYXApID0+IHtcbiAgICAgIGNvbnN0IHsgZ2VuZXJhbE5vZGVRdWVyeSwgc3BlY2lmaWNOb2RlUXVlcnksIHJ1biB9ID0gbWFwO1xuXG4gICAgICBjb25zdCBnZW5lcmFsTm9kZSA9IGdlbmVyYWxOb2RlUXVlcnkoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSksICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljTm9kZVF1ZXJ5KHNwZWNpZmljTm9uVGVybWluYWxOb2RlKTsgIC8vL1xuXG4gICAgICBpZiAoKGdlbmVyYWxOb2RlICE9PSBudWxsKSAmJiAoc3BlY2lmaWNOb2RlICE9PSBudWxsKSkge1xuICAgICAgICBjb25zdCBzdWNjZXNzICA9IGF3YWl0IHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgIHZpc2l0ZWQgPSBzdWNjZXNzOyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkFzeW5jWmlwUGFzcyIsInJ1biIsImdlbmVyYWxOb2RlIiwic3BlY2lmaWNOb2RlIiwicmVtYWluaW5nQXJndW1lbnRzIiwic3VjY2VzcyIsInZpc2l0ZWQiLCJ2aXNpdE5vZGUiLCJkZXNjZW5kIiwiZ2VuZXJhbENoaWxkTm9kZXMiLCJzcGVjaWZpY0NoaWxkTm9kZXMiLCJkZXNjZW5kZWQiLCJjaGlsZE5vZGVzQ29uZ3J1ZW50IiwiYXJlQ2hpbGROb2Rlc0NvbmdydWVudCIsImFzeW5jRXZlcnkiLCJnZW5lcmFsQ2hpbGROb2RlIiwiaW5kZXgiLCJzcGVjaWZpY0NoaWxkTm9kZSIsImdlbmVyYWxOb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlIiwiZ2VuZXJhbFRlcm1pbmFsTm9kZSIsInNwZWNpZmljVGVybWluYWxOb2RlIiwidmlzaXRUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJ2aXNpdE5vblRlcm1pbmFsTm9kZSIsIm1hcHMiLCJnZW5lcmFsTm9kZVF1ZXJ5Iiwibm9uVGVybWluYWxOb2RlUXVlcnkiLCJzcGVjaWZpY05vZGVRdWVyeSIsImdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSIsImdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImFzeW5jU29tZSIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUFxQkE7Ozs4QkFIaUI7c0JBQ3VCO0FBRTlDLE1BQU1BO0lBQ25CLE1BQU1DLElBQUlDLFdBQVcsRUFBRUMsWUFBWSxFQUFFLEdBQUdDLGtCQUFrQixFQUFFO1FBQzFELElBQUlDO1FBRUosTUFBTUMsVUFBVSxNQUFNLElBQUksQ0FBQ0MsU0FBUyxDQUFDTCxhQUFhQyxpQkFBaUJDO1FBRW5FQyxVQUFVQyxTQUFVLEdBQUc7UUFFdkIs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
|
package/src/pass/async.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { nonTerminalNodeQuery } from "../utilities/pass";
|
|
4
|
-
import { asyncSome, asyncEvery } from "../utilities/asynchronous";
|
|
5
|
-
|
|
6
|
-
export default class AsyncPass {
|
|
7
|
-
async run(node, ...remainingArguments) {
|
|
8
|
-
let success;
|
|
9
|
-
|
|
10
|
-
const visited = await this.visitNode(node, ...remainingArguments);
|
|
11
|
-
|
|
12
|
-
success = visited; ///
|
|
13
|
-
|
|
14
|
-
return success;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
async descend(childNodes, ...remainingArguments) {
|
|
18
|
-
let descended = false;
|
|
19
|
-
|
|
20
|
-
const visited = await asyncEvery(childNodes, async (childNode) => {
|
|
21
|
-
const node = childNode, ///
|
|
22
|
-
visited = await this.visitNode(node, ...remainingArguments);
|
|
23
|
-
|
|
24
|
-
if (visited) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
if (visited) {
|
|
30
|
-
descended = true;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return descended;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
async visitNode(node, ...remainingArguments) {
|
|
37
|
-
let visited;
|
|
38
|
-
|
|
39
|
-
const nodeTerminalNode = node.isTerminalNode();
|
|
40
|
-
|
|
41
|
-
if (nodeTerminalNode) {
|
|
42
|
-
const terminalNode = node; ///
|
|
43
|
-
|
|
44
|
-
visited = await this.visitTerminalNode(terminalNode, ...remainingArguments);
|
|
45
|
-
} else {
|
|
46
|
-
const nonTerminalNode = node; ///
|
|
47
|
-
|
|
48
|
-
visited = await this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return visited;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
async visitTerminalNode(terminalNode, ...remainingArguments) {
|
|
55
|
-
const visited = true;
|
|
56
|
-
|
|
57
|
-
return visited;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
async visitNonTerminalNode(nonTerminalNode, ...remainingArguments) {
|
|
61
|
-
let visited = false;
|
|
62
|
-
|
|
63
|
-
let { maps } = this.constructor;
|
|
64
|
-
|
|
65
|
-
maps = [ ///
|
|
66
|
-
...maps,
|
|
67
|
-
{
|
|
68
|
-
nodeQuery: nonTerminalNodeQuery,
|
|
69
|
-
run: async (node, ...remainingArguments) => {
|
|
70
|
-
let visited = false;
|
|
71
|
-
|
|
72
|
-
const childNodes = nonTerminalNode.getChildNodes(), ///
|
|
73
|
-
descended = await this.descend(childNodes, ...remainingArguments);
|
|
74
|
-
|
|
75
|
-
if (descended) {
|
|
76
|
-
visited = true;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return visited;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
]
|
|
83
|
-
|
|
84
|
-
await asyncSome(maps, async (map) => {
|
|
85
|
-
const { nodeQuery, run } = map;
|
|
86
|
-
|
|
87
|
-
const node = nodeQuery(nonTerminalNode);
|
|
88
|
-
|
|
89
|
-
if (node !== null) {
|
|
90
|
-
const success = await run(node, ...remainingArguments);
|
|
91
|
-
|
|
92
|
-
visited = success; ///
|
|
93
|
-
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
return visited;
|
|
99
|
-
}
|
|
100
|
-
}
|
package/src/pass/asyncZip.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { asyncSome, asyncEvery } from "../utilities/asynchronous";
|
|
4
|
-
import { nonTerminalNodeQuery, areChildNodesCongruent } from "../utilities/pass";
|
|
5
|
-
|
|
6
|
-
export default class AsyncZipPass {
|
|
7
|
-
async run(generalNode, specificNode, ...remainingArguments) {
|
|
8
|
-
let success;
|
|
9
|
-
|
|
10
|
-
const visited = await this.visitNode(generalNode, specificNode, ...remainingArguments);
|
|
11
|
-
|
|
12
|
-
success = visited; ///
|
|
13
|
-
|
|
14
|
-
return success;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
async descend(generalChildNodes, specificChildNodes, ...remainingArguments) {
|
|
18
|
-
let descended = false;
|
|
19
|
-
|
|
20
|
-
const childNodesCongruent = areChildNodesCongruent(generalChildNodes, specificChildNodes);
|
|
21
|
-
|
|
22
|
-
if (childNodesCongruent) {
|
|
23
|
-
const visited = await asyncEvery(generalChildNodes, async (generalChildNode, index) => {
|
|
24
|
-
const specificChildNode = specificChildNodes[index],
|
|
25
|
-
specificNode = specificChildNode, ///
|
|
26
|
-
generalNode = generalChildNode, ///
|
|
27
|
-
visited = await this.visitNode(generalNode, specificNode, ...remainingArguments);
|
|
28
|
-
|
|
29
|
-
if (visited) {
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
if (visited) {
|
|
35
|
-
descended = true;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return descended;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
async visitNode(generalNode, specificNode, ...remainingArguments) {
|
|
43
|
-
let visited = false;
|
|
44
|
-
|
|
45
|
-
const generalNodeTerminalNode = generalNode.isTerminalNode(),
|
|
46
|
-
specificNodeTerminalNode = specificNode.isTerminalNode(),
|
|
47
|
-
generalNodeNonTerminalNode = generalNode.isNonTerminalNode(),
|
|
48
|
-
specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
|
|
49
|
-
|
|
50
|
-
if (false) {
|
|
51
|
-
///
|
|
52
|
-
} else if (generalNodeTerminalNode && specificNodeTerminalNode) {
|
|
53
|
-
const generalTerminalNode = generalNode, ///
|
|
54
|
-
specificTerminalNode = specificNode; ///
|
|
55
|
-
|
|
56
|
-
visited = await this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments);
|
|
57
|
-
} else if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
|
|
58
|
-
const generalNonTerminalNode = generalNode, ///
|
|
59
|
-
specificNonTerminalNode = specificNode; ///
|
|
60
|
-
|
|
61
|
-
visited = await this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return visited;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
async visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments) { ///
|
|
68
|
-
let visited;
|
|
69
|
-
|
|
70
|
-
visited = true;
|
|
71
|
-
|
|
72
|
-
return visited;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
async visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments) {
|
|
76
|
-
let visited = false;
|
|
77
|
-
|
|
78
|
-
let { maps } = this.constructor;
|
|
79
|
-
|
|
80
|
-
maps = [ ///
|
|
81
|
-
...maps,
|
|
82
|
-
{
|
|
83
|
-
generalNodeQuery: nonTerminalNodeQuery,
|
|
84
|
-
specificNodeQuery: nonTerminalNodeQuery,
|
|
85
|
-
run: async (generalNode, specificNode, ...remainingArguments) => {
|
|
86
|
-
let visited = false;
|
|
87
|
-
|
|
88
|
-
const generalNonTerminalNodeRuleName = generalNonTerminalNode.getRuleName(), ///
|
|
89
|
-
specificNonTerminalNodeRuleName = specificNonTerminalNode.getRuleName(); ///
|
|
90
|
-
|
|
91
|
-
if (generalNonTerminalNodeRuleName === specificNonTerminalNodeRuleName) {
|
|
92
|
-
const generalNonTerminalNodeChildNodes = generalNonTerminalNode.getChildNodes(),
|
|
93
|
-
specificNonTerminalNodeChildNodes = specificNonTerminalNode.getChildNodes(),
|
|
94
|
-
generalChildNodes = generalNonTerminalNodeChildNodes, ///
|
|
95
|
-
specificChildNodes = specificNonTerminalNodeChildNodes, ///
|
|
96
|
-
descended = await this.descend(generalChildNodes, specificChildNodes, ...remainingArguments);
|
|
97
|
-
|
|
98
|
-
if (descended) {
|
|
99
|
-
visited = true;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return visited;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
]
|
|
107
|
-
|
|
108
|
-
await asyncSome(maps, async (map) => {
|
|
109
|
-
const { generalNodeQuery, specificNodeQuery, run } = map;
|
|
110
|
-
|
|
111
|
-
const generalNode = generalNodeQuery(generalNonTerminalNode), ///
|
|
112
|
-
specificNode = specificNodeQuery(specificNonTerminalNode); ///
|
|
113
|
-
|
|
114
|
-
if ((generalNode !== null) && (specificNode !== null)) {
|
|
115
|
-
const success = await run(generalNode, specificNode, ...remainingArguments);
|
|
116
|
-
|
|
117
|
-
visited = success; ///
|
|
118
|
-
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
return visited;
|
|
124
|
-
}
|
|
125
|
-
}
|