occam-parsers 23.0.53 → 23.0.55
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/README.md +7 -7
- package/example.js +579 -189
- package/lib/bnf/bnf.js +2 -2
- package/lib/bnf/parser.js +4 -4
- package/lib/definition/{lookAheadModifierRule.js → callAheadModifierRule.js} +11 -11
- package/lib/definition/partRule/nonTerminal/ruleName.js +3 -3
- package/lib/example/basic/bnf.js +14 -0
- package/lib/example/basic/entries.js +18 -0
- package/lib/example/basic/lexer.js +136 -0
- package/lib/example/basic/parser.js +134 -0
- package/lib/example/view/basic.js +8 -8
- package/lib/example/view/div/sizeable.js +2 -2
- package/lib/node/bnf/{lookAheadModifier.js → callAheadModifier.js} +12 -12
- package/lib/node/bnf/choiceOfParts.js +4 -4
- package/lib/node/bnf/definition.js +3 -3
- package/lib/node/bnf/endOfLine.js +2 -2
- package/lib/node/bnf/epsilon.js +2 -2
- package/lib/node/bnf/noWhitespacePart.js +2 -2
- package/lib/node/bnf/part/nonTerminal.js +6 -6
- package/lib/node/bnf/part/terminal.js +3 -3
- package/lib/node/bnf/part.js +5 -5
- package/lib/node/bnf/partChoice.js +4 -4
- package/lib/node/bnf/regularExpression.js +2 -2
- package/lib/node/bnf/ruleName.js +3 -3
- package/lib/node/bnf/sequenceOfParts.js +4 -4
- package/lib/node/bnf/significantTokenType.js +2 -2
- package/lib/node/bnf/startOfContentPart.js +2 -2
- package/lib/node/bnf/terminalSymbol.js +2 -2
- package/lib/node/bnf/wildcard.js +2 -2
- package/lib/node/nonTerminal.js +39 -7
- package/lib/node/terminal.js +40 -11
- package/lib/part/nonTerminal/choiceOfParts.js +4 -4
- package/lib/part/nonTerminal/oneOrMoreParts.js +4 -4
- package/lib/part/nonTerminal/optionalPart.js +4 -4
- package/lib/part/nonTerminal/ruleName.js +8 -8
- package/lib/part/nonTerminal/sequenceOfParts.js +4 -4
- package/lib/part/nonTerminal/zeroOrMoreParts.js +4 -4
- package/lib/part/nonTerminal.js +6 -6
- package/lib/part/terminal.js +5 -5
- package/lib/rule/{lookAheadModifier.js → callAheadModifier.js} +15 -15
- package/lib/rule.js +21 -14
- package/lib/ruleNames.js +5 -5
- package/lib/utilities/bnf.js +9 -9
- package/lib/utilities/parse.js +28 -28
- package/package.json +1 -1
- package/src/bnf/bnf.js +2 -2
- package/src/bnf/parser.js +3 -3
- package/src/definition/{lookAheadModifierRule.js → callAheadModifierRule.js} +3 -3
- package/src/definition/partRule/nonTerminal/ruleName.js +4 -4
- package/src/example/basic/bnf.js +27 -0
- package/src/example/basic/entries.js +9 -0
- package/src/example/basic/lexer.js +17 -0
- package/src/example/basic/parser.js +15 -0
- package/src/example/view/basic.js +13 -10
- package/src/example/view/div/sizeable.js +1 -1
- package/src/node/bnf/callAheadModifier.js +7 -0
- package/src/node/bnf/choiceOfParts.js +3 -3
- package/src/node/bnf/definition.js +2 -2
- package/src/node/bnf/endOfLine.js +1 -1
- package/src/node/bnf/epsilon.js +1 -1
- package/src/node/bnf/noWhitespacePart.js +1 -1
- package/src/node/bnf/part/nonTerminal.js +6 -6
- package/src/node/bnf/part/terminal.js +2 -2
- package/src/node/bnf/part.js +4 -4
- package/src/node/bnf/partChoice.js +3 -3
- package/src/node/bnf/regularExpression.js +1 -1
- package/src/node/bnf/ruleName.js +2 -2
- package/src/node/bnf/sequenceOfParts.js +3 -3
- package/src/node/bnf/significantTokenType.js +1 -1
- package/src/node/bnf/startOfContentPart.js +1 -1
- package/src/node/bnf/terminalSymbol.js +1 -1
- package/src/node/bnf/wildcard.js +1 -1
- package/src/node/nonTerminal.js +43 -10
- package/src/node/terminal.js +37 -9
- package/src/part/nonTerminal/choiceOfParts.js +4 -4
- package/src/part/nonTerminal/oneOrMoreParts.js +4 -4
- package/src/part/nonTerminal/optionalPart.js +4 -4
- package/src/part/nonTerminal/ruleName.js +9 -9
- package/src/part/nonTerminal/sequenceOfParts.js +4 -4
- package/src/part/nonTerminal/zeroOrMoreParts.js +4 -4
- package/src/part/nonTerminal.js +4 -4
- package/src/part/terminal.js +3 -3
- package/src/rule/callAheadModifier.js +22 -0
- package/src/rule.js +30 -18
- package/src/ruleNames.js +1 -1
- package/src/utilities/bnf.js +6 -6
- package/src/utilities/parse.js +38 -28
- package/src/node/bnf/lookAheadModifier.js +0 -7
- package/src/rule/lookAheadModifier.js +0 -22
|
@@ -100,12 +100,12 @@ function _is_native_reflect_construct() {
|
|
|
100
100
|
var asterisk = _occamlexers.specialSymbols.asterisk;
|
|
101
101
|
var ZeroOrMorePartsPart = /*#__PURE__*/ function(NonTerminalPart) {
|
|
102
102
|
_inherits(ZeroOrMorePartsPart, NonTerminalPart);
|
|
103
|
-
function ZeroOrMorePartsPart(type,
|
|
103
|
+
function ZeroOrMorePartsPart(type, callAhead, part) {
|
|
104
104
|
_class_call_check(this, ZeroOrMorePartsPart);
|
|
105
105
|
var _this;
|
|
106
106
|
_this = _call_super(this, ZeroOrMorePartsPart, [
|
|
107
107
|
type,
|
|
108
|
-
|
|
108
|
+
callAhead
|
|
109
109
|
]);
|
|
110
110
|
_this.part = part;
|
|
111
111
|
return _this;
|
|
@@ -142,7 +142,7 @@ var ZeroOrMorePartsPart = /*#__PURE__*/ function(NonTerminalPart) {
|
|
|
142
142
|
{
|
|
143
143
|
key: "fromPart",
|
|
144
144
|
value: function fromPart(part) {
|
|
145
|
-
var type = _partTypes.ZeroOrMorePartsPartType,
|
|
145
|
+
var type = _partTypes.ZeroOrMorePartsPartType, callAhead = false, zeroOrMorePartsPart = new ZeroOrMorePartsPart(type, callAhead, part);
|
|
146
146
|
return zeroOrMorePartsPart;
|
|
147
147
|
}
|
|
148
148
|
}
|
|
@@ -170,4 +170,4 @@ function parseZeroOrMorePartsPart(part, nodes, state, callback, callAhead) {
|
|
|
170
170
|
return parsed;
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL3plcm9Pck1vcmVQYXJ0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbFBhcnQgZnJvbSBcIi4uLy4uL3BhcnQvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgWmVyb09yTW9yZVBhcnRzUGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cblxuY29uc3QgeyBhc3RlcmlzayB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFplcm9Pck1vcmVQYXJ0c1BhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBjYWxsQWhlYWQsIHBhcnQpIHtcbiAgICBzdXBlcih0eXBlLCBjYWxsQWhlYWQpO1xuXG4gICAgdGhpcy5wYXJ0ID0gcGFydDtcbiAgfVxuXG4gIGdldFBhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydDtcbiAgfVxuXG4gIHBhcnNlKG5vZGVzLCBzdGF0ZSwgY2FsbGJhY2ssIGNhbGxBaGVhZCkge1xuICAgIGxldCBwYXJzZWQ7XG5cbiAgICBjb25zdCBzYXZlZEluZGV4ID0gc3RhdGUuZ2V0U2F2ZWRJbmRleCgpLFxuICAgICAgICAgIG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoO1xuXG4gICAgcGFyc2VkID0gcGFyc2VaZXJvT3JNb3JlUGFydHNQYXJ0KHRoaXMucGFydCwgbm9kZXMsIHN0YXRlLCBjYWxsYmFjaywgY2FsbEFoZWFkKTtcblxuICAgIGlmICghcGFyc2VkKSB7XG4gICAgICBjb25zdCBzdGFydCA9IG5vZGVzTGVuZ3RoOyAgLy8vXG5cbiAgICAgIG5vZGVzLnNwbGljZShzdGFydCk7XG5cbiAgICAgIHN0YXRlLmJhY2t0cmFjayhzYXZlZEluZGV4KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgcGFydFN0cmluZyA9IHRoaXMucGFydC5hc1N0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IGAke3BhcnRTdHJpbmd9JHthc3Rlcmlza31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydChwYXJ0KSB7XG4gICAgY29uc3QgdHlwZSA9IFplcm9Pck1vcmVQYXJ0c1BhcnRUeXBlLFxuICAgICAgICAgIGNhbGxBaGVhZCA9IGZhbHNlLFxuICAgICAgICAgIHplcm9Pck1vcmVQYXJ0c1BhcnQgPSBuZXcgWmVyb09yTW9yZVBhcnRzUGFydCh0eXBlLCBjYWxsQWhlYWQsIHBhcnQpO1xuXG4gICAgcmV0dXJuIHplcm9Pck1vcmVQYXJ0c1BhcnQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlWmVyb09yTW9yZVBhcnRzUGFydChwYXJ0LCBub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpIHtcbiAgbGV0IHBhcnNlZDtcblxuICBpZiAoY2FsbEFoZWFkID09PSBudWxsKSB7XG4gICAgcGFyc2VkID0gcGFydC5wYXJzZShub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpO1xuXG4gICAgaWYgKHBhcnNlZCkge1xuICAgICAgcGFyc2VaZXJvT3JNb3JlUGFydHNQYXJ0KHBhcnQsIG5vZGVzLCBzdGF0ZSwgY2FsbGJhY2ssIGNhbGxBaGVhZCk7XG4gICAgfVxuXG4gICAgcGFyc2VkID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZWQgPSBjYWxsQWhlYWQoKTtcblxuICAgIGlmICghcGFyc2VkKSB7XG4gICAgICBwYXJzZWQgPSBwYXJ0LnBhcnNlKG5vZGVzLCBzdGF0ZSwgY2FsbGJhY2ssICgpID0+IHtcbiAgICAgICAgbGV0IHBhcnNlZDtcblxuICAgICAgICBwYXJzZWQgPSBwYXJzZVplcm9Pck1vcmVQYXJ0c1BhcnQocGFydCwgbm9kZXMsIHN0YXRlLCBjYWxsYmFjaywgY2FsbEFoZWFkKTtcblxuICAgICAgICByZXR1cm4gcGFyc2VkO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn1cbiJdLCJuYW1lcyI6WyJaZXJvT3JNb3JlUGFydHNQYXJ0IiwicGFyc2VaZXJvT3JNb3JlUGFydHNQYXJ0IiwiYXN0ZXJpc2siLCJzcGVjaWFsU3ltYm9scyIsInR5cGUiLCJjYWxsQWhlYWQiLCJwYXJ0IiwiZ2V0UGFydCIsInBhcnNlIiwibm9kZXMiLCJzdGF0ZSIsImNhbGxiYWNrIiwicGFyc2VkIiwic2F2ZWRJbmRleCIsImdldFNhdmVkSW5kZXgiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsInN0YXJ0Iiwic3BsaWNlIiwiYmFja3RyYWNrIiwiYXNTdHJpbmciLCJwYXJ0U3RyaW5nIiwic3RyaW5nIiwiZnJvbVBhcnQiLCJaZXJvT3JNb3JlUGFydHNQYXJ0VHlwZSIsInplcm9Pck1vcmVQYXJ0c1BhcnQiLCJOb25UZXJtaW5hbFBhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7ZUFXcUJBOztJQThDTEMsd0JBQXdCO2VBQXhCQTs7OzJCQXZEZTtrRUFFSDt5QkFFWTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd4QyxJQUFNLEFBQUVDLFdBQWFDLDJCQUFjLENBQTNCRDtBQUVPLElBQUEsQUFBTUYsb0NBQU47Y0FBTUE7YUFBQUEsb0JBQ1BJLElBQUksRUFBRUMsU0FBUyxFQUFFQyxJQUFJO2dDQURkTjs7Z0JBRWpCLGtCQUZpQkE7WUFFWEk7WUFBTUM7O1FBRVosTUFBS0MsSUFBSSxHQUFHQTs7O2tCQUpLTjs7WUFPbkJPLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0QsSUFBSTtZQUNsQjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsUUFBUSxFQUFFTixTQUFTO2dCQUNyQyxJQUFJTztnQkFFSixJQUFNQyxhQUFhSCxNQUFNSSxhQUFhLElBQ2hDQyxjQUFjTixNQUFNTyxNQUFNO2dCQUVoQ0osU0FBU1gseUJBQXlCLElBQUksQ0FBQ0ssSUFBSSxFQUFFRyxPQUFPQyxPQUFPQyxVQUFVTjtnQkFFckUsSUFBSSxDQUFDTyxRQUFRO29CQUNYLElBQU1LLFFBQVFGLGFBQWMsR0FBRztvQkFFL0JOLE1BQU1TLE1BQU0sQ0FBQ0Q7b0JBRWJQLE1BQU1TLFNBQVMsQ0FBQ047Z0JBQ2xCO2dCQUVBLE9BQU9EO1lBQ1Q7OztZQUVBUSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsYUFBYSxJQUFJLENBQUNmLElBQUksQ0FBQ2MsUUFBUSxJQUMvQkUsU0FBUyxBQUFDLEdBQWVwQixPQUFibUIsWUFBc0IsT0FBVG5CO2dCQUUvQixPQUFPb0I7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTakIsSUFBSTtnQkFDbEIsSUFBTUYsT0FBT29CLGtDQUF1QixFQUM5Qm5CLFlBQVksT0FDWm9CLHNCQUFzQixJQXhDWHpCLG9CQXdDbUNJLE1BQU1DLFdBQVdDO2dCQUVyRSxPQUFPbUI7WUFDVDs7O1dBM0NtQnpCO0VBQTRCMEIsb0JBQWU7QUE4Q3pELFNBQVN6Qix5QkFBeUJLLElBQUksRUFBRUcsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRU4sU0FBUztJQUM5RSxJQUFJTztJQUVKLElBQUlQLGNBQWMsTUFBTTtRQUN0Qk8sU0FBU04sS0FBS0UsS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxVQUFVTjtRQUU1QyxJQUFJTyxRQUFRO1lBQ1ZYLHlCQUF5QkssTUFBTUcsT0FBT0MsT0FBT0MsVUFBVU47UUFDekQ7UUFFQU8sU0FBUztJQUNYLE9BQU87UUFDTEEsU0FBU1A7UUFFVCxJQUFJLENBQUNPLFFBQVE7WUFDWEEsU0FBU04sS0FBS0UsS0FBSyxDQUFDQyxPQUFPQyxPQUFPQyxVQUFVO2dCQUMxQyxJQUFJQztnQkFFSkEsU0FBU1gseUJBQXlCSyxNQUFNRyxPQUFPQyxPQUFPQyxVQUFVTjtnQkFFaEUsT0FBT087WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPQTtBQUNUIn0=
|
package/lib/part/nonTerminal.js
CHANGED
|
@@ -28,10 +28,10 @@ function _create_class(Constructor, protoProps, staticProps) {
|
|
|
28
28
|
return Constructor;
|
|
29
29
|
}
|
|
30
30
|
var NonTerminalPart = /*#__PURE__*/ function() {
|
|
31
|
-
function NonTerminalPart(type,
|
|
31
|
+
function NonTerminalPart(type, callAhead) {
|
|
32
32
|
_class_call_check(this, NonTerminalPart);
|
|
33
33
|
this.type = type;
|
|
34
|
-
this.
|
|
34
|
+
this.callAhead = callAhead;
|
|
35
35
|
}
|
|
36
36
|
_create_class(NonTerminalPart, [
|
|
37
37
|
{
|
|
@@ -41,9 +41,9 @@ var NonTerminalPart = /*#__PURE__*/ function() {
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
|
-
key: "
|
|
45
|
-
value: function
|
|
46
|
-
return this.
|
|
44
|
+
key: "isCallAhead",
|
|
45
|
+
value: function isCallAhead() {
|
|
46
|
+
return this.callAhead;
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
{
|
|
@@ -71,4 +71,4 @@ var NonTerminalPart = /*#__PURE__*/ function() {
|
|
|
71
71
|
return NonTerminalPart;
|
|
72
72
|
}();
|
|
73
73
|
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBjYWxsQWhlYWQpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuY2FsbEFoZWFkID0gY2FsbEFoZWFkO1xuICB9XG4gIFxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBpc0NhbGxBaGVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jYWxsQWhlYWQ7XG4gIH1cblxuICBpc05vblRlcm1pbmFsUGFydCgpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbFBhcnQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsUGFydDtcbiAgfVxuXG4gIGlzVGVybWluYWxQYXJ0KCkge1xuICAgIGNvbnN0IHRlcm1pbmFsUGFydCA9IGZhbHNlO1xuICAgIFxuICAgIHJldHVybiB0ZXJtaW5hbFBhcnQ7XG4gIH1cblxuICBpc1J1bGVOYW1lUGFydCgpIHtcbiAgICBjb25zdCBydWxlTmFtZVBhcnQgPSBmYWxzZTtcblxuICAgIHJldHVybiBydWxlTmFtZVBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJOb25UZXJtaW5hbFBhcnQiLCJ0eXBlIiwiY2FsbEFoZWFkIiwiZ2V0VHlwZSIsImlzQ2FsbEFoZWFkIiwiaXNOb25UZXJtaW5hbFBhcnQiLCJub25UZXJtaW5hbFBhcnQiLCJpc1Rlcm1pbmFsUGFydCIsInRlcm1pbmFsUGFydCIsImlzUnVsZU5hbWVQYXJ0IiwicnVsZU5hbWVQYXJ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUVxQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTixJQUFBLEFBQU1BLGdDQUFOO2FBQU1BLGdCQUNQQyxJQUFJLEVBQUVDLFNBQVM7Z0NBRFJGO1FBRWpCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTs7a0JBSEFGOztZQU1uQkcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixJQUFJO1lBQ2xCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixTQUFTO1lBQ3ZCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGtCQUFrQjtnQkFFeEIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxlQUFlO2dCQUVyQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGVBQWU7Z0JBRXJCLE9BQU9BO1lBQ1Q7OztXQTlCbUJWIn0=
|
package/lib/part/terminal.js
CHANGED
|
@@ -33,10 +33,10 @@ var TerminalPart = /*#__PURE__*/ function() {
|
|
|
33
33
|
}
|
|
34
34
|
_create_class(TerminalPart, [
|
|
35
35
|
{
|
|
36
|
-
key: "
|
|
37
|
-
value: function
|
|
38
|
-
var
|
|
39
|
-
return
|
|
36
|
+
key: "isCallAhead",
|
|
37
|
+
value: function isCallAhead() {
|
|
38
|
+
var callAhead = false;
|
|
39
|
+
return callAhead;
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
42
|
{
|
|
@@ -71,4 +71,4 @@ var TerminalPart = /*#__PURE__*/ function() {
|
|
|
71
71
|
return TerminalPart;
|
|
72
72
|
}();
|
|
73
73
|
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJ0L3Rlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXJtaW5hbFBhcnQge1xuICBpc0NhbGxBaGVhZCgpIHtcbiAgICBjb25zdCBjYWxsQWhlYWQgPSBmYWxzZTtcblxuICAgIHJldHVybiBjYWxsQWhlYWQ7XG4gIH1cblxuICBpc05vblRlcm1pbmFsUGFydCgpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbFBhcnQgPSBmYWxzZTtcblxuICAgIHJldHVybiBub25UZXJtaW5hbFBhcnQ7XG4gIH1cblxuICBpc1Rlcm1pbmFsUGFydCgpIHtcbiAgICBjb25zdCB0ZXJtaW5hbFBhcnQgPSB0cnVlO1xuICAgIFxuICAgIHJldHVybiB0ZXJtaW5hbFBhcnQ7XG4gIH1cblxuICBpc05vV2hpdGVzcGFjZVBhcnQoKSB7XG4gICAgY29uc3Qgbm9XaGl0ZXNwYWNlUGFydCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5vV2hpdGVzcGFjZVBhcnQ7XG4gIH1cblxuICBpc1N0YXJ0T2ZDb250ZW50UGFydCgpIHtcbiAgICBjb25zdCBzdGFydE9mQ29udGVudFBhcnQgPSBmYWxzZTtcblxuICAgIHJldHVybiBzdGFydE9mQ29udGVudFBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJUZXJtaW5hbFBhcnQiLCJpc0NhbGxBaGVhZCIsImNhbGxBaGVhZCIsImlzTm9uVGVybWluYWxQYXJ0Iiwibm9uVGVybWluYWxQYXJ0IiwiaXNUZXJtaW5hbFBhcnQiLCJ0ZXJtaW5hbFBhcnQiLCJpc05vV2hpdGVzcGFjZVBhcnQiLCJub1doaXRlc3BhY2VQYXJ0IiwiaXNTdGFydE9mQ29udGVudFBhcnQiLCJzdGFydE9mQ29udGVudFBhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFOLElBQUEsQUFBTUEsNkJBQU47YUFBTUE7Z0NBQUFBOztrQkFBQUE7O1lBQ25CQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsWUFBWTtnQkFFbEIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxrQkFBa0I7Z0JBRXhCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsZUFBZTtnQkFFckIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxtQkFBbUI7Z0JBRXpCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMscUJBQXFCO2dCQUUzQixPQUFPQTtZQUNUOzs7V0E3Qm1CViJ9
|
|
@@ -5,12 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
Object.defineProperty(exports, "default", {
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: function() {
|
|
8
|
-
return
|
|
8
|
+
return CallAheadModifierRule;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _rule = /*#__PURE__*/ _interop_require_default(require("../rule"));
|
|
12
|
-
var
|
|
13
|
-
var
|
|
12
|
+
var _callAheadModifier = /*#__PURE__*/ _interop_require_default(require("../node/bnf/callAheadModifier"));
|
|
13
|
+
var _callAheadModifierRule = /*#__PURE__*/ _interop_require_default(require("../definition/callAheadModifierRule"));
|
|
14
14
|
var _ruleNames = require("../ruleNames");
|
|
15
15
|
function _assert_this_initialized(self) {
|
|
16
16
|
if (self === void 0) {
|
|
@@ -90,24 +90,24 @@ function _is_native_reflect_construct() {
|
|
|
90
90
|
return !!result;
|
|
91
91
|
})();
|
|
92
92
|
}
|
|
93
|
-
var
|
|
94
|
-
_inherits(
|
|
95
|
-
function
|
|
96
|
-
_class_call_check(this,
|
|
97
|
-
return _call_super(this,
|
|
93
|
+
var CallAheadModifierRule = /*#__PURE__*/ function(Rule) {
|
|
94
|
+
_inherits(CallAheadModifierRule, Rule);
|
|
95
|
+
function CallAheadModifierRule() {
|
|
96
|
+
_class_call_check(this, CallAheadModifierRule);
|
|
97
|
+
return _call_super(this, CallAheadModifierRule, arguments);
|
|
98
98
|
}
|
|
99
|
-
_create_class(
|
|
99
|
+
_create_class(CallAheadModifierRule, null, [
|
|
100
100
|
{
|
|
101
101
|
key: "fromNothing",
|
|
102
102
|
value: function fromNothing() {
|
|
103
|
-
var name = _ruleNames.
|
|
104
|
-
|
|
105
|
-
], NonTerminalNode =
|
|
106
|
-
return
|
|
103
|
+
var name = _ruleNames.callAheadModifierRuleName, callAheadModifierRuleDefinition = _callAheadModifierRule.default.fromNothing(), opacity = null, definitions = [
|
|
104
|
+
callAheadModifierRuleDefinition
|
|
105
|
+
], NonTerminalNode = _callAheadModifier.default, callAheadModifierRule = new CallAheadModifierRule(name, opacity, definitions, NonTerminalNode);
|
|
106
|
+
return callAheadModifierRule;
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
]);
|
|
110
|
-
return
|
|
110
|
+
return CallAheadModifierRule;
|
|
111
111
|
}(_rule.default);
|
|
112
112
|
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlL2NhbGxBaGVhZE1vZGlmaWVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgUnVsZSBmcm9tIFwiLi4vcnVsZVwiO1xuaW1wb3J0IENhbGxBaGVhZE1vZGlmaWVyQk5GTm9kZSBmcm9tIFwiLi4vbm9kZS9ibmYvY2FsbEFoZWFkTW9kaWZpZXJcIjtcbmltcG9ydCBDYWxsQWhlYWRNb2RpZmllclJ1bGVEZWZpbml0aW9uIGZyb20gXCIuLi9kZWZpbml0aW9uL2NhbGxBaGVhZE1vZGlmaWVyUnVsZVwiO1xuXG5pbXBvcnQgeyBjYWxsQWhlYWRNb2RpZmllclJ1bGVOYW1lIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDYWxsQWhlYWRNb2RpZmllclJ1bGUgZXh0ZW5kcyBSdWxlIHtcbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IG5hbWUgPSBjYWxsQWhlYWRNb2RpZmllclJ1bGVOYW1lLCAvLy9cbiAgICAgICAgICBjYWxsQWhlYWRNb2RpZmllclJ1bGVEZWZpbml0aW9uID0gQ2FsbEFoZWFkTW9kaWZpZXJSdWxlRGVmaW5pdGlvbi5mcm9tTm90aGluZygpLFxuICAgICAgICAgIG9wYWNpdHkgPSBudWxsLFxuICAgICAgICAgIGRlZmluaXRpb25zID0gW1xuICAgICAgICAgICAgY2FsbEFoZWFkTW9kaWZpZXJSdWxlRGVmaW5pdGlvblxuICAgICAgICAgIF0sXG4gICAgICAgICAgTm9uVGVybWluYWxOb2RlID0gQ2FsbEFoZWFkTW9kaWZpZXJCTkZOb2RlLCAgLy8vXG4gICAgICAgICAgY2FsbEFoZWFkTW9kaWZpZXJSdWxlID0gbmV3IENhbGxBaGVhZE1vZGlmaWVyUnVsZShuYW1lLCBvcGFjaXR5LCBkZWZpbml0aW9ucywgTm9uVGVybWluYWxOb2RlKTtcblxuICAgIHJldHVybiBjYWxsQWhlYWRNb2RpZmllclJ1bGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDYWxsQWhlYWRNb2RpZmllclJ1bGUiLCJmcm9tTm90aGluZyIsIm5hbWUiLCJjYWxsQWhlYWRNb2RpZmllclJ1bGVOYW1lIiwiY2FsbEFoZWFkTW9kaWZpZXJSdWxlRGVmaW5pdGlvbiIsIkNhbGxBaGVhZE1vZGlmaWVyUnVsZURlZmluaXRpb24iLCJvcGFjaXR5IiwiZGVmaW5pdGlvbnMiLCJOb25UZXJtaW5hbE5vZGUiLCJDYWxsQWhlYWRNb2RpZmllckJORk5vZGUiLCJjYWxsQWhlYWRNb2RpZmllclJ1bGUiLCJSdWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7OzsyREFOSjt3RUFDb0I7NEVBQ087eUJBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0IsSUFBQSxBQUFNQSxzQ0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7ZUFBTixrQkFBTUE7O2tCQUFBQTs7WUFDWkMsS0FBQUE7bUJBQVAsU0FBT0E7Z0JBQ0wsSUFBTUMsT0FBT0Msb0NBQXlCLEVBQ2hDQyxrQ0FBa0NDLDhCQUErQixDQUFDSixXQUFXLElBQzdFSyxVQUFVLE1BQ1ZDLGNBQWM7b0JBQ1pIO2lCQUNELEVBQ0RJLGtCQUFrQkMsMEJBQXdCLEVBQzFDQyx3QkFBd0IsSUFUYlYsc0JBU3VDRSxNQUFNSSxTQUFTQyxhQUFhQztnQkFFcEYsT0FBT0U7WUFDVDs7O1dBWm1CVjtFQUE4QlcsYUFBSSJ9
|
package/lib/rule.js
CHANGED
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return Rule;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _necessary = require("necessary");
|
|
11
12
|
var _constants = require("./constants");
|
|
12
13
|
var _occamlexers = require("occam-lexers");
|
|
13
14
|
var _string = require("./utilities/string");
|
|
@@ -30,7 +31,7 @@ function _create_class(Constructor, protoProps, staticProps) {
|
|
|
30
31
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
31
32
|
return Constructor;
|
|
32
33
|
}
|
|
33
|
-
var opaqueSpecialSymbol = _occamlexers.specialSymbols.opaque, semiOpaqueSpecialSymbol = _occamlexers.specialSymbols.semiOpaque;
|
|
34
|
+
var clear = _necessary.arrayUtilities.clear, opaqueSpecialSymbol = _occamlexers.specialSymbols.opaque, semiOpaqueSpecialSymbol = _occamlexers.specialSymbols.semiOpaque;
|
|
34
35
|
var Rule = /*#__PURE__*/ function() {
|
|
35
36
|
function Rule(name, opacity, definitions, NonTerminalNode) {
|
|
36
37
|
_class_call_check(this, Rule);
|
|
@@ -105,18 +106,16 @@ var Rule = /*#__PURE__*/ function() {
|
|
|
105
106
|
{
|
|
106
107
|
key: "parse",
|
|
107
108
|
value: function parse(nodes, state, callback, callAhead) {
|
|
108
|
-
var _this = this;
|
|
109
109
|
var parsed;
|
|
110
|
-
var savedPrecedence = state.getSavedPrecedence();
|
|
110
|
+
var opacity = this.opacity, ruleName = this.name, childNodes = [], nonTerminalNode = this.NonTerminalNode.fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity), savedPrecedence = state.getSavedPrecedence();
|
|
111
|
+
var node = nonTerminalNode; ///
|
|
112
|
+
nodes.push(node);
|
|
111
113
|
parsed = this.definitions.some(function(definition) {
|
|
112
|
-
var
|
|
113
|
-
|
|
114
|
-
nonTerminalNode = _this.NonTerminalNode.fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity);
|
|
114
|
+
var parsed;
|
|
115
|
+
clear(childNodes);
|
|
115
116
|
var precedence = definition.getPrecedence();
|
|
116
|
-
node = nonTerminalNode; ///
|
|
117
|
-
nodes.push(node);
|
|
118
117
|
state.setPrecedence(precedence);
|
|
119
|
-
|
|
118
|
+
callback = function() {
|
|
120
119
|
var parsed;
|
|
121
120
|
parsed = true;
|
|
122
121
|
var precedence = state.getPrecedence();
|
|
@@ -150,18 +149,26 @@ var Rule = /*#__PURE__*/ function() {
|
|
|
150
149
|
if (rewrittenNonTerminalNode !== null) {
|
|
151
150
|
if (!parsed) {
|
|
152
151
|
nodes.pop();
|
|
153
|
-
|
|
154
|
-
nodes.push(
|
|
152
|
+
node = nonTerminalNode; ///
|
|
153
|
+
nodes.push(node);
|
|
155
154
|
}
|
|
156
155
|
}
|
|
157
156
|
return parsed;
|
|
158
|
-
}
|
|
157
|
+
};
|
|
158
|
+
parsed = definition.parse(childNodes, state, callback, callAhead);
|
|
159
159
|
if (!parsed) {
|
|
160
|
-
nodes.pop();
|
|
161
160
|
state.resetPrecedence(savedPrecedence);
|
|
162
161
|
}
|
|
163
162
|
return parsed;
|
|
164
163
|
});
|
|
164
|
+
if (parsed) {
|
|
165
|
+
var parentNode = node; ///
|
|
166
|
+
childNodes.forEach(function(childNode) {
|
|
167
|
+
childNode.setParentNode(parentNode);
|
|
168
|
+
});
|
|
169
|
+
} else {
|
|
170
|
+
nodes.pop();
|
|
171
|
+
}
|
|
165
172
|
if (callAhead === null) {
|
|
166
173
|
state.resetPrecedence(savedPrecedence);
|
|
167
174
|
}
|
|
@@ -206,4 +213,4 @@ var Rule = /*#__PURE__*/ function() {
|
|
|
206
213
|
return Rule;
|
|
207
214
|
}();
|
|
208
215
|
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuaW1wb3J0IHsgcGFkZGluZ0Zyb21QYWRkaW5nTGVuZ3RoIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5jb25zdCB7IG9wYXF1ZSA6IG9wYXF1ZVNwZWNpYWxTeW1ib2wgLCBzZW1pT3BhcXVlOiBzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGUge1xuICBjb25zdHJ1Y3RvcihuYW1lLCBvcGFjaXR5LCBkZWZpbml0aW9ucywgTm9uVGVybWluYWxOb2RlKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xuICAgIHRoaXMuZGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucztcbiAgICB0aGlzLk5vblRlcm1pbmFsTm9kZSA9IE5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldE9wYWNpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMub3BhY2l0eTtcbiAgfVxuXG4gIGdldERlZmluaXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmRlZmluaXRpb25zO1xuICB9XG5cbiAgZ2V0Tm9uVGVybWluYWxOb2RlKCkge1xuICAgIHJldHVybiB0aGlzLk5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRPcGFjaXR5KG9wYWNpdHkpIHtcbiAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xuICB9XG5cbiAgc2V0RGVmaW5pdGlvbnMoZGVmaW5pdGlvbnMpIHtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gIH1cblxuICBzZXROb25UZXJtaW5hbE5vZGUoTm9uVGVybWluYWxOb2RlKSB7XG4gICAgdGhpcy5Ob25UZXJtaW5hbE5vZGUgPSBOb25UZXJtaW5hbE5vZGU7XG4gIH1cblxuICBpc09wYXF1ZSgpIHtcbiAgICBjb25zdCBvcGFxdWUgPSAodGhpcy5vcGFjaXR5ID09PSBvcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBvcGFxdWU7XG4gIH1cblxuICBpc1NlbWlPcGFxdWUoKSB7XG4gICAgY29uc3Qgb3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gc2VtaU9wYXF1ZVNwZWNpYWxTeW1ib2wpO1xuXG4gICAgcmV0dXJuIG9wYXF1ZTtcbiAgfVxuXG4gIHBhcnNlKG5vZGVzLCBzdGF0ZSwgY2FsbGJhY2ssIGNhbGxBaGVhZCkge1xuICAgIGxldCBwYXJzZWQ7XG5cbiAgICBjb25zdCBzYXZlZFByZWNlZGVuY2UgPSBzdGF0ZS5nZXRTYXZlZFByZWNlZGVuY2UoKTtcblxuICAgIHBhcnNlZCA9IHRoaXMuZGVmaW5pdGlvbnMuc29tZSgoZGVmaW5pdGlvbikgPT4ge1xuICAgICAgbGV0IG5vZGUsXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlO1xuXG4gICAgICBjb25zdCBydWxlTmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICAgIG9wYWNpdHkgPSB0aGlzLm9wYWNpdHksXG4gICAgICAgICAgICBjaGlsZE5vZGVzID0gW107XG5cbiAgICAgIG5vblRlcm1pbmFsTm9kZSA9IHRoaXMuTm9uVGVybWluYWxOb2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTtcblxuICAgICAgY29uc3QgcHJlY2VkZW5jZSA9IGRlZmluaXRpb24uZ2V0UHJlY2VkZW5jZSgpO1xuXG4gICAgICBub2RlID0gbm9uVGVybWluYWxOb2RlOyAvLy9cblxuICAgICAgbm9kZXMucHVzaChub2RlKTtcblxuICAgICAgc3RhdGUuc2V0UHJlY2VkZW5jZShwcmVjZWRlbmNlKTtcblxuICAgICAgY29uc3QgcGFyc2VkID0gZGVmaW5pdGlvbi5wYXJzZShjaGlsZE5vZGVzLCBzdGF0ZSwgKCkgPT4ge1xuICAgICAgICBsZXQgcGFyc2VkO1xuXG4gICAgICAgIHBhcnNlZCA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgcHJlY2VkZW5jZSA9IHN0YXRlLmdldFByZWNlZGVuY2UoKTtcblxuICAgICAgICBub25UZXJtaW5hbE5vZGUuc2V0UHJlY2VkZW5jZShwcmVjZWRlbmNlKTtcblxuICAgICAgICBjb25zdCByZXdyaXR0ZW5Ob25UZXJtaW5hbE5vZGUgPSBub25UZXJtaW5hbE5vZGUucmV3cml0ZSgpO1xuXG4gICAgICAgIGlmIChyZXdyaXR0ZW5Ob25UZXJtaW5hbE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICBpZiAocGFyc2VkKSB7XG4gICAgICAgICAgICBub2Rlcy5wb3AoKTtcblxuICAgICAgICAgICAgbm9kZSA9IHJld3JpdHRlbk5vblRlcm1pbmFsTm9kZTsgLy8vXG5cbiAgICAgICAgICAgIG5vZGVzLnB1c2gobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZCkge1xuICAgICAgICAgIGNvbnN0IGVtcHR5ID0gbm9kZS5pc0VtcHR5KCk7XG5cbiAgICAgICAgICBpZiAoZW1wdHkpIHtcbiAgICAgICAgICAgIHBhcnNlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJzZWQpIHtcbiAgICAgICAgICBjb25zdCB1bnByZWNlZGVudGVkID0gbm9kZS5pc1VucHJlY2VkZW50ZWQoKTtcblxuICAgICAgICAgIGlmICh1bnByZWNlZGVudGVkKSB7XG4gICAgICAgICAgICBwYXJzZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyc2VkKSB7XG4gICAgICAgICAgaWYgKGNhbGxBaGVhZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc3RhdGUucmVzZXRQcmVjZWRlbmNlKHNhdmVkUHJlY2VkZW5jZSk7XG5cbiAgICAgICAgICAgIHBhcnNlZCA9IGNhbGxBaGVhZCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXdyaXR0ZW5Ob25UZXJtaW5hbE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICBpZiAoIXBhcnNlZCkge1xuICAgICAgICAgICAgbm9kZXMucG9wKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub25UZXJtaW5hbE5vZGU7IC8vL1xuXG4gICAgICAgICAgICBub2Rlcy5wdXNoKG5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICB9LCBjYWxsQWhlYWQpO1xuXG4gICAgICBpZiAoIXBhcnNlZCkge1xuICAgICAgICBub2Rlcy5wb3AoKTtcblxuICAgICAgICBzdGF0ZS5yZXNldFByZWNlZGVuY2Uoc2F2ZWRQcmVjZWRlbmNlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICB9KTtcblxuICAgIGlmIChjYWxsQWhlYWQgPT09IG51bGwpIHtcbiAgICAgIHN0YXRlLnJlc2V0UHJlY2VkZW5jZShzYXZlZFByZWNlZGVuY2UpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWQ7XG4gIH1cblxuICBhc1N0cmluZyhtYXhpbXVtUnVsZU5hbWVMZW5ndGgsIG11bHRpTGluZSA9IHRydWUpIHtcbiAgICBjb25zdCBkZWZpbml0aW9uc0xlbmd0aCA9IHRoaXMuZGVmaW5pdGlvbnMubGVuZ3RoO1xuXG4gICAgbXVsdGlMaW5lID0gbXVsdGlMaW5lICYmIChkZWZpbml0aW9uc0xlbmd0aCA+IDEpOyAgLy8vXG5cbiAgICBjb25zdCBtYXhpbXVtUGFkZGluZyA9IHBhZGRpbmdGcm9tUGFkZGluZ0xlbmd0aChtYXhpbXVtUnVsZU5hbWVMZW5ndGgpLFxuICAgICAgICAgIGRlZmluaXRpb25zU3RyaW5nID0gdGhpcy5kZWZpbml0aW9ucy5yZWR1Y2UoKGRlZmluaXRpb25zU3RyaW5nLCBkZWZpbml0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZWZpbml0aW9uU3RyaW5nID0gZGVmaW5pdGlvbi5hc1N0cmluZygpO1xuXG4gICAgICAgICAgICBpZiAoZGVmaW5pdGlvbnNTdHJpbmcgPT09IEVNUFRZX1NUUklORykge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uc1N0cmluZyA9IGRlZmluaXRpb25TdHJpbmc7IC8vL1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZGVmaW5pdGlvbnNTdHJpbmcgPSBtdWx0aUxpbmUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtkZWZpbml0aW9uc1N0cmluZ31cblxuJHttYXhpbXVtUGFkZGluZ30gICB8ICR7ZGVmaW5pdGlvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtkZWZpbml0aW9uc1N0cmluZ30gfCAke2RlZmluaXRpb25TdHJpbmd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRlZmluaXRpb25zU3RyaW5nO1xuICAgICAgICAgIH0sIEVNUFRZX1NUUklORyksXG4gICAgICAgICAgcnVsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lTGVuZ3RoID0gcnVsZU5hbWUubGVuZ3RoLFxuICAgICAgICAgIG9wYWNpdHlTdHJpbmcgPSAodGhpcy5vcGFjaXR5ID09PSBudWxsKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTVBUWV9TVFJJTkcgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGFjaXR5LCAvLy9cbiAgICAgICAgICBvcGFjaXR5U3RyaW5nTGVuZ3RoID0gb3BhY2l0eVN0cmluZy5sZW5ndGgsXG4gICAgICAgICAgcGFkZGluZ0xlbmd0aCA9IG1heGltdW1SdWxlTmFtZUxlbmd0aCAtIHJ1bGVOYW1lTGVuZ3RoIC0gb3BhY2l0eVN0cmluZ0xlbmd0aCxcbiAgICAgICAgICBwYWRkaW5nID0gcGFkZGluZ0Zyb21QYWRkaW5nTGVuZ3RoKHBhZGRpbmdMZW5ndGgpO1xuXG4gICAgY29uc3Qgc2VtaWNvbG9uU3RyaW5nID0gbXVsdGlMaW5lID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFxuXG4ke21heGltdW1QYWRkaW5nfSAgIDtgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiA7XCIsXG4gICAgICAgICAgc3RyaW5nID0gYFxuXG4ke3RoaXMubmFtZX0ke29wYWNpdHlTdHJpbmd9JHtwYWRkaW5nfSA6Oj0gJHtkZWZpbml0aW9uc1N0cmluZ30ke3NlbWljb2xvblN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZU9wYWNpdHlEZWZpbml0aW9uc0FuZE5vblRlcm1pbmFsTm9kZShDbGFzcywgbmFtZSwgb3BhY2l0eSwgZGVmaW5pdGlvbnMsIE5vblRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChOb25UZXJtaW5hbE5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgTm9uVGVybWluYWxOb2RlID0gZGVmaW5pdGlvbnM7ICAvLy9cblxuICAgICAgZGVmaW5pdGlvbnMgPSBvcGFjaXR5OyAgLy8vXG5cbiAgICAgIG9wYWNpdHkgPSBuYW1lOyAvLy9cblxuICAgICAgbmFtZSA9IENsYXNzOyAvLy9cblxuICAgICAgQ2xhc3MgPSBSdWxlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBydWxlID0gbmV3IENsYXNzKG5hbWUsIG9wYWNpdHksIGRlZmluaXRpb25zLCBOb25UZXJtaW5hbE5vZGUpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJSdWxlIiwib3BhcXVlIiwib3BhcXVlU3BlY2lhbFN5bWJvbCIsInNwZWNpYWxTeW1ib2xzIiwic2VtaU9wYXF1ZSIsInNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sIiwibmFtZSIsIm9wYWNpdHkiLCJkZWZpbml0aW9ucyIsIk5vblRlcm1pbmFsTm9kZSIsImdldE5hbWUiLCJnZXRPcGFjaXR5IiwiZ2V0RGVmaW5pdGlvbnMiLCJnZXROb25UZXJtaW5hbE5vZGUiLCJzZXROYW1lIiwic2V0T3BhY2l0eSIsInNldERlZmluaXRpb25zIiwic2V0Tm9uVGVybWluYWxOb2RlIiwiaXNPcGFxdWUiLCJpc1NlbWlPcGFxdWUiLCJwYXJzZSIsIm5vZGVzIiwic3RhdGUiLCJjYWxsYmFjayIsImNhbGxBaGVhZCIsInBhcnNlZCIsInNhdmVkUHJlY2VkZW5jZSIsImdldFNhdmVkUHJlY2VkZW5jZSIsInNvbWUiLCJkZWZpbml0aW9uIiwibm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsInJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5IiwicHJlY2VkZW5jZSIsImdldFByZWNlZGVuY2UiLCJwdXNoIiwic2V0UHJlY2VkZW5jZSIsInJld3JpdHRlbk5vblRlcm1pbmFsTm9kZSIsInJld3JpdGUiLCJwb3AiLCJlbXB0eSIsImlzRW1wdHkiLCJ1bnByZWNlZGVudGVkIiwiaXNVbnByZWNlZGVudGVkIiwicmVzZXRQcmVjZWRlbmNlIiwiYXNTdHJpbmciLCJtYXhpbXVtUnVsZU5hbWVMZW5ndGgiLCJtdWx0aUxpbmUiLCJkZWZpbml0aW9uc0xlbmd0aCIsImxlbmd0aCIsIm1heGltdW1QYWRkaW5nIiwicGFkZGluZ0Zyb21QYWRkaW5nTGVuZ3RoIiwiZGVmaW5pdGlvbnNTdHJpbmciLCJyZWR1Y2UiLCJkZWZpbml0aW9uU3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwicnVsZU5hbWVMZW5ndGgiLCJvcGFjaXR5U3RyaW5nIiwib3BhY2l0eVN0cmluZ0xlbmd0aCIsInBhZGRpbmdMZW5ndGgiLCJwYWRkaW5nIiwic2VtaWNvbG9uU3RyaW5nIiwic3RyaW5nIiwiZnJvbU5hbWVPcGFjaXR5RGVmaW5pdGlvbnNBbmROb25UZXJtaW5hbE5vZGUiLCJDbGFzcyIsInVuZGVmaW5lZCIsInJ1bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7O3lCQU5ROzJCQUNFO3NCQUNVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6QyxJQUFRQyxBQUFTQyxzQkFBOERDLDJCQUFjLENBQXJGRixRQUErQkcsQUFBWUMsMEJBQTRCRiwyQkFBYyxDQUF0REM7QUFFeEIsSUFBQSxBQUFNSixxQkFBTjthQUFNQSxLQUNQTSxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxlQUFlO2dDQURwQ1Q7UUFFakIsSUFBSSxDQUFDTSxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsZUFBZSxHQUFHQTs7a0JBTE5UOztZQVFuQlUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixJQUFJO1lBQ2xCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixPQUFPO1lBQ3JCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixXQUFXO1lBQ3pCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixlQUFlO1lBQzdCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFSLElBQUk7Z0JBQ1YsSUFBSSxDQUFDQSxJQUFJLEdBQUdBO1lBQ2Q7OztZQUVBUyxLQUFBQTttQkFBQUEsU0FBQUEsV0FBV1IsT0FBTztnQkFDaEIsSUFBSSxDQUFDQSxPQUFPLEdBQUdBO1lBQ2pCOzs7WUFFQVMsS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVSLFdB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
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzcGVjaWFsU3ltYm9scyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcbmltcG9ydCB7IHBhZGRpbmdGcm9tUGFkZGluZ0xlbmd0aCB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuY29uc3QgeyBjbGVhciB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IG9wYXF1ZTogb3BhcXVlU3BlY2lhbFN5bWJvbCwgc2VtaU9wYXF1ZTogc2VtaU9wYXF1ZVNwZWNpYWxTeW1ib2wgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSdWxlIHtcbiAgY29uc3RydWN0b3IobmFtZSwgb3BhY2l0eSwgZGVmaW5pdGlvbnMsIE5vblRlcm1pbmFsTm9kZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG4gICAgdGhpcy5Ob25UZXJtaW5hbE5vZGUgPSBOb25UZXJtaW5hbE5vZGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRPcGFjaXR5KCkge1xuICAgIHJldHVybiB0aGlzLm9wYWNpdHk7XG4gIH1cblxuICBnZXREZWZpbml0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9ucztcbiAgfVxuXG4gIGdldE5vblRlcm1pbmFsTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5Ob25UZXJtaW5hbE5vZGU7XG4gIH1cblxuICBzZXROYW1lKG5hbWUpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgc2V0T3BhY2l0eShvcGFjaXR5KSB7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgfVxuXG4gIHNldERlZmluaXRpb25zKGRlZmluaXRpb25zKSB7XG4gICAgdGhpcy5kZWZpbml0aW9ucyA9IGRlZmluaXRpb25zO1xuICB9XG5cbiAgc2V0Tm9uVGVybWluYWxOb2RlKE5vblRlcm1pbmFsTm9kZSkge1xuICAgIHRoaXMuTm9uVGVybWluYWxOb2RlID0gTm9uVGVybWluYWxOb2RlO1xuICB9XG5cbiAgaXNPcGFxdWUoKSB7XG4gICAgY29uc3Qgb3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gb3BhcXVlU3BlY2lhbFN5bWJvbCk7XG5cbiAgICByZXR1cm4gb3BhcXVlO1xuICB9XG5cbiAgaXNTZW1pT3BhcXVlKCkge1xuICAgIGNvbnN0IG9wYXF1ZSA9ICh0aGlzLm9wYWNpdHkgPT09IHNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sKTtcblxuICAgIHJldHVybiBvcGFxdWU7XG4gIH1cblxuICBwYXJzZShub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpIHtcbiAgICBsZXQgcGFyc2VkO1xuXG4gICAgY29uc3Qgb3BhY2l0eSA9IHRoaXMub3BhY2l0eSxcbiAgICAgICAgICBydWxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IFtdLFxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IHRoaXMuTm9uVGVybWluYWxOb2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KSxcbiAgICAgICAgICBzYXZlZFByZWNlZGVuY2UgPSBzdGF0ZS5nZXRTYXZlZFByZWNlZGVuY2UoKTtcblxuICAgIGxldCBub2RlID0gbm9uVGVybWluYWxOb2RlOyAvLy9cblxuICAgIG5vZGVzLnB1c2gobm9kZSk7XG5cbiAgICBwYXJzZWQgPSB0aGlzLmRlZmluaXRpb25zLnNvbWUoKGRlZmluaXRpb24pID0+IHtcbiAgICAgIGxldCBwYXJzZWQ7XG5cbiAgICAgIGNsZWFyKGNoaWxkTm9kZXMpO1xuXG4gICAgICBjb25zdCBwcmVjZWRlbmNlID0gZGVmaW5pdGlvbi5nZXRQcmVjZWRlbmNlKCk7XG5cbiAgICAgIHN0YXRlLnNldFByZWNlZGVuY2UocHJlY2VkZW5jZSk7XG5cbiAgICAgIGNhbGxiYWNrID0gKCkgPT4geyAgLy8vXG4gICAgICAgIGxldCBwYXJzZWQ7XG5cbiAgICAgICAgcGFyc2VkID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBwcmVjZWRlbmNlID0gc3RhdGUuZ2V0UHJlY2VkZW5jZSgpO1xuXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZS5zZXRQcmVjZWRlbmNlKHByZWNlZGVuY2UpO1xuXG4gICAgICAgIGNvbnN0IHJld3JpdHRlbk5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZS5yZXdyaXRlKCk7XG5cbiAgICAgICAgaWYgKHJld3JpdHRlbk5vblRlcm1pbmFsTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmIChwYXJzZWQpIHtcbiAgICAgICAgICAgIG5vZGVzLnBvcCgpO1xuXG4gICAgICAgICAgICBub2RlID0gcmV3cml0dGVuTm9uVGVybWluYWxOb2RlOyAvLy9cblxuICAgICAgICAgICAgbm9kZXMucHVzaChub2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyc2VkKSB7XG4gICAgICAgICAgY29uc3QgZW1wdHkgPSBub2RlLmlzRW1wdHkoKTtcblxuICAgICAgICAgIGlmIChlbXB0eSkge1xuICAgICAgICAgICAgcGFyc2VkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZCkge1xuICAgICAgICAgIGNvbnN0IHVucHJlY2VkZW50ZWQgPSBub2RlLmlzVW5wcmVjZWRlbnRlZCgpO1xuXG4gICAgICAgICAgaWYgKHVucHJlY2VkZW50ZWQpIHtcbiAgICAgICAgICAgIHBhcnNlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJzZWQpIHtcbiAgICAgICAgICBpZiAoY2FsbEFoZWFkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzdGF0ZS5yZXNldFByZWNlZGVuY2Uoc2F2ZWRQcmVjZWRlbmNlKTtcblxuICAgICAgICAgICAgcGFyc2VkID0gY2FsbEFoZWFkKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJld3JpdHRlbk5vblRlcm1pbmFsTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmICghcGFyc2VkKSB7XG4gICAgICAgICAgICBub2Rlcy5wb3AoKTtcblxuICAgICAgICAgICAgbm9kZSA9IG5vblRlcm1pbmFsTm9kZTsgLy8vXG5cbiAgICAgICAgICAgIG5vZGVzLnB1c2gobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICAgIH07XG5cbiAgICAgIHBhcnNlZCA9IGRlZmluaXRpb24ucGFyc2UoY2hpbGROb2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpO1xuXG4gICAgICBpZiAoIXBhcnNlZCkge1xuICAgICAgICBzdGF0ZS5yZXNldFByZWNlZGVuY2Uoc2F2ZWRQcmVjZWRlbmNlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICB9KTtcblxuICAgIGlmIChwYXJzZWQpIHtcbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICAgIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgICAgIGNoaWxkTm9kZS5zZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVzLnBvcCgpO1xuICAgIH1cblxuICAgIGlmIChjYWxsQWhlYWQgPT09IG51bGwpIHtcbiAgICAgIHN0YXRlLnJlc2V0UHJlY2VkZW5jZShzYXZlZFByZWNlZGVuY2UpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWQ7XG4gIH1cblxuICBhc1N0cmluZyhtYXhpbXVtUnVsZU5hbWVMZW5ndGgsIG11bHRpTGluZSA9IHRydWUpIHtcbiAgICBjb25zdCBkZWZpbml0aW9uc0xlbmd0aCA9IHRoaXMuZGVmaW5pdGlvbnMubGVuZ3RoO1xuXG4gICAgbXVsdGlMaW5lID0gbXVsdGlMaW5lICYmIChkZWZpbml0aW9uc0xlbmd0aCA+IDEpOyAgLy8vXG5cbiAgICBjb25zdCBtYXhpbXVtUGFkZGluZyA9IHBhZGRpbmdGcm9tUGFkZGluZ0xlbmd0aChtYXhpbXVtUnVsZU5hbWVMZW5ndGgpLFxuICAgICAgICAgIGRlZmluaXRpb25zU3RyaW5nID0gdGhpcy5kZWZpbml0aW9ucy5yZWR1Y2UoKGRlZmluaXRpb25zU3RyaW5nLCBkZWZpbml0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZWZpbml0aW9uU3RyaW5nID0gZGVmaW5pdGlvbi5hc1N0cmluZygpO1xuXG4gICAgICAgICAgICBpZiAoZGVmaW5pdGlvbnNTdHJpbmcgPT09IEVNUFRZX1NUUklORykge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uc1N0cmluZyA9IGRlZmluaXRpb25TdHJpbmc7IC8vL1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZGVmaW5pdGlvbnNTdHJpbmcgPSBtdWx0aUxpbmUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtkZWZpbml0aW9uc1N0cmluZ31cblxuJHttYXhpbXVtUGFkZGluZ30gICB8ICR7ZGVmaW5pdGlvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtkZWZpbml0aW9uc1N0cmluZ30gfCAke2RlZmluaXRpb25TdHJpbmd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRlZmluaXRpb25zU3RyaW5nO1xuICAgICAgICAgIH0sIEVNUFRZX1NUUklORyksXG4gICAgICAgICAgcnVsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lTGVuZ3RoID0gcnVsZU5hbWUubGVuZ3RoLFxuICAgICAgICAgIG9wYWNpdHlTdHJpbmcgPSAodGhpcy5vcGFjaXR5ID09PSBudWxsKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTVBUWV9TVFJJTkcgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGFjaXR5LCAvLy9cbiAgICAgICAgICBvcGFjaXR5U3RyaW5nTGVuZ3RoID0gb3BhY2l0eVN0cmluZy5sZW5ndGgsXG4gICAgICAgICAgcGFkZGluZ0xlbmd0aCA9IG1heGltdW1SdWxlTmFtZUxlbmd0aCAtIHJ1bGVOYW1lTGVuZ3RoIC0gb3BhY2l0eVN0cmluZ0xlbmd0aCxcbiAgICAgICAgICBwYWRkaW5nID0gcGFkZGluZ0Zyb21QYWRkaW5nTGVuZ3RoKHBhZGRpbmdMZW5ndGgpO1xuXG4gICAgY29uc3Qgc2VtaWNvbG9uU3RyaW5nID0gbXVsdGlMaW5lID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFxuXG4ke21heGltdW1QYWRkaW5nfSAgIDtgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiA7XCIsXG4gICAgICAgICAgc3RyaW5nID0gYFxuXG4ke3RoaXMubmFtZX0ke29wYWNpdHlTdHJpbmd9JHtwYWRkaW5nfSA6Oj0gJHtkZWZpbml0aW9uc1N0cmluZ30ke3NlbWljb2xvblN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZU9wYWNpdHlEZWZpbml0aW9uc0FuZE5vblRlcm1pbmFsTm9kZShDbGFzcywgbmFtZSwgb3BhY2l0eSwgZGVmaW5pdGlvbnMsIE5vblRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChOb25UZXJtaW5hbE5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgTm9uVGVybWluYWxOb2RlID0gZGVmaW5pdGlvbnM7ICAvLy9cblxuICAgICAgZGVmaW5pdGlvbnMgPSBvcGFjaXR5OyAgLy8vXG5cbiAgICAgIG9wYWNpdHkgPSBuYW1lOyAvLy9cblxuICAgICAgbmFtZSA9IENsYXNzOyAvLy9cblxuICAgICAgQ2xhc3MgPSBSdWxlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBydWxlID0gbmV3IENsYXNzKG5hbWUsIG9wYWNpdHksIGRlZmluaXRpb25zLCBOb25UZXJtaW5hbE5vZGUpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJSdWxlIiwiY2xlYXIiLCJhcnJheVV0aWxpdGllcyIsIm9wYXF1ZSIsIm9wYXF1ZVNwZWNpYWxTeW1ib2wiLCJzcGVjaWFsU3ltYm9scyIsInNlbWlPcGFxdWUiLCJzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCIsIm5hbWUiLCJvcGFjaXR5IiwiZGVmaW5pdGlvbnMiLCJOb25UZXJtaW5hbE5vZGUiLCJnZXROYW1lIiwiZ2V0T3BhY2l0eSIsImdldERlZmluaXRpb25zIiwiZ2V0Tm9uVGVybWluYWxOb2RlIiwic2V0TmFtZSIsInNldE9wYWNpdHkiLCJzZXREZWZpbml0aW9ucyIsInNldE5vblRlcm1pbmFsTm9kZSIsImlzT3BhcXVlIiwiaXNTZW1pT3BhcXVlIiwicGFyc2UiLCJub2RlcyIsInN0YXRlIiwiY2FsbGJhY2siLCJjYWxsQWhlYWQiLCJwYXJzZWQiLCJydWxlTmFtZSIsImNoaWxkTm9kZXMiLCJub25UZXJtaW5hbE5vZGUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsInNhdmVkUHJlY2VkZW5jZSIsImdldFNhdmVkUHJlY2VkZW5jZSIsIm5vZGUiLCJwdXNoIiwic29tZSIsImRlZmluaXRpb24iLCJwcmVjZWRlbmNlIiwiZ2V0UHJlY2VkZW5jZSIsInNldFByZWNlZGVuY2UiLCJyZXdyaXR0ZW5Ob25UZXJtaW5hbE5vZGUiLCJyZXdyaXRlIiwicG9wIiwiZW1wdHkiLCJpc0VtcHR5IiwidW5wcmVjZWRlbnRlZCIsImlzVW5wcmVjZWRlbnRlZCIsInJlc2V0UHJlY2VkZW5jZSIsInBhcmVudE5vZGUiLCJmb3JFYWNoIiwiY2hpbGROb2RlIiwic2V0UGFyZW50Tm9kZSIsImFzU3RyaW5nIiwibWF4aW11bVJ1bGVOYW1lTGVuZ3RoIiwibXVsdGlMaW5lIiwiZGVmaW5pdGlvbnNMZW5ndGgiLCJsZW5ndGgiLCJtYXhpbXVtUGFkZGluZyIsInBhZGRpbmdGcm9tUGFkZGluZ0xlbmd0aCIsImRlZmluaXRpb25zU3RyaW5nIiwicmVkdWNlIiwiZGVmaW5pdGlvblN0cmluZyIsIkVNUFRZX1NUUklORyIsInJ1bGVOYW1lTGVuZ3RoIiwib3BhY2l0eVN0cmluZyIsIm9wYWNpdHlTdHJpbmdMZW5ndGgiLCJwYWRkaW5nTGVuZ3RoIiwicGFkZGluZyIsInNlbWljb2xvblN0cmluZyIsInN0cmluZyIsImZyb21OYW1lT3BhY2l0eURlZmluaXRpb25zQW5kTm9uVGVybWluYWxOb2RlIiwiQ2xhc3MiLCJ1bmRlZmluZWQiLCJydWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVdxQkE7Ozt5QkFUVTt5QkFFRjsyQkFDRTtzQkFDVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekMsSUFBTSxBQUFFQyxRQUFVQyx5QkFBYyxDQUF4QkQsT0FDQUUsQUFBUUMsc0JBQTZEQywyQkFBYyxDQUFuRkYsUUFBNkJHLEFBQVlDLDBCQUE0QkYsMkJBQWMsQ0FBdERDO0FBRXRCLElBQUEsQUFBTU4scUJBQU47YUFBTUEsS0FDUFEsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsZUFBZTtnQ0FEcENYO1FBRWpCLElBQUksQ0FBQ1EsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLGVBQWUsR0FBR0E7O2tCQUxOWDs7WUFRbkJZLEtBQUFBO21CQUFBQSxTQUFB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
|
package/lib/ruleNames.js
CHANGED
|
@@ -9,6 +9,9 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
CallAheadModifierRuleName: function() {
|
|
13
|
+
return CallAheadModifierRuleName;
|
|
14
|
+
},
|
|
12
15
|
choiceOfPartsRuleName: function() {
|
|
13
16
|
return choiceOfPartsRuleName;
|
|
14
17
|
},
|
|
@@ -30,9 +33,6 @@ _export(exports, {
|
|
|
30
33
|
errorRuleName: function() {
|
|
31
34
|
return errorRuleName;
|
|
32
35
|
},
|
|
33
|
-
lookAheadModifierRuleName: function() {
|
|
34
|
-
return lookAheadModifierRuleName;
|
|
35
|
-
},
|
|
36
36
|
nameRuleName: function() {
|
|
37
37
|
return nameRuleName;
|
|
38
38
|
},
|
|
@@ -115,7 +115,7 @@ var nonTerminalPartRuleName = "nonTerminalPart";
|
|
|
115
115
|
var sequenceOfPartsRuleName = "sequenceOfParts";
|
|
116
116
|
var opacityModifierRuleName = "opacityModifier";
|
|
117
117
|
var noWhitespacePartRuleName = "noWhitespace";
|
|
118
|
-
var
|
|
118
|
+
var CallAheadModifierRuleName = "callAheadModifier";
|
|
119
119
|
var regularExpressionRuleName = "regularExpression";
|
|
120
120
|
var optionalQuantifierRuleName = "optionalQuantifier";
|
|
121
121
|
var startOfContentPartRuleName = "startOfContent";
|
|
@@ -123,4 +123,4 @@ var oneOrMoreQuantifierRuleName = "oneOrMoreQuantifier";
|
|
|
123
123
|
var zeroOrMoreQuantifierRuleName = "zeroOrMoreQuantifier";
|
|
124
124
|
var significantTokenTypeRuleName = "significantTokenType";
|
|
125
125
|
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBuYW1lUnVsZU5hbWUgPSBcIm5hbWVcIjtcbmV4cG9ydCBjb25zdCBwYXJ0UnVsZU5hbWUgPSBcInBhcnRcIjtcbmV4cG9ydCBjb25zdCBydWxlUnVsZU5hbWUgPSBcInJ1bGVcIjtcbmV4cG9ydCBjb25zdCBlcnJvclJ1bGVOYW1lID0gXCJlcnJvclwiO1xuZXhwb3J0IGNvbnN0IGVwc2lsb25SdWxlTmFtZSA9IFwiZXBzaWxvblwiO1xuZXhwb3J0IGNvbnN0IHJ1bGVOYW1lUnVsZU5hbWUgPSBcInJ1bGVOYW1lXCI7XG5leHBvcnQgY29uc3QgZG9jdW1lbnRSdWxlTmFtZSA9IFwiZG9jdW1lbnRcIjtcbmV4cG9ydCBjb25zdCB3aWxkY2FyZFJ1bGVOYW1lID0gXCJ3aWxkY2FyZFwiO1xuZXhwb3J0IGNvbnN0IGVuZE9mTGluZVJ1bGVOYW1lID0gXCJlbmRPZkxpbmVcIjtcbmV4cG9ydCBjb25zdCBkZWZpbml0aW9uUnVsZU5hbWUgPSBcImRlZmluaXRpb25cIjtcbmV4cG9ydCBjb25zdCBwcmVjZWRlbmNlUnVsZU5hbWUgPSBcInByZWNlZGVuY2VcIjtcbmV4cG9ydCBjb25zdCBxdWFudGlmaWVyUnVsZU5hbWUgPSBcInF1YW50aWZpZXJcIjtcbmV4cG9ydCBjb25zdCBwYXJ0Q2hvaWNlUnVsZU5hbWUgPSBcInBhcnRDaG9pY2VcIjtcbmV4cG9ydCBjb25zdCBkZWZpbml0aW9uc1J1bGVOYW1lID0gXCJkZWZpbml0aW9uc1wiO1xuZXhwb3J0IGNvbnN0IHRlcm1pbmFsUGFydFJ1bGVOYW1lID0gXCJ0ZXJtaW5hbFBhcnRcIjtcbmV4cG9ydCBjb25zdCBjaG9pY2VPZlBhcnRzUnVsZU5hbWUgPSBcImNob2ljZU9mUGFydHNcIjtcbmV4cG9ydCBjb25zdCB0ZXJtaW5hbFN5bWJvbFJ1bGVOYW1lID0gXCJ0ZXJtaW5hbFN5bWJvbFwiO1xuZXhwb3J0IGNvbnN0IG5vblRlcm1pbmFsUGFydFJ1bGVOYW1lID0gXCJub25UZXJtaW5hbFBhcnRcIjtcbmV4cG9ydCBjb25zdCBzZXF1ZW5jZU9mUGFydHNSdWxlTmFtZSA9IFwic2VxdWVuY2VPZlBhcnRzXCI7XG5leHBvcnQgY29uc3Qgb3BhY2l0eU1vZGlmaWVyUnVsZU5hbWUgPSBcIm9wYWNpdHlNb2RpZmllclwiO1xuZXhwb3J0IGNvbnN0IG5vV2hpdGVzcGFjZVBhcnRSdWxlTmFtZSA9IFwibm9XaGl0ZXNwYWNlXCI7XG5leHBvcnQgY29uc3QgQ2FsbEFoZWFkTW9kaWZpZXJSdWxlTmFtZSA9IFwiY2FsbEFoZWFkTW9kaWZpZXJcIjtcbmV4cG9ydCBjb25zdCByZWd1bGFyRXhwcmVzc2lvblJ1bGVOYW1lID0gXCJyZWd1bGFyRXhwcmVzc2lvblwiO1xuZXhwb3J0IGNvbnN0IG9wdGlvbmFsUXVhbnRpZmllclJ1bGVOYW1lID0gXCJvcHRpb25hbFF1YW50aWZpZXJcIjtcbmV4cG9ydCBjb25zdCBzdGFydE9mQ29udGVudFBhcnRSdWxlTmFtZSA9IFwic3RhcnRPZkNvbnRlbnRcIjtcbmV4cG9ydCBjb25zdCBvbmVPck1vcmVRdWFudGlmaWVyUnVsZU5hbWUgPSBcIm9uZU9yTW9yZVF1YW50aWZpZXJcIjtcbmV4cG9ydCBjb25zdCB6ZXJvT3JNb3JlUXVhbnRpZmllclJ1bGVOYW1lID0gXCJ6ZXJvT3JNb3JlUXVhbnRpZmllclwiO1xuZXhwb3J0IGNvbnN0IHNpZ25pZmljYW50VG9rZW5UeXBlUnVsZU5hbWUgPSBcInNpZ25pZmljYW50VG9rZW5UeXBlXCI7XG4iXSwibmFtZXMiOlsiQ2FsbEFoZWFkTW9kaWZpZXJSdWxlTmFtZSIsImNob2ljZU9mUGFydHNSdWxlTmFtZSIsImRlZmluaXRpb25SdWxlTmFtZSIsImRlZmluaXRpb25zUnVsZU5hbWUiLCJkb2N1bWVudFJ1bGVOYW1lIiwiZW5kT2ZMaW5lUnVsZU5hbWUiLCJlcHNpbG9uUnVsZU5hbWUiLCJlcnJvclJ1bGVOYW1lIiwibmFtZVJ1bGVOYW1lIiwibm9XaGl0ZXNwYWNlUGFydFJ1bGVOYW1lIiwibm9uVGVybWluYWxQYXJ0UnVsZU5hbWUiLCJvbmVPck1vcmVRdWFudGlmaWVyUnVsZU5hbWUiLCJvcGFjaXR5TW9kaWZpZXJSdWxlTmFtZSIsIm9wdGlvbmFsUXVhbnRpZmllclJ1bGVOYW1lIiwicGFydENob2ljZVJ1bGVOYW1lIiwicGFydFJ1bGVOYW1lIiwicHJlY2VkZW5jZVJ1bGVOYW1lIiwicXVhbnRpZmllclJ1bGVOYW1lIiwicmVndWxhckV4cHJlc3Npb25SdWxlTmFtZSIsInJ1bGVOYW1lUnVsZU5hbWUiLCJydWxlUnVsZU5hbWUiLCJzZXF1ZW5jZU9mUGFydHNSdWxlTmFtZSIsInNpZ25pZmljYW50VG9rZW5UeXBlUnVsZU5hbWUiLCJzdGFydE9mQ29udGVudFBhcnRSdWxlTmFtZSIsInRlcm1pbmFsUGFydFJ1bGVOYW1lIiwidGVybWluYWxTeW1ib2xSdWxlTmFtZSIsIndpbGRjYXJkUnVsZU5hbWUiLCJ6ZXJvT3JNb3JlUXVhbnRpZmllclJ1bGVOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUF1QmFBLHlCQUF5QjtlQUF6QkE7O0lBTkFDLHFCQUFxQjtlQUFyQkE7O0lBTkFDLGtCQUFrQjtlQUFsQkE7O0lBSUFDLG1CQUFtQjtlQUFuQkE7O0lBUEFDLGdCQUFnQjtlQUFoQkE7O0lBRUFDLGlCQUFpQjtlQUFqQkE7O0lBSkFDLGVBQWU7ZUFBZkE7O0lBREFDLGFBQWE7ZUFBYkE7O0lBSEFDLFlBQVk7ZUFBWkE7O0lBb0JBQyx3QkFBd0I7ZUFBeEJBOztJQUhBQyx1QkFBdUI7ZUFBdkJBOztJQVFBQywyQkFBMkI7ZUFBM0JBOztJQU5BQyx1QkFBdUI7ZUFBdkJBOztJQUlBQywwQkFBMEI7ZUFBMUJBOztJQVhBQyxrQkFBa0I7ZUFBbEJBOztJQVhBQyxZQUFZO2VBQVpBOztJQVNBQyxrQkFBa0I7ZUFBbEJBOztJQUNBQyxrQkFBa0I7ZUFBbEJBOztJQVdBQyx5QkFBeUI7ZUFBekJBOztJQWpCQUMsZ0JBQWdCO2VBQWhCQTs7SUFIQUMsWUFBWTtlQUFaQTs7SUFnQkFDLHVCQUF1QjtlQUF2QkE7O0lBU0FDLDRCQUE0QjtlQUE1QkE7O0lBSEFDLDBCQUEwQjtlQUExQkE7O0lBVkFDLG9CQUFvQjtlQUFwQkE7O0lBRUFDLHNCQUFzQjtlQUF0QkE7O0lBVEFDLGdCQUFnQjtlQUFoQkE7O0lBbUJBQyw0QkFBNEI7ZUFBNUJBOzs7QUExQk4sSUFBTW5CLGVBQWU7QUFDckIsSUFBTU8sZUFBZTtBQUNyQixJQUFNSyxlQUFlO0FBQ3JCLElBQU1iLGdCQUFnQjtBQUN0QixJQUFNRCxrQkFBa0I7QUFDeEIsSUFBTWEsbUJBQW1CO0FBQ3pCLElBQU1mLG1CQUFtQjtBQUN6QixJQUFNc0IsbUJBQW1CO0FBQ3pCLElBQU1yQixvQkFBb0I7QUFDMUIsSUFBTUgscUJBQXFCO0FBQzNCLElBQU1jLHFCQUFxQjtBQUMzQixJQUFNQyxxQkFBcUI7QUFDM0IsSUFBTUgscUJBQXFCO0FBQzNCLElBQU1YLHNCQUFzQjtBQUM1QixJQUFNcUIsdUJBQXVCO0FBQzdCLElBQU12Qix3QkFBd0I7QUFDOUIsSUFBTXdCLHlCQUF5QjtBQUMvQixJQUFNZiwwQkFBMEI7QUFDaEMsSUFBTVcsMEJBQTBCO0FBQ2hDLElBQU1ULDBCQUEwQjtBQUNoQyxJQUFNSCwyQkFBMkI7QUFDakMsSUFBTVQsNEJBQTRCO0FBQ2xDLElBQU1rQiw0QkFBNEI7QUFDbEMsSUFBTUwsNkJBQTZCO0FBQ25DLElBQU1VLDZCQUE2QjtBQUNuQyxJQUFNWiw4QkFBOEI7QUFDcEMsSUFBTWdCLCtCQUErQjtBQUNyQyxJQUFNTCwrQkFBK0IifQ==
|
package/lib/utilities/bnf.js
CHANGED
|
@@ -9,12 +9,12 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
isNodeCallAheadModifierNode: function() {
|
|
13
|
+
return isNodeCallAheadModifierNode;
|
|
14
|
+
},
|
|
12
15
|
isNodeChoiceNode: function() {
|
|
13
16
|
return isNodeChoiceNode;
|
|
14
17
|
},
|
|
15
|
-
isNodeLookAheadModifierNode: function() {
|
|
16
|
-
return isNodeLookAheadModifierNode;
|
|
17
|
-
},
|
|
18
18
|
isNodeQuantifierNode: function() {
|
|
19
19
|
return isNodeQuantifierNode;
|
|
20
20
|
},
|
|
@@ -55,14 +55,14 @@ function isNodeQuantifierNode(node) {
|
|
|
55
55
|
}
|
|
56
56
|
return nodeQuantifierNode;
|
|
57
57
|
}
|
|
58
|
-
function
|
|
59
|
-
var
|
|
58
|
+
function isNodeCallAheadModifierNode(node) {
|
|
59
|
+
var nodeCallAheadModifierNode = false;
|
|
60
60
|
var nodeNonTerminalNode = node.isNonTerminalNode();
|
|
61
61
|
if (nodeNonTerminalNode) {
|
|
62
|
-
var nonTerminalNode = node, ruleName = nonTerminalNode.getRuleName(),
|
|
63
|
-
|
|
62
|
+
var nonTerminalNode = node, ruleName = nonTerminalNode.getRuleName(), ruleNameCallAheadModifierRuleName = ruleName === _ruleNames.callAheadModifierRuleName;
|
|
63
|
+
nodeCallAheadModifierNode = ruleNameCallAheadModifierRuleName; ///
|
|
64
64
|
}
|
|
65
|
-
return
|
|
65
|
+
return nodeCallAheadModifierNode;
|
|
66
66
|
}
|
|
67
67
|
function ruleNameFromQuantifierNode(quantifierNode) {
|
|
68
68
|
var nonTerminalNode;
|
|
@@ -73,4 +73,4 @@ function ruleNameFromQuantifierNode(quantifierNode) {
|
|
|
73
73
|
return ruleName;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgcnVsZU5hbWVSdWxlTmFtZSwgcXVhbnRpZmllclJ1bGVOYW1lLCBjYWxsQWhlYWRNb2RpZmllclJ1bGVOYW1lIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZUNob2ljZU5vZGUobm9kZSkge1xuICBsZXQgbm9kZU5vQ2hvaWNlTm9kZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgdGVybWluYWxOb2RlQ29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICBub2RlTm9DaG9pY2VOb2RlID0gKHRlcm1pbmFsTm9kZUNvbnRlbnQgPT09IFwifFwiKTtcbiAgfVxuXG4gIHJldHVybiBub2RlTm9DaG9pY2VOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOb2RlUnVsZU5hbWVOb2RlKG5vZGUpIHtcbiAgbGV0IG5vZGVSdWxlTmFtZU5vZGUgPSBmYWxzZTtcblxuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICBub2RlTm9uVGVybWluYWxOb2RlID0gIW5vZGVUZXJtaW5hbE5vZGU7XG5cbiAgaWYgKG5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gICAgbm9kZVJ1bGVOYW1lTm9kZSA9IChub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9PT0gcnVsZU5hbWVSdWxlTmFtZSk7XG4gIH1cblxuICByZXR1cm4gbm9kZVJ1bGVOYW1lTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZVF1YW50aWZpZXJOb2RlKG5vZGUpIHtcbiAgbGV0IG5vZGVRdWFudGlmaWVyTm9kZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVOb25UZXJtaW5hbE5vZGUgPSBub2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIHJ1bGVOYW1lUXVhbnRpZmllclJ1bGVOYW1lID0gKHJ1bGVOYW1lID09PSBxdWFudGlmaWVyUnVsZU5hbWUpO1xuXG4gICAgbm9kZVF1YW50aWZpZXJOb2RlID0gcnVsZU5hbWVRdWFudGlmaWVyUnVsZU5hbWU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBub2RlUXVhbnRpZmllck5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vZGVDYWxsQWhlYWRNb2RpZmllck5vZGUobm9kZSkge1xuICBsZXQgbm9kZUNhbGxBaGVhZE1vZGlmaWVyTm9kZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVOb25UZXJtaW5hbE5vZGUgPSBub2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIHJ1bGVOYW1lQ2FsbEFoZWFkTW9kaWZpZXJSdWxlTmFtZSA9IChydWxlTmFtZSA9PT0gY2FsbEFoZWFkTW9kaWZpZXJSdWxlTmFtZSk7XG5cbiAgICBub2RlQ2FsbEFoZWFkTW9kaWZpZXJOb2RlID0gcnVsZU5hbWVDYWxsQWhlYWRNb2RpZmllclJ1bGVOYW1lOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbm9kZUNhbGxBaGVhZE1vZGlmaWVyTm9kZTtcblxufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVsZU5hbWVGcm9tUXVhbnRpZmllck5vZGUocXVhbnRpZmllck5vZGUpIHtcbiAgbGV0IG5vblRlcm1pbmFsTm9kZTtcblxuICBub25UZXJtaW5hbE5vZGUgPSBxdWFudGlmaWVyTm9kZTsgLy8vXG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIGZpcnN0Q2hpbGROb2RlID0gZmlyc3QoY2hpbGROb2Rlcyk7XG5cbiAgbm9uVGVybWluYWxOb2RlID0gZmlyc3RDaGlsZE5vZGU7ICAvLy9cblxuICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gIHJldHVybiBydWxlTmFtZTtcbn1cbiJdLCJuYW1lcyI6WyJpc05vZGVDYWxsQWhlYWRNb2RpZmllck5vZGUiLCJpc05vZGVDaG9pY2VOb2RlIiwiaXNOb2RlUXVhbnRpZmllck5vZGUiLCJpc05vZGVSdWxlTmFtZU5vZGUiLCJydWxlTmFtZUZyb21RdWFudGlmaWVyTm9kZSIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJub2RlIiwibm9kZU5vQ2hvaWNlTm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50Iiwibm9kZVJ1bGVOYW1lTm9kZSIsIm5vZGVOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwicnVsZU5hbWVSdWxlTmFtZSIsIm5vZGVRdWFudGlmaWVyTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwicnVsZU5hbWUiLCJydWxlTmFtZVF1YW50aWZpZXJSdWxlTmFtZSIsInF1YW50aWZpZXJSdWxlTmFtZSIsIm5vZGVDYWxsQWhlYWRNb2RpZmllck5vZGUiLCJydWxlTmFtZUNhbGxBaGVhZE1vZGlmaWVyUnVsZU5hbWUiLCJjYWxsQWhlYWRNb2RpZmllclJ1bGVOYW1lIiwicXVhbnRpZmllck5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsImZpcnN0Q2hpbGROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUF1RGdCQSwyQkFBMkI7ZUFBM0JBOztJQS9DQUMsZ0JBQWdCO2VBQWhCQTs7SUErQkFDLG9CQUFvQjtlQUFwQkE7O0lBaEJBQyxrQkFBa0I7ZUFBbEJBOztJQWlEQUMsMEJBQTBCO2VBQTFCQTs7O3lCQXRFZTt5QkFFaUQ7QUFFaEYsSUFBTSxBQUFFQyxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFRCxTQUFTSixpQkFBaUJNLElBQUk7SUFDbkMsSUFBSUMsbUJBQW1CO0lBRXZCLElBQU1DLG1CQUFtQkYsS0FBS0csY0FBYztJQUU1QyxJQUFJRCxrQkFBa0I7UUFDcEIsSUFBTUUsZUFBZUosTUFDZkssc0JBQXNCRCxhQUFhRSxVQUFVO1FBRW5ETCxtQkFBb0JJLHdCQUF3QjtJQUM5QztJQUVBLE9BQU9KO0FBQ1Q7QUFFTyxTQUFTTCxtQkFBbUJJLElBQUk7SUFDckMsSUFBSU8sbUJBQW1CO0lBRXZCLElBQU1MLG1CQUFtQkYsS0FBS0csY0FBYyxJQUN0Q0ssc0JBQXNCLENBQUNOO0lBRTdCLElBQUlNLHFCQUFxQjtRQUN2QixJQUFNQyxrQkFBa0JULE1BQ2xCVSwwQkFBMEJELGdCQUFnQkUsV0FBVztRQUUzREosbUJBQW9CRyw0QkFBNEJFLDJCQUFnQjtJQUNsRTtJQUVBLE9BQU9MO0FBQ1Q7QUFFTyxTQUFTWixxQkFBcUJLLElBQUk7SUFDdkMsSUFBSWEscUJBQXFCO0lBRXpCLElBQU1MLHNCQUFzQlIsS0FBS2MsaUJBQWlCO0lBRWxELElBQUlOLHFCQUFxQjtRQUN2QixJQUFNQyxrQkFBa0JULE1BQ2xCZSxXQUFXTixnQkFBZ0JFLFdBQVcsSUFDdENLLDZCQUE4QkQsYUFBYUUsNkJBQWtCO1FBRW5FSixxQkFBcUJHLDRCQUE2QixHQUFHO0lBQ3ZEO0lBRUEsT0FBT0g7QUFDVDtBQUVPLFNBQVNwQiw0QkFBNEJPLElBQUk7SUFDOUMsSUFBSWtCLDRCQUE0QjtJQUVoQyxJQUFNVixzQkFBc0JSLEtBQUtjLGlCQUFpQjtJQUVsRCxJQUFJTixxQkFBcUI7UUFDdkIsSUFBTUMsa0JBQWtCVCxNQUNsQmUsV0FBV04sZ0JBQWdCRSxXQUFXLElBQ3RDUSxvQ0FBcUNKLGFBQWFLLG9DQUF5QjtRQUVqRkYsNEJBQTRCQyxtQ0FBb0MsR0FBRztJQUNyRTtJQUVBLE9BQU9EO0FBRVQ7QUFFTyxTQUFTckIsMkJBQTJCd0IsY0FBYztJQUN2RCxJQUFJWjtJQUVKQSxrQkFBa0JZLGdCQUFnQixHQUFHO0lBRXJDLElBQU1DLGFBQWFiLGdCQUFnQmMsYUFBYSxJQUMxQ0MsaUJBQWlCMUIsTUFBTXdCO0lBRTdCYixrQkFBa0JlLGdCQUFpQixHQUFHO0lBRXRDLElBQU1ULFdBQVdOLGdCQUFnQkUsV0FBVztJQUU1QyxPQUFPSTtBQUNUIn0=
|
package/lib/utilities/parse.js
CHANGED
|
@@ -17,7 +17,7 @@ _export(exports, {
|
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
var _necessary = require("necessary");
|
|
20
|
-
var push = _necessary.arrayUtilities.push;
|
|
20
|
+
var push = _necessary.arrayUtilities.push, clear = _necessary.arrayUtilities.clear;
|
|
21
21
|
function parsePart(part, nodes, state, callback, callAhead) {
|
|
22
22
|
var parsed;
|
|
23
23
|
var index = 0, parts = [
|
|
@@ -38,35 +38,35 @@ function parsePartOfParts(index, parts, nodes, state, callback, callAhead) {
|
|
|
38
38
|
if (index === partsLength) {
|
|
39
39
|
parsed = callback !== null ? callback() : true;
|
|
40
40
|
} else {
|
|
41
|
-
var part = parts[index];
|
|
41
|
+
var part = parts[index], partCallAhead = callAhead === null ? part.isCallAhead() : true;
|
|
42
42
|
index++;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
43
|
+
parsed = partCallAhead ? parsePartWithCallAhead(part, index, parts, nodes, state, callback, callAhead) : parsePartWithoutCallAhead(part, index, parts, nodes, state, callback, callAhead);
|
|
44
|
+
}
|
|
45
|
+
return parsed;
|
|
46
|
+
}
|
|
47
|
+
function parsePartWithCallAhead(part, index, parts, nodes, state, callback, callAhead) {
|
|
48
|
+
var parsed;
|
|
49
|
+
var partNodes = [];
|
|
50
|
+
callAhead = function() {
|
|
51
|
+
var parsed;
|
|
52
|
+
clear(partNodes);
|
|
53
|
+
var _$nodes = partNodes; ///
|
|
54
|
+
parsed = parsePartOfParts(index, parts, _$nodes, state, callback, callAhead);
|
|
55
|
+
return parsed;
|
|
56
|
+
};
|
|
57
|
+
parsed = part.parse(nodes, state, callback, callAhead);
|
|
58
|
+
if (parsed) {
|
|
59
|
+
push(nodes, partNodes);
|
|
60
|
+
}
|
|
61
|
+
return parsed;
|
|
62
|
+
}
|
|
63
|
+
function parsePartWithoutCallAhead(part, index, parts, nodes, state, callback, callAhead) {
|
|
64
|
+
var parsed;
|
|
65
|
+
parsed = part.parse(nodes, state, callback, callAhead);
|
|
66
|
+
if (parsed) {
|
|
67
|
+
parsed = parsePartOfParts(index, parts, nodes, state, callback, callAhead);
|
|
68
68
|
}
|
|
69
69
|
return parsed;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcGFyc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IHB1c2gsIGNsZWFyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFydChwYXJ0LCBub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpIHtcbiAgbGV0IHBhcnNlZDtcblxuICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgIHBhcnRzID0gW1xuICAgICAgICAgIHBhcnRcbiAgICAgICAgXTtcblxuICBwYXJzZWQgPSBwYXJzZVBhcnRPZlBhcnRzKGluZGV4LCBwYXJ0cywgbm9kZXMsIHN0YXRlLCBjYWxsYmFjaywgY2FsbEFoZWFkKTtcblxuICByZXR1cm4gcGFyc2VkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYXJ0cyhwYXJ0cywgbm9kZXMsIHN0YXRlLCBjYWxsYmFjaywgY2FsbEFoZWFkKSB7XG4gIGxldCBwYXJzZWQ7XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHBhcnNlZCA9IHBhcnNlUGFydE9mUGFydHMoaW5kZXgsIHBhcnRzLCBub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpO1xuXG4gIHJldHVybiBwYXJzZWQ7XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFydE9mUGFydHMoaW5kZXgsIHBhcnRzLCBub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpIHtcbiAgbGV0IHBhcnNlZDtcblxuICBjb25zdCBwYXJ0c0xlbmd0aCA9IHBhcnRzLmxlbmd0aDtcblxuICBpZiAoaW5kZXggPT09IHBhcnRzTGVuZ3RoKSB7XG4gICAgcGFyc2VkID0gKGNhbGxiYWNrICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICBjYWxsYmFjaygpIDpcbiAgICAgICAgICAgICAgICAgdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBwYXJ0ID0gcGFydHNbaW5kZXhdLFxuICAgICAgICAgIHBhcnRDYWxsQWhlYWQgPSAoY2FsbEFoZWFkID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydC5pc0NhbGxBaGVhZCgpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWU7XG5cbiAgICBpbmRleCsrO1xuXG4gICAgcGFyc2VkID0gcGFydENhbGxBaGVhZCA/XG4gICAgICAgICAgICAgICBwYXJzZVBhcnRXaXRoQ2FsbEFoZWFkKHBhcnQsIGluZGV4LCBwYXJ0cywgbm9kZXMsIHN0YXRlLCBjYWxsYmFjaywgY2FsbEFoZWFkKSA6XG4gICAgICAgICAgICAgICAgIHBhcnNlUGFydFdpdGhvdXRDYWxsQWhlYWQocGFydCwgaW5kZXgsIHBhcnRzLCBub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn1cblxuZnVuY3Rpb24gcGFyc2VQYXJ0V2l0aENhbGxBaGVhZChwYXJ0LCBpbmRleCwgcGFydHMsIG5vZGVzLCBzdGF0ZSwgY2FsbGJhY2ssIGNhbGxBaGVhZCkge1xuICBsZXQgcGFyc2VkO1xuXG4gIGNvbnN0IHBhcnROb2RlcyA9IFtdO1xuXG4gIGNhbGxBaGVhZCA9ICgpID0+IHsgLy8vXG4gICAgbGV0IHBhcnNlZDtcblxuICAgIGNsZWFyKHBhcnROb2Rlcyk7XG5cbiAgICBjb25zdCBub2RlcyA9IHBhcnROb2RlczsgIC8vL1xuXG4gICAgcGFyc2VkID0gcGFyc2VQYXJ0T2ZQYXJ0cyhpbmRleCwgcGFydHMsIG5vZGVzLCBzdGF0ZSwgY2FsbGJhY2ssIGNhbGxBaGVhZCk7XG5cbiAgICByZXR1cm4gcGFyc2VkO1xuICB9O1xuXG4gIHBhcnNlZCA9IHBhcnQucGFyc2Uobm9kZXMsIHN0YXRlLCBjYWxsYmFjaywgY2FsbEFoZWFkKTtcblxuICBpZiAocGFyc2VkKSB7XG4gICAgcHVzaChub2RlcywgcGFydE5vZGVzKTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZWQ7XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFydFdpdGhvdXRDYWxsQWhlYWQocGFydCwgaW5kZXgsIHBhcnRzLCBub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpIHtcbiAgbGV0IHBhcnNlZDtcblxuICBwYXJzZWQgPSBwYXJ0LnBhcnNlKG5vZGVzLCBzdGF0ZSwgY2FsbGJhY2ssIGNhbGxBaGVhZCk7XG5cbiAgaWYgKHBhcnNlZCkge1xuICAgIHBhcnNlZCA9IHBhcnNlUGFydE9mUGFydHMoaW5kZXgsIHBhcnRzLCBub2Rlcywgc3RhdGUsIGNhbGxiYWNrLCBjYWxsQWhlYWQpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVBhcnQiLCJwYXJzZVBhcnRzIiwicHVzaCIsImFycmF5VXRpbGl0aWVzIiwiY2xlYXIiLCJwYXJ0Iiwibm9kZXMiLCJzdGF0ZSIsImNhbGxiYWNrIiwiY2FsbEFoZWFkIiwicGFyc2VkIiwiaW5kZXgiLCJwYXJ0cyIsInBhcnNlUGFydE9mUGFydHMiLCJwYXJ0c0xlbmd0aCIsImxlbmd0aCIsInBhcnRDYWxsQWhlYWQiLCJpc0NhbGxBaGVhZCIsInBhcnNlUGFydFdpdGhDYWxsQWhlYWQiLCJwYXJzZVBhcnRXaXRob3V0Q2FsbEFoZWFkIiwicGFydE5vZGVzIiwicGFyc2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQU1nQkEsU0FBUztlQUFUQTs7SUFhQUMsVUFBVTtlQUFWQTs7O3lCQWpCZTtBQUUvQixJQUFRQyxPQUFnQkMseUJBQWMsQ0FBOUJELE1BQU1FLFFBQVVELHlCQUFjLENBQXhCQztBQUVQLFNBQVNKLFVBQVVLLElBQUksRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsU0FBUztJQUMvRCxJQUFJQztJQUVKLElBQU1DLFFBQVEsR0FDUkMsUUFBUTtRQUNOUDtLQUNEO0lBRVBLLFNBQVNHLGlCQUFpQkYsT0FBT0MsT0FBT04sT0FBT0MsT0FBT0MsVUFBVUM7SUFFaEUsT0FBT0M7QUFDVDtBQUVPLFNBQVNULFdBQVdXLEtBQUssRUFBRU4sS0FBSyxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsU0FBUztJQUNqRSxJQUFJQztJQUVKLElBQU1DLFFBQVE7SUFFZEQsU0FBU0csaUJBQWlCRixPQUFPQyxPQUFPTixPQUFPQyxPQUFPQyxVQUFVQztJQUVoRSxPQUFPQztBQUNUO0FBRUEsU0FBU0csaUJBQWlCRixLQUFLLEVBQUVDLEtBQUssRUFBRU4sS0FBSyxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsU0FBUztJQUN2RSxJQUFJQztJQUVKLElBQU1JLGNBQWNGLE1BQU1HLE1BQU07SUFFaEMsSUFBSUosVUFBVUcsYUFBYTtRQUN6QkosU0FBUyxBQUFDRixhQUFhLE9BQ1pBLGFBQ0U7SUFDZixPQUFPO1FBQ0wsSUFBTUgsT0FBT08sS0FBSyxDQUFDRCxNQUFNLEVBQ25CSyxnQkFBZ0IsQUFBQ1AsY0FBYyxPQUNiSixLQUFLWSxXQUFXLEtBQ2Q7UUFFMUJOO1FBRUFELFNBQVNNLGdCQUNFRSx1QkFBdUJiLE1BQU1NLE9BQU9DLE9BQU9OLE9BQU9DLE9BQU9DLFVBQVVDLGFBQ2pFVSwwQkFBMEJkLE1BQU1NLE9BQU9DLE9BQU9OLE9BQU9DLE9BQU9DLFVBQVVDO0lBQ3JGO0lBRUEsT0FBT0M7QUFDVDtBQUVBLFNBQVNRLHVCQUF1QmIsSUFBSSxFQUFFTSxLQUFLLEVBQUVDLEtBQUssRUFBRU4sS0FBSyxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsU0FBUztJQUNuRixJQUFJQztJQUVKLElBQU1VLFlBQVksRUFBRTtJQUVwQlgsWUFBWTtRQUNWLElBQUlDO1FBRUpOLE1BQU1nQjtRQUVOLElBQU1kLFVBQVFjLFdBQVksR0FBRztRQUU3QlYsU0FBU0csaUJBQWlCRixPQUFPQyxPQUFPTixTQUFPQyxPQUFPQyxVQUFVQztRQUVoRSxPQUFPQztJQUNUO0lBRUFBLFNBQVNMLEtBQUtnQixLQUFLLENBQUNmLE9BQU9DLE9BQU9DLFVBQVVDO0lBRTVDLElBQUlDLFFBQVE7UUFDVlIsS0FBS0ksT0FBT2M7SUFDZDtJQUVBLE9BQU9WO0FBQ1Q7QUFFQSxTQUFTUywwQkFBMEJkLElBQUksRUFBRU0sS0FBSyxFQUFFQyxLQUFLLEVBQUVOLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxRQUFRLEVBQUVDLFNBQVM7SUFDdEYsSUFBSUM7SUFFSkEsU0FBU0wsS0FBS2dCLEtBQUssQ0FBQ2YsT0FBT0MsT0FBT0MsVUFBVUM7SUFFNUMsSUFBSUMsUUFBUTtRQUNWQSxTQUFTRyxpQkFBaUJGLE9BQU9DLE9BQU9OLE9BQU9DLE9BQU9DLFVBQVVDO0lBQ2xFO0lBRUEsT0FBT0M7QUFDVCJ9
|
package/package.json
CHANGED
package/src/bnf/bnf.js
CHANGED
|
@@ -22,7 +22,7 @@ const bnf = `
|
|
|
22
22
|
|
|
23
23
|
| sequenceOfParts
|
|
24
24
|
|
|
25
|
-
| ruleName
|
|
25
|
+
| ruleName callAheadModifier?
|
|
26
26
|
|
|
27
27
|
;
|
|
28
28
|
|
|
@@ -80,7 +80,7 @@ const bnf = `
|
|
|
80
80
|
|
|
81
81
|
opacityModifier ::= <NO_WHITESPACE>( "." | ".." );
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
callAheadModifier ::= <NO_WHITESPACE>"..." ;
|
|
84
84
|
|
|
85
85
|
optionalQuantifier ::= <NO_WHITESPACE>"?" ;
|
|
86
86
|
|
package/src/bnf/parser.js
CHANGED
|
@@ -24,7 +24,7 @@ import NonTerminalPartRule from "../rule/nonTerminalPart";
|
|
|
24
24
|
import SequenceOfPartsRule from "../rule/sequenceOfParts";
|
|
25
25
|
import OpacityModifierRule from "../rule/opacityModifier";
|
|
26
26
|
import NoWhitespacePartRule from "../rule/noWhitespacePart";
|
|
27
|
-
import
|
|
27
|
+
import CallAheadModifierRule from "../rule/callAheadModifier";
|
|
28
28
|
import RegularExpressionRule from "../rule/regularExpression";
|
|
29
29
|
import OptionalQuantifierRule from "../rule/optionalQuantifier";
|
|
30
30
|
import StartOfContentPartRule from "../rule/startOfContentPart";
|
|
@@ -93,7 +93,7 @@ export default class BNFParser {
|
|
|
93
93
|
opacityModifierRule = OpacityModifierRule.fromNothing(),
|
|
94
94
|
noWhitespacePartRule = NoWhitespacePartRule.fromNothing(),
|
|
95
95
|
regularExpressionRule = RegularExpressionRule.fromNothing(),
|
|
96
|
-
|
|
96
|
+
callAheadModifierRule = CallAheadModifierRule.fromNothing(),
|
|
97
97
|
optionalQuantifierRule = OptionalQuantifierRule.fromNothing(),
|
|
98
98
|
startOfContentPartRule = StartOfContentPartRule.fromNothing(),
|
|
99
99
|
oneOrMoreQuantifierRule = OneOrMoreQuantifierRule.fromNothing(),
|
|
@@ -124,7 +124,7 @@ export default class BNFParser {
|
|
|
124
124
|
epsilonRule,
|
|
125
125
|
quantifierRule,
|
|
126
126
|
opacityModifierRule,
|
|
127
|
-
|
|
127
|
+
callAheadModifierRule,
|
|
128
128
|
optionalQuantifierRule,
|
|
129
129
|
oneOrMoreQuantifierRule,
|
|
130
130
|
zeroOrMoreQuantifierRule,
|
|
@@ -8,7 +8,7 @@ import TerminalSymbolPart from "../part/terminal/terminalSymbol";
|
|
|
8
8
|
|
|
9
9
|
const { ellipsis } = specialSymbols;
|
|
10
10
|
|
|
11
|
-
export default class
|
|
11
|
+
export default class CallAheadModifierRuleDefinition extends Definition {
|
|
12
12
|
static fromNothing() {
|
|
13
13
|
const content = ellipsis, ///
|
|
14
14
|
noWhitespacePart = NoWhitespacePart.fromNothing(),
|
|
@@ -18,8 +18,8 @@ export default class LookAheadModifierRuleDefinition extends Definition {
|
|
|
18
18
|
terminalSymbolPart
|
|
19
19
|
],
|
|
20
20
|
precedence = null,
|
|
21
|
-
|
|
21
|
+
callAheadModifierRuleDefinition = new CallAheadModifierRuleDefinition(parts, precedence);
|
|
22
22
|
|
|
23
|
-
return
|
|
23
|
+
return callAheadModifierRuleDefinition;
|
|
24
24
|
}
|
|
25
25
|
}
|