occam-languages 2.1.11 → 2.1.12

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 CHANGED
@@ -30,12 +30,6 @@ _export(exports, {
30
30
  get FileContext () {
31
31
  return _file.default;
32
32
  },
33
- get ForwardPass () {
34
- return _forward.default;
35
- },
36
- get ForwardZipPass () {
37
- return _forwardZip.default;
38
- },
39
33
  get FurtleLexer () {
40
34
  return _lexer.default;
41
35
  },
@@ -102,8 +96,6 @@ const _file = /*#__PURE__*/ _interop_require_default(require("./context/file"));
102
96
  const _release = /*#__PURE__*/ _interop_require_default(require("./context/release"));
103
97
  const _zip = /*#__PURE__*/ _interop_require_default(require("./pass/zip"));
104
98
  const _simple = /*#__PURE__*/ _interop_require_default(require("./pass/simple"));
105
- const _forward = /*#__PURE__*/ _interop_require_default(require("./pass/forward"));
106
- const _forwardZip = /*#__PURE__*/ _interop_require_default(require("./pass/forwardZip"));
107
99
  const _equivalence = /*#__PURE__*/ _interop_require_default(require("./pass/equivalence"));
108
100
  const _continuation = /*#__PURE__*/ _interop_require_default(require("./pass/continuation"));
109
101
  const _continuationZip = /*#__PURE__*/ _interop_require_default(require("./pass/continuationZip"));
@@ -128,4 +120,4 @@ function _interop_require_default(obj) {
128
120
  };
129
121
  }
130
122
 
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCIuL2VsZW1lbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWtQb2ludCB9IGZyb20gXCIuL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy96aXBcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2ltcGxlUGFzcyB9IGZyb20gXCIuL3Bhc3Mvc2ltcGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvcndhcmRQYXNzIH0gZnJvbSBcIi4vcGFzcy9mb3J3YXJkXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvcndhcmRaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy9mb3J3YXJkWmlwXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVxdWl2YWxlbmNlUGFzcyB9IGZyb20gXCIuL3Bhc3MvZXF1aXZhbGVuY2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCIuL3Bhc3MvY29udGludWF0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRpbnVhdGlvblppcFBhc3MgfSBmcm9tIFwiLi9wYXNzL2NvbnRpbnVhdGlvblppcFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZUxleGVyIH0gZnJvbSBcIi4vZnVydGxlL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuL2Z1cnRsZS9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbExleGVyIH0gZnJvbSBcIi4vbm9taW5hbC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb21pbmFsUGFyc2VyIH0gZnJvbSBcIi4vbm9taW5hbC9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub25UZXJtaW5hbE5vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlTWl4aW5zIH0gZnJvbSBcIi4vbWl4aW5zL25vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBibmZVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYm5mXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmdXJ0bGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZnVydGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vbWluYWxVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9taW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZUNvbnRleHRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZUNvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJpZmljYXRpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyaWZpY2F0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbGVhc2VDb250ZXh0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3JlbGVhc2VDb250ZXh0XCI7XG4iXSwibmFtZXMiOlsiQnJlYWtQb2ludCIsIkNvbnRleHQiLCJDb250aW51YXRpb25QYXNzIiwiQ29udGludWF0aW9uWmlwUGFzcyIsIkVsZW1lbnQiLCJFcXVpdmFsZW5jZVBhc3MiLCJGaWxlQ29udGV4dCIsIkZvcndhcmRQYXNzIiwiRm9yd2FyZFppcFBhc3MiLCJGdXJ0bGVMZXhlciIsIkZ1cnRsZVBhcnNlciIsIkxvZyIsIk5vbWluYWxMZXhlciIsIk5vbWluYWxQYXJzZXIiLCJOb25UZXJtaW5hbE5vZGUiLCJSZWxlYXNlQ29udGV4dCIsIlNpbXBsZVBhc3MiLCJaaXBQYXNzIiwiYm5mVXRpbGl0aWVzIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImZpbGVDb250ZXh0VXRpbGl0aWVzIiwiZnVydGxlVXRpbGl0aWVzIiwibm9kZU1peGlucyIsIm5vZGVVdGlsaXRpZXMiLCJub21pbmFsVXRpbGl0aWVzIiwicmVsZWFzZUNvbnRleHRVdGlsaXRpZXMiLCJ2ZXJpZmljYXRpb25VdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUtvQkE7ZUFBQUEsbUJBQVU7O1FBRFZDO2VBQUFBLGdCQUFPOztRQVVQQztlQUFBQSxxQkFBZ0I7O1FBQ2hCQztlQUFBQSx3QkFBbUI7O1FBWm5CQztlQUFBQSxnQkFBTzs7UUFVUEM7ZUFBQUEsb0JBQWU7O1FBUGZDO2VBQUFBLGFBQVc7O1FBS1hDO2VBQUFBLGdCQUFXOztRQUNYQztlQUFBQSxtQkFBYzs7UUFLZEM7ZUFBQUEsY0FBVzs7UUFDWEM7ZUFBQUEsZUFBWTs7UUFoQlpDO2VBQUFBLFlBQUc7O1FBaUJIQztlQUFBQSxlQUFZOztRQUNaQztlQUFBQSxnQkFBYTs7UUFFYkM7ZUFBQUEsd0JBQWU7O1FBZmZDO2VBQUFBLGdCQUFjOztRQUdkQztlQUFBQSxlQUFVOztRQURWQztlQUFBQSxZQUFPOztRQWlCUEM7ZUFBQUEsWUFBWTs7UUFJWkM7ZUFBQUEsb0JBQW1COztRQUVuQkM7ZUFBQUEsc0JBQXFCOztRQURyQkM7ZUFBQUEsb0JBQW9COztRQUhwQkM7ZUFBQUEsZUFBZTs7UUFKZkM7ZUFBQUEsYUFBVTs7UUFHVkM7ZUFBQUEsY0FBYTs7UUFFYkM7ZUFBQUEsZ0JBQWdCOztRQUtoQkM7ZUFBQUEsdUJBQXVCOztRQUR2QkM7ZUFBQUEscUJBQXFCOzs7NERBL0JWO2dFQUNJO2dFQUNBO21FQUNHOzZEQUNDO2dFQUNHOzREQUVQOytEQUNHO2dFQUNDO21FQUNHO29FQUNDO3FFQUNDO3dFQUNHOzhEQUVSOytEQUNDOytEQUNBO2dFQUNDO3dFQUVFOzZEQUVMOzREQUVFOzhEQUNDOytEQUNFO2dFQUNDO29FQUNHO29FQUNDO3NFQUNDO3FFQUNBO3VFQUNFIn0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCIuL2VsZW1lbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWtQb2ludCB9IGZyb20gXCIuL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy96aXBcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2ltcGxlUGFzcyB9IGZyb20gXCIuL3Bhc3Mvc2ltcGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVxdWl2YWxlbmNlUGFzcyB9IGZyb20gXCIuL3Bhc3MvZXF1aXZhbGVuY2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCIuL3Bhc3MvY29udGludWF0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRpbnVhdGlvblppcFBhc3MgfSBmcm9tIFwiLi9wYXNzL2NvbnRpbnVhdGlvblppcFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZUxleGVyIH0gZnJvbSBcIi4vZnVydGxlL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuL2Z1cnRsZS9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbExleGVyIH0gZnJvbSBcIi4vbm9taW5hbC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb21pbmFsUGFyc2VyIH0gZnJvbSBcIi4vbm9taW5hbC9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub25UZXJtaW5hbE5vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlTWl4aW5zIH0gZnJvbSBcIi4vbWl4aW5zL25vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBibmZVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYm5mXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmdXJ0bGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZnVydGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vbWluYWxVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9taW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZUNvbnRleHRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZUNvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJpZmljYXRpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyaWZpY2F0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbGVhc2VDb250ZXh0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3JlbGVhc2VDb250ZXh0XCI7XG4iXSwibmFtZXMiOlsiQnJlYWtQb2ludCIsIkNvbnRleHQiLCJDb250aW51YXRpb25QYXNzIiwiQ29udGludWF0aW9uWmlwUGFzcyIsIkVsZW1lbnQiLCJFcXVpdmFsZW5jZVBhc3MiLCJGaWxlQ29udGV4dCIsIkZ1cnRsZUxleGVyIiwiRnVydGxlUGFyc2VyIiwiTG9nIiwiTm9taW5hbExleGVyIiwiTm9taW5hbFBhcnNlciIsIk5vblRlcm1pbmFsTm9kZSIsIlJlbGVhc2VDb250ZXh0IiwiU2ltcGxlUGFzcyIsIlppcFBhc3MiLCJibmZVdGlsaXRpZXMiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZmlsZUNvbnRleHRVdGlsaXRpZXMiLCJmdXJ0bGVVdGlsaXRpZXMiLCJub2RlTWl4aW5zIiwibm9kZVV0aWxpdGllcyIsIm5vbWluYWxVdGlsaXRpZXMiLCJyZWxlYXNlQ29udGV4dFV0aWxpdGllcyIsInZlcmlmaWNhdGlvblV0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBS29CQTtlQUFBQSxtQkFBVTs7UUFEVkM7ZUFBQUEsZ0JBQU87O1FBUVBDO2VBQUFBLHFCQUFnQjs7UUFDaEJDO2VBQUFBLHdCQUFtQjs7UUFWbkJDO2VBQUFBLGdCQUFPOztRQVFQQztlQUFBQSxvQkFBZTs7UUFMZkM7ZUFBQUEsYUFBVzs7UUFTWEM7ZUFBQUEsY0FBVzs7UUFDWEM7ZUFBQUEsZUFBWTs7UUFkWkM7ZUFBQUEsWUFBRzs7UUFlSEM7ZUFBQUEsZUFBWTs7UUFDWkM7ZUFBQUEsZ0JBQWE7O1FBRWJDO2VBQUFBLHdCQUFlOztRQWJmQztlQUFBQSxnQkFBYzs7UUFHZEM7ZUFBQUEsZUFBVTs7UUFEVkM7ZUFBQUEsWUFBTzs7UUFlUEM7ZUFBQUEsWUFBWTs7UUFJWkM7ZUFBQUEsb0JBQW1COztRQUVuQkM7ZUFBQUEsc0JBQXFCOztRQURyQkM7ZUFBQUEsb0JBQW9COztRQUhwQkM7ZUFBQUEsZUFBZTs7UUFKZkM7ZUFBQUEsYUFBVTs7UUFHVkM7ZUFBQUEsY0FBYTs7UUFFYkM7ZUFBQUEsZ0JBQWdCOztRQUtoQkM7ZUFBQUEsdUJBQXVCOztRQUR2QkM7ZUFBQUEscUJBQXFCOzs7NERBN0JWO2dFQUNJO2dFQUNBO21FQUNHOzZEQUNDO2dFQUNHOzREQUVQOytEQUNHO29FQUNLO3FFQUNDO3dFQUNHOzhEQUVSOytEQUNDOytEQUNBO2dFQUNDO3dFQUVFOzZEQUVMOzREQUVFOzhEQUNDOytEQUNFO2dFQUNDO29FQUNHO29FQUNDO3NFQUNDO3FFQUNBO3VFQUNFIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-languages",
3
3
  "author": "James Smith",
4
- "version": "2.1.11",
4
+ "version": "2.1.12",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
package/src/index.js CHANGED
@@ -9,8 +9,6 @@ export { default as ReleaseContext } from "./context/release";
9
9
 
10
10
  export { default as ZipPass } from "./pass/zip";
11
11
  export { default as SimplePass } from "./pass/simple";
12
- export { default as ForwardPass } from "./pass/forward";
13
- export { default as ForwardZipPass } from "./pass/forwardZip";
14
12
  export { default as EquivalencePass } from "./pass/equivalence";
15
13
  export { default as ContinuationPass } from "./pass/continuation";
16
14
  export { default as ContinuationZipPass } from "./pass/continuationZip";
@@ -1,87 +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 ForwardPass;
9
- }
10
- });
11
- const _pass = require("../utilities/pass");
12
- class ForwardPass {
13
- run(node, ...remainingArguments) {
14
- let success;
15
- const visited = this.visitNode(node, ...remainingArguments);
16
- success = visited; ///
17
- return success;
18
- }
19
- descend(index, childNodes, ...remainingArguments) {
20
- let descendedForward = false;
21
- const descendForward = remainingArguments.pop(), childNodesLength = childNodes.length;
22
- if (index === childNodesLength) {
23
- descendedForward = descendForward();
24
- } else {
25
- const childNode = childNodes[index], node = childNode, visited = this.visitNode(node, ...remainingArguments, ()=>{
26
- remainingArguments.push(descendForward);
27
- const aheadIndex = index + 1, descendedForward = this.descend(aheadIndex, childNodes, ...remainingArguments);
28
- return descendedForward;
29
- });
30
- if (visited) {
31
- descendedForward = true;
32
- }
33
- }
34
- return descendedForward;
35
- }
36
- visitNode(node, ...remainingArguments) {
37
- let visited;
38
- const nodeTerminalNode = node.isTerminalNode();
39
- if (nodeTerminalNode) {
40
- const terminalNode = node; ///
41
- visited = this.visitTerminalNode(terminalNode, ...remainingArguments);
42
- } else {
43
- const nonTerminalNode = node; ///
44
- visited = this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments);
45
- }
46
- return visited;
47
- }
48
- visitTerminalNode(terminalNode, ...remainingArguments) {
49
- let visited = false;
50
- const descendForward = remainingArguments.pop(), descendedForward = descendForward();
51
- if (descendedForward) {
52
- visited = true;
53
- }
54
- remainingArguments.push(descendForward);
55
- return visited;
56
- }
57
- visitNonTerminalNode(nonTerminalNode, ...remainingArguments) {
58
- let visited = false;
59
- let { maps } = this.constructor;
60
- maps = [
61
- ...maps,
62
- {
63
- nodeQuery: _pass.nonTerminalNodeQuery,
64
- run: (node, ...remainingArguments)=>{
65
- let visited = false;
66
- const index = 0, childNodes = nonTerminalNode.getChildNodes(), descended = this.descend(index, childNodes, ...remainingArguments);
67
- if (descended) {
68
- visited = true;
69
- }
70
- return visited;
71
- }
72
- }
73
- ];
74
- maps.some((map)=>{
75
- const { nodeQuery, run } = map;
76
- const node = nodeQuery(nonTerminalNode);
77
- if (node !== null) {
78
- const success = run(node, ...remainingArguments);
79
- visited = success;
80
- return true;
81
- }
82
- });
83
- return visited;
84
- }
85
- }
86
-
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2ZvcndhcmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vblRlcm1pbmFsTm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wYXNzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcndhcmRQYXNzIHtcbiAgcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzO1xuXG4gICAgY29uc3QgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBzdWNjZXNzID0gdmlzaXRlZDsgIC8vL1xuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBkZXNjZW5kKGluZGV4LCBjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgZGVzY2VuZGVkRm9yd2FyZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgZGVzY2VuZEZvcndhcmQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXNMZW5ndGggPSBjaGlsZE5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChpbmRleCA9PT0gY2hpbGROb2Rlc0xlbmd0aCkge1xuICAgICAgZGVzY2VuZGVkRm9yd2FyZCA9IGRlc2NlbmRGb3J3YXJkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZSA9IGNoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgbm9kZSA9IGNoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICB2aXNpdGVkID0gdGhpcy52aXNpdE5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICAgICAgICAgIHJlbWFpbmluZ0FyZ3VtZW50cy5wdXNoKGRlc2NlbmRGb3J3YXJkKTtcblxuICAgICAgICAgICAgICBjb25zdCBhaGVhZEluZGV4ID0gaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBkZXNjZW5kZWRGb3J3YXJkID0gdGhpcy5kZXNjZW5kKGFoZWFkSW5kZXgsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGRlc2NlbmRlZEZvcndhcmQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgaWYgKHZpc2l0ZWQpIHtcbiAgICAgICAgZGVzY2VuZGVkRm9yd2FyZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NlbmRlZEZvcndhcmQ7XG4gIH1cblxuICB2aXNpdE5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQ7XG5cbiAgICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXRUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxuXG4gIHZpc2l0VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGRlc2NlbmRGb3J3YXJkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBkZXNjZW5kZWRGb3J3YXJkID0gZGVzY2VuZEZvcndhcmQoKTtcblxuICAgIGlmIChkZXNjZW5kZWRGb3J3YXJkKSB7XG4gICAgICB2aXNpdGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZW1haW5pbmdBcmd1bWVudHMucHVzaChkZXNjZW5kRm9yd2FyZCk7XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxuXG4gIHZpc2l0Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGxldCB7IG1hcHMgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBtYXBzID0gWyAvLy9cbiAgICAgIC4uLm1hcHMsXG4gICAgICB7XG4gICAgICAgIG5vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHJ1bjogKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksIC8vL1xuICAgICAgICAgICAgICAgIGRlc2NlbmRlZCA9IHRoaXMuZGVzY2VuZChpbmRleCwgY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgIGlmIChkZXNjZW5kZWQpIHtcbiAgICAgICAgICAgIHZpc2l0ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2aXNpdGVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuXG4gICAgbWFwcy5zb21lKChtYXApID0+IHtcbiAgICAgIGNvbnN0IHsgbm9kZVF1ZXJ5LCBydW4gfSA9IG1hcDtcblxuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVRdWVyeShub25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzID0gcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgdmlzaXRlZCA9IHN1Y2Nlc3M7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZvcndhcmRQYXNzIiwicnVuIiwibm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJ2aXNpdGVkIiwidmlzaXROb2RlIiwiZGVzY2VuZCIsImluZGV4IiwiY2hpbGROb2RlcyIsImRlc2NlbmRlZEZvcndhcmQiLCJkZXNjZW5kRm9yd2FyZCIsInBvcCIsImNoaWxkTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJjaGlsZE5vZGUiLCJwdXNoIiwiYWhlYWRJbmRleCIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJtYXBzIiwibm9kZVF1ZXJ5Iiwibm9uVGVybWluYWxOb2RlUXVlcnkiLCJnZXRDaGlsZE5vZGVzIiwiZGVzY2VuZGVkIiwic29tZSIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7OztzQkFGZ0I7QUFFdEIsTUFBTUE7SUFDbkJDLElBQUlDLElBQUksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUMvQixJQUFJQztRQUVKLE1BQU1DLFVBQVUsSUFBSSxDQUFDQyxTQUFTLENBQUNKLFNBQVNDO1FBRXhDQyxVQUFVQyxTQUFVLEdBQUc7UUFFdkIsT0FBT0Q7SUFDVDtJQUVBRyxRQUFRQyxLQUFLLEVBQUVDLFVBQVUsRUFBRSxHQUFHTixrQkFBa0IsRUFBRTtRQUNoRCxJQUFJTyxtQkFBbUI7UUFFdkIsTUFBTUMsaUJBQWlCUixtQkFBbUJTLEdBQUcsSUFDdkNDLG1CQUFtQkosV0FBV0ssTUFBTTtRQUUxQyxJQUFJTixVQUFVSyxrQkFBa0I7WUFDOUJILG1CQUFtQkM7UUFDckIsT0FBTztZQUNMLE1BQU1JLFlBQVlOLFVBQVUsQ0FBQ0QsTUFBTSxFQUM3Qk4sT0FBT2EsV0FDUFYsVUFBVSxJQUFJLENBQUNDLFNBQVMsQ0FBQ0osU0FBU0Msb0JBQW9CO2dCQUNwREEsbUJBQW1CYSxJQUFJLENBQUNMO2dCQUV4QixNQUFNTSxhQUFhVCxRQUFRLEdBQ3JCRSxtQkFBbUIsSUFBSSxDQUFDSCxPQUFPLENBQUNVLFlBQVlSLGVBQWVOO2dCQUVqRSxPQUFPTztZQUNUO1lBRU4sSUFBSUwsU0FBUztnQkFDWEssbUJBQW1CO1lBQ3JCO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFKLFVBQVVKLElBQUksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUNyQyxJQUFJRTtRQUVKLE1BQU1hLG1CQUFtQmhCLEtBQUtpQixjQUFjO1FBRTVDLElBQUlELGtCQUFrQjtZQUNwQixNQUFNRSxlQUFlbEIsTUFBTyxHQUFHO1lBRS9CRyxVQUFVLElBQUksQ0FBQ2dCLGlCQUFpQixDQUFDRCxpQkFBaUJqQjtRQUNwRCxPQUFPO1lBQ0wsTUFBTW1CLGtCQUFrQnBCLE1BQU8sR0FBRztZQUVsQ0csVUFBVSxJQUFJLENBQUNrQixvQkFBb0IsQ0FBQ0Qsb0JBQW9CbkI7UUFDMUQ7UUFFQSxPQUFPRTtJQUNUO0lBRUFnQixrQkFBa0JELFlBQVksRUFBRSxHQUFHakIsa0JBQWtCLEVBQUU7UUFDckQsSUFBSUUsVUFBVTtRQUVkLE1BQU1NLGlCQUFpQlIsbUJBQW1CUyxHQUFHLElBQ3ZDRixtQkFBbUJDO1FBRXpCLElBQUlELGtCQUFrQjtZQUNwQkwsVUFBVTtRQUNaO1FBRUFGLG1CQUFtQmEsSUFBSSxDQUFDTDtRQUV4QixPQUFPTjtJQUNUO0lBRUFrQixxQkFBcUJELGVBQWUsRUFBRSxHQUFHbkIsa0JBQWtCLEVBQUU7UUFDM0QsSUFBSUUsVUFBVTtRQUVkLElBQUksRUFBRW1CLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXO1FBRS9CQSxPQUFPO2VBQ0ZBO1lBQ0g7Z0JBQ0VDLFdBQVdDLDBCQUFvQjtnQkFDL0J6QixLQUFLLENBQUNDLE1BQU0sR0FBR0M7b0JBQ2IsSUFBSUUsVUFBVTtvQkFFZCxNQUFNRyxRQUFRLEdBQ1JDLGFBQWFhLGdCQUFnQkssYUFBYSxJQUMxQ0MsWUFBWSxJQUFJLENBQUNyQixPQUFPLENBQUNDLE9BQU9DLGVBQWVOO29CQUVyRCxJQUFJeUIsV0FBVzt3QkFDYnZCLFVBQVU7b0JBQ1o7b0JBRUEsT0FBT0E7Z0JBQ1Q7WUFDRjtTQUNEO1FBRURtQixLQUFLSyxJQUFJLENBQUMsQ0FBQ0M7WUFDVCxNQUFNLEVBQUVMLFNBQVMsRUFBRXhCLEdBQUcsRUFBRSxHQUFHNkI7WUFFM0IsTUFBTTVCLE9BQU91QixVQUFVSDtZQUV2QixJQUFJcEIsU0FBUyxNQUFNO2dCQUNqQixNQUFNRSxVQUFVSCxJQUFJQyxTQUFTQztnQkFFN0JFLFVBQVVEO2dCQUVWLE9BQU87WUFDVDtRQUNGO1FBRUEsT0FBT0M7SUFDVDtBQUNGIn0=
@@ -1,96 +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 ForwardZipPass;
9
- }
10
- });
11
- const _pass = require("../utilities/pass");
12
- class ForwardZipPass {
13
- run(generalNode, specificNode, ...remainingArguments) {
14
- let success;
15
- const visited = this.visitNode(generalNode, specificNode, ...remainingArguments);
16
- success = visited; ///
17
- return success;
18
- }
19
- descend(index, generalChildNodes, specificChildNodes, ...remainingArguments) {
20
- let descendedForward = false;
21
- const childNodesCongruent = (0, _pass.areChildNodesCongruent)(generalChildNodes, specificChildNodes);
22
- if (childNodesCongruent) {
23
- const descendForward = remainingArguments.pop(), generalChildNodesLength = generalChildNodes.length;
24
- if (index === generalChildNodesLength) {
25
- descendedForward = descendForward();
26
- } else {
27
- const generalChildNode = generalChildNodes[index], specificChildNode = specificChildNodes[index], generalNode = generalChildNode, specificNode = specificChildNode, visited = this.visitNode(generalNode, specificNode, ...remainingArguments, ()=>{
28
- remainingArguments.push(descendForward);
29
- const aheadIndex = index + 1, descendedForward = this.descend(aheadIndex, generalChildNodes, specificChildNodes, ...remainingArguments);
30
- return descendedForward;
31
- });
32
- if (visited) {
33
- descendedForward = true;
34
- }
35
- }
36
- }
37
- return descendedForward;
38
- }
39
- visitNode(generalNode, specificNode, ...remainingArguments) {
40
- let visited = false;
41
- const generalNodeTerminalNode = generalNode.isTerminalNode(), specificNodeTerminalNode = specificNode.isTerminalNode(), generalNodeNonTerminalNode = generalNode.isNonTerminalNode(), specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
42
- if (false) {
43
- ///
44
- } else if (generalNodeTerminalNode && specificNodeTerminalNode) {
45
- const generalTerminalNode = generalNode, specificTerminalNode = specificNode; ///
46
- visited = this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments);
47
- } else if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
48
- const generalNonTerminalNode = generalNode, specificNonTerminalNode = specificNode; ///
49
- visited = this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments);
50
- }
51
- return visited;
52
- }
53
- visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments) {
54
- let visited = false;
55
- const descendForward = remainingArguments.pop(), descendedForward = descendForward();
56
- if (descendedForward) {
57
- visited = true;
58
- }
59
- remainingArguments.push(descendForward);
60
- return visited;
61
- }
62
- visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments) {
63
- let visited = false;
64
- let { maps } = this.constructor;
65
- maps = [
66
- ...maps,
67
- {
68
- generalNodeQuery: _pass.nonTerminalNodeQuery,
69
- specificNodeQuery: _pass.nonTerminalNodeQuery,
70
- run: (generalNode, specificNode, ...remainingArguments)=>{
71
- let visited = false;
72
- const generalNonTerminalNodeRuleName = generalNonTerminalNode.getRuleName(), specificNonTerminalNodeRuleName = specificNonTerminalNode.getRuleName(); ///
73
- if (generalNonTerminalNodeRuleName === specificNonTerminalNodeRuleName) {
74
- const index = 0, generalNonTerminalNodeChildNodes = generalNonTerminalNode.getChildNodes(), specificNonTerminalNodeChildNodes = specificNonTerminalNode.getChildNodes(), generalChildNodes = generalNonTerminalNodeChildNodes, specificChildNodes = specificNonTerminalNodeChildNodes, descended = this.descend(index, generalChildNodes, specificChildNodes, ...remainingArguments);
75
- if (descended) {
76
- visited = true;
77
- }
78
- }
79
- return visited;
80
- }
81
- }
82
- ];
83
- maps.some((map)=>{
84
- const { generalNodeQuery, specificNodeQuery, run } = map;
85
- const generalNode = generalNodeQuery(generalNonTerminalNode), specificNode = specificNodeQuery(specificNonTerminalNode); ///
86
- if (generalNode !== null && specificNode !== null) {
87
- const success = run(generalNode, specificNode, ...remainingArguments);
88
- visited = success; ///
89
- return true;
90
- }
91
- });
92
- return visited;
93
- }
94
- }
95
-
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2ZvcndhcmRaaXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LCBhcmVDaGlsZE5vZGVzQ29uZ3J1ZW50IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wYXNzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcndhcmRaaXBQYXNzIHtcbiAgcnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzO1xuXG4gICAgY29uc3QgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBzdWNjZXNzID0gdmlzaXRlZDsgIC8vL1xuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBkZXNjZW5kKGluZGV4LCBnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgZGVzY2VuZGVkRm9yd2FyZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgY2hpbGROb2Rlc0NvbmdydWVudCA9IGFyZUNoaWxkTm9kZXNDb25ncnVlbnQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2Rlcyk7XG5cbiAgICBpZiAoY2hpbGROb2Rlc0NvbmdydWVudCkge1xuICAgICAgY29uc3QgZGVzY2VuZEZvcndhcmQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksICAvLy9cbiAgICAgICAgICAgIGdlbmVyYWxDaGlsZE5vZGVzTGVuZ3RoID0gZ2VuZXJhbENoaWxkTm9kZXMubGVuZ3RoO1xuXG4gICAgICBpZiAoaW5kZXggPT09IGdlbmVyYWxDaGlsZE5vZGVzTGVuZ3RoKSB7XG4gICAgICAgIGRlc2NlbmRlZEZvcndhcmQgPSBkZXNjZW5kRm9yd2FyZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZ2VuZXJhbENoaWxkTm9kZSA9IGdlbmVyYWxDaGlsZE5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsICgpID0+IHtcbiAgICAgICAgICAgICAgICByZW1haW5pbmdBcmd1bWVudHMucHVzaChkZXNjZW5kRm9yd2FyZCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBhaGVhZEluZGV4ID0gaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICAgIGRlc2NlbmRlZEZvcndhcmQgPSB0aGlzLmRlc2NlbmQoYWhlYWRJbmRleCwgZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBkZXNjZW5kZWRGb3J3YXJkO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICAgIGRlc2NlbmRlZEZvcndhcmQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NlbmRlZEZvcndhcmQ7XG4gIH1cblxuICB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVUZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAgLy8vXG5cbiAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0VGVybWluYWxOb2RlKGdlbmVyYWxUZXJtaW5hbE5vZGUsIHNwZWNpZmljVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGRlc2NlbmRGb3J3YXJkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBkZXNjZW5kZWRGb3J3YXJkID0gZGVzY2VuZEZvcndhcmQoKTtcblxuICAgIGlmIChkZXNjZW5kZWRGb3J3YXJkKSB7XG4gICAgICB2aXNpdGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZW1haW5pbmdBcmd1bWVudHMucHVzaChkZXNjZW5kRm9yd2FyZCk7XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxuXG4gIHZpc2l0Tm9uVGVybWluYWxOb2RlKGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgbGV0IHsgbWFwcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIG1hcHMgPSBbIC8vL1xuICAgICAgLi4ubWFwcyxcbiAgICAgIHtcbiAgICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgcnVuOiAoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSwgLy8vXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gICAgICAgICAgaWYgKGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9PT0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICAgICAgICAgICAgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICAgIGdlbmVyYWxDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICAgIGRlc2NlbmRlZCA9IHRoaXMuZGVzY2VuZChpbmRleCwgZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgICAgaWYgKGRlc2NlbmRlZCkge1xuICAgICAgICAgICAgICB2aXNpdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmlzaXRlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cblxuICAgIG1hcHMuc29tZSgobWFwKSA9PiB7XG4gICAgICBjb25zdCB7IGdlbmVyYWxOb2RlUXVlcnksIHNwZWNpZmljTm9kZVF1ZXJ5LCBydW4gfSA9IG1hcDtcblxuICAgICAgY29uc3QgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTm9kZVF1ZXJ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUpLCAgLy8vXG4gICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljTm9kZVF1ZXJ5KHNwZWNpZmljTm9uVGVybWluYWxOb2RlKTsgIC8vL1xuXG4gICAgICBpZiAoKGdlbmVyYWxOb2RlICE9PSBudWxsKSAmJiAoc3BlY2lmaWNOb2RlICE9PSBudWxsKSkge1xuICAgICAgICBjb25zdCBzdWNjZXNzICA9IHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgIHZpc2l0ZWQgPSBzdWNjZXNzOyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZvcndhcmRaaXBQYXNzIiwicnVuIiwiZ2VuZXJhbE5vZGUiLCJzcGVjaWZpY05vZGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJzdWNjZXNzIiwidmlzaXRlZCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJpbmRleCIsImdlbmVyYWxDaGlsZE5vZGVzIiwic3BlY2lmaWNDaGlsZE5vZGVzIiwiZGVzY2VuZGVkRm9yd2FyZCIsImNoaWxkTm9kZXNDb25ncnVlbnQiLCJhcmVDaGlsZE5vZGVzQ29uZ3J1ZW50IiwiZGVzY2VuZEZvcndhcmQiLCJwb3AiLCJnZW5lcmFsQ2hpbGROb2Rlc0xlbmd0aCIsImxlbmd0aCIsImdlbmVyYWxDaGlsZE5vZGUiLCJzcGVjaWZpY0NoaWxkTm9kZSIsInB1c2giLCJhaGVhZEluZGV4IiwiZ2VuZXJhbE5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9kZVRlcm1pbmFsTm9kZSIsImdlbmVyYWxOb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vZGVOb25UZXJtaW5hbE5vZGUiLCJnZW5lcmFsVGVybWluYWxOb2RlIiwic3BlY2lmaWNUZXJtaW5hbE5vZGUiLCJ2aXNpdFRlcm1pbmFsTm9kZSIsImdlbmVyYWxOb25UZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZSIsInZpc2l0Tm9uVGVybWluYWxOb2RlIiwibWFwcyIsImdlbmVyYWxOb2RlUXVlcnkiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsInNwZWNpZmljTm9kZVF1ZXJ5IiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwiZGVzY2VuZGVkIiwic29tZSIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7OztzQkFGd0M7QUFFOUMsTUFBTUE7SUFDbkJDLElBQUlDLFdBQVcsRUFBRUMsWUFBWSxFQUFFLEdBQUdDLGtCQUFrQixFQUFFO1FBQ3BELElBQUlDO1FBRUosTUFBTUMsVUFBVSxJQUFJLENBQUNDLFNBQVMsQ0FBQ0wsYUFBYUMsaUJBQWlCQztRQUU3REMsVUFBVUMsU0FBVSxHQUFHO1FBRXZCLE9BQU9EO0lBQ1Q7SUFFQUcsUUFBUUMsS0FBSyxFQUFFQyxpQkFBaUIsRUFBRUMsa0JBQWtCLEVBQUUsR0FBR1Asa0JBQWtCLEVBQUU7UUFDM0UsSUFBSVEsbUJBQW1CO1FBRXZCLE1BQU1DLHNCQUFzQkMsSUFBQUEsNEJBQXNCLEVBQUNKLG1CQUFtQkM7UUFFdEUsSUFBSUUscUJBQXFCO1lBQ3ZCLE1BQU1FLGlCQUFpQlgsbUJBQW1CWSxHQUFHLElBQ3ZDQywwQkFBMEJQLGtCQUFrQlEsTUFBTTtZQUV4RCxJQUFJVCxVQUFVUSx5QkFBeUI7Z0JBQ3JDTCxtQkFBbUJHO1lBQ3JCLE9BQU87Z0JBQ0wsTUFBTUksbUJBQW1CVCxpQkFBaUIsQ0FBQ0QsTUFBTSxFQUMzQ1csb0JBQW9CVCxrQkFBa0IsQ0FBQ0YsTUFBTSxFQUM3Q1AsY0FBY2lCLGtCQUNkaEIsZUFBZWlCLG1CQUNmZCxVQUFVLElBQUksQ0FBQ0MsU0FBUyxDQUFDTCxhQUFhQyxpQkFBaUJDLG9CQUFvQjtvQkFDekVBLG1CQUFtQmlCLElBQUksQ0FBQ047b0JBRXhCLE1BQU1PLGFBQWFiLFFBQVEsR0FDckJHLG1CQUFtQixJQUFJLENBQUNKLE9BQU8sQ0FBQ2MsWUFBWVosbUJBQW1CQyx1QkFBdUJQO29CQUU1RixPQUFPUTtnQkFDVDtnQkFFTixJQUFJTixTQUFTO29CQUNYTSxtQkFBbUI7Z0JBQ3JCO1lBQ0Y7UUFDRjtRQUVBLE9BQU9BO0lBQ1Q7SUFFQUwsVUFBVUwsV0FBVyxFQUFFQyxZQUFZLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDMUQsSUFBSUUsVUFBVTtRQUVkLE1BQU1pQiwwQkFBMEJyQixZQUFZc0IsY0FBYyxJQUNwREMsMkJBQTJCdEIsYUFBYXFCLGNBQWMsSUFDdERFLDZCQUE2QnhCLFlBQVl5QixpQkFBaUIsSUFDMURDLDhCQUE4QnpCLGFBQWF3QixpQkFBaUI7UUFFbEUsSUFBSSxPQUFPO1FBQ1QsR0FBRztRQUNMLE9BQU8sSUFBSUosMkJBQTJCRSwwQkFBMEI7WUFDOUQsTUFBTUksc0JBQXNCM0IsYUFDdEI0Qix1QkFBdUIzQixjQUFlLEdBQUc7WUFFL0NHLFVBQVUsSUFBSSxDQUFDeUIsaUJBQWlCLENBQUNGLHFCQUFxQkMseUJBQXlCMUI7UUFDakYsT0FBTyxJQUFJc0IsOEJBQThCRSw2QkFBNkI7WUFDcEUsTUFBTUkseUJBQXlCOUIsYUFDekIrQiwwQkFBMEI5QixjQUFjLEdBQUc7WUFFakRHLFVBQVUsSUFBSSxDQUFDNEIsb0JBQW9CLENBQUNGLHdCQUF3QkMsNEJBQTRCN0I7UUFDMUY7UUFFQSxPQUFPRTtJQUNUO0lBRUF5QixrQkFBa0JGLG1CQUFtQixFQUFFQyxvQkFBb0IsRUFBRSxHQUFHMUIsa0JBQWtCLEVBQUU7UUFDbEYsSUFBSUUsVUFBVTtRQUVkLE1BQU1TLGlCQUFpQlgsbUJBQW1CWSxHQUFHLElBQ3ZDSixtQkFBbUJHO1FBRXpCLElBQUlILGtCQUFrQjtZQUNwQk4sVUFBVTtRQUNaO1FBRUFGLG1CQUFtQmlCLElBQUksQ0FBQ047UUFFeEIsT0FBT1Q7SUFDVDtJQUVBNEIscUJBQXFCRixzQkFBc0IsRUFBRUMsdUJBQXVCLEVBQUUsR0FBRzdCLGtCQUFrQixFQUFFO1FBQzNGLElBQUlFLFVBQVU7UUFFZCxJQUFJLEVBQUU2QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVztRQUUvQkEsT0FBTztlQUNGQTtZQUNIO2dCQUNFQyxrQkFBa0JDLDBCQUFvQjtnQkFDdENDLG1CQUFtQkQsMEJBQW9CO2dCQUN2Q3BDLEtBQUssQ0FBQ0MsYUFBYUMsY0FBYyxHQUFHQztvQkFDbEMsSUFBSUUsVUFBVTtvQkFFZCxNQUFNaUMsaUNBQWlDUCx1QkFBdUJRLFdBQVcsSUFDbkVDLGtDQUFrQ1Isd0JBQXdCTyxXQUFXLElBQUksR0FBRztvQkFFbEYsSUFBSUQsbUNBQW1DRSxpQ0FBaUM7d0JBQ3RFLE1BQU1oQyxRQUFRLEdBQ1JpQyxtQ0FBbUNWLHVCQUF1QlcsYUFBYSxJQUN2RUMsb0NBQW9DWCx3QkFBd0JVLGFBQWEsSUFDekVqQyxvQkFBb0JnQyxrQ0FDcEIvQixxQkFBcUJpQyxtQ0FDckJDLFlBQVksSUFBSSxDQUFDckMsT0FBTyxDQUFDQyxPQUFPQyxtQkFBbUJDLHVCQUF1QlA7d0JBRWhGLElBQUl5QyxXQUFXOzRCQUNidkMsVUFBVTt3QkFDWjtvQkFDRjtvQkFFQSxPQUFPQTtnQkFDVDtZQUNGO1NBQ0Q7UUFFRDZCLEtBQUtXLElBQUksQ0FBQyxDQUFDQztZQUNULE1BQU0sRUFBRVgsZ0JBQWdCLEVBQUVFLGlCQUFpQixFQUFFckMsR0FBRyxFQUFFLEdBQUc4QztZQUVyRCxNQUFNN0MsY0FBY2tDLGlCQUFpQkoseUJBQ25DN0IsZUFBZW1DLGtCQUFrQkwsMEJBQTJCLEdBQUc7WUFFakUsSUFBSSxBQUFDL0IsZ0JBQWdCLFFBQVVDLGlCQUFpQixNQUFPO2dCQUNyRCxNQUFNRSxVQUFXSixJQUFJQyxhQUFhQyxpQkFBaUJDO2dCQUVuREUsVUFBVUQsU0FBVSxHQUFHO2dCQUV2QixPQUFPO1lBQ1Q7UUFDRjtRQUVBLE9BQU9DO0lBQ1Q7QUFDRiJ9
@@ -1,118 +0,0 @@
1
- "use strict";
2
-
3
- import { nonTerminalNodeQuery } from "../utilities/pass";
4
-
5
- export default class ForwardPass {
6
- run(node, ...remainingArguments) {
7
- let success;
8
-
9
- const visited = this.visitNode(node, ...remainingArguments);
10
-
11
- success = visited; ///
12
-
13
- return success;
14
- }
15
-
16
- descend(index, childNodes, ...remainingArguments) {
17
- let descendedForward = false;
18
-
19
- const descendForward = remainingArguments.pop(), ///
20
- childNodesLength = childNodes.length;
21
-
22
- if (index === childNodesLength) {
23
- descendedForward = descendForward();
24
- } else {
25
- const childNode = childNodes[index],
26
- node = childNode, ///
27
- visited = this.visitNode(node, ...remainingArguments, () => {
28
- remainingArguments.push(descendForward);
29
-
30
- const aheadIndex = index + 1,
31
- descendedForward = this.descend(aheadIndex, childNodes, ...remainingArguments);
32
-
33
- return descendedForward;
34
- });
35
-
36
- if (visited) {
37
- descendedForward = true;
38
- }
39
- }
40
-
41
- return descendedForward;
42
- }
43
-
44
- visitNode(node, ...remainingArguments) {
45
- let visited;
46
-
47
- const nodeTerminalNode = node.isTerminalNode();
48
-
49
- if (nodeTerminalNode) {
50
- const terminalNode = node; ///
51
-
52
- visited = this.visitTerminalNode(terminalNode, ...remainingArguments);
53
- } else {
54
- const nonTerminalNode = node; ///
55
-
56
- visited = this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments);
57
- }
58
-
59
- return visited;
60
- }
61
-
62
- visitTerminalNode(terminalNode, ...remainingArguments) {
63
- let visited = false;
64
-
65
- const descendForward = remainingArguments.pop(), ///
66
- descendedForward = descendForward();
67
-
68
- if (descendedForward) {
69
- visited = true;
70
- }
71
-
72
- remainingArguments.push(descendForward);
73
-
74
- return visited;
75
- }
76
-
77
- visitNonTerminalNode(nonTerminalNode, ...remainingArguments) {
78
- let visited = false;
79
-
80
- let { maps } = this.constructor;
81
-
82
- maps = [ ///
83
- ...maps,
84
- {
85
- nodeQuery: nonTerminalNodeQuery,
86
- run: (node, ...remainingArguments) => {
87
- let visited = false;
88
-
89
- const index = 0,
90
- childNodes = nonTerminalNode.getChildNodes(), ///
91
- descended = this.descend(index, childNodes, ...remainingArguments);
92
-
93
- if (descended) {
94
- visited = true;
95
- }
96
-
97
- return visited;
98
- }
99
- }
100
- ]
101
-
102
- maps.some((map) => {
103
- const { nodeQuery, run } = map;
104
-
105
- const node = nodeQuery(nonTerminalNode);
106
-
107
- if (node !== null) {
108
- const success = run(node, ...remainingArguments);
109
-
110
- visited = success;
111
-
112
- return true;
113
- }
114
- });
115
-
116
- return visited;
117
- }
118
- }
@@ -1,141 +0,0 @@
1
- "use strict";
2
-
3
- import { nonTerminalNodeQuery, areChildNodesCongruent } from "../utilities/pass";
4
-
5
- export default class ForwardZipPass {
6
- run(generalNode, specificNode, ...remainingArguments) {
7
- let success;
8
-
9
- const visited = this.visitNode(generalNode, specificNode, ...remainingArguments);
10
-
11
- success = visited; ///
12
-
13
- return success;
14
- }
15
-
16
- descend(index, generalChildNodes, specificChildNodes, ...remainingArguments) {
17
- let descendedForward = false;
18
-
19
- const childNodesCongruent = areChildNodesCongruent(generalChildNodes, specificChildNodes);
20
-
21
- if (childNodesCongruent) {
22
- const descendForward = remainingArguments.pop(), ///
23
- generalChildNodesLength = generalChildNodes.length;
24
-
25
- if (index === generalChildNodesLength) {
26
- descendedForward = descendForward();
27
- } else {
28
- const generalChildNode = generalChildNodes[index],
29
- specificChildNode = specificChildNodes[index],
30
- generalNode = generalChildNode, ///
31
- specificNode = specificChildNode, ///
32
- visited = this.visitNode(generalNode, specificNode, ...remainingArguments, () => {
33
- remainingArguments.push(descendForward);
34
-
35
- const aheadIndex = index + 1,
36
- descendedForward = this.descend(aheadIndex, generalChildNodes, specificChildNodes, ...remainingArguments);
37
-
38
- return descendedForward;
39
- });
40
-
41
- if (visited) {
42
- descendedForward = true;
43
- }
44
- }
45
- }
46
-
47
- return descendedForward;
48
- }
49
-
50
- visitNode(generalNode, specificNode, ...remainingArguments) {
51
- let visited = false;
52
-
53
- const generalNodeTerminalNode = generalNode.isTerminalNode(),
54
- specificNodeTerminalNode = specificNode.isTerminalNode(),
55
- generalNodeNonTerminalNode = generalNode.isNonTerminalNode(),
56
- specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
57
-
58
- if (false) {
59
- ///
60
- } else if (generalNodeTerminalNode && specificNodeTerminalNode) {
61
- const generalTerminalNode = generalNode, ///
62
- specificTerminalNode = specificNode; ///
63
-
64
- visited = this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments);
65
- } else if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
66
- const generalNonTerminalNode = generalNode, ///
67
- specificNonTerminalNode = specificNode; ///
68
-
69
- visited = this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments);
70
- }
71
-
72
- return visited;
73
- }
74
-
75
- visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments) {
76
- let visited = false;
77
-
78
- const descendForward = remainingArguments.pop(), ///
79
- descendedForward = descendForward();
80
-
81
- if (descendedForward) {
82
- visited = true;
83
- }
84
-
85
- remainingArguments.push(descendForward);
86
-
87
- return visited;
88
- }
89
-
90
- visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments) {
91
- let visited = false;
92
-
93
- let { maps } = this.constructor;
94
-
95
- maps = [ ///
96
- ...maps,
97
- {
98
- generalNodeQuery: nonTerminalNodeQuery,
99
- specificNodeQuery: nonTerminalNodeQuery,
100
- run: (generalNode, specificNode, ...remainingArguments) => {
101
- let visited = false;
102
-
103
- const generalNonTerminalNodeRuleName = generalNonTerminalNode.getRuleName(), ///
104
- specificNonTerminalNodeRuleName = specificNonTerminalNode.getRuleName(); ///
105
-
106
- if (generalNonTerminalNodeRuleName === specificNonTerminalNodeRuleName) {
107
- const index = 0,
108
- generalNonTerminalNodeChildNodes = generalNonTerminalNode.getChildNodes(),
109
- specificNonTerminalNodeChildNodes = specificNonTerminalNode.getChildNodes(),
110
- generalChildNodes = generalNonTerminalNodeChildNodes, ///
111
- specificChildNodes = specificNonTerminalNodeChildNodes, ///
112
- descended = this.descend(index, generalChildNodes, specificChildNodes, ...remainingArguments);
113
-
114
- if (descended) {
115
- visited = true;
116
- }
117
- }
118
-
119
- return visited;
120
- }
121
- }
122
- ]
123
-
124
- maps.some((map) => {
125
- const { generalNodeQuery, specificNodeQuery, run } = map;
126
-
127
- const generalNode = generalNodeQuery(generalNonTerminalNode), ///
128
- specificNode = specificNodeQuery(specificNonTerminalNode); ///
129
-
130
- if ((generalNode !== null) && (specificNode !== null)) {
131
- const success = run(generalNode, specificNode, ...remainingArguments);
132
-
133
- visited = success; ///
134
-
135
- return true;
136
- }
137
- });
138
-
139
- return visited;
140
- }
141
- }