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/example.js +18874 -8930
- package/lib/index.js +1 -5
- package/lib/mixins/parser.js +3 -36
- package/lib/state.js +19 -79
- package/package.json +2 -2
- package/src/index.js +0 -1
- package/src/mixins/parser.js +3 -6
- package/src/state.js +15 -12
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,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCTkZQYXJzZXIgfSBmcm9tIFwiLi9ibmYvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhc2ljUGFyc2VyIH0gZnJvbSBcIi4vYmFzaWMvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbW1vblBhcnNlciB9IGZyb20gXCIuL2NvbW1vbi9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBydWxlc1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9ydWxlc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJzZXJVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcGFyc2VyXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFydHMgfSBmcm9tIFwiLi9wYXJ0c1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJ0VHlwZXMgfSBmcm9tIFwiLi9wYXJ0VHlwZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFydENob2ljZSB9IGZyb20gXCIuL3BhcnRDaG9pY2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGVmaW5pdGlvbiB9IGZyb20gXCIuL2RlZmluaXRpb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXBzaWxvbk5vZGUgfSBmcm9tIFwiLi9ub2RlL3Rlcm1pbmFsL2Vwc2lsb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGVybWluYWxOb2RlIH0gZnJvbSBcIi4vbm9kZS90ZXJtaW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub2RlL25vblRlcm1pbmFsXCI7XG4iXSwibmFtZXMiOlsiQk5GUGFyc2VyIiwiQmFzaWNQYXJzZXIiLCJDb21tb25QYXJzZXIiLCJEZWZpbml0aW9uIiwiRXBzaWxvbk5vZGUiLCJOb25UZXJtaW5hbE5vZGUiLCJQYXJ0Q2hvaWNlIiwiUGFydHMiLCJSdWxlIiwiVGVybWluYWxOb2RlIiwicGFyc2VyVXRpbGl0aWVzIiwicGFydFR5cGVzIiwicnVsZXNVdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsU0FBUztlQUFUQSxlQUFTOztJQUNUQyxXQUFXO2VBQVhBLGdCQUFXOztJQUNYQyxZQUFZO2VBQVpBLGdCQUFZOztJQVNaQyxVQUFVO2VBQVZBLG1CQUFVOztJQUNWQyxXQUFXO2VBQVhBLGdCQUFXOztJQUVYQyxlQUFlO2VBQWZBLG9CQUFlOztJQUpmQyxVQUFVO2VBQVZBLG1CQUFVOztJQUZWQyxLQUFLO2VBQUxBLGNBQUs7O0lBRExDLElBQUk7ZUFBSkEsYUFBSTs7SUFNSkMsWUFBWTtlQUFaQSxpQkFBWTs7SUFSWkMsZUFBZTtlQUFmQSxnQkFBZTs7SUFJZkMsU0FBUztlQUFUQSxrQkFBUzs7SUFMVEMsY0FBYztlQUFkQSxjQUFjOzs7NkRBSkc7OERBQ0U7OERBQ0M7NERBRUU7OERBQ0M7MkRBRVg7NERBQ0M7Z0VBQ0k7aUVBQ0M7aUVBQ0E7OERBQ0M7K0RBQ0M7a0VBQ0cifQ==
|
package/lib/mixins/parser.js
CHANGED
|
@@ -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
|
|
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,
|
|
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: "
|
|
222
|
-
value: function
|
|
223
|
-
|
|
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,
|
|
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": "
|
|
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": "^
|
|
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";
|
package/src/mixins/parser.js
CHANGED
|
@@ -6,14 +6,11 @@ import State from "../state";
|
|
|
6
6
|
|
|
7
7
|
const { first } = arrayUtilities;
|
|
8
8
|
|
|
9
|
-
|
|
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
|
|
15
|
-
|
|
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 =
|
|
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
|
|
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
|
|
130
|
+
state = new State(index, tokens, ruleMap, precedence, startOfContent);
|
|
128
131
|
|
|
129
132
|
return state;
|
|
130
133
|
}
|