occam-languages 1.0.37 → 1.0.39

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.
@@ -72,13 +72,15 @@ class FileContext extends _context.default {
72
72
  releaseContext.break(breakPoint, resume);
73
73
  return breakPoint;
74
74
  }
75
- verify() {
75
+ verify(continuation) {
76
76
  let verifies = false;
77
77
  if (this.node === null) {
78
78
  this.warning(`Unable to verify the '${this.filePath}' file because it cannot be parsed.`);
79
- } else {
80
- this.debug(`Verifying the '${this.filePath}' file...`);
81
- const fileVerifies = this.verifyFile();
79
+ continuation(verifies);
80
+ return;
81
+ }
82
+ this.debug(`Verifying the '${this.filePath}' file...`);
83
+ this.verifyFile((fileVerifies)=>{
82
84
  if (fileVerifies) {
83
85
  verifies = true;
84
86
  }
@@ -86,8 +88,8 @@ class FileContext extends _context.default {
86
88
  if (verifies) {
87
89
  this.info(`...verified the '${this.filePath}' file.`);
88
90
  }
89
- }
90
- return verifies;
91
+ continuation(verifies);
92
+ });
91
93
  }
92
94
  initialise() {
93
95
  const lexer = this.getLexer(), parser = this.getParser(), content = this.fileContent; ///
@@ -108,4 +110,4 @@ class FileContext extends _context.default {
108
110
  }
109
111
  }
110
112
 
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2ZpbGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb250ZXh0IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuaW1wb3J0IHsgbm9kZUFzU3RyaW5nLCBub2Rlc0FzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ub2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVDb250ZXh0IGV4dGVuZHMgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7XG4gICAgdGhpcy5maWxlUGF0aCA9IGZpbGVQYXRoO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5qc29uID0ganNvbjtcbiAgfVxuXG4gIGdldEZpbGVDb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZW50O1xuICB9XG5cbiAgZ2V0RmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVBhdGg7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0SlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5qc29uO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgY29uc3QgbGV4ZXIgPSBudWxsO1xuXG4gICAgcmV0dXJuIGxleGVyO1xuICB9XG5cbiAgZ2V0UGFyc2VyKCkge1xuICAgIGNvbnN0IHBhcnNlciA9IG51bGw7XG5cbiAgICByZXR1cm4gcGFyc2VyO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeCgpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVByZWZpeCA9IGNvbnRleHQuZ2V0VHlwZVByZWZpeCgpO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXg7XG4gIH1cblxuICBtYXRjaEZpbGVQYXRoKGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZmlsZVBhdGhNYXRjaGVzID0gKHRoaXMuZmlsZVBhdGggPT09IGZpbGVQYXRoKTtcblxuICAgIHJldHVybiBmaWxlUGF0aE1hdGNoZXM7XG4gIH1cblxuICBub2RlQXNTdHJpbmcobm9kZSkge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgbm9kZXNBc1N0cmluZyhub2Rlcykge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVzQXNTdHJpbmcobm9kZXMsIHRoaXMudG9rZW5zKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBicmVhayhub2RlLCBicmVha1BvaW50LCByZXN1bWUpIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZmlsZVBhdGgsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSB0aGlzLmdldFJlbGVhc2VDb250ZXh0KCk7XG5cbiAgICBpZiAoYnJlYWtQb2ludCA9PT0gbnVsbCkge1xuICAgICAgYnJlYWtQb2ludCA9IEJyZWFrUG9pbnQuZnJvbUZpbGVQYXRoTm9kZUFuZFRva2VucyhmaWxlUGF0aCwgbm9kZSwgdGhpcy50b2tlbnMpO1xuICAgIH1cblxuICAgIHJlbGVhc2VDb250ZXh0LmJyZWFrKGJyZWFrUG9pbnQsIHJlc3VtZSk7XG5cbiAgICByZXR1cm4gYnJlYWtQb2ludDtcbiAgfVxuXG4gIHZlcmlmeSgpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLm5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMud2FybmluZyhgVW5hYmxlIHRvIHZlcmlmeSB0aGUgJyR7dGhpcy5maWxlUGF0aH0nIGZpbGUgYmVjYXVzZSBpdCBjYW5ub3QgYmUgcGFyc2VkLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3RoaXMuZmlsZVBhdGh9JyBmaWxlLi4uYCk7XG5cbiAgICAgIGNvbnN0IGZpbGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5RmlsZSgpO1xuXG4gICAgICBpZiAoZmlsZVZlcmlmaWVzKSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdmVyaWZpZXMgP1xuICAgICAgICB0aGlzLmNvbXBsZXRlKCkgOlxuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcblxuICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgIHRoaXMuaW5mbyhgLi4udmVyaWZpZWQgdGhlICcke3RoaXMuZmlsZVBhdGh9JyBmaWxlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgY29uc3QgbGV4ZXIgPSB0aGlzLmdldExleGVyKCksXG4gICAgICAgICAgcGFyc2VyID0gdGhpcy5nZXRQYXJzZXIoKSxcbiAgICAgICAgICBjb250ZW50ID0gdGhpcy5maWxlQ29udGVudDsgLy8vXG5cbiAgICB0aGlzLnRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gICAgdGhpcy5ub2RlID0gcGFyc2VyLnBhcnNlKHRoaXMudG9rZW5zKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRmlsZShDbGFzcywgZmlsZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxuICAgICAgICAgIHRva2VucyA9IG51bGwsXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAganNvbiA9IG51bGwsXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSwgLy8vXG4gICAgICAgICAgZmlsZUNvbnRleHQgPSBuZXcgQ2xhc3MoY29udGV4dCwgZmlsZUNvbnRlbnQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIGpzb24sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oQ2xhc3MsIGpzb24sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IHsgZmlsZUNvbnRlbnQsIGZpbGVQYXRoIH0gPSBqc29uLFxuICAgICAgICAgIHRva2VucyA9IG51bGwsXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSwgLy8vXG4gICAgICAgICAgZmlsZUNvbnRleHQgPSBuZXcgQ2xhc3MoY29udGV4dCwgZmlsZUNvbnRlbnQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIGpzb24sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVBbmRUb2tlbnMoQ2xhc3MsIG5vZGUsIHRva2VucywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBudWxsLFxuICAgICAgICAgIGZpbGVQYXRoID0gbnVsbCxcbiAgICAgICAgICBqc29uID0gbnVsbCxcbiAgICAgICAgICBjb250ZXh0ID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBmaWxlQ29udGV4dCA9IG5ldyBDbGFzcyhjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiBmaWxlQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZpbGVDb250ZXh0IiwiQ29udGV4dCIsImNvbnRleHQiLCJmaWxlQ29udGVudCIsImZpbGVQYXRoIiwidG9rZW5zIiwibm9kZSIsImpzb24iLCJnZXRGaWxlQ29udGVudCIsImdldEZpbGVQYXRoIiwiZ2V0VG9rZW5zIiwiZ2V0Tm9kZSIsImdldEpTT04iLCJnZXRMZXhlciIsImxleGVyIiwiZ2V0UGFyc2VyIiwicGFyc2VyIiwiZ2V0VHlwZVByZWZpeCIsImdldENvbnRleHQiLCJ0eXBlUHJlZml4IiwibWF0Y2hGaWxlUGF0aCIsImZpbGVQYXRoTWF0Y2hlcyIsIm5vZGVBc1N0cmluZyIsInN0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJub2RlcyIsImJyZWFrIiwiYnJlYWtQb2ludCIsInJlc3VtZSIsInJlbGVhc2VDb250ZXh0IiwiZ2V0UmVsZWFzZUNvbnRleHQiLCJCcmVha1BvaW50IiwiZnJvbUZpbGVQYXRoTm9kZUFuZFRva2VucyIsInZlcmlmeSIsInZlcmlmaWVzIiwid2FybmluZyIsImRlYnVnIiwiZmlsZVZlcmlmaWVzIiwidmVyaWZ5RmlsZSIsImNvbXBsZXRlIiwiY2xlYXIiLCJpbmZvIiwiaW5pdGlhbGlzZSIsImNvbnRlbnQiLCJ0b2tlbmlzZSIsInBhcnNlIiwiZnJvbUZpbGUiLCJDbGFzcyIsImZpbGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJnZXRDb250ZW50IiwiZ2V0UGF0aCIsInBvcCIsImZpbGVDb250ZXh0IiwiZnJvbUpTT04iLCJmcm9tTm9kZUFuZFRva2VucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUFxQkE7OztnRUFMRDttRUFDRztzQkFFcUI7Ozs7OztBQUU3QixNQUFNQSxvQkFBb0JDLGdCQUFPO0lBQzlDLFlBQVlDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFF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
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2ZpbGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb250ZXh0IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuaW1wb3J0IHsgbm9kZUFzU3RyaW5nLCBub2Rlc0FzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ub2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVDb250ZXh0IGV4dGVuZHMgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7XG4gICAgdGhpcy5maWxlUGF0aCA9IGZpbGVQYXRoO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5qc29uID0ganNvbjtcbiAgfVxuXG4gIGdldEZpbGVDb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZW50O1xuICB9XG5cbiAgZ2V0RmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVBhdGg7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0SlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5qc29uO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgY29uc3QgbGV4ZXIgPSBudWxsO1xuXG4gICAgcmV0dXJuIGxleGVyO1xuICB9XG5cbiAgZ2V0UGFyc2VyKCkge1xuICAgIGNvbnN0IHBhcnNlciA9IG51bGw7XG5cbiAgICByZXR1cm4gcGFyc2VyO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeCgpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVByZWZpeCA9IGNvbnRleHQuZ2V0VHlwZVByZWZpeCgpO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXg7XG4gIH1cblxuICBtYXRjaEZpbGVQYXRoKGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZmlsZVBhdGhNYXRjaGVzID0gKHRoaXMuZmlsZVBhdGggPT09IGZpbGVQYXRoKTtcblxuICAgIHJldHVybiBmaWxlUGF0aE1hdGNoZXM7XG4gIH1cblxuICBub2RlQXNTdHJpbmcobm9kZSkge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgbm9kZXNBc1N0cmluZyhub2Rlcykge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVzQXNTdHJpbmcobm9kZXMsIHRoaXMudG9rZW5zKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBicmVhayhub2RlLCBicmVha1BvaW50LCByZXN1bWUpIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZmlsZVBhdGgsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSB0aGlzLmdldFJlbGVhc2VDb250ZXh0KCk7XG5cbiAgICBpZiAoYnJlYWtQb2ludCA9PT0gbnVsbCkge1xuICAgICAgYnJlYWtQb2ludCA9IEJyZWFrUG9pbnQuZnJvbUZpbGVQYXRoTm9kZUFuZFRva2VucyhmaWxlUGF0aCwgbm9kZSwgdGhpcy50b2tlbnMpO1xuICAgIH1cblxuICAgIHJlbGVhc2VDb250ZXh0LmJyZWFrKGJyZWFrUG9pbnQsIHJlc3VtZSk7XG5cbiAgICByZXR1cm4gYnJlYWtQb2ludDtcbiAgfVxuXG4gIHZlcmlmeShjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLm5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMud2FybmluZyhgVW5hYmxlIHRvIHZlcmlmeSB0aGUgJyR7dGhpcy5maWxlUGF0aH0nIGZpbGUgYmVjYXVzZSBpdCBjYW5ub3QgYmUgcGFyc2VkLmApO1xuXG4gICAgICBjb250aW51YXRpb24odmVyaWZpZXMpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHt0aGlzLmZpbGVQYXRofScgZmlsZS4uLmApO1xuXG4gICAgdGhpcy52ZXJpZnlGaWxlKChmaWxlVmVyaWZpZXMpID0+IHtcbiAgICAgIGlmIChmaWxlVmVyaWZpZXMpIHtcbiAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICB2ZXJpZmllcyA/XG4gICAgICAgIHRoaXMuY29tcGxldGUoKSA6XG4gICAgICAgICAgdGhpcy5jbGVhcigpO1xuXG4gICAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgICAgdGhpcy5pbmZvKGAuLi52ZXJpZmllZCB0aGUgJyR7dGhpcy5maWxlUGF0aH0nIGZpbGUuYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIGNvbnN0IGxleGVyID0gdGhpcy5nZXRMZXhlcigpLFxuICAgICAgICAgIHBhcnNlciA9IHRoaXMuZ2V0UGFyc2VyKCksXG4gICAgICAgICAgY29udGVudCA9IHRoaXMuZmlsZUNvbnRlbnQ7IC8vL1xuXG4gICAgdGhpcy50b2tlbnMgPSBsZXhlci50b2tlbmlzZShjb250ZW50KTtcblxuICAgIHRoaXMubm9kZSA9IHBhcnNlci5wYXJzZSh0aGlzLnRva2Vucyk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZpbGUoQ2xhc3MsIGZpbGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gZmlsZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcbiAgICAgICAgICB0b2tlbnMgPSBudWxsLFxuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGpzb24gPSBudWxsLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksIC8vL1xuICAgICAgICAgIGZpbGVDb250ZXh0ID0gbmV3IENsYXNzKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIGZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKENsYXNzLCBqc29uLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCB7IGZpbGVDb250ZW50LCBmaWxlUGF0aCB9ID0ganNvbixcbiAgICAgICAgICB0b2tlbnMgPSBudWxsLFxuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksIC8vL1xuICAgICAgICAgIGZpbGVDb250ZXh0ID0gbmV3IENsYXNzKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIGZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlQW5kVG9rZW5zKENsYXNzLCBub2RlLCB0b2tlbnMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gbnVsbCxcbiAgICAgICAgICBmaWxlUGF0aCA9IG51bGwsXG4gICAgICAgICAganNvbiA9IG51bGwsXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSwgLy8vXG4gICAgICAgICAgZmlsZUNvbnRleHQgPSBuZXcgQ2xhc3MoY29udGV4dCwgZmlsZUNvbnRlbnQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIGpzb24sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGaWxlQ29udGV4dCIsIkNvbnRleHQiLCJjb250ZXh0IiwiZmlsZUNvbnRlbnQiLCJmaWxlUGF0aCIsInRva2VucyIsIm5vZGUiLCJqc29uIiwiZ2V0RmlsZUNvbnRlbnQiLCJnZXRGaWxlUGF0aCIsImdldFRva2VucyIsImdldE5vZGUiLCJnZXRKU09OIiwiZ2V0TGV4ZXIiLCJsZXhlciIsImdldFBhcnNlciIsInBhcnNlciIsImdldFR5cGVQcmVmaXgiLCJnZXRDb250ZXh0IiwidHlwZVByZWZpeCIsIm1hdGNoRmlsZVBhdGgiLCJmaWxlUGF0aE1hdGNoZXMiLCJub2RlQXNTdHJpbmciLCJzdHJpbmciLCJub2Rlc0FzU3RyaW5nIiwibm9kZXMiLCJicmVhayIsImJyZWFrUG9pbnQiLCJyZXN1bWUiLCJyZWxlYXNlQ29udGV4dCIsImdldFJlbGVhc2VDb250ZXh0IiwiQnJlYWtQb2ludCIsImZyb21GaWxlUGF0aE5vZGVBbmRUb2tlbnMiLCJ2ZXJpZnkiLCJjb250aW51YXRpb24iLCJ2ZXJpZmllcyIsIndhcm5pbmciLCJkZWJ1ZyIsInZlcmlmeUZpbGUiLCJmaWxlVmVyaWZpZXMiLCJjb21wbGV0ZSIsImNsZWFyIiwiaW5mbyIsImluaXRpYWxpc2UiLCJjb250ZW50IiwidG9rZW5pc2UiLCJwYXJzZSIsImZyb21GaWxlIiwiQ2xhc3MiLCJmaWxlIiwicmVtYWluaW5nQXJndW1lbnRzIiwiZ2V0Q29udGVudCIsImdldFBhdGgiLCJwb3AiLCJmaWxlQ29udGV4dCIsImZyb21KU09OIiwiZnJvbU5vZGVBbmRUb2tlbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBcUJBOzs7Z0VBTEQ7bUVBQ0c7c0JBRXFCOzs7Ozs7QUFFN0IsTUFBTUEsb0JBQW9C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
package/lib/index.js CHANGED
@@ -21,6 +21,9 @@ _export(exports, {
21
21
  get Context () {
22
22
  return _context.default;
23
23
  },
24
+ get ContinuationPass () {
25
+ return _continuation.default;
26
+ },
24
27
  get Element () {
25
28
  return _element.default;
26
29
  },
@@ -73,7 +76,7 @@ _export(exports, {
73
76
  return _breakPoint1.default;
74
77
  },
75
78
  get continuationUtilities () {
76
- return _continuation.default;
79
+ return _continuation1.default;
77
80
  },
78
81
  get fileContextUtilities () {
79
82
  return _fileContext.default;
@@ -110,6 +113,7 @@ const _forward = /*#__PURE__*/ _interop_require_default(require("./pass/forward"
110
113
  const _asyncZip = /*#__PURE__*/ _interop_require_default(require("./pass/asyncZip"));
111
114
  const _forwardZip = /*#__PURE__*/ _interop_require_default(require("./pass/forwardZip"));
112
115
  const _equivalence = /*#__PURE__*/ _interop_require_default(require("./pass/equivalence"));
116
+ const _continuation = /*#__PURE__*/ _interop_require_default(require("./pass/continuation"));
113
117
  const _lexer = /*#__PURE__*/ _interop_require_default(require("./furtle/lexer"));
114
118
  const _parser = /*#__PURE__*/ _interop_require_default(require("./furtle/parser"));
115
119
  const _lexer1 = /*#__PURE__*/ _interop_require_default(require("./nominal/lexer"));
@@ -122,7 +126,7 @@ const _furtle = /*#__PURE__*/ _interop_require_default(require("./utilities/furt
122
126
  const _nominal = /*#__PURE__*/ _interop_require_default(require("./utilities/nominal"));
123
127
  const _breakPoint1 = /*#__PURE__*/ _interop_require_default(require("./utilities/breakPoint"));
124
128
  const _fileContext = /*#__PURE__*/ _interop_require_default(require("./utilities/fileContext"));
125
- const _continuation = /*#__PURE__*/ _interop_require_default(require("./utilities/continuation"));
129
+ const _continuation1 = /*#__PURE__*/ _interop_require_default(require("./utilities/continuation"));
126
130
  const _verification = /*#__PURE__*/ _interop_require_default(require("./utilities/verification"));
127
131
  const _asynchronous = /*#__PURE__*/ _interop_require_default(require("./utilities/asynchronous"));
128
132
  const _releaseContext = /*#__PURE__*/ _interop_require_default(require("./utilities/releaseContext"));
@@ -132,4 +136,4 @@ function _interop_require_default(obj) {
132
136
  };
133
137
  }
134
138
 
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCIuL2VsZW1lbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWtQb2ludCB9IGZyb20gXCIuL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy96aXBcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXN5bmNQYXNzIH0gZnJvbSBcIi4vcGFzcy9hc3luY1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaW1wbGVQYXNzIH0gZnJvbSBcIi4vcGFzcy9zaW1wbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9yd2FyZFBhc3MgfSBmcm9tIFwiLi9wYXNzL2ZvcndhcmRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXN5bmNaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy9hc3luY1ppcFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3J3YXJkWmlwUGFzcyB9IGZyb20gXCIuL3Bhc3MvZm9yd2FyZFppcFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcXVpdmFsZW5jZVBhc3MgfSBmcm9tIFwiLi9wYXNzL2VxdWl2YWxlbmNlXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgRnVydGxlTGV4ZXIgfSBmcm9tIFwiLi9mdXJ0bGUvbGV4ZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRnVydGxlUGFyc2VyIH0gZnJvbSBcIi4vZnVydGxlL3BhcnNlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb21pbmFsTGV4ZXIgfSBmcm9tIFwiLi9ub21pbmFsL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vbWluYWxQYXJzZXIgfSBmcm9tIFwiLi9ub21pbmFsL3BhcnNlclwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vblRlcm1pbmFsTm9kZSB9IGZyb20gXCIuL25vblRlcm1pbmFsTm9kZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vZGVNaXhpbnMgfSBmcm9tIFwiLi9taXhpbnMvbm9kZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIGJuZlV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9ibmZcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbm9kZVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9ub2RlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZ1cnRsZVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9mdXJ0bGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbm9taW5hbFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9ub21pbmFsXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJlYWtQb2ludFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmaWxlQ29udGV4dFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9maWxlQ29udGV4dFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY29udGludWF0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZlcmlmaWNhdGlvblV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy92ZXJpZmljYXRpb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2FzeW5jaHJvbm91c1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZWxlYXNlQ29udGV4dFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9yZWxlYXNlQ29udGV4dFwiO1xuIl0sIm5hbWVzIjpbIkFzeW5jUGFzcyIsIkFzeW5jWmlwUGFzcyIsIkJyZWFrUG9pbnQiLCJDb250ZXh0IiwiRWxlbWVudCIsIkVxdWl2YWxlbmNlUGFzcyIsIkZpbGVDb250ZXh0IiwiRm9yd2FyZFBhc3MiLCJGb3J3YXJkWmlwUGFzcyIsIkZ1cnRsZUxleGVyIiwiRnVydGxlUGFyc2VyIiwiTG9nIiwiTm9taW5hbExleGVyIiwiTm9taW5hbFBhcnNlciIsIk5vblRlcm1pbmFsTm9kZSIsIlJlbGVhc2VDb250ZXh0IiwiU2ltcGxlUGFzcyIsIlppcFBhc3MiLCJhc3luY2hyb25vdXNVdGlsaXRpZXMiLCJibmZVdGlsaXRpZXMiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZmlsZUNvbnRleHRVdGlsaXRpZXMiLCJmdXJ0bGVVdGlsaXRpZXMiLCJub2RlTWl4aW5zIiwibm9kZVV0aWxpdGllcyIsIm5vbWluYWxVdGlsaXRpZXMiLCJyZWxlYXNlQ29udGV4dFV0aWxpdGllcyIsInZlcmlmaWNhdGlvblV0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBVW9CQTtlQUFBQSxjQUFTOztRQUdUQztlQUFBQSxpQkFBWTs7UUFSWkM7ZUFBQUEsbUJBQVU7O1FBRFZDO2VBQUFBLGdCQUFPOztRQURQQztlQUFBQSxnQkFBTzs7UUFZUEM7ZUFBQUEsb0JBQWU7O1FBVGZDO2VBQUFBLGFBQVc7O1FBTVhDO2VBQUFBLGdCQUFXOztRQUVYQztlQUFBQSxtQkFBYzs7UUFHZEM7ZUFBQUEsY0FBVzs7UUFDWEM7ZUFBQUEsZUFBWTs7UUFoQlpDO2VBQUFBLFlBQUc7O1FBaUJIQztlQUFBQSxlQUFZOztRQUNaQztlQUFBQSxnQkFBYTs7UUFFYkM7ZUFBQUEsd0JBQWU7O1FBZmZDO2VBQUFBLGdCQUFjOztRQUlkQztlQUFBQSxlQUFVOztRQUZWQztlQUFBQSxZQUFPOztRQXlCUEM7ZUFBQUEscUJBQXFCOztRQVJyQkM7ZUFBQUEsWUFBWTs7UUFJWkM7ZUFBQUEsb0JBQW1COztRQUVuQkM7ZUFBQUEscUJBQXFCOztRQURyQkM7ZUFBQUEsb0JBQW9COztRQUhwQkM7ZUFBQUEsZUFBZTs7UUFKZkM7ZUFBQUEsYUFBVTs7UUFHVkM7ZUFBQUEsY0FBYTs7UUFFYkM7ZUFBQUEsZ0JBQWdCOztRQU1oQkM7ZUFBQUEsdUJBQXVCOztRQUZ2QkM7ZUFBQUEscUJBQXFCOzs7NERBL0JWO2dFQUNJO2dFQUNBO21FQUNHOzZEQUNDO2dFQUNHOzREQUVQOzhEQUNFOytEQUNDO2dFQUNDO2lFQUNDO21FQUNFO29FQUNDOzhEQUVKOytEQUNDOytEQUNBO2dFQUNDO3dFQUVFOzZEQUVMOzREQUVFOzhEQUNDOytEQUNFO2dFQUNDO29FQUNHO29FQUNDO3FFQUNDO3FFQUNBO3FFQUNBO3VFQUNFIn0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCIuL2VsZW1lbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWtQb2ludCB9IGZyb20gXCIuL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy96aXBcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXN5bmNQYXNzIH0gZnJvbSBcIi4vcGFzcy9hc3luY1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaW1wbGVQYXNzIH0gZnJvbSBcIi4vcGFzcy9zaW1wbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9yd2FyZFBhc3MgfSBmcm9tIFwiLi9wYXNzL2ZvcndhcmRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXN5bmNaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy9hc3luY1ppcFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3J3YXJkWmlwUGFzcyB9IGZyb20gXCIuL3Bhc3MvZm9yd2FyZFppcFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcXVpdmFsZW5jZVBhc3MgfSBmcm9tIFwiLi9wYXNzL2VxdWl2YWxlbmNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRpbnVhdGlvblBhc3MgfSBmcm9tIFwiLi9wYXNzL2NvbnRpbnVhdGlvblwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZUxleGVyIH0gZnJvbSBcIi4vZnVydGxlL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuL2Z1cnRsZS9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbExleGVyIH0gZnJvbSBcIi4vbm9taW5hbC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb21pbmFsUGFyc2VyIH0gZnJvbSBcIi4vbm9taW5hbC9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub25UZXJtaW5hbE5vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlTWl4aW5zIH0gZnJvbSBcIi4vbWl4aW5zL25vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBibmZVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYm5mXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmdXJ0bGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZnVydGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vbWluYWxVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9taW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZUNvbnRleHRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZUNvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJpZmljYXRpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyaWZpY2F0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGFzeW5jaHJvbm91c1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9hc3luY2hyb25vdXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVsZWFzZUNvbnRleHRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHRcIjtcbiJdLCJuYW1lcyI6WyJBc3luY1Bhc3MiLCJBc3luY1ppcFBhc3MiLCJCcmVha1BvaW50IiwiQ29udGV4dCIsIkNvbnRpbnVhdGlvblBhc3MiLCJFbGVtZW50IiwiRXF1aXZhbGVuY2VQYXNzIiwiRmlsZUNvbnRleHQiLCJGb3J3YXJkUGFzcyIsIkZvcndhcmRaaXBQYXNzIiwiRnVydGxlTGV4ZXIiLCJGdXJ0bGVQYXJzZXIiLCJMb2ciLCJOb21pbmFsTGV4ZXIiLCJOb21pbmFsUGFyc2VyIiwiTm9uVGVybWluYWxOb2RlIiwiUmVsZWFzZUNvbnRleHQiLCJTaW1wbGVQYXNzIiwiWmlwUGFzcyIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImJuZlV0aWxpdGllcyIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJmaWxlQ29udGV4dFV0aWxpdGllcyIsImZ1cnRsZVV0aWxpdGllcyIsIm5vZGVNaXhpbnMiLCJub2RlVXRpbGl0aWVzIiwibm9taW5hbFV0aWxpdGllcyIsInJlbGVhc2VDb250ZXh0VXRpbGl0aWVzIiwidmVyaWZpY2F0aW9uVXRpbGl0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFVb0JBO2VBQUFBLGNBQVM7O1FBR1RDO2VBQUFBLGlCQUFZOztRQVJaQztlQUFBQSxtQkFBVTs7UUFEVkM7ZUFBQUEsZ0JBQU87O1FBWVBDO2VBQUFBLHFCQUFnQjs7UUFiaEJDO2VBQUFBLGdCQUFPOztRQVlQQztlQUFBQSxvQkFBZTs7UUFUZkM7ZUFBQUEsYUFBVzs7UUFNWEM7ZUFBQUEsZ0JBQVc7O1FBRVhDO2VBQUFBLG1CQUFjOztRQUlkQztlQUFBQSxjQUFXOztRQUNYQztlQUFBQSxlQUFZOztRQWpCWkM7ZUFBQUEsWUFBRzs7UUFrQkhDO2VBQUFBLGVBQVk7O1FBQ1pDO2VBQUFBLGdCQUFhOztRQUViQztlQUFBQSx3QkFBZTs7UUFoQmZDO2VBQUFBLGdCQUFjOztRQUlkQztlQUFBQSxlQUFVOztRQUZWQztlQUFBQSxZQUFPOztRQTBCUEM7ZUFBQUEscUJBQXFCOztRQVJyQkM7ZUFBQUEsWUFBWTs7UUFJWkM7ZUFBQUEsb0JBQW1COztRQUVuQkM7ZUFBQUEsc0JBQXFCOztRQURyQkM7ZUFBQUEsb0JBQW9COztRQUhwQkM7ZUFBQUEsZUFBZTs7UUFKZkM7ZUFBQUEsYUFBVTs7UUFHVkM7ZUFBQUEsY0FBYTs7UUFFYkM7ZUFBQUEsZ0JBQWdCOztRQU1oQkM7ZUFBQUEsdUJBQXVCOztRQUZ2QkM7ZUFBQUEscUJBQXFCOzs7NERBaENWO2dFQUNJO2dFQUNBO21FQUNHOzZEQUNDO2dFQUNHOzREQUVQOzhEQUNFOytEQUNDO2dFQUNDO2lFQUNDO21FQUNFO29FQUNDO3FFQUNDOzhEQUVMOytEQUNDOytEQUNBO2dFQUNDO3dFQUVFOzZEQUVMOzREQUVFOzhEQUNDOytEQUNFO2dFQUNDO29FQUNHO29FQUNDO3NFQUNDO3FFQUNBO3FFQUNBO3VFQUNFIn0=
@@ -0,0 +1,65 @@
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 ContinuationPass;
9
+ }
10
+ });
11
+ const _continuation = require("../utilities/continuation");
12
+ const _pass = require("../utilities/pass");
13
+ class ContinuationPass {
14
+ run(node, ...remainingArguments) {
15
+ const continuation = remainingArguments.pop();
16
+ this.visitNode(node, ...remainingArguments, continuation);
17
+ }
18
+ descend(childNodes, ...remainingArguments) {
19
+ const continuation = remainingArguments.pop();
20
+ (0, _continuation.every)(childNodes, (childNode, continuation)=>{
21
+ const node = childNode; ///
22
+ this.visitNode(node, ...remainingArguments, continuation);
23
+ }, continuation);
24
+ }
25
+ visitNode(node, ...remainingArguments) {
26
+ const continuation = remainingArguments.pop(), nodeTerminalNode = node.isTerminalNode();
27
+ if (nodeTerminalNode) {
28
+ const terminalNode = node; ///
29
+ this.visitTerminalNode(terminalNode, ...remainingArguments, continuation);
30
+ } else {
31
+ const nonTerminalNode = node; ///
32
+ this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments, continuation);
33
+ }
34
+ }
35
+ visitTerminalNode(terminalNode, ...remainingArguments) {
36
+ const visited = true, continuation = remainingArguments.pop();
37
+ continuation(visited);
38
+ }
39
+ visitNonTerminalNode(nonTerminalNode, ...remainingArguments) {
40
+ const continuation = remainingArguments.pop();
41
+ let { maps } = this.constructor;
42
+ maps = [
43
+ ...maps,
44
+ {
45
+ nodeQuery: _pass.nonTerminalNodeQuery,
46
+ run: (node, ...remainingArguments)=>{
47
+ const continuation = remainingArguments.pop(), childNodes = nonTerminalNode.getChildNodes();
48
+ this.descend(childNodes, ...remainingArguments, continuation);
49
+ }
50
+ }
51
+ ];
52
+ (0, _continuation.some)(maps, (map, continuation)=>{
53
+ const { nodeQuery, run } = map;
54
+ const node = nodeQuery(nonTerminalNode);
55
+ if (node === null) {
56
+ const visited = false;
57
+ continuation(visited);
58
+ return;
59
+ }
60
+ run(node, ...remainingArguments, continuation);
61
+ }, continuation);
62
+ }
63
+ }
64
+
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc29tZSwgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uUGFzcyB7XG4gIHJ1bihub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICB0aGlzLnZpc2l0Tm9kZShub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICBkZXNjZW5kKGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIGV2ZXJ5KGNoaWxkTm9kZXMsIChjaGlsZE5vZGUsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICAgIHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgdmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgICAgdGhpcy52aXNpdFRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgICB0aGlzLnZpc2l0Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHZpc2l0VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgdmlzaXRlZCA9IHRydWUsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgY29udGludWF0aW9uKHZpc2l0ZWQpO1xuICB9XG5cbiAgdmlzaXROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBsZXQgeyBtYXBzIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgbWFwcyA9IFsgLy8vXG4gICAgICAuLi5tYXBzLFxuICAgICAge1xuICAgICAgICBub2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBydW46IChub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCk7XG5cbiAgICAgICAgICB0aGlzLmRlc2NlbmQoY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcblxuICAgIHNvbWUobWFwcywgKG1hcCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICBjb25zdCB7IG5vZGVRdWVyeSwgcnVuIH0gPSBtYXA7XG5cbiAgICAgIGNvbnN0IG5vZGUgPSBub2RlUXVlcnkobm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgaWYgKG5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnRpbnVhdGlvbih2aXNpdGVkKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJ1bihub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gICAgfSwgY29udGludWF0aW9uKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbnRpbnVhdGlvblBhc3MiLCJydW4iLCJub2RlIiwicmVtYWluaW5nQXJndW1lbnRzIiwiY29udGludWF0aW9uIiwicG9wIiwidmlzaXROb2RlIiwiZGVzY2VuZCIsImNoaWxkTm9kZXMiLCJldmVyeSIsImNoaWxkTm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJ2aXNpdGVkIiwibWFwcyIsIm5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5IiwiZ2V0Q2hpbGROb2RlcyIsInNvbWUiLCJtYXAiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUtBOzs7ZUFBcUJBOzs7OEJBSE87c0JBQ1M7QUFFdEIsTUFBTUE7SUFDbkJDLElBQUlDLElBQUksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUMvQixNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7UUFFM0MsSUFBSSxDQUFDQyxTQUFTLENBQUNKLFNBQVNDLG9CQUFvQkM7SUFDOUM7SUFFQUcsUUFBUUMsVUFBVSxFQUFFLEdBQUdMLGtCQUFrQixFQUFFO1FBQ3pDLE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRztRQUUzQ0ksSUFBQUEsbUJBQUssRUFBQ0QsWUFBWSxDQUFDRSxXQUFXTjtZQUM1QixNQUFNRixPQUFPUSxXQUFXLEdBQUc7WUFFM0IsSUFBSSxDQUFDSixTQUFTLENBQUNKLFNBQVNDLG9CQUFvQkM7UUFDOUMsR0FBR0E7SUFDTDtJQUVBRSxVQUFVSixJQUFJLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDckMsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDTSxtQkFBbUJULEtBQUtVLGNBQWM7UUFFNUMsSUFBSUQsa0JBQWtCO1lBQ3BCLE1BQU1FLGVBQWVYLE1BQU8sR0FBRztZQUUvQixJQUFJLENBQUNZLGlCQUFpQixDQUFDRCxpQkFBaUJWLG9CQUFvQkM7UUFDOUQsT0FBTztZQUNMLE1BQU1XLGtCQUFrQmIsTUFBTyxHQUFHO1lBRWxDLElBQUksQ0FBQ2Msb0JBQW9CLENBQUNELG9CQUFvQlosb0JBQW9CQztRQUNwRTtJQUNGO0lBRUFVLGtCQUFrQkQsWUFBWSxFQUFFLEdBQUdWLGtCQUFrQixFQUFFO1FBQ3JELE1BQU1jLFVBQVUsTUFDVmIsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDRCxhQUFhYTtJQUNmO0lBRUFELHFCQUFxQkQsZUFBZSxFQUFFLEdBQUdaLGtCQUFrQixFQUFFO1FBQzNELE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRztRQUUzQyxJQUFJLEVBQUVhLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXO1FBRS9CQSxPQUFPO2VBQ0ZBO1lBQ0g7Z0JBQ0VDLFdBQVdDLDBCQUFvQjtnQkFDL0JuQixLQUFLLENBQUNDLE1BQU0sR0FBR0M7b0JBQ2IsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDRyxhQUFhTyxnQkFBZ0JNLGFBQWE7b0JBRWhELElBQUksQ0FBQ2QsT0FBTyxDQUFDQyxlQUFlTCxvQkFBb0JDO2dCQUNsRDtZQUNGO1NBQ0Q7UUFFRGtCLElBQUFBLGtCQUFJLEVBQUNKLE1BQU0sQ0FBQ0ssS0FBS25CO1lBQ2YsTUFBTSxFQUFFZSxTQUFTLEVBQUVsQixHQUFHLEVBQUUsR0FBR3NCO1lBRTNCLE1BQU1yQixPQUFPaUIsVUFBVUo7WUFFdkIsSUFBSWIsU0FBUyxNQUFNO2dCQUNqQixNQUFNZSxVQUFVO2dCQUVoQmIsYUFBYWE7Z0JBRWI7WUFDRjtZQUVBaEIsSUFBSUMsU0FBU0Msb0JBQW9CQztRQUNuQyxHQUFHQTtJQUNMO0FBQ0YifQ==
@@ -21,16 +21,36 @@ _export(exports, {
21
21
  get resolve () {
22
22
  return resolve;
23
23
  },
24
+ get some () {
25
+ return some;
26
+ },
24
27
  get unbreakable () {
25
28
  return unbreakable;
26
29
  }
27
30
  });
28
31
  const _necessary = require("necessary");
29
32
  const { filter } = _necessary.arrayUtilities, { forEach } = _necessary.asynchronousUtilities;
30
- function every(array, callback, context, contiunation) {
33
+ function some(array, callback, ...remainingArguments) {
34
+ let success = false;
35
+ const continuation = remainingArguments.pop();
36
+ forEach(array, (element, next, done)=>{
37
+ callback(element, ...remainingArguments, (passed)=>{
38
+ if (passed) {
39
+ success = true;
40
+ done();
41
+ return;
42
+ }
43
+ next();
44
+ });
45
+ }, ()=>{
46
+ continuation(success);
47
+ });
48
+ }
49
+ function every(array, callback, ...remainingArguments) {
31
50
  let success = true;
32
- forEach(array, (elmeent, next, done)=>{
33
- callback(elmeent, context, (passed)=>{
51
+ const continuation = remainingArguments.pop();
52
+ forEach(array, (element, next, done)=>{
53
+ callback(element, ...remainingArguments, (passed)=>{
34
54
  if (!passed) {
35
55
  success = false;
36
56
  done();
@@ -39,29 +59,30 @@ function every(array, callback, context, contiunation) {
39
59
  next();
40
60
  });
41
61
  }, ()=>{
42
- contiunation(success);
62
+ continuation(success);
43
63
  });
44
64
  }
45
- function resolve(arrayA, arrayB, callback, continuation) {
65
+ function resolve(arrayA, arrayB, callback, ...remainingArguments) {
46
66
  arrayA = [
47
67
  ...arrayA
48
68
  ];
69
+ const continuation = remainingArguments.pop();
49
70
  function nextPass() {
50
71
  const arrayALength = arrayA.length;
51
72
  if (arrayALength === 0) {
52
- const resolved = true; ///
53
- continuation(resolved);
73
+ const success = true; ///
74
+ continuation(success);
54
75
  return;
55
76
  }
56
- let resolved = false;
77
+ let success = false;
57
78
  let count = -1;
58
79
  function nextElement() {
59
80
  count++;
60
81
  const terminate = count === arrayALength;
61
82
  if (terminate) {
62
- if (!resolved) {
63
- const resolved = false; ///
64
- continuation(resolved);
83
+ if (!success) {
84
+ const success = false; ///
85
+ continuation(success);
65
86
  return;
66
87
  }
67
88
  filter(arrayA, (elementA)=>{
@@ -73,11 +94,11 @@ function resolve(arrayA, arrayB, callback, continuation) {
73
94
  nextPass();
74
95
  } else {
75
96
  const index = count, elementA = arrayA[index];
76
- callback(elementA, (passed)=>{
97
+ callback(elementA, ...remainingArguments, (passed)=>{
77
98
  if (passed) {
78
99
  const elementB = elementA; ///
79
100
  arrayB.push(elementB);
80
- resolved = true;
101
+ success = true;
81
102
  }
82
103
  nextElement();
83
104
  });
@@ -112,10 +133,11 @@ function unbreakable(innerFunction) {
112
133
  };
113
134
  }
114
135
  const _default = {
136
+ some,
115
137
  every,
116
138
  resolve,
117
139
  breakable,
118
140
  unbreakable
119
141
  };
120
142
 
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlciB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IGZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgY29udGV4dCwgY29udGl1bmF0aW9uKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBmb3JFYWNoKGFycmF5LCAoZWxtZWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsbWVlbnQsIGNvbnRleHQsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aXVuYXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIGNvbnRpbnVhdGlvbikge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBmdW5jdGlvbiBuZXh0UGFzcygpIHtcbiAgICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoO1xuXG4gICAgaWYgKGFycmF5QUxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgcmVzb2x2ZWQgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihyZXNvbHZlZCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcblxuICAgIGxldCBjb3VudCA9IC0xO1xuXG4gICAgZnVuY3Rpb24gbmV4dEVsZW1lbnQoKSB7XG4gICAgICBjb3VudCsrO1xuXG4gICAgICBjb25zdCB0ZXJtaW5hdGUgPSAoY291bnQgPT09IGFycmF5QUxlbmd0aCk7XG5cbiAgICAgIGlmICh0ZXJtaW5hdGUpIHtcbiAgICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gZmFsc2U7IC8vL1xuXG4gICAgICAgICAgY29udGludWF0aW9uKHJlc29sdmVkKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IGNvdW50LCAgLy8vXG4gICAgICAgICAgICAgIGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICBjYWxsYmFjayhlbGVtZW50QSwgKHBhc3NlZCkgPT4ge1xuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV4dEVsZW1lbnQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV4dEVsZW1lbnQoKTtcbiAgfVxuXG4gIG5leHRQYXNzKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoID0gcmVtYWluaW5nQXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICBpbm5lckZ1bmN0aW9uTGVuZ3RoID0gaW5uZXJGdW5jdGlvbi5sZW5ndGgsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICB0aGlzLmJyZWFrKGNvbnRleHQsICgpID0+IHtcbiAgICAgIGlmIChpbm5lckZ1bmN0aW9uTGVuZ3RoID09PSByZW1haW5pbmdBcmd1bWVudHNMZW5ndGgpIHtcbiAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCwgY29udGludWF0aW9uKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGlubmVyRnVuY3Rpb24uY2FsbCh0aGlzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRleHQpO1xuXG4gICAgICBjb250aW51YXRpb24ocmVzdWx0KTtcbiAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuYnJlYWthYmxlKGlubmVyRnVuY3Rpb24pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGlubmVyRnVuY3Rpb25MZW5ndGggPSBpbm5lckZ1bmN0aW9uLmxlbmd0aCxcbiAgICAgICAgICByZW1haW5pbmdBcmd1bWVudHNMZW5ndGggPSByZW1haW5pbmdBcmd1bWVudHMubGVuZ3RoO1xuXG4gICAgaWYgKGlubmVyRnVuY3Rpb25MZW5ndGggPT09IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCkge1xuICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBjb250aW51YXRpb24ocmVzdWx0KTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBldmVyeSxcbiAgcmVzb2x2ZSxcbiAgYnJlYWthYmxlLFxuICB1bmJyZWFrYWJsZVxufVxuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImV2ZXJ5IiwicmVzb2x2ZSIsInVuYnJlYWthYmxlIiwiZmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJmb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiYXJyYXkiLCJjYWxsYmFjayIsImNvbnRleHQiLCJjb250aXVuYXRpb24iLCJzdWNjZXNzIiwiZWxtZWVudCIsIm5leHQiLCJkb25lIiwicGFzc2VkIiwiYXJyYXlBIiwiYXJyYXlCIiwiY29udGludWF0aW9uIiwibmV4dFBhc3MiLCJhcnJheUFMZW5ndGgiLCJsZW5ndGgiLCJyZXNvbHZlZCIsImNvdW50IiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJlbGVtZW50QSIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsImluZGV4IiwiZWxlbWVudEIiLCJwdXNoIiwiaW5uZXJGdW5jdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCIsImlubmVyRnVuY3Rpb25MZW5ndGgiLCJwb3AiLCJicmVhayIsImNhbGwiLCJyZXN1bHQiXSwibWFwcGluZ3Mi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
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlciB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IGZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dFBhc3MoKSB7XG4gICAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBsZXQgY291bnQgPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGNvdW50ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTsgLy8vXG5cbiAgICAgICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICAgICAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgICAgICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBuZXh0UGFzcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBjb3VudCwgIC8vL1xuICAgICAgICAgICAgICBlbGVtZW50QSA9IGFycmF5QVtpbmRleF07XG5cbiAgICAgICAgY2FsbGJhY2soZWxlbWVudEEsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBuZXh0RWxlbWVudCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0RWxlbWVudCgpO1xuICB9XG5cbiAgbmV4dFBhc3MoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCByZW1haW5pbmdBcmd1bWVudHNMZW5ndGggPSByZW1haW5pbmdBcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgIGlubmVyRnVuY3Rpb25MZW5ndGggPSBpbm5lckZ1bmN0aW9uLmxlbmd0aCxcbiAgICAgICAgICBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgaWYgKGlubmVyRnVuY3Rpb25MZW5ndGggPT09IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCkge1xuICAgICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCk7XG5cbiAgICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5icmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgaW5uZXJGdW5jdGlvbkxlbmd0aCA9IGlubmVyRnVuY3Rpb24ubGVuZ3RoLFxuICAgICAgICAgIHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5sZW5ndGg7XG5cbiAgICBpZiAoaW5uZXJGdW5jdGlvbkxlbmd0aCA9PT0gcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoKSB7XG4gICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICByZXN1bHQgPSBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHNvbWUsXG4gIGV2ZXJ5LFxuICByZXNvbHZlLFxuICBicmVha2FibGUsXG4gIHVuYnJlYWthYmxlXG59XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiZXZlcnkiLCJyZXNvbHZlIiwic29tZSIsInVuYnJlYWthYmxlIiwiZmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJmb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiYXJyYXkiLCJjYWxsYmFjayIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJjb250aW51YXRpb24iLCJwb3AiLCJlbGVtZW50IiwibmV4dCIsImRvbmUiLCJwYXNzZWQiLCJhcnJheUEiLCJhcnJheUIiLCJuZXh0UGFzcyIsImFycmF5QUxlbmd0aCIsImxlbmd0aCIsImNvdW50IiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJlbGVtZW50QSIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsImluZGV4IiwiZWxlbWVudEIiLCJwdXNoIiwiaW5uZXJGdW5jdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCIsImlubmVyRnVuY3Rpb25MZW5ndGgiLCJjb250ZXh0IiwiYnJlYWsiLCJjYWxsIiwicmVzdWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF3SGdCQTtlQUFBQTs7UUF1Q2hCO2VBQUE7O1FBbElnQkM7ZUFBQUE7O1FBc0JBQztlQUFBQTs7UUE1Q0FDO2VBQUFBOztRQXNJQUM7ZUFBQUE7OzsyQkEzSXNDO0FBRXRELE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdDLHlCQUFjLEVBQzNCLEVBQUVDLE9BQU8sRUFBRSxHQUFHQyxnQ0FBcUI7QUFFbEMsU0FBU0wsS0FBS00sS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQ3pELElBQUlDLFVBQVU7SUFFZCxNQUFNQyxlQUFlRixtQkFBbUJHLEdBQUc7SUFFM0NQLFFBQVFFLE9BQU8sQ0FBQ00sU0FBU0MsTUFBTUM7UUFDN0JQLFNBQVNLLFlBQVlKLG9CQUFvQixD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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": "1.0.37",
4
+ "version": "1.0.39",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
@@ -86,16 +86,20 @@ export default class FileContext extends Context {
86
86
  return breakPoint;
87
87
  }
88
88
 
89
- verify() {
89
+ verify(continuation) {
90
90
  let verifies = false;
91
91
 
92
92
  if (this.node === null) {
93
93
  this.warning(`Unable to verify the '${this.filePath}' file because it cannot be parsed.`);
94
- } else {
95
- this.debug(`Verifying the '${this.filePath}' file...`);
96
94
 
97
- const fileVerifies = this.verifyFile();
95
+ continuation(verifies);
98
96
 
97
+ return;
98
+ }
99
+
100
+ this.debug(`Verifying the '${this.filePath}' file...`);
101
+
102
+ this.verifyFile((fileVerifies) => {
99
103
  if (fileVerifies) {
100
104
  verifies = true;
101
105
  }
@@ -107,9 +111,9 @@ export default class FileContext extends Context {
107
111
  if (verifies) {
108
112
  this.info(`...verified the '${this.filePath}' file.`);
109
113
  }
110
- }
111
114
 
112
- return verifies;
115
+ continuation(verifies);
116
+ });
113
117
  }
114
118
 
115
119
  initialise() {
package/src/index.js CHANGED
@@ -14,6 +14,7 @@ export { default as ForwardPass } from "./pass/forward";
14
14
  export { default as AsyncZipPass } from "./pass/asyncZip";
15
15
  export { default as ForwardZipPass } from "./pass/forwardZip";
16
16
  export { default as EquivalencePass } from "./pass/equivalence";
17
+ export { default as ContinuationPass } from "./pass/continuation";
17
18
 
18
19
  export { default as FurtleLexer } from "./furtle/lexer";
19
20
  export { default as FurtleParser } from "./furtle/parser";
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ import { some, every } from "../utilities/continuation";
4
+ import { nonTerminalNodeQuery } from "../utilities/pass";
5
+
6
+ export default class ContinuationPass {
7
+ run(node, ...remainingArguments) {
8
+ const continuation = remainingArguments.pop();
9
+
10
+ this.visitNode(node, ...remainingArguments, continuation);
11
+ }
12
+
13
+ descend(childNodes, ...remainingArguments) {
14
+ const continuation = remainingArguments.pop();
15
+
16
+ every(childNodes, (childNode, continuation) => {
17
+ const node = childNode; ///
18
+
19
+ this.visitNode(node, ...remainingArguments, continuation);
20
+ }, continuation);
21
+ }
22
+
23
+ visitNode(node, ...remainingArguments) {
24
+ const continuation = remainingArguments.pop(),
25
+ nodeTerminalNode = node.isTerminalNode();
26
+
27
+ if (nodeTerminalNode) {
28
+ const terminalNode = node; ///
29
+
30
+ this.visitTerminalNode(terminalNode, ...remainingArguments, continuation);
31
+ } else {
32
+ const nonTerminalNode = node; ///
33
+
34
+ this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments, continuation);
35
+ }
36
+ }
37
+
38
+ visitTerminalNode(terminalNode, ...remainingArguments) {
39
+ const visited = true,
40
+ continuation = remainingArguments.pop();
41
+
42
+ continuation(visited);
43
+ }
44
+
45
+ visitNonTerminalNode(nonTerminalNode, ...remainingArguments) {
46
+ const continuation = remainingArguments.pop();
47
+
48
+ let { maps } = this.constructor;
49
+
50
+ maps = [ ///
51
+ ...maps,
52
+ {
53
+ nodeQuery: nonTerminalNodeQuery,
54
+ run: (node, ...remainingArguments) => {
55
+ const continuation = remainingArguments.pop(),
56
+ childNodes = nonTerminalNode.getChildNodes();
57
+
58
+ this.descend(childNodes, ...remainingArguments, continuation);
59
+ }
60
+ }
61
+ ];
62
+
63
+ some(maps, (map, continuation) => {
64
+ const { nodeQuery, run } = map;
65
+
66
+ const node = nodeQuery(nonTerminalNode);
67
+
68
+ if (node === null) {
69
+ const visited = false;
70
+
71
+ continuation(visited);
72
+
73
+ return;
74
+ }
75
+
76
+ run(node, ...remainingArguments, continuation);
77
+ }, continuation);
78
+ }
79
+ }
@@ -5,11 +5,35 @@ import { arrayUtilities, asynchronousUtilities } from "necessary";
5
5
  const { filter } = arrayUtilities,
6
6
  { forEach } = asynchronousUtilities;
7
7
 
8
- export function every(array, callback, context, contiunation) {
8
+ export function some(array, callback, ...remainingArguments) {
9
+ let success = false;
10
+
11
+ const continuation = remainingArguments.pop();
12
+
13
+ forEach(array, (element, next, done) => {
14
+ callback(element, ...remainingArguments, (passed) => {
15
+ if (passed) {
16
+ success = true;
17
+
18
+ done();
19
+
20
+ return;
21
+ }
22
+
23
+ next();
24
+ });
25
+ }, () => {
26
+ continuation(success);
27
+ });
28
+ }
29
+
30
+ export function every(array, callback, ...remainingArguments) {
9
31
  let success = true;
10
32
 
11
- forEach(array, (elmeent, next, done) => {
12
- callback(elmeent, context, (passed) => {
33
+ const continuation = remainingArguments.pop();
34
+
35
+ forEach(array, (element, next, done) => {
36
+ callback(element, ...remainingArguments, (passed) => {
13
37
  if (!passed) {
14
38
  success = false;
15
39
 
@@ -21,27 +45,29 @@ export function every(array, callback, context, contiunation) {
21
45
  next();
22
46
  });
23
47
  }, () => {
24
- contiunation(success);
48
+ continuation(success);
25
49
  });
26
50
  }
27
51
 
28
- export function resolve(arrayA, arrayB, callback, continuation) {
52
+ export function resolve(arrayA, arrayB, callback, ...remainingArguments) {
29
53
  arrayA = [ ///
30
54
  ...arrayA
31
55
  ];
32
56
 
57
+ const continuation = remainingArguments.pop();
58
+
33
59
  function nextPass() {
34
60
  const arrayALength = arrayA.length;
35
61
 
36
62
  if (arrayALength === 0) {
37
- const resolved = true; ///
63
+ const success = true; ///
38
64
 
39
- continuation(resolved);
65
+ continuation(success);
40
66
 
41
67
  return;
42
68
  }
43
69
 
44
- let resolved = false;
70
+ let success = false;
45
71
 
46
72
  let count = -1;
47
73
 
@@ -51,10 +77,10 @@ export function resolve(arrayA, arrayB, callback, continuation) {
51
77
  const terminate = (count === arrayALength);
52
78
 
53
79
  if (terminate) {
54
- if (!resolved) {
55
- const resolved = false; ///
80
+ if (!success) {
81
+ const success = false; ///
56
82
 
57
- continuation(resolved);
83
+ continuation(success);
58
84
 
59
85
  return;
60
86
  }
@@ -72,13 +98,13 @@ export function resolve(arrayA, arrayB, callback, continuation) {
72
98
  const index = count, ///
73
99
  elementA = arrayA[index];
74
100
 
75
- callback(elementA, (passed) => {
101
+ callback(elementA, ...remainingArguments, (passed) => {
76
102
  if (passed) {
77
103
  const elementB = elementA; ///
78
104
 
79
105
  arrayB.push(elementB);
80
106
 
81
- resolved = true;
107
+ success = true;
82
108
  }
83
109
 
84
110
  nextElement();
@@ -132,6 +158,7 @@ export function unbreakable(innerFunction) {
132
158
  }
133
159
 
134
160
  export default {
161
+ some,
135
162
  every,
136
163
  resolve,
137
164
  breakable,