occam-parsers 22.0.76 → 23.0.1

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/index.js CHANGED
@@ -36,9 +36,6 @@ _export(exports, {
36
36
  Rule: function() {
37
37
  return _rule.default;
38
38
  },
39
- State: function() {
40
- return _state.default;
41
- },
42
39
  TerminalNode: function() {
43
40
  return _terminal.default;
44
41
  },
@@ -59,7 +56,6 @@ var _rules = /*#__PURE__*/ _interop_require_default(require("./utilities/rules")
59
56
  var _parser3 = /*#__PURE__*/ _interop_require_default(require("./utilities/parser"));
60
57
  var _rule = /*#__PURE__*/ _interop_require_default(require("./rule"));
61
58
  var _parts = /*#__PURE__*/ _interop_require_default(require("./parts"));
62
- var _state = /*#__PURE__*/ _interop_require_default(require("./state"));
63
59
  var _partTypes = /*#__PURE__*/ _interop_require_default(require("./partTypes"));
64
60
  var _partChoice = /*#__PURE__*/ _interop_require_default(require("./partChoice"));
65
61
  var _definition = /*#__PURE__*/ _interop_require_default(require("./definition"));
@@ -72,4 +68,4 @@ function _interop_require_default(obj) {
72
68
  };
73
69
  }
74
70
 
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCTkZQYXJzZXIgfSBmcm9tIFwiLi9ibmYvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhc2ljUGFyc2VyIH0gZnJvbSBcIi4vYmFzaWMvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbW1vblBhcnNlciB9IGZyb20gXCIuL2NvbW1vbi9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBydWxlc1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9ydWxlc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJzZXJVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcGFyc2VyXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFydHMgfSBmcm9tIFwiLi9wYXJ0c1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdGF0ZSB9IGZyb20gXCIuL3N0YXRlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhcnRUeXBlcyB9IGZyb20gXCIuL3BhcnRUeXBlc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXJ0Q2hvaWNlIH0gZnJvbSBcIi4vcGFydENob2ljZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEZWZpbml0aW9uIH0gZnJvbSBcIi4vZGVmaW5pdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcHNpbG9uTm9kZSB9IGZyb20gXCIuL25vZGUvdGVybWluYWwvZXBzaWxvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub2RlL3Rlcm1pbmFsXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vblRlcm1pbmFsTm9kZSB9IGZyb20gXCIuL25vZGUvbm9uVGVybWluYWxcIjtcbiJdLCJuYW1lcyI6WyJCTkZQYXJzZXIiLCJCYXNpY1BhcnNlciIsIkNvbW1vblBhcnNlciIsIkRlZmluaXRpb24iLCJFcHNpbG9uTm9kZSIsIk5vblRlcm1pbmFsTm9kZSIsIlBhcnRDaG9pY2UiLCJQYXJ0cyIsIlJ1bGUiLCJTdGF0ZSIsIlRlcm1pbmFsTm9kZSIsInBhcnNlclV0aWxpdGllcyIsInBhcnRUeXBlcyIsInJ1bGVzVXRpbGl0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFb0JBLFNBQVM7ZUFBVEEsZUFBUzs7SUFDVEMsV0FBVztlQUFYQSxnQkFBVzs7SUFDWEMsWUFBWTtlQUFaQSxnQkFBWTs7SUFVWkMsVUFBVTtlQUFWQSxtQkFBVTs7SUFDVkMsV0FBVztlQUFYQSxnQkFBVzs7SUFFWEMsZUFBZTtlQUFmQSxvQkFBZTs7SUFKZkMsVUFBVTtlQUFWQSxtQkFBVTs7SUFIVkMsS0FBSztlQUFMQSxjQUFLOztJQURMQyxJQUFJO2VBQUpBLGFBQUk7O0lBRUpDLEtBQUs7ZUFBTEEsY0FBSzs7SUFLTEMsWUFBWTtlQUFaQSxpQkFBWTs7SUFUWkMsZUFBZTtlQUFmQSxnQkFBZTs7SUFLZkMsU0FBUztlQUFUQSxrQkFBUzs7SUFOVEMsY0FBYztlQUFkQSxjQUFjOzs7NkRBSkc7OERBQ0U7OERBQ0M7NERBRUU7OERBQ0M7MkRBRVg7NERBQ0M7NERBQ0E7Z0VBQ0k7aUVBQ0M7aUVBQ0E7OERBQ0M7K0RBQ0M7a0VBQ0cifQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCTkZQYXJzZXIgfSBmcm9tIFwiLi9ibmYvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhc2ljUGFyc2VyIH0gZnJvbSBcIi4vYmFzaWMvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbW1vblBhcnNlciB9IGZyb20gXCIuL2NvbW1vbi9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBydWxlc1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9ydWxlc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJzZXJVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcGFyc2VyXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFydHMgfSBmcm9tIFwiLi9wYXJ0c1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJ0VHlwZXMgfSBmcm9tIFwiLi9wYXJ0VHlwZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFydENob2ljZSB9IGZyb20gXCIuL3BhcnRDaG9pY2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGVmaW5pdGlvbiB9IGZyb20gXCIuL2RlZmluaXRpb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXBzaWxvbk5vZGUgfSBmcm9tIFwiLi9ub2RlL3Rlcm1pbmFsL2Vwc2lsb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGVybWluYWxOb2RlIH0gZnJvbSBcIi4vbm9kZS90ZXJtaW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub2RlL25vblRlcm1pbmFsXCI7XG4iXSwibmFtZXMiOlsiQk5GUGFyc2VyIiwiQmFzaWNQYXJzZXIiLCJDb21tb25QYXJzZXIiLCJEZWZpbml0aW9uIiwiRXBzaWxvbk5vZGUiLCJOb25UZXJtaW5hbE5vZGUiLCJQYXJ0Q2hvaWNlIiwiUGFydHMiLCJSdWxlIiwiVGVybWluYWxOb2RlIiwicGFyc2VyVXRpbGl0aWVzIiwicGFydFR5cGVzIiwicnVsZXNVdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsU0FBUztlQUFUQSxlQUFTOztJQUNUQyxXQUFXO2VBQVhBLGdCQUFXOztJQUNYQyxZQUFZO2VBQVpBLGdCQUFZOztJQVNaQyxVQUFVO2VBQVZBLG1CQUFVOztJQUNWQyxXQUFXO2VBQVhBLGdCQUFXOztJQUVYQyxlQUFlO2VBQWZBLG9CQUFlOztJQUpmQyxVQUFVO2VBQVZBLG1CQUFVOztJQUZWQyxLQUFLO2VBQUxBLGNBQUs7O0lBRExDLElBQUk7ZUFBSkEsYUFBSTs7SUFNSkMsWUFBWTtlQUFaQSxpQkFBWTs7SUFSWkMsZUFBZTtlQUFmQSxnQkFBZTs7SUFJZkMsU0FBUztlQUFUQSxrQkFBUzs7SUFMVEMsY0FBYztlQUFkQSxjQUFjOzs7NkRBSkc7OERBQ0U7OERBQ0M7NERBRUU7OERBQ0M7MkRBRVg7NERBQ0M7Z0VBQ0k7aUVBQ0M7aUVBQ0E7OERBQ0M7K0RBQ0M7a0VBQ0cifQ==
@@ -10,49 +10,16 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _necessary = require("necessary");
12
12
  var _state = /*#__PURE__*/ _interop_require_default(require("../state"));
13
- function _array_like_to_array(arr, len) {
14
- if (len == null || len > arr.length) len = arr.length;
15
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
16
- return arr2;
17
- }
18
- function _array_without_holes(arr) {
19
- if (Array.isArray(arr)) return _array_like_to_array(arr);
20
- }
21
13
  function _interop_require_default(obj) {
22
14
  return obj && obj.__esModule ? obj : {
23
15
  default: obj
24
16
  };
25
17
  }
26
- function _iterable_to_array(iter) {
27
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
28
- }
29
- function _non_iterable_spread() {
30
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
31
- }
32
- function _to_consumable_array(arr) {
33
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
34
- }
35
- function _unsupported_iterable_to_array(o, minLen) {
36
- if (!o) return;
37
- if (typeof o === "string") return _array_like_to_array(o, minLen);
38
- var n = Object.prototype.toString.call(o).slice(8, -1);
39
- if (n === "Object" && o.constructor) n = o.constructor.name;
40
- if (n === "Map" || n === "Set") return Array.from(n);
41
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
42
- }
43
18
  var first = _necessary.arrayUtilities.first;
44
- var DefaultState = _state.default; ///
45
19
  function parse(tokens) {
46
- var rule = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.startRule;
47
- for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
48
- remainingArguments[_key - 2] = arguments[_key];
49
- }
50
- var _State;
20
+ var rule = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.startRule, startOfContent = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
51
21
  var node = null;
52
- var _this_constructor = this.constructor, _this_constructor_State = _this_constructor.State, _$State = _this_constructor_State === void 0 ? DefaultState : _this_constructor_State, nodes = [], state = (_State = _$State).fromTokensAndRuleMap.apply(_State, [
53
- tokens,
54
- this.ruleMap
55
- ].concat(_to_consumable_array(remainingArguments))), callback = null, callAhead = null, parsed = rule.parse(nodes, state, callback, callAhead);
22
+ var nodes = [], state = _state.default.fromTokensRuleMapAndStartOfContent(tokens, this.ruleMap, startOfContent), callback = null, callAhead = null, parsed = rule.parse(nodes, state, callback, callAhead);
56
23
  if (parsed) {
57
24
  var firstNode = first(nodes);
58
25
  node = firstNode; ///
@@ -64,4 +31,4 @@ var parserMixins = {
64
31
  };
65
32
  var _default = parserMixins;
66
33
 
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvcGFyc2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IFN0YXRlIGZyb20gXCIuLi9zdGF0ZVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuY29uc3QgRGVmYXVsdFN0YXRlID0gU3RhdGU7IC8vL1xuXG5mdW5jdGlvbiBwYXJzZSh0b2tlbnMsIHJ1bGUgPSB0aGlzLnN0YXJ0UnVsZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBub2RlID0gbnVsbDtcblxuICBjb25zdCB7IFN0YXRlID0gRGVmYXVsdFN0YXRlIH0gPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICBub2RlcyA9IFtdLFxuICAgICAgICBzdGF0ZSA9IFN0YXRlLmZyb21Ub2tlbnNBbmRSdWxlTWFwKHRva2VucywgdGhpcy5ydWxlTWFwLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpLFxuICAgICAgICBjYWxsYmFjayA9IG51bGwsXG4gICAgICAgIGNhbGxBaGVhZCA9IG51bGwsXG4gICAgICAgIHBhcnNlZCA9IHJ1bGUucGFyc2Uobm9kZXMsIHN0YXRlLCBjYWxsYmFjaywgY2FsbEFoZWFkKTtcblxuICBpZiAocGFyc2VkKSB7XG4gICAgY29uc3QgZmlyc3ROb2RlID0gZmlyc3Qobm9kZXMpO1xuXG4gICAgbm9kZSA9IGZpcnN0Tm9kZTsgLy8vXG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuY29uc3QgcGFyc2VyTWl4aW5zID0ge1xuICBwYXJzZVxufTtcblxuZXhwb3J0IGRlZmF1bHQgcGFyc2VyTWl4aW5zO1xuIl0sIm5hbWVzIjpbImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJEZWZhdWx0U3RhdGUiLCJTdGF0ZSIsInBhcnNlIiwidG9rZW5zIiwicnVsZSIsInN0YXJ0UnVsZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsIm5vZGUiLCJjb25zdHJ1Y3RvciIsIm5vZGVzIiwic3RhdGUiLCJmcm9tVG9rZW5zQW5kUnVsZU1hcCIsInJ1bGVNYXAiLCJjYWxsYmFjayIsImNhbGxBaGVhZCIsInBhcnNlZCIsImZpcnN0Tm9kZSIsInBhcnNlck1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUNBOzs7ZUFBQTs7O3lCQS9CK0I7NERBRWI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEIsSUFBTSxBQUFFQSxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFUixJQUFNRSxlQUFlQyxjQUFLLEVBQUUsR0FBRztBQUUvQixTQUFTQyxNQUFNQyxNQUFNO1FBQUVDLE9BQUFBLGlFQUFPLElBQUksQ0FBQ0MsU0FBUztJQUFFLElBQUEsSUFBQSxPQUFBLFVBQUEsUUFBQSxBQUFHQyxxQkFBSCxVQUFBLE9BQUEsSUFBQSxPQUFBLFFBQUEsT0FBQSxHQUFBLE9BQUEsTUFBQTtRQUFHQSxtQkFBSCxPQUFBLEtBQUEsU0FBQSxDQUFBLEtBQXFCOztRQUtuREw7SUFKZCxJQUFJTSxPQUFPO0lBRVgsSUFBaUMsb0JBQUEsSUFBSSxDQUFDQyxXQUFXLDRCQUFoQixrQkFBekJQLE9BQUFBLCtDQUFRRCx3Q0FDVlMsUUFBUSxFQUFFLEVBQ1ZDLFFBQVFULENBQUFBLFNBQUFBLFNBQU1VLG9CQUFvQixDQUExQlYsTUFBQUEsUUFBQUE7UUFBMkJFO1FBQVEsSUFBSSxDQUFDUyxPQUFPO0tBQXdCLENBQXZFWCxPQUFpRCxxQkFBR0ssdUJBQzVETyxXQUFXLE1BQ1hDLFlBQVksTUFDWkMsU0FBU1gsS0FBS0YsS0FBSyxDQUFDTyxPQUFPQyxPQUFPRyxVQUFVQztJQUVsRCxJQUFJQyxRQUFRO1FBQ1YsSUFBTUMsWUFBWWxCLE1BQU1XO1FBRXhCRixPQUFPUyxXQUFXLEdBQUc7SUFDdkI7SUFFQSxPQUFPVDtBQUNUO0FBRUEsSUFBTVUsZUFBZTtJQUNuQmYsT0FBQUE7QUFDRjtJQUVBLFdBQWVlIn0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvcGFyc2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IFN0YXRlIGZyb20gXCIuLi9zdGF0ZVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZnVuY3Rpb24gcGFyc2UodG9rZW5zLCBydWxlID0gdGhpcy5zdGFydFJ1bGUsIHN0YXJ0T2ZDb250ZW50ID0gdHJ1ZSkge1xuICBsZXQgbm9kZSA9IG51bGw7XG5cbiAgY29uc3Qgbm9kZXMgPSBbXSxcbiAgICAgICAgc3RhdGUgPSBTdGF0ZS5mcm9tVG9rZW5zUnVsZU1hcEFuZFN0YXJ0T2ZDb250ZW50KHRva2VucywgdGhpcy5ydWxlTWFwLCBzdGFydE9mQ29udGVudCksXG4gICAgICAgIGNhbGxiYWNrID0gbnVsbCxcbiAgICAgICAgY2FsbEFoZWFkID0gbnVsbCxcbiAgICAgICAgcGFyc2VkID0gcnVsZS5wYXJzZShub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpO1xuXG4gIGlmIChwYXJzZWQpIHtcbiAgICBjb25zdCBmaXJzdE5vZGUgPSBmaXJzdChub2Rlcyk7XG5cbiAgICBub2RlID0gZmlyc3ROb2RlOyAvLy9cbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuXG5jb25zdCBwYXJzZXJNaXhpbnMgPSB7XG4gIHBhcnNlXG59O1xuXG5leHBvcnQgZGVmYXVsdCBwYXJzZXJNaXhpbnM7XG4iXSwibmFtZXMiOlsiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsInBhcnNlIiwidG9rZW5zIiwicnVsZSIsInN0YXJ0UnVsZSIsInN0YXJ0T2ZDb250ZW50Iiwibm9kZSIsIm5vZGVzIiwic3RhdGUiLCJTdGF0ZSIsImZyb21Ub2tlbnNSdWxlTWFwQW5kU3RhcnRPZkNvbnRlbnQiLCJydWxlTWFwIiwiY2FsbGJhY2siLCJjYWxsQWhlYWQiLCJwYXJzZWQiLCJmaXJzdE5vZGUiLCJwYXJzZXJNaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQThCQTs7O2VBQUE7Ozt5QkE1QitCOzREQUViOzs7Ozs7QUFFbEIsSUFBTSxBQUFFQSxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFUixTQUFTRSxNQUFNQyxNQUFNO1FBQUVDLE9BQUFBLGlFQUFPLElBQUksQ0FBQ0MsU0FBUyxFQUFFQyxpQkFBQUEsaUVBQWlCO0lBQzdELElBQUlDLE9BQU87SUFFWCxJQUFNQyxRQUFRLEVBQUUsRUFDVkMsUUFBUUMsY0FBSyxDQUFDQyxrQ0FBa0MsQ0FBQ1IsUUFBUSxJQUFJLENBQUNTLE9BQU8sRUFBRU4saUJBQ3ZFTyxXQUFXLE1BQ1hDLFlBQVksTUFDWkMsU0FBU1gsS0FBS0YsS0FBSyxDQUFDTSxPQUFPQyxPQUFPSSxVQUFVQztJQUVsRCxJQUFJQyxRQUFRO1FBQ1YsSUFBTUMsWUFBWWhCLE1BQU1RO1FBRXhCRCxPQUFPUyxXQUFXLEdBQUc7SUFDdkI7SUFFQSxPQUFPVDtBQUNUO0FBRUEsSUFBTVUsZUFBZTtJQUNuQmYsT0FBQUE7QUFDRjtJQUVBLFdBQWVlIn0=
package/lib/state.js CHANGED
@@ -8,36 +8,11 @@ Object.defineProperty(exports, "default", {
8
8
  return State;
9
9
  }
10
10
  });
11
- function _array_like_to_array(arr, len) {
12
- if (len == null || len > arr.length) len = arr.length;
13
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
14
- return arr2;
15
- }
16
- function _array_without_holes(arr) {
17
- if (Array.isArray(arr)) return _array_like_to_array(arr);
18
- }
19
11
  function _class_call_check(instance, Constructor) {
20
12
  if (!(instance instanceof Constructor)) {
21
13
  throw new TypeError("Cannot call a class as a function");
22
14
  }
23
15
  }
24
- function _construct(Parent, args, Class) {
25
- if (_is_native_reflect_construct()) {
26
- _construct = Reflect.construct;
27
- } else {
28
- _construct = function construct(Parent, args, Class) {
29
- var a = [
30
- null
31
- ];
32
- a.push.apply(a, args);
33
- var Constructor = Function.bind.apply(Parent, a);
34
- var instance = new Constructor();
35
- if (Class) _set_prototype_of(instance, Class.prototype);
36
- return instance;
37
- };
38
- }
39
- return _construct.apply(null, arguments);
40
- }
41
16
  function _defineProperties(target, props) {
42
17
  for(var i = 0; i < props.length; i++){
43
18
  var descriptor = props[i];
@@ -52,48 +27,14 @@ function _create_class(Constructor, protoProps, staticProps) {
52
27
  if (staticProps) _defineProperties(Constructor, staticProps);
53
28
  return Constructor;
54
29
  }
55
- function _iterable_to_array(iter) {
56
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
57
- }
58
- function _non_iterable_spread() {
59
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
60
- }
61
- function _set_prototype_of(o, p) {
62
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
63
- o.__proto__ = p;
64
- return o;
65
- };
66
- return _set_prototype_of(o, p);
67
- }
68
- function _to_consumable_array(arr) {
69
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
70
- }
71
- function _unsupported_iterable_to_array(o, minLen) {
72
- if (!o) return;
73
- if (typeof o === "string") return _array_like_to_array(o, minLen);
74
- var n = Object.prototype.toString.call(o).slice(8, -1);
75
- if (n === "Object" && o.constructor) n = o.constructor.name;
76
- if (n === "Map" || n === "Set") return Array.from(n);
77
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
78
- }
79
- function _is_native_reflect_construct() {
80
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
81
- if (Reflect.construct.sham) return false;
82
- if (typeof Proxy === "function") return true;
83
- try {
84
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
85
- return true;
86
- } catch (e) {
87
- return false;
88
- }
89
- }
90
30
  var State = /*#__PURE__*/ function() {
91
- function State(index, tokens, ruleMap, precedence) {
31
+ function State(index, tokens, ruleMap, precedence, startOfContent) {
92
32
  _class_call_check(this, State);
93
33
  this.index = index;
94
34
  this.tokens = tokens;
95
35
  this.ruleMap = ruleMap;
96
36
  this.precedence = precedence;
37
+ this.startOfContent = startOfContent;
97
38
  }
98
39
  _create_class(State, [
99
40
  {
@@ -120,6 +61,12 @@ var State = /*#__PURE__*/ function() {
120
61
  return this.precedence;
121
62
  }
122
63
  },
64
+ {
65
+ key: "getStartOfContent",
66
+ value: function getStartOfContent() {
67
+ return this.startOfContent;
68
+ }
69
+ },
123
70
  {
124
71
  key: "setIndex",
125
72
  value: function setIndex(index) {
@@ -144,6 +91,12 @@ var State = /*#__PURE__*/ function() {
144
91
  this.precedence = precedence;
145
92
  }
146
93
  },
94
+ {
95
+ key: "setStartOfContent",
96
+ value: function setStartOfContent(startOfContent) {
97
+ this.startOfContent = startOfContent;
98
+ }
99
+ },
147
100
  {
148
101
  key: "getSavedPrecedence",
149
102
  value: function getSavedPrecedence() {
@@ -172,7 +125,7 @@ var State = /*#__PURE__*/ function() {
172
125
  {
173
126
  key: "isAtStartOfContent",
174
127
  value: function isAtStartOfContent() {
175
- var atStartOfContent = this.index === 0;
128
+ var atStartOfContent = this.startOfContent ? this.index === 0 : false;
176
129
  return atStartOfContent;
177
130
  }
178
131
  },
@@ -218,22 +171,9 @@ var State = /*#__PURE__*/ function() {
218
171
  }
219
172
  ], [
220
173
  {
221
- key: "fromTokensAndRuleMap",
222
- value: function fromTokensAndRuleMap(Class, tokens, ruleMap) {
223
- for(var _len = arguments.length, remainingArguments = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
224
- remainingArguments[_key - 3] = arguments[_key];
225
- }
226
- if (ruleMap === undefined) {
227
- ruleMap = tokens; ///
228
- tokens = Class; ///
229
- Class = State; ///
230
- }
231
- var index = 0, precedence = null, state = _construct(Class, [
232
- index,
233
- tokens,
234
- ruleMap,
235
- precedence
236
- ].concat(_to_consumable_array(remainingArguments)));
174
+ key: "fromTokensRuleMapAndStartOfContent",
175
+ value: function fromTokensRuleMapAndStartOfContent(tokens, ruleMap, startOfContent) {
176
+ var index = 0, precedence = null, state = new State(index, tokens, ruleMap, precedence, startOfContent);
237
177
  return state;
238
178
  }
239
179
  }
@@ -241,4 +181,4 @@ var State = /*#__PURE__*/ function() {
241
181
  return State;
242
182
  }();
243
183
 
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RhdGUge1xuICBjb25zdHJ1Y3RvcihpbmRleCwgdG9rZW5zLCBydWxlTWFwLCBwcmVjZWRlbmNlKSB7XG5cdFx0dGhpcy5pbmRleCA9IGluZGV4O1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgIHRoaXMucnVsZU1hcCA9IHJ1bGVNYXA7XG4gICAgdGhpcy5wcmVjZWRlbmNlID0gcHJlY2VkZW5jZTtcbiAgfVxuXG4gIGdldEluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLmluZGV4O1xuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VucztcbiAgfVxuXG4gIGdldFJ1bGVNYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMucnVsZU1hcDtcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlY2VkZW5jZTtcbiAgfVxuXG4gIHNldEluZGV4KGluZGV4KSB7XG4gICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICB9XG5cbiAgc2V0VG9rZW5zKHRva2Vucykge1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICB9XG5cbiAgc2V0UnVsZU1hcChydWxlTWFwKSB7XG4gICAgdGhpcy5ydWxlTWFwID0gcnVsZU1hcDtcbiAgfVxuXG4gIHNldFByZWNlZGVuY2UocHJlY2VkZW5jZSkge1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRTYXZlZFByZWNlZGVuY2UoKSB7XG4gICAgY29uc3Qgc2F2ZWRQcmVjZWRlbmNlID0gdGhpcy5wcmVjZWRlbmNlO1xuXG4gICAgcmV0dXJuIHNhdmVkUHJlY2VkZW5jZTtcbiAgfVxuXG4gIGdldFNhdmVkSW5kZXgoKSB7XG4gICAgY29uc3Qgc2F2ZWRJbmRleCA9IHRoaXMuaW5kZXg7IC8vL1xuICBcbiAgICByZXR1cm4gc2F2ZWRJbmRleDtcbiAgfVxuXG4gIGdldE5leHRUb2tlbigpIHtcbiAgICBsZXQgbmV4dFRva2VuID0gbnVsbDtcblxuICAgIGNvbnN0IHRva2Vuc0xlbmd0aCA9IHRoaXMudG9rZW5zLmxlbmd0aDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgdG9rZW5zTGVuZ3RoKSB7XG4gICAgICBuZXh0VG9rZW4gPSB0aGlzLnRva2Vuc1t0aGlzLmluZGV4KytdO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0VG9rZW47XG4gIH1cblxuICBpc0F0U3RhcnRPZkNvbnRlbnQoKSB7XG4gICAgY29uc3QgYXRTdGFydE9mQ29udGVudCA9ICh0aGlzLmluZGV4ID09PSAwKTtcblxuICAgIHJldHVybiBhdFN0YXJ0T2ZDb250ZW50O1xuICB9XG5cbiAgZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4oKSB7XG5cdFx0bGV0IG5leHRTaWduaWZpY2FudFRva2VuID0gbnVsbDtcblxuICBcdGNvbnN0IHRva2Vuc0xlbmd0aCA9IHRoaXMudG9rZW5zLmxlbmd0aDtcblxuICBcdHdoaWxlICh0aGlzLmluZGV4IDwgdG9rZW5zTGVuZ3RoKSB7XG4gIFx0XHRjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zW3RoaXMuaW5kZXgrK10sXG5cdFx0XHRcdFx0XHR0b2tlblNpZ25pZmljYW50ID0gdG9rZW4uaXNTaWduaWZpY2FudCgpO1xuXG4gIFx0XHRpZiAodG9rZW5TaWduaWZpY2FudCkge1xuICBcdFx0ICBjb25zdCBzaWduaWZpY2FudFRva2VuID0gdG9rZW47IC8vL1xuXG5cdFx0XHRcdG5leHRTaWduaWZpY2FudFRva2VuID0gc2lnbmlmaWNhbnRUb2tlbjtcdC8vL1xuXG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuICBcdH1cblxuXHRcdHJldHVybiBuZXh0U2lnbmlmaWNhbnRUb2tlbjtcbiAgfVxuXG4gIGlzTmV4dFRva2VuV2hpdGVzcGFjZVRva2VuKCkge1xuICAgIGxldCBuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0IHRva2Vuc0xlbmd0aCA9IHRoaXMudG9rZW5zLmxlbmd0aDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgdG9rZW5zTGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0VG9rZW4gPSB0aGlzLnRva2Vuc1t0aGlzLmluZGV4XTtcblxuICAgICAgbmV4dFRva2VuV2hpdGVzcGFjZVRva2VuID0gbmV4dFRva2VuLmlzV2hpdGVzcGFjZVRva2VuKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRUb2tlbldoaXRlc3BhY2VUb2tlbjtcbiAgfVxuXG5cdGJhY2t0cmFjayhzYXZlZEluZGV4KSB7XG5cdFx0dGhpcy5pbmRleCA9IHNhdmVkSW5kZXg7ICAvLy9cblx0fVxuXG4gIHJlc2V0UHJlY2VkZW5jZShzYXZlZFByZWNlZGVuY2UpIHtcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBzYXZlZFByZWNlZGVuY2U7ICAvLy9cbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9rZW5zQW5kUnVsZU1hcChDbGFzcywgdG9rZW5zLCBydWxlTWFwLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAocnVsZU1hcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBydWxlTWFwID0gdG9rZW5zOyAvLy9cblxuICAgICAgdG9rZW5zID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFN0YXRlOyAgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICAgIHByZWNlZGVuY2UgPSBudWxsLFxuXHRcdFx0XHRcdHN0YXRlID0gbmV3IENsYXNzKGluZGV4LCB0b2tlbnMsIHJ1bGVNYXAsIHByZWNlZGVuY2UsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTdGF0ZSIsImluZGV4IiwidG9rZW5zIiwicnVsZU1hcCIsInByZWNlZGVuY2UiLCJnZXRJbmRleCIsImdldFRva2VucyIsImdldFJ1bGVNYXAiLCJnZXRQcmVjZWRlbmNlIiwic2V0SW5kZXgiLCJzZXRUb2tlbnMiLCJzZXRSdWxlTWFwIiwic2V0UHJlY2VkZW5jZSIsImdldFNhdmVkUHJlY2VkZW5jZSIsInNhdmVkUHJlY2VkZW5jZSIsImdldFNhdmVkSW5kZXgiLCJzYXZlZEluZGV4IiwiZ2V0TmV4dFRva2VuIiwibmV4dFRva2VuIiwidG9rZW5zTGVuZ3RoIiwibGVuZ3RoIiwiaXNBdFN0YXJ0T2ZDb250ZW50IiwiYXRTdGFydE9mQ29udGVudCIsImdldE5leHRTaWduaWZpY2FudFRva2VuIiwibmV4dFNpZ25pZmljYW50VG9rZW4iLCJ0b2tlbiIsInRva2VuU2lnbmlmaWNhbnQiLCJpc1NpZ25pZmljYW50Iiwic2lnbmlmaWNhbnRUb2tlbiIsImlzTmV4dFRva2VuV2hpdGVzcGFjZVRva2VuIiwibmV4dFRva2VuV2hpdGVzcGFjZVRva2VuIiwiaXNXaGl0ZXNwYWNlVG9rZW4iLCJiYWNrdHJhY2siLCJyZXNldFByZWNlZGVuY2UiLCJmcm9tVG9rZW5zQW5kUnVsZU1hcCIsIkNsYXNzIiwicmVtYWluaW5nQXJndW1lbnRzIiwidW5kZWZpbmVkIiwic3RhdGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFOLElBQUEsQUFBTUEsc0JBQUQsQUFBTDthQUFNQSxNQUNQQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxVQUFVO2dDQUQzQko7UUFFbkIsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxVQUFVLEdBQUdBOztrQkFMREo7O1lBUW5CSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLEtBQUs7WUFDbkI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE1BQU07WUFDcEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE9BQU87WUFDckI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFVBQVU7WUFDeEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBU1IsS0FBSztnQkFDWixJQUFJLENBQUNBLEtBQUssR0FBR0E7WUFDZjs7O1lBRUFTLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVUixNQUFNO2dCQUNkLElBQUksQ0FBQ0EsTUFBTSxHQUFHQTtZQUNoQjs7O1lBRUFTLEtBQUFBO21CQUFBQSxTQUFBQSxXQUFXUixPQUFPO2dCQUNoQixJQUFJLENBQUNBLE9BQU8sR0FBR0E7WUFDakI7OztZQUVBUyxLQUFBQTttQkFBQUEsU0FBQUEsY0FBY1IsVUFBVTtnQkFDdEIsSUFBSSxDQUFDQSxVQUFVLEdBQUdBO1lBQ3BCOzs7WUFFQVMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGtCQUFrQixJQUFJLENBQUNWLFVBQVU7Z0JBRXZDLE9BQU9VO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsYUFBYSxJQUFJLENBQUNmLEtBQUssRUFBRSxHQUFHO2dCQUVsQyxPQUFPZTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDLFlBQVk7Z0JBRWhCLElBQU1DLGVBQWUsSUFBSSxDQUFDakIsTUFBTSxDQUFDa0IsTUFBTTtnQkFFdkMsSUFBSSxJQUFJLENBQUNuQixLQUFLLEdBQUdrQixjQUFjO29CQUM3QkQsWUFBWSxJQUFJLENBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDRCxLQUFLLEdBQUc7Z0JBQ3ZDO2dCQUVBLE9BQU9pQjtZQUNUOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLG1CQUFvQixJQUFJLENBQUNyQixLQUFLLEtBQUs7Z0JBRXpDLE9BQU9xQjtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNBLElBQUlDLHVCQUF1QjtnQkFFMUIsSUFBTUwsZUFBZSxJQUFJLENBQUNqQixNQUFNLENBQUNrQixNQUFNO2dCQUV2QyxNQUFPLElBQUksQ0FBQ25CLEtBQUssR0FBR2tCLGFBQWM7b0JBQ2pDLElBQU1NLFFBQVEsSUFBSSxDQUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQ0QsS0FBSyxHQUFHLEVBQ3JDeUIsbUJBQW1CRCxNQUFNRSxhQUFhO29CQUV4QyxJQUFJRCxrQkFBa0I7d0JBQ3BCLElBQU1FLG1CQUFtQkgsT0FBTyxHQUFHO3dCQUVyQ0QsdUJBQXVCSSxrQkFBa0IsR0FBRzt3QkFFNUM7b0JBQ0Q7Z0JBQ0E7Z0JBRUQsT0FBT0o7WUFDUDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJQywyQkFBMkI7Z0JBRS9CLElBQU1YLGVBQWUsSUFBSSxDQUFDakIsTUFBTSxDQUFDa0IsTUFBTTtnQkFFdkMsSUFBSSxJQUFJLENBQUNuQixLQUFLLEdBQUdrQixjQUFjO29CQUM3QixJQUFNRCxZQUFZLElBQUksQ0FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUNELEtBQUssQ0FBQztvQkFFekM2QiwyQkFBMkJaLFVBQVVhLGlCQUFpQjtnQkFDeEQ7Z0JBRUEsT0FBT0Q7WUFDVDs7O1lBRURFLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVaEIsVUFBVTtnQkFDbkIsSUFBSSxDQUFDZixLQUFLLEdBQUdlLFlBQWEsR0FBRztZQUM5Qjs7O1lBRUNpQixLQUFBQTttQkFBQUEsU0FBQUEsZ0JBQWdCbkIsZUFBZTtnQkFDN0IsSUFBSSxDQUFDVixVQUFVLEdBQUdVLGlCQUFrQixHQUFHO1lBQ3pDOzs7O1lBRU9vQixLQUFBQTttQkFBUCxTQUFPQSxxQkFBcUJDLEtBQUssRUFBRWpDLE1BQU0sRUFBRUMsT0FBTztnQkFBRSxJQUFBLElBQUEsT0FBQSxVQUFBLFFBQUEsQUFBR2lDLHFCQUFILFVBQUEsT0FBQSxJQUFBLE9BQUEsUUFBQSxPQUFBLEdBQUEsT0FBQSxNQUFBO29CQUFHQSxtQkFBSCxPQUFBLEtBQUEsU0FBQSxDQUFBLEtBQXFCOztnQkFDdkUsSUFBSWpDLFlBQVlrQyxXQUFXO29CQUN6QmxDLFVBQVVELFFBQVEsR0FBRztvQkFFckJBLFNBQVNpQyxPQUFPLEdBQUc7b0JBRW5CQSxRQXZIZW5DLE9BdUhDLEdBQUc7Z0JBQ3JCO2dCQUVBLElBQU1DLFFBQVEsR0FDUkcsYUFBYSxNQUNsQmtDLFFBQVEsV0FBSUgsT0FBSjtvQkFBVWxDO29CQUFPQztvQkFBUUM7b0JBQVNDO2lCQUFrQyxDQUFwRSxPQUE4QyxxQkFBR2dDO2dCQUUxRCxPQUFPRTtZQUNUOzs7V0EvSG1CdEMifQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RhdGUge1xuICBjb25zdHJ1Y3RvcihpbmRleCwgdG9rZW5zLCBydWxlTWFwLCBwcmVjZWRlbmNlLCBzdGFydE9mQ29udGVudCkge1xuXHRcdHRoaXMuaW5kZXggPSBpbmRleDtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgICB0aGlzLnJ1bGVNYXAgPSBydWxlTWFwO1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gICAgdGhpcy5zdGFydE9mQ29udGVudCA9IHN0YXJ0T2ZDb250ZW50O1xuICB9XG5cbiAgZ2V0SW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5kZXg7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0UnVsZU1hcCgpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTWFwO1xuICB9XG5cbiAgZ2V0UHJlY2VkZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0U3RhcnRPZkNvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnRPZkNvbnRlbnQ7XG4gIH1cblxuICBzZXRJbmRleChpbmRleCkge1xuICAgIHRoaXMuaW5kZXggPSBpbmRleDtcbiAgfVxuXG4gIHNldFRva2Vucyh0b2tlbnMpIHtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgfVxuXG4gIHNldFJ1bGVNYXAocnVsZU1hcCkge1xuICAgIHRoaXMucnVsZU1hcCA9IHJ1bGVNYXA7XG4gIH1cblxuICBzZXRQcmVjZWRlbmNlKHByZWNlZGVuY2UpIHtcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBwcmVjZWRlbmNlO1xuICB9XG5cbiAgc2V0U3RhcnRPZkNvbnRlbnQoc3RhcnRPZkNvbnRlbnQpIHtcbiAgICB0aGlzLnN0YXJ0T2ZDb250ZW50ID0gc3RhcnRPZkNvbnRlbnQ7XG4gIH1cblxuICBnZXRTYXZlZFByZWNlZGVuY2UoKSB7XG4gICAgY29uc3Qgc2F2ZWRQcmVjZWRlbmNlID0gdGhpcy5wcmVjZWRlbmNlO1xuXG4gICAgcmV0dXJuIHNhdmVkUHJlY2VkZW5jZTtcbiAgfVxuXG4gIGdldFNhdmVkSW5kZXgoKSB7XG4gICAgY29uc3Qgc2F2ZWRJbmRleCA9IHRoaXMuaW5kZXg7IC8vL1xuICBcbiAgICByZXR1cm4gc2F2ZWRJbmRleDtcbiAgfVxuXG4gIGdldE5leHRUb2tlbigpIHtcbiAgICBsZXQgbmV4dFRva2VuID0gbnVsbDtcblxuICAgIGNvbnN0IHRva2Vuc0xlbmd0aCA9IHRoaXMudG9rZW5zLmxlbmd0aDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgdG9rZW5zTGVuZ3RoKSB7XG4gICAgICBuZXh0VG9rZW4gPSB0aGlzLnRva2Vuc1t0aGlzLmluZGV4KytdO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0VG9rZW47XG4gIH1cblxuICBpc0F0U3RhcnRPZkNvbnRlbnQoKSB7XG4gICAgY29uc3QgYXRTdGFydE9mQ29udGVudCA9IHRoaXMuc3RhcnRPZkNvbnRlbnQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaW5kZXggPT09IDApOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZTtcblxuICAgIHJldHVybiBhdFN0YXJ0T2ZDb250ZW50O1xuICB9XG5cbiAgZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4oKSB7XG5cdFx0bGV0IG5leHRTaWduaWZpY2FudFRva2VuID0gbnVsbDtcblxuICBcdGNvbnN0IHRva2Vuc0xlbmd0aCA9IHRoaXMudG9rZW5zLmxlbmd0aDtcblxuICBcdHdoaWxlICh0aGlzLmluZGV4IDwgdG9rZW5zTGVuZ3RoKSB7XG4gIFx0XHRjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zW3RoaXMuaW5kZXgrK10sXG5cdFx0XHRcdFx0XHR0b2tlblNpZ25pZmljYW50ID0gdG9rZW4uaXNTaWduaWZpY2FudCgpO1xuXG4gIFx0XHRpZiAodG9rZW5TaWduaWZpY2FudCkge1xuICBcdFx0ICBjb25zdCBzaWduaWZpY2FudFRva2VuID0gdG9rZW47IC8vL1xuXG5cdFx0XHRcdG5leHRTaWduaWZpY2FudFRva2VuID0gc2lnbmlmaWNhbnRUb2tlbjtcdC8vL1xuXG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuICBcdH1cblxuXHRcdHJldHVybiBuZXh0U2lnbmlmaWNhbnRUb2tlbjtcbiAgfVxuXG4gIGlzTmV4dFRva2VuV2hpdGVzcGFjZVRva2VuKCkge1xuICAgIGxldCBuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0IHRva2Vuc0xlbmd0aCA9IHRoaXMudG9rZW5zLmxlbmd0aDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgdG9rZW5zTGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0VG9rZW4gPSB0aGlzLnRva2Vuc1t0aGlzLmluZGV4XTtcblxuICAgICAgbmV4dFRva2VuV2hpdGVzcGFjZVRva2VuID0gbmV4dFRva2VuLmlzV2hpdGVzcGFjZVRva2VuKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRUb2tlbldoaXRlc3BhY2VUb2tlbjtcbiAgfVxuXG5cdGJhY2t0cmFjayhzYXZlZEluZGV4KSB7XG5cdFx0dGhpcy5pbmRleCA9IHNhdmVkSW5kZXg7ICAvLy9cblx0fVxuXG4gIHJlc2V0UHJlY2VkZW5jZShzYXZlZFByZWNlZGVuY2UpIHtcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBzYXZlZFByZWNlZGVuY2U7ICAvLy9cbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9rZW5zUnVsZU1hcEFuZFN0YXJ0T2ZDb250ZW50KHRva2VucywgcnVsZU1hcCwgc3RhcnRPZkNvbnRlbnQpIHtcbiAgICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgICAgcHJlY2VkZW5jZSA9IG51bGwsXG5cdFx0XHRcdFx0c3RhdGUgPSBuZXcgU3RhdGUoaW5kZXgsIHRva2VucywgcnVsZU1hcCwgcHJlY2VkZW5jZSwgc3RhcnRPZkNvbnRlbnQpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiU3RhdGUiLCJpbmRleCIsInRva2VucyIsInJ1bGVNYXAiLCJwcmVjZWRlbmNlIiwic3RhcnRPZkNvbnRlbnQiLCJnZXRJbmRleCIsImdldFRva2VucyIsImdldFJ1bGVNYXAiLCJnZXRQcmVjZWRlbmNlIiwiZ2V0U3RhcnRPZkNvbnRlbnQiLCJzZXRJbmRleCIsInNldFRva2VucyIsInNldFJ1bGVNYXAiLCJzZXRQcmVjZWRlbmNlIiwic2V0U3RhcnRPZkNvbnRlbnQiLCJnZXRTYXZlZFByZWNlZGVuY2UiLCJzYXZlZFByZWNlZGVuY2UiLCJnZXRTYXZlZEluZGV4Iiwic2F2ZWRJbmRleCIsImdldE5leHRUb2tlbiIsIm5leHRUb2tlbiIsInRva2Vuc0xlbmd0aCIsImxlbmd0aCIsImlzQXRTdGFydE9mQ29udGVudCIsImF0U3RhcnRPZkNvbnRlbnQiLCJnZXROZXh0U2lnbmlmaWNhbnRUb2tlbiIsIm5leHRTaWduaWZpY2FudFRva2VuIiwidG9rZW4iLCJ0b2tlblNpZ25pZmljYW50IiwiaXNTaWduaWZpY2FudCIsInNpZ25pZmljYW50VG9rZW4iLCJpc05leHRUb2tlbldoaXRlc3BhY2VUb2tlbiIsIm5leHRUb2tlbldoaXRlc3BhY2VUb2tlbiIsImlzV2hpdGVzcGFjZVRva2VuIiwiYmFja3RyYWNrIiwicmVzZXRQcmVjZWRlbmNlIiwiZnJvbVRva2Vuc1J1bGVNYXBBbmRTdGFydE9mQ29udGVudCIsInN0YXRlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUVxQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTixJQUFBLEFBQU1BLHNCQUFELEFBQUw7YUFBTUEsTUFDUEMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxjQUFjO2dDQUQzQ0w7UUFFbkIsSUFBSSxDQUFD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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": "22.0.76",
4
+ "version": "23.0.1",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-parsers",
7
7
  "description": "Occam's parsers.",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^14.0.1",
14
- "occam-lexers": "^22.0.44"
14
+ "occam-lexers": "^23.0.1"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@swc/core": "^1.5.6",
package/src/index.js CHANGED
@@ -9,7 +9,6 @@ export { default as parserUtilities } from "./utilities/parser";
9
9
 
10
10
  export { default as Rule } from "./rule";
11
11
  export { default as Parts } from "./parts";
12
- export { default as State } from "./state";
13
12
  export { default as partTypes } from "./partTypes";
14
13
  export { default as PartChoice } from "./partChoice";
15
14
  export { default as Definition } from "./definition";
@@ -6,14 +6,11 @@ import State from "../state";
6
6
 
7
7
  const { first } = arrayUtilities;
8
8
 
9
- const DefaultState = State; ///
10
-
11
- function parse(tokens, rule = this.startRule, ...remainingArguments) {
9
+ function parse(tokens, rule = this.startRule, startOfContent = true) {
12
10
  let node = null;
13
11
 
14
- const { State = DefaultState } = this.constructor,
15
- nodes = [],
16
- state = State.fromTokensAndRuleMap(tokens, this.ruleMap, ...remainingArguments),
12
+ const nodes = [],
13
+ state = State.fromTokensRuleMapAndStartOfContent(tokens, this.ruleMap, startOfContent),
17
14
  callback = null,
18
15
  callAhead = null,
19
16
  parsed = rule.parse(nodes, state, callback, callAhead);
package/src/state.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  export default class State {
4
- constructor(index, tokens, ruleMap, precedence) {
4
+ constructor(index, tokens, ruleMap, precedence, startOfContent) {
5
5
  this.index = index;
6
6
  this.tokens = tokens;
7
7
  this.ruleMap = ruleMap;
8
8
  this.precedence = precedence;
9
+ this.startOfContent = startOfContent;
9
10
  }
10
11
 
11
12
  getIndex() {
@@ -24,6 +25,10 @@ export default class State {
24
25
  return this.precedence;
25
26
  }
26
27
 
28
+ getStartOfContent() {
29
+ return this.startOfContent;
30
+ }
31
+
27
32
  setIndex(index) {
28
33
  this.index = index;
29
34
  }
@@ -40,6 +45,10 @@ export default class State {
40
45
  this.precedence = precedence;
41
46
  }
42
47
 
48
+ setStartOfContent(startOfContent) {
49
+ this.startOfContent = startOfContent;
50
+ }
51
+
43
52
  getSavedPrecedence() {
44
53
  const savedPrecedence = this.precedence;
45
54
 
@@ -65,7 +74,9 @@ export default class State {
65
74
  }
66
75
 
67
76
  isAtStartOfContent() {
68
- const atStartOfContent = (this.index === 0);
77
+ const atStartOfContent = this.startOfContent ?
78
+ (this.index === 0):
79
+ false;
69
80
 
70
81
  return atStartOfContent;
71
82
  }
@@ -113,18 +124,10 @@ export default class State {
113
124
  this.precedence = savedPrecedence; ///
114
125
  }
115
126
 
116
- static fromTokensAndRuleMap(Class, tokens, ruleMap, ...remainingArguments) {
117
- if (ruleMap === undefined) {
118
- ruleMap = tokens; ///
119
-
120
- tokens = Class; ///
121
-
122
- Class = State; ///
123
- }
124
-
127
+ static fromTokensRuleMapAndStartOfContent(tokens, ruleMap, startOfContent) {
125
128
  const index = 0,
126
129
  precedence = null,
127
- state = new Class(index, tokens, ruleMap, precedence, ...remainingArguments);
130
+ state = new State(index, tokens, ruleMap, precedence, startOfContent);
128
131
 
129
132
  return state;
130
133
  }