occam-parsers 23.3.65 → 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.
Files changed (39) hide show
  1. package/lib/definition.js +10 -1
  2. package/lib/part/nonTerminal/branchingParts.js +10 -1
  3. package/lib/part/nonTerminal/choiceOfParts.js +10 -1
  4. package/lib/part/nonTerminal/isolatedPart.js +4 -1
  5. package/lib/part/nonTerminal/oneOrMoreParts.js +4 -1
  6. package/lib/part/nonTerminal/optionalPart.js +5 -1
  7. package/lib/part/nonTerminal/ruleName.js +9 -1
  8. package/lib/part/nonTerminal/sequenceOfParts.js +10 -1
  9. package/lib/part/nonTerminal/zeroOrMoreParts.js +5 -1
  10. package/lib/part/terminal/cut.js +5 -1
  11. package/lib/part/terminal/endOfLine.js +5 -1
  12. package/lib/part/terminal/epsilon.js +5 -1
  13. package/lib/part/terminal/noWhitespace.js +5 -1
  14. package/lib/part/terminal/regularExpression.js +5 -1
  15. package/lib/part/terminal/significantTokenType.js +5 -1
  16. package/lib/part/terminal/stringLiteral.js +5 -1
  17. package/lib/part/terminal/wildcard.js +5 -1
  18. package/lib/partChoice.js +4 -1
  19. package/lib/rule.js +32 -1
  20. package/package.json +1 -1
  21. package/src/definition.js +12 -0
  22. package/src/part/nonTerminal/branchingParts.js +12 -0
  23. package/src/part/nonTerminal/choiceOfParts.js +12 -0
  24. package/src/part/nonTerminal/isolatedPart.js +2 -0
  25. package/src/part/nonTerminal/oneOrMoreParts.js +2 -0
  26. package/src/part/nonTerminal/optionalPart.js +6 -0
  27. package/src/part/nonTerminal/ruleName.js +12 -0
  28. package/src/part/nonTerminal/sequenceOfParts.js +12 -0
  29. package/src/part/nonTerminal/zeroOrMoreParts.js +6 -0
  30. package/src/part/terminal/cut.js +6 -0
  31. package/src/part/terminal/endOfLine.js +6 -0
  32. package/src/part/terminal/epsilon.js +6 -0
  33. package/src/part/terminal/noWhitespace.js +6 -0
  34. package/src/part/terminal/regularExpression.js +6 -0
  35. package/src/part/terminal/significantTokenType.js +6 -0
  36. package/src/part/terminal/stringLiteral.js +6 -0
  37. package/src/part/terminal/wildcard.js +6 -0
  38. package/src/partChoice.js +2 -0
  39. package/src/rule.js +45 -0
