occam-custom-grammars 5.0.310 → 5.0.312

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.
@@ -85,6 +85,10 @@ var CombinedCustomGrammar = /*#__PURE__*/ function() {
85
85
  {
86
86
  key: "fromCustomGrammars",
87
87
  value: function fromCustomGrammars(customGrammars) {
88
+ var defaultCustomGrammar = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultCustomGrammar;
89
+ customGrammars = [
90
+ defaultCustomGrammar
91
+ ].concat(_toConsumableArray(customGrammars)); ///
88
92
  var rules = rulesFromCustomGrammarsAndDefaultBNF(customGrammars), entries = entriesFromCustomGrammars(customGrammars), combinedCustomGrammar = new CombinedCustomGrammar(rules, entries);
89
93
  return combinedCustomGrammar;
90
94
  }
@@ -92,10 +96,25 @@ var CombinedCustomGrammar = /*#__PURE__*/ function() {
92
96
  ]);
93
97
  return CombinedCustomGrammar;
94
98
  }();
99
+ function rulesFromCustomGrammarsAndDefaultBNF(customGrammars) {
100
+ var bnfs = customGrammars.map(function(customGrammar) {
101
+ var bnf = customGrammar.getBNF();
102
+ return bnf;
103
+ }), bnf = bnfs.join(_constants.EMPTY_STRING), rules = rulesFromBNF(bnf);
104
+ combineRules(rules);
105
+ return rules;
106
+ }
107
+ function entriesFromCustomGrammars(customGrammars) {
108
+ var patternNames = [
109
+ _patternNames.TYPE_PATTERN_NAME,
110
+ _patternNames.OPERATOR_PATTERN_NAME
111
+ ], entries = patternNames.map(function(patternName) {
112
+ var entry = entryFromCustomGrammars(customGrammars, patternName);
113
+ return entry;
114
+ });
115
+ return entries;
116
+ }
95
117
  function entryFromCustomGrammars(customGrammars, patternName) {
96
- customGrammars = [
97
- _defaultCustomGrammar.default
98
- ].concat(_toConsumableArray(customGrammars)); ///
99
118
  var patterns = customGrammars.reduce(function(patterns, customGrammar) {
100
119
  var pattern = customGrammar.getPattern(patternName);
101
120
  if (pattern) {
@@ -133,26 +152,5 @@ function combineRules(rules) {
133
152
  length = rules.length;
134
153
  }
135
154
  }
136
- function entriesFromCustomGrammars(customGrammars) {
137
- var patternNames = [
138
- _patternNames.TYPE_PATTERN_NAME,
139
- _patternNames.OPERATOR_PATTERN_NAME
140
- ], entries = patternNames.map(function(patternName) {
141
- var entry = entryFromCustomGrammars(customGrammars, patternName);
142
- return entry;
143
- });
144
- return entries;
145
- }
146
- function rulesFromCustomGrammarsAndDefaultBNF(customGrammars) {
147
- customGrammars = [
148
- _defaultCustomGrammar.default
149
- ].concat(_toConsumableArray(customGrammars)); ///
150
- var bnfs = customGrammars.map(function(customGrammar) {
151
- var bnf = customGrammar.getBNF();
152
- return bnf;
153
- }), bnf = bnfs.join(_constants.EMPTY_STRING), rules = rulesFromBNF(bnf);
154
- combineRules(rules);
155
- return rules;
156
- }
157
155
 
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5lZEN1c3RvbUdyYW1tYXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHBhcnNlclV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5cbmltcG9ydCBkZWZhdWx0Q3VzdG9tR3JhbW1hciBmcm9tIFwiLi9kZWZhdWx0Q3VzdG9tR3JhbW1hclwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFZFUlRJQ0FMX0JBUiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgVFlQRV9QQVRURVJOX05BTUUsIE9QRVJBVE9SX1BBVFRFUk5fTkFNRSB9IGZyb20gXCIuL3BhdHRlcm5OYW1lc1wiO1xuXG5jb25zdCB7IHJ1bGVzRnJvbUJORiB9ID0gcGFyc2VyVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21iaW5lZEN1c3RvbUdyYW1tYXIge1xuICBjb25zdHJ1Y3RvcihydWxlcywgZW50cmllcykge1xuICAgIHRoaXMucnVsZXMgPSBydWxlcztcbiAgICB0aGlzLmVudHJpZXMgPSBlbnRyaWVzO1xuICB9XG4gIFxuICBnZXRSdWxlcygpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlcztcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpIHtcbiAgICBjb25zdCBydWxlcyA9IHJ1bGVzRnJvbUN1c3RvbUdyYW1tYXJzQW5kRGVmYXVsdEJORihjdXN0b21HcmFtbWFycyksXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpLFxuICAgICAgICAgIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IG5ldyBDb21iaW5lZEN1c3RvbUdyYW1tYXIocnVsZXMsIGVudHJpZXMpO1xuICAgIFxuICAgIHJldHVybiBjb21iaW5lZEN1c3RvbUdyYW1tYXI7XG4gIH1cbn1cblxuZnVuY3Rpb24gZW50cnlGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMsIHBhdHRlcm5OYW1lKSB7XG4gIGN1c3RvbUdyYW1tYXJzID0gWyBkZWZhdWx0Q3VzdG9tR3JhbW1hciwgLi4uY3VzdG9tR3JhbW1hcnMgXTsgLy8vXG5cbiAgY29uc3QgcGF0dGVybnMgPSBjdXN0b21HcmFtbWFycy5yZWR1Y2UoKHBhdHRlcm5zLCBjdXN0b21HcmFtbWFyKSA9PiB7XG4gICAgY29uc3QgcGF0dGVybiA9IGN1c3RvbUdyYW1tYXIuZ2V0UGF0dGVybihwYXR0ZXJuTmFtZSk7XG5cbiAgICBpZiAocGF0dGVybikgeyAgLy8vXG4gICAgICBwYXR0ZXJucy5wdXNoKHBhdHRlcm4pO1xuICAgIH1cblxuICAgIHJldHVybiBwYXR0ZXJucztcbiAgfSwgW10pO1xuXG4gIHBhdHRlcm5zLnJldmVyc2UoKTtcblxuICBjb25zdCBwYXR0ZXJuc1N0cmluZyA9IHBhdHRlcm5zLmpvaW4oVkVSVElDQUxfQkFSKSwgLy8vXG4gICAgICAgIHBhdHRlcm4gPSAocGF0dGVybk5hbWUgPT09IFRZUEVfUEFUVEVSTl9OQU1FKSA/XG4gICAgICAgICAgICAgICAgICAgIGBeKD86JHtwYXR0ZXJuc1N0cmluZ30pXFxcXGJgIDpcbiAgICAgICAgICAgICAgICAgICAgICBgXig/OiR7cGF0dGVybnNTdHJpbmd9KWA7XG5cbiAgY29uc3QgZW50cnkgPSB7fTtcblxuICBlbnRyeVtwYXR0ZXJuTmFtZV0gPSBwYXR0ZXJuO1xuXG4gIHJldHVybiBlbnRyeTtcbn1cblxuZnVuY3Rpb24gY29tYmluZVJ1bGVzKHJ1bGVzKSB7XG4gIGxldCBvdXRlckluZGV4ID0gMCxcbiAgICAgICAgbGVuZ3RoID0gcnVsZXMubGVuZ3RoO1xuXG4gIHdoaWxlIChvdXRlckluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY29uc3Qgb3V0ZXJSdWxlID0gcnVsZXNbb3V0ZXJJbmRleF0sXG4gICAgICAgICAgb3V0ZXJSdWxlTmFtZSA9IG91dGVyUnVsZS5nZXROYW1lKCk7XG5cbiAgICBsZXQgb3V0ZXJSdWxlRGVmaW5pdGlvbnMgPSBvdXRlclJ1bGUuZ2V0RGVmaW5pdGlvbnMoKTtcblxuICAgIGxldCBpbm5lckluZGV4ID0gb3V0ZXJJbmRleCArIDE7XG5cbiAgICB3aGlsZSAoaW5uZXJJbmRleCA8IGxlbmd0aCkge1xuICAgICAgY29uc3QgaW5uZXJSdWxlID0gcnVsZXNbaW5uZXJJbmRleF0sXG4gICAgICAgICAgICBpbm5lclJ1bGVOYW1lID0gaW5uZXJSdWxlLmdldE5hbWUoKTtcblxuICAgICAgaWYgKGlubmVyUnVsZU5hbWUgPT09IG91dGVyUnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3QgaW5uZXJSdWxlRGVmaW5pdGlvbnMgPSBpbm5lclJ1bGUuZ2V0RGVmaW5pdGlvbnMoKTtcblxuICAgICAgICBvdXRlclJ1bGVEZWZpbml0aW9ucyA9IFsgIC8vL1xuICAgICAgICAgIC4uLmlubmVyUnVsZURlZmluaXRpb25zLFxuICAgICAgICAgIC4uLm91dGVyUnVsZURlZmluaXRpb25zXG4gICAgICAgIF07XG5cbiAgICAgICAgb3V0ZXJSdWxlLnJlcGxhY2VBbGxEZWZpbml0aW9ucyguLi5vdXRlclJ1bGVEZWZpbml0aW9ucyk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbm5lckluZGV4LCAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxO1xuXG4gICAgICAgIHJ1bGVzLnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpO1xuXG4gICAgICAgIGxlbmd0aCA9IHJ1bGVzLmxlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlubmVySW5kZXgrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvdXRlckluZGV4Kys7XG5cbiAgICBsZW5ndGggPSBydWxlcy5sZW5ndGg7XG4gIH1cbn1cblxuZnVuY3Rpb24gZW50cmllc0Zyb21DdXN0b21HcmFtbWFycyhjdXN0b21HcmFtbWFycykge1xuICBjb25zdCBwYXR0ZXJuTmFtZXMgPSBbXG4gICAgICAgICAgVFlQRV9QQVRURVJOX05BTUUsXG4gICAgICAgICAgT1BFUkFUT1JfUEFUVEVSTl9OQU1FXG4gICAgICAgIF0sXG4gICAgICAgIGVudHJpZXMgPSBwYXR0ZXJuTmFtZXMubWFwKChwYXR0ZXJuTmFtZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cnlGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMsIHBhdHRlcm5OYW1lKTtcblxuICAgICAgICAgIHJldHVybiBlbnRyeTtcbiAgICAgICB9KTtcblxuICByZXR1cm4gZW50cmllcztcbn1cblxuZnVuY3Rpb24gcnVsZXNGcm9tQ3VzdG9tR3JhbW1hcnNBbmREZWZhdWx0Qk5GKGN1c3RvbUdyYW1tYXJzKSB7XG4gIGN1c3RvbUdyYW1tYXJzID0gWyBkZWZhdWx0Q3VzdG9tR3JhbW1hciwgLi4uY3VzdG9tR3JhbW1hcnMgXTsgLy8vXG5cbiAgY29uc3QgYm5mcyA9IGN1c3RvbUdyYW1tYXJzLm1hcCgoY3VzdG9tR3JhbW1hcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGJuZiA9IGN1c3RvbUdyYW1tYXIuZ2V0Qk5GKCk7XG5cbiAgICAgICAgICByZXR1cm4gYm5mO1xuICAgICAgICB9KSxcbiAgICAgICAgYm5mID0gYm5mcy5qb2luKEVNUFRZX1NUUklORyksXG4gICAgICAgIHJ1bGVzID0gcnVsZXNGcm9tQk5GKGJuZik7XG5cbiAgY29tYmluZVJ1bGVzKHJ1bGVzKVxuXG4gIHJldHVybiBydWxlcztcbn1cbiJdLCJuYW1lcyI6WyJDb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJydWxlc0Zyb21CTkYiLCJwYXJzZXJVdGlsaXRpZXMiLCJydWxlcyIsImVudHJpZXMiLCJnZXRSdWxlcyIsImdldEVudHJpZXMiLCJmcm9tQ3VzdG9tR3JhbW1hcnMiLCJjdXN0b21HcmFtbWFycyIsInJ1bGVzRnJvbUN1c3RvbUdyYW1tYXJzQW5kRGVmYXVsdEJORiIsImVudHJpZXNGcm9tQ3VzdG9tR3JhbW1hcnMiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJlbnRyeUZyb21DdXN0b21HcmFtbWFycyIsInBhdHRlcm5OYW1lIiwiZGVmYXVsdEN1c3RvbUdyYW1tYXIiLCJwYXR0ZXJucyIsInJlZHVjZSIsImN1c3RvbUdyYW1tYXIiLCJwYXR0ZXJuIiwiZ2V0UGF0dGVybiIsInB1c2giLCJyZXZlcnNlIiwicGF0dGVybnNTdHJpbmciLCJqb2luIiwiVkVSVElDQUxfQkFSIiwiVFlQRV9QQVRURVJOX05BTUUiLCJlbnRyeSIsImNvbWJpbmVSdWxlcyIsIm91dGVySW5kZXgiLCJsZW5ndGgiLCJvdXRlclJ1bGUiLCJvdXRlclJ1bGVOYW1lIiwiZ2V0TmFtZSIsIm91dGVyUnVsZURlZmluaXRpb25zIiwiZ2V0RGVmaW5pdGlvbnMiLCJpbm5lckluZGV4IiwiaW5uZXJSdWxlIiwiaW5uZXJSdWxlTmFtZSIsImlubmVyUnVsZURlZmluaXRpb25zIiwicmVwbGFjZUFsbERlZmluaXRpb25zIiwic3RhcnQiLCJkZWxldGVDb3VudCIsInNwbGljZSIsInBhdHRlcm5OYW1lcyIsIk9QRVJBVE9SX1BBVFRFUk5fTkFNRSIsIm1hcCIsImJuZnMiLCJibmYiLCJnZXRCTkYiLCJFTVBUWV9TVFJJTkciXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7OztlQVdRQSxxQkFBcUI7Ozs0QkFUVixlQUFlO3lFQUVkLHdCQUF3Qjt5QkFFZCxhQUFhOzRCQUNDLGdCQUFnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekUsSUFBTSxBQUFFQyxZQUFZLEdBQUtDLGFBQWUsZ0JBQUEsQ0FBaENELFlBQVksQUFBb0IsQUFBQztBQUUxQixJQUFBLEFBQU1ELHFCQUFxQixpQkF1QnZDLEFBdkJZO2FBQU1BLHFCQUFxQixDQUM1QkcsS0FBSyxFQUFFQyxPQUFPOzhCQURQSixxQkFBcUI7UUFFdEMsSUFBSSxDQUFDRyxL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
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5lZEN1c3RvbUdyYW1tYXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHBhcnNlclV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5cbmltcG9ydCBkZWZhdWx0Q3VzdG9tR3JhbW1hciBmcm9tIFwiLi9kZWZhdWx0Q3VzdG9tR3JhbW1hclwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFZFUlRJQ0FMX0JBUiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgVFlQRV9QQVRURVJOX05BTUUsIE9QRVJBVE9SX1BBVFRFUk5fTkFNRSB9IGZyb20gXCIuL3BhdHRlcm5OYW1lc1wiO1xuXG5jb25zdCB7IHJ1bGVzRnJvbUJORiB9ID0gcGFyc2VyVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21iaW5lZEN1c3RvbUdyYW1tYXIge1xuICBjb25zdHJ1Y3RvcihydWxlcywgZW50cmllcykge1xuICAgIHRoaXMucnVsZXMgPSBydWxlcztcbiAgICB0aGlzLmVudHJpZXMgPSBlbnRyaWVzO1xuICB9XG4gIFxuICBnZXRSdWxlcygpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlcztcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMsIGRlZmF1bHRDdXN0b21HcmFtbWFyID0gZGVmYXVsdEN1c3RvbUdyYW1tYXIpIHtcbiAgICBjdXN0b21HcmFtbWFycyA9IFsgZGVmYXVsdEN1c3RvbUdyYW1tYXIsIC4uLmN1c3RvbUdyYW1tYXJzIF07IC8vL1xuXG4gICAgY29uc3QgcnVsZXMgPSBydWxlc0Zyb21DdXN0b21HcmFtbWFyc0FuZERlZmF1bHRCTkYoY3VzdG9tR3JhbW1hcnMpLFxuICAgICAgICAgIGVudHJpZXMgPSBlbnRyaWVzRnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzKSxcbiAgICAgICAgICBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBuZXcgQ29tYmluZWRDdXN0b21HcmFtbWFyKHJ1bGVzLCBlbnRyaWVzKTtcbiAgICBcbiAgICByZXR1cm4gY29tYmluZWRDdXN0b21HcmFtbWFyO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJ1bGVzRnJvbUN1c3RvbUdyYW1tYXJzQW5kRGVmYXVsdEJORihjdXN0b21HcmFtbWFycykge1xuICBjb25zdCBibmZzID0gY3VzdG9tR3JhbW1hcnMubWFwKChjdXN0b21HcmFtbWFyKSA9PiB7XG4gICAgICAgICAgY29uc3QgYm5mID0gY3VzdG9tR3JhbW1hci5nZXRCTkYoKTtcblxuICAgICAgICAgIHJldHVybiBibmY7XG4gICAgICAgIH0pLFxuICAgICAgICBibmYgPSBibmZzLmpvaW4oRU1QVFlfU1RSSU5HKSxcbiAgICAgICAgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKTtcblxuICBjb21iaW5lUnVsZXMocnVsZXMpXG5cbiAgcmV0dXJuIHJ1bGVzO1xufVxuXG5mdW5jdGlvbiBlbnRyaWVzRnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzKSB7XG4gIGNvbnN0IHBhdHRlcm5OYW1lcyA9IFtcbiAgICAgICAgICBUWVBFX1BBVFRFUk5fTkFNRSxcbiAgICAgICAgICBPUEVSQVRPUl9QQVRURVJOX05BTUVcbiAgICAgICAgXSxcbiAgICAgICAgZW50cmllcyA9IHBhdHRlcm5OYW1lcy5tYXAoKHBhdHRlcm5OYW1lKSA9PiB7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBlbnRyeUZyb21DdXN0b21HcmFtbWFycyhjdXN0b21HcmFtbWFycywgcGF0dGVybk5hbWUpO1xuXG4gICAgICAgICAgcmV0dXJuIGVudHJ5O1xuICAgICAgICB9KTtcblxuICByZXR1cm4gZW50cmllcztcbn1cblxuZnVuY3Rpb24gZW50cnlGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMsIHBhdHRlcm5OYW1lKSB7XG4gIGNvbnN0IHBhdHRlcm5zID0gY3VzdG9tR3JhbW1hcnMucmVkdWNlKChwYXR0ZXJucywgY3VzdG9tR3JhbW1hcikgPT4ge1xuICAgIGNvbnN0IHBhdHRlcm4gPSBjdXN0b21HcmFtbWFyLmdldFBhdHRlcm4ocGF0dGVybk5hbWUpO1xuXG4gICAgaWYgKHBhdHRlcm4pIHsgIC8vL1xuICAgICAgcGF0dGVybnMucHVzaChwYXR0ZXJuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF0dGVybnM7XG4gIH0sIFtdKTtcblxuICBwYXR0ZXJucy5yZXZlcnNlKCk7XG5cbiAgY29uc3QgcGF0dGVybnNTdHJpbmcgPSBwYXR0ZXJucy5qb2luKFZFUlRJQ0FMX0JBUiksIC8vL1xuICAgICAgICBwYXR0ZXJuID0gKHBhdHRlcm5OYW1lID09PSBUWVBFX1BBVFRFUk5fTkFNRSkgP1xuICAgICAgICAgICAgICAgICAgIGBeKD86JHtwYXR0ZXJuc1N0cmluZ30pXFxcXGJgIDpcbiAgICAgICAgICAgICAgICAgICAgIGBeKD86JHtwYXR0ZXJuc1N0cmluZ30pYDtcblxuICBjb25zdCBlbnRyeSA9IHt9O1xuXG4gIGVudHJ5W3BhdHRlcm5OYW1lXSA9IHBhdHRlcm47XG5cbiAgcmV0dXJuIGVudHJ5O1xufVxuXG5mdW5jdGlvbiBjb21iaW5lUnVsZXMocnVsZXMpIHtcbiAgbGV0IG91dGVySW5kZXggPSAwLFxuICAgICAgbGVuZ3RoID0gcnVsZXMubGVuZ3RoO1xuXG4gIHdoaWxlIChvdXRlckluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY29uc3Qgb3V0ZXJSdWxlID0gcnVsZXNbb3V0ZXJJbmRleF0sXG4gICAgICAgICAgb3V0ZXJSdWxlTmFtZSA9IG91dGVyUnVsZS5nZXROYW1lKCk7XG5cbiAgICBsZXQgb3V0ZXJSdWxlRGVmaW5pdGlvbnMgPSBvdXRlclJ1bGUuZ2V0RGVmaW5pdGlvbnMoKTtcblxuICAgIGxldCBpbm5lckluZGV4ID0gb3V0ZXJJbmRleCArIDE7XG5cbiAgICB3aGlsZSAoaW5uZXJJbmRleCA8IGxlbmd0aCkge1xuICAgICAgY29uc3QgaW5uZXJSdWxlID0gcnVsZXNbaW5uZXJJbmRleF0sXG4gICAgICAgICAgICBpbm5lclJ1bGVOYW1lID0gaW5uZXJSdWxlLmdldE5hbWUoKTtcblxuICAgICAgaWYgKGlubmVyUnVsZU5hbWUgPT09IG91dGVyUnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3QgaW5uZXJSdWxlRGVmaW5pdGlvbnMgPSBpbm5lclJ1bGUuZ2V0RGVmaW5pdGlvbnMoKTtcblxuICAgICAgICBvdXRlclJ1bGVEZWZpbml0aW9ucyA9IFsgIC8vL1xuICAgICAgICAgIC4uLmlubmVyUnVsZURlZmluaXRpb25zLFxuICAgICAgICAgIC4uLm91dGVyUnVsZURlZmluaXRpb25zXG4gICAgICAgIF07XG5cbiAgICAgICAgb3V0ZXJSdWxlLnJlcGxhY2VBbGxEZWZpbml0aW9ucyguLi5vdXRlclJ1bGVEZWZpbml0aW9ucyk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbm5lckluZGV4LCAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxO1xuXG4gICAgICAgIHJ1bGVzLnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpO1xuXG4gICAgICAgIGxlbmd0aCA9IHJ1bGVzLmxlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlubmVySW5kZXgrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvdXRlckluZGV4Kys7XG5cbiAgICBsZW5ndGggPSBydWxlcy5sZW5ndGg7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJydWxlc0Zyb21CTkYiLCJwYXJzZXJVdGlsaXRpZXMiLCJydWxlcyIsImVudHJpZXMiLCJnZXRSdWxlcyIsImdldEVudHJpZXMiLCJmcm9tQ3VzdG9tR3JhbW1hcnMiLCJjdXN0b21HcmFtbWFycyIsImRlZmF1bHRDdXN0b21HcmFtbWFyIiwicnVsZXNGcm9tQ3VzdG9tR3JhbW1hcnNBbmREZWZhdWx0Qk5GIiwiZW50cmllc0Zyb21DdXN0b21HcmFtbWFycyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImJuZnMiLCJtYXAiLCJjdXN0b21HcmFtbWFyIiwiYm5mIiwiZ2V0Qk5GIiwiam9pbiIsIkVNUFRZX1NUUklORyIsImNvbWJpbmVSdWxlcyIsInBhdHRlcm5OYW1lcyIsIlRZUEVfUEFUVEVSTl9OQU1FIiwiT1BFUkFUT1JfUEFUVEVSTl9OQU1FIiwicGF0dGVybk5hbWUiLCJlbnRyeSIsImVudHJ5RnJvbUN1c3RvbUdyYW1tYXJzIiwicGF0dGVybnMiLCJyZWR1Y2UiLCJwYXR0ZXJuIiwiZ2V0UGF0dGVybiIsInB1c2giLCJyZXZlcnNlIiwicGF0dGVybnNTdHJpbmciLCJWRVJUSUNBTF9CQVIiLCJvdXRlckluZGV4IiwibGVuZ3RoIiwib3V0ZXJSdWxlIiwib3V0ZXJSdWxlTmFtZSIsImdldE5hbWUiLCJvdXRlclJ1bGVEZWZpbml0aW9ucyIsImdldERlZmluaXRpb25zIiwiaW5uZXJJbmRleCIsImlubmVyUnVsZSIsImlubmVyUnVsZU5hbWUiLCJpbm5lclJ1bGVEZWZpbml0aW9ucyIsInJlcGxhY2VBbGxEZWZpbml0aW9ucyIsInN0YXJ0IiwiZGVsZXRlQ291bnQiLCJzcGxpY2UiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7OztlQVdRQSxxQkFBcUI7Ozs0QkFUVixlQUFlO3lFQUVkLHdCQUF3Qjt5QkFFZCxhQUFhOzRCQUNDLGdCQUFnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekUsSUFBTSxBQUFFQyxZQUFZLEdBQUtDLGFBQWUsZ0JBQUEsQ0FBaENELFlBQVksQUFBb0IsQUFBQztBQUUxQixJQUFBLEFBQU1ELHFCQUFxQixpQkF5QnZDLEFBekJZO2FBQU1BLHFCQUFxQixDQUM1QkcsS0FBSyxFQUFFQyxPQUFPOzhCQURQSixxQkFBcUI7UUFFdEMsSUFBSSxDQUFDRyxLQUFLLEdBQUdBLEtBQUssQ0FBQztRQUNuQixJ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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-custom-grammars",
3
3
  "author": "James Smith",
4
- "version": "5.0.310",
4
+ "version": "5.0.312",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-custom-grammars",
7
7
  "description": "Occam's custom grammars.",
@@ -12,7 +12,7 @@
12
12
  "dependencies": {
13
13
  "necessary": "^11.0.40",
14
14
  "occam-grammar-utilities": "^7.0.60",
15
- "occam-grammars": "^1.0.278",
15
+ "occam-grammars": "^1.0.280",
16
16
  "occam-lexers": "^16.0.59",
17
17
  "occam-parsers": "^16.0.113"
18
18
  },
@@ -23,7 +23,9 @@ export default class CombinedCustomGrammar {
23
23
  return this.entries;
24
24
  }
25
25
 
26
- static fromCustomGrammars(customGrammars) {
26
+ static fromCustomGrammars(customGrammars, defaultCustomGrammar = defaultCustomGrammar) {
27
+ customGrammars = [ defaultCustomGrammar, ...customGrammars ]; ///
28
+
27
29
  const rules = rulesFromCustomGrammarsAndDefaultBNF(customGrammars),
28
30
  entries = entriesFromCustomGrammars(customGrammars),
29
31
  combinedCustomGrammar = new CombinedCustomGrammar(rules, entries);
@@ -32,9 +34,35 @@ export default class CombinedCustomGrammar {
32
34
  }
33
35
  }
34
36
 
35
- function entryFromCustomGrammars(customGrammars, patternName) {
36
- customGrammars = [ defaultCustomGrammar, ...customGrammars ]; ///
37
+ function rulesFromCustomGrammarsAndDefaultBNF(customGrammars) {
38
+ const bnfs = customGrammars.map((customGrammar) => {
39
+ const bnf = customGrammar.getBNF();
40
+
41
+ return bnf;
42
+ }),
43
+ bnf = bnfs.join(EMPTY_STRING),
44
+ rules = rulesFromBNF(bnf);
45
+
46
+ combineRules(rules)
47
+
48
+ return rules;
49
+ }
37
50
 
51
+ function entriesFromCustomGrammars(customGrammars) {
52
+ const patternNames = [
53
+ TYPE_PATTERN_NAME,
54
+ OPERATOR_PATTERN_NAME
55
+ ],
56
+ entries = patternNames.map((patternName) => {
57
+ const entry = entryFromCustomGrammars(customGrammars, patternName);
58
+
59
+ return entry;
60
+ });
61
+
62
+ return entries;
63
+ }
64
+
65
+ function entryFromCustomGrammars(customGrammars, patternName) {
38
66
  const patterns = customGrammars.reduce((patterns, customGrammar) => {
39
67
  const pattern = customGrammar.getPattern(patternName);
40
68
 
@@ -49,8 +77,8 @@ function entryFromCustomGrammars(customGrammars, patternName) {
49
77
 
50
78
  const patternsString = patterns.join(VERTICAL_BAR), ///
51
79
  pattern = (patternName === TYPE_PATTERN_NAME) ?
52
- `^(?:${patternsString})\\b` :
53
- `^(?:${patternsString})`;
80
+ `^(?:${patternsString})\\b` :
81
+ `^(?:${patternsString})`;
54
82
 
55
83
  const entry = {};
56
84
 
@@ -61,7 +89,7 @@ function entryFromCustomGrammars(customGrammars, patternName) {
61
89
 
62
90
  function combineRules(rules) {
63
91
  let outerIndex = 0,
64
- length = rules.length;
92
+ length = rules.length;
65
93
 
66
94
  while (outerIndex < length) {
67
95
  const outerRule = rules[outerIndex],
@@ -101,33 +129,3 @@ function combineRules(rules) {
101
129
  length = rules.length;
102
130
  }
103
131
  }
104
-
105
- function entriesFromCustomGrammars(customGrammars) {
106
- const patternNames = [
107
- TYPE_PATTERN_NAME,
108
- OPERATOR_PATTERN_NAME
109
- ],
110
- entries = patternNames.map((patternName) => {
111
- const entry = entryFromCustomGrammars(customGrammars, patternName);
112
-
113
- return entry;
114
- });
115
-
116
- return entries;
117
- }
118
-
119
- function rulesFromCustomGrammarsAndDefaultBNF(customGrammars) {
120
- customGrammars = [ defaultCustomGrammar, ...customGrammars ]; ///
121
-
122
- const bnfs = customGrammars.map((customGrammar) => {
123
- const bnf = customGrammar.getBNF();
124
-
125
- return bnf;
126
- }),
127
- bnf = bnfs.join(EMPTY_STRING),
128
- rules = rulesFromBNF(bnf);
129
-
130
- combineRules(rules)
131
-
132
- return rules;
133
- }