occam-parsers 23.3.72 → 23.3.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/definition.js +3 -3
- package/lib/part/nonTerminal/branchingParts.js +3 -3
- package/lib/part/nonTerminal/choiceOfParts.js +16 -8
- package/lib/part/nonTerminal/isolatedPart.js +3 -3
- package/lib/part/nonTerminal/oneOrMoreParts.js +3 -3
- package/lib/part/nonTerminal/optionalPart.js +5 -2
- package/lib/part/nonTerminal/ruleName.js +3 -3
- package/lib/part/nonTerminal/sequenceOfParts.js +3 -3
- package/lib/part/nonTerminal/zeroOrMoreParts.js +5 -2
- package/lib/part/terminal/cut.js +5 -2
- package/lib/part/terminal/endOfLine.js +2 -2
- package/lib/part/terminal/epsilon.js +2 -2
- package/lib/part/terminal/noWhitespace.js +2 -2
- package/lib/part/terminal/regularExpression.js +2 -2
- package/lib/part/terminal/significantTokenType.js +2 -2
- package/lib/part/terminal/stringLiteral.js +2 -2
- package/lib/part/terminal/wildcard.js +2 -2
- package/lib/rule.js +18 -10
- package/package.json +1 -1
- package/src/definition.js +2 -2
- package/src/part/nonTerminal/branchingParts.js +2 -2
- package/src/part/nonTerminal/choiceOfParts.js +17 -7
- package/src/part/nonTerminal/isolatedPart.js +1 -1
- package/src/part/nonTerminal/oneOrMoreParts.js +1 -1
- package/src/part/nonTerminal/optionalPart.js +5 -1
- package/src/part/nonTerminal/ruleName.js +2 -2
- package/src/part/nonTerminal/sequenceOfParts.js +2 -2
- package/src/part/nonTerminal/zeroOrMoreParts.js +5 -1
- package/src/part/terminal/cut.js +5 -1
- package/src/part/terminal/endOfLine.js +1 -1
- package/src/part/terminal/epsilon.js +1 -1
- package/src/part/terminal/noWhitespace.js +1 -1
- package/src/part/terminal/regularExpression.js +1 -1
- package/src/part/terminal/significantTokenType.js +1 -1
- package/src/part/terminal/stringLiteral.js +1 -1
- package/src/part/terminal/wildcard.js +1 -1
- package/src/rule.js +26 -12
package/lib/definition.js
CHANGED
|
@@ -66,9 +66,9 @@ class Definition {
|
|
|
66
66
|
getPrecedence() {
|
|
67
67
|
return this.precedence;
|
|
68
68
|
}
|
|
69
|
-
isConsuming(ruleMap, visitedRules) {
|
|
69
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
70
70
|
const consuming = this.parts.some((part)=>{
|
|
71
|
-
const consuming = part.isConsuming(ruleMap, visitedRules);
|
|
71
|
+
const consuming = part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
72
72
|
if (consuming) {
|
|
73
73
|
return true;
|
|
74
74
|
}
|
|
@@ -143,4 +143,4 @@ function nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame,
|
|
|
143
143
|
return nonTerminalNode;
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjaGFyYWN0ZXJzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBsaW5lYXJFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBicmFuY2hpbmdFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFRSQU5TUEFSRU5UX1BSRUNFREVOQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBTUEFDRV9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlZmluaXRpb24ge1xuICBjb25zdHJ1Y3RvcihwYXJ0cywgcHJlY2VkZW5jZSkge1xuICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBwcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydHM7XG4gIH1cblxuICBnZXRQcmVjZWRlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnByZWNlZGVuY2U7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSwgY2hlY2tGb3JDdXRQYXJ0cyA9IGZhbHNlKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gdGhpcy5wYXJ0cy5zb21lKChwYXJ0KSA9PiB7XG4gICAgICBjb25zdCBjb25zdW1pbmcgPSBwYXJ0LmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cyk7XG5cbiAgICAgIGlmIChjb25zdW1pbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UocnVsZSwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc2F2ZWRGcmFtZSA9IGZyYW1lLCAvLy9cbiAgICAgICAgICBicmFuY2hpbmcgPSBzdGF0ZS5pc0JyYW5jaGluZygpLFxuICAgICAgICAgIGV2ZXJ5ID0gYnJhbmNoaW5nID9cbiAgICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nRXZlcnkgOlxuICAgICAgICAgICAgICAgICAgICAgIGxpbmVhckV2ZXJ5O1xuXG4gICAgcmV0dXJuIGV2ZXJ5KHRoaXMucGFydHMsIChwYXJ0LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBwYXJ0LnBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgZW1wdHlGcmFtZSwgc3RhdGUsIChmcmFtZSwgc3RhdGUsIGJhY2spID0+IHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzOyAgLy8vXG5cbiAgICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKHJ1bGUsIGRlZmluaXRpb24sIHNhdmVkRnJhbWUsIGZyYW1lLCBzdGF0ZSk7ICAvLy9cblxuICAgICAgaWYgKGZyYW1lID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBjb21wb3NlKHJ1bGUsIGRlZmluaXRpb24sIHNhdmVkRnJhbWUsIGZyYW1lLCBzdGF0ZSkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZUZyb21SdWxlRGVmaW5pdGlvbkZyYW1lQW5kU3RhdGUocnVsZSwgZGVmaW5pdGlvbiwgZnJhbWUsIHN0YXRlKSxcbiAgICAgICAgICB1bnBhbGF0YWJsZSA9IG5vblRlcm1pbmFsTm9kZS5pc1VucGFsYXRhYmxlKCk7XG5cbiAgICBpZiAodW5wYWxhdGFibGUpIHtcbiAgICAgIGZyYW1lID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2hpbGROb2RlID0gbm9uVGVybWluYWxOb2RlOyAgLy8vXG5cbiAgICAgIGZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpOyAvLy9cblxuICAgICAgZnJhbWUgPSBzYXZlZEZyYW1lLm1lcmdlKGZyYW1lKTsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGNvbnN0IHBhcnRzU3RyaW5nID0gdGhpcy5wYXJ0cy5yZWR1Y2UoKHBhcnRzU3RyaW5nLCBwYXJ0KSA9PiB7XG4gICAgICBjb25zdCBwYXJ0U3RyaW5nID0gcGFydC5hc1N0cmluZygpO1xuXG4gICAgICBpZiAocGFydHNTdHJpbmcgPT09IEVNUFRZX1NUUklORykge1xuICAgICAgICBwYXJ0c1N0cmluZyA9IHBhcnRTdHJpbmc7IC8vL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFydHNTdHJpbmcgPSBgJHtwYXJ0c1N0cmluZ30gJHtwYXJ0U3RyaW5nfWA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXJ0c1N0cmluZztcbiAgICB9LCBFTVBUWV9TVFJJTkcpO1xuXG4gICAgc3RyaW5nID0gcGFydHNTdHJpbmc7IC8vL1xuXG4gICAgaWYgKHRoaXMucHJlY2VkZW5jZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJlY2VkZW5jZSA9ICh0aGlzLnByZWNlZGVuY2UgPT09IFRSQU5TUEFSRU5UX1BSRUNFREVOQ0UpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQQUNFX0NIQVJBQ1RFUiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlY2VkZW5jZTtcblxuICAgICAgc3RyaW5nID0gYCR7c3RyaW5nfSAoJHtwcmVjZWRlbmNlfSlgO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcnRzKENsYXNzLCBwYXJ0cykge1xuICAgIGlmIChwYXJ0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJ0cyA9IENsYXNzOyAgLy8vXG5cbiAgICAgIENsYXNzID0gRGVmaW5pdGlvbjsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcHJlY2VkZW5jZSA9IG51bGwsXG4gICAgICAgICAgZGVmaW5pdGlvbiA9IG5ldyBDbGFzcyhwYXJ0cywgcHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHNBbmRQcmVjZWRlbmNlKENsYXNzLCBwYXJ0cywgcHJlY2VkZW5jZSkge1xuICAgIGlmIChwcmVjZWRlbmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHByZWNlZGVuY2UgPSBwYXJ0czsgLy8vXG5cbiAgICAgIHBhcnRzID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBEZWZpbml0aW9uOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBkZWZpbml0aW9uID0gbmV3IENsYXNzKHBhcnRzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vblRlcm1pbmFsTm9kZUZyb21SdWxlRGVmaW5pdGlvbkZyYW1lQW5kU3RhdGUocnVsZSwgZGVmaW5pdGlvbiwgZnJhbWUsIHN0YXRlKSB7XG4gIGxldCBub25UZXJtaW5hbE5vZGU7XG5cbiAgY29uc3Qgb3BhY2l0eSA9IHJ1bGUuZ2V0T3BhY2l0eSgpLFxuICAgICAgICBydWxlTmFtZSA9IHJ1bGUuZ2V0TmFtZSgpLFxuICAgICAgICBjaGlsZE5vZGVzID0gZnJhbWUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBwcmVjZWRlbmNlID0gZnJhbWUuZ2V0UHJlY2VkZW5jZShkZWZpbml0aW9uKSxcbiAgICAgICAgTm9uVGVybWluYWxOb2RlID0gcnVsZS5Ob25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUocnVsZU5hbWUsIHN0YXRlKTtcblxuICBub25UZXJtaW5hbE5vZGUgPSBOb25UZXJtaW5hbE5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5KTtcblxuICBub25UZXJtaW5hbE5vZGUgPSBub25UZXJtaW5hbE5vZGUucmV3cml0ZShzdGF0ZSk7XG5cbiAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJEZWZpbml0aW9uIiwiU1BBQ0VfQ0hBUkFDVEVSIiwiY2hhcmFjdGVycyIsInBhcnRzIiwicHJlY2VkZW5jZSIsImdldFBhcnRzIiwiZ2V0UHJlY2VkZW5jZSIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJjb25zdW1pbmciLCJzb21lIiwicGFydCIsInBhcnNlIiwicnVsZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInNhdmVkRnJhbWUiLCJicmFuY2hpbmciLCJpc0JyYW5jaGluZyIsImV2ZXJ5IiwiYnJhbmNoaW5nRXZlcnkiLCJsaW5lYXJFdmVyeSIsImVtcHR5RnJhbWUiLCJkZWZpbml0aW9uIiwiY29tcG9zZSIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUZyb21SdWxlRGVmaW5pdGlvbkZyYW1lQW5kU3RhdGUiLCJ1bnBhbGF0YWJsZSIsImlzVW5wYWxhdGFibGUiLCJjaGlsZE5vZGUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJtZXJnZSIsImFzU3RyaW5nIiwic3RyaW5nIiwicGFydHNTdHJpbmciLCJyZWR1Y2UiLCJwYXJ0U3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwiVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSIsImZyb21QYXJ0cyIsIkNsYXNzIiwidW5kZWZpbmVkIiwiZnJvbVBhcnRzQW5kUHJlY2VkZW5jZSIsIm9wYWNpdHkiLCJnZXRPcGFjaXR5IiwicnVsZU5hbWUiLCJnZXROYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJOb25UZXJtaW5hbE5vZGUiLCJOb25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkiLCJyZXdyaXRlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQXFCQTs7OzJCQVhNOytEQUVUO3dCQUdvQjsyQkFDRzsyQkFDWTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJELE1BQU0sRUFBRUMsZUFBZSxFQUFFLEdBQUdDLHFCQUFVO0FBRXZCLE1BQU1GO0lBQ25CLFlBQVlHLEtBQUssRUFBRUMsVUFBVSxDQUFFO1FBQzdCLElBQUksQ0FBQ0QsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtJQUNwQjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNGLEtBQUs7SUFDbkI7SUFFQUcsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNGLFVBQVU7SUFDeEI7SUFFQUcsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUNoRSxNQUFNQyxZQUFZLElBQUksQ0FBQ1IsS0FBSyxDQUFDUyxJQUFJLENBQUMsQ0FBQ0M7WUFDakMsTUFBTUYsWUFBWUUsS0FBS04sV0FBVyxDQUFDQyxTQUFTQyxjQUFjQztZQUUxRCxJQUFJQyxXQUFXO2dCQUNiLE9BQU87WUFDVDtRQUNGO1FBRUEsT0FBT0E7SUFDVDtJQUVBRyxNQUFNQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUN2QyxNQUFNQyxhQUFhSixPQUNiSyxZ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
|
|
@@ -29,9 +29,9 @@ class BranchingPartsPart extends _nonTerminal.default {
|
|
|
29
29
|
getParts() {
|
|
30
30
|
return this.parts;
|
|
31
31
|
}
|
|
32
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
32
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
33
33
|
const consuming = this.parts.some((part)=>{
|
|
34
|
-
const consuming = part.isConsuming(ruleMap, visitedRules);
|
|
34
|
+
const consuming = part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
35
35
|
if (consuming) {
|
|
36
36
|
return true;
|
|
37
37
|
}
|
|
@@ -61,4 +61,4 @@ class BranchingPartsPart extends _nonTerminal.default {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2JyYW5jaGluZ1BhcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L25vblRlcm1pbmFsXCI7XG5cbmltcG9ydCB7IGVtcHR5RnJhbWUgfSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCB7IGluY2Vzc2FudGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IEJyYW5jaGluZ1BhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBicmFuY2hpbmdFdmVyeSAgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2JyYW5jaGluZ1wiO1xuXG5jb25zdCB7IGZpcnN0LCBsYXN0IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgb3BlbkJyYWNrZXQsIGNsb3NlQnJhY2tldCwgZWxsaXBzaXMgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCcmFuY2hpbmdQYXJ0c1BhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0cykge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5wYXJ0cyA9IHBhcnRzO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydHM7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSwgY2hlY2tGb3JDdXRQYXJ0cyA9IGZhbHNlKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gdGhpcy5wYXJ0cy5zb21lKChwYXJ0KSA9PiB7XG4gICAgICBjb25zdCBjb25zdW1pbmcgPSBwYXJ0LmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cyk7XG5cbiAgICAgIGlmIChjb25zdW1pbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc2F2ZWRGcmFtZSA9IGZyYW1lOyAvLy9cblxuICAgIHN0YXRlID0gc3RhdGUuYnJhbmNoKCk7IC8vL1xuXG4gICAgaW5jZXNzYW50bHkoXG4gICAgICAoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgIHJldHVybiBicmFuY2hpbmdFdmVyeSh0aGlzLnBhcnRzLCAocGFydCwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICAgICAgfSwgZW1wdHlGcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spXG4gICAgICB9LFxuICAgICAgZnJhbWUsXG4gICAgICBzdGF0ZSxcbiAgICAgIChmcmFtZSwgc3RhdGUsIGJhY2spID0+IHtcbiAgICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2Uoc2F2ZWRGcmFtZSwgZnJhbWUpO1xuXG4gICAgICAgIHN0YXRlID0gc3RhdGUucHJ1bmUoKTsgIC8vL1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gICAgICB9LFxuICAgICAgYmFja1xuICAgICk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBmaXJzdFBhcnQgPSBmaXJzdCh0aGlzLnBhcnRzKSxcbiAgICAgICAgICBsYXN0UGFydCA9IGxhc3QodGhpcy5wYXJ0cyksXG4gICAgICAgICAgZmlyc3RQYXJ0U3RyaW5nID0gZmlyc3RQYXJ0LmFzU3RyaW5nKCksXG4gICAgICAgICAgbGFzdFBhcnRTdHJpbmcgPSBsYXN0UGFydC5hc1N0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IGAke29wZW5CcmFja2V0fSAke2ZpcnN0UGFydFN0cmluZ30gJHtlbGxpcHNpc30gJHtsYXN0UGFydFN0cmluZ30gJHtjbG9zZUJyYWNrZXR9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcnRzKHBhcnRzKSB7XG4gICAgY29uc3QgdHlwZSA9IEJyYW5jaGluZ1BhcnRzUGFydFR5cGUsXG4gICAgICAgICAgYnJhbmNoaW5nUGFydHNQYXJ0ID0gbmV3IEJyYW5jaGluZ1BhcnRzUGFydCh0eXBlLCBwYXJ0cyk7XG5cbiAgICByZXR1cm4gYnJhbmNoaW5nUGFydHNQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiQnJhbmNoaW5nUGFydHNQYXJ0IiwiZmlyc3QiLCJsYXN0IiwiYXJyYXlVdGlsaXRpZXMiLCJvcGVuQnJhY2tldCIsImNsb3NlQnJhY2tldCIsImVsbGlwc2lzIiwic3BlY2lhbFN5bWJvbHMiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydHMiLCJnZXRQYXJ0cyIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJjb25zdW1pbmciLCJzb21lIiwicGFydCIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwic2F2ZWRGcmFtZSIsImJyYW5jaCIsImluY2Vzc2FudGx5IiwiYnJhbmNoaW5nRXZlcnkiLCJlbXB0eUZyYW1lIiwiY29tcG9zZSIsInBydW5lIiwiYXNTdHJpbmciLCJmaXJzdFBhcnQiLCJsYXN0UGFydCIsImZpcnN0UGFydFN0cmluZyIsImxhc3RQYXJ0U3RyaW5nIiwic3RyaW5nIiwiZnJvbVBhcnRzIiwiQnJhbmNoaW5nUGFydHNQYXJ0VHlwZSIsImJyYW5jaGluZ1BhcnRzUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZUE7OztlQUFxQkE7OzsyQkFiVTs2QkFDQTtvRUFFSDt1QkFFRDt3QkFDQzsyQkFDVzsyQkFDRTs7Ozs7O0FBRXpDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUUsR0FBR0MseUJBQWMsRUFDaEMsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLEVBQUVDLFFBQVEsRUFBRSxHQUFHQywyQkFBYztBQUUvQyxNQUFNUCwyQkFBMkJRLG9CQUFlO0lBQzdELFlBQVlDLElBQUksRUFBRUMsS0FBSyxDQUFFO1FBQ3ZCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUNoRSxNQUFNQyxZQUFZLElBQUksQ0FBQ04sS0FBSyxDQUFDTyxJQUFJLENBQUMsQ0FBQ0M7WUFDakMsTUFBTUYsWUFBWUUsS0FBS04sV0FBVyxDQUFDQyxTQUFTQyxjQUFjQztZQUUxRCxJQUFJQyxXQUFXO2dCQUNiLE9BQU87WUFDVDtRQUNGO1FBRUEsT0FBT0E7SUFDVDtJQUVBRyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUosT0FBTyxHQUFHO1FBRTdCQyxRQUFRQSxNQUFNSSxNQUFNLElBQUksR0FBRztRQUUzQkMsSUFBQUEsbUJBQVcsRUFDVCxDQUFDTixPQUFPQyxPQUFPQyxTQUFTQztZQUN0QixPQUFPSSxJQUFBQSxnQkFBYyxFQUFDLElBQUksQ0FBQ2pCLEtBQUssRUFBRSxDQUFDUSxNQUFNRSxPQUFPQyxPQUFPQyxTQUFTQztnQkFDOUQsT0FBT0wsS0FBS0MsS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxTQUFTQztZQUMzQyxHQUFHSyxpQkFBVSxFQUFFUCxPQUFPQyxTQUFTQztRQUNqQyxHQUNBSCxPQUNBQyxPQUNBLENBQUNELE9BQU9DLE9BQU9FO1lBQ2JILFFBQVEsSUFBSSxDQUFDUyxPQUFPLENBQUNMLFlBQVlKO1lBRWpDQyxRQUFRQSxNQUFNUyxLQUFLLElBQUssR0FBRztZQUUzQixPQUFPUixRQUFRRixPQUFPQyxPQUFPRTtRQUMvQixHQUNBQTtJQUVKO0lBRUFRLFdBQVc7UUFDVCxNQUFNQyxZQUFZL0IsTUFBTSxJQUFJLENBQUNTLEtBQUssR0FDNUJ1QixXQUFXL0IsS0FBSyxJQUFJLENBQUNRLEtBQUssR0FDMUJ3QixrQkFBa0JGLFVBQVVELFFBQVEsSUFDcENJLGlCQUFpQkYsU0FBU0YsUUFBUSxJQUNsQ0ssU0FBUyxHQUFHaEMsWUFBWSxDQUFDLEVBQUU4QixnQkFBZ0IsQ0FBQyxFQUFFNUIsU0FBUyxDQUFDLEVBQUU2QixlQUFlLENBQUMsRUFBRTlCLGNBQWM7UUFFaEcsT0FBTytCO0lBQ1Q7SUFFQSxPQUFPQyxVQUFVM0IsS0FBSyxFQUFFO1FBQ3RCLE1BQU1ELE9BQU82QixpQ0FBc0IsRUFDN0JDLHFCQUFxQixJQUFJdkMsbUJBQW1CUyxNQUFNQztRQUV4RCxPQUFPNkI7SUFDVDtBQUNGIn0=
|
|
@@ -32,13 +32,21 @@ class ChoiceOfPartsPart extends _nonTerminal.default {
|
|
|
32
32
|
});
|
|
33
33
|
return parts;
|
|
34
34
|
}
|
|
35
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
36
|
+
let consuming;
|
|
37
|
+
if (checkForCutParts) {
|
|
38
|
+
consuming = true;
|
|
39
|
+
this.partChoices.forEach((partChoice)=>{
|
|
40
|
+
consuming = partChoice.isConsuming(ruleMap, visitedRules, checkForCutParts) && consuming;
|
|
41
|
+
});
|
|
42
|
+
} else {
|
|
43
|
+
consuming = this.partChoices.every((partChoice)=>{
|
|
44
|
+
const consuming = partChoice.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
45
|
+
if (consuming) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
42
50
|
return consuming;
|
|
43
51
|
}
|
|
44
52
|
parse(frame, state, forward, back) {
|
|
@@ -65,4 +73,4 @@ class ChoiceOfPartsPart extends _nonTerminal.default {
|
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2Nob2ljZU9mUGFydHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgc29tZSBhcyBsaW5lYXJTb21lIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IHNvbWUgYXMgYnJhbmNoaW5nU29tZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBDaG9pY2VPZlBhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENob2ljZU9mUGFydHNQYXJ0IGV4dGVuZHMgTm9uVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IodHlwZSwgcGFydENob2ljZXMpIHtcbiAgICBzdXBlcih0eXBlKTtcbiAgICBcbiAgICB0aGlzLnBhcnRDaG9pY2VzID0gcGFydENob2ljZXM7XG4gIH1cbiAgXG4gIGdldFBhcnRDaG9pY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnRDaG9pY2VzO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnBhcnRDaG9pY2VzLm1hcCgocGFydENob2ljZSkgPT4ge1xuICAgICAgY29uc3QgcGFydCA9IHBhcnRDaG9pY2UuZ2V0UGFydCgpO1xuXG4gICAgICByZXR1cm4gcGFydDtcbiAgICB9KTtcblxuICAgIHJldHVybiBwYXJ0cztcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdLCBjaGVja0ZvckN1dFBhcnRzID0gZmFsc2UpIHtcbiAgICBsZXQgY29uc3VtaW5nO1xuXG4gICAgaWYgKGNoZWNrRm9yQ3V0UGFydHMpIHtcbiAgICAgIGNvbnN1bWluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMucGFydENob2ljZXMuZm9yRWFjaCgocGFydENob2ljZSkgPT4ge1xuICAgICAgICBjb25zdW1pbmcgPSBwYXJ0Q2hvaWNlLmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cykgJiYgY29uc3VtaW5nO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN1bWluZyA9IHRoaXMucGFydENob2ljZXMuZXZlcnkoKHBhcnRDaG9pY2UpID0+IHtcbiAgICAgICAgY29uc3QgY29uc3VtaW5nID0gcGFydENob2ljZS5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMsIGNoZWNrRm9yQ3V0UGFydHMpO1xuXG4gICAgICAgIGlmIChjb25zdW1pbmcpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgc29tZSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nU29tZSA6XG4gICAgICAgICAgICAgICAgICAgICBsaW5lYXJTb21lO1xuXG4gICAgcmV0dXJuIHNvbWUodGhpcy5wYXJ0Q2hvaWNlcywgKHBhcnRDaG9pY2UsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnRDaG9pY2UucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgcGFydENob2ljZXNTdHJpbmcgPSB0aGlzLnBhcnRDaG9pY2VzLnJlZHVjZSgocGFydENob2ljZXNTdHJpbmcsIHBhcnRDaG9pY2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRDaG9pY2VTdHJpbmcgPSBwYXJ0Q2hvaWNlLmFzU3RyaW5nKCk7XG4gICAgXG4gICAgICAgICAgICBpZiAocGFydENob2ljZXNTdHJpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcGFydENob2ljZXNTdHJpbmcgPSBwYXJ0Q2hvaWNlU3RyaW5nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGFydENob2ljZXNTdHJpbmcgPSBgJHtwYXJ0Q2hvaWNlc1N0cmluZ30gfCAke3BhcnRDaG9pY2VTdHJpbmd9YDtcbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIHJldHVybiBwYXJ0Q2hvaWNlc1N0cmluZztcbiAgICAgICAgICB9LCBudWxsKSxcbiAgICAgICAgICBzdHJpbmcgPSBgKCAke3BhcnRDaG9pY2VzU3RyaW5nfSApYDtcbiAgICBcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0Q2hvaWNlcyhwYXJ0Q2hvaWNlcykge1xuICAgIGNvbnN0IHR5cGUgPSBDaG9pY2VPZlBhcnRzUGFydFR5cGUsXG4gICAgICAgICAgY2hvaWNlT2ZQYXJ0c1BhcnQgPSBuZXcgQ2hvaWNlT2ZQYXJ0c1BhcnQodHlwZSwgcGFydENob2ljZXMpO1xuXG4gICAgcmV0dXJuIGNob2ljZU9mUGFydHNQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiQ2hvaWNlT2ZQYXJ0c1BhcnQiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydENob2ljZXMiLCJnZXRQYXJ0Q2hvaWNlcyIsImdldFBhcnRzIiwicGFydHMiLCJtYXAiLCJwYXJ0Q2hvaWNlIiwicGFydCIsImdldFBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjaGVja0ZvckN1dFBhcnRzIiwiY29uc3VtaW5nIiwiZm9yRWFjaCIsImV2ZXJ5IiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJicmFuY2hpbmciLCJpc0JyYW5jaGluZyIsInNvbWUiLCJicmFuY2hpbmdTb21lIiwibGluZWFyU29tZSIsImFzU3RyaW5nIiwicGFydENob2ljZXNTdHJpbmciLCJyZWR1Y2UiLCJwYXJ0Q2hvaWNlU3RyaW5nIiwic3RyaW5nIiwiZnJvbVBhcnRDaG9pY2VzIiwiQ2hvaWNlT2ZQYXJ0c1BhcnRUeXBlIiwiY2hvaWNlT2ZQYXJ0c1BhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBcUJBOzs7b0VBTk87d0JBRU87MkJBQ0c7MkJBQ0E7Ozs7OztBQUV2QixNQUFNQSwwQkFBMEJDLG9CQUFlO0lBQzVELFlBQVlDLElBQUksRUFBRUMsV0FBVyxDQUFFO1FBQzdCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLFdBQVcsR0FBR0E7SUFDckI7SUFFQUMsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUNELFdBQVc7SUFDekI7SUFFQUUsV0FBVztRQUNULE1BQU1DLFFBQVEsSUFBSSxDQUFDSCxXQUFXLENBQUNJLEdBQUcsQ0FBQyxDQUFDQztZQUNsQyxNQUFNQyxPQUFPRCxXQUFXRSxPQUFPO1lBRS9CLE9BQU9EO1FBQ1Q7UUFFQSxPQUFPSDtJQUNUO0lBRUFLLFlBQVlDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEVBQUVDLG1CQUFtQixLQUFLLEVBQUU7UUFDaEUsSUFBSUM7UUFFSixJQUFJRCxrQkFBa0I7WUFDcEJDLFlBQVk7WUFFWixJQUFJLENBQUNaLFdBQVcsQ0FBQ2EsT0FBTyxDQUFDLENBQUNSO2dCQUN4Qk8sWUFBWVAsV0FBV0csV0FBVyxDQUFDQyxTQUFTQyxjQUFjQyxxQkFBcUJDO1lBQ2pGO1FBQ0YsT0FBTztZQUNMQSxZQUFZLElBQUksQ0FBQ1osV0FBVyxDQUFDYyxLQUFLLENBQUMsQ0FBQ1Q7Z0JBQ2xDLE1BQU1PLFlBQVlQLFdBQVdHLFdBQVcsQ0FBQ0MsU0FBU0MsY0FBY0M7Z0JBRWhFLElBQUlDLFdBQVc7b0JBQ2IsT0FBTztnQkFDVDtZQUNGO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFHLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxZQUFZSCxNQUFNSSxXQUFXLElBQzdCQyxPQUFPRixZQUNFRyxlQUFhLEdBQ1hDLFlBQVU7UUFFM0IsT0FBT0YsS0FBSyxJQUFJLENBQUN0QixXQUFXLEVBQUUsQ0FBQ0ssWUFBWVcsT0FBT0MsT0FBT0MsU0FBU0M7WUFDaEUsT0FBT2QsV0FBV1UsS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxTQUFTQztRQUNqRCxHQUFHSCxPQUFPQyxPQUFPQyxTQUFTQztJQUM1QjtJQUVBTSxXQUFXO1FBQ1QsTUFBTUMsb0JBQW9CLElBQUksQ0FBQzFCLFdBQVcsQ0FBQzJCLE1BQU0sQ0FBQyxDQUFDRCxtQkFBbUJyQjtZQUM5RCxNQUFNdUIsbUJBQW1CdkIsV0FBV29CLFFBQVE7WUFFNUMsSUFBSUMsc0JBQXNCLE1BQU07Z0JBQzlCQSxvQkFBb0JFO1lBQ3RCLE9BQU87Z0JBQ0xGLG9CQUFvQixHQUFHQSxrQkFBa0IsR0FBRyxFQUFFRSxrQkFBa0I7WUFDbEU7WUFFQSxPQUFPRjtRQUNULEdBQUcsT0FDSEcsU0FBUyxDQUFDLEVBQUUsRUFBRUgsa0JBQWtCLEVBQUUsQ0FBQztRQUV6QyxPQUFPRztJQUNUO0lBRUEsT0FBT0MsZ0JBQWdCOUIsV0FBVyxFQUFFO1FBQ2xDLE1BQU1ELE9BQU9nQyxnQ0FBcUIsRUFDNUJDLG9CQUFvQixJQUFJbkMsa0JBQWtCRSxNQUFNQztRQUV0RCxPQUFPZ0M7SUFDVDtBQUNGIn0=
|
|
@@ -25,8 +25,8 @@ 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);
|
|
28
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
29
|
+
return this.part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
30
30
|
}
|
|
31
31
|
parse(frame, state, forward, back) {
|
|
32
32
|
return this.part.parse(frame, state, (frame, state, back)=>{
|
|
@@ -49,4 +49,4 @@ class IsolatedPartPart extends _nonTerminal.default {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2lzb2xhdGVkUGFydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBJU09MQVRFRF9QUkVDRURFTkNFIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSXNvbGF0ZWRQYXJ0UGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIElzb2xhdGVkUGFydFBhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0KSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnBhcnQgPSBwYXJ0O1xuICB9XG5cbiAgZ2V0UGFydCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10sIGNoZWNrRm9yQ3V0UGFydHMgPSBmYWxzZSkgeyByZXR1cm4gdGhpcy5wYXJ0LmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cyk7IH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0LnBhcnNlKGZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUpO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgY29tcG9zZShmcmFtZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgcHJlY2VkZW5jZSA9IElTT0xBVEVEX1BSRUNFREVOQ0U7XG5cbiAgICBmcmFtZSA9IEZyYW1lLmZyb21DaGlsZE5vZGVzQW5kUHJlY2VkZW5jZShjaGlsZE5vZGVzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHBhcnRTdHJpbmcgPSB0aGlzLnBhcnQuYXNTdHJpbmcoKSxcbiAgICAgICAgICBzdHJpbmcgPSBgKCAke3BhcnRTdHJpbmd9IClgO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydChwYXJ0KSB7XG4gICAgY29uc3QgdHlwZSA9IElzb2xhdGVkUGFydFBhcnRUeXBlLFxuICAgICAgICAgIGlzb2xhdGVkUGFydFBhcnQgPSBuZXcgSXNvbGF0ZWRQYXJ0UGFydCh0eXBlLCBwYXJ0KTtcblxuICAgIHJldHVybiBpc29sYXRlZFBhcnRQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiSXNvbGF0ZWRQYXJ0UGFydCIsIk5vblRlcm1pbmFsUGFydCIsInR5cGUiLCJwYXJ0IiwiZ2V0UGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImNvbXBvc2UiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsInByZWNlZGVuY2UiLCJJU09MQVRFRF9QUkVDRURFTkNFIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIklzb2xhdGVkUGFydFBhcnRUeXBlIiwiaXNvbGF0ZWRQYXJ0UGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFxQkE7Ozs4REFOSDtvRUFDVTsyQkFFUTsyQkFDQzs7Ozs7O0FBRXRCLE1BQU1BLHlCQUF5QkMsb0JBQWU7SUFDM0QsWUFBWUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDdEIsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFQyxtQkFBbUIsS0FBSyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNMLElBQUksQ0FBQ0UsV0FBVyxDQUFDQyxTQUFTQyxjQUFjQztJQUFtQjtJQUUzSUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE9BQU8sSUFBSSxDQUFDVixJQUFJLENBQUNNLEtBQUssQ0FBQ0MsT0FBT0MsT0FBTyxDQUFDRCxPQUFPQyxPQUFPRTtZQUNsREgsUUFBUSxJQUFJLENBQUNJLE9BQU8sQ0FBQ0o7WUFFckIsT0FBT0UsUUFBUUYsT0FBT0MsT0FBT0U7UUFDL0IsR0FBR0E7SUFDTDtJQUVBQyxRQUFRSixLQUFLLEVBQUU7UUFDYixNQUFNSyxhQUFhTCxNQUFNTSxhQUFhLElBQ2hDQyxhQUFhQyw4QkFBbUI7UUFFdENSLFFBQVFTLGNBQUssQ0FBQ0MsMkJBQTJCLENBQUNMLFlBQVlFO1FBRXRELE9BQU9QO0lBQ1Q7SUFFQVcsV0FBVztRQUNULE1BQU1DLGFBQWEsSUFBSSxDQUFDbkIsSUFBSSxDQUFDa0IsUUFBUSxJQUMvQkUsU0FBUyxDQUFDLEVBQUUsRUFBRUQsV0FBVyxFQUFFLENBQUM7UUFFbEMsT0FBT0M7SUFDVDtJQUVBLE9BQU9DLFNBQVNyQixJQUFJLEVBQUU7UUFDcEIsTUFBTUQsT0FBT3VCLCtCQUFvQixFQUMzQkMsbUJBQW1CLElBQUkxQixpQkFBaUJFLE1BQU1DO1FBRXBELE9BQU91QjtJQUNUO0FBQ0YifQ==
|
|
@@ -27,8 +27,8 @@ 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);
|
|
30
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
31
|
+
return this.part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
32
32
|
}
|
|
33
33
|
parse(frame, state, forward, back) {
|
|
34
34
|
const limit = Infinity, strict = true, branching = state.isBranching(), repeatedly = branching ? _branching.repeatedly : _linear.repeatedly;
|
|
@@ -46,4 +46,4 @@ class OneOrMorePartsPart extends _nonTerminal.default {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL29uZU9yTW9yZVBhcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBPbmVPck1vcmVQYXJ0c1BhcnRUeXBlIH0gZnJvbSBcIi4uLy4uL3BhcnRUeXBlc1wiO1xuaW1wb3J0IHsgcmVwZWF0ZWRseSBhcyBsaW5lYXJSZXBlYXRlZGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IHJlcGVhdGVkbHkgYXMgYnJhbmNoaW5nUmVwZWF0ZWRseSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5cbmNvbnN0IHsgcGx1cyB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9uZU9yTW9yZVBhcnRzUGFydCBleHRlbmRzIE5vblRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHR5cGUsIHBhcnQpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIHRoaXMucGFydCA9IHBhcnQ7XG4gIH1cblxuICBnZXRQYXJ0KCkge1xuICAgIHJldHVybiB0aGlzLnBhcnQ7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSwgY2hlY2tGb3JDdXRQYXJ0cyA9IGZhbHNlKSB7IHJldHVybiB0aGlzLnBhcnQuaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzLCBjaGVja0ZvckN1dFBhcnRzKTsgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGxpbWl0ID0gSW5maW5pdHksXG4gICAgICAgICAgc3RyaWN0ID0gdHJ1ZSxcbiAgICAgICAgICBicmFuY2hpbmcgPSBzdGF0ZS5pc0JyYW5jaGluZygpLFxuICAgICAgICAgIHJlcGVhdGVkbHkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaGluZ1JlcGVhdGVkbHkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyUmVwZWF0ZWRseTtcblxuICAgIHJldHVybiByZXBlYXRlZGx5KHRoaXMucGFydCwgbGltaXQsIHN0cmljdCwgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgcGFydFN0cmluZyA9IHRoaXMucGFydC5hc1N0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IGAke3BhcnRTdHJpbmd9JHtwbHVzfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0KHBhcnQpIHtcbiAgICBjb25zdCB0eXBlID0gT25lT3JNb3JlUGFydHNQYXJ0VHlwZSxcbiAgICAgICAgICBvbmVPck1vcmVQYXJ0c1BhcnQgPSBuZXcgT25lT3JNb3JlUGFydHNQYXJ0KHR5cGUsIHBhcnQpO1xuXG4gICAgcmV0dXJuIG9uZU9yTW9yZVBhcnRzUGFydDtcbiAgfVxufSJdLCJuYW1lcyI6WyJPbmVPck1vcmVQYXJ0c1BhcnQiLCJwbHVzIiwic3BlY2lhbFN5bWJvbHMiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydCIsImdldFBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjaGVja0ZvckN1dFBhcnRzIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJsaW1pdCIsIkluZmluaXR5Iiwic3RyaWN0IiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJyZXBlYXRlZGx5IiwiYnJhbmNoaW5nUmVwZWF0ZWRseSIsImxpbmVhclJlcGVhdGVkbHkiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIk9uZU9yTW9yZVBhcnRzUGFydFR5cGUiLCJvbmVPck1vcmVQYXJ0c1BhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBcUJBOzs7NkJBVlU7b0VBRUg7MkJBRVc7d0JBQ1E7MkJBQ0c7Ozs7OztBQUVsRCxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQywyQkFBYztBQUVoQixNQUFNRiwyQkFBMkJHLG9CQUFlO0lBQzdELFlBQVlDLElBQUksRUFBRUMsSUFBSSxDQUFFO1FBQ3RCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDTCxJQUFJLENBQUNFLFdBQVcsQ0FBQ0MsU0FBU0MsY0FBY0M7SUFBbUI7SUFFM0lDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxRQUFRQyxVQUNSQyxTQUFTLE1BQ1RDLFlBQVlOLE1BQU1PLFdBQVcsSUFDN0JDLGFBQWFGLFlBQ0VHLHFCQUFtQixHQUNqQkMsa0JBQWdCO1FBRXZDLE9BQU9GLFdBQVcsSUFBSSxDQUFDaEIsSUFBSSxFQUFFVyxPQUFPRSxRQUFRLENBQUNiLE1BQU1PLE9BQU9DLE9BQU9DLFNBQVNDO1lBQ3hFLE9BQU9WLEtBQUtNLEtBQUssQ0FBQ0MsT0FBT0MsT0FBT0MsU0FBU0M7UUFDM0MsR0FBR0gsT0FBT0MsT0FBT0MsU0FBU0M7SUFDNUI7SUFFQVMsV0FBVztRQUNULE1BQU1DLGFBQWEsSUFBSSxDQUFDcEIsSUFBSSxDQUFDbUIsUUFBUSxJQUMvQkUsU0FBUyxHQUFHRCxhQUFheEIsTUFBTTtRQUVyQyxPQUFPeUI7SUFDVDtJQUVBLE9BQU9DLFNBQVN0QixJQUFJLEVBQUU7UUFDcEIsTUFBTUQsT0FBT3dCLGlDQUFzQixFQUM3QkMscUJBQXFCLElBQUk3QixtQkFBbUJJLE1BQU1DO1FBRXhELE9BQU93QjtJQUNUO0FBQ0YifQ==
|
|
@@ -27,8 +27,11 @@ class OptionalPartPart extends _nonTerminal.default {
|
|
|
27
27
|
getPart() {
|
|
28
28
|
return this.part;
|
|
29
29
|
}
|
|
30
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
30
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
31
31
|
const consuming = false;
|
|
32
|
+
if (checkForCutParts) {
|
|
33
|
+
this.part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
34
|
+
}
|
|
32
35
|
return consuming;
|
|
33
36
|
}
|
|
34
37
|
parse(frame, state, forward, back) {
|
|
@@ -47,4 +50,4 @@ class OptionalPartPart extends _nonTerminal.default {
|
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL29wdGlvbmFsUGFydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgT3B0aW9uYWxQYXJ0UGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5pbXBvcnQgeyByZXBlYXRlZGx5IGFzIGxpbmVhclJlcGVhdGVkbHkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2xpbmVhclwiO1xuaW1wb3J0IHsgcmVwZWF0ZWRseSBhcyBicmFuY2hpbmdSZXBlYXRlZGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcblxuY29uc3QgeyBxdWVzdGlvbk1hcmsgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcHRpb25hbFBhcnRQYXJ0IGV4dGVuZHMgTm9uVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IodHlwZSwgcGFydCkge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5wYXJ0ID0gcGFydDtcbiAgfVxuXG4gIGdldFBhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydDtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdLCBjaGVja0ZvckN1dFBhcnRzID0gZmFsc2UpIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSBmYWxzZTtcblxuICAgIGlmIChjaGVja0ZvckN1dFBhcnRzKSB7XG4gICAgICB0aGlzLnBhcnQuaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzLCBjaGVja0ZvckN1dFBhcnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgbGltaXQgPSAxLFxuICAgICAgICAgIHN0cmljdCA9IGZhbHNlLFxuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgcmVwZWF0ZWRseSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nUmVwZWF0ZWRseSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXJSZXBlYXRlZGx5O1xuXG4gICAgcmV0dXJuIHJlcGVhdGVkbHkodGhpcy5wYXJ0LCBsaW1pdCwgc3RyaWN0LCAocGFydCwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gcGFydC5wYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBwYXJ0U3RyaW5nID0gdGhpcy5wYXJ0LmFzU3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gYCR7cGFydFN0cmluZ30ke3F1ZXN0aW9uTWFya31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydChwYXJ0KSB7XG4gICAgY29uc3QgdHlwZSA9IE9wdGlvbmFsUGFydFBhcnRUeXBlLFxuICAgICAgICAgIG9wdGlvbmFsUGFydFBhcnQgPSBuZXcgT3B0aW9uYWxQYXJ0UGFydCh0eXBlLCBwYXJ0KTtcblxuICAgIHJldHVybiBvcHRpb25hbFBhcnRQYXJ0O1xuICB9XG59Il0sIm5hbWVzIjpbIk9wdGlvbmFsUGFydFBhcnQiLCJxdWVzdGlvbk1hcmsiLCJzcGVjaWFsU3ltYm9scyIsIk5vblRlcm1pbmFsUGFydCIsInR5cGUiLCJwYXJ0IiwiZ2V0UGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImxpbWl0Iiwic3RyaWN0IiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJyZXBlYXRlZGx5IiwiYnJhbmNoaW5nUmVwZWF0ZWRseSIsImxpbmVhclJlcGVhdGVkbHkiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIk9wdGlvbmFsUGFydFBhcnRUeXBlIiwib3B0aW9uYWxQYXJ0UGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFxQkE7Ozs2QkFWVTtvRUFFSDsyQkFFUzt3QkFDVTsyQkFDRzs7Ozs7O0FBRWxELE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUdDLDJCQUFjO0FBRXhCLE1BQU1GLHlCQUF5Qkcsb0JBQWU7SUFDM0QsWUFBWUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDdEIsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFQyxtQkFBbUIsS0FBSyxFQUFFO1FBQ2hFLE1BQU1DLFlBQVk7UUFFbEIsSUFBSUQsa0JBQWtCO1lBQ3BCLElBQUksQ0FBQ0wsSUFBSSxDQUFDRSxXQUFXLENBQUNDLFNBQVNDLGNBQWNDO1FBQy9DO1FBRUEsT0FBT0M7SUFDVDtJQUVBQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsUUFBUSxHQUNSQyxTQUFTLE9BQ1RDLFlBQVlMLE1BQU1NLFdBQVcsSUFDN0JDLGFBQWFGLFlBQ0VHLHFCQUFtQixHQUNqQkMsa0JBQWdCO1FBRXZDLE9BQU9GLFdBQVcsSUFBSSxDQUFDaEIsSUFBSSxFQUFFWSxPQUFPQyxRQUFRLENBQUNiLE1BQU1RLE9BQU9DLE9BQU9DLFNBQVNDO1lBQ3hFLE9BQU9YLEtBQUtPLEtBQUssQ0FBQ0MsT0FBT0MsT0FBT0MsU0FBU0M7UUFDM0MsR0FBR0gsT0FBT0MsT0FBT0MsU0FBU0M7SUFDNUI7SUFFQVEsV0FBVztRQUNULE1BQU1DLGFBQWEsSUFBSSxDQUFDcEIsSUFBSSxDQUFDbUIsUUFBUSxJQUMvQkUsU0FBUyxHQUFHRCxhQUFheEIsY0FBYztRQUU3QyxPQUFPeUI7SUFDVDtJQUVBLE9BQU9DLFNBQVN0QixJQUFJLEVBQUU7UUFDcEIsTUFBTUQsT0FBT3dCLCtCQUFvQixFQUMzQkMsbUJBQW1CLElBQUk3QixpQkFBaUJJLE1BQU1DO1FBRXBELE9BQU93QjtJQUNUO0FBQ0YifQ==
|
|
@@ -27,12 +27,12 @@ class RuleNamePart extends _nonTerminal.default {
|
|
|
27
27
|
const ruleNamePart = true;
|
|
28
28
|
return ruleNamePart;
|
|
29
29
|
}
|
|
30
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
30
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
31
31
|
const rule = ruleMap[this.ruleName] || null;
|
|
32
32
|
if (rule == null) {
|
|
33
33
|
throw new Error(`The '${this.ruleName}' rule is missing.`);
|
|
34
34
|
}
|
|
35
|
-
const consuming = rule.isConsuming(ruleMap, visitedRules);
|
|
35
|
+
const consuming = rule.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
36
36
|
return consuming;
|
|
37
37
|
}
|
|
38
38
|
parse(frame, state, forward, back) {
|
|
@@ -52,4 +52,4 @@ class RuleNamePart extends _nonTerminal.default {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3J1bGVOYW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L25vblRlcm1pbmFsXCI7XG5cbmltcG9ydCB7IFJ1bGVOYW1lUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGVOYW1lUGFydCBleHRlbmRzIE5vblRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHR5cGUsIHJ1bGVOYW1lKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnJ1bGVOYW1lID0gcnVsZU5hbWU7XG4gIH1cblxuICBnZXRSdWxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTmFtZTtcbiAgfVxuXG4gIGlzUnVsZU5hbWVQYXJ0KCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lUGFydCA9IHRydWU7XG5cbiAgICByZXR1cm4gcnVsZU5hbWVQYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10sIGNoZWNrRm9yQ3V0UGFydHMgPSBmYWxzZSkge1xuICAgIGNvbnN0IHJ1bGUgPSBydWxlTWFwW3RoaXMucnVsZU5hbWVdIHx8IG51bGw7XG5cbiAgICBpZiAocnVsZSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAgJyR7dGhpcy5ydWxlTmFtZX0nIHJ1bGUgaXMgbWlzc2luZy5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25zdW1pbmcgPSBydWxlLmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cyk7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgcnVsZSA9IHN0YXRlLmZpbmRSdWxlKHRoaXMucnVsZU5hbWUpO1xuXG4gICAgaWYgKHJ1bGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJ1bGUucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IGAke3RoaXMucnVsZU5hbWV9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lKHJ1bGVOYW1lKSB7XG4gICAgY29uc3QgdHlwZSA9IFJ1bGVOYW1lUGFydFR5cGUsXG4gICAgICAgICAgcnVsZU5hbWVQYXJ0ID0gbmV3IFJ1bGVOYW1lUGFydCh0eXBlLCBydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcnVsZU5hbWVQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiUnVsZU5hbWVQYXJ0IiwiTm9uVGVybWluYWxQYXJ0IiwidHlwZSIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJpc1J1bGVOYW1lUGFydCIsInJ1bGVOYW1lUGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJydWxlIiwiRXJyb3IiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImZpbmRSdWxlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJmcm9tUnVsZU5hbWUiLCJSdWxlTmFtZVBhcnRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O29FQUpPOzJCQUVLOzs7Ozs7QUFFbEIsTUFBTUEscUJBQXFCQyxvQkFBZTtJQUN2RCxZQUFZQyxJQUFJLEVBQUVDLFFBQVEsQ0FBRTtRQUMxQixLQUFLLENBQUNEO1FBRU4sSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsUUFBUTtJQUN0QjtJQUVBRSxpQkFBaUI7UUFDZixNQUFNQyxlQUFlO1FBRXJCLE9BQU9BO0lBQ1Q7SUFFQUMsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUNoRSxNQUFNQyxPQUFPSCxPQUFPLENBQUMsSUFBSSxDQUFDTCxRQUFRLENBQUMsSUFBSTtRQUV2QyxJQUFJUSxRQUFRLE1BQU07WUFDaEIsTUFBTSxJQUFJQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQ1QsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1FBQzVEO1FBRUEsTUFBTVUsWUFBWUYsS0FBS0osV0FBVyxDQUFDQyxTQUFTQyxjQUFjQztRQUUxRCxPQUFPRztJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNUCxPQUFPSyxNQUFNRyxRQUFRLENBQUMsSUFBSSxDQUFDaEIsUUFBUTtRQUV6QyxJQUFJUSxTQUFTLE1BQU07WUFDakIsT0FBT087UUFDVDtRQUVBLE9BQU9QLEtBQUtHLEtBQUssQ0FBQ0MsT0FBT0MsT0FBT0MsU0FBU0M7SUFDM0M7SUFFQUUsV0FBVztRQUNULE1BQU1DLFNBQVMsR0FBRyxJQUFJLENBQUNsQixRQUFRLEVBQUU7UUFFakMsT0FBT2tCO0lBQ1Q7SUFFQSxPQUFPQyxhQUFhbkIsUUFBUSxFQUFFO1FBQzVCLE1BQU1ELE9BQU9xQiwyQkFBZ0IsRUFDdkJqQixlQUFlLElBQUlOLGFBQWFFLE1BQU1DO1FBRTVDLE9BQU9HO0lBQ1Q7QUFDRiJ9
|
|
@@ -26,9 +26,9 @@ class SequenceOfPartsPart extends _nonTerminal.default {
|
|
|
26
26
|
getParts() {
|
|
27
27
|
return this.parts;
|
|
28
28
|
}
|
|
29
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
29
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
30
30
|
const consuming = this.parts.some((part)=>{
|
|
31
|
-
const consuming = part.isConsuming(ruleMap, visitedRules);
|
|
31
|
+
const consuming = part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
32
32
|
if (consuming) {
|
|
33
33
|
return true;
|
|
34
34
|
}
|
|
@@ -62,4 +62,4 @@ class SequenceOfPartsPart extends _nonTerminal.default {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3NlcXVlbmNlT2ZQYXJ0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBlbXB0eUZyYW1lIH0gZnJvbSBcIi4uLy4uL2ZyYW1lXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBsaW5lYXJFdmVyeSAgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2xpbmVhclwiO1xuaW1wb3J0IHsgZXZlcnkgYXMgYnJhbmNoaW5nRXZlcnkgIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcbmltcG9ydCB7IFNlcXVlbmNlT2ZQYXJ0c1BhcnRUeXBlIH0gZnJvbSBcIi4uLy4uL3BhcnRUeXBlc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXF1ZW5jZU9mUGFydHNQYXJ0IGV4dGVuZHMgTm9uVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IodHlwZSwgcGFydHMpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgfVxuXG4gIGdldFBhcnRzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnRzO1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10sIGNoZWNrRm9yQ3V0UGFydHMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGNvbnN1bWluZyA9IHRoaXMucGFydHMuc29tZSgocGFydCkgPT4ge1xuICAgICAgY29uc3QgY29uc3VtaW5nID0gcGFydC5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMsIGNoZWNrRm9yQ3V0UGFydHMpO1xuXG4gICAgICBpZiAoY29uc3VtaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHNhdmVkRnJhbWUgPSBmcmFtZSwgLy8vXG4gICAgICAgICAgYnJhbmNoaW5nID0gc3RhdGUuaXNCcmFuY2hpbmcoKSxcbiAgICAgICAgICBldmVyeSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICAgIGJyYW5jaGluZ0V2ZXJ5IDpcbiAgICAgICAgICAgICAgICAgICAgICBsaW5lYXJFdmVyeTtcblxuICAgIHJldHVybiBldmVyeSh0aGlzLnBhcnRzLCAocGFydCwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gcGFydC5wYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGVtcHR5RnJhbWUsIHN0YXRlLCAoZnJhbWUsIHN0YXRlLCBiYWNrKSA9PiB7XG4gICAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShzYXZlZEZyYW1lLCBmcmFtZSk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBwYXJ0c1N0cmluZyA9IHRoaXMucGFydHMucmVkdWNlKChwYXJ0c1N0cmluZywgcGFydCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFydFN0cmluZyA9IHBhcnQuYXNTdHJpbmcoKTtcblxuICAgICAgICAgICAgaWYgKHBhcnRzU3RyaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHBhcnRzU3RyaW5nID0gcGFydFN0cmluZztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBhcnRzU3RyaW5nID0gYCR7cGFydHNTdHJpbmd9ICR7cGFydFN0cmluZ31gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGFydHNTdHJpbmc7XG4gICAgICAgICAgfSwgbnVsbCksXG4gICAgICAgICAgc3RyaW5nID0gYCggJHtwYXJ0c1N0cmluZ30gKWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0cyhwYXJ0cykge1xuICAgIGNvbnN0IHR5cGUgPSBTZXF1ZW5jZU9mUGFydHNQYXJ0VHlwZSxcbiAgICAgICAgICBzZXF1ZW5jZU9mUGFydHNQYXJ0ID0gbmV3IFNlcXVlbmNlT2ZQYXJ0c1BhcnQodHlwZSwgcGFydHMpO1xuXG4gICAgcmV0dXJuIHNlcXVlbmNlT2ZQYXJ0c1BhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTZXF1ZW5jZU9mUGFydHNQYXJ0IiwiTm9uVGVybWluYWxQYXJ0IiwidHlwZSIsInBhcnRzIiwiZ2V0UGFydHMiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjaGVja0ZvckN1dFBhcnRzIiwiY29uc3VtaW5nIiwic29tZSIsInBhcnQiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInNhdmVkRnJhbWUiLCJicmFuY2hpbmciLCJpc0JyYW5jaGluZyIsImV2ZXJ5IiwiYnJhbmNoaW5nRXZlcnkiLCJsaW5lYXJFdmVyeSIsImVtcHR5RnJhbWUiLCJjb21wb3NlIiwiYXNTdHJpbmciLCJwYXJ0c1N0cmluZyIsInJlZHVjZSIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydHMiLCJTZXF1ZW5jZU9mUGFydHNQYXJ0VHlwZSIsInNlcXVlbmNlT2ZQYXJ0c1BhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBcUJBOzs7b0VBUE87dUJBRUQ7d0JBQ1c7MkJBQ0c7MkJBQ0Q7Ozs7OztBQUV6QixNQUFNQSw0QkFBNEJDLG9CQUFlO0lBQzlELFlBQVlDLElBQUksRUFBRUMsS0FBSyxDQUFFO1FBQ3ZCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUNoRSxNQUFNQyxZQUFZLElBQUksQ0FBQ04sS0FBSyxDQUFDTyxJQUFJLENBQUMsQ0FBQ0M7WUFDakMsTUFBTUYsWUFBWUUsS0FBS04sV0FBVyxDQUFDQyxTQUFTQyxjQUFjQztZQUUxRCxJQUFJQyxXQUFXO2dCQUNiLE9BQU87WUFDVDtRQUNGO1FBRUEsT0FBT0E7SUFDVDtJQUVBRyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUosT0FDYkssWUFBWUosTUFBTUssV0FBVyxJQUM3QkMsUUFBUUYsWUFDRUcsZ0JBQWMsR0FDWkMsYUFBVztRQUU3QixPQUFPRixNQUFNLElBQUksQ0FBQ2pCLEtBQUssRUFBRSxDQUFDUSxNQUFNRSxPQUFPQyxPQUFPQyxTQUFTQztZQUNyRCxPQUFPTCxLQUFLQyxLQUFLLENBQUNDLE9BQU9DLE9BQU9DLFNBQVNDO1FBQzNDLEdBQUdPLGlCQUFVLEVBQUVULE9BQU8sQ0FBQ0QsT0FBT0MsT0FBT0U7WUFDbkNILFFBQVEsSUFBSSxDQUFDVyxPQUFPLENBQUNQLFlBQVlKO1lBRWpDLE9BQU9FLFFBQVFGLE9BQU9DLE9BQU9FO1FBQy9CLEdBQUdBO0lBQ0w7SUFFQVMsV0FBVztRQUNULE1BQU1DLGNBQWMsSUFBSSxDQUFDdkIsS0FBSyxDQUFDd0IsTUFBTSxDQUFDLENBQUNELGFBQWFmO1lBQzVDLE1BQU1pQixhQUFhakIsS0FBS2MsUUFBUTtZQUVoQyxJQUFJQyxnQkFBZ0IsTUFBTTtnQkFDeEJBLGNBQWNFO1lBQ2hCLE9BQU87Z0JBQ0xGLGNBQWMsR0FBR0EsWUFBWSxDQUFDLEVBQUVFLFlBQVk7WUFDOUM7WUFFQSxPQUFPRjtRQUNULEdBQUcsT0FDSEcsU0FBUyxDQUFDLEVBQUUsRUFBRUgsWUFBWSxFQUFFLENBQUM7UUFFbkMsT0FBT0c7SUFDVDtJQUVBLE9BQU9DLFVBQVUzQixLQUFLLEVBQUU7UUFDdEIsTUFBTUQsT0FBTzZCLGtDQUF1QixFQUM5QkMsc0JBQXNCLElBQUloQyxvQkFBb0JFLE1BQU1DO1FBRTFELE9BQU82QjtJQUNUO0FBQ0YifQ==
|
|
@@ -27,8 +27,11 @@ class ZeroOrMorePartsPart extends _nonTerminal.default {
|
|
|
27
27
|
getPart() {
|
|
28
28
|
return this.part;
|
|
29
29
|
}
|
|
30
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
30
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
31
31
|
const consuming = false;
|
|
32
|
+
if (checkForCutParts) {
|
|
33
|
+
this.part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
34
|
+
}
|
|
32
35
|
return consuming;
|
|
33
36
|
}
|
|
34
37
|
parse(frame, state, forward, back) {
|
|
@@ -47,4 +50,4 @@ class ZeroOrMorePartsPart extends _nonTerminal.default {
|
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3plcm9Pck1vcmVQYXJ0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgWmVyb09yTW9yZVBhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5pbXBvcnQgeyByZXBlYXRlZGx5IGFzIGxpbmVhclJlcGVhdGVkbHkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2xpbmVhclwiO1xuaW1wb3J0IHsgcmVwZWF0ZWRseSBhcyBicmFuY2hpbmdSZXBlYXRlZGx5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcblxuY29uc3QgeyBhc3RlcmlzayB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFplcm9Pck1vcmVQYXJ0c1BhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0KSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnBhcnQgPSBwYXJ0O1xuICB9XG5cbiAgZ2V0UGFydCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10sIGNoZWNrRm9yQ3V0UGFydHMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGNvbnN1bWluZyA9IGZhbHNlO1xuXG4gICAgaWYgKGNoZWNrRm9yQ3V0UGFydHMpIHtcbiAgICAgIHRoaXMucGFydC5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMsIGNoZWNrRm9yQ3V0UGFydHMpO1xuICAgIH1cblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBsaW1pdCA9IEluZmluaXR5LFxuICAgICAgICAgIHN0cmljdCA9IGZhbHNlLFxuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgcmVwZWF0ZWRseSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nUmVwZWF0ZWRseSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXJSZXBlYXRlZGx5O1xuXG4gICAgcmV0dXJuIHJlcGVhdGVkbHkodGhpcy5wYXJ0LCBsaW1pdCwgc3RyaWN0LCAocGFydCwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gcGFydC5wYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBwYXJ0U3RyaW5nID0gdGhpcy5wYXJ0LmFzU3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gYCR7cGFydFN0cmluZ30ke2FzdGVyaXNrfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0KHBhcnQpIHtcbiAgICBjb25zdCB0eXBlID0gWmVyb09yTW9yZVBhcnRzUGFydFR5cGUsXG4gICAgICAgICAgemVyb09yTW9yZVBhcnRzUGFydCA9IG5ldyBaZXJvT3JNb3JlUGFydHNQYXJ0KHR5cGUsIHBhcnQpO1xuXG4gICAgcmV0dXJuIHplcm9Pck1vcmVQYXJ0c1BhcnQ7XG4gIH1cbn0iXSwibmFtZXMiOlsiWmVyb09yTW9yZVBhcnRzUGFydCIsImFzdGVyaXNrIiwic3BlY2lhbFN5bWJvbHMiLCJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwicGFydCIsImdldFBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjaGVja0ZvckN1dFBhcnRzIiwiY29uc3VtaW5nIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJsaW1pdCIsIkluZmluaXR5Iiwic3RyaWN0IiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJyZXBlYXRlZGx5IiwiYnJhbmNoaW5nUmVwZWF0ZWRseSIsImxpbmVhclJlcGVhdGVkbHkiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIlplcm9Pck1vcmVQYXJ0c1BhcnRUeXBlIiwiemVyb09yTW9yZVBhcnRzUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFxQkE7Ozs2QkFWVTtvRUFFSDsyQkFFWTt3QkFDTzsyQkFDRzs7Ozs7O0FBRWxELE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLDJCQUFjO0FBRXBCLE1BQU1GLDRCQUE0Qkcsb0JBQWU7SUFDOUQsWUFBWUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDdEIsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFQyxtQkFBbUIsS0FBSyxFQUFFO1FBQ2hFLE1BQU1DLFlBQVk7UUFFbEIsSUFBSUQsa0JBQWtCO1lBQ3BCLElBQUksQ0FBQ0wsSUFBSSxDQUFDRSxXQUFXLENBQUNDLFNBQVNDLGNBQWNDO1FBQy9DO1FBRUEsT0FBT0M7SUFDVDtJQUVBQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsUUFBUUMsVUFDUkMsU0FBUyxPQUNUQyxZQUFZTixNQUFNTyxXQUFXLElBQzdCQyxhQUFhRixZQUNFRyxxQkFBbUIsR0FDakJDLGtCQUFnQjtRQUV2QyxPQUFPRixXQUFXLElBQUksQ0FBQ2pCLElBQUksRUFBRVksT0FBT0UsUUFBUSxDQUFDZCxNQUFNUSxPQUFPQyxPQUFPQyxTQUFTQztZQUN4RSxPQUFPWCxLQUFLTyxLQUFLLENBQUNDLE9BQU9DLE9BQU9DLFNBQVNDO1FBQzNDLEdBQUdILE9BQU9DLE9BQU9DLFNBQVNDO0lBQzVCO0lBRUFTLFdBQVc7UUFDVCxNQUFNQyxhQUFhLElBQUksQ0FBQ3JCLElBQUksQ0FBQ29CLFFBQVEsSUFDL0JFLFNBQVMsR0FBR0QsYUFBYXpCLFVBQVU7UUFFekMsT0FBTzBCO0lBQ1Q7SUFFQSxPQUFPQyxTQUFTdkIsSUFBSSxFQUFFO1FBQ3BCLE1BQU1ELE9BQU95QixrQ0FBdUIsRUFDOUJDLHNCQUFzQixJQUFJOUIsb0JBQW9CSSxNQUFNQztRQUUxRCxPQUFPeUI7SUFDVDtBQUNGIn0=
|
package/lib/part/terminal/cut.js
CHANGED
|
@@ -31,8 +31,11 @@ class CutPart extends _terminal.default {
|
|
|
31
31
|
const cutPart = true;
|
|
32
32
|
return cutPart;
|
|
33
33
|
}
|
|
34
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
34
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
35
35
|
const consuming = false;
|
|
36
|
+
if (checkForCutParts) {
|
|
37
|
+
throw new Error(`A cut part has been found before a consuming terminal.`);
|
|
38
|
+
}
|
|
36
39
|
return consuming;
|
|
37
40
|
}
|
|
38
41
|
setProducing(producing) {
|
|
@@ -56,4 +59,4 @@ class CutPart extends _terminal.default {
|
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
61
|
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL2N1dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBDdXQgZnJvbSBcIi4uLy4uL2N1dFwiO1xuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IEN1dE5vZGUgZnJvbSBcIi4uLy4uL25vZGUvdGVybWluYWwvY3V0XCI7XG5pbXBvcnQgVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L3Rlcm1pbmFsXCI7XG5cbmNvbnN0IHsgYmFja3RpY2sgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXRQYXJ0IGV4dGVuZHMgVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IocHJvZHVjaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMucHJvZHVjaW5nID0gcHJvZHVjaW5nO1xuICB9XG5cbiAgaXNQcm9kdWNpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjaW5nO1xuICB9XG5cbiAgaXNDdXRQYXJ0KCkge1xuICAgIGNvbnN0IGN1dFBhcnQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGN1dFBhcnQ7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSwgY2hlY2tGb3JDdXRQYXJ0cyA9IGZhbHNlKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gZmFsc2U7XG5cbiAgICBpZiAoY2hlY2tGb3JDdXRQYXJ0cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBIGN1dCBwYXJ0IGhhcyBiZWVuIGZvdW5kIGJlZm9yZSBhIGNvbnN1bWluZyB0ZXJtaW5hbC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgc2V0UHJvZHVjaW5nKHByb2R1Y2luZykge1xuICAgIHRoaXMucHJvZHVjaW5nID0gcHJvZHVjaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgaWYgKHRoaXMucHJvZHVjaW5nKSB7XG4gICAgICBjb25zdCBjdXROb2RlID0gQ3V0Tm9kZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgICAgY2hpbGROb2RlID0gY3V0Tm9kZSxcbiAgICAgICAgICAgIHBhcnRGcmFtZSA9IEZyYW1lLmZyb21DaGlsZE5vZGUoY2hpbGROb2RlKTtcblxuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUsIHBhcnRGcmFtZSk7XG4gICAgfVxuXG4gICAgY29uc3QgY3V0ID0gQ3V0LmZyb21GcmFtZVN0YXRlQW5kRm9yd2FyZChmcmFtZSwgc3RhdGUsIGZvcndhcmQpO1xuXG4gICAgcmV0dXJuIGJhY2soY3V0KTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHRoaXMucHJvZHVjaW5nID9cbiAgICAgICAgICAgICAgICAgICAgYCR7YmFja3RpY2t9JHtiYWNrdGlja31gIDpcbiAgICAgICAgICAgICAgICAgICAgICBgJHtiYWNrdGlja31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUHJvZHVjaW5nKHByb2R1Y2luZykge1xuICAgIGNvbnN0IGN1dFBhcnQgPSBuZXcgQ3V0UGFydChwcm9kdWNpbmcpO1xuXG4gICAgcmV0dXJuIGN1dFBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDdXRQYXJ0IiwiYmFja3RpY2siLCJzcGVjaWFsU3ltYm9scyIsIlRlcm1pbmFsUGFydCIsInByb2R1Y2luZyIsImlzUHJvZHVjaW5nIiwiaXNDdXRQYXJ0IiwiY3V0UGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJjb25zdW1pbmciLCJFcnJvciIsInNldFByb2R1Y2luZyIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwiY3V0Tm9kZSIsIkN1dE5vZGUiLCJmcm9tTm90aGluZyIsImNoaWxkTm9kZSIsInBhcnRGcmFtZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsImNvbXBvc2UiLCJjdXQiLCJDdXQiLCJmcm9tRnJhbWVTdGF0ZUFuZEZvcndhcmQiLCJhc1N0cmluZyIsInN0cmluZyIsImZyb21Qcm9kdWNpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBcUJBOzs7NkJBVFU7NERBRWY7OERBQ0U7NkRBQ0U7aUVBQ0s7Ozs7OztBQUV6QixNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHQywyQkFBYztBQUVwQixNQUFNRixnQkFBZ0JHLGlCQUFZO0lBQy9DLFlBQVlDLFNBQVMsQ0FBRTtRQUNyQixLQUFLO1FBRUwsSUFBSSxDQUFDQSxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsU0FBUztJQUN2QjtJQUVBRSxZQUFZO1FBQ1YsTUFBTUMsVUFBVTtRQUVoQixPQUFPQTtJQUNUO0lBRUFDLFlBQVlDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEVBQUVDLG1CQUFtQixLQUFLLEVBQUU7UUFDaEUsTUFBTUMsWUFBWTtRQUVsQixJQUFJRCxrQkFBa0I7WUFDcEIsTUFBTSxJQUFJRSxNQUFNLENBQUMsc0RBQXNELENBQUM7UUFDMUU7UUFFQSxPQUFPRDtJQUNUO0lBRUFFLGFBQWFWLFNBQVMsRUFBRTtRQUN0QixJQUFJLENBQUNBLFNBQVMsR0FBR0E7SUFDbkI7SUFFQVcsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLElBQUksSUFBSSxDQUFDZixTQUFTLEVBQUU7WUFDbEIsTUFBTWdCLFVBQVVDLGFBQU8sQ0FBQ0MsV0FBVyxJQUM3QkMsWUFBWUgsU0FDWkksWUFBWUMsY0FBSyxDQUFDQyxhQUFhLENBQUNIO1lBRXRDUCxRQUFRLElBQUksQ0FBQ1csT0FBTyxDQUFDWCxPQUFPUTtRQUM5QjtRQUVBLE1BQU1JLE1BQU1DLFlBQUcsQ0FBQ0Msd0JBQXdCLENBQUNkLE9BQU9DLE9BQU9DO1FBRXZELE9BQU9DLEtBQUtTO0lBQ2Q7SUFFQUcsV0FBVztRQUNULE1BQU1DLFNBQVMsSUFBSSxDQUFDNUIsU0FBUyxHQUNiLEdBQUdILFdBQVdBLFVBQVUsR0FDdEIsR0FBR0EsVUFBVTtRQUUvQixPQUFPK0I7SUFDVDtJQUVBLE9BQU9DLGNBQWM3QixTQUFTLEVBQUU7UUFDOUIsTUFBTUcsVUFBVSxJQUFJUCxRQUFRSTtRQUU1QixPQUFPRztJQUNUO0FBQ0YifQ==
|
|
@@ -19,7 +19,7 @@ function _interop_require_default(obj) {
|
|
|
19
19
|
}
|
|
20
20
|
const { endOfLine } = _occamlexers.specialSymbols;
|
|
21
21
|
class EndOfLinePart extends _terminal.default {
|
|
22
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
22
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
23
23
|
const consuming = true;
|
|
24
24
|
return consuming;
|
|
25
25
|
}
|
|
@@ -47,4 +47,4 @@ class EndOfLinePart extends _terminal.default {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL2VuZE9mTGluZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvdGVybWluYWxcIjtcbmltcG9ydCBFbmRPZkxpbmVOb2RlIGZyb20gXCIuLi8uLi9ub2RlL3Rlcm1pbmFsL2VuZE9mTGluZVwiO1xuXG5jb25zdCB7IGVuZE9mTGluZSB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVuZE9mTGluZVBhcnQgZXh0ZW5kcyBUZXJtaW5hbFBhcnQge1xuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSwgY2hlY2tGb3JDdXRQYXJ0cyA9IGZhbHNlKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gdHJ1ZTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzdGF0ZUVtcHR5ID0gc3RhdGUuaXNFbXB0eSgpO1xuXG4gICAgaWYgKHN0YXRlRW1wdHkpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFNpZ25pZmljYW50VG9rZW4gPSBzdGF0ZS5nZXROZXh0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSBuZXh0U2lnbmlmaWNhbnRUb2tlbiwgLy8vXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbkVuZE9mTGluZVRva2VuID0gc2lnbmlmaWNhbnRUb2tlbi5pc0VuZE9mTGluZVRva2VuKCk7XG5cbiAgICBpZiAoIXNpZ25pZmljYW50VG9rZW5FbmRPZkxpbmVUb2tlbikge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbmRPZkxpbmVOb2RlID0gRW5kT2ZMaW5lTm9kZS5mcm9tU2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSBlbmRPZkxpbmVOb2RlLFxuICAgICAgICAgIHBhcnRGcmFtZSA9IEZyYW1lLmZyb21DaGlsZE5vZGUoY2hpbGROb2RlKTtcblxuICAgIHN0YXRlID0gc3RhdGUuYWR2YW5jZSgpO1xuXG4gICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUsIHBhcnRGcmFtZSk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gYCR7ZW5kT2ZMaW5lfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGVuZE9mTGluZVBhcnQgPSBuZXcgRW5kT2ZMaW5lUGFydCgpO1xuXG4gICAgcmV0dXJuIGVuZE9mTGluZVBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFbmRPZkxpbmVQYXJ0IiwiZW5kT2ZMaW5lIiwic3BlY2lhbFN5bWJvbHMiLCJUZXJtaW5hbFBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjaGVja0ZvckN1dFBhcnRzIiwiY29uc3VtaW5nIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzdGF0ZUVtcHR5IiwiaXNFbXB0eSIsIm5leHRTaWduaWZpY2FudFRva2VuIiwiZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuIiwic2lnbmlmaWNhbnRUb2tlbkVuZE9mTGluZVRva2VuIiwiaXNFbmRPZkxpbmVUb2tlbiIsImVuZE9mTGluZU5vZGUiLCJFbmRPZkxpbmVOb2RlIiwiZnJvbVNpZ25pZmljYW50VG9rZW4iLCJjaGlsZE5vZGUiLCJwYXJ0RnJhbWUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJhZHZhbmNlIiwiY29tcG9zZSIsImFzU3RyaW5nIiwic3RyaW5nIiwiZnJvbU5vdGhpbmciLCJlbmRPZkxpbmVQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXFCQTs7OzZCQVJVOzhEQUViO2lFQUNPO2tFQUNDOzs7Ozs7QUFFMUIsTUFBTSxFQUFFQyxTQUFTLEVBQUUsR0FBR0MsMkJBQWM7QUFFckIsTUFBTUYsc0JBQXNCRyxpQkFBWTtJQUNyREMsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUNoRSxNQUFNQyxZQUFZO1FBRWxCLE9BQU9BO0lBQ1Q7SUFFQUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFILE1BQU1JLE9BQU87UUFFaEMsSUFBSUQsWUFBWTtZQUNkLE9BQU9EO1FBQ1Q7UUFFQSxNQUFNRyx1QkFBdUJMLE1BQU1NLHVCQUF1QixJQUNwREMsbUJBQW1CRixzQkFDbkJHLGlDQUFpQ0QsaUJBQWlCRSxnQkFBZ0I7UUFFeEUsSUFBSSxDQUFDRCxnQ0FBZ0M7WUFDbkMsT0FBT047UUFDVDtRQUVBLE1BQU1RLGdCQUFnQkMsa0JBQWEsQ0FBQ0Msb0JBQW9CLENBQUNMLG1CQUNuRE0sWUFBWUgsZUFDWkksWUFBWUMsY0FBSyxDQUFDQyxhQUFhLENBQUNIO1FBRXRDYixRQUFRQSxNQUFNaUIsT0FBTztRQUVyQmxCLFFBQVEsSUFBSSxDQUFDbUIsT0FBTyxDQUFDbkIsT0FBT2U7UUFFNUIsT0FBT2IsUUFBUUYsT0FBT0MsT0FBT0U7SUFDL0I7SUFFQWlCLFdBQVc7UUFDVCxNQUFNQyxTQUFTLEdBQUc5QixXQUFXO1FBRTdCLE9BQU84QjtJQUNUO0lBRUEsT0FBT0MsY0FBYztRQUNuQixNQUFNQyxnQkFBZ0IsSUFBSWpDO1FBRTFCLE9BQU9pQztJQUNUO0FBQ0YifQ==
|
|
@@ -23,7 +23,7 @@ class EpsilonPart extends _terminal.default {
|
|
|
23
23
|
const epsilonPart = true;
|
|
24
24
|
return epsilonPart;
|
|
25
25
|
}
|
|
26
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
26
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
27
27
|
const consuming = false;
|
|
28
28
|
return consuming;
|
|
29
29
|
}
|
|
@@ -42,4 +42,4 @@ class EpsilonPart extends _terminal.default {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL2Vwc2lsb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4uLy4uL2ZyYW1lXCI7XG5pbXBvcnQgRXBzaWxvbk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvdGVybWluYWwvZXBzaWxvblwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IGVwc2lsb24gfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFcHNpbG9uUGFydCBleHRlbmRzIFRlcm1pbmFsUGFydCB7XG4gIGlzRXBzaWxvblBhcnQoKSB7XG4gICAgY29uc3QgZXBzaWxvblBhcnQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGVwc2lsb25QYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10sIGNoZWNrRm9yQ3V0UGFydHMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGNvbnN1bWluZyA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGVwc2lsb25Ob2RlID0gRXBzaWxvbk5vZGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSBlcHNpbG9uTm9kZSxcbiAgICAgICAgICBwYXJ0RnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7XG5cbiAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShmcmFtZSwgcGFydEZyYW1lKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBgJHtlcHNpbG9ufWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGVwc2lsb25QYXJ0ID0gbmV3IEVwc2lsb25QYXJ0KCk7XG5cbiAgICByZXR1cm4gZXBzaWxvblBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFcHNpbG9uUGFydCIsImVwc2lsb24iLCJzcGVjaWFsU3ltYm9scyIsIlRlcm1pbmFsUGFydCIsImlzRXBzaWxvblBhcnQiLCJlcHNpbG9uUGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImVwc2lsb25Ob2RlIiwiRXBzaWxvbk5vZGUiLCJmcm9tTm90aGluZyIsImNoaWxkTm9kZSIsInBhcnRGcmFtZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsImNvbXBvc2UiLCJhc1N0cmluZyIsInN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7Ozs2QkFSVTs4REFFYjtnRUFDTTtpRUFDQzs7Ozs7O0FBRXpCLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEdBQUdDLDJCQUFjO0FBRW5CLE1BQU1GLG9CQUFvQkcsaUJBQVk7SUFDbkRDLGdCQUFnQjtRQUNkLE1BQU1DLGNBQWM7UUFFcEIsT0FBT0E7SUFDVDtJQUVBQyxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFQyxtQkFBbUIsS0FBSyxFQUFFO1FBQ2hFLE1BQU1DLFlBQVk7UUFFbEIsT0FBT0E7SUFDVDtJQUVBQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsY0FBY0MsZ0JBQVcsQ0FBQ0MsV0FBVyxJQUNyQ0MsWUFBWUgsYUFDWkksWUFBWUMsY0FBSyxDQUFDQyxhQUFhLENBQUNIO1FBRXRDUCxRQUFRLElBQUksQ0FBQ1csT0FBTyxDQUFDWCxPQUFPUTtRQUU1QixPQUFPTixRQUFRRixPQUFPQyxPQUFPRTtJQUMvQjtJQUVBUyxXQUFXO1FBQ1QsTUFBTUMsU0FBUyxHQUFHeEIsU0FBUztRQUUzQixPQUFPd0I7SUFDVDtJQUVBLE9BQU9QLGNBQWM7UUFDbkIsTUFBTWIsY0FBYyxJQUFJTDtRQUV4QixPQUFPSztJQUNUO0FBQ0YifQ==
|
|
@@ -23,7 +23,7 @@ class NoWhitespacePart extends _terminal.default {
|
|
|
23
23
|
const noWhitespacePart = true;
|
|
24
24
|
return noWhitespacePart;
|
|
25
25
|
}
|
|
26
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
26
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
27
27
|
const consuming = false;
|
|
28
28
|
return consuming;
|
|
29
29
|
}
|
|
@@ -50,4 +50,4 @@ class NoWhitespacePart extends _terminal.default {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL25vV2hpdGVzcGFjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvdGVybWluYWxcIjtcbmltcG9ydCBOb1doaXRlc3BhY2VOb2RlIGZyb20gXCIuLi8uLi9ub2RlL3Rlcm1pbmFsL25vV2hpdGVzcGFjZVwiO1xuXG5jb25zdCB7IG5vV2hpdGVzcGFjZSB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vV2hpdGVzcGFjZVBhcnQgZXh0ZW5kcyBUZXJtaW5hbFBhcnQge1xuICBpc05vV2hpdGVzcGFjZVBhcnQoKSB7XG4gICAgY29uc3Qgbm9XaGl0ZXNwYWNlUGFydCA9IHRydWU7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlUGFydDtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdLCBjaGVja0ZvckN1dFBhcnRzID0gZmFsc2UpIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzdGF0ZUVtcHR5ID0gc3RhdGUuaXNFbXB0eSgpO1xuXG4gICAgaWYgKHN0YXRlRW1wdHkpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFRva2VuV2hpdGVzcGFjZVRva2VuID0gc3RhdGUuaXNOZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4oKTtcblxuICAgIGlmIChuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4pIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9XaGl0ZXNwYWNlTm9kZSA9IE5vV2hpdGVzcGFjZU5vZGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSBub1doaXRlc3BhY2VOb2RlLCAvLy9cbiAgICAgICAgICBwYXJ0RnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7XG5cbiAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShmcmFtZSwgcGFydEZyYW1lKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBgJHtub1doaXRlc3BhY2V9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3Qgbm9XaGl0ZXNwYWNlUGFydCA9IG5ldyBOb1doaXRlc3BhY2VQYXJ0KCk7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIk5vV2hpdGVzcGFjZVBhcnQiLCJub1doaXRlc3BhY2UiLCJzcGVjaWFsU3ltYm9scyIsIlRlcm1pbmFsUGFydCIsImlzTm9XaGl0ZXNwYWNlUGFydCIsIm5vV2hpdGVzcGFjZVBhcnQiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjaGVja0ZvckN1dFBhcnRzIiwiY29uc3VtaW5nIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzdGF0ZUVtcHR5IiwiaXNFbXB0eSIsIm5leHRUb2tlbldoaXRlc3BhY2VUb2tlbiIsImlzTmV4dFRva2VuV2hpdGVzcGFjZVRva2VuIiwibm9XaGl0ZXNwYWNlTm9kZSIsIk5vV2hpdGVzcGFjZU5vZGUiLCJmcm9tTm90aGluZyIsImNoaWxkTm9kZSIsInBhcnRGcmFtZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsImNvbXBvc2UiLCJhc1N0cmluZyIsInN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7Ozs2QkFSVTs4REFFYjtpRUFDTztxRUFDSTs7Ozs7O0FBRTdCLE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUdDLDJCQUFjO0FBRXhCLE1BQU1GLHlCQUF5QkcsaUJBQVk7SUFDeERDLHFCQUFxQjtRQUNuQixNQUFNQyxtQkFBbUI7UUFFekIsT0FBT0E7SUFDVDtJQUVBQyxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFQyxtQkFBbUIsS0FBSyxFQUFFO1FBQ2hFLE1BQU1DLFlBQVk7UUFFbEIsT0FBT0E7SUFDVDtJQUVBQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUgsTUFBTUksT0FBTztRQUVoQyxJQUFJRCxZQUFZO1lBQ2QsT0FBT0Q7UUFDVDtRQUVBLE1BQU1HLDJCQUEyQkwsTUFBTU0sMEJBQTBCO1FBRWpFLElBQUlELDBCQUEwQjtZQUM1QixPQUFPSDtRQUNUO1FBRUEsTUFBTUssbUJBQW1CQyxxQkFBZ0IsQ0FBQ0MsV0FBVyxJQUMvQ0MsWUFBWUgsa0JBQ1pJLFlBQVlDLGNBQUssQ0FBQ0MsYUFBYSxDQUFDSDtRQUV0Q1gsUUFBUSxJQUFJLENBQUNlLE9BQU8sQ0FBQ2YsT0FBT1k7UUFFNUIsT0FBT1YsUUFBUUYsT0FBT0MsT0FBT0U7SUFDL0I7SUFFQWEsV0FBVztRQUNULE1BQU1DLFNBQVMsR0FBRzVCLGNBQWM7UUFFaEMsT0FBTzRCO0lBQ1Q7SUFFQSxPQUFPUCxjQUFjO1FBQ25CLE1BQU1qQixtQkFBbUIsSUFBSUw7UUFFN0IsT0FBT0s7SUFDVDtBQUNGIn0=
|
|
@@ -26,7 +26,7 @@ class RegularExpressionPart extends _terminal.default {
|
|
|
26
26
|
getRegularExpression() {
|
|
27
27
|
return this.regularExpression;
|
|
28
28
|
}
|
|
29
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
29
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
30
30
|
const consuming = true;
|
|
31
31
|
return consuming;
|
|
32
32
|
}
|
|
@@ -58,4 +58,4 @@ class RegularExpressionPart extends _terminal.default {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3JlZ3VsYXJFeHByZXNzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuaW1wb3J0IFRlcm1pbmFsTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVndWxhckV4cHJlc3Npb25QYXJ0IGV4dGVuZHMgVGVybWluYWxQYXJ0IHtcbiAgY29uc3RydWN0b3IocmVndWxhckV4cHJlc3Npb24pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5yZWd1bGFyRXhwcmVzc2lvbiA9IHJlZ3VsYXJFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0UmVndWxhckV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucmVndWxhckV4cHJlc3Npb247XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSwgY2hlY2tGb3JDdXRQYXJ0cyA9IGZhbHNlKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gdHJ1ZTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzdGF0ZUVtcHR5ID0gc3RhdGUuaXNFbXB0eSgpO1xuXG4gICAgaWYgKHN0YXRlRW1wdHkpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFNpZ25pZmljYW50VG9rZW4gPSBzdGF0ZS5nZXROZXh0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSBuZXh0U2lnbmlmaWNhbnRUb2tlbiwgLy8vXG4gICAgICAgICAgY29udGVudCA9IHNpZ25pZmljYW50VG9rZW4uZ2V0Q29udGVudCgpLFxuICAgICAgICAgIG1hdGNoZXMgPSBjb250ZW50Lm1hdGNoKHRoaXMucmVndWxhckV4cHJlc3Npb24pO1xuXG4gICAgaWYgKG1hdGNoZXMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RNYXRjaCA9IGZpcnN0KG1hdGNoZXMpO1xuXG4gICAgaWYgKGZpcnN0TWF0Y2ggIT09IGNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gVGVybWluYWxOb2RlLmZyb21TaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pLFxuICAgICAgICAgIGNoaWxkTm9kZSA9IHRlcm1pbmFsTm9kZSxcbiAgICAgICAgICBwYXJ0RnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7XG5cbiAgICBzdGF0ZSA9IHN0YXRlLmFkdmFuY2UoKTtcblxuICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKGZyYW1lLCBwYXJ0RnJhbWUpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHJlZ3VsYXJFeHByZXNzaW9uU3RyaW5nID0gdGhpcy5yZWd1bGFyRXhwcmVzc2lvbi50b1N0cmluZygpLFxuXHRcdCAgICAgIHN0cmluZyA9IHJlZ3VsYXJFeHByZXNzaW9uU3RyaW5nOyAvLy9cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJlZ3VsYXJFeHByZXNzaW9uKHJlZ3VsYXJFeHByZXNzaW9uKSB7XG4gICAgY29uc3QgcmVndWxhckV4cHJlc3Npb25QYXJ0ID0gbmV3IFJlZ3VsYXJFeHByZXNzaW9uUGFydChyZWd1bGFyRXhwcmVzc2lvbik7XG5cbiAgICByZXR1cm4gcmVndWxhckV4cHJlc3Npb25QYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiUmVndWxhckV4cHJlc3Npb25QYXJ0IiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsIlRlcm1pbmFsUGFydCIsInJlZ3VsYXJFeHByZXNzaW9uIiwiZ2V0UmVndWxhckV4cHJlc3Npb24iLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjaGVja0ZvckN1dFBhcnRzIiwiY29uc3VtaW5nIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzdGF0ZUVtcHR5IiwiaXNFbXB0eSIsIm5leHRTaWduaWZpY2FudFRva2VuIiwiZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuIiwiY29udGVudCIsImdldENvbnRlbnQiLCJtYXRjaGVzIiwibWF0Y2giLCJmaXJzdE1hdGNoIiwidGVybWluYWxOb2RlIiwiVGVybWluYWxOb2RlIiwiZnJvbVNpZ25pZmljYW50VG9rZW4iLCJjaGlsZE5vZGUiLCJwYXJ0RnJhbWUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJhZHZhbmNlIiwiY29tcG9zZSIsImFzU3RyaW5nIiwicmVndWxhckV4cHJlc3Npb25TdHJpbmciLCJ0b1N0cmluZyIsInN0cmluZyIsImZyb21SZWd1bGFyRXhwcmVzc2lvbiIsInJlZ3VsYXJFeHByZXNzaW9uUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7OzsyQkFSVTs4REFFYjtpRUFDTztrRUFDQTs7Ozs7O0FBRXpCLE1BQU0sRUFBRUMsS0FBSyxFQUFFLEdBQUdDLHlCQUFjO0FBRWpCLE1BQU1GLDhCQUE4QkcsaUJBQVk7SUFDN0QsWUFBWUMsaUJBQWlCLENBQUU7UUFDN0IsS0FBSztRQUVMLElBQUksQ0FBQ0EsaUJBQWlCLEdBQUdBO0lBQzNCO0lBRUFDLHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQ0QsaUJBQWlCO0lBQy9CO0lBRUFFLFlBQVlDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEVBQUVDLG1CQUFtQixLQUFLLEVBQUU7UUFDaEUsTUFBTUMsWUFBWTtRQUVsQixPQUFPQTtJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxhQUFhSCxNQUFNSSxPQUFPO1FBRWhDLElBQUlELFlBQVk7WUFDZCxPQUFPRDtRQUNUO1FBRUEsTUFBTUcsdUJBQXVCTCxNQUFNTSx1QkFBdUIsSUFDcERDLG1CQUFtQkYsc0JBQ25CRyxVQUFVRCxpQkFBaUJFLFVBQVUsSUFDckNDLFVBQVVGLFFBQVFHLEtBQUssQ0FBQyxJQUFJLENBQUNwQixpQkFBaUI7UUFFcEQsSUFBSW1CLFlBQVksTUFBTTtZQUNwQixPQUFPUjtRQUNUO1FBRUEsTUFBTVUsYUFBYXhCLE1BQU1zQjtRQUV6QixJQUFJRSxlQUFlSixTQUFTO1lBQzFCLE9BQU9OO1FBQ1Q7UUFFQSxNQUFNVyxlQUFlQyxrQkFBWSxDQUFDQyxvQkFBb0IsQ0FBQ1IsbUJBQ2pEUyxZQUFZSCxjQUNaSSxZQUFZQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ0g7UUFFdENoQixRQUFRQSxNQUFNb0IsT0FBTztRQUVyQnJCLFFBQVEsSUFBSSxDQUFDc0IsT0FBTyxDQUFDdEIsT0FBT2tCO1FBRTVCLE9BQU9oQixRQUFRRixPQUFPQyxPQUFPRTtJQUMvQjtJQUVBb0IsV0FBVztRQUNULE1BQU1DLDBCQUEwQixJQUFJLENBQUNoQyxpQkFBaUIsQ0FBQ2lDLFFBQVEsSUFDM0RDLFNBQVNGLHlCQUF5QixHQUFHO1FBRXpDLE9BQU9FO0lBQ1Q7SUFFQSxPQUFPQyxzQkFBc0JuQyxpQkFBaUIsRUFBRTtRQUM5QyxNQUFNb0Msd0JBQXdCLElBQUl4QyxzQkFBc0JJO1FBRXhELE9BQU9vQztJQUNUO0FBQ0YifQ==
|
|
@@ -24,7 +24,7 @@ class SignificantTokenTypePart extends _terminal.default {
|
|
|
24
24
|
getSignificantTokenType() {
|
|
25
25
|
return this.significantTokenType;
|
|
26
26
|
}
|
|
27
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
27
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
28
28
|
const consuming = true;
|
|
29
29
|
return consuming;
|
|
30
30
|
}
|
|
@@ -52,4 +52,4 @@ class SignificantTokenTypePart extends _terminal.default {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3NpZ25pZmljYW50VG9rZW5UeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4uLy4uL2ZyYW1lXCI7XG5pbXBvcnQgVGVybWluYWxQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L3Rlcm1pbmFsXCI7XG5pbXBvcnQgVGVybWluYWxOb2RlIGZyb20gXCIuLi8uLi9ub2RlL3Rlcm1pbmFsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNpZ25pZmljYW50VG9rZW5UeXBlUGFydCBleHRlbmRzIFRlcm1pbmFsUGFydCB7XG4gIGNvbnN0cnVjdG9yKHNpZ25pZmljYW50VG9rZW5UeXBlKSB7XG4gICAgc3VwZXIoKTtcbiAgICBcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW5UeXBlID0gc2lnbmlmaWNhbnRUb2tlblR5cGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaWduaWZpY2FudFRva2VuVHlwZTtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdLCBjaGVja0ZvckN1dFBhcnRzID0gZmFsc2UpIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGNvbnN1bWluZztcbiAgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHN0YXRlRW1wdHkgPSBzdGF0ZS5pc0VtcHR5KCk7XG5cbiAgICBpZiAoc3RhdGVFbXB0eSkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0U2lnbmlmaWNhbnRUb2tlbiA9IHN0YXRlLmdldE5leHRTaWduaWZpY2FudFRva2VuKCksXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IG5leHRTaWduaWZpY2FudFRva2VuLCAvLy9cbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuVHlwZSA9IHNpZ25pZmljYW50VG9rZW4uZ2V0VHlwZSgpO1xuXG4gICAgaWYgKHNpZ25pZmljYW50VG9rZW5UeXBlICE9PSB0aGlzLnNpZ25pZmljYW50VG9rZW5UeXBlKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IFRlcm1pbmFsTm9kZS5mcm9tU2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSB0ZXJtaW5hbE5vZGUsXG4gICAgICAgICAgcGFydEZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpO1xuXG4gICAgc3RhdGUgPSBzdGF0ZS5hZHZhbmNlKCk7XG5cbiAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShmcmFtZSwgcGFydEZyYW1lKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBgWyR7dGhpcy5zaWduaWZpY2FudFRva2VuVHlwZX1dYDtcbiAgICBcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21TaWduaWZpY2FudFRva2VuVHlwZShzaWduaWZpY2FudFRva2VuVHlwZSkge1xuICAgIGNvbnN0IHNpZ25pZmljYW50VG9rZW5UeXBlUGFydCA9IG5ldyBTaWduaWZpY2FudFRva2VuVHlwZVBhcnQoc2lnbmlmaWNhbnRUb2tlblR5cGUpO1xuXG4gICAgcmV0dXJuIHNpZ25pZmljYW50VG9rZW5UeXBlUGFydDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNpZ25pZmljYW50VG9rZW5UeXBlUGFydCIsIlRlcm1pbmFsUGFydCIsInNpZ25pZmljYW50VG9rZW5UeXBlIiwiZ2V0U2lnbmlmaWNhbnRUb2tlblR5cGUiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjaGVja0ZvckN1dFBhcnRzIiwiY29uc3VtaW5nIiwicGFyc2UiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzdGF0ZUVtcHR5IiwiaXNFbXB0eSIsIm5leHRTaWduaWZpY2FudFRva2VuIiwiZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuIiwiZ2V0VHlwZSIsInRlcm1pbmFsTm9kZSIsIlRlcm1pbmFsTm9kZSIsImZyb21TaWduaWZpY2FudFRva2VuIiwiY2hpbGROb2RlIiwicGFydEZyYW1lIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2RlIiwiYWR2YW5jZSIsImNvbXBvc2UiLCJhc1N0cmluZyIsInN0cmluZyIsImZyb21TaWduaWZpY2FudFRva2VuVHlwZSIsInNpZ25pZmljYW50VG9rZW5UeXBlUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFxQkE7Ozs4REFKSDtpRUFDTztrRUFDQTs7Ozs7O0FBRVYsTUFBTUEsaUNBQWlDQyxpQkFBWTtJQUNoRSxZQUFZQyxvQkFBb0IsQ0FBRTtRQUNoQyxLQUFLO1FBRUwsSUFBSSxDQUFDQSxvQkFBb0IsR0FBR0E7SUFDOUI7SUFFQUMsMEJBQTBCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDRCxvQkFBb0I7SUFDbEM7SUFFQUUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUNoRSxNQUFNQyxZQUFZO1FBRWxCLE9BQU9BO0lBQ1Q7SUFFQUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLGFBQWFILE1BQU1JLE9BQU87UUFFaEMsSUFBSUQsWUFBWTtZQUNkLE9BQU9EO1FBQ1Q7UUFFQSxNQUFNRyx1QkFBdUJMLE1BQU1NLHVCQUF1QixJQUNwREMsbUJBQW1CRixzQkFDbkJkLHVCQUF1QmdCLGlCQUFpQkMsT0FBTztRQUVyRCxJQUFJakIseUJBQXlCLElBQUksQ0FBQ0Esb0JBQW9CLEVBQUU7WUFDdEQsT0FBT1c7UUFDVDtRQUVBLE1BQU1PLGVBQWVDLGtCQUFZLENBQUNDLG9CQUFvQixDQUFDSixtQkFDakRLLFlBQVlILGNBQ1pJLFlBQVlDLGNBQUssQ0FBQ0MsYUFBYSxDQUFDSDtRQUV0Q1osUUFBUUEsTUFBTWdCLE9BQU87UUFFckJqQixRQUFRLElBQUksQ0FBQ2tCLE9BQU8sQ0FBQ2xCLE9BQU9jO1FBRTVCLE9BQU9aLFFBQVFGLE9BQU9DLE9BQU9FO0lBQy9CO0lBRUFnQixXQUFXO1FBQ1QsTUFBTUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM1QixvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFFL0MsT0FBTzRCO0lBQ1Q7SUFFQSxPQUFPQyx5QkFBeUI3QixvQkFBb0IsRUFBRTtRQUNwRCxNQUFNOEIsMkJBQTJCLElBQUloQyx5QkFBeUJFO1FBRTlELE9BQU84QjtJQUNUO0FBQ0YifQ==
|
|
@@ -24,7 +24,7 @@ class StringLiteralPart extends _terminal.default {
|
|
|
24
24
|
getContent() {
|
|
25
25
|
return this.content;
|
|
26
26
|
}
|
|
27
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
27
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
28
28
|
const consuming = true;
|
|
29
29
|
return consuming;
|
|
30
30
|
}
|
|
@@ -52,4 +52,4 @@ class StringLiteralPart extends _terminal.default {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3N0cmluZ0xpdGVyYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vLi4vZnJhbWVcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvdGVybWluYWxcIjtcbmltcG9ydCBUZXJtaW5hbE5vZGUgZnJvbSBcIi4uLy4uL25vZGUvdGVybWluYWxcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RyaW5nTGl0ZXJhbFBhcnQgZXh0ZW5kcyBUZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICBcbiAgICB0aGlzLmNvbnRlbnQgPSBjb250ZW50O1xuICB9XG5cbiAgZ2V0Q29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10sIGNoZWNrRm9yQ3V0UGFydHMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGNvbnN1bWluZyA9IHRydWU7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc3RhdGVFbXB0eSA9IHN0YXRlLmlzRW1wdHkoKTtcblxuICAgIGlmIChzdGF0ZUVtcHR5KSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRTaWduaWZpY2FudFRva2VuID0gc3RhdGUuZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4oKSxcbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gbmV4dFNpZ25pZmljYW50VG9rZW4sIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSBzaWduaWZpY2FudFRva2VuLmdldENvbnRlbnQoKTtcblxuICAgIGlmIChjb250ZW50ICE9PSB0aGlzLmNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gVGVybWluYWxOb2RlLmZyb21TaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pLFxuICAgICAgICAgIGNoaWxkTm9kZSA9IHRlcm1pbmFsTm9kZSxcbiAgICAgICAgICBwYXJ0RnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7XG5cbiAgICBzdGF0ZSA9IHN0YXRlLmFkdmFuY2UoKTtcblxuICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKGZyYW1lLCBwYXJ0RnJhbWUpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnQucmVwbGFjZSgvXFxcXC9nLCBcIlxcXFxcXFxcXCIpLFxuICAgICAgICAgIHN0cmluZyA9IGBcIiR7Y29udGVudH1cImA7XG4gICAgXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29udGVudChjb250ZW50KSB7XG4gICAgY29uc3Qgc3RyaW5nTGl0ZXJhbFBhcnQgPSBuZXcgU3RyaW5nTGl0ZXJhbFBhcnQoY29udGVudCk7XG5cbiAgICByZXR1cm4gc3RyaW5nTGl0ZXJhbFBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTdHJpbmdMaXRlcmFsUGFydCIsIlRlcm1pbmFsUGFydCIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY2hlY2tGb3JDdXRQYXJ0cyIsImNvbnN1bWluZyIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwic3RhdGVFbXB0eSIsImlzRW1wdHkiLCJuZXh0U2lnbmlmaWNhbnRUb2tlbiIsImdldE5leHRTaWduaWZpY2FudFRva2VuIiwic2lnbmlmaWNhbnRUb2tlbiIsInRlcm1pbmFsTm9kZSIsIlRlcm1pbmFsTm9kZSIsImZyb21TaWduaWZpY2FudFRva2VuIiwiY2hpbGROb2RlIiwicGFydEZyYW1lIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2RlIiwiYWR2YW5jZSIsImNvbXBvc2UiLCJhc1N0cmluZyIsInJlcGxhY2UiLCJzdHJpbmciLCJmcm9tQ29udGVudCIsInN0cmluZ0xpdGVyYWxQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7OzhEQUpIO2lFQUNPO2tFQUNBOzs7Ozs7QUFFVixNQUFNQSwwQkFBMEJDLGlCQUFZO0lBQ3pELFlBQVlDLE9BQU8sQ0FBRTtRQUNuQixLQUFLO1FBRUwsSUFBSSxDQUFDQSxPQUFPLEdBQUdBO0lBQ2pCO0lBRUFDLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQ0QsT0FBTztJQUNyQjtJQUVBRSxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFQyxtQkFBbUIsS0FBSyxFQUFFO1FBQ2hFLE1BQU1DLFlBQVk7UUFFbEIsT0FBT0E7SUFDVDtJQUVBQyxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsYUFBYUgsTUFBTUksT0FBTztRQUVoQyxJQUFJRCxZQUFZO1lBQ2QsT0FBT0Q7UUFDVDtRQUVBLE1BQU1HLHVCQUF1QkwsTUFBTU0sdUJBQXVCLElBQ3BEQyxtQkFBbUJGLHNCQUNuQmQsVUFBVWdCLGlCQUFpQmYsVUFBVTtRQUUzQyxJQUFJRCxZQUFZLElBQUksQ0FBQ0EsT0FBTyxFQUFFO1lBQzVCLE9BQU9XO1FBQ1Q7UUFFQSxNQUFNTSxlQUFlQyxrQkFBWSxDQUFDQyxvQkFBb0IsQ0FBQ0gsbUJBQ2pESSxZQUFZSCxjQUNaSSxZQUFZQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ0g7UUFFdENYLFFBQVFBLE1BQU1lLE9BQU87UUFFckJoQixRQUFRLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ2pCLE9BQU9hO1FBRTVCLE9BQU9YLFFBQVFGLE9BQU9DLE9BQU9FO0lBQy9CO0lBRUFlLFdBQVc7UUFDVCxNQUFNMUIsVUFBVSxJQUFJLENBQUNBLE9BQU8sQ0FBQzJCLE9BQU8sQ0FBQyxPQUFPLFNBQ3RDQyxTQUFTLENBQUMsQ0FBQyxFQUFFNUIsUUFBUSxDQUFDLENBQUM7UUFFN0IsT0FBTzRCO0lBQ1Q7SUFFQSxPQUFPQyxZQUFZN0IsT0FBTyxFQUFFO1FBQzFCLE1BQU04QixvQkFBb0IsSUFBSWhDLGtCQUFrQkU7UUFFaEQsT0FBTzhCO0lBQ1Q7QUFDRiJ9
|
|
@@ -19,7 +19,7 @@ function _interop_require_default(obj) {
|
|
|
19
19
|
}
|
|
20
20
|
const { wildcard } = _occamlexers.specialSymbols;
|
|
21
21
|
class WildcardPart extends _terminal.default {
|
|
22
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
22
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
23
23
|
const consuming = true;
|
|
24
24
|
return consuming;
|
|
25
25
|
}
|
|
@@ -43,4 +43,4 @@ class WildcardPart extends _terminal.default {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsL3dpbGRjYXJkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IFRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC90ZXJtaW5hbFwiO1xuaW1wb3J0IFRlcm1pbmFsTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS90ZXJtaW5hbFwiO1xuXG5jb25zdCB7IHdpbGRjYXJkIH0gPSBzcGVjaWFsU3ltYm9scztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2lsZGNhcmRQYXJ0IGV4dGVuZHMgVGVybWluYWxQYXJ0IHtcbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10sIGNoZWNrRm9yQ3V0UGFydHMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGNvbnN1bWluZyA9IHRydWU7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc3RhdGVFbXB0eSA9IHN0YXRlLmlzRW1wdHkoKTtcblxuICAgIGlmIChzdGF0ZUVtcHR5KSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRTaWduaWZpY2FudFRva2VuID0gc3RhdGUuZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4oKSxcbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gbmV4dFNpZ25pZmljYW50VG9rZW4sIC8vL1xuICAgICAgICAgIHRlcm1pbmFsTm9kZSA9IFRlcm1pbmFsTm9kZS5mcm9tU2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSB0ZXJtaW5hbE5vZGUsXG4gICAgICAgICAgcGFydEZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpO1xuXG4gICAgc3RhdGUgPSBzdGF0ZS5hZHZhbmNlKCk7XG5cbiAgICBmcmFtZSA9IHRoaXMuY29tcG9zZShmcmFtZSwgcGFydEZyYW1lKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBgJHt3aWxkY2FyZH1gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCB3aWxkY2FyZFBhcnQgPSBuZXcgV2lsZGNhcmRQYXJ0KCk7XG5cbiAgICByZXR1cm4gd2lsZGNhcmRQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiV2lsZGNhcmRQYXJ0Iiwid2lsZGNhcmQiLCJzcGVjaWFsU3ltYm9scyIsIlRlcm1pbmFsUGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJjb25zdW1pbmciLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInN0YXRlRW1wdHkiLCJpc0VtcHR5IiwibmV4dFNpZ25pZmljYW50VG9rZW4iLCJnZXROZXh0U2lnbmlmaWNhbnRUb2tlbiIsInNpZ25pZmljYW50VG9rZW4iLCJ0ZXJtaW5hbE5vZGUiLCJUZXJtaW5hbE5vZGUiLCJmcm9tU2lnbmlmaWNhbnRUb2tlbiIsImNoaWxkTm9kZSIsInBhcnRGcmFtZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsImFkdmFuY2UiLCJjb21wb3NlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJmcm9tTm90aGluZyIsIndpbGRjYXJkUGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7Ozs2QkFSVTs4REFFYjtpRUFDTztrRUFDQTs7Ozs7O0FBRXpCLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLDJCQUFjO0FBRXBCLE1BQU1GLHFCQUFxQkcsaUJBQVk7SUFDcERDLFlBQVlDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEVBQUVDLG1CQUFtQixLQUFLLEVBQUU7UUFDaEUsTUFBTUMsWUFBWTtRQUVsQixPQUFPQTtJQUNUO0lBRUFDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxNQUFNQyxhQUFhSCxNQUFNSSxPQUFPO1FBRWhDLElBQUlELFlBQVk7WUFDZCxPQUFPRDtRQUNUO1FBRUEsTUFBTUcsdUJBQXVCTCxNQUFNTSx1QkFBdUIsSUFDcERDLG1CQUFtQkYsc0JBQ25CRyxlQUFlQyxrQkFBWSxDQUFDQyxvQkFBb0IsQ0FBQ0gsbUJBQ2pESSxZQUFZSCxjQUNaSSxZQUFZQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ0g7UUFFdENYLFFBQVFBLE1BQU1lLE9BQU87UUFFckJoQixRQUFRLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ2pCLE9BQU9hO1FBRTVCLE9BQU9YLFFBQVFGLE9BQU9DLE9BQU9FO0lBQy9CO0lBRUFlLFdBQVc7UUFDVCxNQUFNQyxTQUFTLEdBQUc1QixVQUFVO1FBRTVCLE9BQU80QjtJQUNUO0lBRUEsT0FBT0MsY0FBYztRQUNuQixNQUFNQyxlQUFlLElBQUkvQjtRQUV6QixPQUFPK0I7SUFDVDtBQUNGIn0=
|
package/lib/rule.js
CHANGED
|
@@ -50,27 +50,35 @@ class Rule {
|
|
|
50
50
|
const semiOpaque = this.opacity === null;
|
|
51
51
|
return semiOpaque;
|
|
52
52
|
}
|
|
53
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
53
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
54
54
|
let consuming = false;
|
|
55
55
|
const rule = this, visitedRulesIncludesRule = visitedRules.includes(rule);
|
|
56
56
|
if (!visitedRulesIncludesRule) {
|
|
57
57
|
const visitedRule = rule, definitionsConsuming = this.areDefinitionsConsuming(ruleMap, [
|
|
58
58
|
...visitedRules,
|
|
59
59
|
visitedRule
|
|
60
|
-
]);
|
|
60
|
+
], checkForCutParts);
|
|
61
61
|
if (definitionsConsuming) {
|
|
62
62
|
consuming = true;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
return consuming;
|
|
66
66
|
}
|
|
67
|
-
areDefinitionsConsuming(ruleMap, visitedRules) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
areDefinitionsConsuming(ruleMap, visitedRules, checkForCutParts) {
|
|
68
|
+
let definitionsConsuming;
|
|
69
|
+
if (checkForCutParts) {
|
|
70
|
+
definitionsConsuming = true;
|
|
71
|
+
this.definitions.forEach((definition)=>{
|
|
72
|
+
definitionsConsuming = definition.isConsuming(ruleMap, visitedRules, checkForCutParts) && definitionsConsuming;
|
|
73
|
+
});
|
|
74
|
+
} else {
|
|
75
|
+
definitionsConsuming = this.definitions.every((definition)=>{
|
|
76
|
+
const definitionConsuming = definition.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
77
|
+
if (definitionConsuming) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
74
82
|
return definitionsConsuming;
|
|
75
83
|
}
|
|
76
84
|
NonTerminalNodeFromRuleName(ruleName, state) {
|
|
@@ -126,4 +134,4 @@ ${marginString} | ${definitionString}` : `${definitionsString} | ${definitionS
|
|
|
126
134
|
return definitionsString;
|
|
127
135
|
}
|
|
128
136
|
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzb21lIGFzIGxpbmVhclNvbWUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBzb21lIGFzIGJyYW5jaGluZ1NvbWUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGggfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNvbnN0IHsgb3BhcXVlOiBvcGFxdWVTcGVjaWFsU3ltYm9sLCBzZW1pT3BhcXVlOiBzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGUge1xuICBjb25zdHJ1Y3RvcihuYW1lLCBvcGFjaXR5LCBkZWZpbml0aW9ucykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRPcGFjaXR5KCkge1xuICAgIHJldHVybiB0aGlzLm9wYWNpdHk7XG4gIH1cblxuICBnZXREZWZpbml0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9ucztcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRPcGFjaXR5KG9wYWNpdHkpIHtcbiAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xuICB9XG5cbiAgc2V0RGVmaW5pdGlvbnMoZGVmaW5pdGlvbnMpIHtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gIH1cblxuICBpc09wYXF1ZSgpIHtcbiAgICBjb25zdCBvcGFxdWUgPSAodGhpcy5vcGFjaXR5ID09PSBvcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBvcGFxdWU7XG4gIH1cblxuICBpc1NlbWlPcGFxdWUoKSB7XG4gICAgY29uc3Qgc2VtaU9wYXF1ZSA9ICh0aGlzLm9wYWNpdHkgPT09IHNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBzZW1pT3BhcXVlO1xuICB9XG5cbiAgaXNUcmFuc3BhcmVudCgpIHtcbiAgICBjb25zdCBzZW1pT3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gbnVsbCk7XG5cbiAgICByZXR1cm4gc2VtaU9wYXF1ZTtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdKSB7XG4gICAgbGV0IGNvbnN1bWluZyA9IGZhbHNlO1xuXG4gICAgY29uc3QgcnVsZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICB2aXNpdGVkUnVsZXNJbmNsdWRlc1J1bGUgPSB2aXNpdGVkUnVsZXMuaW5jbHVkZXMocnVsZSk7XG5cbiAgICBpZiAoIXZpc2l0ZWRSdWxlc0luY2x1ZGVzUnVsZSkge1xuICAgICAgY29uc3QgdmlzaXRlZFJ1bGUgPSBydWxlLCAvLy9cbiAgICAgICAgICAgIGRlZmluaXRpb25zQ29uc3VtaW5nID0gdGhpcy5hcmVEZWZpbml0aW9uc0NvbnN1bWluZyhydWxlTWFwLCBbXG4gICAgICAgICAgICAgIC4uLnZpc2l0ZWRSdWxlcyxcbiAgICAgICAgICAgICAgdmlzaXRlZFJ1bGVcbiAgICAgICAgICAgIF0pO1xuXG4gICAgICBpZiAoZGVmaW5pdGlvbnNDb25zdW1pbmcpIHtcbiAgICAgICAgY29uc3VtaW5nID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgYXJlRGVmaW5pdGlvbnNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzKSB7XG4gICAgY29uc3QgZGVmaW5pdGlvbnNDb25zdW1pbmcgPSB0aGlzLmRlZmluaXRpb25zLmV2ZXJ5KChkZWZpbml0aW9uKSA9PiB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uQ29uc3VtaW5nID0gZGVmaW5pdGlvbi5pc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpO1xuXG4gICAgICBpZiAoZGVmaW5pdGlvbkNvbnN1bWluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uc0NvbnN1bWluZztcbiAgfVxuXG4gIE5vblRlcm1pbmFsTm9kZUZyb21SdWxlTmFtZShydWxlTmFtZSwgc3RhdGUpIHsgcmV0dXJuIHN0YXRlLk5vblRlcm1pbmFsTm9kZUZyb21SdWxlTmFtZShydWxlTmFtZSk7IH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBydWxlID0gdGhpcyxcbiAgICAgICAgICBicmFuY2hpbmcgPSBzdGF0ZS5pc0JyYW5jaGluZygpLFxuICAgICAgICAgIHNvbWUgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nU29tZSA6XG4gICAgICAgICAgICAgICAgICAgIGxpbmVhclNvbWU7XG5cbiAgICByZXR1cm4gc29tZSh0aGlzLmRlZmluaXRpb25zLCAoZGVmaW5pdGlvbiwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gZGVmaW5pdGlvbi5wYXJzZShydWxlLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBhc1N0cmluZyhtYXhpbXVtUnVsZU5hbWVMZW5ndGgsIG11bHRpTGluZSA9IHRydWUpIHtcbiAgICBjb25zdCBkZWZpbml0aW9uc0xlbmd0aCA9IHRoaXMuZGVmaW5pdGlvbnMubGVuZ3RoO1xuXG4gICAgbXVsdGlMaW5lID0gbXVsdGlMaW5lICYmIChkZWZpbml0aW9uc0xlbmd0aCA+IDEpOyAgLy8vXG5cbiAgICBjb25zdCBvcGFjaXR5U3RyaW5nID0gb3BhY2l0eVN0cmluZ0Zyb21PcGFjaXR5KHRoaXMub3BhY2l0eSksXG4gICAgICAgICAgc2VtaWNvbG9uU3RyaW5nID0gc2VtaWNvbG9uU3RyaW5nRnJvbU11bHRpbGluZUFuZE1heGltdW1SdWxlTmFtZUxlbmd0aChtdWx0aUxpbmUsIG1heGltdW1SdWxlTmFtZUxlbmd0aCksXG4gICAgICAgICAgZGVmaW5pdGlvbnNTdHJpbmcgPSBkZWZpbml0aW9uc1N0cmluZ0Zyb21NdWx0aWxpbmVEZWZpbml0aW9uc0FuZE1heGltdW1SdWxlTmFtZUxlbmd0aChtdWx0aUxpbmUsIHRoaXMuZGVmaW5pdGlvbnMsIG1heGltdW1SdWxlTmFtZUxlbmd0aCksXG4gICAgICAgICAgcnVsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lTGVuZ3RoID0gcnVsZU5hbWUubGVuZ3RoLFxuICAgICAgICAgIG9wYWNpdHlTdHJpbmdMZW5ndGggPSBvcGFjaXR5U3RyaW5nLmxlbmd0aCxcbiAgICAgICAgICBtYXJnaW5XaWR0aCA9IG1heGltdW1SdWxlTmFtZUxlbmd0aCAtIHJ1bGVOYW1lTGVuZ3RoIC0gb3BhY2l0eVN0cmluZ0xlbmd0aCxcbiAgICAgICAgICBtYXJnaW5TdHJpbmcgPSBtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGgobWFyZ2luV2lkdGgpLFxuICAgICAgICAgIHN0cmluZyA9IGBcblxuJHt0aGlzLm5hbWV9JHtvcGFjaXR5U3RyaW5nfSR7bWFyZ2luU3RyaW5nfSA6Oj0gJHtkZWZpbml0aW9uc1N0cmluZ30ke3NlbWljb2xvblN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZU9wYWNpdHlBbmREZWZpbml0aW9ucyhDbGFzcywgbmFtZSwgb3BhY2l0eSwgZGVmaW5pdGlvbnMpIHtcbiAgICBpZiAoZGVmaW5pdGlvbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVmaW5pdGlvbnMgPSBvcGFjaXR5OyAgLy8vXG5cbiAgICAgIG9wYWNpdHkgPSBuYW1lOyAvLy9cblxuICAgICAgbmFtZSA9IENsYXNzOyAvLy9cblxuICAgICAgQ2xhc3MgPSBSdWxlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBydWxlID0gbmV3IENsYXNzKG5hbWUsIG9wYWNpdHksIGRlZmluaXRpb25zKTtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9wYWNpdHlTdHJpbmdGcm9tT3BhY2l0eShvcGFjaXR5KSB7XG4gIGNvbnN0IG9wYWNpdHlTdHJpbmcgPSAob3BhY2l0eSAhPT0gbnVsbCk/XG4gICAgICAgICAgb3BhY2l0eTogLy8vXG4gICAgICAgICAgICBFTVBUWV9TVFJJTkc7XG5cbiAgcmV0dXJuIG9wYWNpdHlTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHNlbWljb2xvblN0cmluZ0Zyb21NdWx0aWxpbmVBbmRNYXhpbXVtUnVsZU5hbWVMZW5ndGgobXVsdGlMaW5lLCBtYXhpbXVtUnVsZU5hbWVMZW5ndGgpIHtcbiAgY29uc3QgbWFyZ2luV2lkdGggPSBtYXhpbXVtUnVsZU5hbWVMZW5ndGgsICAvLy9cbiAgICAgICAgbWFyZ2luU3RyaW5nID0gbWFyZ2luU3RyaW5nRnJvbU1hcmdpbldpZHRoKG1hcmdpbldpZHRoKSxcbiAgICAgICAgc2VtaWNvbG9uU3RyaW5nID0gbXVsdGlMaW5lID9cbiAgICAgIGBcblxuJHttYXJnaW5TdHJpbmd9ICAgO2AgOlxuICAgICAgXCIgO1wiO1xuXG4gIHJldHVybiBzZW1pY29sb25TdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGRlZmluaXRpb25zU3RyaW5nRnJvbU11bHRpbGluZURlZmluaXRpb25zQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoKG11bHRpTGluZSwgZGVmaW5pdGlvbnMsIG1heGltdW1SdWxlTmFtZUxlbmd0aCkge1xuICBjb25zdCBtYXJnaW5XaWR0aCA9IG1heGltdW1SdWxlTmFtZUxlbmd0aCwgIC8vL1xuICAgICAgICBtYXJnaW5TdHJpbmcgPSBtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGgobWFyZ2luV2lkdGgpLFxuICAgICAgICBkZWZpbml0aW9uc1N0cmluZyA9IGRlZmluaXRpb25zLnJlZHVjZSgoZGVmaW5pdGlvbnNTdHJpbmcsIGRlZmluaXRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBkZWZpbml0aW9uU3RyaW5nID0gZGVmaW5pdGlvbi5hc1N0cmluZygpO1xuXG4gICAgICAgICAgaWYgKGRlZmluaXRpb25zU3RyaW5nID09PSBFTVBUWV9TVFJJTkcpIHtcbiAgICAgICAgICAgIGRlZmluaXRpb25zU3RyaW5nID0gZGVmaW5pdGlvblN0cmluZzsgLy8vXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlZmluaXRpb25zU3RyaW5nID0gbXVsdGlMaW5lID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2RlZmluaXRpb25zU3RyaW5nfVxuICAgIFxuJHttYXJnaW5TdHJpbmd9ICAgfCAke2RlZmluaXRpb25TdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2RlZmluaXRpb25zU3RyaW5nfSB8ICR7ZGVmaW5pdGlvblN0cmluZ31gO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBkZWZpbml0aW9uc1N0cmluZztcbiAgICAgICAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gZGVmaW5pdGlvbnNTdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiUnVsZSIsIm9wYXF1ZSIsIm9wYXF1ZVNwZWNpYWxTeW1ib2wiLCJzZW1pT3BhcXVlIiwic2VtaU9wYXF1ZVNwZWNpYWxTeW1ib2wiLCJzcGVjaWFsU3ltYm9scyIsIm5hbWUiLCJvcGFjaXR5IiwiZGVmaW5pdGlvbnMiLCJnZXROYW1lIiwiZ2V0T3BhY2l0eSIsImdldERlZmluaXRpb25zIiwic2V0TmFtZSIsInNldE9wYWNpdHkiLCJzZXREZWZpbml0aW9ucyIsImlzT3BhcXVlIiwiaXNTZW1pT3BhcXVlIiwiaXNUcmFuc3BhcmVudCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNvbnN1bWluZyIsInJ1bGUiLCJ2aXNpdGVkUnVsZXNJbmNsdWRlc1J1bGUiLCJpbmNsdWRlcyIsInZpc2l0ZWRSdWxlIiwiZGVmaW5pdGlvbnNDb25zdW1pbmciLCJhcmVEZWZpbml0aW9uc0NvbnN1bWluZyIsImV2ZXJ5IiwiZGVmaW5pdGlvbiIsImRlZmluaXRpb25Db25zdW1pbmciLCJOb25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUiLCJydWxlTmFtZSIsInN0YXRlIiwicGFyc2UiLCJmcmFtZSIsImZvcndhcmQiLCJiYWNrIiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJzb21lIiwiYnJhbmNoaW5nU29tZSIsImxpbmVhclNvbWUiLCJhc1N0cmluZyIsIm1heGltdW1SdWxlTmFtZUxlbmd0aCIsIm11bHRpTGluZSIsImRlZmluaXRpb25zTGVuZ3RoIiwibGVuZ3RoIiwib3BhY2l0eVN0cmluZyIsIm9wYWNpdHlTdHJpbmdGcm9tT3BhY2l0eSIsInNlbWljb2xvblN0cmluZyIsInNlbWljb2xvblN0cmluZ0Zyb21NdWx0aWxpbmVBbmRNYXhpbXVtUnVsZU5hbWVMZW5ndGgiLCJkZWZpbml0aW9uc1N0cmluZyIsImRlZmluaXRpb25zU3RyaW5nRnJvbU11bHRpbGluZURlZmluaXRpb25zQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoIiwicnVsZU5hbWVMZW5ndGgiLCJvcGFjaXR5U3RyaW5nTGVuZ3RoIiwibWFyZ2luV2lkdGgiLCJtYXJnaW5TdHJpbmciLCJtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGgiLCJzdHJpbmciLCJmcm9tTmFtZU9wYWNpdHlBbmREZWZpbml0aW9ucyIsIkNsYXNzIiwidW5kZWZpbmVkIiwiRU1QVFlfU1RSSU5HIiwicmVkdWNlIiwiZGVmaW5pdGlvblN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFxQkE7Ozs2QkFUVTsyQkFFRjt3QkFDTTsyQkFDRzt3QkFDTTtBQUU1QyxNQUFNLEVBQUVDLFFBQVFDLG1CQUFtQixFQUFFQyxZQUFZQyx1QkFBdUIsRUFBRSxHQUFHQywyQkFBYztBQUU1RSxNQUFNTDtJQUNuQixZQUFZTSxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxDQUFFO1FBQ3RDLElBQUksQ0FBQ0YsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtJQUNyQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDSCxPQUFPO0lBQ3JCO0lBRUFJLGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDSCxXQUFXO0lBQ3pCO0lBRUFJLFFBQVFOLElBQUksRUFBRTtRQUNaLElBQUksQ0FBQ0EsSUFBSSxHQUFHQTtJQUNkO0lBRUFPLFdBQVdOLE9BQU8sRUFBRTtRQUNsQixJQUFJLENBQUNBLE9BQU8sR0FBR0E7SUFDakI7SUFFQU8sZUFBZU4sV0FBVyxFQUFFO1FBQzFCLElBQUksQ0FBQ0EsV0FBVyxHQUFHQTtJQUNyQjtJQUVBTyxXQUFXO1FBQ1QsTUFBTWQsU0FBVSxJQUFJLENBQUNNLE9BQU8sS0FBS0w7UUFFakMsT0FBT0Q7SUFDVDtJQUVBZSxlQUFlO1FBQ2IsTUFBTWIsYUFBYyxJQUFJLENBQUNJLE9BQU8sS0FBS0g7UUFFckMsT0FBT0Q7SUFDVDtJQUVBYyxnQkFBZ0I7UUFDZCxNQUFNZCxhQUFjLElBQUksQ0FBQ0ksT0FBTyxLQUFLO1FBRXJDLE9BQU9KO0lBQ1Q7SUFFQWUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVB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
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzb21lIGFzIGxpbmVhclNvbWUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBzb21lIGFzIGJyYW5jaGluZ1NvbWUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGggfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNvbnN0IHsgb3BhcXVlOiBvcGFxdWVTcGVjaWFsU3ltYm9sLCBzZW1pT3BhcXVlOiBzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGUge1xuICBjb25zdHJ1Y3RvcihuYW1lLCBvcGFjaXR5LCBkZWZpbml0aW9ucykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRPcGFjaXR5KCkge1xuICAgIHJldHVybiB0aGlzLm9wYWNpdHk7XG4gIH1cblxuICBnZXREZWZpbml0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9ucztcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRPcGFjaXR5KG9wYWNpdHkpIHtcbiAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xuICB9XG5cbiAgc2V0RGVmaW5pdGlvbnMoZGVmaW5pdGlvbnMpIHtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gIH1cblxuICBpc09wYXF1ZSgpIHtcbiAgICBjb25zdCBvcGFxdWUgPSAodGhpcy5vcGFjaXR5ID09PSBvcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBvcGFxdWU7XG4gIH1cblxuICBpc1NlbWlPcGFxdWUoKSB7XG4gICAgY29uc3Qgc2VtaU9wYXF1ZSA9ICh0aGlzLm9wYWNpdHkgPT09IHNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBzZW1pT3BhcXVlO1xuICB9XG5cbiAgaXNUcmFuc3BhcmVudCgpIHtcbiAgICBjb25zdCBzZW1pT3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gbnVsbCk7XG5cbiAgICByZXR1cm4gc2VtaU9wYXF1ZTtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdLCBjaGVja0ZvckN1dFBhcnRzID0gZmFsc2UpIHtcbiAgICBsZXQgY29uc3VtaW5nID0gZmFsc2U7XG5cbiAgICBjb25zdCBydWxlID0gdGhpcywgIC8vL1xuICAgICAgICAgIHZpc2l0ZWRSdWxlc0luY2x1ZGVzUnVsZSA9IHZpc2l0ZWRSdWxlcy5pbmNsdWRlcyhydWxlKTtcblxuICAgIGlmICghdmlzaXRlZFJ1bGVzSW5jbHVkZXNSdWxlKSB7XG4gICAgICBjb25zdCB2aXNpdGVkUnVsZSA9IHJ1bGUsIC8vL1xuICAgICAgICAgICAgZGVmaW5pdGlvbnNDb25zdW1pbmcgPSB0aGlzLmFyZURlZmluaXRpb25zQ29uc3VtaW5nKFxuICAgICAgICAgICAgICBydWxlTWFwLFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgLi4udmlzaXRlZFJ1bGVzLFxuICAgICAgICAgICAgICAgIHZpc2l0ZWRSdWxlXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGNoZWNrRm9yQ3V0UGFydHNcbiAgICAgICAgICAgICk7XG5cbiAgICAgIGlmIChkZWZpbml0aW9uc0NvbnN1bWluZykge1xuICAgICAgICBjb25zdW1pbmcgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBhcmVEZWZpbml0aW9uc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMsIGNoZWNrRm9yQ3V0UGFydHMpIHtcbiAgICBsZXQgZGVmaW5pdGlvbnNDb25zdW1pbmc7XG5cbiAgICBpZiAoY2hlY2tGb3JDdXRQYXJ0cykge1xuICAgICAgZGVmaW5pdGlvbnNDb25zdW1pbmcgPSB0cnVlO1xuXG4gICAgICB0aGlzLmRlZmluaXRpb25zLmZvckVhY2goKGRlZmluaXRpb24pID0+IHtcbiAgICAgICAgZGVmaW5pdGlvbnNDb25zdW1pbmcgPSBkZWZpbml0aW9uLmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cykgJiYgZGVmaW5pdGlvbnNDb25zdW1pbmc7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVmaW5pdGlvbnNDb25zdW1pbmcgPSB0aGlzLmRlZmluaXRpb25zLmV2ZXJ5KChkZWZpbml0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmluaXRpb25Db25zdW1pbmcgPSBkZWZpbml0aW9uLmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cyk7XG5cbiAgICAgICAgaWYgKGRlZmluaXRpb25Db25zdW1pbmcpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb25zQ29uc3VtaW5nO1xuICB9XG5cbiAgTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lKHJ1bGVOYW1lLCBzdGF0ZSkgeyByZXR1cm4gc3RhdGUuTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lKHJ1bGVOYW1lKTsgfVxuXG4gIHBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLFxuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgc29tZSA9IGJyYW5jaGluZyA/XG4gICAgICAgICAgICAgICAgICBicmFuY2hpbmdTb21lIDpcbiAgICAgICAgICAgICAgICAgICAgbGluZWFyU29tZTtcblxuICAgIHJldHVybiBzb21lKHRoaXMuZGVmaW5pdGlvbnMsIChkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBkZWZpbml0aW9uLnBhcnNlKHJ1bGUsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgfVxuXG4gIGFzU3RyaW5nKG1heGltdW1SdWxlTmFtZUxlbmd0aCwgbXVsdGlMaW5lID0gdHJ1ZSkge1xuICAgIGNvbnN0IGRlZmluaXRpb25zTGVuZ3RoID0gdGhpcy5kZWZpbml0aW9ucy5sZW5ndGg7XG5cbiAgICBtdWx0aUxpbmUgPSBtdWx0aUxpbmUgJiYgKGRlZmluaXRpb25zTGVuZ3RoID4gMSk7ICAvLy9cblxuICAgIGNvbnN0IG9wYWNpdHlTdHJpbmcgPSBvcGFjaXR5U3RyaW5nRnJvbU9wYWNpdHkodGhpcy5vcGFjaXR5KSxcbiAgICAgICAgICBzZW1pY29sb25TdHJpbmcgPSBzZW1pY29sb25TdHJpbmdGcm9tTXVsdGlsaW5lQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoKG11bHRpTGluZSwgbWF4aW11bVJ1bGVOYW1lTGVuZ3RoKSxcbiAgICAgICAgICBkZWZpbml0aW9uc1N0cmluZyA9IGRlZmluaXRpb25zU3RyaW5nRnJvbU11bHRpbGluZURlZmluaXRpb25zQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoKG11bHRpTGluZSwgdGhpcy5kZWZpbml0aW9ucywgbWF4aW11bVJ1bGVOYW1lTGVuZ3RoKSxcbiAgICAgICAgICBydWxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgcnVsZU5hbWVMZW5ndGggPSBydWxlTmFtZS5sZW5ndGgsXG4gICAgICAgICAgb3BhY2l0eVN0cmluZ0xlbmd0aCA9IG9wYWNpdHlTdHJpbmcubGVuZ3RoLFxuICAgICAgICAgIG1hcmdpbldpZHRoID0gbWF4aW11bVJ1bGVOYW1lTGVuZ3RoIC0gcnVsZU5hbWVMZW5ndGggLSBvcGFjaXR5U3RyaW5nTGVuZ3RoLFxuICAgICAgICAgIG1hcmdpblN0cmluZyA9IG1hcmdpblN0cmluZ0Zyb21NYXJnaW5XaWR0aChtYXJnaW5XaWR0aCksXG4gICAgICAgICAgc3RyaW5nID0gYFxuXG4ke3RoaXMubmFtZX0ke29wYWNpdHlTdHJpbmd9JHttYXJnaW5TdHJpbmd9IDo6PSAke2RlZmluaXRpb25zU3RyaW5nfSR7c2VtaWNvbG9uU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lT3BhY2l0eUFuZERlZmluaXRpb25zKENsYXNzLCBuYW1lLCBvcGFjaXR5LCBkZWZpbml0aW9ucykge1xuICAgIGlmIChkZWZpbml0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWZpbml0aW9ucyA9IG9wYWNpdHk7ICAvLy9cblxuICAgICAgb3BhY2l0eSA9IG5hbWU7IC8vL1xuXG4gICAgICBuYW1lID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFJ1bGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bGUgPSBuZXcgQ2xhc3MobmFtZSwgb3BhY2l0eSwgZGVmaW5pdGlvbnMpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gb3BhY2l0eVN0cmluZ0Zyb21PcGFjaXR5KG9wYWNpdHkpIHtcbiAgY29uc3Qgb3BhY2l0eVN0cmluZyA9IChvcGFjaXR5ICE9PSBudWxsKT9cbiAgICAgICAgICBvcGFjaXR5OiAvLy9cbiAgICAgICAgICAgIEVNUFRZX1NUUklORztcblxuICByZXR1cm4gb3BhY2l0eVN0cmluZztcbn1cblxuZnVuY3Rpb24gc2VtaWNvbG9uU3RyaW5nRnJvbU11bHRpbGluZUFuZE1heGltdW1SdWxlTmFtZUxlbmd0aChtdWx0aUxpbmUsIG1heGltdW1SdWxlTmFtZUxlbmd0aCkge1xuICBjb25zdCBtYXJnaW5XaWR0aCA9IG1heGltdW1SdWxlTmFtZUxlbmd0aCwgIC8vL1xuICAgICAgICBtYXJnaW5TdHJpbmcgPSBtYXJnaW5TdHJpbmdGcm9tTWFyZ2luV2lkdGgobWFyZ2luV2lkdGgpLFxuICAgICAgICBzZW1pY29sb25TdHJpbmcgPSBtdWx0aUxpbmUgP1xuICAgICAgYFxuXG4ke21hcmdpblN0cmluZ30gICA7YCA6XG4gICAgICBcIiA7XCI7XG5cbiAgcmV0dXJuIHNlbWljb2xvblN0cmluZztcbn1cblxuZnVuY3Rpb24gZGVmaW5pdGlvbnNTdHJpbmdGcm9tTXVsdGlsaW5lRGVmaW5pdGlvbnNBbmRNYXhpbXVtUnVsZU5hbWVMZW5ndGgobXVsdGlMaW5lLCBkZWZpbml0aW9ucywgbWF4aW11bVJ1bGVOYW1lTGVuZ3RoKSB7XG4gIGNvbnN0IG1hcmdpbldpZHRoID0gbWF4aW11bVJ1bGVOYW1lTGVuZ3RoLCAgLy8vXG4gICAgICAgIG1hcmdpblN0cmluZyA9IG1hcmdpblN0cmluZ0Zyb21NYXJnaW5XaWR0aChtYXJnaW5XaWR0aCksXG4gICAgICAgIGRlZmluaXRpb25zU3RyaW5nID0gZGVmaW5pdGlvbnMucmVkdWNlKChkZWZpbml0aW9uc1N0cmluZywgZGVmaW5pdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlZmluaXRpb25TdHJpbmcgPSBkZWZpbml0aW9uLmFzU3RyaW5nKCk7XG5cbiAgICAgICAgICBpZiAoZGVmaW5pdGlvbnNTdHJpbmcgPT09IEVNUFRZX1NUUklORykge1xuICAgICAgICAgICAgZGVmaW5pdGlvbnNTdHJpbmcgPSBkZWZpbml0aW9uU3RyaW5nOyAvLy9cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVmaW5pdGlvbnNTdHJpbmcgPSBtdWx0aUxpbmUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZGVmaW5pdGlvbnNTdHJpbmd9XG4gICAgXG4ke21hcmdpblN0cmluZ30gICB8ICR7ZGVmaW5pdGlvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZGVmaW5pdGlvbnNTdHJpbmd9IHwgJHtkZWZpbml0aW9uU3RyaW5nfWA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGRlZmluaXRpb25zU3RyaW5nO1xuICAgICAgICB9LCBFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBkZWZpbml0aW9uc1N0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJSdWxlIiwib3BhcXVlIiwib3BhcXVlU3BlY2lhbFN5bWJvbCIsInNlbWlPcGFxdWUiLCJzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCIsInNwZWNpYWxTeW1ib2xzIiwibmFtZSIsIm9wYWNpdHkiLCJkZWZpbml0aW9ucyIsImdldE5hbWUiLCJnZXRPcGFjaXR5IiwiZ2V0RGVmaW5pdGlvbnMiLCJzZXROYW1lIiwic2V0T3BhY2l0eSIsInNldERlZmluaXRpb25zIiwiaXNPcGFxdWUiLCJpc1NlbWlPcGFxdWUiLCJpc1RyYW5zcGFyZW50IiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY2hlY2tGb3JDdXRQYXJ0cyIsImNvbnN1bWluZyIsInJ1bGUiLCJ2aXNpdGVkUnVsZXNJbmNsdWRlc1J1bGUiLCJpbmNsdWRlcyIsInZpc2l0ZWRSdWxlIiwiZGVmaW5pdGlvbnNDb25zdW1pbmciLCJhcmVEZWZpbml0aW9uc0NvbnN1bWluZyIsImZvckVhY2giLCJkZWZpbml0aW9uIiwiZXZlcnkiLCJkZWZpbml0aW9uQ29uc3VtaW5nIiwiTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lIiwicnVsZU5hbWUiLCJzdGF0ZSIsInBhcnNlIiwiZnJhbWUiLCJmb3J3YXJkIiwiYmFjayIsImJyYW5jaGluZyIsImlzQnJhbmNoaW5nIiwic29tZSIsImJyYW5jaGluZ1NvbWUiLCJsaW5lYXJTb21lIiwiYXNTdHJpbmciLCJtYXhpbXVtUnVsZU5hbWVMZW5ndGgiLCJtdWx0aUxpbmUiLCJkZWZpbml0aW9uc0xlbmd0aCIsImxlbmd0aCIsIm9wYWNpdHlTdHJpbmciLCJvcGFjaXR5U3RyaW5nRnJvbU9wYWNpdHkiLCJzZW1pY29sb25TdHJpbmciLCJzZW1pY29sb25TdHJpbmdGcm9tTXVsdGlsaW5lQW5kTWF4aW11bVJ1bGVOYW1lTGVuZ3RoIiwiZGVmaW5pdGlvbnNTdHJpbmciLCJkZWZpbml0aW9uc1N0cmluZ0Zyb21NdWx0aWxpbmVEZWZpbml0aW9uc0FuZE1heGltdW1SdWxlTmFtZUxlbmd0aCIsInJ1bGVOYW1lTGVuZ3RoIiwib3BhY2l0eVN0cmluZ0xlbmd0aCIsIm1hcmdpbldpZHRoIiwibWFyZ2luU3RyaW5nIiwibWFyZ2luU3RyaW5nRnJvbU1hcmdpbldpZHRoIiwic3RyaW5nIiwiZnJvbU5hbWVPcGFjaXR5QW5kRGVmaW5pdGlvbnMiLCJDbGFzcyIsInVuZGVmaW5lZCIsIkVNUFRZX1NUUklORyIsInJlZHVjZSIsImRlZmluaXRpb25TdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBcUJBOzs7NkJBVFU7MkJBRUY7d0JBQ007MkJBQ0c7d0JBQ007QUFFNUMsTUFBTSxFQUFFQyxRQUFRQyxtQkFBbUIsRUFBRUMsWUFBWUMsdUJBQXVCLEVBQUUsR0FBR0MsMkJBQWM7QUFFNUUsTUFBTUw7SUFDbkIsWUFBWU0sSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsQ0FBRTtRQUN0QyxJQUFJLENBQUNGLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFdBQVcsR0FBR0E7SUFDckI7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSCxJQUFJO0lBQ2xC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
|
package/package.json
CHANGED
package/src/definition.js
CHANGED
|
@@ -25,9 +25,9 @@ export default class Definition {
|
|
|
25
25
|
return this.precedence;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
isConsuming(ruleMap, visitedRules) {
|
|
28
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
29
29
|
const consuming = this.parts.some((part) => {
|
|
30
|
-
const consuming = part.isConsuming(ruleMap, visitedRules);
|
|
30
|
+
const consuming = part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
31
31
|
|
|
32
32
|
if (consuming) {
|
|
33
33
|
return true;
|
|
@@ -24,9 +24,9 @@ export default class BranchingPartsPart extends NonTerminalPart {
|
|
|
24
24
|
return this.parts;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
27
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
28
28
|
const consuming = this.parts.some((part) => {
|
|
29
|
-
const consuming = part.isConsuming(ruleMap, visitedRules);
|
|
29
|
+
const consuming = part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
30
30
|
|
|
31
31
|
if (consuming) {
|
|
32
32
|
return true;
|
|
@@ -27,14 +27,24 @@ export default class ChoiceOfPartsPart extends NonTerminalPart {
|
|
|
27
27
|
return parts;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
31
|
-
|
|
32
|
-
const consuming = partChoice.isConsuming(ruleMap, visitedRules);
|
|
30
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
31
|
+
let consuming;
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
if (checkForCutParts) {
|
|
34
|
+
consuming = true;
|
|
35
|
+
|
|
36
|
+
this.partChoices.forEach((partChoice) => {
|
|
37
|
+
consuming = partChoice.isConsuming(ruleMap, visitedRules, checkForCutParts) && consuming;
|
|
38
|
+
});
|
|
39
|
+
} else {
|
|
40
|
+
consuming = this.partChoices.every((partChoice) => {
|
|
41
|
+
const consuming = partChoice.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
42
|
+
|
|
43
|
+
if (consuming) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
38
48
|
|
|
39
49
|
return consuming;
|
|
40
50
|
}
|
|
@@ -17,7 +17,7 @@ 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); }
|
|
20
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) { return this.part.isConsuming(ruleMap, visitedRules, checkForCutParts); }
|
|
21
21
|
|
|
22
22
|
parse(frame, state, forward, back) {
|
|
23
23
|
return this.part.parse(frame, state, (frame, state, back) => {
|
|
@@ -21,7 +21,7 @@ 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); }
|
|
24
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) { return this.part.isConsuming(ruleMap, visitedRules, checkForCutParts); }
|
|
25
25
|
|
|
26
26
|
parse(frame, state, forward, back) {
|
|
27
27
|
const limit = Infinity,
|
|
@@ -21,9 +21,13 @@ export default class OptionalPartPart extends NonTerminalPart {
|
|
|
21
21
|
return this.part;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
24
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
25
25
|
const consuming = false;
|
|
26
26
|
|
|
27
|
+
if (checkForCutParts) {
|
|
28
|
+
this.part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
29
|
+
}
|
|
30
|
+
|
|
27
31
|
return consuming;
|
|
28
32
|
}
|
|
29
33
|
|
|
@@ -21,14 +21,14 @@ export default class RuleNamePart extends NonTerminalPart {
|
|
|
21
21
|
return ruleNamePart;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
24
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
25
25
|
const rule = ruleMap[this.ruleName] || null;
|
|
26
26
|
|
|
27
27
|
if (rule == null) {
|
|
28
28
|
throw new Error(`The '${this.ruleName}' rule is missing.`);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
const consuming = rule.isConsuming(ruleMap, visitedRules);
|
|
31
|
+
const consuming = rule.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
32
32
|
|
|
33
33
|
return consuming;
|
|
34
34
|
}
|
|
@@ -18,9 +18,9 @@ export default class SequenceOfPartsPart extends NonTerminalPart {
|
|
|
18
18
|
return this.parts;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
21
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
22
22
|
const consuming = this.parts.some((part) => {
|
|
23
|
-
const consuming = part.isConsuming(ruleMap, visitedRules);
|
|
23
|
+
const consuming = part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
24
24
|
|
|
25
25
|
if (consuming) {
|
|
26
26
|
return true;
|
|
@@ -21,9 +21,13 @@ export default class ZeroOrMorePartsPart extends NonTerminalPart {
|
|
|
21
21
|
return this.part;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
24
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
25
25
|
const consuming = false;
|
|
26
26
|
|
|
27
|
+
if (checkForCutParts) {
|
|
28
|
+
this.part.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
29
|
+
}
|
|
30
|
+
|
|
27
31
|
return consuming;
|
|
28
32
|
}
|
|
29
33
|
|
package/src/part/terminal/cut.js
CHANGED
|
@@ -26,9 +26,13 @@ export default class CutPart extends TerminalPart {
|
|
|
26
26
|
return cutPart;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
29
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
30
30
|
const consuming = false;
|
|
31
31
|
|
|
32
|
+
if (checkForCutParts) {
|
|
33
|
+
throw new Error(`A cut part has been found before a consuming terminal.`);
|
|
34
|
+
}
|
|
35
|
+
|
|
32
36
|
return consuming;
|
|
33
37
|
}
|
|
34
38
|
|
|
@@ -9,7 +9,7 @@ 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 = []) {
|
|
12
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
13
13
|
const consuming = true;
|
|
14
14
|
|
|
15
15
|
return consuming;
|
|
@@ -15,7 +15,7 @@ export default class NoWhitespacePart extends TerminalPart {
|
|
|
15
15
|
return noWhitespacePart;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
18
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
19
19
|
const consuming = false;
|
|
20
20
|
|
|
21
21
|
return consuming;
|
|
@@ -19,7 +19,7 @@ export default class RegularExpressionPart extends TerminalPart {
|
|
|
19
19
|
return this.regularExpression;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
22
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
23
23
|
const consuming = true;
|
|
24
24
|
|
|
25
25
|
return consuming;
|
|
@@ -15,7 +15,7 @@ export default class SignificantTokenTypePart extends TerminalPart {
|
|
|
15
15
|
return this.significantTokenType;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
18
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
19
19
|
const consuming = true;
|
|
20
20
|
|
|
21
21
|
return consuming;
|
|
@@ -15,7 +15,7 @@ export default class StringLiteralPart extends TerminalPart {
|
|
|
15
15
|
return this.content;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
18
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
19
19
|
const consuming = true;
|
|
20
20
|
|
|
21
21
|
return consuming;
|
|
@@ -9,7 +9,7 @@ import TerminalNode from "../../node/terminal";
|
|
|
9
9
|
const { wildcard } = specialSymbols;
|
|
10
10
|
|
|
11
11
|
export default class WildcardPart extends TerminalPart {
|
|
12
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
12
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
13
13
|
const consuming = true;
|
|
14
14
|
|
|
15
15
|
return consuming;
|
package/src/rule.js
CHANGED
|
@@ -58,7 +58,7 @@ export default class Rule {
|
|
|
58
58
|
return semiOpaque;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
isConsuming(ruleMap, visitedRules = []) {
|
|
61
|
+
isConsuming(ruleMap, visitedRules = [], checkForCutParts = false) {
|
|
62
62
|
let consuming = false;
|
|
63
63
|
|
|
64
64
|
const rule = this, ///
|
|
@@ -66,10 +66,14 @@ export default class Rule {
|
|
|
66
66
|
|
|
67
67
|
if (!visitedRulesIncludesRule) {
|
|
68
68
|
const visitedRule = rule, ///
|
|
69
|
-
definitionsConsuming = this.areDefinitionsConsuming(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
definitionsConsuming = this.areDefinitionsConsuming(
|
|
70
|
+
ruleMap,
|
|
71
|
+
[
|
|
72
|
+
...visitedRules,
|
|
73
|
+
visitedRule
|
|
74
|
+
],
|
|
75
|
+
checkForCutParts
|
|
76
|
+
);
|
|
73
77
|
|
|
74
78
|
if (definitionsConsuming) {
|
|
75
79
|
consuming = true;
|
|
@@ -79,14 +83,24 @@ export default class Rule {
|
|
|
79
83
|
return consuming;
|
|
80
84
|
}
|
|
81
85
|
|
|
82
|
-
areDefinitionsConsuming(ruleMap, visitedRules) {
|
|
83
|
-
|
|
84
|
-
const definitionConsuming = definition.isConsuming(ruleMap, visitedRules);
|
|
86
|
+
areDefinitionsConsuming(ruleMap, visitedRules, checkForCutParts) {
|
|
87
|
+
let definitionsConsuming;
|
|
85
88
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
if (checkForCutParts) {
|
|
90
|
+
definitionsConsuming = true;
|
|
91
|
+
|
|
92
|
+
this.definitions.forEach((definition) => {
|
|
93
|
+
definitionsConsuming = definition.isConsuming(ruleMap, visitedRules, checkForCutParts) && definitionsConsuming;
|
|
94
|
+
});
|
|
95
|
+
} else {
|
|
96
|
+
definitionsConsuming = this.definitions.every((definition) => {
|
|
97
|
+
const definitionConsuming = definition.isConsuming(ruleMap, visitedRules, checkForCutParts);
|
|
98
|
+
|
|
99
|
+
if (definitionConsuming) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
90
104
|
|
|
91
105
|
return definitionsConsuming;
|
|
92
106
|
}
|