package/lib/definition.js CHANGED
@@ -66,6 +66,15 @@ class Definition {
66
66
  getPrecedence() {
67
67
  return this.precedence;
68
68
  }
69
+ isConsuming(ruleMap, visitedRules) {
70
+ const consuming = this.parts.some((part)=>{
71
+ const consuming = part.isConsuming(ruleMap, visitedRules);
72
+ if (consuming) {
73
+ return true;
74
+ }
75
+ });
76
+ return consuming;
77
+ }
69
78
  parse(rule, frame, state, forward, back) {
70
79
  const savedFrame = frame, branching = state.isBranching(), every = branching ? _branching.every : _linear.every;
71
80
  return every(this.parts, (part, frame, state, forward, back)=>{
@@ -134,4 +143,4 @@ function nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame,
134
143
  return nonTerminalNode;
135
144
  }
136
145
 
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjaGFyYWN0ZXJzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBsaW5lYXJFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBicmFuY2hpbmdFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFRSQU5TUEFSRU5UX1BSRUNFREVOQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBTUEFDRV9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlZmluaXRpb24ge1xuICBjb25zdHJ1Y3RvcihwYXJ0cywgcHJlY2VkZW5jZSkge1xuICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBwcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydHM7XG4gIH1cblxuICBnZXRQcmVjZWRlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnByZWNlZGVuY2U7XG4gIH1cblxuICBwYXJzZShydWxlLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzYXZlZEZyYW1lID0gZnJhbWUsIC8vL1xuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgZXZlcnkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICBicmFuY2hpbmdFdmVyeSA6XG4gICAgICAgICAgICAgICAgICAgICAgbGluZWFyRXZlcnk7XG5cbiAgICByZXR1cm4gZXZlcnkodGhpcy5wYXJ0cywgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBlbXB0eUZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXM7ICAvLy9cblxuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKTsgIC8vL1xuXG4gICAgICBpZiAoZnJhbWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIGNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpLFxuICAgICAgICAgIHVucGFsYXRhYmxlID0gbm9uVGVybWluYWxOb2RlLmlzVW5wYWxhdGFibGUoKTtcblxuICAgIGlmICh1bnBhbGF0YWJsZSkge1xuICAgICAgZnJhbWUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGUgPSBub25UZXJtaW5hbE5vZGU7ICAvLy9cblxuICAgICAgZnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7IC8vL1xuXG4gICAgICBmcmFtZSA9IHNhdmVkRnJhbWUubWVyZ2UoZnJhbWUpOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgY29uc3QgcGFydHNTdHJpbmcgPSB0aGlzLnBhcnRzLnJlZHVjZSgocGFydHNTdHJpbmcsIHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IHBhcnRTdHJpbmcgPSBwYXJ0LmFzU3RyaW5nKCk7XG5cbiAgICAgIGlmIChwYXJ0c1N0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSB7XG4gICAgICAgIHBhcnRzU3RyaW5nID0gcGFydFN0cmluZzsgLy8vXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJ0c1N0cmluZyA9IGAke3BhcnRzU3RyaW5nfSAke3BhcnRTdHJpbmd9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhcnRzU3RyaW5nO1xuICAgIH0sIEVNUFRZX1NUUklORyk7XG5cbiAgICBzdHJpbmcgPSBwYXJ0c1N0cmluZzsgLy8vXG5cbiAgICBpZiAodGhpcy5wcmVjZWRlbmNlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBwcmVjZWRlbmNlID0gKHRoaXMucHJlY2VkZW5jZSA9PT0gVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BBQ0VfQ0hBUkFDVEVSIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVjZWRlbmNlO1xuXG4gICAgICBzdHJpbmcgPSBgJHtzdHJpbmd9ICgke3ByZWNlZGVuY2V9KWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHMoQ2xhc3MsIHBhcnRzKSB7XG4gICAgaWYgKHBhcnRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnRzID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBEZWZpbml0aW9uOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBkZWZpbml0aW9uID0gbmV3IENsYXNzKHBhcnRzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0c0FuZFByZWNlZGVuY2UoQ2xhc3MsIHBhcnRzLCBwcmVjZWRlbmNlKSB7XG4gICAgaWYgKHByZWNlZGVuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJlY2VkZW5jZSA9IHBhcnRzOyAvLy9cblxuICAgICAgcGFydHMgPSBDbGFzczsgIC8vL1xuXG4gICAgICBDbGFzcyA9IERlZmluaXRpb247IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb24gPSBuZXcgQ2xhc3MocGFydHMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpIHtcbiAgbGV0IG5vblRlcm1pbmFsTm9kZTtcblxuICBjb25zdCBvcGFjaXR5ID0gcnVsZS5nZXRPcGFjaXR5KCksXG4gICAgICAgIHJ1bGVOYW1lID0gcnVsZS5nZXROYW1lKCksXG4gICAgICAgIGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHByZWNlZGVuY2UgPSBmcmFtZS5nZXRQcmVjZWRlbmNlKGRlZmluaXRpb24pLFxuICAgICAgICBOb25UZXJtaW5hbE5vZGUgPSBzdGF0ZS5Ob25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZS5yZXdyaXRlKHN0YXRlKTtcblxuICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xufVxuIl0sIm5hbWVzIjpbIkRlZmluaXRpb24iLCJTUEFDRV9DSEFSQUNURVIiLCJjaGFyYWN0ZXJzIiwicGFydHMiLCJwcmVjZWRlbmNlIiwiZ2V0UGFydHMiLCJnZXRQcmVjZWRlbmNlIiwicGFyc2UiLCJydWxlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwic2F2ZWRGcmFtZSIsImJyYW5jaGluZyIsImlzQnJhbmNoaW5nIiwiZXZlcnkiLCJicmFuY2hpbmdFdmVyeSIsImxpbmVhckV2ZXJ5IiwicGFydCIsImVtcHR5RnJhbWUiLCJkZWZpbml0aW9uIiwiY29tcG9zZSIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUZyb21SdWxlRGVmaW5pdGlvbkZyYW1lQW5kU3RhdGUiLCJ1bnBhbGF0YWJsZSIsImlzVW5wYWxhdGFibGUiLCJjaGlsZE5vZGUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJtZXJnZSIsImFzU3RyaW5nIiwic3RyaW5nIiwicGFydHNTdHJpbmciLCJyZWR1Y2UiLCJwYXJ0U3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwiVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSIsImZyb21QYXJ0cyIsIkNsYXNzIiwidW5kZWZpbmVkIiwiZnJvbVBhcnRzQW5kUHJlY2VkZW5jZSIsIm9wYWNpdHkiLCJnZXRPcGFjaXR5IiwicnVsZU5hbWUiLCJnZXROYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJOb25UZXJtaW5hbE5vZGUiLCJOb25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkiLCJyZXdyaXRlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQXFCQTs7OzJCQVhNOytEQUVUO3dCQUdvQjsyQkFDRzsyQkFDWTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJELE1BQU0sRUFBRUMsZUFBZSxF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
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjaGFyYWN0ZXJzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBsaW5lYXJFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBicmFuY2hpbmdFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFRSQU5TUEFSRU5UX1BSRUNFREVOQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBTUEFDRV9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlZmluaXRpb24ge1xuICBjb25zdHJ1Y3RvcihwYXJ0cywgcHJlY2VkZW5jZSkge1xuICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBwcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydHM7XG4gIH1cblxuICBnZXRQcmVjZWRlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnByZWNlZGVuY2U7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0aGlzLnBhcnRzLnNvbWUoKHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnN1bWluZyA9IHBhcnQuaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzKTtcblxuICAgICAgaWYgKGNvbnN1bWluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShydWxlLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzYXZlZEZyYW1lID0gZnJhbWUsIC8vL1xuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgZXZlcnkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICBicmFuY2hpbmdFdmVyeSA6XG4gICAgICAgICAgICAgICAgICAgICAgbGluZWFyRXZlcnk7XG5cbiAgICByZXR1cm4gZXZlcnkodGhpcy5wYXJ0cywgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBlbXB0eUZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXM7ICAvLy9cblxuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKTsgIC8vL1xuXG4gICAgICBpZiAoZnJhbWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIGNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpLFxuICAgICAgICAgIHVucGFsYXRhYmxlID0gbm9uVGVybWluYWxOb2RlLmlzVW5wYWxhdGFibGUoKTtcblxuICAgIGlmICh1bnBhbGF0YWJsZSkge1xuICAgICAgZnJhbWUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGUgPSBub25UZXJtaW5hbE5vZGU7ICAvLy9cblxuICAgICAgZnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7IC8vL1xuXG4gICAgICBmcmFtZSA9IHNhdmVkRnJhbWUubWVyZ2UoZnJhbWUpOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgY29uc3QgcGFydHNTdHJpbmcgPSB0aGlzLnBhcnRzLnJlZHVjZSgocGFydHNTdHJpbmcsIHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IHBhcnRTdHJpbmcgPSBwYXJ0LmFzU3RyaW5nKCk7XG5cbiAgICAgIGlmIChwYXJ0c1N0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSB7XG4gICAgICAgIHBhcnRzU3RyaW5nID0gcGFydFN0cmluZzsgLy8vXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJ0c1N0cmluZyA9IGAke3BhcnRzU3RyaW5nfSAke3BhcnRTdHJpbmd9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhcnRzU3RyaW5nO1xuICAgIH0sIEVNUFRZX1NUUklORyk7XG5cbiAgICBzdHJpbmcgPSBwYXJ0c1N0cmluZzsgLy8vXG5cbiAgICBpZiAodGhpcy5wcmVjZWRlbmNlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBwcmVjZWRlbmNlID0gKHRoaXMucHJlY2VkZW5jZSA9PT0gVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BBQ0VfQ0hBUkFDVEVSIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVjZWRlbmNlO1xuXG4gICAgICBzdHJpbmcgPSBgJHtzdHJpbmd9ICgke3ByZWNlZGVuY2V9KWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHMoQ2xhc3MsIHBhcnRzKSB7XG4gICAgaWYgKHBhcnRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnRzID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBEZWZpbml0aW9uOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBkZWZpbml0aW9uID0gbmV3IENsYXNzKHBhcnRzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0c0FuZFByZWNlZGVuY2UoQ2xhc3MsIHBhcnRzLCBwcmVjZWRlbmNlKSB7XG4gICAgaWYgKHByZWNlZGVuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJlY2VkZW5jZSA9IHBhcnRzOyAvLy9cblxuICAgICAgcGFydHMgPSBDbGFzczsgIC8vL1xuXG4gICAgICBDbGFzcyA9IERlZmluaXRpb247IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb24gPSBuZXcgQ2xhc3MocGFydHMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpIHtcbiAgbGV0IG5vblRlcm1pbmFsTm9kZTtcblxuICBjb25zdCBvcGFjaXR5ID0gcnVsZS5nZXRPcGFjaXR5KCksXG4gICAgICAgIHJ1bGVOYW1lID0gcnVsZS5nZXROYW1lKCksXG4gICAgICAgIGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHByZWNlZGVuY2UgPSBmcmFtZS5nZXRQcmVjZWRlbmNlKGRlZmluaXRpb24pLFxuICAgICAgICBOb25UZXJtaW5hbE5vZGUgPSBzdGF0ZS5Ob25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZS5yZXdyaXRlKHN0YXRlKTtcblxuICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xufVxuIl0sIm5hbWVzIjpbIkRlZmluaXRpb24iLCJTUEFDRV9DSEFSQUNURVIiLCJjaGFyYWN0ZXJzIiwicGFydHMiLCJwcmVjZWRlbmNlIiwiZ2V0UGFydHMiLCJnZXRQcmVjZWRlbmNlIiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY29uc3VtaW5nIiwic29tZSIsInBhcnQiLCJwYXJzZSIsInJ1bGUiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzYXZlZEZyYW1lIiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJldmVyeSIsImJyYW5jaGluZ0V2ZXJ5IiwibGluZWFyRXZlcnkiLCJlbXB0eUZyYW1lIiwiZGVmaW5pdGlvbiIsImNvbXBvc2UiLCJub25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVGcm9tUnVsZURlZmluaXRpb25GcmFtZUFuZFN0YXRlIiwidW5wYWxhdGFibGUiLCJpc1VucGFsYXRhYmxlIiwiY2hpbGROb2RlIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2RlIiwibWVyZ2UiLCJhc1N0cmluZyIsInN0cmluZyIsInBhcnRzU3RyaW5nIiwicmVkdWNlIiwicGFydFN0cmluZyIsIkVNUFRZX1NUUklORyIsIlRSQU5TUEFSRU5UX1BSRUNFREVOQ0UiLCJmcm9tUGFydHMiLCJDbGFzcyIsInVuZGVmaW5lZCIsImZyb21QYXJ0c0FuZFByZWNlZGVuY2UiLCJvcGFjaXR5IiwiZ2V0T3BhY2l0eSIsInJ1bGVOYW1lIiwiZ2V0TmFtZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiTm9uVGVybWluYWxOb2RlIiwiTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5IiwicmV3cml0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFxQkE7OzsyQkFYTTsrREFFVDt3QkFHb0I7MkJBQ0c7MkJBQ1k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRCxNQUFNLEVBQUVDLGVBQWUsRUFBRSxHQUFHQyxxQkFBVTtBQUV2QixNQUFNRjtJQUNuQixZQUFZRyxLQUFLLEVBQUVDLFVBQVUsQ0FBRTtRQUM3QixJQUFJLENBQUNELEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO0lBQ25CO0lBRUFHLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRixVQUFVO0lBQ3hCO0lBRUFHLFlBQVlDLE9BQU8sRUFBRUMsWUFBWSxFQUFFO1FBQ2pDLE1BQU1DLFlBQVksSUFBSSxDQUFDUCxLQUFLLENBQUNRLElBQUksQ0FBQyxDQUFDQztZQUNqQyxNQUFNRixZQUFZRSxLQUFLTCxXQUFXLENBQUNDLFNBQVNDO1lBRTVDLElBQUlDLFdBQVc7Z0JBQ2IsT0FBTztZQUNUO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFHLE1BQU1DLElBQUksRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ3ZDLE1BQU1DLGFBQWFKLE9BQ2JLLFlBQVlKLE1BQU1LLFdBQVcsSUFDN0JDLFFBQVFGLFlBQ0VHLGdCQUFjLEdBQ1pDLGFBQVc7UUFFN0IsT0FBT0YsTUFBTSxJQUFJLENBQUNuQixLQUFLLEVBQUUsQ0FBQ1MsTUFBTUcs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
@@ -29,6 +29,15 @@ class BranchingPartsPart extends _nonTerminal.default {
29
29
  getParts() {
30
30
  return this.parts;
31
31
  }
32
+ isConsuming(ruleMap, visitedRules = []) {
33
+ const consuming = this.parts.some((part)=>{
34
+ const consuming = part.isConsuming(ruleMap, visitedRules);
35
+ if (consuming) {
36
+ return true;
37
+ }
38
+ });
39
+ return consuming;
40
+ }
32
41
  parse(frame, state, forward, back) {
33
42
  const savedFrame = frame; ///
34
43
  state = state.branch(); ///
@@ -52,4 +61,4 @@ class BranchingPartsPart extends _nonTerminal.default {
52
61
  }
53
62
  }
54
63
 
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2JyYW5jaGluZ1BhcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L25vblRlcm1pbmFsXCI7XG5cbmltcG9ydCB7IGVtcHR5RnJhbWUgfSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCB7IGluY2Vzc2FudGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IEJyYW5jaGluZ1BhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBicmFuY2hpbmdFdmVyeSAgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2JyYW5jaGluZ1wiO1xuXG5jb25zdCB7IGZpcnN0LCBsYXN0IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgb3BlbkJyYWNrZXQsIGNsb3NlQnJhY2tldCwgZWxsaXBzaXMgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCcmFuY2hpbmdQYXJ0c1BhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0cykge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5wYXJ0cyA9IHBhcnRzO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydHM7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzYXZlZEZyYW1lID0gZnJhbWU7IC8vL1xuXG4gICAgc3RhdGUgPSBzdGF0ZS5icmFuY2goKTsgLy8vXG5cbiAgICBpbmNlc3NhbnRseShcbiAgICAgIChmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgICAgcmV0dXJuIGJyYW5jaGluZ0V2ZXJ5KHRoaXMucGFydHMsIChwYXJ0LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgICAgICByZXR1cm4gcGFydC5wYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICAgICAgICB9LCBlbXB0eUZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaylcbiAgICAgIH0sXG4gICAgICBmcmFtZSxcbiAgICAgIHN0YXRlLFxuICAgICAgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShzYXZlZEZyYW1lLCBmcmFtZSk7XG5cbiAgICAgICAgc3RhdGUgPSBzdGF0ZS5wcnVuZSgpOyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICAgIH0sXG4gICAgICBiYWNrXG4gICAgKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IGZpcnN0UGFydCA9IGZpcnN0KHRoaXMucGFydHMpLFxuICAgICAgICAgIGxhc3RQYXJ0ID0gbGFzdCh0aGlzLnBhcnRzKSxcbiAgICAgICAgICBmaXJzdFBhcnRTdHJpbmcgPSBmaXJzdFBhcnQuYXNTdHJpbmcoKSxcbiAgICAgICAgICBsYXN0UGFydFN0cmluZyA9IGxhc3RQYXJ0LmFzU3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gYCR7b3BlbkJyYWNrZXR9ICR7Zmlyc3RQYXJ0U3RyaW5nfSAke2VsbGlwc2lzfSAke2xhc3RQYXJ0U3RyaW5nfSAke2Nsb3NlQnJhY2tldH1gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHMocGFydHMpIHtcbiAgICBjb25zdCB0eXBlID0gQnJhbmNoaW5nUGFydHNQYXJ0VHlwZSxcbiAgICAgICAgICBicmFuY2hpbmdQYXJ0c1BhcnQgPSBuZXcgQnJhbmNoaW5nUGFydHNQYXJ0KHR5cGUsIHBhcnRzKTtcblxuICAgIHJldHVybiBicmFuY2hpbmdQYXJ0c1BhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJCcmFuY2hpbmdQYXJ0c1BhcnQiLCJmaXJzdCIsImxhc3QiLCJhcnJheVV0aWxpdGllcyIsIm9wZW5CcmFja2V0IiwiY2xvc2VCcmFja2V0IiwiZWxsaXBzaXMiLCJzcGVjaWFsU3ltYm9scyIsIk5vblRlcm1pbmFsUGFydCIsInR5cGUiLCJwYXJ0cyIsImdldFBhcnRzIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzYXZlZEZyYW1lIiwiYnJhbmNoIiwiaW5jZXNzYW50bHkiLCJicmFuY2hpbmdFdmVyeSIsInBhcnQiLCJlbXB0eUZyYW1lIiwiY29tcG9zZSIsInBydW5lIiwiYXNTdHJpbmciLCJmaXJzdFBhcnQiLCJsYXN0UGFydCIsImZpcnN0UGFydFN0cmluZyIsImxhc3RQYXJ0U3RyaW5nIiwic3RyaW5nIiwiZnJvbVBhcnRzIiwiQnJhbmNoaW5nUGFydHNQYXJ0VHlwZSIsImJyYW5jaGluZ1BhcnRzUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZUE7OztlQUFxQkE7OzsyQkFiVTs2QkFDQTtvRUFFSDt1QkFFRDt3QkFDQzsyQkFDVzsyQkFDRTs7Ozs7O0FBRXpDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUUsR0FBR0MseUJBQWMsRUFDaEMsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLEVBQUVDLFFBQVEsRUFBRSxHQUFHQywyQkFBYztBQUUvQyxNQUFNUCwyQkFBMkJRLG9CQUFlO0lBQzdELFlBQVlDLElBQUksRUFBRUMsS0FBSyxDQUFFO1FBQ3ZCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFKLE9BQU8sR0FBRztRQUU3QkMsUUFBUUEsTUFBTUksTUFBTSxJQUFJLEdBQUc7UUFFM0JDLElBQUFBLG1CQUFXLEVBQ1QsQ0FBQ04sT0FBT0MsT0FBT0MsU0FBU0M7WUFDdEIsT0FBT0ksSUFBQUEsZ0JBQWMsRUFBQyxJQUFJLENBQUNWLEtBQUssRUFBRSxDQUFDVyxNQUFNUixPQUFPQyxPQUFPQyxTQUFTQztnQkFDOUQsT0FBT0ssS0FBS1QsS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxTQUFTQztZQUMzQyxHQUFHTSxpQkFBVSxFQUFFUixPQUFPQyxTQUFTQztRQUNqQyxHQUNBSCxPQUNBQyxPQUNBLENBQUNELE9BQU9DLE9BQU9FO1lBQ2JILFFBQVEsSUFBSSxDQUFDVSxPQUFPLENBQUNOLFlBQVlKO1lBRWpDQyxRQUFRQSxNQUFNVSxLQUFLLElBQUssR0FBRztZQUUzQixPQUFPVCxRQUFRRixPQUFPQyxPQUFPRTtRQUMvQixHQUNBQTtJQUVKO0lBRUFTLFdBQVc7UUFDVCxNQUFNQyxZQUFZekIsTUFBTSxJQUFJLENBQUNTLEtBQUssR0FDNUJpQixXQUFXekIsS0FBSyxJQUFJLENBQUNRLEtBQUssR0FDMUJrQixrQkFBa0JGLFVBQVVELFFBQVEsSUFDcENJLGlCQUFpQkYsU0FBU0YsUUFBUSxJQUNsQ0ssU0FBUyxHQUFHMUIsWUFBWSxDQUFDLEVBQUV3QixnQkFBZ0IsQ0FBQyxFQUFFdEIsU0FBUyxDQUFDLEVBQUV1QixlQUFlLENBQUMsRUFBRXhCLGNBQWM7UUFFaEcsT0FBT3lCO0lBQ1Q7SUFFQSxPQUFPQyxVQUFVckIsS0FBSyxFQUFFO1FBQ3RCLE1BQU1ELE9BQU91QixpQ0FBc0IsRUFDN0JDLHFCQUFxQixJQUFJakMsbUJBQW1CUyxNQUFNQztRQUV4RCxPQUFPdUI7SUFDVDtBQUNGIn0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2JyYW5jaGluZ1BhcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L25vblRlcm1pbmFsXCI7XG5cbmltcG9ydCB7IGVtcHR5RnJhbWUgfSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCB7IGluY2Vzc2FudGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IEJyYW5jaGluZ1BhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBicmFuY2hpbmdFdmVyeSAgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2JyYW5jaGluZ1wiO1xuXG5jb25zdCB7IGZpcnN0LCBsYXN0IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgb3BlbkJyYWNrZXQsIGNsb3NlQnJhY2tldCwgZWxsaXBzaXMgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCcmFuY2hpbmdQYXJ0c1BhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0cykge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5wYXJ0cyA9IHBhcnRzO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydHM7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnN1bWluZyA9IHRoaXMucGFydHMuc29tZSgocGFydCkgPT4ge1xuICAgICAgY29uc3QgY29uc3VtaW5nID0gcGFydC5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpO1xuXG4gICAgICBpZiAoY29uc3VtaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHNhdmVkRnJhbWUgPSBmcmFtZTsgLy8vXG5cbiAgICBzdGF0ZSA9IHN0YXRlLmJyYW5jaCgpOyAvLy9cblxuICAgIGluY2Vzc2FudGx5KFxuICAgICAgKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgICByZXR1cm4gYnJhbmNoaW5nRXZlcnkodGhpcy5wYXJ0cywgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgICAgIHJldHVybiBwYXJ0LnBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gICAgICAgIH0sIGVtcHR5RnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKVxuICAgICAgfSxcbiAgICAgIGZyYW1lLFxuICAgICAgc3RhdGUsXG4gICAgICAoZnJhbWUsIHN0YXRlLCBiYWNrKSA9PiB7XG4gICAgICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKHNhdmVkRnJhbWUsIGZyYW1lKTtcblxuICAgICAgICBzdGF0ZSA9IHN0YXRlLnBydW5lKCk7ICAvLy9cblxuICAgICAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICAgICAgfSxcbiAgICAgIGJhY2tcbiAgICApO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgZmlyc3RQYXJ0ID0gZmlyc3QodGhpcy5wYXJ0cyksXG4gICAgICAgICAgbGFzdFBhcnQgPSBsYXN0KHRoaXMucGFydHMpLFxuICAgICAgICAgIGZpcnN0UGFydFN0cmluZyA9IGZpcnN0UGFydC5hc1N0cmluZygpLFxuICAgICAgICAgIGxhc3RQYXJ0U3RyaW5nID0gbGFzdFBhcnQuYXNTdHJpbmcoKSxcbiAgICAgICAgICBzdHJpbmcgPSBgJHtvcGVuQnJhY2tldH0gJHtmaXJzdFBhcnRTdHJpbmd9ICR7ZWxsaXBzaXN9ICR7bGFzdFBhcnRTdHJpbmd9ICR7Y2xvc2VCcmFja2V0fWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0cyhwYXJ0cykge1xuICAgIGNvbnN0IHR5cGUgPSBCcmFuY2hpbmdQYXJ0c1BhcnRUeXBlLFxuICAgICAgICAgIGJyYW5jaGluZ1BhcnRzUGFydCA9IG5ldyBCcmFuY2hpbmdQYXJ0c1BhcnQodHlwZSwgcGFydHMpO1xuXG4gICAgcmV0dXJuIGJyYW5jaGluZ1BhcnRzUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkJyYW5jaGluZ1BhcnRzUGFydCIsImZpcnN0IiwibGFzdCIsImFycmF5VXRpbGl0aWVzIiwib3BlbkJyYWNrZXQiLCJjbG9zZUJyYWNrZXQiLCJlbGxpcHNpcyIsInNwZWNpYWxTeW1ib2xzIiwiTm9uVGVybWluYWxQYXJ0IiwidHlwZSIsInBhcnRzIiwiZ2V0UGFydHMiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjb25zdW1pbmciLCJzb21lIiwicGFydCIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwic2F2ZWRGcmFtZSIsImJyYW5jaCIsImluY2Vzc2FudGx5IiwiYnJhbmNoaW5nRXZlcnkiLCJlbXB0eUZyYW1lIiwiY29tcG9zZSIsInBydW5lIiwiYXNTdHJpbmciLCJmaXJzdFBhcnQiLCJsYXN0UGFydCIsImZpcnN0UGFydFN0cmluZyIsImxhc3RQYXJ0U3RyaW5nIiwic3RyaW5nIiwiZnJvbVBhcnRzIiwiQnJhbmNoaW5nUGFydHNQYXJ0VHlwZSIsImJyYW5jaGluZ1BhcnRzUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZUE7OztlQUFxQkE7OzsyQkFiVTs2QkFDQTtvRUFFSDt1QkFFRDt3QkFDQzsyQkFDVzsyQkFDRTs7Ozs7O0FBRXpDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUUsR0FBR0MseUJBQWMsRUFDaEMsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLEVBQUVDLFFBQVEsRUFBRSxHQUFHQywyQkFBYztBQUUvQyxNQUFNUCwyQkFBMkJRLG9CQUFlO0lBQzdELFlBQVlDLElBQUksRUFBRUMsS0FBSyxDQUFFO1FBQ3ZCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUN0QyxNQUFNQyxZQUFZLElBQUksQ0FBQ0wsS0FBSyxDQUFDTSxJQUFJLENBQUMsQ0FBQ0M7WUFDakMsTUFBTUYsWUFBWUUsS0FBS0wsV0FBVyxDQUFDQyxTQUFTQztZQUU1QyxJQUFJQyxXQUFXO2dCQUNiLE9BQU87WUFDVDtRQUNGO1FBRUEsT0FBT0E7SUFDVDtJQUVBRyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUosT0FBTyxHQUFHO1FBRTdCQyxRQUFRQSxNQUFNSSxNQUFNLElBQUksR0FBRztRQUUzQkMsSUFBQUEsbUJBQVcsRUFDVCxDQUFDTixPQUFPQyxPQUFPQyxTQUFTQztZQUN0QixPQUFPSSxJQUFBQSxnQkFBYyxFQUFDLElBQUksQ0FBQ2hCLEtBQUssRUFBRSxDQUFDTyxNQUFNRSxPQUFPQyxPQUFPQyxTQUFTQztnQkFDOUQsT0FBT0wsS0FBS0MsS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxTQUFTQztZQUMzQyxHQUFHSyxpQkFBVSxFQUFFUCxPQUFPQyxTQUFTQztRQUNqQyxHQUNBSCxPQUNBQyxPQUNBLENBQUNELE9BQU9DLE9BQU9FO1lBQ2JILFFBQVEsSUFBSSxDQUFDUyxPQUFPLENBQUNMLFlBQVlKO1lBRWpDQyxRQUFRQSxNQUFNUyxLQUFLLElBQUssR0FBRztZQUUzQixPQUFPUixRQUFRRixPQUFPQyxPQUFPRTtRQUMvQixHQUNBQTtJQUVKO0lBRUFRLFdBQVc7UUFDVCxNQUFNQyxZQUFZOUIsTUFBTSxJQUFJLENBQUNTLEtBQUssR0FDNUJzQixXQUFXOUIsS0FBSyxJQUFJLENBQUNRLEtBQUssR0FDMUJ1QixrQkFBa0JGLFVBQVVELFFBQVEsSUFDcENJLGlCQUFpQkYsU0FBU0YsUUFBUSxJQUNsQ0ssU0FBUyxHQUFHL0IsWUFBWSxDQUFDLEVBQUU2QixnQkFBZ0IsQ0FBQyxFQUFFM0IsU0FBUyxDQUFDLEVBQUU0QixlQUFlLENBQUMsRUFBRTdCLGNBQWM7UUFFaEcsT0FBTzhCO0lBQ1Q7SUFFQSxPQUFPQyxVQUFVMUIsS0FBSyxFQUFFO1FBQ3RCLE1BQU1ELE9BQU80QixpQ0FBc0IsRUFDN0JDLHFCQUFxQixJQUFJdEMsbUJBQW1CUyxNQUFNQztRQUV4RCxPQUFPNEI7SUFDVDtBQUNGIn0=
@@ -32,6 +32,15 @@ class ChoiceOfPartsPart extends _nonTerminal.default {
32
32
  });
33
33
  return parts;
34
34
  }
35
+ isConsuming(ruleMap, visitedRules = []) {
36
+ const consuming = this.partChoices.every((partChoice)=>{
37
+ const consuming = partChoice.isConsuming(ruleMap, visitedRules);
38
+ if (consuming) {
39
+ return true;
40
+ }
41
+ });
42
+ return consuming;
43
+ }
35
44
  parse(frame, state, forward, back) {
36
45
  const branching = state.isBranching(), some = branching ? _branching.some : _linear.some;
37
46
  return some(this.partChoices, (partChoice, frame, state, forward, back)=>{
@@ -56,4 +65,4 @@ class ChoiceOfPartsPart extends _nonTerminal.default {
56
65
  }
57
66
  }
58
67
 
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2Nob2ljZU9mUGFydHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgc29tZSBhcyBsaW5lYXJTb21lIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IHNvbWUgYXMgYnJhbmNoaW5nU29tZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBDaG9pY2VPZlBhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENob2ljZU9mUGFydHNQYXJ0IGV4dGVuZHMgTm9uVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IodHlwZSwgcGFydENob2ljZXMpIHtcbiAgICBzdXBlcih0eXBlKTtcbiAgICBcbiAgICB0aGlzLnBhcnRDaG9pY2VzID0gcGFydENob2ljZXM7XG4gIH1cbiAgXG4gIGdldFBhcnRDaG9pY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnRDaG9pY2VzO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnBhcnRDaG9pY2VzLm1hcCgocGFydENob2ljZSkgPT4ge1xuICAgICAgY29uc3QgcGFydCA9IHBhcnRDaG9pY2UuZ2V0UGFydCgpO1xuXG4gICAgICByZXR1cm4gcGFydDtcbiAgICB9KTtcblxuICAgIHJldHVybiBwYXJ0cztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgc29tZSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nU29tZSA6XG4gICAgICAgICAgICAgICAgICAgICBsaW5lYXJTb21lO1xuXG4gICAgcmV0dXJuIHNvbWUodGhpcy5wYXJ0Q2hvaWNlcywgKHBhcnRDaG9pY2UsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnRDaG9pY2UucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgcGFydENob2ljZXNTdHJpbmcgPSB0aGlzLnBhcnRDaG9pY2VzLnJlZHVjZSgocGFydENob2ljZXNTdHJpbmcsIHBhcnRDaG9pY2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRDaG9pY2VTdHJpbmcgPSBwYXJ0Q2hvaWNlLmFzU3RyaW5nKCk7XG4gICAgXG4gICAgICAgICAgICBpZiAocGFydENob2ljZXNTdHJpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcGFydENob2ljZXNTdHJpbmcgPSBwYXJ0Q2hvaWNlU3RyaW5nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGFydENob2ljZXNTdHJpbmcgPSBgJHtwYXJ0Q2hvaWNlc1N0cmluZ30gfCAke3BhcnRDaG9pY2VTdHJpbmd9YDtcbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIHJldHVybiBwYXJ0Q2hvaWNlc1N0cmluZztcbiAgICAgICAgICB9LCBudWxsKSxcbiAgICAgICAgICBzdHJpbmcgPSBgKCAke3BhcnRDaG9pY2VzU3RyaW5nfSApYDtcbiAgICBcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0Q2hvaWNlcyhwYXJ0Q2hvaWNlcykge1xuICAgIGNvbnN0IHR5cGUgPSBDaG9pY2VPZlBhcnRzUGFydFR5cGUsXG4gICAgICAgICAgY2hvaWNlT2ZQYXJ0c1BhcnQgPSBuZXcgQ2hvaWNlT2ZQYXJ0c1BhcnQodHlwZSwgcGFydENob2ljZXMpO1xuXG4gICAgcmV0dXJuIGNob2ljZU9mUGFydHNQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiQ2hvaWNlT2ZQYXJ0c1BhcnQiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydENob2ljZXMiLCJnZXRQYXJ0Q2hvaWNlcyIsImdldFBhcnRzIiwicGFydHMiLCJtYXAiLCJwYXJ0Q2hvaWNlIiwicGFydCIsImdldFBhcnQiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImJyYW5jaGluZyIsImlzQnJhbmNoaW5nIiwic29tZSIsImJyYW5jaGluZ1NvbWUiLCJsaW5lYXJTb21lIiwiYXNTdHJpbmciLCJwYXJ0Q2hvaWNlc1N0cmluZyIsInJlZHVjZSIsInBhcnRDaG9pY2VTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydENob2ljZXMiLCJDaG9pY2VPZlBhcnRzUGFydFR5cGUiLCJjaG9pY2VPZlBhcnRzUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFxQkE7OztvRUFOTzt3QkFFTzsyQkFDRzsyQkFDQTs7Ozs7O0FBRXZCLE1BQU1BLDBCQUEwQkMsb0JBQWU7SUFDNUQsWUFBWUMsSUFBSSxFQUFFQyxXQUFXLENBQUU7UUFDN0IsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtJQUNyQjtJQUVBQyxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQ0QsV0FBVztJQUN6QjtJQUVBRSxXQUFXO1FBQ1QsTUFBTUMsUUFBUSxJQUFJLENBQUNILFdBQVcsQ0FBQ0ksR0FBRyxDQUFDLENBQUNDO1lBQ2xDLE1BQU1DLE9BQU9ELFdBQVdFLE9BQU87WUFFL0IsT0FBT0Q7UUFDVDtRQUVBLE9BQU9IO0lBQ1Q7SUFFQUssTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLFlBQVlILE1BQU1JLFdBQVcsSUFDN0JDLE9BQU9GLFlBQ0VHLGVBQWEsR0FDWEMsWUFBVTtRQUUzQixPQUFPRixLQUFLLElBQUksQ0FBQ2YsV0FBVyxFQUFFLENBQUNLLFlBQVlJLE9BQU9DLE9BQU9DLFNBQVNDO1lBQ2hFLE9BQU9QLFdBQVdHLEtBQUssQ0FBQ0MsT0FBT0MsT0FBT0MsU0FBU0M7UUFDakQsR0FBR0gsT0FBT0MsT0FBT0MsU0FBU0M7SUFDNUI7SUFFQU0sV0FBVztRQUNULE1BQU1DLG9CQUFvQixJQUFJLENBQUNuQixXQUFXLENBQUNvQixNQUFNLENBQUMsQ0FBQ0QsbUJBQW1CZDtZQUM5RCxNQUFNZ0IsbUJBQW1CaEIsV0FBV2EsUUFBUTtZQUU1QyxJQUFJQyxzQkFBc0IsTUFBTTtnQkFDOUJBLG9CQUFvQkU7WUFDdEIsT0FBTztnQkFDTEYsb0JBQW9CLEdBQUdBLGtCQUFrQixHQUFHLEVBQUVFLGtCQUFrQjtZQUNsRTtZQUVBLE9BQU9GO1FBQ1QsR0FBRyxPQUNIRyxTQUFTLENBQUMsRUFBRSxFQUFFSCxrQkFBa0IsRUFBRSxDQUFDO1FBRXpDLE9BQU9HO0lBQ1Q7SUFFQSxPQUFPQyxnQkFBZ0J2QixXQUFXLEVBQUU7UUFDbEMsTUFBTUQsT0FBT3lCLGdDQUFxQixFQUM1QkMsb0JBQW9CLElBQUk1QixrQkFBa0JFLE1BQU1DO1FBRXRELE9BQU95QjtJQUNUO0FBQ0YifQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2Nob2ljZU9mUGFydHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgc29tZSBhcyBsaW5lYXJTb21lIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IHNvbWUgYXMgYnJhbmNoaW5nU29tZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBDaG9pY2VPZlBhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENob2ljZU9mUGFydHNQYXJ0IGV4dGVuZHMgTm9uVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IodHlwZSwgcGFydENob2ljZXMpIHtcbiAgICBzdXBlcih0eXBlKTtcbiAgICBcbiAgICB0aGlzLnBhcnRDaG9pY2VzID0gcGFydENob2ljZXM7XG4gIH1cbiAgXG4gIGdldFBhcnRDaG9pY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnRDaG9pY2VzO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnBhcnRDaG9pY2VzLm1hcCgocGFydENob2ljZSkgPT4ge1xuICAgICAgY29uc3QgcGFydCA9IHBhcnRDaG9pY2UuZ2V0UGFydCgpO1xuXG4gICAgICByZXR1cm4gcGFydDtcbiAgICB9KTtcblxuICAgIHJldHVybiBwYXJ0cztcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gdGhpcy5wYXJ0Q2hvaWNlcy5ldmVyeSgocGFydENob2ljZSkgPT4ge1xuICAgICAgY29uc3QgY29uc3VtaW5nID0gcGFydENob2ljZS5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpO1xuXG4gICAgICBpZiAoY29uc3VtaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgc29tZSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nU29tZSA6XG4gICAgICAgICAgICAgICAgICAgICBsaW5lYXJTb21lO1xuXG4gICAgcmV0dXJuIHNvbWUodGhpcy5wYXJ0Q2hvaWNlcywgKHBhcnRDaG9pY2UsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnRDaG9pY2UucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgcGFydENob2ljZXNTdHJpbmcgPSB0aGlzLnBhcnRDaG9pY2VzLnJlZHVjZSgocGFydENob2ljZXNTdHJpbmcsIHBhcnRDaG9pY2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRDaG9pY2VTdHJpbmcgPSBwYXJ0Q2hvaWNlLmFzU3RyaW5nKCk7XG4gICAgXG4gICAgICAgICAgICBpZiAocGFydENob2ljZXNTdHJpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcGFydENob2ljZXNTdHJpbmcgPSBwYXJ0Q2hvaWNlU3RyaW5nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGFydENob2ljZXNTdHJpbmcgPSBgJHtwYXJ0Q2hvaWNlc1N0cmluZ30gfCAke3BhcnRDaG9pY2VTdHJpbmd9YDtcbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIHJldHVybiBwYXJ0Q2hvaWNlc1N0cmluZztcbiAgICAgICAgICB9LCBudWxsKSxcbiAgICAgICAgICBzdHJpbmcgPSBgKCAke3BhcnRDaG9pY2VzU3RyaW5nfSApYDtcbiAgICBcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0Q2hvaWNlcyhwYXJ0Q2hvaWNlcykge1xuICAgIGNvbnN0IHR5cGUgPSBDaG9pY2VPZlBhcnRzUGFydFR5cGUsXG4gICAgICAgICAgY2hvaWNlT2ZQYXJ0c1BhcnQgPSBuZXcgQ2hvaWNlT2ZQYXJ0c1BhcnQodHlwZSwgcGFydENob2ljZXMpO1xuXG4gICAgcmV0dXJuIGNob2ljZU9mUGFydHNQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiQ2hvaWNlT2ZQYXJ0c1BhcnQiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydENob2ljZXMiLCJnZXRQYXJ0Q2hvaWNlcyIsImdldFBhcnRzIiwicGFydHMiLCJtYXAiLCJwYXJ0Q2hvaWNlIiwicGFydCIsImdldFBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjb25zdW1pbmciLCJldmVyeSIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJzb21lIiwiYnJhbmNoaW5nU29tZSIsImxpbmVhclNvbWUiLCJhc1N0cmluZyIsInBhcnRDaG9pY2VzU3RyaW5nIiwicmVkdWNlIiwicGFydENob2ljZVN0cmluZyIsInN0cmluZyIsImZyb21QYXJ0Q2hvaWNlcyIsIkNob2ljZU9mUGFydHNQYXJ0VHlwZSIsImNob2ljZU9mUGFydHNQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXFCQTs7O29FQU5PO3dCQUVPOzJCQUNHOzJCQUNBOzs7Ozs7QUFFdkIsTUFBTUEsMEJBQTBCQyxvQkFBZTtJQUM1RCxZQUFZQyxJQUFJLEVBQUVDLFdBQVcsQ0FBRTtRQUM3QixLQUFLLENBQUNEO1FBRU4sSUFBSSxDQUFDQyxXQUFXLEdBQUdBO0lBQ3JCO0lBRUFDLGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDRCxXQUFXO0lBQ3pCO0lBRUFFLFdBQVc7UUFDVCxNQUFNQyxRQUFRLElBQUksQ0FBQ0gsV0FBVyxDQUFDSSxHQUFHLENBQUMsQ0FBQ0M7WUFDbEMsTUFBTUMsT0FBT0QsV0FBV0UsT0FBTztZQUUvQixPQUFPRDtRQUNUO1FBRUEsT0FBT0g7SUFDVDtJQUVBSyxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFO1FBQ3RDLE1BQU1DLFlBQVksSUFBSSxDQUFDWCxXQUFXLENBQUNZLEtBQUssQ0FBQyxDQUFDUDtZQUN4QyxNQUFNTSxZQUFZTixXQUFXRyxXQUFXLENBQUNDLFNBQVNDO1lBRWxELElBQUlDLFdBQVc7Z0JBQ2IsT0FBTztZQUNUO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFFLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxZQUFZSCxNQUFNSSxXQUFXLElBQzdCQyxPQUFPRixZQUNFRyxlQUFhLEdBQ1hDLFlBQVU7UUFFM0IsT0FBT0YsS0FBSyxJQUFJLENBQUNwQixXQUFXLEVBQUUsQ0FBQ0ssWUFBWVMsT0FBT0MsT0FBT0MsU0FBU0M7WUFDaEUsT0FBT1osV0FBV1EsS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxTQUFTQztRQUNqRCxHQUFHSCxPQUFPQyxPQUFPQyxTQUFTQztJQUM1QjtJQUVBTSxXQUFXO1FBQ1QsTUFBTUMsb0JBQW9CLElBQUksQ0FBQ3hCLFdBQVcsQ0FBQ3lCLE1BQU0sQ0FBQyxDQUFDRCxtQkFBbUJuQjtZQUM5RCxNQUFNcUIsbUJBQW1CckIsV0FBV2tCLFFBQVE7WUFFNUMsSUFBSUMsc0JBQXNCLE1BQU07Z0JBQzlCQSxvQkFBb0JFO1lBQ3RCLE9BQU87Z0JBQ0xGLG9CQUFvQixHQUFHQSxrQkFBa0IsR0FBRyxFQUFFRSxrQkFBa0I7WUFDbEU7WUFFQSxPQUFPRjtRQUNULEdBQUcsT0FDSEcsU0FBUyxDQUFDLEVBQUUsRUFBRUgsa0JBQWtCLEVBQUUsQ0FBQztRQUV6QyxPQUFPRztJQUNUO0lBRUEsT0FBT0MsZ0JBQWdCNUIsV0FBVyxFQUFFO1FBQ2xDLE1BQU1ELE9BQU84QixnQ0FBcUIsRUFDNUJDLG9CQUFvQixJQUFJakMsa0JBQWtCRSxNQUFNQztRQUV0RCxPQUFPOEI7SUFDVDtBQUNGIn0=
@@ -25,6 +25,9 @@ class IsolatedPartPart extends _nonTerminal.default {
25
25
  getPart() {
26
26
  return this.part;
27
27
  }
28
+ isConsuming(ruleMap, visitedRules = []) {
29
+ return this.part.isConsuming(ruleMap, visitedRules);
30
+ }
28
31
  parse(frame, state, forward, back) {
29
32
  return this.part.parse(frame, state, (frame, state, back)=>{
30
33
  frame = this.compose(frame);
@@ -46,4 +49,4 @@ class IsolatedPartPart extends _nonTerminal.default {
46
49
  }
47
50
  }
48
51
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2lzb2xhdGVkUGFydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBJU09MQVRFRF9QUkVDRURFTkNFIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSXNvbGF0ZWRQYXJ0UGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIElzb2xhdGVkUGFydFBhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0KSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnBhcnQgPSBwYXJ0O1xuICB9XG5cbiAgZ2V0UGFydCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0O1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydC5wYXJzZShmcmFtZSwgc3RhdGUsIChmcmFtZSwgc3RhdGUsIGJhY2spID0+IHtcbiAgICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKGZyYW1lKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIGNvbXBvc2UoZnJhbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gZnJhbWUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHByZWNlZGVuY2UgPSBJU09MQVRFRF9QUkVDRURFTkNFO1xuXG4gICAgZnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UoY2hpbGROb2RlcywgcHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBwYXJ0U3RyaW5nID0gdGhpcy5wYXJ0LmFzU3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gYCggJHtwYXJ0U3RyaW5nfSApYDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcnQocGFydCkge1xuICAgIGNvbnN0IHR5cGUgPSBJc29sYXRlZFBhcnRQYXJ0VHlwZSxcbiAgICAgICAgICBpc29sYXRlZFBhcnRQYXJ0ID0gbmV3IElzb2xhdGVkUGFydFBhcnQodHlwZSwgcGFydCk7XG5cbiAgICByZXR1cm4gaXNvbGF0ZWRQYXJ0UGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIklzb2xhdGVkUGFydFBhcnQiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydCIsImdldFBhcnQiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImNvbXBvc2UiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsInByZWNlZGVuY2UiLCJJU09MQVRFRF9QUkVDRURFTkNFIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIklzb2xhdGVkUGFydFBhcnRUeXBlIiwiaXNvbGF0ZWRQYXJ0UGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFxQkE7Ozs4REFOSDtvRUFDVTsyQkFFUTsyQkFDQzs7Ozs7O0FBRXRCLE1BQU1BLHlCQUF5QkMsb0JBQWU7SUFDM0QsWUFBWUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDdEIsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsT0FBTyxJQUFJLENBQUNOLElBQUksQ0FBQ0UsS0FBSyxDQUFDQyxPQUFPQyxPQUFPLENBQUNELE9BQU9DLE9BQU9FO1lBQ2xESCxRQUFRLElBQUksQ0FBQ0ksT0FBTyxDQUFDSjtZQUVyQixPQUFPRSxRQUFRRixPQUFPQyxPQUFPRTtRQUMvQixHQUFHQTtJQUNMO0lBRUFDLFFBQVFKLEtBQUssRUFBRTtRQUNiLE1BQU1LLGFBQWFMLE1BQU1NLGFBQWEsSUFDaENDLGFBQWFDLDhCQUFtQjtRQUV0Q1IsUUFBUVMsY0FBSyxDQUFDQywyQkFBMkIsQ0FBQ0wsWUFBWUU7UUFFdEQsT0FBT1A7SUFDVDtJQUVBVyxXQUFXO1FBQ1QsTUFBTUMsYUFBYSxJQUFJLENBQUNmLElBQUksQ0FBQ2MsUUFBUSxJQUMvQkUsU0FBUyxDQUFDLEVBQUUsRUFBRUQsV0FBVyxFQUFFLENBQUM7UUFFbEMsT0FBT0M7SUFDVDtJQUVBLE9BQU9DLFNBQVNqQixJQUFJLEVBQUU7UUFDcEIsTUFBTUQsT0FBT21CLCtCQUFvQixFQUMzQkMsbUJBQW1CLElBQUl0QixpQkFBaUJFLE1BQU1DO1FBRXBELE9BQU9tQjtJQUNUO0FBQ0YifQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2lzb2xhdGVkUGFydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBJU09MQVRFRF9QUkVDRURFTkNFIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSXNvbGF0ZWRQYXJ0UGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIElzb2xhdGVkUGFydFBhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0KSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnBhcnQgPSBwYXJ0O1xuICB9XG5cbiAgZ2V0UGFydCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHsgcmV0dXJuIHRoaXMucGFydC5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpOyB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydC5wYXJzZShmcmFtZSwgc3RhdGUsIChmcmFtZSwgc3RhdGUsIGJhY2spID0+IHtcbiAgICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKGZyYW1lKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIGNvbXBvc2UoZnJhbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gZnJhbWUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHByZWNlZGVuY2UgPSBJU09MQVRFRF9QUkVDRURFTkNFO1xuXG4gICAgZnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UoY2hpbGROb2RlcywgcHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBwYXJ0U3RyaW5nID0gdGhpcy5wYXJ0LmFzU3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gYCggJHtwYXJ0U3RyaW5nfSApYDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcnQocGFydCkge1xuICAgIGNvbnN0IHR5cGUgPSBJc29sYXRlZFBhcnRQYXJ0VHlwZSxcbiAgICAgICAgICBpc29sYXRlZFBhcnRQYXJ0ID0gbmV3IElzb2xhdGVkUGFydFBhcnQodHlwZSwgcGFydCk7XG5cbiAgICByZXR1cm4gaXNvbGF0ZWRQYXJ0UGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIklzb2xhdGVkUGFydFBhcnQiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydCIsImdldFBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImNvbXBvc2UiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsInByZWNlZGVuY2UiLCJJU09MQVRFRF9QUkVDRURFTkNFIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIklzb2xhdGVkUGFydFBhcnRUeXBlIiwiaXNvbGF0ZWRQYXJ0UGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFxQkE7Ozs4REFOSDtvRUFDVTsyQkFFUTsyQkFDQzs7Ozs7O0FBRXRCLE1BQU1BLHlCQUF5QkMsb0JBQWU7SUFDM0QsWUFBWUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDdEIsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNKLElBQUksQ0FBQ0UsV0FBVyxDQUFDQyxTQUFTQztJQUFlO0lBRS9GQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsT0FBTyxJQUFJLENBQUNULElBQUksQ0FBQ0ssS0FBSyxDQUFDQyxPQUFPQyxPQUFPLENBQUNELE9BQU9DLE9BQU9FO1lBQ2xESCxRQUFRLElBQUksQ0FBQ0ksT0FBTyxDQUFDSjtZQUVyQixPQUFPRSxRQUFRRixPQUFPQyxPQUFPRTtRQUMvQixHQUFHQTtJQUNMO0lBRUFDLFFBQVFKLEtBQUssRUFBRTtRQUNiLE1BQU1LLGFBQWFMLE1BQU1NLGFBQWEsSUFDaENDLGFBQWFDLDhCQUFtQjtRQUV0Q1IsUUFBUVMsY0FBSyxDQUFDQywyQkFBMkIsQ0FBQ0wsWUFBWUU7UUFFdEQsT0FBT1A7SUFDVDtJQUVBVyxXQUFXO1FBQ1QsTUFBTUMsYUFBYSxJQUFJLENBQUNsQixJQUFJLENBQUNpQixRQUFRLElBQy9CRSxTQUFTLENBQUMsRUFBRSxFQUFFRCxXQUFXLEVBQUUsQ0FBQztRQUVsQyxPQUFPQztJQUNUO0lBRUEsT0FBT0MsU0FBU3BCLElBQUksRUFBRTtRQUNwQixNQUFNRCxPQUFPc0IsK0JBQW9CLEVBQzNCQyxtQkFBbUIsSUFBSXpCLGlCQUFpQkUsTUFBTUM7UUFFcEQsT0FBT3NCO0lBQ1Q7QUFDRiJ9
@@ -27,6 +27,9 @@ class OneOrMorePartsPart extends _nonTerminal.default {
27
27
  getPart() {
28
28
  return this.part;
29
29
  }
30
+ isConsuming(ruleMap, visitedRules = []) {
31
+ return this.part.isConsuming(ruleMap, visitedRules);
32
+ }
30
33
  parse(frame, state, forward, back) {
31
34
  const limit = Infinity, strict = true, branching = state.isBranching(), repeatedly = branching ? _branching.repeatedly : _linear.repeatedly;
32
35
  return repeatedly(this.part, limit, strict, (part, frame, state, forward, back)=>{
@@ -43,4 +46,4 @@ class OneOrMorePartsPart extends _nonTerminal.default {
43
46
  }
44
47
  }
45
48
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL29uZU9yTW9yZVBhcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBPbmVPck1vcmVQYXJ0c1BhcnRUeXBlIH0gZnJvbSBcIi4uLy4uL3BhcnRUeXBlc1wiO1xuaW1wb3J0IHsgcmVwZWF0ZWRseSBhcyBsaW5lYXJSZXBlYXRlZGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IHJlcGVhdGVkbHkgYXMgYnJhbmNoaW5nUmVwZWF0ZWRseSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5cbmNvbnN0IHsgcGx1cyB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9uZU9yTW9yZVBhcnRzUGFydCBleHRlbmRzIE5vblRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHR5cGUsIHBhcnQpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIHRoaXMucGFydCA9IHBhcnQ7XG4gIH1cblxuICBnZXRQYXJ0KCkge1xuICAgIHJldHVybiB0aGlzLnBhcnQ7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBsaW1pdCA9IEluZmluaXR5LFxuICAgICAgICAgIHN0cmljdCA9IHRydWUsXG4gICAgICAgICAgYnJhbmNoaW5nID0gc3RhdGUuaXNCcmFuY2hpbmcoKSxcbiAgICAgICAgICByZXBlYXRlZGx5ID0gYnJhbmNoaW5nID9cbiAgICAgICAgICAgICAgICAgICAgICAgICBicmFuY2hpbmdSZXBlYXRlZGx5IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhclJlcGVhdGVkbHk7XG5cbiAgICByZXR1cm4gcmVwZWF0ZWRseSh0aGlzLnBhcnQsIGxpbWl0LCBzdHJpY3QsIChwYXJ0LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBwYXJ0LnBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHBhcnRTdHJpbmcgPSB0aGlzLnBhcnQuYXNTdHJpbmcoKSxcbiAgICAgICAgICBzdHJpbmcgPSBgJHtwYXJ0U3RyaW5nfSR7cGx1c31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydChwYXJ0KSB7XG4gICAgY29uc3QgdHlwZSA9IE9uZU9yTW9yZVBhcnRzUGFydFR5cGUsXG4gICAgICAgICAgb25lT3JNb3JlUGFydHNQYXJ0ID0gbmV3IE9uZU9yTW9yZVBhcnRzUGFydCh0eXBlLCBwYXJ0KTtcblxuICAgIHJldHVybiBvbmVPck1vcmVQYXJ0c1BhcnQ7XG4gIH1cbn0iXSwibmFtZXMiOlsiT25lT3JNb3JlUGFydHNQYXJ0IiwicGx1cyIsInNwZWNpYWxTeW1ib2xzIiwiTm9uVGVybWluYWxQYXJ0IiwidHlwZSIsInBhcnQiLCJnZXRQYXJ0IiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJsaW1pdCIsIkluZmluaXR5Iiwic3RyaWN0IiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJyZXBlYXRlZGx5IiwiYnJhbmNoaW5nUmVwZWF0ZWRseSIsImxpbmVhclJlcGVhdGVkbHkiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIk9uZU9yTW9yZVBhcnRzUGFydFR5cGUiLCJvbmVPck1vcmVQYXJ0c1BhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBcUJBOzs7NkJBVlU7b0VBRUg7MkJBRVc7d0JBQ1E7MkJBQ0c7Ozs7OztBQUVsRCxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQywyQkFBYztBQUVoQixNQUFNRiwyQkFBMkJHLG9CQUFlO0lBQzdELFlBQVlDLElBQUksRUFBRUMsSUFBSSxDQUFFO1FBQ3RCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLFFBQVFDLFVBQ1JDLFNBQVMsTUFDVEMsWUFBWU4sTUFBTU8sV0FBVyxJQUM3QkMsYUFBYUYsWUFDRUcscUJBQW1CLEdBQ2pCQyxrQkFBZ0I7UUFFdkMsT0FBT0YsV0FBVyxJQUFJLENBQUNaLElBQUksRUFBRU8sT0FBT0UsUUFBUSxDQUFDVCxNQUFNRyxPQUFPQyxPQUFPQyxTQUFTQztZQUN4RSxPQUFPTixLQUFLRSxLQUFLLENBQUNDLE9BQU9DLE9BQU9DLFNBQVNDO1FBQzNDLEdBQUdILE9BQU9DLE9BQU9DLFNBQVNDO0lBQzVCO0lBRUFTLFdBQVc7UUFDVCxNQUFNQyxhQUFhLElBQUksQ0FBQ2hCLElBQUksQ0FBQ2UsUUFBUSxJQUMvQkUsU0FBUyxHQUFHRCxhQUFhcEIsTUFBTTtRQUVyQyxPQUFPcUI7SUFDVDtJQUVBLE9BQU9DLFNBQVNsQixJQUFJLEVBQUU7UUFDcEIsTUFBTUQsT0FBT29CLGlDQUFzQixFQUM3QkMscUJBQXFCLElBQUl6QixtQkFBbUJJLE1BQU1DO1FBRXhELE9BQU9vQjtJQUNUO0FBQ0YifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL29uZU9yTW9yZVBhcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBPbmVPck1vcmVQYXJ0c1BhcnRUeXBlIH0gZnJvbSBcIi4uLy4uL3BhcnRUeXBlc1wiO1xuaW1wb3J0IHsgcmVwZWF0ZWRseSBhcyBsaW5lYXJSZXBlYXRlZGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IHJlcGVhdGVkbHkgYXMgYnJhbmNoaW5nUmVwZWF0ZWRseSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5cbmNvbnN0IHsgcGx1cyB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9uZU9yTW9yZVBhcnRzUGFydCBleHRlbmRzIE5vblRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHR5cGUsIHBhcnQpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIHRoaXMucGFydCA9IHBhcnQ7XG4gIH1cblxuICBnZXRQYXJ0KCkge1xuICAgIHJldHVybiB0aGlzLnBhcnQ7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSkgeyByZXR1cm4gdGhpcy5wYXJ0LmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyk7IH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBsaW1pdCA9IEluZmluaXR5LFxuICAgICAgICAgIHN0cmljdCA9IHRydWUsXG4gICAgICAgICAgYnJhbmNoaW5nID0gc3RhdGUuaXNCcmFuY2hpbmcoKSxcbiAgICAgICAgICByZXBlYXRlZGx5ID0gYnJhbmNoaW5nID9cbiAgICAgICAgICAgICAgICAgICAgICAgICBicmFuY2hpbmdSZXBlYXRlZGx5IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhclJlcGVhdGVkbHk7XG5cbiAgICByZXR1cm4gcmVwZWF0ZWRseSh0aGlzLnBhcnQsIGxpbWl0LCBzdHJpY3QsIChwYXJ0LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBwYXJ0LnBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHBhcnRTdHJpbmcgPSB0aGlzLnBhcnQuYXNTdHJpbmcoKSxcbiAgICAgICAgICBzdHJpbmcgPSBgJHtwYXJ0U3RyaW5nfSR7cGx1c31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydChwYXJ0KSB7XG4gICAgY29uc3QgdHlwZSA9IE9uZU9yTW9yZVBhcnRzUGFydFR5cGUsXG4gICAgICAgICAgb25lT3JNb3JlUGFydHNQYXJ0ID0gbmV3IE9uZU9yTW9yZVBhcnRzUGFydCh0eXBlLCBwYXJ0KTtcblxuICAgIHJldHVybiBvbmVPck1vcmVQYXJ0c1BhcnQ7XG4gIH1cbn0iXSwibmFtZXMiOlsiT25lT3JNb3JlUGFydHNQYXJ0IiwicGx1cyIsInNwZWNpYWxTeW1ib2xzIiwiTm9uVGVybWluYWxQYXJ0IiwidHlwZSIsInBhcnQiLCJnZXRQYXJ0IiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJsaW1pdCIsIkluZmluaXR5Iiwic3RyaWN0IiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJyZXBlYXRlZGx5IiwiYnJhbmNoaW5nUmVwZWF0ZWRseSIsImxpbmVhclJlcGVhdGVkbHkiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIk9uZU9yTW9yZVBhcnRzUGFydFR5cGUiLCJvbmVPck1vcmVQYXJ0c1BhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBcUJBOzs7NkJBVlU7b0VBRUg7MkJBRVc7d0JBQ1E7MkJBQ0c7Ozs7OztBQUVsRCxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQywyQkFBYztBQUVoQixNQUFNRiwyQkFBMkJHLG9CQUFlO0lBQzdELFlBQVlDLElBQUksRUFBRUMsSUFBSSxDQUFFO1FBQ3RCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDSixJQUFJLENBQUNFLFdBQVcsQ0FBQ0MsU0FBU0M7SUFBZTtJQUUvRkMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLFFBQVFDLFVBQ1JDLFNBQVMsTUFDVEMsWUFBWU4sTUFBTU8sV0FBVyxJQUM3QkMsYUFBYUYsWUFDRUcscUJBQW1CLEdBQ2pCQyxrQkFBZ0I7UUFFdkMsT0FBT0YsV0FBVyxJQUFJLENBQUNmLElBQUksRUFBRVUsT0FBT0UsUUFBUSxDQUFDWixNQUFNTSxPQUFPQyxPQUFPQyxTQUFTQztZQUN4RSxPQUFPVCxLQUFLSyxLQUFLLENBQUNDLE9BQU9DLE9BQU9DLFNBQVNDO1FBQzNDLEdBQUdILE9BQU9DLE9BQU9DLFNBQVNDO0lBQzVCO0lBRUFTLFdBQVc7UUFDVCxNQUFNQyxhQUFhLElBQUksQ0FBQ25CLElBQUksQ0FBQ2tCLFFBQVEsSUFDL0JFLFNBQVMsR0FBR0QsYUFBYXZCLE1BQU07UUFFckMsT0FBT3dCO0lBQ1Q7SUFFQSxPQUFPQyxTQUFTckIsSUFBSSxFQUFFO1FBQ3BCLE1BQU1ELE9BQU91QixpQ0FBc0IsRUFDN0JDLHFCQUFxQixJQUFJNUIsbUJBQW1CSSxNQUFNQztRQUV4RCxPQUFPdUI7SUFDVDtBQUNGIn0=
@@ -27,6 +27,10 @@ class OptionalPartPart extends _nonTerminal.default {
27
27
  getPart() {
28
28
  return this.part;
29
29
  }
30
+ isConsuming(ruleMap, visitedRules = []) {
31
+ const consuming = false;
32
+ return consuming;
33
+ }
30
34
  parse(frame, state, forward, back) {
31
35
  const limit = 1, strict = false, branching = state.isBranching(), repeatedly = branching ? _branching.repeatedly : _linear.repeatedly;
32
36
  return repeatedly(this.part, limit, strict, (part, frame, state, forward, back)=>{
@@ -43,4 +47,4 @@ class OptionalPartPart extends _nonTerminal.default {
43
47
  }
44
48
  }
45
49
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL29wdGlvbmFsUGFydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgT3B0aW9uYWxQYXJ0UGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5pbXBvcnQgeyByZXBlYXRlZGx5IGFzIGxpbmVhclJlcGVhdGVkbHkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2xpbmVhclwiO1xuaW1wb3J0IHsgcmVwZWF0ZWRseSBhcyBicmFuY2hpbmdSZXBlYXRlZGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcblxuY29uc3QgeyBxdWVzdGlvbk1hcmsgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcHRpb25hbFBhcnRQYXJ0IGV4dGVuZHMgTm9uVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IodHlwZSwgcGFydCkge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5wYXJ0ID0gcGFydDtcbiAgfVxuXG4gIGdldFBhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydDtcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGxpbWl0ID0gMSxcbiAgICAgICAgICBzdHJpY3QgPSBmYWxzZSxcbiAgICAgICAgICBicmFuY2hpbmcgPSBzdGF0ZS5pc0JyYW5jaGluZygpLFxuICAgICAgICAgIHJlcGVhdGVkbHkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaGluZ1JlcGVhdGVkbHkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyUmVwZWF0ZWRseTtcblxuICAgIHJldHVybiByZXBlYXRlZGx5KHRoaXMucGFydCwgbGltaXQsIHN0cmljdCwgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgcGFydFN0cmluZyA9IHRoaXMucGFydC5hc1N0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IGAke3BhcnRTdHJpbmd9JHtxdWVzdGlvbk1hcmt9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcnQocGFydCkge1xuICAgIGNvbnN0IHR5cGUgPSBPcHRpb25hbFBhcnRQYXJ0VHlwZSxcbiAgICAgICAgICBvcHRpb25hbFBhcnRQYXJ0ID0gbmV3IE9wdGlvbmFsUGFydFBhcnQodHlwZSwgcGFydCk7XG5cbiAgICByZXR1cm4gb3B0aW9uYWxQYXJ0UGFydDtcbiAgfVxufSJdLCJuYW1lcyI6WyJPcHRpb25hbFBhcnRQYXJ0IiwicXVlc3Rpb25NYXJrIiwic3BlY2lhbFN5bWJvbHMiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydCIsImdldFBhcnQiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImxpbWl0Iiwic3RyaWN0IiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJyZXBlYXRlZGx5IiwiYnJhbmNoaW5nUmVwZWF0ZWRseSIsImxpbmVhclJlcGVhdGVkbHkiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIk9wdGlvbmFsUGFydFBhcnRUeXBlIiwib3B0aW9uYWxQYXJ0UGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFxQkE7Ozs2QkFWVTtvRUFFSDsyQkFFUzt3QkFDVTsyQkFDRzs7Ozs7O0FBRWxELE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUdDLDJCQUFjO0FBRXhCLE1BQU1GLHlCQUF5Qkcsb0JBQWU7SUFDM0QsWUFBWUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDdEIsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsUUFBUSxHQUNSQyxTQUFTLE9BQ1RDLFlBQVlMLE1BQU1NLFdBQVcsSUFDN0JDLGFBQWFGLFlBQ0VHLHFCQUFtQixHQUNqQkMsa0JBQWdCO1FBRXZDLE9BQU9GLFdBQVcsSUFBSSxDQUFDWCxJQUFJLEVBQUVPLE9BQU9DLFFBQVEsQ0FBQ1IsTUFBTUcsT0FBT0MsT0FBT0MsU0FBU0M7WUFDeEUsT0FBT04sS0FBS0UsS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxTQUFTQztRQUMzQyxHQUFHSCxPQUFPQyxPQUFPQyxTQUFTQztJQUM1QjtJQUVBUSxXQUFXO1FBQ1QsTUFBTUMsYUFBYSxJQUFJLENBQUNmLElBQUksQ0FBQ2MsUUFBUSxJQUMvQkUsU0FBUyxHQUFHRCxhQUFhbkIsY0FBYztRQUU3QyxPQUFPb0I7SUFDVDtJQUVBLE9BQU9DLFNBQVNqQixJQUFJLEVBQUU7UUFDcEIsTUFBTUQsT0FBT21CLCtCQUFvQixFQUMzQkMsbUJBQW1CLElBQUl4QixpQkFBaUJJLE1BQU1DO1FBRXBELE9BQU9tQjtJQUNUO0FBQ0YifQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL29wdGlvbmFsUGFydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgT3B0aW9uYWxQYXJ0UGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5pbXBvcnQgeyByZXBlYXRlZGx5IGFzIGxpbmVhclJlcGVhdGVkbHkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2xpbmVhclwiO1xuaW1wb3J0IHsgcmVwZWF0ZWRseSBhcyBicmFuY2hpbmdSZXBlYXRlZGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcblxuY29uc3QgeyBxdWVzdGlvbk1hcmsgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcHRpb25hbFBhcnRQYXJ0IGV4dGVuZHMgTm9uVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IodHlwZSwgcGFydCkge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5wYXJ0ID0gcGFydDtcbiAgfVxuXG4gIGdldFBhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydDtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgbGltaXQgPSAxLFxuICAgICAgICAgIHN0cmljdCA9IGZhbHNlLFxuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgcmVwZWF0ZWRseSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nUmVwZWF0ZWRseSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXJSZXBlYXRlZGx5O1xuXG4gICAgcmV0dXJuIHJlcGVhdGVkbHkodGhpcy5wYXJ0LCBsaW1pdCwgc3RyaWN0LCAocGFydCwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gcGFydC5wYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBwYXJ0U3RyaW5nID0gdGhpcy5wYXJ0LmFzU3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gYCR7cGFydFN0cmluZ30ke3F1ZXN0aW9uTWFya31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydChwYXJ0KSB7XG4gICAgY29uc3QgdHlwZSA9IE9wdGlvbmFsUGFydFBhcnRUeXBlLFxuICAgICAgICAgIG9wdGlvbmFsUGFydFBhcnQgPSBuZXcgT3B0aW9uYWxQYXJ0UGFydCh0eXBlLCBwYXJ0KTtcblxuICAgIHJldHVybiBvcHRpb25hbFBhcnRQYXJ0O1xuICB9XG59Il0sIm5hbWVzIjpbIk9wdGlvbmFsUGFydFBhcnQiLCJxdWVzdGlvbk1hcmsiLCJzcGVjaWFsU3ltYm9scyIsIk5vblRlcm1pbmFsUGFydCIsInR5cGUiLCJwYXJ0IiwiZ2V0UGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNvbnN1bWluZyIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwibGltaXQiLCJzdHJpY3QiLCJicmFuY2hpbmciLCJpc0JyYW5jaGluZyIsInJlcGVhdGVkbHkiLCJicmFuY2hpbmdSZXBlYXRlZGx5IiwibGluZWFyUmVwZWF0ZWRseSIsImFzU3RyaW5nIiwicGFydFN0cmluZyIsInN0cmluZyIsImZyb21QYXJ0IiwiT3B0aW9uYWxQYXJ0UGFydFR5cGUiLCJvcHRpb25hbFBhcnRQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXFCQTs7OzZCQVZVO29FQUVIOzJCQUVTO3dCQUNVOzJCQUNHOzs7Ozs7QUFFbEQsTUFBTSxFQUFFQyxZQUFZLEVBQUUsR0FBR0MsMkJBQWM7QUFFeEIsTUFBTUYseUJBQXlCRyxvQkFBZTtJQUMzRCxZQUFZQyxJQUFJLEVBQUVDLElBQUksQ0FBRTtRQUN0QixLQUFLLENBQUNEO1FBRU4sSUFBSSxDQUFDQyxJQUFJLEdBQUdBO0lBQ2Q7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDRCxJQUFJO0lBQ2xCO0lBRUFFLFlBQVlDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEVBQUU7UUFDdEMsTUFBTUMsWUFBWTtRQUVsQixPQUFPQTtJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxRQUFRLEdBQ1JDLFNBQVMsT0FDVEMsWUFBWUwsTUFBTU0sV0FBVyxJQUM3QkMsYUFBYUYsWUFDRUcscUJBQW1CLEdBQ2pCQyxrQkFBZ0I7UUFFdkMsT0FBT0YsV0FBVyxJQUFJLENBQUNmLElBQUksRUFBRVcsT0FBT0MsUUFBUSxDQUFDWixNQUFNTyxPQUFPQyxPQUFPQyxTQUFTQztZQUN4RSxPQUFPVixLQUFLTSxLQUFLLENBQUNDLE9BQU9DLE9BQU9DLFNBQVNDO1FBQzNDLEdBQUdILE9BQU9DLE9BQU9DLFNBQVNDO0lBQzVCO0lBRUFRLFdBQVc7UUFDVCxNQUFNQyxhQUFhLElBQUksQ0FBQ25CLElBQUksQ0FBQ2tCLFFBQVEsSUFDL0JFLFNBQVMsR0FBR0QsYUFBYXZCLGNBQWM7UUFFN0MsT0FBT3dCO0lBQ1Q7SUFFQSxPQUFPQyxTQUFTckIsSUFBSSxFQUFFO1FBQ3BCLE1BQU1ELE9BQU91QiwrQkFBb0IsRUFDM0JDLG1CQUFtQixJQUFJNUIsaUJBQWlCSSxNQUFNQztRQUVwRCxPQUFPdUI7SUFDVDtBQUNGIn0=
@@ -27,6 +27,14 @@ class RuleNamePart extends _nonTerminal.default {
27
27
  const ruleNamePart = true;
28
28
  return ruleNamePart;
29
29
  }
30
+ 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);
36
+ return consuming;
37
+ }
30
38
  parse(frame, state, forward, back) {
31
39
  const rule = state.findRule(this.ruleName);
32
40
  if (rule === null) {
@@ -44,4 +52,4 @@ class RuleNamePart extends _nonTerminal.default {
44
52
  }
45
53
  }
46
54
 
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3J1bGVOYW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L25vblRlcm1pbmFsXCI7XG5cbmltcG9ydCB7IFJ1bGVOYW1lUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGVOYW1lUGFydCBleHRlbmRzIE5vblRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHR5cGUsIHJ1bGVOYW1lKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnJ1bGVOYW1lID0gcnVsZU5hbWU7XG4gIH1cblxuICBnZXRSdWxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTmFtZTtcbiAgfVxuXG4gIGlzUnVsZU5hbWVQYXJ0KCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lUGFydCA9IHRydWU7XG5cbiAgICByZXR1cm4gcnVsZU5hbWVQYXJ0O1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgcnVsZSA9IHN0YXRlLmZpbmRSdWxlKHRoaXMucnVsZU5hbWUpO1xuXG4gICAgaWYgKHJ1bGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJ1bGUucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IGAke3RoaXMucnVsZU5hbWV9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lKHJ1bGVOYW1lKSB7XG4gICAgY29uc3QgdHlwZSA9IFJ1bGVOYW1lUGFydFR5cGUsXG4gICAgICAgICAgcnVsZU5hbWVQYXJ0ID0gbmV3IFJ1bGVOYW1lUGFydCh0eXBlLCBydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcnVsZU5hbWVQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiUnVsZU5hbWVQYXJ0IiwiTm9uVGVybWluYWxQYXJ0IiwidHlwZSIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJpc1J1bGVOYW1lUGFydCIsInJ1bGVOYW1lUGFydCIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwicnVsZSIsImZpbmRSdWxlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJmcm9tUnVsZU5hbWUiLCJSdWxlTmFtZVBhcnRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O29FQUpPOzJCQUVLOzs7Ozs7QUFFbEIsTUFBTUEscUJBQXFCQyxvQkFBZTtJQUN2RCxZQUFZQyxJQUFJLEVBQUVDLFFBQVEsQ0FBRTtRQUMxQixLQUFLLENBQUNEO1FBRU4sSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsUUFBUTtJQUN0QjtJQUVBRSxpQkFBaUI7UUFDZixNQUFNQyxlQUFlO1FBRXJCLE9BQU9BO0lBQ1Q7SUFFQUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLE9BQU9ILE1BQU1JLFFBQVEsQ0FBQyxJQUFJLENBQUNWLFFBQVE7UUFFekMsSUFBSVMsU0FBUyxNQUFNO1lBQ2pCLE9BQU9EO1FBQ1Q7UUFFQSxPQUFPQyxLQUFLTCxLQUFLLENBQUNDLE9BQU9DLE9BQU9DLFNBQVNDO0lBQzNDO0lBRUFHLFdBQVc7UUFDVCxNQUFNQyxTQUFTLEdBQUcsSUFBSSxDQUFDWixRQUFRLEVBQUU7UUFFakMsT0FBT1k7SUFDVDtJQUVBLE9BQU9DLGFBQWFiLFFBQVEsRUFBRTtRQUM1QixNQUFNRCxPQUFPZSwyQkFBZ0IsRUFDdkJYLGVBQWUsSUFBSU4sYUFBYUUsTUFBTUM7UUFFNUMsT0FBT0c7SUFDVDtBQUNGIn0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3J1bGVOYW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L25vblRlcm1pbmFsXCI7XG5cbmltcG9ydCB7IFJ1bGVOYW1lUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGVOYW1lUGFydCBleHRlbmRzIE5vblRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHR5cGUsIHJ1bGVOYW1lKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnJ1bGVOYW1lID0gcnVsZU5hbWU7XG4gIH1cblxuICBnZXRSdWxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTmFtZTtcbiAgfVxuXG4gIGlzUnVsZU5hbWVQYXJ0KCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lUGFydCA9IHRydWU7XG5cbiAgICByZXR1cm4gcnVsZU5hbWVQYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHtcbiAgICBjb25zdCBydWxlID0gcnVsZU1hcFt0aGlzLnJ1bGVOYW1lXSB8fCBudWxsO1xuXG4gICAgaWYgKHJ1bGUgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgICcke3RoaXMucnVsZU5hbWV9JyBydWxlIGlzIG1pc3NpbmcuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uc3VtaW5nID0gcnVsZS5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpO1xuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHJ1bGUgPSBzdGF0ZS5maW5kUnVsZSh0aGlzLnJ1bGVOYW1lKTtcblxuICAgIGlmIChydWxlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIHJldHVybiBydWxlLnBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBgJHt0aGlzLnJ1bGVOYW1lfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZShydWxlTmFtZSkge1xuICAgIGNvbnN0IHR5cGUgPSBSdWxlTmFtZVBhcnRUeXBlLFxuICAgICAgICAgIHJ1bGVOYW1lUGFydCA9IG5ldyBSdWxlTmFtZVBhcnQodHlwZSwgcnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHJ1bGVOYW1lUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlJ1bGVOYW1lUGFydCIsIk5vblRlcm1pbmFsUGFydCIsInR5cGUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiaXNSdWxlTmFtZVBhcnQiLCJydWxlTmFtZVBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJydWxlIiwiRXJyb3IiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImZpbmRSdWxlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJmcm9tUnVsZU5hbWUiLCJSdWxlTmFtZVBhcnRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O29FQUpPOzJCQUVLOzs7Ozs7QUFFbEIsTUFBTUEscUJBQXFCQyxvQkFBZTtJQUN2RCxZQUFZQyxJQUFJLEVBQUVDLFFBQVEsQ0FBRTtRQUMxQixLQUFLLENBQUNEO1FBRU4sSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsUUFBUTtJQUN0QjtJQUVBRSxpQkFBaUI7UUFDZixNQUFNQyxlQUFlO1FBRXJCLE9BQU9BO0lBQ1Q7SUFFQUMsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUN0QyxNQUFNQyxPQUFPRixPQUFPLENBQUMsSUFBSSxDQUFDTCxRQUFRLENBQUMsSUFBSTtRQUV2QyxJQUFJTyxRQUFRLE1BQU07WUFDaEIsTUFBTSxJQUFJQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQ1IsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1FBQzVEO1FBRUEsTUFBTVMsWUFBWUYsS0FBS0gsV0FBVyxDQUFDQyxTQUFTQztRQUU1QyxPQUFPRztJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNUCxPQUFPSyxNQUFNRyxRQUFRLENBQUMsSUFBSSxDQUFDZixRQUFRO1FBRXpDLElBQUlPLFNBQVMsTUFBTTtZQUNqQixPQUFPTztRQUNUO1FBRUEsT0FBT1AsS0FBS0csS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxTQUFTQztJQUMzQztJQUVBRSxXQUFXO1FBQ1QsTUFBTUMsU0FBUyxHQUFHLElBQUksQ0FBQ2pCLFFBQVEsRUFBRTtRQUVqQyxPQUFPaUI7SUFDVDtJQUVBLE9BQU9DLGFBQWFsQixRQUFRLEVBQUU7UUFDNUIsTUFBTUQsT0FBT29CLDJCQUFnQixFQUN2QmhCLGVBQWUsSUFBSU4sYUFBYUUsTUFBTUM7UUFFNUMsT0FBT0c7SUFDVDtBQUNGIn0=
@@ -26,6 +26,15 @@ class SequenceOfPartsPart extends _nonTerminal.default {
26
26
  getParts() {
27
27
  return this.parts;
28
28
  }
29
+ isConsuming(ruleMap, visitedRules = []) {
30
+ const consuming = this.parts.some((part)=>{
31
+ const consuming = part.isConsuming(ruleMap, visitedRules);
32
+ if (consuming) {
33
+ return true;
34
+ }
35
+ });
36
+ return consuming;
37
+ }
29
38
  parse(frame, state, forward, back) {
30
39
  const savedFrame = frame, branching = state.isBranching(), every = branching ? _branching.every : _linear.every;
31
40
  return every(this.parts, (part, frame, state, forward, back)=>{
@@ -53,4 +62,4 @@ class SequenceOfPartsPart extends _nonTerminal.default {
53
62
  }
54
63
  }
55
64
 
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3NlcXVlbmNlT2ZQYXJ0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBlbXB0eUZyYW1lIH0gZnJvbSBcIi4uLy4uL2ZyYW1lXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBsaW5lYXJFdmVyeSAgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2xpbmVhclwiO1xuaW1wb3J0IHsgZXZlcnkgYXMgYnJhbmNoaW5nRXZlcnkgIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcbmltcG9ydCB7IFNlcXVlbmNlT2ZQYXJ0c1BhcnRUeXBlIH0gZnJvbSBcIi4uLy4uL3BhcnRUeXBlc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXF1ZW5jZU9mUGFydHNQYXJ0IGV4dGVuZHMgTm9uVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IodHlwZSwgcGFydHMpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgfVxuXG4gIGdldFBhcnRzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnRzO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc2F2ZWRGcmFtZSA9IGZyYW1lLCAvLy9cbiAgICAgICAgICBicmFuY2hpbmcgPSBzdGF0ZS5pc0JyYW5jaGluZygpLFxuICAgICAgICAgIGV2ZXJ5ID0gYnJhbmNoaW5nID9cbiAgICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nRXZlcnkgOlxuICAgICAgICAgICAgICAgICAgICAgIGxpbmVhckV2ZXJ5O1xuXG4gICAgcmV0dXJuIGV2ZXJ5KHRoaXMucGFydHMsIChwYXJ0LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBwYXJ0LnBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgZW1wdHlGcmFtZSwgc3RhdGUsIChmcmFtZSwgc3RhdGUsIGJhY2spID0+IHtcbiAgICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKHNhdmVkRnJhbWUsIGZyYW1lKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHBhcnRzU3RyaW5nID0gdGhpcy5wYXJ0cy5yZWR1Y2UoKHBhcnRzU3RyaW5nLCBwYXJ0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0U3RyaW5nID0gcGFydC5hc1N0cmluZygpO1xuXG4gICAgICAgICAgICBpZiAocGFydHNTdHJpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcGFydHNTdHJpbmcgPSBwYXJ0U3RyaW5nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGFydHNTdHJpbmcgPSBgJHtwYXJ0c1N0cmluZ30gJHtwYXJ0U3RyaW5nfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwYXJ0c1N0cmluZztcbiAgICAgICAgICB9LCBudWxsKSxcbiAgICAgICAgICBzdHJpbmcgPSBgKCAke3BhcnRzU3RyaW5nfSApYDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcnRzKHBhcnRzKSB7XG4gICAgY29uc3QgdHlwZSA9IFNlcXVlbmNlT2ZQYXJ0c1BhcnRUeXBlLFxuICAgICAgICAgIHNlcXVlbmNlT2ZQYXJ0c1BhcnQgPSBuZXcgU2VxdWVuY2VPZlBhcnRzUGFydCh0eXBlLCBwYXJ0cyk7XG5cbiAgICByZXR1cm4gc2VxdWVuY2VPZlBhcnRzUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNlcXVlbmNlT2ZQYXJ0c1BhcnQiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydHMiLCJnZXRQYXJ0cyIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwic2F2ZWRGcmFtZSIsImJyYW5jaGluZyIsImlzQnJhbmNoaW5nIiwiZXZlcnkiLCJicmFuY2hpbmdFdmVyeSIsImxpbmVhckV2ZXJ5IiwicGFydCIsImVtcHR5RnJhbWUiLCJjb21wb3NlIiwiYXNTdHJpbmciLCJwYXJ0c1N0cmluZyIsInJlZHVjZSIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydHMiLCJTZXF1ZW5jZU9mUGFydHNQYXJ0VHlwZSIsInNlcXVlbmNlT2ZQYXJ0c1BhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBcUJBOzs7b0VBUE87dUJBRUQ7d0JBQ1c7MkJBQ0c7MkJBQ0Q7Ozs7OztBQUV6QixNQUFNQSw0QkFBNEJDLG9CQUFlO0lBQzlELFlBQVlDLElBQUksRUFBRUMsS0FBSyxDQUFFO1FBQ3ZCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFKLE9BQ2JLLFlBQVlKLE1BQU1LLFdBQVcsSUFDN0JDLFFBQVFGLFlBQ0VHLGdCQUFjLEdBQ1pDLGFBQVc7UUFFN0IsT0FBT0YsTUFBTSxJQUFJLENBQUNWLEtBQUssRUFBRSxDQUFDYSxNQUFNVixPQUFPQyxPQUFPQyxTQUFTQztZQUNyRCxPQUFPTyxLQUFLWCxLQUFLLENBQUNDLE9BQU9DLE9BQU9DLFNBQVNDO1FBQzNDLEdBQUdRLGlCQUFVLEVBQUVWLE9BQU8sQ0FBQ0QsT0FBT0MsT0FBT0U7WUFDbkNILFFBQVEsSUFBSSxDQUFDWSxPQUFPLENBQUNSLFlBQVlKO1lBRWpDLE9BQU9FLFFBQVFGLE9BQU9DLE9BQU9FO1FBQy9CLEdBQUdBO0lBQ0w7SUFFQVUsV0FBVztRQUNULE1BQU1DLGNBQWMsSUFBSSxDQUFDakIsS0FBSyxDQUFDa0IsTUFBTSxDQUFDLENBQUNELGFBQWFKO1lBQzVDLE1BQU1NLGFBQWFOLEtBQUtHLFFBQVE7WUFFaEMsSUFBSUMsZ0JBQWdCLE1BQU07Z0JBQ3hCQSxjQUFjRTtZQUNoQixPQUFPO2dCQUNMRixjQUFjLEdBQUdBLFlBQVksQ0FBQyxFQUFFRSxZQUFZO1lBQzlDO1lBRUEsT0FBT0Y7UUFDVCxHQUFHLE9BQ0hHLFNBQVMsQ0FBQyxFQUFFLEVBQUVILFlBQVksRUFBRSxDQUFDO1FBRW5DLE9BQU9HO0lBQ1Q7SUFFQSxPQUFPQyxVQUFVckIsS0FBSyxFQUFFO1FBQ3RCLE1BQU1ELE9BQU91QixrQ0FBdUIsRUFDOUJDLHNCQUFzQixJQUFJMUIsb0JBQW9CRSxNQUFNQztRQUUxRCxPQUFPdUI7SUFDVDtBQUNGIn0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3NlcXVlbmNlT2ZQYXJ0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBlbXB0eUZyYW1lIH0gZnJvbSBcIi4uLy4uL2ZyYW1lXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBsaW5lYXJFdmVyeSAgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2xpbmVhclwiO1xuaW1wb3J0IHsgZXZlcnkgYXMgYnJhbmNoaW5nRXZlcnkgIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcbmltcG9ydCB7IFNlcXVlbmNlT2ZQYXJ0c1BhcnRUeXBlIH0gZnJvbSBcIi4uLy4uL3BhcnRUeXBlc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXF1ZW5jZU9mUGFydHNQYXJ0IGV4dGVuZHMgTm9uVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IodHlwZSwgcGFydHMpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgfVxuXG4gIGdldFBhcnRzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnRzO1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0aGlzLnBhcnRzLnNvbWUoKHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnN1bWluZyA9IHBhcnQuaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzKTtcblxuICAgICAgaWYgKGNvbnN1bWluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzYXZlZEZyYW1lID0gZnJhbWUsIC8vL1xuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgZXZlcnkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICBicmFuY2hpbmdFdmVyeSA6XG4gICAgICAgICAgICAgICAgICAgICAgbGluZWFyRXZlcnk7XG5cbiAgICByZXR1cm4gZXZlcnkodGhpcy5wYXJ0cywgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBlbXB0eUZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2Uoc2F2ZWRGcmFtZSwgZnJhbWUpO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgcGFydHNTdHJpbmcgPSB0aGlzLnBhcnRzLnJlZHVjZSgocGFydHNTdHJpbmcsIHBhcnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRTdHJpbmcgPSBwYXJ0LmFzU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIGlmIChwYXJ0c1N0cmluZyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBwYXJ0c1N0cmluZyA9IHBhcnRTdHJpbmc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwYXJ0c1N0cmluZyA9IGAke3BhcnRzU3RyaW5nfSAke3BhcnRTdHJpbmd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHBhcnRzU3RyaW5nO1xuICAgICAgICAgIH0sIG51bGwpLFxuICAgICAgICAgIHN0cmluZyA9IGAoICR7cGFydHNTdHJpbmd9IClgO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHMocGFydHMpIHtcbiAgICBjb25zdCB0eXBlID0gU2VxdWVuY2VPZlBhcnRzUGFydFR5cGUsXG4gICAgICAgICAgc2VxdWVuY2VPZlBhcnRzUGFydCA9IG5ldyBTZXF1ZW5jZU9mUGFydHNQYXJ0KHR5cGUsIHBhcnRzKTtcblxuICAgIHJldHVybiBzZXF1ZW5jZU9mUGFydHNQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2VxdWVuY2VPZlBhcnRzUGFydCIsIk5vblRlcm1pbmFsUGFydCIsInR5cGUiLCJwYXJ0cyIsImdldFBhcnRzIiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY29uc3VtaW5nIiwic29tZSIsInBhcnQiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInNhdmVkRnJhbWUiLCJicmFuY2hpbmciLCJpc0JyYW5jaGluZyIsImV2ZXJ5IiwiYnJhbmNoaW5nRXZlcnkiLCJsaW5lYXJFdmVyeSIsImVtcHR5RnJhbWUiLCJjb21wb3NlIiwiYXNTdHJpbmciLCJwYXJ0c1N0cmluZyIsInJlZHVjZSIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydHMiLCJTZXF1ZW5jZU9mUGFydHNQYXJ0VHlwZSIsInNlcXVlbmNlT2ZQYXJ0c1BhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBcUJBOzs7b0VBUE87dUJBRUQ7d0JBQ1c7MkJBQ0c7MkJBQ0Q7Ozs7OztBQUV6QixNQUFNQSw0QkFBNEJDLG9CQUFlO0lBQzlELFlBQVlDLElBQUksRUFBRUMsS0FBSyxDQUFFO1FBQ3ZCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUN0QyxNQUFNQyxZQUFZLElBQUksQ0FBQ0wsS0FBSyxDQUFDTSxJQUFJLENBQUMsQ0FBQ0M7WUFDakMsTUFBTUYsWUFBWUUsS0FBS0wsV0FBVyxDQUFDQyxTQUFTQztZQUU1QyxJQUFJQyxXQUFXO2dCQUNiLE9BQU87WUFDVDtRQUNGO1FBRUEsT0FBT0E7SUFDVDtJQUVBRyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUosT0FDYkssWUFBWUosTUFBTUssV0FBVyxJQUM3QkMsUUFBUUYsWUFDRUcsZ0JBQWMsR0FDWkMsYUFBVztRQUU3QixPQUFPRixNQUFNLElBQUksQ0FBQ2hCLEtBQUssRUFBRSxDQUFDTyxNQUFNRSxPQUFPQyxPQUFPQyxTQUFTQztZQUNyRCxPQUFPTCxLQUFLQyxLQUFLLENBQUNDLE9BQU9DLE9BQU9DLFNBQVNDO1FBQzNDLEdBQUdPLGlCQUFVLEVBQUVULE9BQU8sQ0FBQ0QsT0FBT0MsT0FBT0U7WUFDbkNILFFBQVEsSUFBSSxDQUFDVyxPQUFPLENBQUNQLFlBQVlKO1lBRWpDLE9BQU9FLFFBQVFGLE9BQU9DLE9BQU9FO1FBQy9CLEdBQUdBO0lBQ0w7SUFFQVMsV0FBVztRQUNULE1BQU1DLGNBQWMsSUFBSSxDQUFDdEIsS0FBSyxDQUFDdUIsTUFBTSxDQUFDLENBQUNELGFBQWFmO1lBQzVDLE1BQU1pQixhQUFhakIsS0FBS2MsUUFBUTtZQUVoQyxJQUFJQyxnQkFBZ0IsTUFBTTtnQkFDeEJBLGNBQWNFO1lBQ2hCLE9BQU87Z0JBQ0xGLGNBQWMsR0FBR0EsWUFBWSxDQUFDLEVBQUVFLFlBQVk7WUFDOUM7WUFFQSxPQUFPRjtRQUNULEdBQUcsT0FDSEcsU0FBUyxDQUFDLEVBQUUsRUFBRUgsWUFBWSxFQUFFLENBQUM7UUFFbkMsT0FBT0c7SUFDVDtJQUVBLE9BQU9DLFVBQVUxQixLQUFLLEVBQUU7UUFDdEIsTUFBTUQsT0FBTzRCLGtDQUF1QixFQUM5QkMsc0JBQXNCLElBQUkvQixvQkFBb0JFLE1BQU1DO1FBRTFELE9BQU80QjtJQUNUO0FBQ0YifQ==
@@ -27,6 +27,10 @@ class ZeroOrMorePartsPart extends _nonTerminal.default {
27
27
  getPart() {
28
28
  return this.part;
29
29
  }
30
+ isConsuming(ruleMap, visitedRules = []) {
31
+ const consuming = false;
32
+ return consuming;
33
+ }
30
34
  parse(frame, state, forward, back) {
31
35
  const limit = Infinity, strict = false, branching = state.isBranching(), repeatedly = branching ? _branching.repeatedly : _linear.repeatedly;
32
36
  return repeatedly(this.part, limit, strict, (part, frame, state, forward, back)=>{
@@ -43,4 +47,4 @@ class ZeroOrMorePartsPart extends _nonTerminal.default {
43
47
  }
44
48
  }
45
49
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3plcm9Pck1vcmVQYXJ0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgWmVyb09yTW9yZVBhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5pbXBvcnQgeyByZXBlYXRlZGx5IGFzIGxpbmVhclJlcGVhdGVkbHkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2xpbmVhclwiO1xuaW1wb3J0IHsgcmVwZWF0ZWRseSBhcyBicmFuY2hpbmdSZXBlYXRlZGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcblxuY29uc3QgeyBhc3RlcmlzayB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFplcm9Pck1vcmVQYXJ0c1BhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0KSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnBhcnQgPSBwYXJ0O1xuICB9XG5cbiAgZ2V0UGFydCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0O1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgbGltaXQgPSBJbmZpbml0eSxcbiAgICAgICAgICBzdHJpY3QgPSBmYWxzZSxcbiAgICAgICAgICBicmFuY2hpbmcgPSBzdGF0ZS5pc0JyYW5jaGluZygpLFxuICAgICAgICAgIHJlcGVhdGVkbHkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaGluZ1JlcGVhdGVkbHkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyUmVwZWF0ZWRseTtcblxuICAgIHJldHVybiByZXBlYXRlZGx5KHRoaXMucGFydCwgbGltaXQsIHN0cmljdCwgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgcGFydFN0cmluZyA9IHRoaXMucGFydC5hc1N0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IGAke3BhcnRTdHJpbmd9JHthc3Rlcmlza31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydChwYXJ0KSB7XG4gICAgY29uc3QgdHlwZSA9IFplcm9Pck1vcmVQYXJ0c1BhcnRUeXBlLFxuICAgICAgICAgIHplcm9Pck1vcmVQYXJ0c1BhcnQgPSBuZXcgWmVyb09yTW9yZVBhcnRzUGFydCh0eXBlLCBwYXJ0KTtcblxuICAgIHJldHVybiB6ZXJvT3JNb3JlUGFydHNQYXJ0O1xuICB9XG59Il0sIm5hbWVzIjpbIlplcm9Pck1vcmVQYXJ0c1BhcnQiLCJhc3RlcmlzayIsInNwZWNpYWxTeW1ib2xzIiwiTm9uVGVybWluYWxQYXJ0IiwidHlwZSIsInBhcnQiLCJnZXRQYXJ0IiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJsaW1pdCIsIkluZmluaXR5Iiwic3RyaWN0IiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJyZXBlYXRlZGx5IiwiYnJhbmNoaW5nUmVwZWF0ZWRseSIsImxpbmVhclJlcGVhdGVkbHkiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIlplcm9Pck1vcmVQYXJ0c1BhcnRUeXBlIiwiemVyb09yTW9yZVBhcnRzUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFxQkE7Ozs2QkFWVTtvRUFFSDsyQkFFWTt3QkFDTzsyQkFDRzs7Ozs7O0FBRWxELE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLDJCQUFjO0FBRXBCLE1BQU1GLDRCQUE0Qkcsb0JBQWU7SUFDOUQsWUFBWUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDdEIsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsUUFBUUMsVUFDUkMsU0FBUyxPQUNUQyxZQUFZTixNQUFNTyxXQUFXLElBQzdCQyxhQUFhRixZQUNFRyxxQkFBbUIsR0FDakJDLGtCQUFnQjtRQUV2QyxPQUFPRixXQUFXLElBQUksQ0FBQ1osSUFBSSxFQUFFTyxPQUFPRSxRQUFRLENBQUNULE1BQU1HLE9BQU9DLE9BQU9DLFNBQVNDO1lBQ3hFLE9BQU9OLEtBQUtFLEtBQUssQ0FBQ0MsT0FBT0MsT0FBT0MsU0FBU0M7UUFDM0MsR0FBR0gsT0FBT0MsT0FBT0MsU0FBU0M7SUFDNUI7SUFFQVMsV0FBVztRQUNULE1BQU1DLGFBQWEsSUFBSSxDQUFDaEIsSUFBSSxDQUFDZSxRQUFRLElBQy9CRSxTQUFTLEdBQUdELGFBQWFwQixVQUFVO1FBRXpDLE9BQU9xQjtJQUNUO0lBRUEsT0FBT0MsU0FBU2xCLElBQUksRUFBRTtRQUNwQixNQUFNRCxPQUFPb0Isa0NBQXVCLEVBQzlCQyxzQkFBc0IsSUFBSXpCLG9CQUFvQkksTUFBTUM7UUFFMUQsT0FBT29CO0lBQ1Q7QUFDRiJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3plcm9Pck1vcmVQYXJ0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgWmVyb09yTW9yZVBhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5pbXBvcnQgeyByZXBlYXRlZGx5IGFzIGxpbmVhclJlcGVhdGVkbHkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2xpbmVhclwiO1xuaW1wb3J0IHsgcmVwZWF0ZWRseSBhcyBicmFuY2hpbmdSZXBlYXRlZGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcblxuY29uc3QgeyBhc3RlcmlzayB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFplcm9Pck1vcmVQYXJ0c1BhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0KSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnBhcnQgPSBwYXJ0O1xuICB9XG5cbiAgZ2V0UGFydCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBsaW1pdCA9IEluZmluaXR5LFxuICAgICAgICAgIHN0cmljdCA9IGZhbHNlLFxuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgcmVwZWF0ZWRseSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nUmVwZWF0ZWRseSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXJSZXBlYXRlZGx5O1xuXG4gICAgcmV0dXJuIHJlcGVhdGVkbHkodGhpcy5wYXJ0LCBsaW1pdCwgc3RyaWN0LCAocGFydCwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gcGFydC5wYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBwYXJ0U3RyaW5nID0gdGhpcy5wYXJ0LmFzU3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gYCR7cGFydFN0cmluZ30ke2FzdGVyaXNrfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0KHBhcnQpIHtcbiAgICBjb25zdCB0eXBlID0gWmVyb09yTW9yZVBhcnRzUGFydFR5cGUsXG4gICAgICAgICAgemVyb09yTW9yZVBhcnRzUGFydCA9IG5ldyBaZXJvT3JNb3JlUGFydHNQYXJ0KHR5cGUsIHBhcnQpO1xuXG4gICAgcmV0dXJuIHplcm9Pck1vcmVQYXJ0c1BhcnQ7XG4gIH1cbn0iXSwibmFtZXMiOlsiWmVyb09yTW9yZVBhcnRzUGFydCIsImFzdGVyaXNrIiwic3BlY2lhbFN5bWJvbHMiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydCIsImdldFBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImxpbWl0IiwiSW5maW5pdHkiLCJzdHJpY3QiLCJicmFuY2hpbmciLCJpc0JyYW5jaGluZyIsInJlcGVhdGVkbHkiLCJicmFuY2hpbmdSZXBlYXRlZGx5IiwibGluZWFyUmVwZWF0ZWRseSIsImFzU3RyaW5nIiwicGFydFN0cmluZyIsInN0cmluZyIsImZyb21QYXJ0IiwiWmVyb09yTW9yZVBhcnRzUGFydFR5cGUiLCJ6ZXJvT3JNb3JlUGFydHNQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXFCQTs7OzZCQVZVO29FQUVIOzJCQUVZO3dCQUNPOzJCQUNHOzs7Ozs7QUFFbEQsTUFBTSxFQUFFQyxRQUFRLEVBQUUsR0FBR0MsMkJBQWM7QUFFcEIsTUFBTUYsNEJBQTRCRyxvQkFBZTtJQUM5RCxZQUFZQyxJQUFJLEVBQUVDLElBQUksQ0FBRTtRQUN0QixLQUFLLENBQUNEO1FBRU4sSUFBSSxDQUFDQyxJQUFJLEdBQUdBO0lBQ2Q7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDRCxJQUFJO0lBQ2xCO0lBRUFFLFlBQVlDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEVBQUU7UUFDdEMsTUFBTUMsWUFBWTtRQUVsQixPQUFPQTtJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxRQUFRQyxVQUNSQyxTQUFTLE9BQ1RDLFlBQVlOLE1BQU1PLFdBQVcsSUFDN0JDLGFBQWFGLFlBQ0VHLHFCQUFtQixHQUNqQkMsa0JBQWdCO1FBRXZDLE9BQU9GLFdBQVcsSUFBSSxDQUFDaEIsSUFBSSxFQUFFVyxPQUFPRSxRQUFRLENBQUNiLE1BQU1PLE9BQU9DLE9BQU9DLFNBQVNDO1lBQ3hFLE9BQU9WLEtBQUtNLEtBQUssQ0FBQ0MsT0FBT0MsT0FBT0MsU0FBU0M7UUFDM0MsR0FBR0gsT0FBT0MsT0FBT0MsU0FBU0M7SUFDNUI7SUFFQVMsV0FBVztRQUNULE1BQU1DLGFBQWEsSUFBSSxDQUFDcEIsSUFBSSxDQUFDbUIsUUFBUSxJQUMvQkUsU0FBUyxHQUFHRCxhQUFheEIsVUFBVTtRQUV6QyxPQUFPeUI7SUFDVDtJQUVBLE9BQU9DLFNBQVN0QixJQUFJLEVBQUU7UUFDcEIsTUFBTUQsT0FBT3dCLGtDQUF1QixFQUM5QkMsc0JBQXNCLElBQUk3QixvQkFBb0JJLE1BQU1DO1FBRTFELE9BQU93QjtJQUNUO0FBQ0YifQ==
@@ -22,6 +22,10 @@ class CutPart extends _terminal.default {
22
22
  const cutPart = true;
23
23
  return cutPart;
24
24
  }
25
+ isConsuming(ruleMap, visitedRules = []) {
26
+ const consuming = false;
27
+ return consuming;
28
+ }
25
29
  parse(frame, state, forward, back) {
26
30
  const cut = _cut.default.fromFrameStateAndForward(frame, state, forward);
27
31
  return back(cut);
@@ -36,4 +40,4 @@ class CutPart extends _terminal.default {
36
40
  }
37
41
  }
38
42
 
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL2N1dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBDdXQgZnJvbSBcIi4uLy4uL2N1dFwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IGJhY2t0aWNrIH0gPSBzcGVjaWFsU3ltYm9scztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3V0UGFydCBleHRlbmRzIFRlcm1pbmFsUGFydCB7XG4gIGlzQ3V0UGFydCgpIHtcbiAgICBjb25zdCBjdXRQYXJ0ID0gdHJ1ZTtcblxuICAgIHJldHVybiBjdXRQYXJ0O1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgY3V0ID0gQ3V0LmZyb21GcmFtZVN0YXRlQW5kRm9yd2FyZChmcmFtZSwgc3RhdGUsIGZvcndhcmQpO1xuXG4gICAgcmV0dXJuIGJhY2soY3V0KTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IGAke2JhY2t0aWNrfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGN1dFBhcnQgPSBuZXcgQ3V0UGFydCgpO1xuXG4gICAgcmV0dXJuIGN1dFBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDdXRQYXJ0IiwiYmFja3RpY2siLCJzcGVjaWFsU3ltYm9scyIsIlRlcm1pbmFsUGFydCIsImlzQ3V0UGFydCIsImN1dFBhcnQiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImN1dCIsIkN1dCIsImZyb21GcmFtZVN0YXRlQW5kRm9yd2FyZCIsImFzU3RyaW5nIiwic3RyaW5nIiwiZnJvbU5vdGhpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBcUJBOzs7NkJBUFU7NERBRWY7aUVBQ1M7Ozs7OztBQUV6QixNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHQywyQkFBYztBQUVwQixNQUFNRixnQkFBZ0JHLGlCQUFZO0lBQy9DQyxZQUFZO1FBQ1YsTUFBTUMsVUFBVTtRQUVoQixPQUFPQTtJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxNQUFNQyxZQUFHLENBQUNDLHdCQUF3QixDQUFDTixPQUFPQyxPQUFPQztRQUV2RCxPQUFPQyxLQUFLQztJQUNkO0lBRUFHLFdBQVc7UUFDVCxNQUFNQyxTQUFTLEdBQUdkLFVBQVU7UUFFNUIsT0FBT2M7SUFDVDtJQUVBLE9BQU9DLGNBQWM7UUFDbkIsTUFBTVgsVUFBVSxJQUFJTDtRQUVwQixPQUFPSztJQUNUO0FBQ0YifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL2N1dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBDdXQgZnJvbSBcIi4uLy4uL2N1dFwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IGJhY2t0aWNrIH0gPSBzcGVjaWFsU3ltYm9scztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3V0UGFydCBleHRlbmRzIFRlcm1pbmFsUGFydCB7XG4gIGlzQ3V0UGFydCgpIHtcbiAgICBjb25zdCBjdXRQYXJ0ID0gdHJ1ZTtcblxuICAgIHJldHVybiBjdXRQYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBjdXQgPSBDdXQuZnJvbUZyYW1lU3RhdGVBbmRGb3J3YXJkKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCk7XG5cbiAgICByZXR1cm4gYmFjayhjdXQpO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gYCR7YmFja3RpY2t9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgY3V0UGFydCA9IG5ldyBDdXRQYXJ0KCk7XG5cbiAgICByZXR1cm4gY3V0UGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkN1dFBhcnQiLCJiYWNrdGljayIsInNwZWNpYWxTeW1ib2xzIiwiVGVybWluYWxQYXJ0IiwiaXNDdXRQYXJ0IiwiY3V0UGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNvbnN1bWluZyIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwiY3V0IiwiQ3V0IiwiZnJvbUZyYW1lU3RhdGVBbmRGb3J3YXJkIiwiYXNTdHJpbmciLCJzdHJpbmciLCJmcm9tTm90aGluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFxQkE7Ozs2QkFQVTs0REFFZjtpRUFDUzs7Ozs7O0FBRXpCLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLDJCQUFjO0FBRXBCLE1BQU1GLGdCQUFnQkcsaUJBQVk7SUFDL0NDLFlBQVk7UUFDVixNQUFNQyxVQUFVO1FBRWhCLE9BQU9BO0lBQ1Q7SUFFQUMsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUN0QyxNQUFNQyxZQUFZO1FBRWxCLE9BQU9BO0lBQ1Q7SUFFQUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLE1BQU1DLFlBQUcsQ0FBQ0Msd0JBQXdCLENBQUNOLE9BQU9DLE9BQU9DO1FBRXZELE9BQU9DLEtBQUtDO0lBQ2Q7SUFFQUcsV0FBVztRQUNULE1BQU1DLFNBQVMsR0FBR2xCLFVBQVU7UUFFNUIsT0FBT2tCO0lBQ1Q7SUFFQSxPQUFPQyxjQUFjO1FBQ25CLE1BQU1mLFVBQVUsSUFBSUw7UUFFcEIsT0FBT0s7SUFDVDtBQUNGIn0=
@@ -19,6 +19,10 @@ function _interop_require_default(obj) {
19
19
  }
20
20
  const { endOfLine } = _occamlexers.specialSymbols;
21
21
  class EndOfLinePart extends _terminal.default {
22
+ isConsuming(ruleMap, visitedRules = []) {
23
+ const consuming = true;
24
+ return consuming;
25
+ }
22
26
  parse(frame, state, forward, back) {
23
27
  const stateEmpty = state.isEmpty();
24
28
  if (stateEmpty) {
@@ -43,4 +47,4 @@ class EndOfLinePart extends _terminal.default {
43
47
  }
44
48
  }
45
49
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL2VuZE9mTGluZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvdGVybWluYWxcIjtcbmltcG9ydCBFbmRPZkxpbmVOb2RlIGZyb20gXCIuLi8uLi9ub2RlL3Rlcm1pbmFsL2VuZE9mTGluZVwiO1xuXG5jb25zdCB7IGVuZE9mTGluZSB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVuZE9mTGluZVBhcnQgZXh0ZW5kcyBUZXJtaW5hbFBhcnQge1xuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzdGF0ZUVtcHR5ID0gc3RhdGUuaXNFbXB0eSgpO1xuXG4gICAgaWYgKHN0YXRlRW1wdHkpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFNpZ25pZmljYW50VG9rZW4gPSBzdGF0ZS5nZXROZXh0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSBuZXh0U2lnbmlmaWNhbnRUb2tlbiwgLy8vXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbkVuZE9mTGluZVRva2VuID0gc2lnbmlmaWNhbnRUb2tlbi5pc0VuZE9mTGluZVRva2VuKCk7XG5cbiAgICBpZiAoIXNpZ25pZmljYW50VG9rZW5FbmRPZkxpbmVUb2tlbikge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbmRPZkxpbmVOb2RlID0gRW5kT2ZMaW5lTm9kZS5mcm9tU2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSBlbmRPZkxpbmVOb2RlLFxuICAgICAgICAgIHBhcnRGcmFtZSA9IEZyYW1lLmZyb21DaGlsZE5vZGUoY2hpbGROb2RlKTtcblxuICAgIHN0YXRlID0gc3RhdGUuYWR2YW5jZSgpO1xuXG4gICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUsIHBhcnRGcmFtZSk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gYCR7ZW5kT2ZMaW5lfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGVuZE9mTGluZVBhcnQgPSBuZXcgRW5kT2ZMaW5lUGFydCgpO1xuXG4gICAgcmV0dXJuIGVuZE9mTGluZVBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFbmRPZkxpbmVQYXJ0IiwiZW5kT2ZMaW5lIiwic3BlY2lhbFN5bWJvbHMiLCJUZXJtaW5hbFBhcnQiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInN0YXRlRW1wdHkiLCJpc0VtcHR5IiwibmV4dFNpZ25pZmljYW50VG9rZW4iLCJnZXROZXh0U2lnbmlmaWNhbnRUb2tlbiIsInNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuRW5kT2ZMaW5lVG9rZW4iLCJpc0VuZE9mTGluZVRva2VuIiwiZW5kT2ZMaW5lTm9kZSIsIkVuZE9mTGluZU5vZGUiLCJmcm9tU2lnbmlmaWNhbnRUb2tlbiIsImNoaWxkTm9kZSIsInBhcnRGcmFtZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsImFkdmFuY2UiLCJjb21wb3NlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJmcm9tTm90aGluZyIsImVuZE9mTGluZVBhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBcUJBOzs7NkJBUlU7OERBRWI7aUVBQ087a0VBQ0M7Ozs7OztBQUUxQixNQUFNLEVBQUVDLFNBQVMsRUFBRSxHQUFHQywyQkFBYztBQUVyQixNQUFNRixzQkFBc0JHLGlCQUFZO0lBQ3JEQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUgsTUFBTUksT0FBTztRQUVoQyxJQUFJRCxZQUFZO1lBQ2QsT0FBT0Q7UUFDVDtRQUVBLE1BQU1HLHVCQUF1QkwsTUFBTU0sdUJBQXVCLElBQ3BEQyxtQkFBbUJGLHNCQUNuQkcsaUNBQWlDRCxpQkFBaUJFLGdCQUFnQjtRQUV4RSxJQUFJLENBQUNELGdDQUFnQztZQUNuQyxPQUFPTjtRQUNUO1FBRUEsTUFBTVEsZ0JBQWdCQyxrQkFBYSxDQUFDQyxvQkFBb0IsQ0FBQ0wsbUJBQ25ETSxZQUFZSCxlQUNaSSxZQUFZQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ0g7UUFFdENiLFFBQVFBLE1BQU1pQixPQUFPO1FBRXJCbEIsUUFBUSxJQUFJLENBQUNtQixPQUFPLENBQUNuQixPQUFPZTtRQUU1QixPQUFPYixRQUFRRixPQUFPQyxPQUFPRTtJQUMvQjtJQUVBaUIsV0FBVztRQUNULE1BQU1DLFNBQVMsR0FBR3pCLFdBQVc7UUFFN0IsT0FBT3lCO0lBQ1Q7SUFFQSxPQUFPQyxjQUFjO1FBQ25CLE1BQU1DLGdCQUFnQixJQUFJNUI7UUFFMUIsT0FBTzRCO0lBQ1Q7QUFDRiJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL2VuZE9mTGluZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvdGVybWluYWxcIjtcbmltcG9ydCBFbmRPZkxpbmVOb2RlIGZyb20gXCIuLi8uLi9ub2RlL3Rlcm1pbmFsL2VuZE9mTGluZVwiO1xuXG5jb25zdCB7IGVuZE9mTGluZSB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVuZE9mTGluZVBhcnQgZXh0ZW5kcyBUZXJtaW5hbFBhcnQge1xuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnN1bWluZyA9IHRydWU7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc3RhdGVFbXB0eSA9IHN0YXRlLmlzRW1wdHkoKTtcblxuICAgIGlmIChzdGF0ZUVtcHR5KSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRTaWduaWZpY2FudFRva2VuID0gc3RhdGUuZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4oKSxcbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gbmV4dFNpZ25pZmljYW50VG9rZW4sIC8vL1xuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW5FbmRPZkxpbmVUb2tlbiA9IHNpZ25pZmljYW50VG9rZW4uaXNFbmRPZkxpbmVUb2tlbigpO1xuXG4gICAgaWYgKCFzaWduaWZpY2FudFRva2VuRW5kT2ZMaW5lVG9rZW4pIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZW5kT2ZMaW5lTm9kZSA9IEVuZE9mTGluZU5vZGUuZnJvbVNpZ25pZmljYW50VG9rZW4oc2lnbmlmaWNhbnRUb2tlbiksXG4gICAgICAgICAgY2hpbGROb2RlID0gZW5kT2ZMaW5lTm9kZSxcbiAgICAgICAgICBwYXJ0RnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7XG5cbiAgICBzdGF0ZSA9IHN0YXRlLmFkdmFuY2UoKTtcblxuICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKGZyYW1lLCBwYXJ0RnJhbWUpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IGAke2VuZE9mTGluZX1gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBlbmRPZkxpbmVQYXJ0ID0gbmV3IEVuZE9mTGluZVBhcnQoKTtcblxuICAgIHJldHVybiBlbmRPZkxpbmVQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiRW5kT2ZMaW5lUGFydCIsImVuZE9mTGluZSIsInNwZWNpYWxTeW1ib2xzIiwiVGVybWluYWxQYXJ0IiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY29uc3VtaW5nIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzdGF0ZUVtcHR5IiwiaXNFbXB0eSIsIm5leHRTaWduaWZpY2FudFRva2VuIiwiZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuIiwic2lnbmlmaWNhbnRUb2tlbkVuZE9mTGluZVRva2VuIiwiaXNFbmRPZkxpbmVUb2tlbiIsImVuZE9mTGluZU5vZGUiLCJFbmRPZkxpbmVOb2RlIiwiZnJvbVNpZ25pZmljYW50VG9rZW4iLCJjaGlsZE5vZGUiLCJwYXJ0RnJhbWUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJhZHZhbmNlIiwiY29tcG9zZSIsImFzU3RyaW5nIiwic3RyaW5nIiwiZnJvbU5vdGhpbmciLCJlbmRPZkxpbmVQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXFCQTs7OzZCQVJVOzhEQUViO2lFQUNPO2tFQUNDOzs7Ozs7QUFFMUIsTUFBTSxFQUFFQyxTQUFTLEVBQUUsR0FBR0MsMkJBQWM7QUFFckIsTUFBTUYsc0JBQXNCRyxpQkFBWTtJQUNyREMsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUN0QyxNQUFNQyxZQUFZO1FBRWxCLE9BQU9BO0lBQ1Q7SUFFQUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFILE1BQU1JLE9BQU87UUFFaEMsSUFBSUQsWUFBWTtZQUNkLE9BQU9EO1FBQ1Q7UUFFQSxNQUFNRyx1QkFBdUJMLE1BQU1NLHVCQUF1QixJQUNwREMsbUJBQW1CRixzQkFDbkJHLGlDQUFpQ0QsaUJBQWlCRSxnQkFBZ0I7UUFFeEUsSUFBSSxDQUFDRCxnQ0FBZ0M7WUFDbkMsT0FBT047UUFDVDtRQUVBLE1BQU1RLGdCQUFnQkMsa0JBQWEsQ0FBQ0Msb0JBQW9CLENBQUNMLG1CQUNuRE0sWUFBWUgsZUFDWkksWUFBWUMsY0FBSyxDQUFDQyxhQUFhLENBQUNIO1FBRXRDYixRQUFRQSxNQUFNaUIsT0FBTztRQUVyQmxCLFFBQVEsSUFBSSxDQUFDbUIsT0FBTyxDQUFDbkIsT0FBT2U7UUFFNUIsT0FBT2IsUUFBUUYsT0FBT0MsT0FBT0U7SUFDL0I7SUFFQWlCLFdBQVc7UUFDVCxNQUFNQyxTQUFTLEdBQUc3QixXQUFXO1FBRTdCLE9BQU82QjtJQUNUO0lBRUEsT0FBT0MsY0FBYztRQUNuQixNQUFNQyxnQkFBZ0IsSUFBSWhDO1FBRTFCLE9BQU9nQztJQUNUO0FBQ0YifQ==
@@ -23,6 +23,10 @@ class EpsilonPart extends _terminal.default {
23
23
  const epsilonPart = true;
24
24
  return epsilonPart;
25
25
  }
26
+ isConsuming(ruleMap, visitedRules = []) {
27
+ const consuming = false;
28
+ return consuming;
29
+ }
26
30
  parse(frame, state, forward, back) {
27
31
  const epsilonNode = _epsilon.default.fromNothing(), childNode = epsilonNode, partFrame = _frame.default.fromChildNode(childNode);
28
32
  frame = this.compose(frame, partFrame);
@@ -38,4 +42,4 @@ class EpsilonPart extends _terminal.default {
38
42
  }
39
43
  }
40
44
 
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL2Vwc2lsb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4uLy4uL2ZyYW1lXCI7XG5pbXBvcnQgRXBzaWxvbk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvdGVybWluYWwvZXBzaWxvblwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IGVwc2lsb24gfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFcHNpbG9uUGFydCBleHRlbmRzIFRlcm1pbmFsUGFydCB7XG4gIGlzRXBzaWxvblBhcnQoKSB7XG4gICAgY29uc3QgZXBzaWxvblBhcnQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGVwc2lsb25QYXJ0O1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgZXBzaWxvbk5vZGUgPSBFcHNpbG9uTm9kZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGNoaWxkTm9kZSA9IGVwc2lsb25Ob2RlLFxuICAgICAgICAgIHBhcnRGcmFtZSA9IEZyYW1lLmZyb21DaGlsZE5vZGUoY2hpbGROb2RlKTtcblxuICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKGZyYW1lLCBwYXJ0RnJhbWUpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IGAke2Vwc2lsb259YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgZXBzaWxvblBhcnQgPSBuZXcgRXBzaWxvblBhcnQoKTtcblxuICAgIHJldHVybiBlcHNpbG9uUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVwc2lsb25QYXJ0IiwiZXBzaWxvbiIsInNwZWNpYWxTeW1ib2xzIiwiVGVybWluYWxQYXJ0IiwiaXNFcHNpbG9uUGFydCIsImVwc2lsb25QYXJ0IiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJlcHNpbG9uTm9kZSIsIkVwc2lsb25Ob2RlIiwiZnJvbU5vdGhpbmciLCJjaGlsZE5vZGUiLCJwYXJ0RnJhbWUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJjb21wb3NlIiwiYXNTdHJpbmciLCJzdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBcUJBOzs7NkJBUlU7OERBRWI7Z0VBQ007aUVBQ0M7Ozs7OztBQUV6QixNQUFNLEVBQUVDLE9BQU8sRUFBRSxHQUFHQywyQkFBYztBQUVuQixNQUFNRixvQkFBb0JHLGlCQUFZO0lBQ25EQyxnQkFBZ0I7UUFDZCxNQUFNQyxjQUFjO1FBRXBCLE9BQU9BO0lBQ1Q7SUFFQUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGNBQWNDLGdCQUFXLENBQUNDLFdBQVcsSUFDckNDLFlBQVlILGFBQ1pJLFlBQVlDLGNBQUssQ0FBQ0MsYUFBYSxDQUFDSDtRQUV0Q1AsUUFBUSxJQUFJLENBQUNXLE9BQU8sQ0FBQ1gsT0FBT1E7UUFFNUIsT0FBT04sUUFBUUYsT0FBT0MsT0FBT0U7SUFDL0I7SUFFQVMsV0FBVztRQUNULE1BQU1DLFNBQVMsR0FBR25CLFNBQVM7UUFFM0IsT0FBT21CO0lBQ1Q7SUFFQSxPQUFPUCxjQUFjO1FBQ25CLE1BQU1SLGNBQWMsSUFBSUw7UUFFeEIsT0FBT0s7SUFDVDtBQUNGIn0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL2Vwc2lsb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4uLy4uL2ZyYW1lXCI7XG5pbXBvcnQgRXBzaWxvbk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvdGVybWluYWwvZXBzaWxvblwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IGVwc2lsb24gfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFcHNpbG9uUGFydCBleHRlbmRzIFRlcm1pbmFsUGFydCB7XG4gIGlzRXBzaWxvblBhcnQoKSB7XG4gICAgY29uc3QgZXBzaWxvblBhcnQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGVwc2lsb25QYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBlcHNpbG9uTm9kZSA9IEVwc2lsb25Ob2RlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgY2hpbGROb2RlID0gZXBzaWxvbk5vZGUsXG4gICAgICAgICAgcGFydEZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpO1xuXG4gICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUsIHBhcnRGcmFtZSk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gYCR7ZXBzaWxvbn1gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBlcHNpbG9uUGFydCA9IG5ldyBFcHNpbG9uUGFydCgpO1xuXG4gICAgcmV0dXJuIGVwc2lsb25QYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiRXBzaWxvblBhcnQiLCJlcHNpbG9uIiwic3BlY2lhbFN5bWJvbHMiLCJUZXJtaW5hbFBhcnQiLCJpc0Vwc2lsb25QYXJ0IiwiZXBzaWxvblBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImVwc2lsb25Ob2RlIiwiRXBzaWxvbk5vZGUiLCJmcm9tTm90aGluZyIsImNoaWxkTm9kZSIsInBhcnRGcmFtZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsImNvbXBvc2UiLCJhc1N0cmluZyIsInN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7Ozs2QkFSVTs4REFFYjtnRUFDTTtpRUFDQzs7Ozs7O0FBRXpCLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEdBQUdDLDJCQUFjO0FBRW5CLE1BQU1GLG9CQUFvQkcsaUJBQVk7SUFDbkRDLGdCQUFnQjtRQUNkLE1BQU1DLGNBQWM7UUFFcEIsT0FBT0E7SUFDVDtJQUVBQyxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFO1FBQ3RDLE1BQU1DLFlBQVk7UUFFbEIsT0FBT0E7SUFDVDtJQUVBQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsY0FBY0MsZ0JBQVcsQ0FBQ0MsV0FBVyxJQUNyQ0MsWUFBWUgsYUFDWkksWUFBWUMsY0FBSyxDQUFDQyxhQUFhLENBQUNIO1FBRXRDUCxRQUFRLElBQUksQ0FBQ1csT0FBTyxDQUFDWCxPQUFPUTtRQUU1QixPQUFPTixRQUFRRixPQUFPQyxPQUFPRTtJQUMvQjtJQUVBUyxXQUFXO1FBQ1QsTUFBTUMsU0FBUyxHQUFHdkIsU0FBUztRQUUzQixPQUFPdUI7SUFDVDtJQUVBLE9BQU9QLGNBQWM7UUFDbkIsTUFBTVosY0FBYyxJQUFJTDtRQUV4QixPQUFPSztJQUNUO0FBQ0YifQ==
@@ -23,6 +23,10 @@ class NoWhitespacePart extends _terminal.default {
23
23
  const noWhitespacePart = true;
24
24
  return noWhitespacePart;
25
25
  }
26
+ isConsuming(ruleMap, visitedRules = []) {
27
+ const consuming = false;
28
+ return consuming;
29
+ }
26
30
  parse(frame, state, forward, back) {
27
31
  const stateEmpty = state.isEmpty();
28
32
  if (stateEmpty) {
@@ -46,4 +50,4 @@ class NoWhitespacePart extends _terminal.default {
46
50
  }
47
51
  }
48
52
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL25vV2hpdGVzcGFjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvdGVybWluYWxcIjtcbmltcG9ydCBOb1doaXRlc3BhY2VOb2RlIGZyb20gXCIuLi8uLi9ub2RlL3Rlcm1pbmFsL25vV2hpdGVzcGFjZVwiO1xuXG5jb25zdCB7IG5vV2hpdGVzcGFjZSB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vV2hpdGVzcGFjZVBhcnQgZXh0ZW5kcyBUZXJtaW5hbFBhcnQge1xuICBpc05vV2hpdGVzcGFjZVBhcnQoKSB7XG4gICAgY29uc3Qgbm9XaGl0ZXNwYWNlUGFydCA9IHRydWU7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlUGFydDtcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHN0YXRlRW1wdHkgPSBzdGF0ZS5pc0VtcHR5KCk7XG5cbiAgICBpZiAoc3RhdGVFbXB0eSkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4gPSBzdGF0ZS5pc05leHRUb2tlbldoaXRlc3BhY2VUb2tlbigpO1xuXG4gICAgaWYgKG5leHRUb2tlbldoaXRlc3BhY2VUb2tlbikge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBub1doaXRlc3BhY2VOb2RlID0gTm9XaGl0ZXNwYWNlTm9kZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGNoaWxkTm9kZSA9IG5vV2hpdGVzcGFjZU5vZGUsIC8vL1xuICAgICAgICAgIHBhcnRGcmFtZSA9IEZyYW1lLmZyb21DaGlsZE5vZGUoY2hpbGROb2RlKTtcblxuICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKGZyYW1lLCBwYXJ0RnJhbWUpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IGAke25vV2hpdGVzcGFjZX1gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBub1doaXRlc3BhY2VQYXJ0ID0gbmV3IE5vV2hpdGVzcGFjZVBhcnQoKTtcblxuICAgIHJldHVybiBub1doaXRlc3BhY2VQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiTm9XaGl0ZXNwYWNlUGFydCIsIm5vV2hpdGVzcGFjZSIsInNwZWNpYWxTeW1ib2xzIiwiVGVybWluYWxQYXJ0IiwiaXNOb1doaXRlc3BhY2VQYXJ0Iiwibm9XaGl0ZXNwYWNlUGFydCIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwic3RhdGVFbXB0eSIsImlzRW1wdHkiLCJuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4iLCJpc05leHRUb2tlbldoaXRlc3BhY2VUb2tlbiIsIm5vV2hpdGVzcGFjZU5vZGUiLCJOb1doaXRlc3BhY2VOb2RlIiwiZnJvbU5vdGhpbmciLCJjaGlsZE5vZGUiLCJwYXJ0RnJhbWUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJjb21wb3NlIiwiYXNTdHJpbmciLCJzdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBcUJBOzs7NkJBUlU7OERBRWI7aUVBQ087cUVBQ0k7Ozs7OztBQUU3QixNQUFNLEVBQUVDLFlBQVksRUFBRSxHQUFHQywyQkFBYztBQUV4QixNQUFNRix5QkFBeUJHLGlCQUFZO0lBQ3hEQyxxQkFBcUI7UUFDbkIsTUFBTUMsbUJBQW1CO1FBRXpCLE9BQU9BO0lBQ1Q7SUFFQUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFILE1BQU1JLE9BQU87UUFFaEMsSUFBSUQsWUFBWTtZQUNkLE9BQU9EO1FBQ1Q7UUFFQSxNQUFNRywyQkFBMkJMLE1BQU1NLDBCQUEwQjtRQUVqRSxJQUFJRCwwQkFBMEI7WUFDNUIsT0FBT0g7UUFDVDtRQUVBLE1BQU1LLG1CQUFtQkMscUJBQWdCLENBQUNDLFdBQVcsSUFDL0NDLFlBQVlILGtCQUNaSSxZQUFZQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ0g7UUFFdENYLFFBQVEsSUFBSSxDQUFDZSxPQUFPLENBQUNmLE9BQU9ZO1FBRTVCLE9BQU9WLFFBQVFGLE9BQU9DLE9BQU9FO0lBQy9CO0lBRUFhLFdBQVc7UUFDVCxNQUFNQyxTQUFTLEdBQUd2QixjQUFjO1FBRWhDLE9BQU91QjtJQUNUO0lBRUEsT0FBT1AsY0FBYztRQUNuQixNQUFNWixtQkFBbUIsSUFBSUw7UUFFN0IsT0FBT0s7SUFDVDtBQUNGIn0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL25vV2hpdGVzcGFjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvdGVybWluYWxcIjtcbmltcG9ydCBOb1doaXRlc3BhY2VOb2RlIGZyb20gXCIuLi8uLi9ub2RlL3Rlcm1pbmFsL25vV2hpdGVzcGFjZVwiO1xuXG5jb25zdCB7IG5vV2hpdGVzcGFjZSB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vV2hpdGVzcGFjZVBhcnQgZXh0ZW5kcyBUZXJtaW5hbFBhcnQge1xuICBpc05vV2hpdGVzcGFjZVBhcnQoKSB7XG4gICAgY29uc3Qgbm9XaGl0ZXNwYWNlUGFydCA9IHRydWU7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlUGFydDtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc3RhdGVFbXB0eSA9IHN0YXRlLmlzRW1wdHkoKTtcblxuICAgIGlmIChzdGF0ZUVtcHR5KSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRUb2tlbldoaXRlc3BhY2VUb2tlbiA9IHN0YXRlLmlzTmV4dFRva2VuV2hpdGVzcGFjZVRva2VuKCk7XG5cbiAgICBpZiAobmV4dFRva2VuV2hpdGVzcGFjZVRva2VuKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vV2hpdGVzcGFjZU5vZGUgPSBOb1doaXRlc3BhY2VOb2RlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgY2hpbGROb2RlID0gbm9XaGl0ZXNwYWNlTm9kZSwgLy8vXG4gICAgICAgICAgcGFydEZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpO1xuXG4gICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUsIHBhcnRGcmFtZSk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gYCR7bm9XaGl0ZXNwYWNlfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IG5vV2hpdGVzcGFjZVBhcnQgPSBuZXcgTm9XaGl0ZXNwYWNlUGFydCgpO1xuXG4gICAgcmV0dXJuIG5vV2hpdGVzcGFjZVBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJOb1doaXRlc3BhY2VQYXJ0Iiwibm9XaGl0ZXNwYWNlIiwic3BlY2lhbFN5bWJvbHMiLCJUZXJtaW5hbFBhcnQiLCJpc05vV2hpdGVzcGFjZVBhcnQiLCJub1doaXRlc3BhY2VQYXJ0IiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY29uc3VtaW5nIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzdGF0ZUVtcHR5IiwiaXNFbXB0eSIsIm5leHRUb2tlbldoaXRlc3BhY2VUb2tlbiIsImlzTmV4dFRva2VuV2hpdGVzcGFjZVRva2VuIiwibm9XaGl0ZXNwYWNlTm9kZSIsIk5vV2hpdGVzcGFjZU5vZGUiLCJmcm9tTm90aGluZyIsImNoaWxkTm9kZSIsInBhcnRGcmFtZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsImNvbXBvc2UiLCJhc1N0cmluZyIsInN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7Ozs2QkFSVTs4REFFYjtpRUFDTztxRUFDSTs7Ozs7O0FBRTdCLE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUdDLDJCQUFjO0FBRXhCLE1BQU1GLHlCQUF5QkcsaUJBQVk7SUFDeERDLHFCQUFxQjtRQUNuQixNQUFNQyxtQkFBbUI7UUFFekIsT0FBT0E7SUFDVDtJQUVBQyxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFO1FBQ3RDLE1BQU1DLFlBQVk7UUFFbEIsT0FBT0E7SUFDVDtJQUVBQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUgsTUFBTUksT0FBTztRQUVoQyxJQUFJRCxZQUFZO1lBQ2QsT0FBT0Q7UUFDVDtRQUVBLE1BQU1HLDJCQUEyQkwsTUFBTU0sMEJBQTBCO1FBRWpFLElBQUlELDBCQUEwQjtZQUM1QixPQUFPSDtRQUNUO1FBRUEsTUFBTUssbUJBQW1CQyxxQkFBZ0IsQ0FBQ0MsV0FBVyxJQUMvQ0MsWUFBWUgsa0JBQ1pJLFlBQVlDLGNBQUssQ0FBQ0MsYUFBYSxDQUFDSDtRQUV0Q1gsUUFBUSxJQUFJLENBQUNlLE9BQU8sQ0FBQ2YsT0FBT1k7UUFFNUIsT0FBT1YsUUFBUUYsT0FBT0MsT0FBT0U7SUFDL0I7SUFFQWEsV0FBVztRQUNULE1BQU1DLFNBQVMsR0FBRzNCLGNBQWM7UUFFaEMsT0FBTzJCO0lBQ1Q7SUFFQSxPQUFPUCxjQUFjO1FBQ25CLE1BQU1oQixtQkFBbUIsSUFBSUw7UUFFN0IsT0FBT0s7SUFDVDtBQUNGIn0=
@@ -26,6 +26,10 @@ class RegularExpressionPart extends _terminal.default {
26
26
  getRegularExpression() {
27
27
  return this.regularExpression;
28
28
  }
29
+ isConsuming(ruleMap, visitedRules = []) {
30
+ const consuming = true;
31
+ return consuming;
32
+ }
29
33
  parse(frame, state, forward, back) {
30
34
  const stateEmpty = state.isEmpty();
31
35
  if (stateEmpty) {
@@ -54,4 +58,4 @@ class RegularExpressionPart extends _terminal.default {
54
58
  }
55
59
  }
56
60
 
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3JlZ3VsYXJFeHByZXNzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuaW1wb3J0IFRlcm1pbmFsTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVndWxhckV4cHJlc3Npb25QYXJ0IGV4dGVuZHMgVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IocmVndWxhckV4cHJlc3Npb24pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5yZWd1bGFyRXhwcmVzc2lvbiA9IHJlZ3VsYXJFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0UmVndWxhckV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucmVndWxhckV4cHJlc3Npb247XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzdGF0ZUVtcHR5ID0gc3RhdGUuaXNFbXB0eSgpO1xuXG4gICAgaWYgKHN0YXRlRW1wdHkpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFNpZ25pZmljYW50VG9rZW4gPSBzdGF0ZS5nZXROZXh0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSBuZXh0U2lnbmlmaWNhbnRUb2tlbiwgLy8vXG4gICAgICAgICAgY29udGVudCA9IHNpZ25pZmljYW50VG9rZW4uZ2V0Q29udGVudCgpLFxuICAgICAgICAgIG1hdGNoZXMgPSBjb250ZW50Lm1hdGNoKHRoaXMucmVndWxhckV4cHJlc3Npb24pO1xuXG4gICAgaWYgKG1hdGNoZXMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RNYXRjaCA9IGZpcnN0KG1hdGNoZXMpO1xuXG4gICAgaWYgKGZpcnN0TWF0Y2ggIT09IGNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gVGVybWluYWxOb2RlLmZyb21TaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pLFxuICAgICAgICAgIGNoaWxkTm9kZSA9IHRlcm1pbmFsTm9kZSxcbiAgICAgICAgICBwYXJ0RnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7XG5cbiAgICBzdGF0ZSA9IHN0YXRlLmFkdmFuY2UoKTtcblxuICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKGZyYW1lLCBwYXJ0RnJhbWUpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHJlZ3VsYXJFeHByZXNzaW9uU3RyaW5nID0gdGhpcy5yZWd1bGFyRXhwcmVzc2lvbi50b1N0cmluZygpLFxuXHRcdCAgICAgIHN0cmluZyA9IHJlZ3VsYXJFeHByZXNzaW9uU3RyaW5nOyAvLy9cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJlZ3VsYXJFeHByZXNzaW9uKHJlZ3VsYXJFeHByZXNzaW9uKSB7XG4gICAgY29uc3QgcmVndWxhckV4cHJlc3Npb25QYXJ0ID0gbmV3IFJlZ3VsYXJFeHByZXNzaW9uUGFydChyZWd1bGFyRXhwcmVzc2lvbik7XG5cbiAgICByZXR1cm4gcmVndWxhckV4cHJlc3Npb25QYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiUmVndWxhckV4cHJlc3Npb25QYXJ0IiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsIlRlcm1pbmFsUGFydCIsInJlZ3VsYXJFeHByZXNzaW9uIiwiZ2V0UmVndWxhckV4cHJlc3Npb24iLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInN0YXRlRW1wdHkiLCJpc0VtcHR5IiwibmV4dFNpZ25pZmljYW50VG9rZW4iLCJnZXROZXh0U2lnbmlmaWNhbnRUb2tlbiIsInNpZ25pZmljYW50VG9rZW4iLCJjb250ZW50IiwiZ2V0Q29udGVudCIsIm1hdGNoZXMiLCJtYXRjaCIsImZpcnN0TWF0Y2giLCJ0ZXJtaW5hbE5vZGUiLCJUZXJtaW5hbE5vZGUiLCJmcm9tU2lnbmlmaWNhbnRUb2tlbiIsImNoaWxkTm9kZSIsInBhcnRGcmFtZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsImFkdmFuY2UiLCJjb21wb3NlIiwiYXNTdHJpbmciLCJyZWd1bGFyRXhwcmVzc2lvblN0cmluZyIsInRvU3RyaW5nIiwic3RyaW5nIiwiZnJvbVJlZ3VsYXJFeHByZXNzaW9uIiwicmVndWxhckV4cHJlc3Npb25QYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXFCQTs7OzJCQVJVOzhEQUViO2lFQUNPO2tFQUNBOzs7Ozs7QUFFekIsTUFBTSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MseUJBQWM7QUFFakIsTUFBTUYsOEJBQThCRyxpQkFBWTtJQUM3RCxZQUFZQyxpQkFBaUIsQ0FBRTtRQUM3QixLQUFLO1FBRUwsSUFBSSxDQUFDQSxpQkFBaUIsR0FBR0E7SUFDM0I7SUFFQUMsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDRCxpQkFBaUI7SUFDL0I7SUFFQUUsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFILE1BQU1JLE9BQU87UUFFaEMsSUFBSUQsWUFBWTtZQUNkLE9BQU9EO1FBQ1Q7UUFFQSxNQUFNRyx1QkFBdUJMLE1BQU1NLHVCQUF1QixJQUNwREMsbUJBQW1CRixzQkFDbkJHLFVBQVVELGlCQUFpQkUsVUFBVSxJQUNyQ0MsVUFBVUYsUUFBUUcsS0FBSyxDQUFDLElBQUksQ0FBQ2YsaUJBQWlCO1FBRXBELElBQUljLFlBQVksTUFBTTtZQUNwQixPQUFPUjtRQUNUO1FBRUEsTUFBTVUsYUFBYW5CLE1BQU1pQjtRQUV6QixJQUFJRSxlQUFlSixTQUFTO1lBQzFCLE9BQU9OO1FBQ1Q7UUFFQSxNQUFNVyxlQUFlQyxrQkFBWSxDQUFDQyxvQkFBb0IsQ0FBQ1IsbUJBQ2pEUyxZQUFZSCxjQUNaSSxZQUFZQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ0g7UUFFdENoQixRQUFRQSxNQUFNb0IsT0FBTztRQUVyQnJCLFFBQVEsSUFBSSxDQUFDc0IsT0FBTyxDQUFDdEIsT0FBT2tCO1FBRTVCLE9BQU9oQixRQUFRRixPQUFPQyxPQUFPRTtJQUMvQjtJQUVBb0IsV0FBVztRQUNULE1BQU1DLDBCQUEwQixJQUFJLENBQUMzQixpQkFBaUIsQ0FBQzRCLFFBQVEsSUFDM0RDLFNBQVNGLHlCQUF5QixHQUFHO1FBRXpDLE9BQU9FO0lBQ1Q7SUFFQSxPQUFPQyxzQkFBc0I5QixpQkFBaUIsRUFBRTtRQUM5QyxNQUFNK0Isd0JBQXdCLElBQUluQyxzQkFBc0JJO1FBRXhELE9BQU8rQjtJQUNUO0FBQ0YifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3JlZ3VsYXJFeHByZXNzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuaW1wb3J0IFRlcm1pbmFsTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVndWxhckV4cHJlc3Npb25QYXJ0IGV4dGVuZHMgVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IocmVndWxhckV4cHJlc3Npb24pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5yZWd1bGFyRXhwcmVzc2lvbiA9IHJlZ3VsYXJFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0UmVndWxhckV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucmVndWxhckV4cHJlc3Npb247XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnN1bWluZyA9IHRydWU7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc3RhdGVFbXB0eSA9IHN0YXRlLmlzRW1wdHkoKTtcblxuICAgIGlmIChzdGF0ZUVtcHR5KSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRTaWduaWZpY2FudFRva2VuID0gc3RhdGUuZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4oKSxcbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gbmV4dFNpZ25pZmljYW50VG9rZW4sIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSBzaWduaWZpY2FudFRva2VuLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBtYXRjaGVzID0gY29udGVudC5tYXRjaCh0aGlzLnJlZ3VsYXJFeHByZXNzaW9uKTtcblxuICAgIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0TWF0Y2ggPSBmaXJzdChtYXRjaGVzKTtcblxuICAgIGlmIChmaXJzdE1hdGNoICE9PSBjb250ZW50KSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IFRlcm1pbmFsTm9kZS5mcm9tU2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSB0ZXJtaW5hbE5vZGUsXG4gICAgICAgICAgcGFydEZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpO1xuXG4gICAgc3RhdGUgPSBzdGF0ZS5hZHZhbmNlKCk7XG5cbiAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShmcmFtZSwgcGFydEZyYW1lKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCByZWd1bGFyRXhwcmVzc2lvblN0cmluZyA9IHRoaXMucmVndWxhckV4cHJlc3Npb24udG9TdHJpbmcoKSxcblx0XHQgICAgICBzdHJpbmcgPSByZWd1bGFyRXhwcmVzc2lvblN0cmluZzsgLy8vXG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21SZWd1bGFyRXhwcmVzc2lvbihyZWd1bGFyRXhwcmVzc2lvbikge1xuICAgIGNvbnN0IHJlZ3VsYXJFeHByZXNzaW9uUGFydCA9IG5ldyBSZWd1bGFyRXhwcmVzc2lvblBhcnQocmVndWxhckV4cHJlc3Npb24pO1xuXG4gICAgcmV0dXJuIHJlZ3VsYXJFeHByZXNzaW9uUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlJlZ3VsYXJFeHByZXNzaW9uUGFydCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJUZXJtaW5hbFBhcnQiLCJyZWd1bGFyRXhwcmVzc2lvbiIsImdldFJlZ3VsYXJFeHByZXNzaW9uIiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY29uc3VtaW5nIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzdGF0ZUVtcHR5IiwiaXNFbXB0eSIsIm5leHRTaWduaWZpY2FudFRva2VuIiwiZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuIiwiY29udGVudCIsImdldENvbnRlbnQiLCJtYXRjaGVzIiwibWF0Y2giLCJmaXJzdE1hdGNoIiwidGVybWluYWxOb2RlIiwiVGVybWluYWxOb2RlIiwiZnJvbVNpZ25pZmljYW50VG9rZW4iLCJjaGlsZE5vZGUiLCJwYXJ0RnJhbWUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJhZHZhbmNlIiwiY29tcG9zZSIsImFzU3RyaW5nIiwicmVndWxhckV4cHJlc3Npb25TdHJpbmciLCJ0b1N0cmluZyIsInN0cmluZyIsImZyb21SZWd1bGFyRXhwcmVzc2lvbiIsInJlZ3VsYXJFeHByZXNzaW9uUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7OzsyQkFSVTs4REFFYjtpRUFDTztrRUFDQTs7Ozs7O0FBRXpCLE1BQU0sRUFBRUMsS0FBSyxFQUFFLEdBQUdDLHlCQUFjO0FBRWpCLE1BQU1GLDhCQUE4QkcsaUJBQVk7SUFDN0QsWUFBWUMsaUJBQWlCLENBQUU7UUFDN0IsS0FBSztRQUVMLElBQUksQ0FBQ0EsaUJBQWlCLEdBQUdBO0lBQzNCO0lBRUFDLHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQ0QsaUJBQWlCO0lBQy9CO0lBRUFFLFlBQVlDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEVBQUU7UUFDdEMsTUFBTUMsWUFBWTtRQUVsQixPQUFPQTtJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxhQUFhSCxNQUFNSSxPQUFPO1FBRWhDLElBQUlELFlBQVk7WUFDZCxPQUFPRDtRQUNUO1FBRUEsTUFBTUcsdUJBQXVCTCxNQUFNTSx1QkFBdUIsSUFDcERDLG1CQUFtQkYsc0JBQ25CRyxVQUFVRCxpQkFBaUJFLFVBQVUsSUFDckNDLFVBQVVGLFFBQVFHLEtBQUssQ0FBQyxJQUFJLENBQUNuQixpQkFBaUI7UUFFcEQsSUFBSWtCLFlBQVksTUFBTTtZQUNwQixPQUFPUjtRQUNUO1FBRUEsTUFBTVUsYUFBYXZCLE1BQU1xQjtRQUV6QixJQUFJRSxlQUFlSixTQUFTO1lBQzFCLE9BQU9OO1FBQ1Q7UUFFQSxNQUFNVyxlQUFlQyxrQkFBWSxDQUFDQyxvQkFBb0IsQ0FBQ1IsbUJBQ2pEUyxZQUFZSCxjQUNaSSxZQUFZQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ0g7UUFFdENoQixRQUFRQSxNQUFNb0IsT0FBTztRQUVyQnJCLFFBQVEsSUFBSSxDQUFDc0IsT0FBTyxDQUFDdEIsT0FBT2tCO1FBRTVCLE9BQU9oQixRQUFRRixPQUFPQyxPQUFPRTtJQUMvQjtJQUVBb0IsV0FBVztRQUNULE1BQU1DLDBCQUEwQixJQUFJLENBQUMvQixpQkFBaUIsQ0FBQ2dDLFFBQVEsSUFDM0RDLFNBQVNGLHlCQUF5QixHQUFHO1FBRXpDLE9BQU9FO0lBQ1Q7SUFFQSxPQUFPQyxzQkFBc0JsQyxpQkFBaUIsRUFBRTtRQUM5QyxNQUFNbUMsd0JBQXdCLElBQUl2QyxzQkFBc0JJO1FBRXhELE9BQU9tQztJQUNUO0FBQ0YifQ==
@@ -24,6 +24,10 @@ class SignificantTokenTypePart extends _terminal.default {
24
24
  getSignificantTokenType() {
25
25
  return this.significantTokenType;
26
26
  }
27
+ isConsuming(ruleMap, visitedRules = []) {
28
+ const consuming = true;
29
+ return consuming;
30
+ }
27
31
  parse(frame, state, forward, back) {
28
32
  const stateEmpty = state.isEmpty();
29
33
  if (stateEmpty) {
@@ -48,4 +52,4 @@ class SignificantTokenTypePart extends _terminal.default {
48
52
  }
49
53
  }
50
54
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3NpZ25pZmljYW50VG9rZW5UeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4uLy4uL2ZyYW1lXCI7XG5pbXBvcnQgVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L3Rlcm1pbmFsXCI7XG5pbXBvcnQgVGVybWluYWxOb2RlIGZyb20gXCIuLi8uLi9ub2RlL3Rlcm1pbmFsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNpZ25pZmljYW50VG9rZW5UeXBlUGFydCBleHRlbmRzIFRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHNpZ25pZmljYW50VG9rZW5UeXBlKSB7XG4gICAgc3VwZXIoKTtcbiAgICBcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW5UeXBlID0gc2lnbmlmaWNhbnRUb2tlblR5cGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaWduaWZpY2FudFRva2VuVHlwZTtcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHN0YXRlRW1wdHkgPSBzdGF0ZS5pc0VtcHR5KCk7XG5cbiAgICBpZiAoc3RhdGVFbXB0eSkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0U2lnbmlmaWNhbnRUb2tlbiA9IHN0YXRlLmdldE5leHRTaWduaWZpY2FudFRva2VuKCksXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IG5leHRTaWduaWZpY2FudFRva2VuLCAvLy9cbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuVHlwZSA9IHNpZ25pZmljYW50VG9rZW4uZ2V0VHlwZSgpO1xuXG4gICAgaWYgKHNpZ25pZmljYW50VG9rZW5UeXBlICE9PSB0aGlzLnNpZ25pZmljYW50VG9rZW5UeXBlKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IFRlcm1pbmFsTm9kZS5mcm9tU2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSB0ZXJtaW5hbE5vZGUsXG4gICAgICAgICAgcGFydEZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpO1xuXG4gICAgc3RhdGUgPSBzdGF0ZS5hZHZhbmNlKCk7XG5cbiAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShmcmFtZSwgcGFydEZyYW1lKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBgWyR7dGhpcy5zaWduaWZpY2FudFRva2VuVHlwZX1dYDtcbiAgICBcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21TaWduaWZpY2FudFRva2VuVHlwZShzaWduaWZpY2FudFRva2VuVHlwZSkge1xuICAgIGNvbnN0IHNpZ25pZmljYW50VG9rZW5UeXBlUGFydCA9IG5ldyBTaWduaWZpY2FudFRva2VuVHlwZVBhcnQoc2lnbmlmaWNhbnRUb2tlblR5cGUpO1xuXG4gICAgcmV0dXJuIHNpZ25pZmljYW50VG9rZW5UeXBlUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNpZ25pZmljYW50VG9rZW5UeXBlUGFydCIsIlRlcm1pbmFsUGFydCIsInNpZ25pZmljYW50VG9rZW5UeXBlIiwiZ2V0U2lnbmlmaWNhbnRUb2tlblR5cGUiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInN0YXRlRW1wdHkiLCJpc0VtcHR5IiwibmV4dFNpZ25pZmljYW50VG9rZW4iLCJnZXROZXh0U2lnbmlmaWNhbnRUb2tlbiIsInNpZ25pZmljYW50VG9rZW4iLCJnZXRUeXBlIiwidGVybWluYWxOb2RlIiwiVGVybWluYWxOb2RlIiwiZnJvbVNpZ25pZmljYW50VG9rZW4iLCJjaGlsZE5vZGUiLCJwYXJ0RnJhbWUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJhZHZhbmNlIiwiY29tcG9zZSIsImFzU3RyaW5nIiwic3RyaW5nIiwiZnJvbVNpZ25pZmljYW50VG9rZW5UeXBlIiwic2lnbmlmaWNhbnRUb2tlblR5cGVQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7OzhEQUpIO2lFQUNPO2tFQUNBOzs7Ozs7QUFFVixNQUFNQSxpQ0FBaUNDLGlCQUFZO0lBQ2hFLFlBQVlDLG9CQUFvQixDQUFFO1FBQ2hDLEtBQUs7UUFFTCxJQUFJLENBQUNBLG9CQUFvQixHQUFHQTtJQUM5QjtJQUVBQywwQkFBMEI7UUFDeEIsT0FBTyxJQUFJLENBQUNELG9CQUFvQjtJQUNsQztJQUVBRSxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUgsTUFBTUksT0FBTztRQUVoQyxJQUFJRCxZQUFZO1lBQ2QsT0FBT0Q7UUFDVDtRQUVBLE1BQU1HLHVCQUF1QkwsTUFBTU0sdUJBQXVCLElBQ3BEQyxtQkFBbUJGLHNCQUNuQlQsdUJBQXVCVyxpQkFBaUJDLE9BQU87UUFFckQsSUFBSVoseUJBQXlCLElBQUksQ0FBQ0Esb0JBQW9CLEVBQUU7WUFDdEQsT0FBT007UUFDVDtRQUVBLE1BQU1PLGVBQWVDLGtCQUFZLENBQUNDLG9CQUFvQixDQUFDSixtQkFDakRLLFlBQVlILGNBQ1pJLFlBQVlDLGNBQUssQ0FBQ0MsYUFBYSxDQUFDSDtRQUV0Q1osUUFBUUEsTUFBTWdCLE9BQU87UUFFckJqQixRQUFRLElBQUksQ0FBQ2tCLE9BQU8sQ0FBQ2xCLE9BQU9jO1FBRTVCLE9BQU9aLFFBQVFGLE9BQU9DLE9BQU9FO0lBQy9CO0lBRUFnQixXQUFXO1FBQ1QsTUFBTUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUN2QixvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFFL0MsT0FBT3VCO0lBQ1Q7SUFFQSxPQUFPQyx5QkFBeUJ4QixvQkFBb0IsRUFBRTtRQUNwRCxNQUFNeUIsMkJBQTJCLElBQUkzQix5QkFBeUJFO1FBRTlELE9BQU95QjtJQUNUO0FBQ0YifQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3NpZ25pZmljYW50VG9rZW5UeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4uLy4uL2ZyYW1lXCI7XG5pbXBvcnQgVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L3Rlcm1pbmFsXCI7XG5pbXBvcnQgVGVybWluYWxOb2RlIGZyb20gXCIuLi8uLi9ub2RlL3Rlcm1pbmFsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNpZ25pZmljYW50VG9rZW5UeXBlUGFydCBleHRlbmRzIFRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHNpZ25pZmljYW50VG9rZW5UeXBlKSB7XG4gICAgc3VwZXIoKTtcbiAgICBcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW5UeXBlID0gc2lnbmlmaWNhbnRUb2tlblR5cGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaWduaWZpY2FudFRva2VuVHlwZTtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gdHJ1ZTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzdGF0ZUVtcHR5ID0gc3RhdGUuaXNFbXB0eSgpO1xuXG4gICAgaWYgKHN0YXRlRW1wdHkpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFNpZ25pZmljYW50VG9rZW4gPSBzdGF0ZS5nZXROZXh0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSBuZXh0U2lnbmlmaWNhbnRUb2tlbiwgLy8vXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlblR5cGUgPSBzaWduaWZpY2FudFRva2VuLmdldFR5cGUoKTtcblxuICAgIGlmIChzaWduaWZpY2FudFRva2VuVHlwZSAhPT0gdGhpcy5zaWduaWZpY2FudFRva2VuVHlwZSkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBUZXJtaW5hbE5vZGUuZnJvbVNpZ25pZmljYW50VG9rZW4oc2lnbmlmaWNhbnRUb2tlbiksXG4gICAgICAgICAgY2hpbGROb2RlID0gdGVybWluYWxOb2RlLFxuICAgICAgICAgIHBhcnRGcmFtZSA9IEZyYW1lLmZyb21DaGlsZE5vZGUoY2hpbGROb2RlKTtcblxuICAgIHN0YXRlID0gc3RhdGUuYWR2YW5jZSgpO1xuXG4gICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUsIHBhcnRGcmFtZSk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gYFske3RoaXMuc2lnbmlmaWNhbnRUb2tlblR5cGV9XWA7XG4gICAgXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU2lnbmlmaWNhbnRUb2tlblR5cGUoc2lnbmlmaWNhbnRUb2tlblR5cGUpIHtcbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuVHlwZVBhcnQgPSBuZXcgU2lnbmlmaWNhbnRUb2tlblR5cGVQYXJ0KHNpZ25pZmljYW50VG9rZW5UeXBlKTtcblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VuVHlwZVBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTaWduaWZpY2FudFRva2VuVHlwZVBhcnQiLCJUZXJtaW5hbFBhcnQiLCJzaWduaWZpY2FudFRva2VuVHlwZSIsImdldFNpZ25pZmljYW50VG9rZW5UeXBlIiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY29uc3VtaW5nIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzdGF0ZUVtcHR5IiwiaXNFbXB0eSIsIm5leHRTaWduaWZpY2FudFRva2VuIiwiZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuIiwiZ2V0VHlwZSIsInRlcm1pbmFsTm9kZSIsIlRlcm1pbmFsTm9kZSIsImZyb21TaWduaWZpY2FudFRva2VuIiwiY2hpbGROb2RlIiwicGFydEZyYW1lIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2RlIiwiYWR2YW5jZSIsImNvbXBvc2UiLCJhc1N0cmluZyIsInN0cmluZyIsImZyb21TaWduaWZpY2FudFRva2VuVHlwZSIsInNpZ25pZmljYW50VG9rZW5UeXBlUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFxQkE7Ozs4REFKSDtpRUFDTztrRUFDQTs7Ozs7O0FBRVYsTUFBTUEsaUNBQWlDQyxpQkFBWTtJQUNoRSxZQUFZQyxvQkFBb0IsQ0FBRTtRQUNoQyxLQUFLO1FBRUwsSUFBSSxDQUFDQSxvQkFBb0IsR0FBR0E7SUFDOUI7SUFFQUMsMEJBQTBCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDRCxvQkFBb0I7SUFDbEM7SUFFQUUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUN0QyxNQUFNQyxZQUFZO1FBRWxCLE9BQU9BO0lBQ1Q7SUFFQUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFILE1BQU1JLE9BQU87UUFFaEMsSUFBSUQsWUFBWTtZQUNkLE9BQU9EO1FBQ1Q7UUFFQSxNQUFNRyx1QkFBdUJMLE1BQU1NLHVCQUF1QixJQUNwREMsbUJBQW1CRixzQkFDbkJiLHVCQUF1QmUsaUJBQWlCQyxPQUFPO1FBRXJELElBQUloQix5QkFBeUIsSUFBSSxDQUFDQSxvQkFBb0IsRUFBRTtZQUN0RCxPQUFPVTtRQUNUO1FBRUEsTUFBTU8sZUFBZUMsa0JBQVksQ0FBQ0Msb0JBQW9CLENBQUNKLG1CQUNqREssWUFBWUgsY0FDWkksWUFBWUMsY0FBSyxDQUFDQyxhQUFhLENBQUNIO1FBRXRDWixRQUFRQSxNQUFNZ0IsT0FBTztRQUVyQmpCLFFBQVEsSUFBSSxDQUFDa0IsT0FBTyxDQUFDbEIsT0FBT2M7UUFFNUIsT0FBT1osUUFBUUYsT0FBT0MsT0FBT0U7SUFDL0I7SUFFQWdCLFdBQVc7UUFDVCxNQUFNQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQzNCLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUUvQyxPQUFPMkI7SUFDVDtJQUVBLE9BQU9DLHlCQUF5QjVCLG9CQUFvQixFQUFFO1FBQ3BELE1BQU02QiwyQkFBMkIsSUFBSS9CLHlCQUF5QkU7UUFFOUQsT0FBTzZCO0lBQ1Q7QUFDRiJ9
@@ -24,6 +24,10 @@ class StringLiteralPart extends _terminal.default {
24
24
  getContent() {
25
25
  return this.content;
26
26
  }
27
+ isConsuming(ruleMap, visitedRules = []) {
28
+ const consuming = true;
29
+ return consuming;
30
+ }
27
31
  parse(frame, state, forward, back) {
28
32
  const stateEmpty = state.isEmpty();
29
33
  if (stateEmpty) {
@@ -48,4 +52,4 @@ class StringLiteralPart extends _terminal.default {
48
52
  }
49
53
  }
50
54
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3N0cmluZ0xpdGVyYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvdGVybWluYWxcIjtcbmltcG9ydCBUZXJtaW5hbE5vZGUgZnJvbSBcIi4uLy4uL25vZGUvdGVybWluYWxcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RyaW5nTGl0ZXJhbFBhcnQgZXh0ZW5kcyBUZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICBcbiAgICB0aGlzLmNvbnRlbnQgPSBjb250ZW50O1xuICB9XG5cbiAgZ2V0Q29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc3RhdGVFbXB0eSA9IHN0YXRlLmlzRW1wdHkoKTtcblxuICAgIGlmIChzdGF0ZUVtcHR5KSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRTaWduaWZpY2FudFRva2VuID0gc3RhdGUuZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4oKSxcbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gbmV4dFNpZ25pZmljYW50VG9rZW4sIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSBzaWduaWZpY2FudFRva2VuLmdldENvbnRlbnQoKTtcblxuICAgIGlmIChjb250ZW50ICE9PSB0aGlzLmNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gVGVybWluYWxOb2RlLmZyb21TaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pLFxuICAgICAgICAgIGNoaWxkTm9kZSA9IHRlcm1pbmFsTm9kZSxcbiAgICAgICAgICBwYXJ0RnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7XG5cbiAgICBzdGF0ZSA9IHN0YXRlLmFkdmFuY2UoKTtcblxuICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKGZyYW1lLCBwYXJ0RnJhbWUpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnQucmVwbGFjZSgvXFxcXC9nLCBcIlxcXFxcXFxcXCIpLFxuICAgICAgICAgIHN0cmluZyA9IGBcIiR7Y29udGVudH1cImA7XG4gICAgXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29udGVudChjb250ZW50KSB7XG4gICAgY29uc3Qgc3RyaW5nTGl0ZXJhbFBhcnQgPSBuZXcgU3RyaW5nTGl0ZXJhbFBhcnQoY29udGVudCk7XG5cbiAgICByZXR1cm4gc3RyaW5nTGl0ZXJhbFBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTdHJpbmdMaXRlcmFsUGFydCIsIlRlcm1pbmFsUGFydCIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzdGF0ZUVtcHR5IiwiaXNFbXB0eSIsIm5leHRTaWduaWZpY2FudFRva2VuIiwiZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuIiwidGVybWluYWxOb2RlIiwiVGVybWluYWxOb2RlIiwiZnJvbVNpZ25pZmljYW50VG9rZW4iLCJjaGlsZE5vZGUiLCJwYXJ0RnJhbWUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJhZHZhbmNlIiwiY29tcG9zZSIsImFzU3RyaW5nIiwicmVwbGFjZSIsInN0cmluZyIsImZyb21Db250ZW50Iiwic3RyaW5nTGl0ZXJhbFBhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBcUJBOzs7OERBSkg7aUVBQ087a0VBQ0E7Ozs7OztBQUVWLE1BQU1BLDBCQUEwQkMsaUJBQVk7SUFDekQsWUFBWUMsT0FBTyxDQUFFO1FBQ25CLEtBQUs7UUFFTCxJQUFJLENBQUNBLE9BQU8sR0FBR0E7SUFDakI7SUFFQUMsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDRCxPQUFPO0lBQ3JCO0lBRUFFLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxhQUFhSCxNQUFNSSxPQUFPO1FBRWhDLElBQUlELFlBQVk7WUFDZCxPQUFPRDtRQUNUO1FBRUEsTUFBTUcsdUJBQXVCTCxNQUFNTSx1QkFBdUIsSUFDcERDLG1CQUFtQkYsc0JBQ25CVCxVQUFVVyxpQkFBaUJWLFVBQVU7UUFFM0MsSUFBSUQsWUFBWSxJQUFJLENBQUNBLE9BQU8sRUFBRTtZQUM1QixPQUFPTTtRQUNUO1FBRUEsTUFBTU0sZUFBZUMsa0JBQVksQ0FBQ0Msb0JBQW9CLENBQUNILG1CQUNqREksWUFBWUgsY0FDWkksWUFBWUMsY0FBSyxDQUFDQyxhQUFhLENBQUNIO1FBRXRDWCxRQUFRQSxNQUFNZSxPQUFPO1FBRXJCaEIsUUFBUSxJQUFJLENBQUNpQixPQUFPLENBQUNqQixPQUFPYTtRQUU1QixPQUFPWCxRQUFRRixPQUFPQyxPQUFPRTtJQUMvQjtJQUVBZSxXQUFXO1FBQ1QsTUFBTXJCLFVBQVUsSUFBSSxDQUFDQSxPQUFPLENBQUNzQixPQUFPLENBQUMsT0FBTyxTQUN0Q0MsU0FBUyxDQUFDLENBQUMsRUFBRXZCLFFBQVEsQ0FBQyxDQUFDO1FBRTdCLE9BQU91QjtJQUNUO0lBRUEsT0FBT0MsWUFBWXhCLE9BQU8sRUFBRTtRQUMxQixNQUFNeUIsb0JBQW9CLElBQUkzQixrQkFBa0JFO1FBRWhELE9BQU95QjtJQUNUO0FBQ0YifQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3N0cmluZ0xpdGVyYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvdGVybWluYWxcIjtcbmltcG9ydCBUZXJtaW5hbE5vZGUgZnJvbSBcIi4uLy4uL25vZGUvdGVybWluYWxcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RyaW5nTGl0ZXJhbFBhcnQgZXh0ZW5kcyBUZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICBcbiAgICB0aGlzLmNvbnRlbnQgPSBjb250ZW50O1xuICB9XG5cbiAgZ2V0Q29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHN0YXRlRW1wdHkgPSBzdGF0ZS5pc0VtcHR5KCk7XG5cbiAgICBpZiAoc3RhdGVFbXB0eSkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0U2lnbmlmaWNhbnRUb2tlbiA9IHN0YXRlLmdldE5leHRTaWduaWZpY2FudFRva2VuKCksXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IG5leHRTaWduaWZpY2FudFRva2VuLCAvLy9cbiAgICAgICAgICBjb250ZW50ID0gc2lnbmlmaWNhbnRUb2tlbi5nZXRDb250ZW50KCk7XG5cbiAgICBpZiAoY29udGVudCAhPT0gdGhpcy5jb250ZW50KSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IFRlcm1pbmFsTm9kZS5mcm9tU2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSB0ZXJtaW5hbE5vZGUsXG4gICAgICAgICAgcGFydEZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpO1xuXG4gICAgc3RhdGUgPSBzdGF0ZS5hZHZhbmNlKCk7XG5cbiAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShmcmFtZSwgcGFydEZyYW1lKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZW50LnJlcGxhY2UoL1xcXFwvZywgXCJcXFxcXFxcXFwiKSxcbiAgICAgICAgICBzdHJpbmcgPSBgXCIke2NvbnRlbnR9XCJgO1xuICAgIFxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNvbnRlbnQoY29udGVudCkge1xuICAgIGNvbnN0IHN0cmluZ0xpdGVyYWxQYXJ0ID0gbmV3IFN0cmluZ0xpdGVyYWxQYXJ0KGNvbnRlbnQpO1xuXG4gICAgcmV0dXJuIHN0cmluZ0xpdGVyYWxQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU3RyaW5nTGl0ZXJhbFBhcnQiLCJUZXJtaW5hbFBhcnQiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNvbnN1bWluZyIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwic3RhdGVFbXB0eSIsImlzRW1wdHkiLCJuZXh0U2lnbmlmaWNhbnRUb2tlbiIsImdldE5leHRTaWduaWZpY2FudFRva2VuIiwic2lnbmlmaWNhbnRUb2tlbiIsInRlcm1pbmFsTm9kZSIsIlRlcm1pbmFsTm9kZSIsImZyb21TaWduaWZpY2FudFRva2VuIiwiY2hpbGROb2RlIiwicGFydEZyYW1lIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2RlIiwiYWR2YW5jZSIsImNvbXBvc2UiLCJhc1N0cmluZyIsInJlcGxhY2UiLCJzdHJpbmciLCJmcm9tQ29udGVudCIsInN0cmluZ0xpdGVyYWxQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7OzhEQUpIO2lFQUNPO2tFQUNBOzs7Ozs7QUFFVixNQUFNQSwwQkFBMEJDLGlCQUFZO0lBQ3pELFlBQVlDLE9BQU8sQ0FBRTtRQUNuQixLQUFLO1FBRUwsSUFBSSxDQUFDQSxPQUFPLEdBQUdBO0lBQ2pCO0lBRUFDLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQ0QsT0FBTztJQUNyQjtJQUVBRSxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFO1FBQ3RDLE1BQU1DLFlBQVk7UUFFbEIsT0FBT0E7SUFDVDtJQUVBQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUgsTUFBTUksT0FBTztRQUVoQyxJQUFJRCxZQUFZO1lBQ2QsT0FBT0Q7UUFDVDtRQUVBLE1BQU1HLHVCQUF1QkwsTUFBTU0sdUJBQXVCLElBQ3BEQyxtQkFBbUJGLHNCQUNuQmIsVUFBVWUsaUJBQWlCZCxVQUFVO1FBRTNDLElBQUlELFlBQVksSUFBSSxDQUFDQSxPQUFPLEVBQUU7WUFDNUIsT0FBT1U7UUFDVDtRQUVBLE1BQU1NLGVBQWVDLGtCQUFZLENBQUNDLG9CQUFvQixDQUFDSCxtQkFDakRJLFlBQVlILGNBQ1pJLFlBQVlDLGNBQUssQ0FBQ0MsYUFBYSxDQUFDSDtRQUV0Q1gsUUFBUUEsTUFBTWUsT0FBTztRQUVyQmhCLFFBQVEsSUFBSSxDQUFDaUIsT0FBTyxDQUFDakIsT0FBT2E7UUFFNUIsT0FBT1gsUUFBUUYsT0FBT0MsT0FBT0U7SUFDL0I7SUFFQWUsV0FBVztRQUNULE1BQU16QixVQUFVLElBQUksQ0FBQ0EsT0FBTyxDQUFDMEIsT0FBTyxDQUFDLE9BQU8sU0FDdENDLFNBQVMsQ0FBQyxDQUFDLEVBQUUzQixRQUFRLENBQUMsQ0FBQztRQUU3QixPQUFPMkI7SUFDVDtJQUVBLE9BQU9DLFlBQVk1QixPQUFPLEVBQUU7UUFDMUIsTUFBTTZCLG9CQUFvQixJQUFJL0Isa0JBQWtCRTtRQUVoRCxPQUFPNkI7SUFDVDtBQUNGIn0=
@@ -19,6 +19,10 @@ function _interop_require_default(obj) {
19
19
  }
20
20
  const { wildcard } = _occamlexers.specialSymbols;
21
21
  class WildcardPart extends _terminal.default {
22
+ isConsuming(ruleMap, visitedRules = []) {
23
+ const consuming = true;
24
+ return consuming;
25
+ }
22
26
  parse(frame, state, forward, back) {
23
27
  const stateEmpty = state.isEmpty();
24
28
  if (stateEmpty) {
@@ -39,4 +43,4 @@ class WildcardPart extends _terminal.default {
39
43
  }
40
44
  }
41
45
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3dpbGRjYXJkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuaW1wb3J0IFRlcm1pbmFsTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IHdpbGRjYXJkIH0gPSBzcGVjaWFsU3ltYm9scztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2lsZGNhcmRQYXJ0IGV4dGVuZHMgVGVybWluYWxQYXJ0IHtcbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc3RhdGVFbXB0eSA9IHN0YXRlLmlzRW1wdHkoKTtcblxuICAgIGlmIChzdGF0ZUVtcHR5KSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRTaWduaWZpY2FudFRva2VuID0gc3RhdGUuZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4oKSxcbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gbmV4dFNpZ25pZmljYW50VG9rZW4sIC8vL1xuICAgICAgICAgIHRlcm1pbmFsTm9kZSA9IFRlcm1pbmFsTm9kZS5mcm9tU2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSB0ZXJtaW5hbE5vZGUsXG4gICAgICAgICAgcGFydEZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpO1xuXG4gICAgc3RhdGUgPSBzdGF0ZS5hZHZhbmNlKCk7XG5cbiAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShmcmFtZSwgcGFydEZyYW1lKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBgJHt3aWxkY2FyZH1gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCB3aWxkY2FyZFBhcnQgPSBuZXcgV2lsZGNhcmRQYXJ0KCk7XG5cbiAgICByZXR1cm4gd2lsZGNhcmRQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiV2lsZGNhcmRQYXJ0Iiwid2lsZGNhcmQiLCJzcGVjaWFsU3ltYm9scyIsIlRlcm1pbmFsUGFydCIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwic3RhdGVFbXB0eSIsImlzRW1wdHkiLCJuZXh0U2lnbmlmaWNhbnRUb2tlbiIsImdldE5leHRTaWduaWZpY2FudFRva2VuIiwic2lnbmlmaWNhbnRUb2tlbiIsInRlcm1pbmFsTm9kZSIsIlRlcm1pbmFsTm9kZSIsImZyb21TaWduaWZpY2FudFRva2VuIiwiY2hpbGROb2RlIiwicGFydEZyYW1lIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2RlIiwiYWR2YW5jZSIsImNvbXBvc2UiLCJhc1N0cmluZyIsInN0cmluZyIsImZyb21Ob3RoaW5nIiwid2lsZGNhcmRQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXFCQTs7OzZCQVJVOzhEQUViO2lFQUNPO2tFQUNBOzs7Ozs7QUFFekIsTUFBTSxFQUFFQyxRQUFRLEVBQUUsR0FBR0MsMkJBQWM7QUFFcEIsTUFBTUYscUJBQXFCRyxpQkFBWTtJQUNwREMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFILE1BQU1JLE9BQU87UUFFaEMsSUFBSUQsWUFBWTtZQUNkLE9BQU9EO1FBQ1Q7UUFFQSxNQUFNRyx1QkFBdUJMLE1BQU1NLHVCQUF1QixJQUNwREMsbUJBQW1CRixzQkFDbkJHLGVBQWVDLGtCQUFZLENBQUNDLG9CQUFvQixDQUFDSCxtQkFDakRJLFlBQVlILGNBQ1pJLFlBQVlDLGNBQUssQ0FBQ0MsYUFBYSxDQUFDSDtRQUV0Q1gsUUFBUUEsTUFBTWUsT0FBTztRQUVyQmhCLFFBQVEsSUFBSSxDQUFDaUIsT0FBTyxDQUFDakIsT0FBT2E7UUFFNUIsT0FBT1gsUUFBUUYsT0FBT0MsT0FBT0U7SUFDL0I7SUFFQWUsV0FBVztRQUNULE1BQU1DLFNBQVMsR0FBR3ZCLFVBQVU7UUFFNUIsT0FBT3VCO0lBQ1Q7SUFFQSxPQUFPQyxjQUFjO1FBQ25CLE1BQU1DLGVBQWUsSUFBSTFCO1FBRXpCLE9BQU8wQjtJQUNUO0FBQ0YifQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3dpbGRjYXJkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuaW1wb3J0IFRlcm1pbmFsTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IHdpbGRjYXJkIH0gPSBzcGVjaWFsU3ltYm9scztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2lsZGNhcmRQYXJ0IGV4dGVuZHMgVGVybWluYWxQYXJ0IHtcbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10pIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHN0YXRlRW1wdHkgPSBzdGF0ZS5pc0VtcHR5KCk7XG5cbiAgICBpZiAoc3RhdGVFbXB0eSkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0U2lnbmlmaWNhbnRUb2tlbiA9IHN0YXRlLmdldE5leHRTaWduaWZpY2FudFRva2VuKCksXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IG5leHRTaWduaWZpY2FudFRva2VuLCAvLy9cbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBUZXJtaW5hbE5vZGUuZnJvbVNpZ25pZmljYW50VG9rZW4oc2lnbmlmaWNhbnRUb2tlbiksXG4gICAgICAgICAgY2hpbGROb2RlID0gdGVybWluYWxOb2RlLFxuICAgICAgICAgIHBhcnRGcmFtZSA9IEZyYW1lLmZyb21DaGlsZE5vZGUoY2hpbGROb2RlKTtcblxuICAgIHN0YXRlID0gc3RhdGUuYWR2YW5jZSgpO1xuXG4gICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUsIHBhcnRGcmFtZSk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gYCR7d2lsZGNhcmR9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3Qgd2lsZGNhcmRQYXJ0ID0gbmV3IFdpbGRjYXJkUGFydCgpO1xuXG4gICAgcmV0dXJuIHdpbGRjYXJkUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIldpbGRjYXJkUGFydCIsIndpbGRjYXJkIiwic3BlY2lhbFN5bWJvbHMiLCJUZXJtaW5hbFBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInN0YXRlRW1wdHkiLCJpc0VtcHR5IiwibmV4dFNpZ25pZmljYW50VG9rZW4iLCJnZXROZXh0U2lnbmlmaWNhbnRUb2tlbiIsInNpZ25pZmljYW50VG9rZW4iLCJ0ZXJtaW5hbE5vZGUiLCJUZXJtaW5hbE5vZGUiLCJmcm9tU2lnbmlmaWNhbnRUb2tlbiIsImNoaWxkTm9kZSIsInBhcnRGcmFtZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsImFkdmFuY2UiLCJjb21wb3NlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJmcm9tTm90aGluZyIsIndpbGRjYXJkUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7Ozs2QkFSVTs4REFFYjtpRUFDTztrRUFDQTs7Ozs7O0FBRXpCLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLDJCQUFjO0FBRXBCLE1BQU1GLHFCQUFxQkcsaUJBQVk7SUFDcERDLFlBQVlDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEVBQUU7UUFDdEMsTUFBTUMsWUFBWTtRQUVsQixPQUFPQTtJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxhQUFhSCxNQUFNSSxPQUFPO1FBRWhDLElBQUlELFlBQVk7WUFDZCxPQUFPRDtRQUNUO1FBRUEsTUFBTUcsdUJBQXVCTCxNQUFNTSx1QkFBdUIsSUFDcERDLG1CQUFtQkYsc0JBQ25CRyxlQUFlQyxrQkFBWSxDQUFDQyxvQkFBb0IsQ0FBQ0gsbUJBQ2pESSxZQUFZSCxjQUNaSSxZQUFZQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ0g7UUFFdENYLFFBQVFBLE1BQU1lLE9BQU87UUFFckJoQixRQUFRLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ2pCLE9BQU9hO1FBRTVCLE9BQU9YLFFBQVFGLE9BQU9DLE9BQU9FO0lBQy9CO0lBRUFlLFdBQVc7UUFDVCxNQUFNQyxTQUFTLEdBQUczQixVQUFVO1FBRTVCLE9BQU8yQjtJQUNUO0lBRUEsT0FBT0MsY0FBYztRQUNuQixNQUFNQyxlQUFlLElBQUk5QjtRQUV6QixPQUFPOEI7SUFDVDtBQUNGIn0=
package/lib/partChoice.js CHANGED
@@ -64,6 +64,9 @@ class PartChoice {
64
64
  getPrecedence() {
65
65
  return this.precedence;
66
66
  }
67
+ isConsuming(ruleMap, visitedRules = []) {
68
+ return this.part.isConsuming(ruleMap, visitedRules);
69
+ }
67
70
  parse(frame, state, forward, back) {
68
71
  const savedFrame = frame; ///
69
72
  return this.part.parse(_frame.emptyFrame, state, (frame, state, back)=>{
@@ -100,4 +103,4 @@ class PartChoice {
100
103
  }
101
104
  }
102
105
 
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJ0Q2hvaWNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjaGFyYWN0ZXJzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBUUkFOU1BBUkVOVF9QUkVDRURFTkNFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgU1BBQ0VfQ0hBUkFDVEVSIH0gPSBjaGFyYWN0ZXJzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJ0Q2hvaWNlIHtcbiAgY29uc3RydWN0b3IocGFydCwgcHJlY2VkZW5jZSkge1xuICAgIHRoaXMucGFydCA9IHBhcnQ7XG4gICAgdGhpcy5wcmVjZWRlbmNlID0gcHJlY2VkZW5jZTtcbiAgfVxuXG4gIGdldFBhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydDtcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlY2VkZW5jZTtcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHNhdmVkRnJhbWUgPSBmcmFtZTsgLy8vXG5cbiAgICByZXR1cm4gdGhpcy5wYXJ0LnBhcnNlKGVtcHR5RnJhbWUsIHN0YXRlLCAoZnJhbWUsIHN0YXRlLCBiYWNrKSA9PiB7XG4gICAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShzYXZlZEZyYW1lLCBmcmFtZSk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBjb21wb3NlKGZyYW1lLCBwYXJ0RnJhbWUpIHtcbiAgICBmcmFtZSA9IGZyYW1lLm1lcmdlKHBhcnRGcmFtZSk7XG5cbiAgICBsZXQgcHJlY2VkZW5jZTtcblxuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCk7XG5cbiAgICBwcmVjZWRlbmNlID0gZnJhbWUuZ2V0UHJlY2VkZW5jZSgpO1xuXG4gICAgcHJlY2VkZW5jZSA9IHByZWNlZGVuY2UgfHwgdGhpcy5wcmVjZWRlbmNlOyAvLy9cblxuICAgIGZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZXNBbmRQcmVjZWRlbmNlKGNoaWxkTm9kZXMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGNvbnN0IHBhcnRTdHJpbmcgPSB0aGlzLnBhcnQuYXNTdHJpbmcoKTtcblxuICAgIHN0cmluZyA9IHBhcnRTdHJpbmc7ICAvLy9cblxuICAgIGlmICh0aGlzLnByZWNlZGVuY2UgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByZWNlZGVuY2UgPSAodGhpcy5wcmVjZWRlbmNlID09PSBUUkFOU1BBUkVOVF9QUkVDRURFTkNFKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBTUEFDRV9DSEFSQUNURVIgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZWNlZGVuY2U7XG5cbiAgICAgIHN0cmluZyA9IGAke3N0cmluZ30gKCR7cHJlY2VkZW5jZX0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0KHBhcnQpIHtcbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBwYXJ0Q2hvaWNlID0gbmV3IFBhcnRDaG9pY2UocGFydCwgcHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gcGFydENob2ljZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydEFuZFByZWNlZGVuY2UocGFydCwgcHJlY2VkZW5jZSkge1xuICAgIGNvbnN0IHBhcnRDaG9pY2UgPSBuZXcgUGFydENob2ljZShwYXJ0LCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBwYXJ0Q2hvaWNlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiUGFydENob2ljZSIsIlNQQUNFX0NIQVJBQ1RFUiIsImNoYXJhY3RlcnMiLCJwYXJ0IiwicHJlY2VkZW5jZSIsImdldFBhcnQiLCJnZXRQcmVjZWRlbmNlIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzYXZlZEZyYW1lIiwiZW1wdHlGcmFtZSIsImNvbXBvc2UiLCJwYXJ0RnJhbWUiLCJtZXJnZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UiLCJhc1N0cmluZyIsInN0cmluZyIsInBhcnRTdHJpbmciLCJUUkFOU1BBUkVOVF9QUkVDRURFTkNFIiwiZnJvbVBhcnQiLCJwYXJ0Q2hvaWNlIiwiZnJvbVBhcnRBbmRQcmVjZWRlbmNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXFCQTs7OzJCQVRNOytEQUVUOzJCQUdxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXZDLE1BQU0sRUFBRUMsZUFBZSxFQUFFLEdBQUdDLHFCQUFVO0FBRXZCLE1BQU1GO0lBQ25CLFlBQVlHLElBQUksRUFBRUMsVUFBVSxDQUFFO1FBQzVCLElBQUksQ0FBQ0QsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtJQUNwQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNGLFVBQVU7SUFDeEI7SUFFQUcsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFKLE9BQU8sR0FBRztRQUU3QixPQUFPLElBQUksQ0FBQ0wsSUFBSSxDQUFDSSxLQUFLLENBQUNNLGlCQUFVLEVBQUVKLE9BQU8sQ0FBQ0QsT0FBT0MsT0FBT0U7WUFDdkRILFFBQVEsSUFBSSxDQUFDTSxPQUFPLENBQUNGLFlBQVlKO1lBRWpDLE9BQU9FLFFBQVFGLE9BQU9DLE9BQU9FO1FBQy9CLEdBQUdBO0lBQ0w7SUFFQUcsUUFBUU4sS0FBSyxFQUFFTyxTQUFTLEVBQUU7UUFDeEJQLFFBQVFBLE1BQU1RLEtBQUssQ0FBQ0Q7UUFFcEIsSUFBSVg7UUFFSixNQUFNYSxhQUFhVCxNQUFNVSxhQUFhO1FBRXRDZCxhQUFhSSxNQUFNRixhQUFhO1FBRWhDRixhQUFhQSxjQUFjLElBQUksQ0FBQ0EsVUFBVSxFQUFFLEdBQUc7UUFFL0NJLFFBQVFXLGNBQUssQ0FBQ0MsMkJBQTJCLENBQUNILFlBQVliO1FBRXRELE9BQU9JO0lBQ1Q7SUFFQWEsV0FBVztRQUNULElBQUlDO1FBRUosTUFBTUMsYUFBYSxJQUFJLENBQUNwQixJQUFJLENBQUNrQixRQUFRO1FBRXJDQyxTQUFTQyxZQUFhLEdBQUc7UUFFekIsSUFBSSxJQUFJLENBQUNuQixVQUFVLEtBQUssTUFBTTtZQUM1QixNQUFNQSxhQUFhLEFBQUMsSUFBSSxDQUFDQSxVQUFVLEtBQUtvQixpQ0FBc0IsR0FDekN2QixrQkFDRSxJQUFJLENBQUNHLFVBQVU7WUFFdENrQixTQUFTLEdBQUdBLE9BQU8sRUFBRSxFQUFFbEIsV0FBVyxDQUFDLENBQUM7UUFDdEM7UUFFQSxPQUFPa0I7SUFDVDtJQUVBLE9BQU9HLFNBQVN0QixJQUFJLEVBQUU7UUFDcEIsTUFBTUMsYUFBYSxNQUNic0IsYUFBYSxJQUFJMUIsV0FBV0csTUFBTUM7UUFFeEMsT0FBT3NCO0lBQ1Q7SUFFQSxPQUFPQyxzQkFBc0J4QixJQUFJLEVBQUVDLFVBQVUsRUFBRTtRQUM3QyxNQUFNc0IsYUFBYSxJQUFJMUIsV0FBV0csTUFBTUM7UUFFeEMsT0FBT3NCO0lBQ1Q7QUFDRiJ9
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJ0Q2hvaWNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjaGFyYWN0ZXJzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBUUkFOU1BBUkVOVF9QUkVDRURFTkNFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgU1BBQ0VfQ0hBUkFDVEVSIH0gPSBjaGFyYWN0ZXJzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJ0Q2hvaWNlIHtcbiAgY29uc3RydWN0b3IocGFydCwgcHJlY2VkZW5jZSkge1xuICAgIHRoaXMucGFydCA9IHBhcnQ7XG4gICAgdGhpcy5wcmVjZWRlbmNlID0gcHJlY2VkZW5jZTtcbiAgfVxuXG4gIGdldFBhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydDtcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlY2VkZW5jZTtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdKSB7IHJldHVybiB0aGlzLnBhcnQuaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzKTsgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHNhdmVkRnJhbWUgPSBmcmFtZTsgLy8vXG5cbiAgICByZXR1cm4gdGhpcy5wYXJ0LnBhcnNlKGVtcHR5RnJhbWUsIHN0YXRlLCAoZnJhbWUsIHN0YXRlLCBiYWNrKSA9PiB7XG4gICAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShzYXZlZEZyYW1lLCBmcmFtZSk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBjb21wb3NlKGZyYW1lLCBwYXJ0RnJhbWUpIHtcbiAgICBmcmFtZSA9IGZyYW1lLm1lcmdlKHBhcnRGcmFtZSk7XG5cbiAgICBsZXQgcHJlY2VkZW5jZTtcblxuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCk7XG5cbiAgICBwcmVjZWRlbmNlID0gZnJhbWUuZ2V0UHJlY2VkZW5jZSgpO1xuXG4gICAgcHJlY2VkZW5jZSA9IHByZWNlZGVuY2UgfHwgdGhpcy5wcmVjZWRlbmNlOyAvLy9cblxuICAgIGZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZXNBbmRQcmVjZWRlbmNlKGNoaWxkTm9kZXMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGNvbnN0IHBhcnRTdHJpbmcgPSB0aGlzLnBhcnQuYXNTdHJpbmcoKTtcblxuICAgIHN0cmluZyA9IHBhcnRTdHJpbmc7ICAvLy9cblxuICAgIGlmICh0aGlzLnByZWNlZGVuY2UgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByZWNlZGVuY2UgPSAodGhpcy5wcmVjZWRlbmNlID09PSBUUkFOU1BBUkVOVF9QUkVDRURFTkNFKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBTUEFDRV9DSEFSQUNURVIgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZWNlZGVuY2U7XG5cbiAgICAgIHN0cmluZyA9IGAke3N0cmluZ30gKCR7cHJlY2VkZW5jZX0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0KHBhcnQpIHtcbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBwYXJ0Q2hvaWNlID0gbmV3IFBhcnRDaG9pY2UocGFydCwgcHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gcGFydENob2ljZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydEFuZFByZWNlZGVuY2UocGFydCwgcHJlY2VkZW5jZSkge1xuICAgIGNvbnN0IHBhcnRDaG9pY2UgPSBuZXcgUGFydENob2ljZShwYXJ0LCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBwYXJ0Q2hvaWNlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiUGFydENob2ljZSIsIlNQQUNFX0NIQVJBQ1RFUiIsImNoYXJhY3RlcnMiLCJwYXJ0IiwicHJlY2VkZW5jZSIsImdldFBhcnQiLCJnZXRQcmVjZWRlbmNlIiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzYXZlZEZyYW1lIiwiZW1wdHlGcmFtZSIsImNvbXBvc2UiLCJwYXJ0RnJhbWUiLCJtZXJnZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UiLCJhc1N0cmluZyIsInN0cmluZyIsInBhcnRTdHJpbmciLCJUUkFOU1BBUkVOVF9QUkVDRURFTkNFIiwiZnJvbVBhcnQiLCJwYXJ0Q2hvaWNlIiwiZnJvbVBhcnRBbmRQcmVjZWRlbmNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXFCQTs7OzJCQVRNOytEQUVUOzJCQUdxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXZDLE1BQU0sRUFBRUMsZUFBZSxFQUFFLEdBQUdDLHFCQUFVO0FBRXZCLE1BQU1GO0lBQ25CLFlBQVlHLElBQUksRUFBRUMsVUFBVSxDQUFFO1FBQzVCLElBQUksQ0FBQ0QsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtJQUNwQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNGLFVBQVU7SUFDeEI7SUFFQUcsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDTixJQUFJLENBQUNJLFdBQVcsQ0FBQ0MsU0FBU0M7SUFBZTtJQUUvRkMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFKLE9BQU8sR0FBRztRQUU3QixPQUFPLElBQUksQ0FBQ1IsSUFBSSxDQUFDTyxLQUFLLENBQUNNLGlCQUFVLEVBQUVKLE9BQU8sQ0FBQ0QsT0FBT0MsT0FBT0U7WUFDdkRILFFBQVEsSUFBSSxDQUFDTSxPQUFPLENBQUNGLFlBQVlKO1lBRWpDLE9BQU9FLFFBQVFGLE9BQU9DLE9BQU9FO1FBQy9CLEdBQUdBO0lBQ0w7SUFFQUcsUUFBUU4sS0FBSyxFQUFFTyxTQUFTLEVBQUU7UUFDeEJQLFFBQVFBLE1BQU1RLEtBQUssQ0FBQ0Q7UUFFcEIsSUFBSWQ7UUFFSixNQUFNZ0IsYUFBYVQsTUFBTVUsYUFBYTtRQUV0Q2pCLGFBQWFPLE1BQU1MLGFBQWE7UUFFaENGLGFBQWFBLGNBQWMsSUFBSSxDQUFDQSxVQUFVLEVBQUUsR0FBRztRQUUvQ08sUUFBUVcsY0FBSyxDQUFDQywyQkFBMkIsQ0FBQ0gsWUFBWWhCO1FBRXRELE9BQU9PO0lBQ1Q7SUFFQWEsV0FBVztRQUNULElBQUlDO1FBRUosTUFBTUMsYUFBYSxJQUFJLENBQUN2QixJQUFJLENBQUNxQixRQUFRO1FBRXJDQyxTQUFTQyxZQUFhLEdBQUc7UUFFekIsSUFBSSxJQUFJLENBQUN0QixVQUFVLEtBQUssTUFBTTtZQUM1QixNQUFNQSxhQUFhLEFBQUMsSUFBSSxDQUFDQSxVQUFVLEtBQUt1QixpQ0FBc0IsR0FDekMxQixrQkFDRSxJQUFJLENBQUNHLFVBQVU7WUFFdENxQixTQUFTLEdBQUdBLE9BQU8sRUFBRSxFQUFFckIsV0FBVyxDQUFDLENBQUM7UUFDdEM7UUFFQSxPQUFPcUI7SUFDVDtJQUVBLE9BQU9HLFNBQVN6QixJQUFJLEVBQUU7UUFDcEIsTUFBTUMsYUFBYSxNQUNieUIsYUFBYSxJQUFJN0IsV0FBV0csTUFBTUM7UUFFeEMsT0FBT3lCO0lBQ1Q7SUFFQSxPQUFPQyxzQkFBc0IzQixJQUFJLEVBQUVDLFVBQVUsRUFBRTtRQUM3QyxNQUFNeUIsYUFBYSxJQUFJN0IsV0FBV0csTUFBTUM7UUFFeEMsT0FBT3lCO0lBQ1Q7QUFDRiJ9
package/lib/rule.js CHANGED
@@ -50,6 +50,29 @@ class Rule {
50
50
  const semiOpaque = this.opacity === null;
51
51
  return semiOpaque;
52
52
  }
53
+ isConsuming(ruleMap, visitedRules = []) {
54
+ let consuming = false;
55
+ const rule = this, visitedRulesIncludesRule = visitedRules.includes(rule);
56
+ if (!visitedRulesIncludesRule) {
57
+ const visitedRule = rule, definitionsConsuming = this.areDefinitionsConsuming(ruleMap, [
58
+ ...visitedRules,
59
+ visitedRule
60
+ ]);
61
+ if (definitionsConsuming) {
62
+ consuming = true;
63
+ }
64
+ }
65
+ return consuming;
66
+ }
67
+ areDefinitionsConsuming(ruleMap, visitedRules) {
68
+ const definitionsConsuming = each(this.definitions, (definition)=>{
69
+ const definitionConsuming = definition.isConsuming(ruleMap, visitedRules);
70
+ if (definitionConsuming) {
71
+ return true;
72
+ }
73
+ });
74
+ return definitionsConsuming;
75
+ }
53
76
  parse(frame, state, forward, back) {
54
77
  const rule = this, branching = state.isBranching(), some = branching ? _branching.some : _linear.some;
55
78
  return some(this.definitions, (definition, frame, state, forward, back)=>{
@@ -75,6 +98,14 @@ ${this.name}${opacityString}${marginString} ::= ${definitionsString}${semicolonS
75
98
  return rule;
76
99
  }
77
100
  }
101
+ function each(array, callback) {
102
+ let success = false;
103
+ const arrayLength = array.length;
104
+ if (arrayLength > 0) {
105
+ success = array.every(callback);
106
+ }
107
+ return success;
108
+ }
78
109
  function opacityStringFromOpacity(opacity) {
79
110
  const opacityString = opacity !== null ? opacity : _constants.EMPTY_STRING;
80
111
  return opacityString;
@@ -100,4 +131,4 @@ ${marginString} | ${definitionString}` : `${definitionsString} | ${definitionS
100
131
  return definitionsString;
101
132
  }
102
133
 
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzb21lIGFzIGxpbmVhclNvbWUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBzb21lIGFzIGJyYW5jaGluZ1NvbWUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGggfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNvbnN0IHsgb3BhcXVlOiBvcGFxdWVTcGVjaWFsU3ltYm9sLCBzZW1pT3BhcXVlOiBzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGUge1xuICBjb25zdHJ1Y3RvcihuYW1lLCBvcGFjaXR5LCBkZWZpbml0aW9ucykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRPcGFjaXR5KCkge1xuICAgIHJldHVybiB0aGlzLm9wYWNpdHk7XG4gIH1cblxuICBnZXREZWZpbml0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9ucztcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRPcGFjaXR5KG9wYWNpdHkpIHtcbiAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xuICB9XG5cbiAgc2V0RGVmaW5pdGlvbnMoZGVmaW5pdGlvbnMpIHtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gIH1cblxuICBpc09wYXF1ZSgpIHtcbiAgICBjb25zdCBvcGFxdWUgPSAodGhpcy5vcGFjaXR5ID09PSBvcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBvcGFxdWU7XG4gIH1cblxuICBpc1NlbWlPcGFxdWUoKSB7XG4gICAgY29uc3Qgc2VtaU9wYXF1ZSA9ICh0aGlzLm9wYWNpdHkgPT09IHNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBzZW1pT3BhcXVlO1xuICB9XG5cbiAgaXNUcmFuc3BhcmVudCgpIHtcbiAgICBjb25zdCBzZW1pT3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gbnVsbCk7XG5cbiAgICByZXR1cm4gc2VtaU9wYXF1ZTtcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLFxuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgc29tZSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICBicmFuY2hpbmdTb21lIDpcbiAgICAgICAgICAgICAgICAgICAgbGluZWFyU29tZTtcblxuICAgIHJldHVybiBzb21lKHRoaXMuZGVmaW5pdGlvbnMsIChkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBkZWZpbml0aW9uLnBhcnNlKHJ1bGUsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKG1heGltdW1SdWxlTmFtZUxlbmd0aCwgbXVsdGlMaW5lID0gdHJ1ZSkge1xuICAgIGNvbnN0IGRlZmluaXRpb25zTGVuZ3RoID0gdGhpcy5kZWZpbml0aW9ucy5sZW5ndGg7XG5cbiAgICBtdWx0aUxpbmUgPSBtdWx0aUxpbmUgJiYgKGRlZmluaXRpb25zTGVuZ3RoID4gMSk7ICAvLy9cblxuICAgIGNvbnN0IG9wYWNpdHlTdHJpbmcgPSBvcGFjaXR5U3RyaW5nRnJvbU9wYWNpdHkodGhpcy5vcGFjaXR5KSxcbiAgICAgICAgICBzZW1pY29sb25TdHJpbmcgPSBzZW1pY29sb25TdHJpbmdGcm9tTXVsdGlsaW5lQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoKG11bHRpTGluZSwgbWF4aW11bVJ1bGVOYW1lTGVuZ3RoKSxcbiAgICAgICAgICBkZWZpbml0aW9uc1N0cmluZyA9IGRlZmluaXRpb25zU3RyaW5nRnJvbU11bHRpbGluZURlZmluaXRpb25zQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoKG11bHRpTGluZSwgdGhpcy5kZWZpbml0aW9ucywgbWF4aW11bVJ1bGVOYW1lTGVuZ3RoKSxcbiAgICAgICAgICBydWxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgcnVsZU5hbWVMZW5ndGggPSBydWxlTmFtZS5sZW5ndGgsXG4gICAgICAgICAgb3BhY2l0eVN0cmluZ0xlbmd0aCA9IG9wYWNpdHlTdHJpbmcubGVuZ3RoLFxuICAgICAgICAgIG1hcmdpbldpZHRoID0gbWF4aW11bVJ1bGVOYW1lTGVuZ3RoIC0gcnVsZU5hbWVMZW5ndGggLSBvcGFjaXR5U3RyaW5nTGVuZ3RoLFxuICAgICAgICAgIG1hcmdpblN0cmluZyA9IG1hcmdpblN0cmluZ0Zyb21NYXJnaW5XaWR0aChtYXJnaW5XaWR0aCksXG4gICAgICAgICAgc3RyaW5nID0gYFxuXG4ke3RoaXMubmFtZX0ke29wYWNpdHlTdHJpbmd9JHttYXJnaW5TdHJpbmd9IDo6PSAke2RlZmluaXRpb25zU3RyaW5nfSR7c2VtaWNvbG9uU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lT3BhY2l0eUFuZERlZmluaXRpb25zKENsYXNzLCBuYW1lLCBvcGFjaXR5LCBkZWZpbml0aW9ucykge1xuICAgIGlmIChkZWZpbml0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWZpbml0aW9ucyA9IG9wYWNpdHk7ICAvLy9cblxuICAgICAgb3BhY2l0eSA9IG5hbWU7IC8vL1xuXG4gICAgICBuYW1lID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFJ1bGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bGUgPSBuZXcgQ2xhc3MobmFtZSwgb3BhY2l0eSwgZGVmaW5pdGlvbnMpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gb3BhY2l0eVN0cmluZ0Zyb21PcGFjaXR5KG9wYWNpdHkpIHtcbiAgY29uc3Qgb3BhY2l0eVN0cmluZyA9IChvcGFjaXR5ICE9PSBudWxsKT9cbiAgICAgICAgICBvcGFjaXR5OiAvLy9cbiAgICAgICAgICAgIEVNUFRZX1NUUklORztcblxuICByZXR1cm4gb3BhY2l0eVN0cmluZztcbn1cblxuZnVuY3Rpb24gc2VtaWNvbG9uU3RyaW5nRnJvbU11bHRpbGluZUFuZE1heGltdW1SdWxlTmFtZUxlbmd0aChtdWx0aUxpbmUsIG1heGltdW1SdWxlTmFtZUxlbmd0aCkge1xuICBjb25zdCBtYXJnaW5XaWR0aCA9IG1heGltdW1SdWxlTmFtZUxlbmd0aCwgIC8vL1xuICAgICAgICBtYXJnaW5TdHJpbmcgPSBtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGgobWFyZ2luV2lkdGgpLFxuICAgICAgICBzZW1pY29sb25TdHJpbmcgPSBtdWx0aUxpbmUgP1xuICAgICAgYFxuXG4ke21hcmdpblN0cmluZ30gICA7YCA6XG4gICAgICBcIiA7XCI7XG5cbiAgcmV0dXJuIHNlbWljb2xvblN0cmluZztcbn1cblxuZnVuY3Rpb24gZGVmaW5pdGlvbnNTdHJpbmdGcm9tTXVsdGlsaW5lRGVmaW5pdGlvbnNBbmRNYXhpbXVtUnVsZU5hbWVMZW5ndGgobXVsdGlMaW5lLCBkZWZpbml0aW9ucywgbWF4aW11bVJ1bGVOYW1lTGVuZ3RoKSB7XG4gIGNvbnN0IG1hcmdpbldpZHRoID0gbWF4aW11bVJ1bGVOYW1lTGVuZ3RoLCAgLy8vXG4gICAgICAgIG1hcmdpblN0cmluZyA9IG1hcmdpblN0cmluZ0Zyb21NYXJnaW5XaWR0aChtYXJnaW5XaWR0aCksXG4gICAgICAgIGRlZmluaXRpb25zU3RyaW5nID0gZGVmaW5pdGlvbnMucmVkdWNlKChkZWZpbml0aW9uc1N0cmluZywgZGVmaW5pdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlZmluaXRpb25TdHJpbmcgPSBkZWZpbml0aW9uLmFzU3RyaW5nKCk7XG5cbiAgICAgICAgICBpZiAoZGVmaW5pdGlvbnNTdHJpbmcgPT09IEVNUFRZX1NUUklORykge1xuICAgICAgICAgICAgZGVmaW5pdGlvbnNTdHJpbmcgPSBkZWZpbml0aW9uU3RyaW5nOyAvLy9cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVmaW5pdGlvbnNTdHJpbmcgPSBtdWx0aUxpbmUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZGVmaW5pdGlvbnNTdHJpbmd9XG4gICAgXG4ke21hcmdpblN0cmluZ30gICB8ICR7ZGVmaW5pdGlvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZGVmaW5pdGlvbnNTdHJpbmd9IHwgJHtkZWZpbml0aW9uU3RyaW5nfWA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGRlZmluaXRpb25zU3RyaW5nO1xuICAgICAgICB9LCBFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBkZWZpbml0aW9uc1N0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJSdWxlIiwib3BhcXVlIiwib3BhcXVlU3BlY2lhbFN5bWJvbCIsInNlbWlPcGFxdWUiLCJzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCIsInNwZWNpYWxTeW1ib2xzIiwibmFtZSIsIm9wYWNpdHkiLCJkZWZpbml0aW9ucyIsImdldE5hbWUiLCJnZXRPcGFjaXR5IiwiZ2V0RGVmaW5pdGlvbnMiLCJzZXROYW1lIiwic2V0T3BhY2l0eSIsInNldERlZmluaXRpb25zIiwiaXNPcGFxdWUiLCJpc1NlbWlPcGFxdWUiLCJpc1RyYW5zcGFyZW50IiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJydWxlIiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJzb21lIiwiYnJhbmNoaW5nU29tZSIsImxpbmVhclNvbWUiLCJkZWZpbml0aW9uIiwiYXNTdHJpbmciLCJtYXhpbXVtUnVsZU5hbWVMZW5ndGgiLCJtdWx0aUxpbmUiLCJkZWZpbml0aW9uc0xlbmd0aCIsImxlbmd0aCIsIm9wYWNpdHlTdHJpbmciLCJvcGFjaXR5U3RyaW5nRnJvbU9wYWNpdHkiLCJzZW1pY29sb25TdHJpbmciLCJzZW1pY29sb25TdHJpbmdGcm9tTXVsdGlsaW5lQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoIiwiZGVmaW5pdGlvbnNTdHJpbmciLCJkZWZpbml0aW9uc1N0cmluZ0Zyb21NdWx0aWxpbmVEZWZpbml0aW9uc0FuZE1heGltdW1SdWxlTmFtZUxlbmd0aCIsInJ1bGVOYW1lIiwicnVsZU5hbWVMZW5ndGgiLCJvcGFjaXR5U3RyaW5nTGVuZ3RoIiwibWFyZ2luV2lkdGgiLCJtYXJnaW5TdHJpbmciLCJtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGgiLCJzdHJpbmciLCJmcm9tTmFtZU9wYWNpdHlBbmREZWZpbml0aW9ucyIsIkNsYXNzIiwidW5kZWZpbmVkIiwiRU1QVFlfU1RSSU5HIiwicmVkdWNlIiwiZGVmaW5pdGlvblN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFxQkE7Ozs2QkFUVTsyQkFFRjt3QkFDTTsyQkFDRzt3QkFDTTtBQUU1QyxNQUFNLEVBQUVDLFFBQVFDLG1CQUFtQixFQUFFQyxZQUFZQyx1QkFBdUIsRUFBRSxHQUFHQywyQkFBYztBQUU1RSxNQUFNTDtJQUNuQixZQUFZTSxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxDQUFFO1FBQ3RDLElBQUksQ0FBQ0YsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtJQUNyQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDSCxPQUFPO0lBQ3JCO0lBRUFJLGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDSCxXQUFXO0lBQ3pCO0lBRUFJLFFBQVFOLElBQUksRUFBRTtRQUNaLElBQUksQ0FBQ0EsSUFBSSxHQUFHQTtJQUNkO0lBRUFPLFdBQVdOLE9BQU8sRUFBRTtRQUNsQixJQUFJLENBQUNBLE9BQU8sR0FBR0E7SUFDakI7SUFFQU8sZUFBZU4sV0FBVyxFQUFFO1FBQzFCLElBQUksQ0FBQ0EsV0FBVyxHQUFHQTtJQUNyQjtJQUVBTyxXQUFXO1FBQ1QsTUFBTWQsU0FBVSxJQUFJLENBQUNNLE9BQU8sS0FBS0w7UUFFakMsT0FBT0Q7SUFDVDtJQUVBZSxlQUFlO1FBQ2IsTUFBTWIsYUFBYyxJQUFJLENBQUNJLE9BQU8sS0FBS0g7UUFFckMsT0FBT0Q7SUFDVDtJQUVBYyxnQkFBZ0I7UUFDZCxNQUFNZCxhQUFjLElBQUksQ0FBQ0ksT0FBTyxLQUFLO1FBRXJDLE9BQU9KO0lBQ1Q7SUFFQWUsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLE9BQU8sSUFBSSxFQUNYQyxZQUFZSixNQUFNSyxXQUFXLElBQzdCQyxPQUFPRixZQUNDRyxlQUFhLEdBQ1hDLFlBQVU7UUFFMUIsT0FBT0YsS0FBSyxJQUFJLENBQUNsQixXQUFXLEVBQUUsQ0FBQ3FCLFlBQVlWLE9BQU9DLE9BQU9DLFNBQVNDO1lBQ2hFLE9BQU9PLFdBQVdYLEtBQUssQ0FBQ0ssTUFBTUosT0FBT0MsT0FBT0MsU0FBU0M7UUFDdkQsR0FBR0gsT0FBT0MsT0FBT0MsU0FBU0M7SUFDNUI7SUFFQVEsU0FBU0MscUJBQXFCLEVBQUVDLFlBQVksSUFBSSxFQUFFO1FBQ2hELE1BQU1DLG9CQUFvQixJQUFJLENBQUN6QixXQUFXLENBQUMwQixNQUFNO1FBRWpERixZQUFZQSxhQUFjQyxvQkFBb0IsR0FBSyxHQUFHO1FBRXRELE1BQU1FLGdCQUFnQkMseUJBQXlCLElBQUksQ0FBQzdCLE9BQU8sR0FDckQ4QixrQkFBa0JDLHFEQUFxRE4sV0FBV0Qsd0JBQ2xGUSxvQkFBb0JDLGtFQUFrRVIsV0FBVyxJQUFJLENBQUN4QixXQUFXLEVBQUV1Qix3QkFDbkhVLFdBQVcsSUFBSSxDQUFDbkMsSUFBSSxFQUNwQm9DLGlCQUFpQkQsU0FBU1AsTUFBTSxFQUNoQ1Msc0JBQXNCUixjQUFjRCxNQUFNLEVBQzFDVSxjQUFjYix3QkFBd0JXLGlCQUFpQkMscUJBQ3ZERSxlQUFlQyxJQUFBQSxtQ0FBMkIsRUFBQ0YsY0FDM0NHLFNBQVMsQ0FBQzs7QUFFcEIsRUFBRSxJQUFJLENBQUN6QyxJQUFJLEdBQUc2QixnQkFBZ0JVLGFBQWEsS0FBSyxFQUFFTixvQkFBb0JGLGlCQUFpQjtRQUVuRixPQUFPVTtJQUNUO0lBRUEsT0FBT0MsOEJBQThCQyxLQUFLLEVBQUUzQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxFQUFFO1FBQ3RFLElBQUlBLGdCQUFnQjBDLFdBQVc7WUFDN0IxQyxjQUFjRCxTQUFVLEdBQUc7WUFFM0JBLFVBQVVELE1BQU0sR0FBRztZQUVuQkEsT0FBTzJDLE9BQU8sR0FBRztZQUVqQkEsUUFBUWpELE1BQU0sR0FBRztRQUNuQjtRQUVBLE1BQU11QixPQUFPLElBQUkwQixNQUFNM0MsTUFBTUMsU0FBU0M7UUFFdEMsT0FBT2U7SUFDVDtBQUNGO0FBRUEsU0FBU2EseUJBQXlCN0IsT0FBTztJQUN2QyxNQUFNNEIsZ0JBQWdCLEFBQUM1QixZQUFZLE9BQzNCQSxVQUNFNEMsdUJBQVk7SUFFdEIsT0FBT2hCO0FBQ1Q7QUFFQSxTQUFTRyxxREFBcUROLFNBQVMsRUFBRUQscUJBQXFCO0lBQzVGLE1BQU1hLGNBQWNiLHVCQUNkYyxlQUFlQyxJQUFBQSxtQ0FBMkIsRUFBQ0YsY0FDM0NQLGtCQUFrQkwsWUFDcEIsQ0FBQzs7QUFFUCxFQUFFYSxhQUFhLElBQUksQ0FBQyxHQUNkO0lBRUosT0FBT1I7QUFDVDtBQUVBLFNBQVNHLGtFQUFrRVIsU0FBUyxFQUFFeEIsV0FBVyxFQUFFdUIscUJBQXFCO0lBQ3RILE1BQU1hLGNBQWNiLHVCQUNkYyxlQUFlQyxJQUFBQSxtQ0FBMkIsRUFBQ0YsY0FDM0NMLG9CQUFvQi9CLFlBQVk0QyxNQUFNLENBQUMsQ0FBQ2IsbUJBQW1CVjtRQUN6RCxNQUFNd0IsbUJBQW1CeEIsV0FBV0MsUUFBUTtRQUU1QyxJQUFJUyxzQkFBc0JZLHVCQUFZLEVBQUU7WUFDdENaLG9CQUFvQmMsa0JBQWtCLEdBQUc7UUFDM0MsT0FBTztZQUNMZCxvQkFBb0JQLFlBQ0MsR0FBR08sa0JBQWtCOztBQUV0RCxFQUFFTSxhQUFhLEtBQUssRUFBRVEsa0JBQWtCLEdBQ0wsR0FBR2Qsa0JBQWtCLEdBQUcsRUFBRWMsa0JBQWtCO1FBQ3JFO1FBRUEsT0FBT2Q7SUFDVCxHQUFHWSx1QkFBWTtJQUVyQixPQUFPWjtBQUNUIn0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzb21lIGFzIGxpbmVhclNvbWUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBzb21lIGFzIGJyYW5jaGluZ1NvbWUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGggfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNvbnN0IHsgb3BhcXVlOiBvcGFxdWVTcGVjaWFsU3ltYm9sLCBzZW1pT3BhcXVlOiBzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGUge1xuICBjb25zdHJ1Y3RvcihuYW1lLCBvcGFjaXR5LCBkZWZpbml0aW9ucykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRPcGFjaXR5KCkge1xuICAgIHJldHVybiB0aGlzLm9wYWNpdHk7XG4gIH1cblxuICBnZXREZWZpbml0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9ucztcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRPcGFjaXR5KG9wYWNpdHkpIHtcbiAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xuICB9XG5cbiAgc2V0RGVmaW5pdGlvbnMoZGVmaW5pdGlvbnMpIHtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gIH1cblxuICBpc09wYXF1ZSgpIHtcbiAgICBjb25zdCBvcGFxdWUgPSAodGhpcy5vcGFjaXR5ID09PSBvcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBvcGFxdWU7XG4gIH1cblxuICBpc1NlbWlPcGFxdWUoKSB7XG4gICAgY29uc3Qgc2VtaU9wYXF1ZSA9ICh0aGlzLm9wYWNpdHkgPT09IHNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBzZW1pT3BhcXVlO1xuICB9XG5cbiAgaXNUcmFuc3BhcmVudCgpIHtcbiAgICBjb25zdCBzZW1pT3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gbnVsbCk7XG5cbiAgICByZXR1cm4gc2VtaU9wYXF1ZTtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdKSB7XG4gICAgbGV0IGNvbnN1bWluZyA9IGZhbHNlO1xuXG4gICAgY29uc3QgcnVsZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICB2aXNpdGVkUnVsZXNJbmNsdWRlc1J1bGUgPSB2aXNpdGVkUnVsZXMuaW5jbHVkZXMocnVsZSk7XG5cbiAgICBpZiAoIXZpc2l0ZWRSdWxlc0luY2x1ZGVzUnVsZSkge1xuICAgICAgY29uc3QgdmlzaXRlZFJ1bGUgPSBydWxlLCAvLy9cbiAgICAgICAgICAgIGRlZmluaXRpb25zQ29uc3VtaW5nID0gdGhpcy5hcmVEZWZpbml0aW9uc0NvbnN1bWluZyhydWxlTWFwLCBbXG4gICAgICAgICAgICAgIC4uLnZpc2l0ZWRSdWxlcyxcbiAgICAgICAgICAgICAgdmlzaXRlZFJ1bGVcbiAgICAgICAgICAgIF0pO1xuXG4gICAgICBpZiAoZGVmaW5pdGlvbnNDb25zdW1pbmcpIHtcbiAgICAgICAgY29uc3VtaW5nID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgYXJlRGVmaW5pdGlvbnNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzKSB7XG4gICAgY29uc3QgZGVmaW5pdGlvbnNDb25zdW1pbmcgPSBlYWNoKHRoaXMuZGVmaW5pdGlvbnMsIChkZWZpbml0aW9uKSA9PiB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uQ29uc3VtaW5nID0gZGVmaW5pdGlvbi5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpO1xuXG4gICAgICBpZiAoZGVmaW5pdGlvbkNvbnN1bWluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uc0NvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLFxuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgc29tZSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICBicmFuY2hpbmdTb21lIDpcbiAgICAgICAgICAgICAgICAgICAgbGluZWFyU29tZTtcblxuICAgIHJldHVybiBzb21lKHRoaXMuZGVmaW5pdGlvbnMsIChkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBkZWZpbml0aW9uLnBhcnNlKHJ1bGUsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKG1heGltdW1SdWxlTmFtZUxlbmd0aCwgbXVsdGlMaW5lID0gdHJ1ZSkge1xuICAgIGNvbnN0IGRlZmluaXRpb25zTGVuZ3RoID0gdGhpcy5kZWZpbml0aW9ucy5sZW5ndGg7XG5cbiAgICBtdWx0aUxpbmUgPSBtdWx0aUxpbmUgJiYgKGRlZmluaXRpb25zTGVuZ3RoID4gMSk7ICAvLy9cblxuICAgIGNvbnN0IG9wYWNpdHlTdHJpbmcgPSBvcGFjaXR5U3RyaW5nRnJvbU9wYWNpdHkodGhpcy5vcGFjaXR5KSxcbiAgICAgICAgICBzZW1pY29sb25TdHJpbmcgPSBzZW1pY29sb25TdHJpbmdGcm9tTXVsdGlsaW5lQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoKG11bHRpTGluZSwgbWF4aW11bVJ1bGVOYW1lTGVuZ3RoKSxcbiAgICAgICAgICBkZWZpbml0aW9uc1N0cmluZyA9IGRlZmluaXRpb25zU3RyaW5nRnJvbU11bHRpbGluZURlZmluaXRpb25zQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoKG11bHRpTGluZSwgdGhpcy5kZWZpbml0aW9ucywgbWF4aW11bVJ1bGVOYW1lTGVuZ3RoKSxcbiAgICAgICAgICBydWxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgcnVsZU5hbWVMZW5ndGggPSBydWxlTmFtZS5sZW5ndGgsXG4gICAgICAgICAgb3BhY2l0eVN0cmluZ0xlbmd0aCA9IG9wYWNpdHlTdHJpbmcubGVuZ3RoLFxuICAgICAgICAgIG1hcmdpbldpZHRoID0gbWF4aW11bVJ1bGVOYW1lTGVuZ3RoIC0gcnVsZU5hbWVMZW5ndGggLSBvcGFjaXR5U3RyaW5nTGVuZ3RoLFxuICAgICAgICAgIG1hcmdpblN0cmluZyA9IG1hcmdpblN0cmluZ0Zyb21NYXJnaW5XaWR0aChtYXJnaW5XaWR0aCksXG4gICAgICAgICAgc3RyaW5nID0gYFxuXG4ke3RoaXMubmFtZX0ke29wYWNpdHlTdHJpbmd9JHttYXJnaW5TdHJpbmd9IDo6PSAke2RlZmluaXRpb25zU3RyaW5nfSR7c2VtaWNvbG9uU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lT3BhY2l0eUFuZERlZmluaXRpb25zKENsYXNzLCBuYW1lLCBvcGFjaXR5LCBkZWZpbml0aW9ucykge1xuICAgIGlmIChkZWZpbml0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWZpbml0aW9ucyA9IG9wYWNpdHk7ICAvLy9cblxuICAgICAgb3BhY2l0eSA9IG5hbWU7IC8vL1xuXG4gICAgICBuYW1lID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFJ1bGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bGUgPSBuZXcgQ2xhc3MobmFtZSwgb3BhY2l0eSwgZGVmaW5pdGlvbnMpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gZWFjaChhcnJheSwgY2FsbGJhY2spIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBpZiAoYXJyYXlMZW5ndGggPiAwKSB7XG4gICAgc3VjY2VzcyA9IGFycmF5LmV2ZXJ5KGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJldHVybiBzdWNjZXNzXG59XG5cbmZ1bmN0aW9uIG9wYWNpdHlTdHJpbmdGcm9tT3BhY2l0eShvcGFjaXR5KSB7XG4gIGNvbnN0IG9wYWNpdHlTdHJpbmcgPSAob3BhY2l0eSAhPT0gbnVsbCk/XG4gICAgICAgICAgb3BhY2l0eTogLy8vXG4gICAgICAgICAgICBFTVBUWV9TVFJJTkc7XG5cbiAgcmV0dXJuIG9wYWNpdHlTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHNlbWljb2xvblN0cmluZ0Zyb21NdWx0aWxpbmVBbmRNYXhpbXVtUnVsZU5hbWVMZW5ndGgobXVsdGlMaW5lLCBtYXhpbXVtUnVsZU5hbWVMZW5ndGgpIHtcbiAgY29uc3QgbWFyZ2luV2lkdGggPSBtYXhpbXVtUnVsZU5hbWVMZW5ndGgsICAvLy9cbiAgICAgICAgbWFyZ2luU3RyaW5nID0gbWFyZ2luU3RyaW5nRnJvbU1hcmdpbldpZHRoKG1hcmdpbldpZHRoKSxcbiAgICAgICAgc2VtaWNvbG9uU3RyaW5nID0gbXVsdGlMaW5lID9cbiAgICAgIGBcblxuJHttYXJnaW5TdHJpbmd9ICAgO2AgOlxuICAgICAgXCIgO1wiO1xuXG4gIHJldHVybiBzZW1pY29sb25TdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGRlZmluaXRpb25zU3RyaW5nRnJvbU11bHRpbGluZURlZmluaXRpb25zQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoKG11bHRpTGluZSwgZGVmaW5pdGlvbnMsIG1heGltdW1SdWxlTmFtZUxlbmd0aCkge1xuICBjb25zdCBtYXJnaW5XaWR0aCA9IG1heGltdW1SdWxlTmFtZUxlbmd0aCwgIC8vL1xuICAgICAgICBtYXJnaW5TdHJpbmcgPSBtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGgobWFyZ2luV2lkdGgpLFxuICAgICAgICBkZWZpbml0aW9uc1N0cmluZyA9IGRlZmluaXRpb25zLnJlZHVjZSgoZGVmaW5pdGlvbnNTdHJpbmcsIGRlZmluaXRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBkZWZpbml0aW9uU3RyaW5nID0gZGVmaW5pdGlvbi5hc1N0cmluZygpO1xuXG4gICAgICAgICAgaWYgKGRlZmluaXRpb25zU3RyaW5nID09PSBFTVBUWV9TVFJJTkcpIHtcbiAgICAgICAgICAgIGRlZmluaXRpb25zU3RyaW5nID0gZGVmaW5pdGlvblN0cmluZzsgLy8vXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlZmluaXRpb25zU3RyaW5nID0gbXVsdGlMaW5lID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2RlZmluaXRpb25zU3RyaW5nfVxuICAgIFxuJHttYXJnaW5TdHJpbmd9ICAgfCAke2RlZmluaXRpb25TdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2RlZmluaXRpb25zU3RyaW5nfSB8ICR7ZGVmaW5pdGlvblN0cmluZ31gO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBkZWZpbml0aW9uc1N0cmluZztcbiAgICAgICAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gZGVmaW5pdGlvbnNTdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiUnVsZSIsIm9wYXF1ZSIsIm9wYXF1ZVNwZWNpYWxTeW1ib2wiLCJzZW1pT3BhcXVlIiwic2VtaU9wYXF1ZVNwZWNpYWxTeW1ib2wiLCJzcGVjaWFsU3ltYm9scyIsIm5hbWUiLCJvcGFjaXR5IiwiZGVmaW5pdGlvbnMiLCJnZXROYW1lIiwiZ2V0T3BhY2l0eSIsImdldERlZmluaXRpb25zIiwic2V0TmFtZSIsInNldE9wYWNpdHkiLCJzZXREZWZpbml0aW9ucyIsImlzT3BhcXVlIiwiaXNTZW1pT3BhcXVlIiwiaXNUcmFuc3BhcmVudCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNvbnN1bWluZyIsInJ1bGUiLCJ2aXNpdGVkUnVsZXNJbmNsdWRlc1J1bGUiLCJpbmNsdWRlcyIsInZpc2l0ZWRSdWxlIiwiZGVmaW5pdGlvbnNDb25zdW1pbmciLCJhcmVEZWZpbml0aW9uc0NvbnN1bWluZyIsImVhY2giLCJkZWZpbml0aW9uIiwiZGVmaW5pdGlvbkNvbnN1bWluZyIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJzb21lIiwiYnJhbmNoaW5nU29tZSIsImxpbmVhclNvbWUiLCJhc1N0cmluZyIsIm1heGltdW1SdWxlTmFtZUxlbmd0aCIsIm11bHRpTGluZSIsImRlZmluaXRpb25zTGVuZ3RoIiwibGVuZ3RoIiwib3BhY2l0eVN0cmluZyIsIm9wYWNpdHlTdHJpbmdGcm9tT3BhY2l0eSIsInNlbWljb2xvblN0cmluZyIsInNlbWljb2xvblN0cmluZ0Zyb21NdWx0aWxpbmVBbmRNYXhpbXVtUnVsZU5hbWVMZW5ndGgiLCJkZWZpbml0aW9uc1N0cmluZyIsImRlZmluaXRpb25zU3RyaW5nRnJvbU11bHRpbGluZURlZmluaXRpb25zQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoIiwicnVsZU5hbWUiLCJydWxlTmFtZUxlbmd0aCIsIm9wYWNpdHlTdHJpbmdMZW5ndGgiLCJtYXJnaW5XaWR0aCIsIm1hcmdpblN0cmluZyIsIm1hcmdpblN0cmluZ0Zyb21NYXJnaW5XaWR0aCIsInN0cmluZyIsImZyb21OYW1lT3BhY2l0eUFuZERlZmluaXRpb25zIiwiQ2xhc3MiLCJ1bmRlZmluZWQiLCJhcnJheSIsImNhbGxiYWNrIiwic3VjY2VzcyIsImFycmF5TGVuZ3RoIiwiZXZlcnkiLCJFTVBUWV9TVFJJTkciLCJyZWR1Y2UiLCJkZWZpbml0aW9uU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXFCQTs7OzZCQVRVOzJCQUVGO3dCQUNNOzJCQUNHO3dCQUNNO0FBRTVDLE1BQU0sRUFBRUMsUUFBUUMsbUJBQW1CLEVBQUVDLFlBQVlDLHVCQUF1QixFQUFFLEdBQUdDLDJCQUFjO0FBRTVFLE1BQU1MO0lBQ25CLFlBQVlNLElBQUksRUFBRUMsT0FBTyxFQUFFQyxXQUFXLENBQUU7UUFDdEMsSUFBSSxDQUFDRixJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO0lBQ3JCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNILE9BQU87SUFDckI7SUFFQUksaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUNILFdBQVc7SUFDekI7SUFFQUksUUFBUU4sSUFBSSxFQUFFO1FBQ1osSUFBSSxDQUFDQSxJQUFJLEdBQUdBO0lBQ2Q7SUFFQU8sV0FBV04sT0FBTyxFQUFFO1FBQ2xCLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtJQUNqQjtJQUVBTyxlQUFlTixXQUFXLEVBQUU7UUFDMUIsSUFBSSxDQUFDQSxXQUFXLEdBQUdBO0lBQ3JCO0lBRUFPLFdBQVc7UUFDVCxNQUFNZCxTQUFVLElBQUksQ0FBQ00sT0FBTyxLQUFLTDtRQUVqQyxPQUFPRDtJQUNUO0lBRUFlLGVBQWU7UUFDYixNQUFNYixhQUFjLElBQUksQ0FBQ0ksT0FBTyxLQUFLSDtRQUVyQyxPQUFPRDtJQUNUO0lBRUFjLGdCQUFnQjtRQUNkLE1BQU1kLGFBQWMsSUFBSSxDQUFDSSxPQUFPLEtBQUs7UUFFckMsT0FBT0o7SUFDVDtJQUVBZSxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFO1FBQ3RDLElBQUlDLFlBQVk7UUFFaEIsTUFBTUMsT0FBTyxJQUFJLEVBQ1hDLDJCQUEyQkgsYUFBYUksUUFBUSxDQUFDRjtRQUV2RCxJQUFJLENBQUNDLDBCQUEwQjtZQUM3QixNQUFNRSxjQUFjSCxNQUNkSSx1QkFBdUIsSUFBSSxDQUFDQyx1QkFBdUIsQ0FBQ1IsU0FBUzttQkFDeERDO2dCQUNISzthQUNEO1lBRVAsSUFBSUMsc0JBQXNCO2dCQUN4QkwsWUFBWTtZQUNkO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFNLHdCQUF3QlIsT0FBTyxFQUFFQyxZQUFZLEVBQUU7UUFDN0MsTUFBTU0sdUJBQXVCRSxLQUFLLElBQUksQ0FBQ3BCLFdBQVcsRUFBRSxDQUFDcUI7WUFDbkQsTUFBTUMsc0JBQXNCRCxXQUFXWCxXQUFXLENBQUNDLFNBQVNDO1lBRTVELElBQUlVLHFCQUFxQjtnQkFDdkIsT0FBTztZQUNUO1FBQ0Y7UUFFQSxPQUFPSjtJQUNUO0lBRUFLLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNYixPQUFPLElBQUksRUFDWGMsWUFBWUgsTUFBTUksV0FBVyxJQUM3QkMsT0FBT0YsWUFDQ0csZUFBYSxHQUNYQyxZQUFVO1FBRTFCLE9BQU9GLEtBQUssSUFBSSxDQUFDOUIsV0FBVyxFQUFFLENBQUNxQixZQUFZRyxPQUFPQyxPQUFPQyxTQUFTQztZQUNoRSxPQUFPTixXQUFXRSxLQUFLLENBQUNULE1BQU1VLE9BQU9DLE9BQU9DLFNBQVNDO1FBQ3ZELEdBQUdILE9BQU9DLE9BQU9DLFNBQVNDO0lBQzVCO0lBRUFNLFNBQVNDLHFCQUFxQixFQUFFQyxZQUFZLElBQUksRUFBRTtRQUNoRCxNQUFNQyxvQkFBb0IsSUFBSSxDQUFDcEMsV0FBVyxDQUFDcUMsTUFBTTtRQUVqREYsWUFBWUEsYUFBY0Msb0JBQW9CLEdBQUssR0FBRztRQUV0RCxNQUFNRSxnQkFBZ0JDLHlCQUF5QixJQUFJLENBQUN4QyxPQUFPLEdBQ3JEeUMsa0JBQWtCQyxxREFBcUROLFdBQVdELHdCQUNsRlEsb0JBQW9CQyxrRUFBa0VSLFdBQVcsSUFBSSxDQUFDbkMsV0FBVyxFQUFFa0Msd0JBQ25IVSxXQUFXLElBQUksQ0FBQzlDLElBQUksRUFDcEIrQyxpQkFBaUJELFNBQVNQLE1BQU0sRUFDaENTLHNCQUFzQlIsY0FBY0QsTUFBTSxFQUMxQ1UsY0FBY2Isd0JBQXdCVyxpQkFBaUJDLHFCQUN2REUsZUFBZUMsSUFBQUEsbUNBQTJCLEVBQUNGLGNBQzNDRyxTQUFTLENBQUM7O0FBRXBCLEVBQUUsSUFBSSxDQUFDcEQsSUFBSSxHQUFHd0MsZ0JBQWdCVSxhQUFhLEtBQUssRUFBRU4sb0JBQW9CRixpQkFBaUI7UUFFbkYsT0FBT1U7SUFDVDtJQUVBLE9BQU9DLDhCQUE4QkMsS0FBSyxFQUFFdEQsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsRUFBRTtRQUN0RSxJQUFJQSxnQkFBZ0JxRCxXQUFXO1lBQzdCckQsY0FBY0QsU0FBVSxHQUFHO1lBRTNCQSxVQUFVRCxNQUFNLEdBQUc7WUFFbkJBLE9BQU9zRCxPQUFPLEdBQUc7WUFFakJBLFFBQVE1RCxNQUFNLEdBQUc7UUFDbkI7UUFFQSxNQUFNc0IsT0FBTyxJQUFJc0MsTUFBTXRELE1BQU1DLFNBQVNDO1FBRXRDLE9BQU9jO0lBQ1Q7QUFDRjtBQUVBLFNBQVNNLEtBQUtrQyxLQUFLLEVBQUVDLFFBQVE7SUFDM0IsSUFBSUMsVUFBVTtJQUVkLE1BQU1DLGNBQWNILE1BQU1qQixNQUFNO0lBRWhDLElBQUlvQixjQUFjLEdBQUc7UUFDbkJELFVBQVVGLE1BQU1JLEtBQUssQ0FBQ0g7SUFDeEI7SUFFQSxPQUFPQztBQUNUO0FBRUEsU0FBU2pCLHlCQUF5QnhDLE9BQU87SUFDdkMsTUFBTXVDLGdCQUFnQixBQUFDdkMsWUFBWSxPQUMzQkEsVUFDRTRELHVCQUFZO0lBRXRCLE9BQU9yQjtBQUNUO0FBRUEsU0FBU0cscURBQXFETixTQUFTLEVBQUVELHFCQUFxQjtJQUM1RixNQUFNYSxjQUFjYix1QkFDZGMsZUFBZUMsSUFBQUEsbUNBQTJCLEVBQUNGLGNBQzNDUCxrQkFBa0JMLFlBQ3BCLENBQUM7O0FBRVAsRUFBRWEsYUFBYSxJQUFJLENBQUMsR0FDZDtJQUVKLE9BQU9SO0FBQ1Q7QUFFQSxTQUFTRyxrRUFBa0VSLFNBQVMsRUFBRW5DLFdBQVcsRUFBRWtDLHFCQUFxQjtJQUN0SCxNQUFNYSxjQUFjYix1QkFDZGMsZUFBZUMsSUFBQUEsbUNBQTJCLEVBQUNGLGNBQzNDTCxvQkFBb0IxQyxZQUFZNEQsTUFBTSxDQUFDLENBQUNsQixtQkFBbUJyQjtRQUN6RCxNQUFNd0MsbUJBQW1CeEMsV0FBV1ksUUFBUTtRQUU1QyxJQUFJUyxzQkFBc0JpQix1QkFBWSxFQUFFO1lBQ3RDakIsb0JBQW9CbUIsa0JBQWtCLEdBQUc7UUFDM0MsT0FBTztZQUNMbkIsb0JBQW9CUCxZQUNDLEdBQUdPLGtCQUFrQjs7QUFFdEQsRUFBRU0sYUFBYSxLQUFLLEVBQUVhLGtCQUFrQixHQUNMLEdBQUduQixrQkFBa0IsR0FBRyxFQUFFbUIsa0JBQWtCO1FBQ3JFO1FBRUEsT0FBT25CO0lBQ1QsR0FBR2lCLHVCQUFZO0lBRXJCLE9BQU9qQjtBQUNUIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-parsers",
3
3
  "author": "James Smith",
4
- "version": "23.3.65",
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.",
package/src/definition.js CHANGED
@@ -25,6 +25,18 @@ export default class Definition {
25
25
  return this.precedence;
26
26
  }
27
27
 
28
+ isConsuming(ruleMap, visitedRules) {
29
+ const consuming = this.parts.some((part) => {
30
+ const consuming = part.isConsuming(ruleMap, visitedRules);
31
+
32
+ if (consuming) {
33
+ return true;
34
+ }
35
+ });
36
+
37
+ return consuming;
38
+ }
39
+
28
40
  parse(rule, frame, state, forward, back) {
29
41
  const savedFrame = frame, ///
30
42
  branching = state.isBranching(),
@@ -24,6 +24,18 @@ export default class BranchingPartsPart extends NonTerminalPart {
24
24
  return this.parts;
25
25
  }
26
26
 
27
+ isConsuming(ruleMap, visitedRules = []) {
28
+ const consuming = this.parts.some((part) => {
29
+ const consuming = part.isConsuming(ruleMap, visitedRules);
30
+
31
+ if (consuming) {
32
+ return true;
33
+ }
34
+ });
35
+
36
+ return consuming;
37
+ }
38
+
27
39
  parse(frame, state, forward, back) {
28
40
  const savedFrame = frame; ///
29
41
 
@@ -27,6 +27,18 @@ export default class ChoiceOfPartsPart extends NonTerminalPart {
27
27
  return parts;
28
28
  }
29
29
 
30
+ isConsuming(ruleMap, visitedRules = []) {
31
+ const consuming = this.partChoices.every((partChoice) => {
32
+ const consuming = partChoice.isConsuming(ruleMap, visitedRules);
33
+
34
+ if (consuming) {
35
+ return true;
36
+ }
37
+ });
38
+
39
+ return consuming;
40
+ }
41
+
30
42
  parse(frame, state, forward, back) {
31
43
  const branching = state.isBranching(),
32
44
  some = branching ?
@@ -17,6 +17,8 @@ export default class IsolatedPartPart extends NonTerminalPart {
17
17
  return this.part;
18
18
  }
19
19
 
20
+ isConsuming(ruleMap, visitedRules = []) { return this.part.isConsuming(ruleMap, visitedRules); }
21
+
20
22
  parse(frame, state, forward, back) {
21
23
  return this.part.parse(frame, state, (frame, state, back) => {
22
24
  frame = this.compose(frame);
@@ -21,6 +21,8 @@ export default class OneOrMorePartsPart extends NonTerminalPart {
21
21
  return this.part;
22
22
  }
23
23
 
24
+ isConsuming(ruleMap, visitedRules = []) { return this.part.isConsuming(ruleMap, visitedRules); }
25
+
24
26
  parse(frame, state, forward, back) {
25
27
  const limit = Infinity,
26
28
  strict = true,
@@ -21,6 +21,12 @@ export default class OptionalPartPart extends NonTerminalPart {
21
21
  return this.part;
22
22
  }
23
23
 
24
+ isConsuming(ruleMap, visitedRules = []) {
25
+ const consuming = false;
26
+
27
+ return consuming;
28
+ }
29
+
24
30
  parse(frame, state, forward, back) {
25
31
  const limit = 1,
26
32
  strict = false,
@@ -21,6 +21,18 @@ export default class RuleNamePart extends NonTerminalPart {
21
21
  return ruleNamePart;
22
22
  }
23
23
 
24
+ 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);
32
+
33
+ return consuming;
34
+ }
35
+
24
36
  parse(frame, state, forward, back) {
25
37
  const rule = state.findRule(this.ruleName);
26
38
 
@@ -18,6 +18,18 @@ export default class SequenceOfPartsPart extends NonTerminalPart {
18
18
  return this.parts;
19
19
  }
20
20
 
21
+ isConsuming(ruleMap, visitedRules = []) {
22
+ const consuming = this.parts.some((part) => {
23
+ const consuming = part.isConsuming(ruleMap, visitedRules);
24
+
25
+ if (consuming) {
26
+ return true;
27
+ }
28
+ });
29
+
30
+ return consuming;
31
+ }
32
+
21
33
  parse(frame, state, forward, back) {
22
34
  const savedFrame = frame, ///
23
35
  branching = state.isBranching(),
@@ -21,6 +21,12 @@ export default class ZeroOrMorePartsPart extends NonTerminalPart {
21
21
  return this.part;
22
22
  }
23
23
 
24
+ isConsuming(ruleMap, visitedRules = []) {
25
+ const consuming = false;
26
+
27
+ return consuming;
28
+ }
29
+
24
30
  parse(frame, state, forward, back) {
25
31
  const limit = Infinity,
26
32
  strict = false,
@@ -14,6 +14,12 @@ export default class CutPart extends TerminalPart {
14
14
  return cutPart;
15
15
  }
16
16
 
17
+ isConsuming(ruleMap, visitedRules = []) {
18
+ const consuming = false;
19
+
20
+ return consuming;
21
+ }
22
+
17
23
  parse(frame, state, forward, back) {
18
24
  const cut = Cut.fromFrameStateAndForward(frame, state, forward);
19
25
 
@@ -9,6 +9,12 @@ import EndOfLineNode from "../../node/terminal/endOfLine";
9
9
  const { endOfLine } = specialSymbols;
10
10
 
11
11
  export default class EndOfLinePart extends TerminalPart {
12
+ isConsuming(ruleMap, visitedRules = []) {
13
+ const consuming = true;
14
+
15
+ return consuming;
16
+ }
17
+
12
18
  parse(frame, state, forward, back) {
13
19
  const stateEmpty = state.isEmpty();
14
20
 
@@ -15,6 +15,12 @@ export default class EpsilonPart extends TerminalPart {
15
15
  return epsilonPart;
16
16
  }
17
17
 
18
+ isConsuming(ruleMap, visitedRules = []) {
19
+ const consuming = false;
20
+
21
+ return consuming;
22
+ }
23
+
18
24
  parse(frame, state, forward, back) {
19
25
  const epsilonNode = EpsilonNode.fromNothing(),
20
26
  childNode = epsilonNode,
@@ -15,6 +15,12 @@ export default class NoWhitespacePart extends TerminalPart {
15
15
  return noWhitespacePart;
16
16
  }
17
17
 
18
+ isConsuming(ruleMap, visitedRules = []) {
19
+ const consuming = false;
20
+
21
+ return consuming;
22
+ }
23
+
18
24
  parse(frame, state, forward, back) {
19
25
  const stateEmpty = state.isEmpty();
20
26
 
@@ -19,6 +19,12 @@ export default class RegularExpressionPart extends TerminalPart {
19
19
  return this.regularExpression;
20
20
  }
21
21
 
22
+ isConsuming(ruleMap, visitedRules = []) {
23
+ const consuming = true;
24
+
25
+ return consuming;
26
+ }
27
+
22
28
  parse(frame, state, forward, back) {
23
29
  const stateEmpty = state.isEmpty();
24
30
 
@@ -15,6 +15,12 @@ export default class SignificantTokenTypePart extends TerminalPart {
15
15
  return this.significantTokenType;
16
16
  }
17
17
 
18
+ isConsuming(ruleMap, visitedRules = []) {
19
+ const consuming = true;
20
+
21
+ return consuming;
22
+ }
23
+
18
24
  parse(frame, state, forward, back) {
19
25
  const stateEmpty = state.isEmpty();
20
26
 
@@ -15,6 +15,12 @@ export default class StringLiteralPart extends TerminalPart {
15
15
  return this.content;
16
16
  }
17
17
 
18
+ isConsuming(ruleMap, visitedRules = []) {
19
+ const consuming = true;
20
+
21
+ return consuming;
22
+ }
23
+
18
24
  parse(frame, state, forward, back) {
19
25
  const stateEmpty = state.isEmpty();
20
26
 
@@ -9,6 +9,12 @@ import TerminalNode from "../../node/terminal";
9
9
  const { wildcard } = specialSymbols;
10
10
 
11
11
  export default class WildcardPart extends TerminalPart {
12
+ isConsuming(ruleMap, visitedRules = []) {
13
+ const consuming = true;
14
+
15
+ return consuming;
16
+ }
17
+
12
18
  parse(frame, state, forward, back) {
13
19
  const stateEmpty = state.isEmpty();
14
20
 
package/src/partChoice.js CHANGED
@@ -23,6 +23,8 @@ export default class PartChoice {
23
23
  return this.precedence;
24
24
  }
25
25
 
26
+ isConsuming(ruleMap, visitedRules = []) { return this.part.isConsuming(ruleMap, visitedRules); }
27
+
26
28
  parse(frame, state, forward, back) {
27
29
  const savedFrame = frame; ///
28
30
 
package/src/rule.js CHANGED
@@ -58,6 +58,39 @@ export default class Rule {
58
58
  return semiOpaque;
59
59
  }
60
60
 
61
+ isConsuming(ruleMap, visitedRules = []) {
62
+ let consuming = false;
63
+
64
+ const rule = this, ///
65
+ visitedRulesIncludesRule = visitedRules.includes(rule);
66
+
67
+ if (!visitedRulesIncludesRule) {
68
+ const visitedRule = rule, ///
69
+ definitionsConsuming = this.areDefinitionsConsuming(ruleMap, [
70
+ ...visitedRules,
71
+ visitedRule
72
+ ]);
73
+
74
+ if (definitionsConsuming) {
75
+ consuming = true;
76
+ }
77
+ }
78
+
79
+ return consuming;
80
+ }
81
+
82
+ areDefinitionsConsuming(ruleMap, visitedRules) {
83
+ const definitionsConsuming = each(this.definitions, (definition) => {
84
+ const definitionConsuming = definition.isConsuming(ruleMap, visitedRules);
85
+
86
+ if (definitionConsuming) {
87
+ return true;
88
+ }
89
+ });
90
+
91
+ return definitionsConsuming;
92
+ }
93
+
61
94
  parse(frame, state, forward, back) {
62
95
  const rule = this,
63
96
  branching = state.isBranching(),
@@ -107,6 +140,18 @@ ${this.name}${opacityString}${marginString} ::= ${definitionsString}${semicolonS
107
140
  }
108
141
  }
109
142
 
143
+ function each(array, callback) {
144
+ let success = false;
145
+
146
+ const arrayLength = array.length;
147
+
148
+ if (arrayLength > 0) {
149
+ success = array.every(callback);
150
+ }
151
+
152
+ return success
153
+ }
154
+
110
155
  function opacityStringFromOpacity(opacity) {
111
156
  const opacityString = (opacity !== null)?
112
157
  opacity: ///