occam-parsers 23.3.79 → 23.3.80
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/definition.js +11 -5
- package/package.json +1 -1
- package/src/definition.js +12 -5
package/lib/definition.js
CHANGED
|
@@ -87,13 +87,13 @@ class Definition {
|
|
|
87
87
|
}, back);
|
|
88
88
|
}
|
|
89
89
|
compose(rule, definition, savedFrame, frame, state) {
|
|
90
|
-
const nonTerminalNode = nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame, state)
|
|
91
|
-
if (
|
|
92
|
-
frame = null;
|
|
93
|
-
} else {
|
|
90
|
+
const nonTerminalNode = nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame, state);
|
|
91
|
+
if (nonTerminalNode !== null) {
|
|
94
92
|
const childNode = nonTerminalNode; ///
|
|
95
93
|
frame = _frame.default.fromChildNode(childNode); ///
|
|
96
94
|
frame = savedFrame.merge(frame); ///
|
|
95
|
+
} else {
|
|
96
|
+
frame = null;
|
|
97
97
|
}
|
|
98
98
|
return frame;
|
|
99
99
|
}
|
|
@@ -132,7 +132,13 @@ function nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame,
|
|
|
132
132
|
const opacity = rule.getOpacity(), ruleName = rule.getName(), childNodes = frame.getChildNodes(), precedence = frame.getPrecedence(definition), NonTerminalNode = rule.NonTerminalNodeFromRuleName(ruleName, state);
|
|
133
133
|
nonTerminalNode = NonTerminalNode.fromRuleNameChildNodesPrecedenceAndOpacity(ruleName, childNodes, precedence, opacity);
|
|
134
134
|
nonTerminalNode = nonTerminalNode.rewrite(state);
|
|
135
|
+
if (nonTerminalNode !== null) {
|
|
136
|
+
const invalid = nonTerminalNode.isInvalid();
|
|
137
|
+
if (invalid) {
|
|
138
|
+
nonTerminalNode = null;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
135
141
|
return nonTerminalNode;
|
|
136
142
|
}
|
|
137
143
|
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGV2ZXJ5IGFzIGxpbmVhckV2ZXJ5ICB9IGZyb20gXCIuL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IGV2ZXJ5IGFzIGJyYW5jaGluZ0V2ZXJ5ICB9IGZyb20gXCIuL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVmaW5pdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHBhcnRzLCBwcmVjZWRlbmNlKSB7XG4gICAgdGhpcy5wYXJ0cyA9IHBhcnRzO1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRQYXJ0cygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0cztcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlY2VkZW5jZTtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdLCBjaGVja0ZvckN1dFBhcnRzID0gZmFsc2UpIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0aGlzLnBhcnRzLnNvbWUoKHBhcnQpID0+
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGV2ZXJ5IGFzIGxpbmVhckV2ZXJ5ICB9IGZyb20gXCIuL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IGV2ZXJ5IGFzIGJyYW5jaGluZ0V2ZXJ5ICB9IGZyb20gXCIuL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVmaW5pdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHBhcnRzLCBwcmVjZWRlbmNlKSB7XG4gICAgdGhpcy5wYXJ0cyA9IHBhcnRzO1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRQYXJ0cygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0cztcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlY2VkZW5jZTtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdLCBjaGVja0ZvckN1dFBhcnRzID0gZmFsc2UpIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0aGlzLnBhcnRzLnNvbWUoKHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnN1bWluZyA9IHBhcnQuaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzLCBjaGVja0ZvckN1dFBhcnRzKTtcblxuICAgICAgaWYgKGNvbnN1bWluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShydWxlLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzYXZlZEZyYW1lID0gZnJhbWUsIC8vL1xuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgZXZlcnkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICBicmFuY2hpbmdFdmVyeSA6XG4gICAgICAgICAgICAgICAgICAgICAgbGluZWFyRXZlcnk7XG5cbiAgICByZXR1cm4gZXZlcnkodGhpcy5wYXJ0cywgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBlbXB0eUZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXM7ICAvLy9cblxuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKTsgIC8vL1xuXG4gICAgICBpZiAoZnJhbWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIGNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpO1xuXG4gICAgaWYgKG5vblRlcm1pbmFsTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgY2hpbGROb2RlID0gbm9uVGVybWluYWxOb2RlOyAgLy8vXG5cbiAgICAgIGZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpOyAvLy9cblxuICAgICAgZnJhbWUgPSBzYXZlZEZyYW1lLm1lcmdlKGZyYW1lKTsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGZyYW1lID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBwYXJ0c1N0cmluZyA9IHBhcnRzU3RyaW5nRnJvbVBhcnRzKHRoaXMucGFydHMpLFxuICAgICAgICAgIHByZWNlZGVuY2VTdHJpbmcgPSAodGhpcy5wcmVjZWRlbmNlICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVjZWRlbmNlLmFzU3RyaW5nKCkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU1QVFlfU1RSSU5HLFxuICAgICAgICAgIHN0cmluZyA9IGAke3BhcnRzU3RyaW5nfSR7cHJlY2VkZW5jZVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHMoQ2xhc3MsIHBhcnRzKSB7XG4gICAgaWYgKHBhcnRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnRzID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBEZWZpbml0aW9uOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBkZWZpbml0aW9uID0gbmV3IENsYXNzKHBhcnRzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0c0FuZFByZWNlZGVuY2UoQ2xhc3MsIHBhcnRzLCBwcmVjZWRlbmNlKSB7XG4gICAgaWYgKHByZWNlZGVuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJlY2VkZW5jZSA9IHBhcnRzOyAvLy9cblxuICAgICAgcGFydHMgPSBDbGFzczsgIC8vL1xuXG4gICAgICBDbGFzcyA9IERlZmluaXRpb247IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb24gPSBuZXcgQ2xhc3MocGFydHMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFydHNTdHJpbmdGcm9tUGFydHMocGFydHMpIHtcbiAgY29uc3QgcGFydHNTdHJpbmcgPSBwYXJ0cy5yZWR1Y2UoKHBhcnRzU3RyaW5nLCBwYXJ0KSA9PiB7XG4gICAgY29uc3QgcGFydFN0cmluZyA9IHBhcnQuYXNTdHJpbmcoKTtcblxuICAgIHBhcnRzU3RyaW5nID0gKHBhcnRzU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgIGAke3BhcnRzU3RyaW5nfSAke3BhcnRTdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgcGFydFN0cmluZzsgLy8vXG5cbiAgICByZXR1cm4gcGFydHNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwYXJ0c1N0cmluZztcbn1cblxuZnVuY3Rpb24gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpIHtcbiAgbGV0IG5vblRlcm1pbmFsTm9kZTtcblxuICBjb25zdCBvcGFjaXR5ID0gcnVsZS5nZXRPcGFjaXR5KCksXG4gICAgICAgIHJ1bGVOYW1lID0gcnVsZS5nZXROYW1lKCksXG4gICAgICAgIGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHByZWNlZGVuY2UgPSBmcmFtZS5nZXRQcmVjZWRlbmNlKGRlZmluaXRpb24pLFxuICAgICAgICBOb25UZXJtaW5hbE5vZGUgPSBydWxlLk5vblRlcm1pbmFsTm9kZUZyb21SdWxlTmFtZShydWxlTmFtZSwgc3RhdGUpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZS5yZXdyaXRlKHN0YXRlKTtcblxuICBpZiAobm9uVGVybWluYWxOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgaW52YWxpZCA9IG5vblRlcm1pbmFsTm9kZS5pc0ludmFsaWQoKTtcblxuICAgIGlmIChpbnZhbGlkKSB7XG4gICAgICBub25UZXJtaW5hbE5vZGUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub25UZXJtaW5hbE5vZGU7XG59XG4iXSwibmFtZXMiOlsiRGVmaW5pdGlvbiIsInBhcnRzIiwicHJlY2VkZW5jZSIsImdldFBhcnRzIiwiZ2V0UHJlY2VkZW5jZSIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJjb25zdW1pbmciLCJzb21lIiwicGFydCIsInBhcnNlIiwicnVsZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInNhdmVkRnJhbWUiLCJicmFuY2hpbmciLCJpc0JyYW5jaGluZyIsImV2ZXJ5IiwiYnJhbmNoaW5nRXZlcnkiLCJsaW5lYXJFdmVyeSIsImVtcHR5RnJhbWUiLCJkZWZpbml0aW9uIiwiY29tcG9zZSIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUZyb21SdWxlRGVmaW5pdGlvbkZyYW1lQW5kU3RhdGUiLCJjaGlsZE5vZGUiLCJGcmFtZSIsImZyb21DaGlsZE5vZGUiLCJtZXJnZSIsImFzU3RyaW5nIiwicGFydHNTdHJpbmciLCJwYXJ0c1N0cmluZ0Zyb21QYXJ0cyIsInByZWNlZGVuY2VTdHJpbmciLCJFTVBUWV9TVFJJTkciLCJzdHJpbmciLCJmcm9tUGFydHMiLCJDbGFzcyIsInVuZGVmaW5lZCIsImZyb21QYXJ0c0FuZFByZWNlZGVuY2UiLCJyZWR1Y2UiLCJwYXJ0U3RyaW5nIiwib3BhY2l0eSIsImdldE9wYWNpdHkiLCJydWxlTmFtZSIsImdldE5hbWUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIk5vblRlcm1pbmFsTm9kZSIsIk5vblRlcm1pbmFsTm9kZUZyb21SdWxlTmFtZSIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNQcmVjZWRlbmNlQW5kT3BhY2l0eSIsInJld3JpdGUiLCJpbnZhbGlkIiwiaXNJbnZhbGlkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXFCQTs7OytEQVBIOzJCQUdXO3dCQUNTOzJCQUNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsTUFBTUE7SUFDbkIsWUFBWUMsS0FBSyxFQUFFQyxVQUFVLENBQUU7UUFDN0IsSUFBSSxDQUFDRCxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO0lBQ3BCO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0YsS0FBSztJQUNuQjtJQUVBRyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0YsVUFBVTtJQUN4QjtJQUVBRyxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFQyxtQkFBbUIsS0FBSyxFQUFFO1FBQ2hFLE1BQU1DLFlBQVksSUFBSSxDQUFDUixLQUFLLENBQUNTLElBQUksQ0FBQyxDQUFDQztZQUNqQyxNQUFNRixZQUFZRSxLQUFLTixXQUFXLENBQUNDLFNBQVNDLGNBQWNDO1lBRTFELElBQUlDLFdBQVc7Z0JBQ2IsT0FBTztZQUNUO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFHLE1BQU1DLElBQUksRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ3ZDLE1BQU1DLGFBQWFKLE9BQ2JLLFlBQVlKLE1BQU1LLFdBQVcsSUFDN0JDLFFBQVFGLFlBQ0VHLGdCQUFjLEdBQ1pDLGFBQVc7UUFFN0IsT0FBT0YsTUFBTSxJQUFJLENB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
|
package/package.json
CHANGED
package/src/definition.js
CHANGED
|
@@ -56,17 +56,16 @@ export default class Definition {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
compose(rule, definition, savedFrame, frame, state) {
|
|
59
|
-
const nonTerminalNode = nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame, state)
|
|
60
|
-
invalid = nonTerminalNode.isInvalid();
|
|
59
|
+
const nonTerminalNode = nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame, state);
|
|
61
60
|
|
|
62
|
-
if (
|
|
63
|
-
frame = null;
|
|
64
|
-
} else {
|
|
61
|
+
if (nonTerminalNode !== null) {
|
|
65
62
|
const childNode = nonTerminalNode; ///
|
|
66
63
|
|
|
67
64
|
frame = Frame.fromChildNode(childNode); ///
|
|
68
65
|
|
|
69
66
|
frame = savedFrame.merge(frame); ///
|
|
67
|
+
} else {
|
|
68
|
+
frame = null;
|
|
70
69
|
}
|
|
71
70
|
|
|
72
71
|
return frame;
|
|
@@ -137,5 +136,13 @@ function nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame,
|
|
|
137
136
|
|
|
138
137
|
nonTerminalNode = nonTerminalNode.rewrite(state);
|
|
139
138
|
|
|
139
|
+
if (nonTerminalNode !== null) {
|
|
140
|
+
const invalid = nonTerminalNode.isInvalid();
|
|
141
|
+
|
|
142
|
+
if (invalid) {
|
|
143
|
+
nonTerminalNode = null;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
140
147
|
return nonTerminalNode;
|
|
141
148
|
}
|