occam-languages 2.1.2 → 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 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCIuL2VsZW1lbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWtQb2ludCB9IGZyb20gXCIuL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy96aXBcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXN5bmNQYXNzIH0gZnJvbSBcIi4vcGFzcy9hc3luY1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaW1wbGVQYXNzIH0gZnJvbSBcIi4vcGFzcy9zaW1wbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9yd2FyZFBhc3MgfSBmcm9tIFwiLi9wYXNzL2ZvcndhcmRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXN5bmNaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy9hc3luY1ppcFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3J3YXJkWmlwUGFzcyB9IGZyb20gXCIuL3Bhc3MvZm9yd2FyZFppcFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcXVpdmFsZW5jZVBhc3MgfSBmcm9tIFwiLi9wYXNzL2VxdWl2YWxlbmNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRpbnVhdGlvblBhc3MgfSBmcm9tIFwiLi9wYXNzL2NvbnRpbnVhdGlvblwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZUxleGVyIH0gZnJvbSBcIi4vZnVydGxlL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuL2Z1cnRsZS9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbExleGVyIH0gZnJvbSBcIi4vbm9taW5hbC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb21pbmFsUGFyc2VyIH0gZnJvbSBcIi4vbm9taW5hbC9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub25UZXJtaW5hbE5vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlTWl4aW5zIH0gZnJvbSBcIi4vbWl4aW5zL25vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBibmZVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYm5mXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmdXJ0bGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZnVydGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vbWluYWxVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9taW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZUNvbnRleHRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZUNvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJpZmljYXRpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyaWZpY2F0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbGVhc2VDb250ZXh0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3JlbGVhc2VDb250ZXh0XCI7XG4iXSwibmFtZXMiOlsiQXN5bmNQYXNzIiwiQXN5bmNaaXBQYXNzIiwiQnJlYWtQb2ludCIsIkNvbnRleHQiLCJDb250aW51YXRpb25QYXNzIiwiRWxlbWVudCIsIkVxdWl2YWxlbmNlUGFzcyIsIkZpbGVDb250ZXh0IiwiRm9yd2FyZFBhc3MiLCJGb3J3YXJkWmlwUGFzcyIsIkZ1cnRsZUxleGVyIiwiRnVydGxlUGFyc2VyIiwiTG9nIiwiTm9taW5hbExleGVyIiwiTm9taW5hbFBhcnNlciIsIk5vblRlcm1pbmFsTm9kZSIsIlJlbGVhc2VDb250ZXh0IiwiU2ltcGxlUGFzcyIsIlppcFBhc3MiLCJibmZVdGlsaXRpZXMiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZmlsZUNvbnRleHRVdGlsaXRpZXMiLCJmdXJ0bGVVdGlsaXRpZXMiLCJub2RlTWl4aW5zIiwibm9kZVV0aWxpdGllcyIsIm5vbWluYWxVdGlsaXRpZXMiLCJyZWxlYXNlQ29udGV4dFV0aWxpdGllcyIsInZlcmlmaWNhdGlvblV0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBVW9CQTtlQUFBQSxjQUFTOztRQUdUQztlQUFBQSxpQkFBWTs7UUFSWkM7ZUFBQUEsbUJBQVU7O1FBRFZDO2VBQUFBLGdCQUFPOztRQVlQQztlQUFBQSxxQkFBZ0I7O1FBYmhCQztlQUFBQSxnQkFBTzs7UUFZUEM7ZUFBQUEsb0JBQWU7O1FBVGZDO2VBQUFBLGFBQVc7O1FBTVhDO2VBQUFBLGdCQUFXOztRQUVYQztlQUFBQSxtQkFBYzs7UUFJZEM7ZUFBQUEsY0FBVzs7UUFDWEM7ZUFBQUEsZUFBWTs7UUFqQlpDO2VBQUFBLFlBQUc7O1FBa0JIQztlQUFBQSxlQUFZOztRQUNaQztlQUFBQSxnQkFBYTs7UUFFYkM7ZUFBQUEsd0JBQWU7O1FBaEJmQztlQUFBQSxnQkFBYzs7UUFJZEM7ZUFBQUEsZUFBVTs7UUFGVkM7ZUFBQUEsWUFBTzs7UUFrQlBDO2VBQUFBLFlBQVk7O1FBSVpDO2VBQUFBLG9CQUFtQjs7UUFFbkJDO2VBQUFBLHNCQUFxQjs7UUFEckJDO2VBQUFBLG9CQUFvQjs7UUFIcEJDO2VBQUFBLGVBQWU7O1FBSmZDO2VBQUFBLGFBQVU7O1FBR1ZDO2VBQUFBLGNBQWE7O1FBRWJDO2VBQUFBLGdCQUFnQjs7UUFLaEJDO2VBQUFBLHVCQUF1Qjs7UUFEdkJDO2VBQUFBLHFCQUFxQjs7OzREQWhDVjtnRUFDSTtnRUFDQTttRUFDRzs2REFDQztnRUFDRzs0REFFUDs4REFDRTsrREFDQztnRUFDQztpRUFDQzttRUFDRTtvRUFDQztxRUFDQzs4REFFTDsrREFDQzsrREFDQTtnRUFDQzt3RUFFRTs2REFFTDs0REFFRTs4REFDQzsrREFDRTtnRUFDQztvRUFDRztvRUFDQztzRUFDQztxRUFDQTt1RUFDRSJ9
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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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-languages",
3
3
  "author": "James Smith",
4
- "version": "2.1.2",
4
+ "version": "2.1.3",
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
@@ -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
+ }
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==
@@ -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
- }
@@ -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
- }