occam-parsers 23.2.21 → 23.2.23

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.
@@ -22,13 +22,8 @@ class DefinitionContext extends _context.default {
22
22
  }
23
23
  getPrecedence(frame) {
24
24
  let precedence;
25
- const context = this.getContext(), isolated = context.isIsolated();
26
- if (isolated) {
27
- precedence = null;
28
- } else {
29
- precedence = frame.getPrecedence();
30
- precedence = precedence || this.precedence; ///
31
- }
25
+ precedence = frame.getPrecedence();
26
+ precedence = precedence || this.precedence; ///
32
27
  return precedence;
33
28
  }
34
29
  getRule() {
@@ -40,9 +35,17 @@ class DefinitionContext extends _context.default {
40
35
  return isolated;
41
36
  }
42
37
  compose(frame) {
38
+ let context;
43
39
  const childNodes = frame.getChildNodes(), precedence = this.getPrecedence(frame);
44
40
  frame = _frame.default.fromChildNodesAndPrecedence(childNodes, precedence);
45
- const context = this, nonTerminalNode = nonTerminalNodeFromFrame(frame, context), palatable = nonTerminalNode.isPalatable(), childNode = nonTerminalNode; ///
41
+ context = this; ///
42
+ const nonTerminalNode = nonTerminalNodeFromFrame(frame, context);
43
+ context = this.getContext();
44
+ const isolated = context.isIsolated();
45
+ if (isolated) {
46
+ nonTerminalNode.nullifyPrecedence();
47
+ }
48
+ const palatable = nonTerminalNode.isPalatable(), childNode = nonTerminalNode; ///
46
49
  frame = palatable ? _frame.default.fromChildNode(childNode) : null;
47
50
  return frame;
48
51
  }
@@ -59,4 +62,4 @@ function nonTerminalNodeFromFrame(frame, context) {
59
62
  return nonTerminalNode;
60
63
  }
61
64
 
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2RlZmluaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vZnJhbWVcIjtcbmltcG9ydCBDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlZmluaXRpb25Db250ZXh0IGV4dGVuZHMgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0YXRlLCBjb250aW51YXRpb25zLCBwcmVjZWRlbmNlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RhdGUsIGNvbnRpbnVhdGlvbnMpO1xuXG4gICAgdGhpcy5wcmVjZWRlbmNlID0gcHJlY2VkZW5jZTtcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoZnJhbWUpIHtcbiAgICBsZXQgcHJlY2VkZW5jZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBpc29sYXRlZCA9IGNvbnRleHQuaXNJc29sYXRlZCgpO1xuXG4gICAgaWYgKGlzb2xhdGVkKSB7XG4gICAgICBwcmVjZWRlbmNlID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJlY2VkZW5jZSA9IGZyYW1lLmdldFByZWNlZGVuY2UoKTtcblxuICAgICAgcHJlY2VkZW5jZSA9IHByZWNlZGVuY2UgfHwgdGhpcy5wcmVjZWRlbmNlOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gcHJlY2VkZW5jZTtcbiAgfVxuXG4gIGdldFJ1bGUoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHJ1bGVDb250ZXh0ID0gY29udGV4dCwgIC8vL1xuICAgICAgICAgIHJ1bGUgPSBydWxlQ29udGV4dC5nZXRSdWxlKCk7XG5cbiAgICByZXR1cm4gcnVsZTtcbiAgfVxuXG4gIGlzSXNvbGF0ZWQoKSB7XG4gICAgY29uc3QgaXNvbGF0ZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiBpc29sYXRlZDtcbiAgfVxuXG4gIGNvbXBvc2UoZnJhbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gZnJhbWUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHByZWNlZGVuY2UgPSB0aGlzLmdldFByZWNlZGVuY2UoZnJhbWUpO1xuXG4gICAgZnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UoY2hpbGROb2RlcywgcHJlY2VkZW5jZSk7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlID0gbm9uVGVybWluYWxOb2RlRnJvbUZyYW1lKGZyYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICBwYWxhdGFibGUgPSBub25UZXJtaW5hbE5vZGUuaXNQYWxhdGFibGUoKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSBub25UZXJtaW5hbE5vZGU7ICAvLy9cblxuICAgIGZyYW1lID0gcGFsYXRhYmxlID8gLy8vXG4gICAgICAgICAgICAgIEZyYW1lLmZyb21DaGlsZE5vZGUoY2hpbGROb2RlKSA6XG4gICAgICAgICAgICAgICAgbnVsbDtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRGVmaW5pdGlvbihkZWZpbml0aW9uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgcHJlY2VkZW5jZSA9IGRlZmluaXRpb24uZ2V0UHJlY2VkZW5jZSgpLFxuICAgICAgICAgIGRlZmluaXRpb25Db250ZXh0ID0gQ29udGV4dC5mcm9tTm90aGluZyhEZWZpbml0aW9uQ29udGV4dCwgcHJlY2VkZW5jZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbkNvbnRleHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9uVGVybWluYWxOb2RlRnJvbUZyYW1lKGZyYW1lLCBjb250ZXh0KSB7XG4gIGxldCBub25UZXJtaW5hbE5vZGU7XG5cbiAgY29uc3QgcnVsZSA9IGNvbnRleHQuZ2V0UnVsZSgpLFxuICAgICAgICBvcGFjaXR5ID0gcnVsZS5nZXRPcGFjaXR5KCksXG4gICAgICAgIHJ1bGVOYW1lID0gcnVsZS5nZXROYW1lKCksXG4gICAgICAgIGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHByZWNlZGVuY2UgPSBmcmFtZS5nZXRQcmVjZWRlbmNlKCksXG4gICAgICAgIE5vblRlcm1pbmFsTm9kZSA9IHJ1bGUuTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lKHJ1bGVOYW1lLCBjb250ZXh0KTtcblxuICBub25UZXJtaW5hbE5vZGUgPSBOb25UZXJtaW5hbE5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKTtcblxuICBub25UZXJtaW5hbE5vZGUgPSBub25UZXJtaW5hbE5vZGUucmV3cml0ZShjb250ZXh0KTsgIC8vL1xuXG4gIHJldHVybiBub25UZXJtaW5hbE5vZGU7XG59XG4iXSwibmFtZXMiOlsiRGVmaW5pdGlvbkNvbnRleHQiLCJDb250ZXh0IiwiY29udGV4dCIsInN0YXRlIiwiY29udGludWF0aW9ucyIsInByZWNlZGVuY2UiLCJnZXRQcmVjZWRlbmNlIiwiZnJhbWUiLCJnZXRDb250ZXh0IiwiaXNvbGF0ZWQiLCJpc0lzb2xhdGVkIiwiZ2V0UnVsZSIsInJ1bGVDb250ZXh0IiwicnVsZSIsImNvbXBvc2UiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZXNBbmRQcmVjZWRlbmNlIiwibm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlRnJvbUZyYW1lIiwicGFsYXRhYmxlIiwiaXNQYWxhdGFibGUiLCJjaGlsZE5vZGUiLCJmcm9tQ2hpbGROb2RlIiwiZnJvbURlZmluaXRpb24iLCJkZWZpbml0aW9uIiwiZGVmaW5pdGlvbkNvbnRleHQiLCJmcm9tTm90aGluZyIsIm9wYWNpdHkiLCJnZXRPcGFjaXR5IiwicnVsZU5hbWUiLCJnZXROYW1lIiwiTm9uVGVybWluYWxOb2RlIiwiTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlIiwicmV3cml0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUFxQkE7Ozs4REFISDtnRUFDRTs7Ozs7O0FBRUwsTUFBTUEsMEJBQTBCQyxnQkFBTztJQUNwRCxZQUFZQyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsYUFBYSxFQUFFQyxVQUFVLENBQUU7UUFDckQsS0FBSyxDQUFDSCxTQUFTQyxPQUFPQztRQUV0QixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsY0FBY0MsS0FBSyxFQUFFO1FBQ25CLElBQUlGO1FBRUosTUFBTUgsVUFBVSxJQUFJLENBQUNNLFVBQVUsSUFDekJDLFdBQVdQLFFBQVFRLFVBQVU7UUFFbkMsSUFBSUQsVUFBVTtZQUNaSixhQUFhO1FBQ2YsT0FBTztZQUNMQSxhQUFhRSxNQUFNRCxhQUFhO1lBRWhDRCxhQUFhQSxjQUFjLElBQUksQ0FBQ0EsVUFBVSxFQUFFLEdBQUc7UUFDakQ7UUFFQSxPQUFPQTtJQUNUO0lBRUFNLFVBQVU7UUFDUixNQUFNVCxVQUFVLElBQUksQ0FBQ00sVUFBVSxJQUN6QkksY0FBY1YsU0FDZFcsT0FBT0QsWUFBWUQsT0FBTztRQUVoQyxPQUFPRTtJQUNUO0lBRUFILGFBQWE7UUFDWCxNQUFNRCxXQUFXO1FBRWpCLE9BQU9BO0lBQ1Q7SUFFQUssUUFBUVAsS0FBSyxFQUFFO1FBQ2IsTUFBTVEsYUFBYVIsTUFBTVMsYUFBYSxJQUNoQ1gsYUFBYSxJQUFJLENBQUNDLGFBQWEsQ0FBQ0M7UUFFdENBLFFBQVFVLGNBQUssQ0FBQ0MsMkJBQTJCLENBQUNILFlBQVlWO1FBRXRELE1BQU1ILFVBQVUsSUFBSSxFQUNkaUIsa0JBQWtCQyx5QkFBeUJiLE9BQU9MLFVBQ2xEbUIsWUFBWUYsZ0JBQWdCRyxXQUFXLElBQ3ZDQyxZQUFZSixpQkFBa0IsR0FBRztRQUV2Q1osUUFBUWMsWUFDRUosY0FBSyxDQUFDTyxhQUFhLENBQUNELGFBQ2xCO1FBRVosT0FBT2hCO0lBQ1Q7SUFFQSxPQUFPa0IsZUFBZUMsVUFBVSxFQUFFeEIsT0FBTyxFQUFFO1FBQ3pDLE1BQU1HLGFBQWFxQixXQUFXcEIsYUFBYSxJQUNyQ3FCLG9CQUFvQjFCLGdCQUFPLENBQUMyQixXQUFXLENBQUM1QixtQkFBbUJLLFlBQVlIO1FBRTdFLE9BQU95QjtJQUNUO0FBQ0Y7QUFFQSxTQUFTUCx5QkFBeUJiLEtBQUssRUFBRUwsT0FBTztJQUM5QyxJQUFJaUI7SUFFSixNQUFNTixPQUFPWCxRQUFRUyxPQUFPLElBQ3RCa0IsVUFBVWhCLEtBQUtpQixVQUFVLElBQ3pCQyxXQUFXbEIsS0FBS21CLE9BQU8sSUFDdkJqQixhQUFhUixNQUFNUyxhQUFhLElBQ2hDWCxhQUFhRSxNQUFNRCxhQUFhLElBQ2hDMkIsa0JBQWtCcEIsS0FBS3FCLDJCQUEyQixDQUFDSCxVQUFVN0I7SUFFbkVpQixrQkFBa0JjLGdCQUFnQkUsMENBQTBDLENBQUNKLFVBQVVoQixZQUFZYyxTQUFTeEI7SUFFNUdjLGtCQUFrQkEsZ0JBQWdCaUIsT0FBTyxDQUFDbEMsVUFBVyxHQUFHO0lBRXhELE9BQU9pQjtBQUNUIn0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2RlZmluaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vZnJhbWVcIjtcbmltcG9ydCBDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlZmluaXRpb25Db250ZXh0IGV4dGVuZHMgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0YXRlLCBjb250aW51YXRpb25zLCBwcmVjZWRlbmNlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RhdGUsIGNvbnRpbnVhdGlvbnMpO1xuXG4gICAgdGhpcy5wcmVjZWRlbmNlID0gcHJlY2VkZW5jZTtcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoZnJhbWUpIHtcbiAgICBsZXQgcHJlY2VkZW5jZTtcblxuICAgIHByZWNlZGVuY2UgPSBmcmFtZS5nZXRQcmVjZWRlbmNlKCk7XG5cbiAgICBwcmVjZWRlbmNlID0gcHJlY2VkZW5jZSB8fCB0aGlzLnByZWNlZGVuY2U7IC8vL1xuXG4gICAgcmV0dXJuIHByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRSdWxlKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBydWxlQ29udGV4dCA9IGNvbnRleHQsICAvLy9cbiAgICAgICAgICBydWxlID0gcnVsZUNvbnRleHQuZ2V0UnVsZSgpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cblxuICBpc0lzb2xhdGVkKCkge1xuICAgIGNvbnN0IGlzb2xhdGVkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gaXNvbGF0ZWQ7XG4gIH1cblxuICBjb21wb3NlKGZyYW1lKSB7XG4gICAgbGV0IGNvbnRleHQ7XG5cbiAgICBjb25zdCBjaGlsZE5vZGVzID0gZnJhbWUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHByZWNlZGVuY2UgPSB0aGlzLmdldFByZWNlZGVuY2UoZnJhbWUpO1xuXG4gICAgZnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UoY2hpbGROb2RlcywgcHJlY2VkZW5jZSk7XG5cbiAgICBjb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub25UZXJtaW5hbE5vZGVGcm9tRnJhbWUoZnJhbWUsIGNvbnRleHQpO1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3QgaXNvbGF0ZWQgPSBjb250ZXh0LmlzSXNvbGF0ZWQoKTtcblxuICAgIGlmIChpc29sYXRlZCkge1xuICAgICAgbm9uVGVybWluYWxOb2RlLm51bGxpZnlQcmVjZWRlbmNlKCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFsYXRhYmxlID0gbm9uVGVybWluYWxOb2RlLmlzUGFsYXRhYmxlKCksXG4gICAgICAgICAgY2hpbGROb2RlID0gbm9uVGVybWluYWxOb2RlOyAgLy8vXG5cbiAgICBmcmFtZSA9IHBhbGF0YWJsZSA/IC8vL1xuICAgICAgICAgICAgICBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSkgOlxuICAgICAgICAgICAgICAgIG51bGw7XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBzdGF0aWMgZnJvbURlZmluaXRpb24oZGVmaW5pdGlvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IHByZWNlZGVuY2UgPSBkZWZpbml0aW9uLmdldFByZWNlZGVuY2UoKSxcbiAgICAgICAgICBkZWZpbml0aW9uQ29udGV4dCA9IENvbnRleHQuZnJvbU5vdGhpbmcoRGVmaW5pdGlvbkNvbnRleHQsIHByZWNlZGVuY2UsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb25Db250ZXh0O1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vblRlcm1pbmFsTm9kZUZyb21GcmFtZShmcmFtZSwgY29udGV4dCkge1xuICBsZXQgbm9uVGVybWluYWxOb2RlO1xuXG4gIGNvbnN0IHJ1bGUgPSBjb250ZXh0LmdldFJ1bGUoKSxcbiAgICAgICAgb3BhY2l0eSA9IHJ1bGUuZ2V0T3BhY2l0eSgpLFxuICAgICAgICBydWxlTmFtZSA9IHJ1bGUuZ2V0TmFtZSgpLFxuICAgICAgICBjaGlsZE5vZGVzID0gZnJhbWUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBwcmVjZWRlbmNlID0gZnJhbWUuZ2V0UHJlY2VkZW5jZSgpLFxuICAgICAgICBOb25UZXJtaW5hbE5vZGUgPSBydWxlLk5vblRlcm1pbmFsTm9kZUZyb21SdWxlTmFtZShydWxlTmFtZSwgY29udGV4dCk7XG5cbiAgbm9uVGVybWluYWxOb2RlID0gTm9uVGVybWluYWxOb2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSk7XG5cbiAgbm9uVGVybWluYWxOb2RlID0gbm9uVGVybWluYWxOb2RlLnJld3JpdGUoY29udGV4dCk7ICAvLy9cblxuICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xufVxuIl0sIm5hbWVzIjpbIkRlZmluaXRpb25Db250ZXh0IiwiQ29udGV4dCIsImNvbnRleHQiLCJzdGF0ZSIsImNvbnRpbnVhdGlvbnMiLCJwcmVjZWRlbmNlIiwiZ2V0UHJlY2VkZW5jZSIsImZyYW1lIiwiZ2V0UnVsZSIsImdldENvbnRleHQiLCJydWxlQ29udGV4dCIsInJ1bGUiLCJpc0lzb2xhdGVkIiwiaXNvbGF0ZWQiLCJjb21wb3NlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJGcmFtZSIsImZyb21DaGlsZE5vZGVzQW5kUHJlY2VkZW5jZSIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUZyb21GcmFtZSIsIm51bGxpZnlQcmVjZWRlbmNlIiwicGFsYXRhYmxlIiwiaXNQYWxhdGFibGUiLCJjaGlsZE5vZGUiLCJmcm9tQ2hpbGROb2RlIiwiZnJvbURlZmluaXRpb24iLCJkZWZpbml0aW9uIiwiZGVmaW5pdGlvbkNvbnRleHQiLCJmcm9tTm90aGluZyIsIm9wYWNpdHkiLCJnZXRPcGFjaXR5IiwicnVsZU5hbWUiLCJnZXROYW1lIiwiTm9uVGVybWluYWxOb2RlIiwiTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlIiwicmV3cml0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUFxQkE7Ozs4REFISDtnRUFDRTs7Ozs7O0FBRUwsTUFBTUEsMEJBQTBCQyxnQkFBTztJQUNwRCxZQUFZQyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsYUFBYSxFQUFFQyxVQUFVLENBQUU7UUFDckQsS0FBSyxDQUFDSCxTQUFTQyxPQUFPQztRQUV0QixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsY0FBY0MsS0FBSyxFQUFFO1FBQ25CLElBQUlGO1FBRUpBLGFBQWFFLE1BQU1ELGFBQWE7UUFFaENELGFBQWFBLGNBQWMsSUFBSSxDQUFDQSxVQUFVLEVBQUUsR0FBRztRQUUvQyxPQUFPQTtJQUNUO0lBRUFHLFVBQVU7UUFDUixNQUFNTixVQUFVLElBQUksQ0FBQ08sVUFBVSxJQUN6QkMsY0FBY1IsU0FDZFMsT0FBT0QsWUFBWUYsT0FBTztRQUVoQyxPQUFPRztJQUNUO0lBRUFDLGFBQWE7UUFDWCxNQUFNQyxXQUFXO1FBRWpCLE9BQU9BO0lBQ1Q7SUFFQUMsUUFBUVAsS0FBSyxFQUFFO1FBQ2IsSUFBSUw7UUFFSixNQUFNYSxhQUFhUixNQUFNUyxhQUFhLElBQ2hDWCxhQUFhLElBQUksQ0FBQ0MsYUFBYSxDQUFDQztRQUV0Q0EsUUFBUVUsY0FBSyxDQUFDQywyQkFBMkIsQ0FBQ0gsWUFBWVY7UUFFdERILFVBQVUsSUFBSSxFQUFFLEdBQUc7UUFFbkIsTUFBTWlCLGtCQUFrQkMseUJBQXlCYixPQUFPTDtRQUV4REEsVUFBVSxJQUFJLENBQUNPLFVBQVU7UUFFekIsTUFBTUksV0FBV1gsUUFBUVUsVUFBVTtRQUVuQyxJQUFJQyxVQUFVO1lBQ1pNLGdCQUFnQkUsaUJBQWlCO1FBQ25DO1FBRUEsTUFBTUMsWUFBWUgsZ0JBQWdCSSxXQUFXLElBQ3ZDQyxZQUFZTCxpQkFBa0IsR0FBRztRQUV2Q1osUUFBUWUsWUFDRUwsY0FBSyxDQUFDUSxhQUFhLENBQUNELGFBQ2xCO1FBRVosT0FBT2pCO0lBQ1Q7SUFFQSxPQUFPbUIsZUFBZUMsVUFBVSxFQUFFekIsT0FBTyxFQUFFO1FBQ3pDLE1BQU1HLGFBQWFzQixXQUFXckIsYUFBYSxJQUNyQ3NCLG9CQUFvQjNCLGdCQUFPLENBQUM0QixXQUFXLENBQUM3QixtQkFBbUJLLFlBQVlIO1FBRTdFLE9BQU8wQjtJQUNUO0FBQ0Y7QUFFQSxTQUFTUix5QkFBeUJiLEtBQUssRUFBRUwsT0FBTztJQUM5QyxJQUFJaUI7SUFFSixNQUFNUixPQUFPVCxRQUFRTSxPQUFPLElBQ3RCc0IsVUFBVW5CLEtBQUtvQixVQUFVLElBQ3pCQyxXQUFXckIsS0FBS3NCLE9BQU8sSUFDdkJsQixhQUFhUixNQUFNUyxhQUFhLElBQ2hDWCxhQUFhRSxNQUFNRCxhQUFhLElBQ2hDNEIsa0JBQWtCdkIsS0FBS3dCLDJCQUEyQixDQUFDSCxVQUFVOUI7SUFFbkVpQixrQkFBa0JlLGdCQUFnQkUsMENBQTBDLENBQUNKLFVBQVVqQixZQUFZZSxTQUFTekI7SUFFNUdjLGtCQUFrQkEsZ0JBQWdCa0IsT0FBTyxDQUFDbkMsVUFBVyxHQUFHO0lBRXhELE9BQU9pQjtBQUNUIn0=
@@ -10,16 +10,18 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  const bnf = `S ::= T... "." ;
12
12
 
13
- A ::= . ;
13
+ A ::= T ( ) ;
14
14
 
15
15
  B ::= . ;
16
16
 
17
- T ::= . "(" (T) ")" (3)
17
+ C ::= . ;
18
18
 
19
- | A "u" B (2)
19
+ T ::= . "(" (A) ")" (3)
20
+
21
+ | B "u" C (2)
20
22
 
21
23
  ;
22
24
  `;
23
25
  const _default = bnf;
24
26
 
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Jhc2ljL2JuZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuY29uc3QgYm5mID0gYFMgOjo9IFQuLi4gXCIuXCIgO1xuICAgIFxuQSA6Oj0gLiA7XG5cbkIgOjo9IC4gO1xuXG5UIDo6PSAuIFwiKFwiIChUKSBcIilcIiAoMylcblxuICAgIHwgQSBcInVcIiBCICgyKSBcbiAgICBcbiAgICA7XG5gO1xuXG5leHBvcnQgZGVmYXVsdCBibmY7XG4iXSwibmFtZXMiOlsiYm5mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFlQTs7O2VBQUE7OztBQWJBLE1BQU1BLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFXYixDQUFDO01BRUQsV0FBZUEifQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Jhc2ljL2JuZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuY29uc3QgYm5mID0gYFMgOjo9IFQuLi4gXCIuXCIgO1xuICAgIFxuQSA6Oj0gVCAoICkgO1xuXG5CIDo6PSAuIDtcblxuQyA6Oj0gLiA7XG5cblQgOjo9IC4gXCIoXCIgKEEpIFwiKVwiICgzKVxuXG4gICAgfCBCIFwidVwiIEMgKDIpIFxuICAgIFxuICAgIDtcbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGJuZjtcbiJdLCJuYW1lcyI6WyJibmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlCQTs7O2VBQUE7OztBQWZBLE1BQU1BLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQWFiLENBQUM7TUFFRCxXQUFlQSJ9
@@ -57,6 +57,9 @@ class NonTerminalNode {
57
57
  setPrecedence(precedence) {
58
58
  this.precedence = precedence;
59
59
  }
60
+ nullifyPrecedence() {
61
+ this.precedence = null;
62
+ }
60
63
  isOpaque() {
61
64
  const opaque = this.opacity === opaqueSpecialSymbol;
62
65
  return opaque;
@@ -228,4 +231,4 @@ function cloneChildNodes(childNodes) {
228
231
  return childNodes;
229
232
  }
230
233
 
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL25vblRlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgbm9kZU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL25vZGVcIjtcbmltcG9ydCBOb25UZXJtaW5hbE5vZGVQYXJzZVRyZWUgZnJvbSBcIi4uL3BhcnNlVHJlZS9ub25UZXJtaW5hbE5vZGVcIjtcblxuY29uc3QgeyBmaXJzdCwgbWF0Y2ggfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBvcGFxdWU6IG9wYXF1ZVNwZWNpYWxTeW1ib2wgLCBzZW1pT3BhcXVlOiBzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHJ1bGVOYW1lLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKSB7XG4gICAgdGhpcy5ydWxlTmFtZSA9IHJ1bGVOYW1lO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgdGhpcy5jaGlsZE5vZGVzID0gY2hpbGROb2RlcztcbiAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRSdWxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTmFtZTtcbiAgfVxuXG4gIGdldFBhcmVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50Tm9kZTtcbiAgfVxuXG4gIGdldENoaWxkTm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGROb2RlcztcbiAgfVxuXG4gIGdldE9wYWNpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMub3BhY2l0eTtcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlY2VkZW5jZTtcbiAgfVxuXG4gIHNldFJ1bGVOYW1lKHJ1bGVOYW1lKSB7XG4gICAgdGhpcy5ydWxlTmFtZSA9IHJ1bGVOYW1lO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIHNldENoaWxkTm9kZXMoY2hpbGROb2Rlcykge1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAwLFxuICAgICAgICAgIGRlbGV0ZUNvdW50ID0gSW5maW5pdHksXG4gICAgICAgICAgYWRkZWRDaGlsZE5vZGVzID0gY2hpbGROb2RlczsgIC8vL1xuXG4gICAgdGhpcy5zcGxpY2VDaGlsZE5vZGVzKHN0YXJ0SW5kZXgsIGRlbGV0ZUNvdW50LCBhZGRlZENoaWxkTm9kZXMpO1xuICB9XG5cbiAgc2V0T3BhY2l0eShvcGFjaXR5KSB7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgfVxuXG4gIHNldFByZWNlZGVuY2UocHJlY2VkZW5jZSkge1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBpc09wYXF1ZSgpIHtcbiAgICBjb25zdCBvcGFxdWUgPSAodGhpcy5vcGFjaXR5ID09PSBvcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBvcGFxdWU7XG4gIH1cblxuICBpc1NlbWlPcGFxdWUoKSB7XG4gICAgY29uc3Qgc2VtaU9wYXF1ZSA9ICh0aGlzLm9wYWNpdHkgPT09IHNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBzZW1pT3BhcXVlO1xuICB9XG5cbiAgaXNUcmFuc3BhcmVudCgpIHtcbiAgICBjb25zdCBzZW1pT3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gbnVsbCk7XG5cbiAgICByZXR1cm4gc2VtaU9wYXF1ZTtcbiAgfVxuXG4gIGlzVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGlzTm9uVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHRydWU7XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xuICB9XG5cbiAgZ2V0RGVzY2VuZGFudE5vZGVzKGRlc2NlbmRhbnROb2Rlcykge1xuICAgIHJldHVybiBkZXNjZW5kYW50Tm9kZXM7XG4gIH1cblxuICBnZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBsZXQgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG5cbiAgICB0aGlzLmZvcndhcmRzU29tZUNoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucyk7XG5cbiAgICAgIGlmIChmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcbiAgfVxuXG4gIGdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgbGV0IGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG5cbiAgICB0aGlzLmJhY2t3YXJkc1NvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKTtcblxuICAgICAgaWYgKGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcbiAgfVxuXG4gIGdldFNpZ25pZmljYW50VG9rZW5zKHNpZ25pZmljYW50VG9rZW5zID0gW10pIHtcbiAgICB0aGlzLmNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgICBjaGlsZE5vZGUuZ2V0U2lnbmlmaWNhbnRUb2tlbnMoc2lnbmlmaWNhbnRUb2tlbnMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNpZ25pZmljYW50VG9rZW5zO1xuICB9XG5cbiAgZ2V0TXVsdGlwbGljaXR5KCkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXNMZW5ndGggPSB0aGlzLmNoaWxkTm9kZXMubGVuZ3RoLFxuICAgICAgICAgIG11bHRpcGxpY2l0eSA9IGNoaWxkTm9kZXNMZW5ndGg7ICAvLy9cblxuICAgIHJldHVybiBtdWx0aXBsaWNpdHk7XG4gIH1cblxuICBpc0VtcHR5KCkge1xuICAgIGNvbnN0IG11bHRpcGxpY2l0eSA9IHRoaXMuZ2V0TXVsdGlwbGljaXR5KCksXG4gICAgICAgICAgZW1wdHkgPSAobXVsdGlwbGljaXR5ID09PSAwKTtcblxuICAgIHJldHVybiBlbXB0eTtcbiAgfVxuXG4gIGlzU2luZ3VsYXIoKSB7XG4gICAgY29uc3QgbXVsdGlwbGljaXR5ID0gdGhpcy5nZXRNdWx0aXBsaWNpdHkoKSxcbiAgICAgICAgICBzaW5ndWxhciA9IChtdWx0aXBsaWNpdHkgPT09IDEpO1xuXG4gICAgcmV0dXJuIHNpbmd1bGFyO1xuICB9XG5cbiAgaXNMb3dlclByZWNlZGVuY2UocnVsZU5hbWUsIHByZWNlZGVuY2UpIHtcbiAgICBsZXQgbG93ZXJQcmVjZWRlbmNlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMucHJlY2VkZW5jZSA9PT0gbnVsbCkge1xuICAgICAgbG93ZXJQcmVjZWRlbmNlID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByZWNlZGVuY2UgPT09IEluZmluaXR5KSB7XG4gICAgICBjb25zdCBmaXJzdENoaWxkTm9kZSA9IGZpcnN0KHRoaXMuY2hpbGROb2Rlcyk7XG5cbiAgICAgIGxvd2VyUHJlY2VkZW5jZSA9IGZpcnN0Q2hpbGROb2RlLmlzTG93ZXJQcmVjZWRlbmNlKHJ1bGVOYW1lLCBwcmVjZWRlbmNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG93ZXJQcmVjZWRlbmNlID0gKCh0aGlzLnJ1bGVOYW1lID09PSBydWxlTmFtZSkgJiYgKHRoaXMucHJlY2VkZW5jZSA8IHByZWNlZGVuY2UpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbG93ZXJQcmVjZWRlbmNlO1xuICB9XG5cbiAgaXNVbnByZWNlZGVudGVkKCkge1xuICAgIGxldCB1bnByZWNlZGVudGVkID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5wcmVjZWRlbmNlICE9PSBudWxsKSB7XG4gICAgICB1bnByZWNlZGVudGVkID0gdGhpcy5jaGlsZE5vZGVzLnNvbWUoKGNoaWxkTm9kZSkgPT4geyAgLy8vXG4gICAgICAgIGNvbnN0IGNoaWxkTm9kZUxvd2VyUHJlY2VkZW5jZSA9IGNoaWxkTm9kZS5pc0xvd2VyUHJlY2VkZW5jZSh0aGlzLnJ1bGVOYW1lLCB0aGlzLnByZWNlZGVuY2UpO1xuXG4gICAgICAgIGlmIChjaGlsZE5vZGVMb3dlclByZWNlZGVuY2UpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVucHJlY2VkZW50ZWQ7XG4gIH1cblxuICBpc1VucGFsYXRhYmxlKCkge1xuICAgIGxldCB1bnBhbGF0YWJsZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZW1wdHkgPSB0aGlzLmlzRW1wdHkoKSxcbiAgICAgICAgICB1bnByZWNlZGVudGVkID0gdGhpcy5pc1VucHJlY2VkZW50ZWQoKTtcblxuICAgIGlmIChlbXB0eSB8fCB1bnByZWNlZGVudGVkKSB7XG4gICAgICB1bnBhbGF0YWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVucGFsYXRhYmxlO1xuICB9XG5cbiAgaXNQYWxhdGFibGUoKSB7XG4gICAgY29uc3QgdW5wYWxhdGFibGUgPSB0aGlzLmlzVW5wYWxhdGFibGUoKSxcbiAgICAgICAgICBwYWxhdGFibGUgPSAhdW5wYWxhdGFibGU7XG5cbiAgICByZXR1cm4gcGFsYXRhYmxlO1xuICB9XG5cbiAgYXNQYXJzZVRyZWUodG9rZW5zKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSA9IE5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZS5mcm9tTm9uVGVybWluYWxOb2RlQW5kVG9rZW5zKG5vblRlcm1pbmFsTm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBwYXJzZVRyZWUgPSBub25UZXJtaW5hbE5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBtYXRjaChub2RlLCBkZXB0aCA9IEluZmluaXR5LCBleGFjdGx5ID0gZmFsc2UpIHtcbiAgICBsZXQgbWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgICAgIGlmICh0aGlzLnJ1bGVOYW1lID09PSBub25UZXJtaW5hbE5vZGVSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVPcGFjaXR5ID0gbm9uVGVybWluYWxOb2RlLmdldE9wYWNpdHkoKTtcblxuICAgICAgICBpZiAodGhpcy5vcGFjaXR5ID09PSBub25UZXJtaW5hbE5vZGVPcGFjaXR5KSB7XG4gICAgICAgICAgY29uc3QgcHJlY2VkZW5jZSA9IHRoaXMuZ2V0UHJlY2VkZW5jZSgpLFxuICAgICAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVByZWNlZGVuY2UgPSBub25UZXJtaW5hbE5vZGUuZ2V0UHJlY2VkZW5jZSgpO1xuXG4gICAgICAgICAgaWYgKHByZWNlZGVuY2UgPT09IG5vblRlcm1pbmFsTm9kZVByZWNlZGVuY2UpIHtcbiAgICAgICAgICAgIGRlcHRoLS07XG5cbiAgICAgICAgICAgIGlmIChkZXB0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBtYXRjaGVzID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgICAgICAgICAgIG1hdGNoZXMgPSBtYXRjaCh0aGlzLmNoaWxkTm9kZXMsIG5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMsIChjaGlsZE5vZGUsIG5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkTm9kZU1hdGNoZXNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGUgPSBjaGlsZE5vZGUubWF0Y2gobm9uVGVybWluYWxOb2RlQ2hpbGROb2RlLCBkZXB0aCwgZXhhY3RseSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGROb2RlTWF0Y2hlc05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIHJld3JpdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHJld3JpdHRlbk5vblRlcm1pbmFsTm9kZSA9IHRoaXM7ICAvLy9cblxuICAgIHJldHVybiByZXdyaXR0ZW5Ob25UZXJtaW5hbE5vZGU7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuZm9yRWFjaENoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgICBjaGlsZE5vZGUuZGVzdHJveSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5wYXJlbnROb2RlID0gbnVsbDtcblxuICAgIHRoaXMuY2hpbGROb2RlcyA9IG51bGw7XG4gIH1cblxuICBjbG9uZSguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBDbGFzcyA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgcnVsZU5hbWUgPSB0aGlzLnJ1bGVOYW1lLFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSBjbG9uZUNoaWxkTm9kZXModGhpcy5jaGlsZE5vZGVzKSxcbiAgICAgICAgICBvcGFjaXR5ID0gdGhpcy5vcGFjaXR5LFxuICAgICAgICAgIHByZWNlZGVuY2UgPSB0aGlzLnByZWNlZGVuY2UsXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlID0gbmV3IENsYXNzKHJ1bGVOYW1lLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgbm9uVGVybWluYWxOb2RlLnNldENoaWxkTm9kZXNQYXJlbnROb2RlKCk7XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShDbGFzcywgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIHByZWNlZGVuY2UsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChwcmVjZWRlbmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHByZWNlZGVuY2UgPSBvcGFjaXR5OyAvLy9cblxuICAgICAgb3BhY2l0eSA9IGNoaWxkTm9kZXM7IC8vL1xuXG4gICAgICBjaGlsZE5vZGVzID0gcnVsZU5hbWU7ICAvLy9cblxuICAgICAgcnVsZU5hbWUgPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gTm9uVGVybWluYWxOb2RlOyAgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlID0gbmV3IENsYXNzKHJ1bGVOYW1lLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgbm9uVGVybWluYWxOb2RlLnNldENoaWxkTm9kZXNQYXJlbnROb2RlKCk7XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oTm9uVGVybWluYWxOb2RlLnByb3RvdHlwZSwgbm9kZU1peGlucyk7XG5cbmZ1bmN0aW9uIGNsb25lQ2hpbGROb2RlcyhjaGlsZE5vZGVzKSB7XG4gIGNoaWxkTm9kZXMgPSBjaGlsZE5vZGVzLm1hcCgoY2hpbGROb2RlKSA9PiB7ICAvLy9cbiAgICBjaGlsZE5vZGUgPSBjaGlsZE5vZGUuY2xvbmUoKTsgIC8vL1xuXG4gICAgcmV0dXJuIGNoaWxkTm9kZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNoaWxkTm9kZXM7XG59XG4iXSwibmFtZXMiOlsiTm9uVGVybWluYWxOb2RlIiwiZmlyc3QiLCJtYXRjaCIsImFycmF5VXRpbGl0aWVzIiwib3BhcXVlIiwib3BhcXVlU3BlY2lhbFN5bWJvbCIsInNlbWlPcGFxdWUiLCJzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCIsInNwZWNpYWxTeW1ib2xzIiwicnVsZU5hbWUiLCJwYXJlbnROb2RlIiwiY2hpbGROb2RlcyIsIm9wYWNpdHkiLCJwcmVjZWRlbmNlIiwiZ2V0UnVsZU5hbWUiLCJnZXRQYXJlbnROb2RlIiwiZ2V0Q2hpbGROb2RlcyIsImdldE9wYWNpdHkiLCJnZXRQcmVjZWRlbmNlIiwic2V0UnVsZU5hbWUiLCJzZXRQYXJlbnROb2RlIiwic2V0Q2hpbGROb2RlcyIsInN0YXJ0SW5kZXgiLCJkZWxldGVDb3VudCIsIkluZmluaXR5IiwiYWRkZWRDaGlsZE5vZGVzIiwic3BsaWNlQ2hpbGROb2RlcyIsInNldE9wYWNpdHkiLCJzZXRQcmVjZWRlbmNlIiwiaXNPcGFxdWUiLCJpc1NlbWlPcGFxdWUiLCJpc1RyYW5zcGFyZW50IiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImdldERlc2NlbmRhbnROb2RlcyIsImRlc2NlbmRhbnROb2RlcyIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwidG9rZW5zIiwiZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJmb3J3YXJkc1NvbWVDaGlsZE5vZGUiLCJjaGlsZE5vZGUiLCJub2RlIiwiZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImxhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJiYWNrd2FyZHNTb21lQ2hpbGROb2RlIiwiZ2V0U2lnbmlmaWNhbnRUb2tlbnMiLCJzaWduaWZpY2FudFRva2VucyIsImZvckVhY2giLCJnZXRNdWx0aXBsaWNpdHkiLCJjaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwibXVsdGlwbGljaXR5IiwiaXNFbXB0eSIsImVtcHR5IiwiaXNTaW5ndWxhciIsInNpbmd1bGFyIiwiaXNMb3dlclByZWNlZGVuY2UiLCJsb3dlclByZWNlZGVuY2UiLCJmaXJzdENoaWxkTm9kZSIsImlzVW5wcmVjZWRlbnRlZCIsInVucHJlY2VkZW50ZWQiLCJzb21lIiwiY2hpbGROb2RlTG93ZXJQcmVjZWRlbmNlIiwiaXNVbnBhbGF0YWJsZSIsInVucGFsYXRhYmxlIiwiaXNQYWxhdGFibGUiLCJwYWxhdGFibGUiLCJhc1BhcnNlVHJlZSIsIm5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsIk5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsImZyb21Ob25UZXJtaW5hbE5vZGVBbmRUb2tlbnMiLCJwYXJzZVRyZWUiLCJkZXB0aCIsImV4YWN0bHkiLCJtYXRjaGVzIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlT3BhY2l0eSIsIm5vblRlcm1pbmFsTm9kZVByZWNlZGVuY2UiLCJub25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwibm9uVGVybWluYWxOb2RlQ2hpbGROb2RlIiwiY2hpbGROb2RlTWF0Y2hlc05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSIsInJld3JpdGUiLCJjb250ZXh0IiwicmV3cml0dGVuTm9uVGVybWluYWxOb2RlIiwiZGVzdHJveSIsImZvckVhY2hDaGlsZE5vZGUiLCJjbG9uZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsIkNsYXNzIiwiY2xvbmVDaGlsZE5vZGVzIiwic2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJub2RlTWl4aW5zIiwibWFwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXFCQTs7OzJCQVRVOzZCQUNBOzZEQUVSO3dFQUNjOzs7Ozs7QUFFckMsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRSxHQUFHQyx5QkFBYyxFQUNqQyxFQUFFQyxRQUFRQyxtQkFBbUIsRUFBR0MsWUFBWUMsdUJBQXVCLEVBQUUsR0FBR0MsMkJBQWM7QUFFN0UsTUFBTVI7SUFDbkIsWUFB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
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL25vblRlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgbm9kZU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL25vZGVcIjtcbmltcG9ydCBOb25UZXJtaW5hbE5vZGVQYXJzZVRyZWUgZnJvbSBcIi4uL3BhcnNlVHJlZS9ub25UZXJtaW5hbE5vZGVcIjtcblxuY29uc3QgeyBmaXJzdCwgbWF0Y2ggfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBvcGFxdWU6IG9wYXF1ZVNwZWNpYWxTeW1ib2wgLCBzZW1pT3BhcXVlOiBzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHJ1bGVOYW1lLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKSB7XG4gICAgdGhpcy5ydWxlTmFtZSA9IHJ1bGVOYW1lO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgdGhpcy5jaGlsZE5vZGVzID0gY2hpbGROb2RlcztcbiAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRSdWxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTmFtZTtcbiAgfVxuXG4gIGdldFBhcmVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50Tm9kZTtcbiAgfVxuXG4gIGdldENoaWxkTm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGROb2RlcztcbiAgfVxuXG4gIGdldE9wYWNpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMub3BhY2l0eTtcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlY2VkZW5jZTtcbiAgfVxuXG4gIHNldFJ1bGVOYW1lKHJ1bGVOYW1lKSB7XG4gICAgdGhpcy5ydWxlTmFtZSA9IHJ1bGVOYW1lO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIHNldENoaWxkTm9kZXMoY2hpbGROb2Rlcykge1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAwLFxuICAgICAgICAgIGRlbGV0ZUNvdW50ID0gSW5maW5pdHksXG4gICAgICAgICAgYWRkZWRDaGlsZE5vZGVzID0gY2hpbGROb2RlczsgIC8vL1xuXG4gICAgdGhpcy5zcGxpY2VDaGlsZE5vZGVzKHN0YXJ0SW5kZXgsIGRlbGV0ZUNvdW50LCBhZGRlZENoaWxkTm9kZXMpO1xuICB9XG5cbiAgc2V0T3BhY2l0eShvcGFjaXR5KSB7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgfVxuXG4gIHNldFByZWNlZGVuY2UocHJlY2VkZW5jZSkge1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBudWxsaWZ5UHJlY2VkZW5jZSgpIHtcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBudWxsO1xuICB9XG5cbiAgaXNPcGFxdWUoKSB7XG4gICAgY29uc3Qgb3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gb3BhcXVlU3BlY2lhbFN5bWJvbCk7XG5cbiAgICByZXR1cm4gb3BhcXVlO1xuICB9XG5cbiAgaXNTZW1pT3BhcXVlKCkge1xuICAgIGNvbnN0IHNlbWlPcGFxdWUgPSAodGhpcy5vcGFjaXR5ID09PSBzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCk7XG5cbiAgICByZXR1cm4gc2VtaU9wYXF1ZTtcbiAgfVxuXG4gIGlzVHJhbnNwYXJlbnQoKSB7XG4gICAgY29uc3Qgc2VtaU9wYXF1ZSA9ICh0aGlzLm9wYWNpdHkgPT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHNlbWlPcGFxdWU7XG4gIH1cblxuICBpc1Rlcm1pbmFsTm9kZSgpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cblxuICBpc05vblRlcm1pbmFsTm9kZSgpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSB0cnVlO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGdldERlc2NlbmRhbnROb2RlcyhkZXNjZW5kYW50Tm9kZXMpIHtcbiAgICByZXR1cm4gZGVzY2VuZGFudE5vZGVzO1xuICB9XG5cbiAgZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgbGV0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuXG4gICAgdGhpcy5mb3J3YXJkc1NvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICAgIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpO1xuXG4gICAgICBpZiAoZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGxldCBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuXG4gICAgdGhpcy5iYWNrd2FyZHNTb21lQ2hpbGROb2RlKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucyk7XG5cbiAgICAgIGlmIChsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VucyhzaWduaWZpY2FudFRva2VucyA9IFtdKSB7XG4gICAgdGhpcy5jaGlsZE5vZGVzLmZvckVhY2goKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY2hpbGROb2RlLmdldFNpZ25pZmljYW50VG9rZW5zKHNpZ25pZmljYW50VG9rZW5zKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VucztcbiAgfVxuXG4gIGdldE11bHRpcGxpY2l0eSgpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzTGVuZ3RoID0gdGhpcy5jaGlsZE5vZGVzLmxlbmd0aCxcbiAgICAgICAgICBtdWx0aXBsaWNpdHkgPSBjaGlsZE5vZGVzTGVuZ3RoOyAgLy8vXG5cbiAgICByZXR1cm4gbXVsdGlwbGljaXR5O1xuICB9XG5cbiAgaXNFbXB0eSgpIHtcbiAgICBjb25zdCBtdWx0aXBsaWNpdHkgPSB0aGlzLmdldE11bHRpcGxpY2l0eSgpLFxuICAgICAgICAgIGVtcHR5ID0gKG11bHRpcGxpY2l0eSA9PT0gMCk7XG5cbiAgICByZXR1cm4gZW1wdHk7XG4gIH1cblxuICBpc1Npbmd1bGFyKCkge1xuICAgIGNvbnN0IG11bHRpcGxpY2l0eSA9IHRoaXMuZ2V0TXVsdGlwbGljaXR5KCksXG4gICAgICAgICAgc2luZ3VsYXIgPSAobXVsdGlwbGljaXR5ID09PSAxKTtcblxuICAgIHJldHVybiBzaW5ndWxhcjtcbiAgfVxuXG4gIGlzTG93ZXJQcmVjZWRlbmNlKHJ1bGVOYW1lLCBwcmVjZWRlbmNlKSB7XG4gICAgbGV0IGxvd2VyUHJlY2VkZW5jZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnByZWNlZGVuY2UgPT09IG51bGwpIHtcbiAgICAgIGxvd2VyUHJlY2VkZW5jZSA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmVjZWRlbmNlID09PSBJbmZpbml0eSkge1xuICAgICAgY29uc3QgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdCh0aGlzLmNoaWxkTm9kZXMpO1xuXG4gICAgICBsb3dlclByZWNlZGVuY2UgPSBmaXJzdENoaWxkTm9kZS5pc0xvd2VyUHJlY2VkZW5jZShydWxlTmFtZSwgcHJlY2VkZW5jZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvd2VyUHJlY2VkZW5jZSA9ICgodGhpcy5ydWxlTmFtZSA9PT0gcnVsZU5hbWUpICYmICh0aGlzLnByZWNlZGVuY2UgPCBwcmVjZWRlbmNlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvd2VyUHJlY2VkZW5jZTtcbiAgfVxuXG4gIGlzVW5wcmVjZWRlbnRlZCgpIHtcbiAgICBsZXQgdW5wcmVjZWRlbnRlZCA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMucHJlY2VkZW5jZSAhPT0gbnVsbCkge1xuICAgICAgdW5wcmVjZWRlbnRlZCA9IHRoaXMuY2hpbGROb2Rlcy5zb21lKChjaGlsZE5vZGUpID0+IHsgIC8vL1xuICAgICAgICBjb25zdCBjaGlsZE5vZGVMb3dlclByZWNlZGVuY2UgPSBjaGlsZE5vZGUuaXNMb3dlclByZWNlZGVuY2UodGhpcy5ydWxlTmFtZSwgdGhpcy5wcmVjZWRlbmNlKTtcblxuICAgICAgICBpZiAoY2hpbGROb2RlTG93ZXJQcmVjZWRlbmNlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1bnByZWNlZGVudGVkO1xuICB9XG5cbiAgaXNVbnBhbGF0YWJsZSgpIHtcbiAgICBsZXQgdW5wYWxhdGFibGUgPSBmYWxzZTtcblxuICAgIGNvbnN0IGVtcHR5ID0gdGhpcy5pc0VtcHR5KCksXG4gICAgICAgICAgdW5wcmVjZWRlbnRlZCA9IHRoaXMuaXNVbnByZWNlZGVudGVkKCk7XG5cbiAgICBpZiAoZW1wdHkgfHwgdW5wcmVjZWRlbnRlZCkge1xuICAgICAgdW5wYWxhdGFibGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB1bnBhbGF0YWJsZTtcbiAgfVxuXG4gIGlzUGFsYXRhYmxlKCkge1xuICAgIGNvbnN0IHVucGFsYXRhYmxlID0gdGhpcy5pc1VucGFsYXRhYmxlKCksXG4gICAgICAgICAgcGFsYXRhYmxlID0gIXVucGFsYXRhYmxlO1xuXG4gICAgcmV0dXJuIHBhbGF0YWJsZTtcbiAgfVxuXG4gIGFzUGFyc2VUcmVlKHRva2Vucykge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVQYXJzZVRyZWUgPSBOb25UZXJtaW5hbE5vZGVQYXJzZVRyZWUuZnJvbU5vblRlcm1pbmFsTm9kZUFuZFRva2Vucyhub25UZXJtaW5hbE5vZGUsIHRva2VucyksXG4gICAgICAgICAgcGFyc2VUcmVlID0gbm9uVGVybWluYWxOb2RlUGFyc2VUcmVlOyAgLy8vXG5cbiAgICByZXR1cm4gcGFyc2VUcmVlO1xuICB9XG5cbiAgbWF0Y2gobm9kZSwgZGVwdGggPSBJbmZpbml0eSwgZXhhY3RseSA9IGZhbHNlKSB7XG4gICAgbGV0IG1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGVOb25UZXJtaW5hbE5vZGUgPSBub2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAobm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gICAgICBpZiAodGhpcy5ydWxlTmFtZSA9PT0gbm9uVGVybWluYWxOb2RlUnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlT3BhY2l0eSA9IG5vblRlcm1pbmFsTm9kZS5nZXRPcGFjaXR5KCk7XG5cbiAgICAgICAgaWYgKHRoaXMub3BhY2l0eSA9PT0gbm9uVGVybWluYWxOb2RlT3BhY2l0eSkge1xuICAgICAgICAgIGNvbnN0IHByZWNlZGVuY2UgPSB0aGlzLmdldFByZWNlZGVuY2UoKSxcbiAgICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGVQcmVjZWRlbmNlID0gbm9uVGVybWluYWxOb2RlLmdldFByZWNlZGVuY2UoKTtcblxuICAgICAgICAgIGlmIChwcmVjZWRlbmNlID09PSBub25UZXJtaW5hbE5vZGVQcmVjZWRlbmNlKSB7XG4gICAgICAgICAgICBkZXB0aC0tO1xuXG4gICAgICAgICAgICBpZiAoZGVwdGggPT09IDApIHtcbiAgICAgICAgICAgICAgbWF0Y2hlcyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKTtcblxuICAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2godGhpcy5jaGlsZE5vZGVzLCBub25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAoY2hpbGROb2RlLCBub25UZXJtaW5hbE5vZGVDaGlsZE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZE5vZGVNYXRjaGVzTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlID0gY2hpbGROb2RlLm1hdGNoKG5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSwgZGVwdGgsIGV4YWN0bHkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkTm9kZU1hdGNoZXNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICByZXdyaXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCByZXdyaXR0ZW5Ob25UZXJtaW5hbE5vZGUgPSB0aGlzOyAgLy8vXG5cbiAgICByZXR1cm4gcmV3cml0dGVuTm9uVGVybWluYWxOb2RlO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmZvckVhY2hDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY2hpbGROb2RlLmRlc3Ryb3koKTtcbiAgICB9KTtcblxuICAgIHRoaXMucGFyZW50Tm9kZSA9IG51bGw7XG5cbiAgICB0aGlzLmNoaWxkTm9kZXMgPSBudWxsO1xuICB9XG5cbiAgY2xvbmUoLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgQ2xhc3MgPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5ydWxlTmFtZSxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gY2xvbmVDaGlsZE5vZGVzKHRoaXMuY2hpbGROb2RlcyksXG4gICAgICAgICAgb3BhY2l0eSA9IHRoaXMub3BhY2l0eSxcbiAgICAgICAgICBwcmVjZWRlbmNlID0gdGhpcy5wcmVjZWRlbmNlLFxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IG5ldyBDbGFzcyhydWxlTmFtZSwgcGFyZW50Tm9kZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIG5vblRlcm1pbmFsTm9kZS5zZXRDaGlsZE5vZGVzUGFyZW50Tm9kZSgpO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UoQ2xhc3MsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAocHJlY2VkZW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBwcmVjZWRlbmNlID0gb3BhY2l0eTsgLy8vXG5cbiAgICAgIG9wYWNpdHkgPSBjaGlsZE5vZGVzOyAvLy9cblxuICAgICAgY2hpbGROb2RlcyA9IHJ1bGVOYW1lOyAgLy8vXG5cbiAgICAgIHJ1bGVOYW1lID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IE5vblRlcm1pbmFsTm9kZTsgIC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IG5ldyBDbGFzcyhydWxlTmFtZSwgcGFyZW50Tm9kZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIG5vblRlcm1pbmFsTm9kZS5zZXRDaGlsZE5vZGVzUGFyZW50Tm9kZSgpO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKE5vblRlcm1pbmFsTm9kZS5wcm90b3R5cGUsIG5vZGVNaXhpbnMpO1xuXG5mdW5jdGlvbiBjbG9uZUNoaWxkTm9kZXMoY2hpbGROb2Rlcykge1xuICBjaGlsZE5vZGVzID0gY2hpbGROb2Rlcy5tYXAoKGNoaWxkTm9kZSkgPT4geyAgLy8vXG4gICAgY2hpbGROb2RlID0gY2hpbGROb2RlLmNsb25lKCk7ICAvLy9cblxuICAgIHJldHVybiBjaGlsZE5vZGU7XG4gIH0pO1xuXG4gIHJldHVybiBjaGlsZE5vZGVzO1xufVxuIl0sIm5hbWVzIjpbIk5vblRlcm1pbmFsTm9kZSIsImZpcnN0IiwibWF0Y2giLCJhcnJheVV0aWxpdGllcyIsIm9wYXF1ZSIsIm9wYXF1ZVNwZWNpYWxTeW1ib2wiLCJzZW1pT3BhcXVlIiwic2VtaU9wYXF1ZVNwZWNpYWxTeW1ib2wiLCJzcGVjaWFsU3ltYm9scyIsInJ1bGVOYW1lIiwicGFyZW50Tm9kZSIsImNoaWxkTm9kZXMiLCJvcGFjaXR5IiwicHJlY2VkZW5jZSIsImdldFJ1bGVOYW1lIiwiZ2V0UGFyZW50Tm9kZSIsImdldENoaWxkTm9kZXMiLCJnZXRPcGFjaXR5IiwiZ2V0UHJlY2VkZW5jZSIsInNldFJ1bGVOYW1lIiwic2V0UGFyZW50Tm9kZSIsInNldENoaWxkTm9kZXMiLCJzdGFydEluZGV4IiwiZGVsZXRlQ291bnQiLCJJbmZpbml0eSIsImFkZGVkQ2hpbGROb2RlcyIsInNwbGljZUNoaWxkTm9kZXMiLCJzZXRPcGFjaXR5Iiwic2V0UHJlY2VkZW5jZSIsIm51bGxpZnlQcmVjZWRlbmNlIiwiaXNPcGFxdWUiLCJpc1NlbWlPcGFxdWUiLCJpc1RyYW5zcGFyZW50IiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImdldERlc2NlbmRhbnROb2RlcyIsImRlc2NlbmRhbnROb2RlcyIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwidG9rZW5zIiwiZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJmb3J3YXJkc1NvbWVDaGlsZE5vZGUiLCJjaGlsZE5vZGUiLCJub2RlIiwiZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImxhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJiYWNrd2FyZHNTb21lQ2hpbGROb2RlIiwiZ2V0U2lnbmlmaWNhbnRUb2tlbnMiLCJzaWduaWZpY2FudFRva2VucyIsImZvckVhY2giLCJnZXRNdWx0aXBsaWNpdHkiLCJjaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwibXVsdGlwbGljaXR5IiwiaXNFbXB0eSIsImVtcHR5IiwiaXNTaW5ndWxhciIsInNpbmd1bGFyIiwiaXNMb3dlclByZWNlZGVuY2UiLCJsb3dlclByZWNlZGVuY2UiLCJmaXJzdENoaWxkTm9kZSIsImlzVW5wcmVjZWRlbnRlZCIsInVucHJlY2VkZW50ZWQiLCJzb21lIiwiY2hpbGROb2RlTG93ZXJQcmVjZWRlbmNlIiwiaXNVbnBhbGF0YWJsZSIsInVucGFsYXRhYmxlIiwiaXNQYWxhdGFibGUiLCJwYWxhdGFibGUiLCJhc1BhcnNlVHJlZSIsIm5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsIk5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsImZyb21Ob25UZXJtaW5hbE5vZGVBbmRUb2tlbnMiLCJwYXJzZVRyZWUiLCJkZXB0aCIsImV4YWN0bHkiLCJtYXRjaGVzIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlT3BhY2l0eSIsIm5vblRlcm1pbmFsTm9kZVByZWNlZGVuY2UiLCJub25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwibm9uVGVybWluYWxOb2RlQ2hpbGROb2RlIiwiY2hpbGROb2RlTWF0Y2hlc05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSIsInJld3JpdGUiLCJjb250ZXh0IiwicmV3cml0dGVuTm9uVGVybWluYWxOb2RlIiwiZGVzdHJveSIsImZvckVhY2hDaGlsZE5vZGUiLCJjbG9uZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsIkNsYXNzIiwiY2xvbmVDaGlsZE5vZGVzIiwic2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJub2RlTWl4aW5zIiwibWFwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXFCQTs7OzJCQVRVOzZCQUNBOzZEQUVSO3dFQUNjOzs7Ozs7QUFFckMsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRSxHQUFHQyx5QkFBYyxF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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-parsers",
3
3
  "author": "James Smith",
4
- "version": "23.2.21",
4
+ "version": "23.2.23",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-parsers",
7
7
  "description": "Occam's parsers.",
@@ -13,16 +13,9 @@ export default class DefinitionContext extends Context {
13
13
  getPrecedence(frame) {
14
14
  let precedence;
15
15
 
16
- const context = this.getContext(),
17
- isolated = context.isIsolated();
18
-
19
- if (isolated) {
20
- precedence = null;
21
- } else {
22
- precedence = frame.getPrecedence();
16
+ precedence = frame.getPrecedence();
23
17
 
24
- precedence = precedence || this.precedence; ///
25
- }
18
+ precedence = precedence || this.precedence; ///
26
19
 
27
20
  return precedence;
28
21
  }
@@ -42,14 +35,26 @@ export default class DefinitionContext extends Context {
42
35
  }
43
36
 
44
37
  compose(frame) {
38
+ let context;
39
+
45
40
  const childNodes = frame.getChildNodes(),
46
41
  precedence = this.getPrecedence(frame);
47
42
 
48
43
  frame = Frame.fromChildNodesAndPrecedence(childNodes, precedence);
49
44
 
50
- const context = this, ///
51
- nonTerminalNode = nonTerminalNodeFromFrame(frame, context),
52
- palatable = nonTerminalNode.isPalatable(),
45
+ context = this; ///
46
+
47
+ const nonTerminalNode = nonTerminalNodeFromFrame(frame, context);
48
+
49
+ context = this.getContext();
50
+
51
+ const isolated = context.isIsolated();
52
+
53
+ if (isolated) {
54
+ nonTerminalNode.nullifyPrecedence();
55
+ }
56
+
57
+ const palatable = nonTerminalNode.isPalatable(),
53
58
  childNode = nonTerminalNode; ///
54
59
 
55
60
  frame = palatable ? ///
@@ -2,13 +2,15 @@
2
2
 
3
3
  const bnf = `S ::= T... "." ;
4
4
 
5
- A ::= . ;
5
+ A ::= T ( ) ;
6
6
 
7
7
  B ::= . ;
8
8
 
9
- T ::= . "(" (T) ")" (3)
9
+ C ::= . ;
10
10
 
11
- | A "u" B (2)
11
+ T ::= . "(" (A) ")" (3)
12
+
13
+ | B "u" C (2)
12
14
 
13
15
  ;
14
16
  `;
@@ -62,6 +62,10 @@ export default class NonTerminalNode {
62
62
  this.precedence = precedence;
63
63
  }
64
64
 
65
+ nullifyPrecedence() {
66
+ this.precedence = null;
67
+ }
68
+
65
69
  isOpaque() {
66
70
  const opaque = (this.opacity === opaqueSpecialSymbol);
67
71