occam-parsers 23.3.66 → 23.3.67

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.
@@ -28,7 +28,11 @@ class RuleNamePart extends _nonTerminal.default {
28
28
  return ruleNamePart;
29
29
  }
30
30
  isConsuming(ruleMap, visitedRules = []) {
31
- const rule = ruleMap[this.ruleName], consuming = rule.isConsuming(ruleMap, visitedRules);
31
+ const rule = ruleMap[this.ruleName] || null;
32
+ if (rule == null) {
33
+ throw new Error(`The '${this.ruleName}' rule is missing.`);
34
+ }
35
+ const consuming = rule.isConsuming(ruleMap, visitedRules);
32
36
  return consuming;
33
37
  }
34
38
  parse(frame, state, forward, back) {
@@ -48,4 +52,4 @@ class RuleNamePart extends _nonTerminal.default {
48
52
  }
49
53
  }
50
54
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3J1bGVOYW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L25vblRlcm1pbmFsXCI7XG5cbmltcG9ydCB7IFJ1bGVOYW1lUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGVOYW1lUGFydCBleHRlbmRzIE5vblRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHR5cGUsIHJ1bGVOYW1lKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnJ1bGVOYW1lID0gcnVsZU5hbWU7XG4gIH1cblxuICBnZXRSdWxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTmFtZTtcbiAgfVxuXG4gIGlzUnVsZU5hbWVQYXJ0KCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lUGFydCA9IHRydWU7XG5cbiAgICByZXR1cm4gcnVsZU5hbWVQYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHtcbiAgICBjb25zdCBydWxlID0gcnVsZU1hcFt0aGlzLnJ1bGVOYW1lXSxcbiAgICAgICAgICBjb25zdW1pbmcgPSBydWxlLmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyk7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgcnVsZSA9IHN0YXRlLmZpbmRSdWxlKHRoaXMucnVsZU5hbWUpO1xuXG4gICAgaWYgKHJ1bGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJ1bGUucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IGAke3RoaXMucnVsZU5hbWV9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lKHJ1bGVOYW1lKSB7XG4gICAgY29uc3QgdHlwZSA9IFJ1bGVOYW1lUGFydFR5cGUsXG4gICAgICAgICAgcnVsZU5hbWVQYXJ0ID0gbmV3IFJ1bGVOYW1lUGFydCh0eXBlLCBydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcnVsZU5hbWVQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiUnVsZU5hbWVQYXJ0IiwiTm9uVGVybWluYWxQYXJ0IiwidHlwZSIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJpc1J1bGVOYW1lUGFydCIsInJ1bGVOYW1lUGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsInJ1bGUiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImZpbmRSdWxlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJmcm9tUnVsZU5hbWUiLCJSdWxlTmFtZVBhcnRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O29FQUpPOzJCQUVLOzs7Ozs7QUFFbEIsTUFBTUEscUJBQXFCQyxvQkFBZTtJQUN2RCxZQUFZQyxJQUFJLEVBQUVDLFFBQVEsQ0FBRTtRQUMxQixLQUFLLENBQUNEO1FBRU4sSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsUUFBUTtJQUN0QjtJQUVBRSxpQkFBaUI7UUFDZixNQUFNQyxlQUFlO1FBRXJCLE9BQU9BO0lBQ1Q7SUFFQUMsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUN0QyxNQUFNQyxPQUFPRixPQUFPLENBQUMsSUFBSSxDQUFDTCxRQUFRLENBQUMsRUFDN0JRLFlBQVlELEtBQUtILFdBQVcsQ0FBQ0MsU0FBU0M7UUFFNUMsT0FBT0U7SUFDVDtJQUVBQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTU4sT0FBT0ksTUFBTUcsUUFBUSxDQUFDLElBQUksQ0FBQ2QsUUFBUTtRQUV6QyxJQUFJTyxTQUFTLE1BQU07WUFDakIsT0FBT007UUFDVDtRQUVBLE9BQU9OLEtBQUtFLEtBQUssQ0FBQ0MsT0FBT0MsT0FBT0MsU0FBU0M7SUFDM0M7SUFFQUUsV0FBVztRQUNULE1BQU1DLFNBQVMsR0FBRyxJQUFJLENBQUNoQixRQUFRLEVBQUU7UUFFakMsT0FBT2dCO0lBQ1Q7SUFFQSxPQUFPQyxhQUFhakIsUUFBUSxFQUFFO1FBQzVCLE1BQU1ELE9BQU9tQiwyQkFBZ0IsRUFDdkJmLGVBQWUsSUFBSU4sYUFBYUUsTUFBTUM7UUFFNUMsT0FBT0c7SUFDVDtBQUNGIn0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3J1bGVOYW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L25vblRlcm1pbmFsXCI7XG5cbmltcG9ydCB7IFJ1bGVOYW1lUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGVOYW1lUGFydCBleHRlbmRzIE5vblRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHR5cGUsIHJ1bGVOYW1lKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnJ1bGVOYW1lID0gcnVsZU5hbWU7XG4gIH1cblxuICBnZXRSdWxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTmFtZTtcbiAgfVxuXG4gIGlzUnVsZU5hbWVQYXJ0KCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lUGFydCA9IHRydWU7XG5cbiAgICByZXR1cm4gcnVsZU5hbWVQYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHtcbiAgICBjb25zdCBydWxlID0gcnVsZU1hcFt0aGlzLnJ1bGVOYW1lXSB8fCBudWxsO1xuXG4gICAgaWYgKHJ1bGUgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgICcke3RoaXMucnVsZU5hbWV9JyBydWxlIGlzIG1pc3NpbmcuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uc3VtaW5nID0gcnVsZS5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpO1xuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHJ1bGUgPSBzdGF0ZS5maW5kUnVsZSh0aGlzLnJ1bGVOYW1lKTtcblxuICAgIGlmIChydWxlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIHJldHVybiBydWxlLnBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBgJHt0aGlzLnJ1bGVOYW1lfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZShydWxlTmFtZSkge1xuICAgIGNvbnN0IHR5cGUgPSBSdWxlTmFtZVBhcnRUeXBlLFxuICAgICAgICAgIHJ1bGVOYW1lUGFydCA9IG5ldyBSdWxlTmFtZVBhcnQodHlwZSwgcnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHJ1bGVOYW1lUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlJ1bGVOYW1lUGFydCIsIk5vblRlcm1pbmFsUGFydCIsInR5cGUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiaXNSdWxlTmFtZVBhcnQiLCJydWxlTmFtZVBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJydWxlIiwiRXJyb3IiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImZpbmRSdWxlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJmcm9tUnVsZU5hbWUiLCJSdWxlTmFtZVBhcnRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O29FQUpPOzJCQUVLOzs7Ozs7QUFFbEIsTUFBTUEscUJBQXFCQyxvQkFBZTtJQUN2RCxZQUFZQyxJQUFJLEVBQUVDLFFBQVEsQ0FBRTtRQUMxQixLQUFLLENBQUNEO1FBRU4sSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsUUFBUTtJQUN0QjtJQUVBRSxpQkFBaUI7UUFDZixNQUFNQyxlQUFlO1FBRXJCLE9BQU9BO0lBQ1Q7SUFFQUMsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUN0QyxNQUFNQyxPQUFPRixPQUFPLENBQUMsSUFBSSxDQUFDTCxRQUFRLENBQUMsSUFBSTtRQUV2QyxJQUFJTyxRQUFRLE1BQU07WUFDaEIsTUFBTSxJQUFJQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQ1IsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1FBQzVEO1FBRUEsTUFBTVMsWUFBWUYsS0FBS0gsV0FBVyxDQUFDQyxTQUFTQztRQUU1QyxPQUFPRztJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNUCxPQUFPSyxNQUFNRyxRQUFRLENBQUMsSUFBSSxDQUFDZixRQUFRO1FBRXpDLElBQUlPLFNBQVMsTUFBTTtZQUNqQixPQUFPTztRQUNUO1FBRUEsT0FBT1AsS0FBS0csS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxTQUFTQztJQUMzQztJQUVBRSxXQUFXO1FBQ1QsTUFBTUMsU0FBUyxHQUFHLElBQUksQ0FBQ2pCLFFBQVEsRUFBRTtRQUVqQyxPQUFPaUI7SUFDVDtJQUVBLE9BQU9DLGFBQWFsQixRQUFRLEVBQUU7UUFDNUIsTUFBTUQsT0FBT29CLDJCQUFnQixFQUN2QmhCLGVBQWUsSUFBSU4sYUFBYUUsTUFBTUM7UUFFNUMsT0FBT0c7SUFDVDtBQUNGIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-parsers",
3
3
  "author": "James Smith",
4
- "version": "23.3.66",
4
+ "version": "23.3.67",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-parsers",
7
7
  "description": "Occam's parsers.",
@@ -22,8 +22,13 @@ export default class RuleNamePart extends NonTerminalPart {
22
22
  }
23
23
 
24
24
  isConsuming(ruleMap, visitedRules = []) {
25
- const rule = ruleMap[this.ruleName],
26
- consuming = rule.isConsuming(ruleMap, visitedRules);
25
+ const rule = ruleMap[this.ruleName] || null;
26
+
27
+ if (rule == null) {
28
+ throw new Error(`The '${this.ruleName}' rule is missing.`);
29
+ }
30
+
31
+ const consuming = rule.isConsuming(ruleMap, visitedRules);
27
32
 
28
33
  return consuming;
29
34
  }