occam-grammars 1.3.204 → 1.3.207
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 +43 -182
- package/lib/example/view/furtle.js +3 -3
- package/lib/utilities/lexers.js +1 -16
- package/lib/utilities/parsers.js +1 -20
- package/package.json +4 -4
- package/src/example/view/furtle.js +2 -4
- package/src/utilities/lexers.js +2 -22
- package/src/utilities/parsers.js +3 -27
- package/lib/utilities/query.js +0 -89
- package/src/utilities/query.js +0 -89
|
@@ -113,7 +113,7 @@ var FurtleView = /*#__PURE__*/ function(View) {
|
|
|
113
113
|
{
|
|
114
114
|
key: "getTokens",
|
|
115
115
|
value: function getTokens() {
|
|
116
|
-
var lexicalEntries = this.getLexicalEntries(), entries = lexicalEntries,
|
|
116
|
+
var lexicalEntries = this.getLexicalEntries(), entries = lexicalEntries, furtleLexer = furtleLexerFromEntries(entries), lexer = furtleLexer, content = this.getContent(), tokens = lexer.tokenise(content);
|
|
117
117
|
return tokens;
|
|
118
118
|
}
|
|
119
119
|
},
|
|
@@ -121,7 +121,7 @@ var FurtleView = /*#__PURE__*/ function(View) {
|
|
|
121
121
|
key: "getParseTree",
|
|
122
122
|
value: function getParseTree(tokens) {
|
|
123
123
|
var parseTree = null;
|
|
124
|
-
var bnf = this.getBNF(), ruleName = this.getRuleName(), startRuleName = ruleName,
|
|
124
|
+
var bnf = this.getBNF(), ruleName = this.getRuleName(), startRuleName = ruleName, furtleParser = furtleParserFromBNFAndStartRuleName(bnf, startRuleName), parser = furtleParser, node = parser.parse(tokens);
|
|
125
125
|
if (node !== null) {
|
|
126
126
|
parseTree = node.asParseTree(tokens);
|
|
127
127
|
}
|
|
@@ -149,4 +149,4 @@ _define_property(FurtleView, "defaultProperties", {
|
|
|
149
149
|
className: "furtle"
|
|
150
150
|
});
|
|
151
151
|
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMsIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwiLi4vLi4vaW5kZXhcIjsgIC8vL1xuXG5pbXBvcnQgVmlldyBmcm9tIFwiLi4vdmlld1wiO1xuXG5pbXBvcnQgeyBibmZGcm9tTm90aGluZywgZW50cmllc0Zyb21Ob3RoaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9mdXJ0bGVcIjtcblxuY29uc3QgeyBmdXJ0bGVMZXhlckZyb21FbnRyaWVzIH0gPSBsZXhlcnNVdGlsaXRpZXMsXG4gICAgICB7IGZ1cnRsZVBhcnNlckZyb21CTkZBbmRTdGFydFJ1bGVOYW1lIH0gPSBwYXJzZXJzVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGdXJ0bGVWaWV3IGV4dGVuZHMgVmlldyB7XG4gIGdldFRva2VucygpIHtcbiAgICBjb25zdCBsZXhpY2FsRW50cmllcyA9IHRoaXMuZ2V0TGV4aWNhbEVudHJpZXMoKSxcbiAgICAgICAgICBlbnRyaWVzID0gbGV4aWNhbEVudHJpZXMsIC8vLy9cbiAgICAgICAgICBmdXJ0bGVMZXhlciA9IGZ1cnRsZUxleGVyRnJvbUVudHJpZXMoZW50cmllcyksXG4gICAgICAgICAgbGV4ZXIgPSBmdXJ0bGVMZXhlciwgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcbiAgICAgICAgICB0b2tlbnMgPSBsZXhlci50b2tlbmlzZShjb250ZW50KTtcblxuICAgIHJldHVybiB0b2tlbnM7XG4gIH1cblxuICBnZXRQYXJzZVRyZWUodG9rZW5zKSB7XG4gICAgbGV0IHBhcnNlVHJlZSA9IG51bGw7XG5cbiAgICBjb25zdCBibmYgPSB0aGlzLmdldEJORigpLFxuICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIHN0YXJ0UnVsZU5hbWUgPSBydWxlTmFtZSwgLy8vXG4gICAgICAgICAgZnVydGxlUGFyc2VyID0gZnVydGxlUGFyc2VyRnJvbUJORkFuZFN0YXJ0UnVsZU5hbWUoYm5mLCBzdGFydFJ1bGVOYW1lKSxcbiAgICAgICAgICBwYXJzZXIgPSBmdXJ0bGVQYXJzZXIsIC8vL1xuICAgICAgICAgIG5vZGUgPSBwYXJzZXIucGFyc2UodG9rZW5zKTtcblxuICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2Vucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlVHJlZTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgdGhpcy5hc3NpZ25Db250ZXh0KCk7XG5cbiAgICBjb25zdCB7IGluaXRpYWxDb250ZW50LCBpbml0aWFsUnVsZU5hbWUgfSA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgYm5mID0gYm5mRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBlbnRyaWVzID0gZW50cmllc0Zyb21Ob3RoaW5nKCksXG4gICAgICAgICAgY29udGVudCA9IGluaXRpYWxDb250ZW50LCAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IGluaXRpYWxSdWxlTmFtZSwgLy8vXG4gICAgICAgICAgbGV4aWNhbEVudHJpZXMgPSBlbnRyaWVzOyAvLy9cblxuICAgIHRoaXMuc2V0Qk5GKGJuZik7XG5cbiAgICB0aGlzLnNldENvbnRlbnQoY29udGVudCk7XG5cbiAgICB0aGlzLnNldFJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHRoaXMuc2V0TGV4aWNhbEVudHJpZXMobGV4aWNhbEVudHJpZXMpO1xuXG4gICAgdGhpcy5rZXlVcEhhbmRsZXIoKTtcbiAgfVxuXG4gIHN0YXRpYyByZWFkT25seSA9IGZhbHNlO1xuXG4gIHN0YXRpYyBpbml0aWFsQ29udGVudCA9IGBTdHJpbmcgYm91bmRWYXJpYWJsZU5hbWVGcm9tUXVhbGlmaWVkU3RhdGVtZW50Q2hpbGROb2RlcyhOb2RlcyBxdWFsaWZpZWRTdGF0ZW1lbnRDaGlsZE5vZGVzKSB7XG4gIFsgXywgTm9kZSBhcmd1bWVudE5vZGUgXSA9IHF1YWxpZmllZFN0YXRlbWVudENoaWxkTm9kZXM7XG5cbiAgTm9kZSBib3VuZFZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSA9IG5vZGVRdWVyeShhcmd1bWVudE5vZGUsIC9hcmd1bWVudC90ZXJtL3ZhcmlhYmxlL0BuYW1lKTtcblxuICBTdHJpbmcgYm91bmRWYXJpYWJsZU5hbWUgPSBcblxuICAgIElmIChib3VuZFZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSAhPSBudWxsKVxuICAgICAgKFN0cmluZyAoTm9kZSBib3VuZFZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSkge1xuICAgICAgICB7IFN0cmluZyBjb250ZW50IEFzIGJvdW5kVmFyaWFibGVOYW1lIH0gPSBib3VuZFZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZTtcbiAgICAgIFxuICAgICAgICBSZXR1cm4gYm91bmRWYXJpYWJsZU5hbWU7XG4gICAgICB9KShib3VuZFZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSlcblxuICAgIEVsc2VcbiAgICAgIFwiXCJcbiAgO1xuICAgIFxuICBSZXR1cm4gYm91bmRWYXJpYWJsZU5hbWU7XG59XG5gO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwiZnVydGxlXCJcbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJGdXJ0bGVWaWV3IiwiZnVydGxlTGV4ZXJGcm9tRW50cmllcyIsImxleGVyc1V0aWxpdGllcyIsImZ1cnRsZVBhcnNlckZyb21CTkZBbmRTdGFydFJ1bGVOYW1lIiwicGFyc2Vyc1V0aWxpdGllcyIsImdldFRva2VucyIsImxleGljYWxFbnRyaWVzIiwiZ2V0TGV4aWNhbEVudHJpZXMiLCJlbnRyaWVzIiwiZnVydGxlTGV4ZXIiLCJsZXhlciIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJnZXRQYXJzZVRyZWUiLCJwYXJzZVRyZWUiLCJibmYiLCJnZXRCTkYiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwic3RhcnRSdWxlTmFtZSIsImZ1cnRsZVBhcnNlciIsInBhcnNlciIsIm5vZGUiLCJwYXJzZSIsImFzUGFyc2VUcmVlIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJjb25zdHJ1Y3RvciIsImluaXRpYWxDb250ZW50IiwiaW5pdGlhbFJ1bGVOYW1lIiwiYm5mRnJvbU5vdGhpbmciLCJlbnRyaWVzRnJvbU5vdGhpbmciLCJzZXRCTkYiLCJzZXRDb250ZW50Iiwic2V0UnVsZU5hbWUiLCJzZXRMZXhpY2FsRW50cmllcyIsImtleVVwSGFuZGxlciIsIlZpZXciLCJyZWFkT25seSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVdxQkE7OztxQkFUNkI7MkRBRWpDO3NCQUVrQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkQsSUFBTSxBQUFFQyx5QkFBMkJDLHNCQUFlLENBQTFDRCx3QkFDRixBQUFFRSxzQ0FBd0NDLHVCQUFnQixDQUF4REQ7QUFFTyxJQUFBLEFBQU1ILDJCQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtlQUFOLGtCQUFNQTs7a0JBQUFBOztZQUNuQkssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGlCQUFpQixJQUFJLENBQUNDLGlCQUFpQixJQUN2Q0MsVUFBVUYsZ0JBQ1ZHLGNBQWNSLHVCQUF1Qk8sVUFDckNFLFFBQVFELGFBQ1JFLFVBQVUsSUFBSSxDQUFDQyxVQUFVLElBQ3pCQyxTQUFTSCxNQUFNSSxRQUFRLENBQUNIO2dCQUU5QixPQUFPRTtZQUNUOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLGFBQWFGLE1BQU07Z0JBQ2pCLElBQUlHLFlBQVk7Z0JBRWhCLElBQU1DLE1BQU0sSUFBSSxDQUFDQyxNQUFNLElBQ2pCQyxXQUFXLElBQUksQ0FBQ0MsV0FBVyxJQUMzQkMsZ0JBQWdCRixVQUNoQkcsZUFBZW5CLG9DQUFvQ2MsS0FBS0ksZ0JBQ3hERSxTQUFTRCxjQUNURSxPQUFPRCxPQUFPRSxLQUFLLENBQUNaO2dCQUUxQixJQUFJVyxTQUFTLE1BQU07b0JBQ2pCUixZQUFZUSxLQUFLRSxXQUFXLENBQUNiO2dCQUMvQjtnQkFFQSxPQUFPRztZQUNUOzs7WUFFQVcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUksQ0FBQ0MsYUFBYTtnQkFFbEIsSUFBNEMsb0JBQUEsSUFBSSxDQUFDQyxXQUFXLEVBQXBEQyxpQkFBb0Msa0JBQXBDQSxnQkFBZ0JDLGtCQUFvQixrQkFBcEJBLGlCQUNsQmQsTUFBTWUsSUFBQUEsc0JBQWMsS0FDcEJ4QixVQUFVeUIsSUFBQUEsMEJBQWtCLEtBQzVCdEIsVUFBVW1CLGdCQUNWWCxXQUFXWSxpQkFDWHpCLGlCQUFpQkUsU0FBUyxHQUFHO2dCQUVuQyxJQUFJLENBQUMwQixNQUFNLENBQUNqQjtnQkFFWixJQUFJLENBQUNrQixVQUFVLENBQUN4QjtnQkFFaEIsSUFBSSxDQUFDeUIsV0FBVyxDQUFDakI7Z0JBRWpCLElBQUksQ0FBQ2tCLGlCQUFpQixDQUFDL0I7Z0JBRXZCLElBQUksQ0FBQ2dDLFlBQVk7WUFDbkI7OztXQWhEbUJ0QztFQUFtQnVDLGFBQUk7QUFrRDFDLGlCQWxEbUJ2QyxZQWtEWndDLFlBQVc7QUFFbEIsaUJBcERtQnhDLFlBb0RaOEIsa0JBQWtCO0FBc0J6QixpQkExRW1COUIsWUEwRVp5QyxxQkFBb0I7SUFDekJDLFdBQVc7QUFDYiJ9
|
package/lib/utilities/lexers.js
CHANGED
|
@@ -21,7 +21,6 @@ _export(exports, {
|
|
|
21
21
|
});
|
|
22
22
|
var _occamlexers = require("occam-lexers");
|
|
23
23
|
var _lexer = /*#__PURE__*/ _interop_require_default(require("../furtle/lexer"));
|
|
24
|
-
var _query = require("../utilities/query");
|
|
25
24
|
function _interop_require_default(obj) {
|
|
26
25
|
return obj && obj.__esModule ? obj : {
|
|
27
26
|
default: obj
|
|
@@ -29,23 +28,15 @@ function _interop_require_default(obj) {
|
|
|
29
28
|
}
|
|
30
29
|
var lexerFromRules = _occamlexers.lexerUtilities.lexerFromRules, rulesFromEntries = _occamlexers.lexerUtilities.rulesFromEntries;
|
|
31
30
|
function furtleLexerFromEntries(entries) {
|
|
32
|
-
var augmented = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
33
31
|
var rules;
|
|
34
32
|
rules = rulesFromEntries(entries);
|
|
35
|
-
if (augmented) {
|
|
36
|
-
rules = augmentRules(rules);
|
|
37
|
-
}
|
|
38
33
|
var furtleLexer = lexerFromRules(_lexer.default, rules);
|
|
39
34
|
return furtleLexer;
|
|
40
35
|
}
|
|
41
36
|
function furtleLexerFromNothing() {
|
|
42
|
-
var augmented = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
43
37
|
var entries = _lexer.default.entries;
|
|
44
38
|
var rules;
|
|
45
39
|
rules = rulesFromEntries(entries);
|
|
46
|
-
if (augmented) {
|
|
47
|
-
rules = augmentRules(rules);
|
|
48
|
-
}
|
|
49
40
|
var furtleLexer = lexerFromRules(_lexer.default, rules);
|
|
50
41
|
return furtleLexer;
|
|
51
42
|
}
|
|
@@ -53,11 +44,5 @@ var _default = {
|
|
|
53
44
|
furtleLexerFromEntries: furtleLexerFromEntries,
|
|
54
45
|
furtleLexerFromNothing: furtleLexerFromNothing
|
|
55
46
|
};
|
|
56
|
-
function augmentRules(rules) {
|
|
57
|
-
var lexicalRules = rules; ///
|
|
58
|
-
lexicalRules = (0, _query.augmentLexicalRules)(lexicalRules);
|
|
59
|
-
rules = lexicalRules; ///
|
|
60
|
-
return rules;
|
|
61
|
-
}
|
|
62
47
|
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbGV4ZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlclV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IEZ1cnRsZUxleGVyIGZyb20gXCIuLi9mdXJ0bGUvbGV4ZXJcIjtcblxuY29uc3QgeyBsZXhlckZyb21SdWxlcywgcnVsZXNGcm9tRW50cmllcyB9ID0gbGV4ZXJVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVMZXhlckZyb21FbnRyaWVzKGVudHJpZXMpIHtcbiAgbGV0IHJ1bGVzO1xuXG4gIHJ1bGVzID0gcnVsZXNGcm9tRW50cmllcyhlbnRyaWVzKTtcblxuICBjb25zdCBmdXJ0bGVMZXhlciA9IGxleGVyRnJvbVJ1bGVzKEZ1cnRsZUxleGVyLCBydWxlcyk7XG5cbiAgcmV0dXJuIGZ1cnRsZUxleGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnVydGxlTGV4ZXJGcm9tTm90aGluZygpIHtcbiAgY29uc3QgeyBlbnRyaWVzIH0gPSBGdXJ0bGVMZXhlcjtcblxuICBsZXQgcnVsZXM7XG5cbiAgcnVsZXMgPSBydWxlc0Zyb21FbnRyaWVzKGVudHJpZXMpO1xuXG4gIGNvbnN0IGZ1cnRsZUxleGVyID0gbGV4ZXJGcm9tUnVsZXMoRnVydGxlTGV4ZXIsIHJ1bGVzKTtcblxuICByZXR1cm4gZnVydGxlTGV4ZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZnVydGxlTGV4ZXJGcm9tRW50cmllcyxcbiAgZnVydGxlTGV4ZXJGcm9tTm90aGluZ1xufTtcbiJdLCJuYW1lcyI6WyJmdXJ0bGVMZXhlckZyb21FbnRyaWVzIiwiZnVydGxlTGV4ZXJGcm9tTm90aGluZyIsImxleGVyRnJvbVJ1bGVzIiwibGV4ZXJVdGlsaXRpZXMiLCJydWxlc0Zyb21FbnRyaWVzIiwiZW50cmllcyIsInJ1bGVzIiwiZnVydGxlTGV4ZXIiLCJGdXJ0bGVMZXhlciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBOEJBLE9BR0U7ZUFIRjs7SUF0QmdCQSxzQkFBc0I7ZUFBdEJBOztJQVVBQyxzQkFBc0I7ZUFBdEJBOzs7MkJBaEJlOzREQUVQOzs7Ozs7QUFFeEIsSUFBUUMsaUJBQXFDQywyQkFBYyxDQUFuREQsZ0JBQWdCRSxtQkFBcUJELDJCQUFjLENBQW5DQztBQUVqQixTQUFTSix1QkFBdUJLLE9BQU87SUFDNUMsSUFBSUM7SUFFSkEsUUFBUUYsaUJBQWlCQztJQUV6QixJQUFNRSxjQUFjTCxlQUFlTSxjQUFXLEVBQUVGO0lBRWhELE9BQU9DO0FBQ1Q7QUFFTyxTQUFTTjtJQUNkLElBQU0sQUFBRUksVUFBWUcsY0FBVyxDQUF2Qkg7SUFFUixJQUFJQztJQUVKQSxRQUFRRixpQkFBaUJDO0lBRXpCLElBQU1FLGNBQWNMLGVBQWVNLGNBQVcsRUFBRUY7SUFFaEQsT0FBT0M7QUFDVDtJQUVBLFdBQWU7SUFDYlAsd0JBQUFBO0lBQ0FDLHdCQUFBQTtBQUNGIn0=
|
package/lib/utilities/parsers.js
CHANGED
|
@@ -25,7 +25,6 @@ _export(exports, {
|
|
|
25
25
|
var _occamparsers = require("occam-parsers");
|
|
26
26
|
var _occamgrammarutilities = require("occam-grammar-utilities");
|
|
27
27
|
var _parser = /*#__PURE__*/ _interop_require_default(require("../furtle/parser"));
|
|
28
|
-
var _query = require("../utilities/query");
|
|
29
28
|
function _interop_require_default(obj) {
|
|
30
29
|
return obj && obj.__esModule ? obj : {
|
|
31
30
|
default: obj
|
|
@@ -33,36 +32,24 @@ function _interop_require_default(obj) {
|
|
|
33
32
|
}
|
|
34
33
|
var rulesFromBNF = _occamparsers.parserUtilities.rulesFromBNF, parserFromRules = _occamparsers.parserUtilities.parserFromRules, parserFromRulesAndStartRuleName = _occamparsers.parserUtilities.parserFromRulesAndStartRuleName;
|
|
35
34
|
function furtleParserFromBNF(bnf) {
|
|
36
|
-
var augmented = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
37
35
|
var rules;
|
|
38
36
|
rules = rulesFromBNF(bnf);
|
|
39
37
|
rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
|
|
40
|
-
if (augmented) {
|
|
41
|
-
rules = augmentRules(rules);
|
|
42
|
-
}
|
|
43
38
|
var furtleParser = parserFromRules(_parser.default, rules);
|
|
44
39
|
return furtleParser;
|
|
45
40
|
}
|
|
46
41
|
function furtleParserFromNothing() {
|
|
47
|
-
var augmented = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
48
42
|
var bnf = _parser.default.bnf;
|
|
49
43
|
var rules;
|
|
50
44
|
rules = rulesFromBNF(bnf);
|
|
51
45
|
rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
|
|
52
|
-
if (augmented) {
|
|
53
|
-
rules = augmentRules(rules);
|
|
54
|
-
}
|
|
55
46
|
var furtleParser = parserFromRules(_parser.default, rules);
|
|
56
47
|
return furtleParser;
|
|
57
48
|
}
|
|
58
49
|
function furtleParserFromBNFAndStartRuleName(bnf, startRuleName) {
|
|
59
|
-
var augmented = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
|
|
60
50
|
var rules;
|
|
61
51
|
rules = rulesFromBNF(bnf);
|
|
62
52
|
rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
|
|
63
|
-
if (augmented) {
|
|
64
|
-
rules = augmentRules(rules);
|
|
65
|
-
}
|
|
66
53
|
var furtleParser = parserFromRulesAndStartRuleName(_parser.default, rules, startRuleName);
|
|
67
54
|
return furtleParser;
|
|
68
55
|
}
|
|
@@ -71,11 +58,5 @@ var _default = {
|
|
|
71
58
|
furtleParserFromNothing: furtleParserFromNothing,
|
|
72
59
|
furtleParserFromBNFAndStartRuleName: furtleParserFromBNFAndStartRuleName
|
|
73
60
|
};
|
|
74
|
-
function augmentRules(rules) {
|
|
75
|
-
var bnfRules = rules; ///
|
|
76
|
-
bnfRules = (0, _query.augmentBNFRules)(bnfRules);
|
|
77
|
-
rules = bnfRules; ///
|
|
78
|
-
return rules;
|
|
79
|
-
}
|
|
80
61
|
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcGFyc2Vycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGFyc2VyVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcbmltcG9ydCB7IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24gfSBmcm9tIFwib2NjYW0tZ3JhbW1hci11dGlsaXRpZXNcIjtcblxuaW1wb3J0IEZ1cnRsZVBhcnNlciBmcm9tIFwiLi4vZnVydGxlL3BhcnNlclwiO1xuXG5jb25zdCB7IHJ1bGVzRnJvbUJORiwgcGFyc2VyRnJvbVJ1bGVzLCBwYXJzZXJGcm9tUnVsZXNBbmRTdGFydFJ1bGVOYW1lIH0gPSBwYXJzZXJVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVQYXJzZXJGcm9tQk5GKGJuZikge1xuICBsZXQgcnVsZXM7XG5cbiAgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKTtcblxuICBydWxlcyA9IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24ocnVsZXMpOyAgLy8vXG5cbiAgY29uc3QgZnVydGxlUGFyc2VyID0gcGFyc2VyRnJvbVJ1bGVzKEZ1cnRsZVBhcnNlciwgcnVsZXMpO1xuXG4gIHJldHVybiBmdXJ0bGVQYXJzZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVQYXJzZXJGcm9tTm90aGluZygpIHtcbiAgY29uc3QgeyBibmYgfSA9IEZ1cnRsZVBhcnNlcjtcblxuICBsZXQgcnVsZXM7XG5cbiAgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKTtcblxuICBydWxlcyA9IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24ocnVsZXMpOyAgLy8vXG5cbiAgY29uc3QgZnVydGxlUGFyc2VyID0gcGFyc2VyRnJvbVJ1bGVzKEZ1cnRsZVBhcnNlciwgcnVsZXMpO1xuXG4gIHJldHVybiBmdXJ0bGVQYXJzZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVQYXJzZXJGcm9tQk5GQW5kU3RhcnRSdWxlTmFtZShibmYsIHN0YXJ0UnVsZU5hbWUpIHtcbiAgbGV0IHJ1bGVzO1xuXG4gIHJ1bGVzID0gcnVsZXNGcm9tQk5GKGJuZik7XG5cbiAgcnVsZXMgPSBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uKHJ1bGVzKTsgIC8vL1xuXG4gIGNvbnN0IGZ1cnRsZVBhcnNlciA9IHBhcnNlckZyb21SdWxlc0FuZFN0YXJ0UnVsZU5hbWUoRnVydGxlUGFyc2VyLCBydWxlcywgc3RhcnRSdWxlTmFtZSk7XG5cbiAgcmV0dXJuIGZ1cnRsZVBhcnNlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBmdXJ0bGVQYXJzZXJGcm9tQk5GLFxuICBmdXJ0bGVQYXJzZXJGcm9tTm90aGluZyxcbiAgZnVydGxlUGFyc2VyRnJvbUJORkFuZFN0YXJ0UnVsZU5hbWVcbn07XG4iXSwibmFtZXMiOlsiZnVydGxlUGFyc2VyRnJvbUJORiIsImZ1cnRsZVBhcnNlckZyb21CTkZBbmRTdGFydFJ1bGVOYW1lIiwiZnVydGxlUGFyc2VyRnJvbU5vdGhpbmciLCJydWxlc0Zyb21CTkYiLCJwYXJzZXJVdGlsaXRpZXMiLCJwYXJzZXJGcm9tUnVsZXMiLCJwYXJzZXJGcm9tUnVsZXNBbmRTdGFydFJ1bGVOYW1lIiwiYm5mIiwicnVsZXMiLCJlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIiwiZnVydGxlUGFyc2VyIiwiRnVydGxlUGFyc2VyIiwic3RhcnRSdWxlTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBK0NBLE9BSUU7ZUFKRjs7SUF0Q2dCQSxtQkFBbUI7ZUFBbkJBOztJQTBCQUMsbUNBQW1DO2VBQW5DQTs7SUFkQUMsdUJBQXVCO2VBQXZCQTs7OzRCQW5CZ0I7cUNBQ087NkRBRWQ7Ozs7OztBQUV6QixJQUFRQyxlQUFtRUMsNkJBQWUsQ0FBbEZELGNBQWNFLGtCQUFxREQsNkJBQWUsQ0FBcEVDLGlCQUFpQkMsa0NBQW9DRiw2QkFBZSxDQUFuREU7QUFFaEMsU0FBU04sb0JBQW9CTyxHQUFHO0lBQ3JDLElBQUlDO0lBRUpBLFFBQVFMLGFBQWFJO0lBRXJCQyxRQUFRQyxJQUFBQSw2Q0FBc0IsRUFBQ0QsUUFBUyxHQUFHO0lBRTNDLElBQU1FLGVBQWVMLGdCQUFnQk0sZUFBWSxFQUFFSDtJQUVuRCxPQUFPRTtBQUNUO0FBRU8sU0FBU1I7SUFDZCxJQUFNLEFBQUVLLE1BQVFJLGVBQVksQ0FBcEJKO0lBRVIsSUFBSUM7SUFFSkEsUUFBUUwsYUFBYUk7SUFFckJDLFFBQVFDLElBQUFBLDZDQUFzQixFQUFDRCxRQUFTLEdBQUc7SUFFM0MsSUFBTUUsZUFBZUwsZ0JBQWdCTSxlQUFZLEVBQUVIO0lBRW5ELE9BQU9FO0FBQ1Q7QUFFTyxTQUFTVCxvQ0FBb0NNLEdBQUcsRUFBRUssYUFBYTtJQUNwRSxJQUFJSjtJQUVKQSxRQUFRTCxhQUFhSTtJQUVyQkMsUUFBUUMsSUFBQUEsNkNBQXNCLEVBQUNELFFBQVMsR0FBRztJQUUzQyxJQUFNRSxlQUFlSixnQ0FBZ0NLLGVBQVksRUFBRUgsT0FBT0k7SUFFMUUsT0FBT0Y7QUFDVDtJQUVBLFdBQWU7SUFDYlYscUJBQUFBO0lBQ0FFLHlCQUFBQTtJQUNBRCxxQ0FBQUE7QUFDRiJ9
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-grammars",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.207",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-grammars",
|
|
7
7
|
"description": "Occam's grammars.",
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
"occam-grammar-utilities": "^8.0.273",
|
|
15
15
|
"occam-lexers": "^23.0.47",
|
|
16
16
|
"occam-parsers": "^23.0.76",
|
|
17
|
-
"occam-query": "^4.1.
|
|
17
|
+
"occam-query": "^4.1.48"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@swc/core": "^1.5.6",
|
|
21
21
|
"easy": "^23.0.1",
|
|
22
|
-
"easy-layout": "^6.0.
|
|
23
|
-
"easy-with-style": "^3.0.
|
|
22
|
+
"easy-layout": "^6.0.221",
|
|
23
|
+
"easy-with-style": "^3.0.448",
|
|
24
24
|
"esbuild": "^0.11.5",
|
|
25
25
|
"express": "^4.17.1",
|
|
26
26
|
"juxtapose": "^4.0.117",
|
|
@@ -13,8 +13,7 @@ export default class FurtleView extends View {
|
|
|
13
13
|
getTokens() {
|
|
14
14
|
const lexicalEntries = this.getLexicalEntries(),
|
|
15
15
|
entries = lexicalEntries, ////
|
|
16
|
-
|
|
17
|
-
furtleLexer = furtleLexerFromEntries(entries, augmented),
|
|
16
|
+
furtleLexer = furtleLexerFromEntries(entries),
|
|
18
17
|
lexer = furtleLexer, ///
|
|
19
18
|
content = this.getContent(),
|
|
20
19
|
tokens = lexer.tokenise(content);
|
|
@@ -28,8 +27,7 @@ export default class FurtleView extends View {
|
|
|
28
27
|
const bnf = this.getBNF(),
|
|
29
28
|
ruleName = this.getRuleName(),
|
|
30
29
|
startRuleName = ruleName, ///
|
|
31
|
-
|
|
32
|
-
furtleParser = furtleParserFromBNFAndStartRuleName(bnf, startRuleName, augmented),
|
|
30
|
+
furtleParser = furtleParserFromBNFAndStartRuleName(bnf, startRuleName),
|
|
33
31
|
parser = furtleParser, ///
|
|
34
32
|
node = parser.parse(tokens);
|
|
35
33
|
|
package/src/utilities/lexers.js
CHANGED
|
@@ -4,35 +4,25 @@ import { lexerUtilities } from "occam-lexers";
|
|
|
4
4
|
|
|
5
5
|
import FurtleLexer from "../furtle/lexer";
|
|
6
6
|
|
|
7
|
-
import { augmentLexicalRules } from "../utilities/query";
|
|
8
|
-
|
|
9
7
|
const { lexerFromRules, rulesFromEntries } = lexerUtilities;
|
|
10
8
|
|
|
11
|
-
export function furtleLexerFromEntries(entries
|
|
9
|
+
export function furtleLexerFromEntries(entries) {
|
|
12
10
|
let rules;
|
|
13
11
|
|
|
14
12
|
rules = rulesFromEntries(entries);
|
|
15
13
|
|
|
16
|
-
if (augmented) {
|
|
17
|
-
rules = augmentRules(rules);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
14
|
const furtleLexer = lexerFromRules(FurtleLexer, rules);
|
|
21
15
|
|
|
22
16
|
return furtleLexer;
|
|
23
17
|
}
|
|
24
18
|
|
|
25
|
-
export function furtleLexerFromNothing(
|
|
19
|
+
export function furtleLexerFromNothing() {
|
|
26
20
|
const { entries } = FurtleLexer;
|
|
27
21
|
|
|
28
22
|
let rules;
|
|
29
23
|
|
|
30
24
|
rules = rulesFromEntries(entries);
|
|
31
25
|
|
|
32
|
-
if (augmented) {
|
|
33
|
-
rules = augmentRules(rules);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
26
|
const furtleLexer = lexerFromRules(FurtleLexer, rules);
|
|
37
27
|
|
|
38
28
|
return furtleLexer;
|
|
@@ -42,13 +32,3 @@ export default {
|
|
|
42
32
|
furtleLexerFromEntries,
|
|
43
33
|
furtleLexerFromNothing
|
|
44
34
|
};
|
|
45
|
-
|
|
46
|
-
function augmentRules(rules) {
|
|
47
|
-
let lexicalRules = rules; ///
|
|
48
|
-
|
|
49
|
-
lexicalRules = augmentLexicalRules(lexicalRules);
|
|
50
|
-
|
|
51
|
-
rules = lexicalRules; ///
|
|
52
|
-
|
|
53
|
-
return rules;
|
|
54
|
-
}
|
package/src/utilities/parsers.js
CHANGED
|
@@ -5,27 +5,21 @@ import { eliminateLeftRecursion } from "occam-grammar-utilities";
|
|
|
5
5
|
|
|
6
6
|
import FurtleParser from "../furtle/parser";
|
|
7
7
|
|
|
8
|
-
import { augmentBNFRules } from "../utilities/query";
|
|
9
|
-
|
|
10
8
|
const { rulesFromBNF, parserFromRules, parserFromRulesAndStartRuleName } = parserUtilities;
|
|
11
9
|
|
|
12
|
-
export function furtleParserFromBNF(bnf
|
|
10
|
+
export function furtleParserFromBNF(bnf) {
|
|
13
11
|
let rules;
|
|
14
12
|
|
|
15
13
|
rules = rulesFromBNF(bnf);
|
|
16
14
|
|
|
17
15
|
rules = eliminateLeftRecursion(rules); ///
|
|
18
16
|
|
|
19
|
-
if (augmented) {
|
|
20
|
-
rules = augmentRules(rules);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
17
|
const furtleParser = parserFromRules(FurtleParser, rules);
|
|
24
18
|
|
|
25
19
|
return furtleParser;
|
|
26
20
|
}
|
|
27
21
|
|
|
28
|
-
export function furtleParserFromNothing(
|
|
22
|
+
export function furtleParserFromNothing() {
|
|
29
23
|
const { bnf } = FurtleParser;
|
|
30
24
|
|
|
31
25
|
let rules;
|
|
@@ -34,26 +28,18 @@ export function furtleParserFromNothing(augmented = true) {
|
|
|
34
28
|
|
|
35
29
|
rules = eliminateLeftRecursion(rules); ///
|
|
36
30
|
|
|
37
|
-
if (augmented) {
|
|
38
|
-
rules = augmentRules(rules);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
31
|
const furtleParser = parserFromRules(FurtleParser, rules);
|
|
42
32
|
|
|
43
33
|
return furtleParser;
|
|
44
34
|
}
|
|
45
35
|
|
|
46
|
-
export function furtleParserFromBNFAndStartRuleName(bnf, startRuleName
|
|
36
|
+
export function furtleParserFromBNFAndStartRuleName(bnf, startRuleName) {
|
|
47
37
|
let rules;
|
|
48
38
|
|
|
49
39
|
rules = rulesFromBNF(bnf);
|
|
50
40
|
|
|
51
41
|
rules = eliminateLeftRecursion(rules); ///
|
|
52
42
|
|
|
53
|
-
if (augmented) {
|
|
54
|
-
rules = augmentRules(rules);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
43
|
const furtleParser = parserFromRulesAndStartRuleName(FurtleParser, rules, startRuleName);
|
|
58
44
|
|
|
59
45
|
return furtleParser;
|
|
@@ -64,13 +50,3 @@ export default {
|
|
|
64
50
|
furtleParserFromNothing,
|
|
65
51
|
furtleParserFromBNFAndStartRuleName
|
|
66
52
|
};
|
|
67
|
-
|
|
68
|
-
function augmentRules(rules) {
|
|
69
|
-
let bnfRules = rules; ///
|
|
70
|
-
|
|
71
|
-
bnfRules = augmentBNFRules(bnfRules);
|
|
72
|
-
|
|
73
|
-
rules = bnfRules; ///
|
|
74
|
-
|
|
75
|
-
return rules;
|
|
76
|
-
}
|
package/lib/utilities/query.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
augmentBNFRules: function() {
|
|
13
|
-
return augmentBNFRules;
|
|
14
|
-
},
|
|
15
|
-
augmentLexicalRules: function() {
|
|
16
|
-
return augmentLexicalRules;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
var _occamparsers = require("occam-parsers");
|
|
20
|
-
var _necessary = require("necessary");
|
|
21
|
-
var _occamquery = require("occam-query");
|
|
22
|
-
var _constants = require("../constants");
|
|
23
|
-
function _array_like_to_array(arr, len) {
|
|
24
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
25
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
26
|
-
return arr2;
|
|
27
|
-
}
|
|
28
|
-
function _array_without_holes(arr) {
|
|
29
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
30
|
-
}
|
|
31
|
-
function _iterable_to_array(iter) {
|
|
32
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
33
|
-
}
|
|
34
|
-
function _non_iterable_spread() {
|
|
35
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
36
|
-
}
|
|
37
|
-
function _to_consumable_array(arr) {
|
|
38
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
39
|
-
}
|
|
40
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
41
|
-
if (!o) return;
|
|
42
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
43
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
44
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
45
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
46
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
47
|
-
}
|
|
48
|
-
var first = _necessary.arrayUtilities.first, extract = _necessary.arrayUtilities.extract;
|
|
49
|
-
var expressionBNFRules = expressionBNFRulesFromNothing(), expressionLexicalRules = expressionLexicalRulesFromNothing();
|
|
50
|
-
function augmentLexicalRules(lexicalRules) {
|
|
51
|
-
lexicalRules = _to_consumable_array(lexicalRules);
|
|
52
|
-
var unassignedLexicalRule = lexicalRules.pop(); ///
|
|
53
|
-
lexicalRules = _to_consumable_array(lexicalRules).concat(_to_consumable_array(expressionLexicalRules));
|
|
54
|
-
return lexicalRules;
|
|
55
|
-
}
|
|
56
|
-
function augmentBNFRules(bnrRules) {
|
|
57
|
-
bnrRules = _to_consumable_array(bnrRules).concat(_to_consumable_array(expressionBNFRules));
|
|
58
|
-
return bnrRules;
|
|
59
|
-
}
|
|
60
|
-
function expressionLexicalRulesFromNothing() {
|
|
61
|
-
var expressionLexer = _occamquery.ExpressionLexer.fromNothing(), rules = expressionLexer.getRules(), expressionLexicalRules = _to_consumable_array(rules);
|
|
62
|
-
return expressionLexicalRules;
|
|
63
|
-
}
|
|
64
|
-
function expressionBNFRulesFromNothing() {
|
|
65
|
-
var expressionParser = _occamquery.ExpressionParser.fromNothing(), ruleMap = expressionParser.getRuleMap(), rules = Object.values(ruleMap);
|
|
66
|
-
extract(rules, function(rule) {
|
|
67
|
-
var ruleName = rule.getName();
|
|
68
|
-
if (ruleName === _constants.ERROR_RULE_NAME) {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
var expressionRule = extract(rules, function(rule) {
|
|
73
|
-
var ruleName = rule.getName();
|
|
74
|
-
if (ruleName === _constants.EXPRESSION_RULE_NAME) {
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
var rule = expressionRule, definitions = rule.getDefinitions();
|
|
79
|
-
var name = rule.getName(), opacity = rule.getOpacity(), NonTerminalNode = rule.getNonTerminalNode(), firstDefinition = first(definitions), definition = firstDefinition; ///
|
|
80
|
-
definitions = [
|
|
81
|
-
definition
|
|
82
|
-
];
|
|
83
|
-
rule = _occamparsers.Rule.fromNameOpacityDefinitionsAndNonTerminalNode(name, opacity, definitions, NonTerminalNode);
|
|
84
|
-
rules.unshift(rule);
|
|
85
|
-
var expressionBNFRules = rules; ///
|
|
86
|
-
return expressionBNFRules;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFJ1bGUgfSBmcm9tIFwib2NjYW0tcGFyc2Vyc1wiO1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBFeHByZXNzaW9uTGV4ZXIsIEV4cHJlc3Npb25QYXJzZXIgfSBmcm9tIFwib2NjYW0tcXVlcnlcIjtcblxuaW1wb3J0IHsgRVJST1JfUlVMRV9OQU1FLCBFWFBSRVNTSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBmaXJzdCwgZXh0cmFjdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IGV4cHJlc3Npb25CTkZSdWxlcyA9IGV4cHJlc3Npb25CTkZSdWxlc0Zyb21Ob3RoaW5nKCksXG4gICAgICBleHByZXNzaW9uTGV4aWNhbFJ1bGVzID0gZXhwcmVzc2lvbkxleGljYWxSdWxlc0Zyb21Ob3RoaW5nKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBhdWdtZW50TGV4aWNhbFJ1bGVzKGxleGljYWxSdWxlcykge1xuICBsZXhpY2FsUnVsZXMgPSBbICAvLy9cbiAgICAuLi5sZXhpY2FsUnVsZXNcbiAgXTtcblxuICBjb25zdCB1bmFzc2lnbmVkTGV4aWNhbFJ1bGUgPSBsZXhpY2FsUnVsZXMucG9wKCk7IC8vL1xuXG4gIGxleGljYWxSdWxlcyA9IFsgIC8vL1xuICAgIC4uLmxleGljYWxSdWxlcyxcbiAgICAuLi5leHByZXNzaW9uTGV4aWNhbFJ1bGVzXG4gIF07XG5cbiAgcmV0dXJuIGxleGljYWxSdWxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF1Z21lbnRCTkZSdWxlcyhibnJSdWxlcykge1xuICBibnJSdWxlcyA9IFsgLy8vXG4gICAgLi4uYm5yUnVsZXMsXG4gICAgLi4uZXhwcmVzc2lvbkJORlJ1bGVzXG4gIF07XG5cbiAgcmV0dXJuIGJuclJ1bGVzO1xufVxuXG5mdW5jdGlvbiBleHByZXNzaW9uTGV4aWNhbFJ1bGVzRnJvbU5vdGhpbmcoKSB7XG4gIGNvbnN0IGV4cHJlc3Npb25MZXhlciA9IEV4cHJlc3Npb25MZXhlci5mcm9tTm90aGluZygpLFxuICAgICAgICBydWxlcyA9IGV4cHJlc3Npb25MZXhlci5nZXRSdWxlcygpLFxuICAgICAgICBleHByZXNzaW9uTGV4aWNhbFJ1bGVzID0gWyAgLy8vXG4gICAgICAgICAgLi4ucnVsZXNcbiAgICAgICAgXTtcblxuICByZXR1cm4gZXhwcmVzc2lvbkxleGljYWxSdWxlcztcbn1cblxuZnVuY3Rpb24gZXhwcmVzc2lvbkJORlJ1bGVzRnJvbU5vdGhpbmcoKSB7XG4gIGNvbnN0IGV4cHJlc3Npb25QYXJzZXIgPSBFeHByZXNzaW9uUGFyc2VyLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJ1bGVNYXAgPSBleHByZXNzaW9uUGFyc2VyLmdldFJ1bGVNYXAoKSxcbiAgICAgICAgcnVsZXMgPSBPYmplY3QudmFsdWVzKHJ1bGVNYXApO1xuXG4gIGV4dHJhY3QocnVsZXMsIChydWxlKSA9PiB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBydWxlLmdldE5hbWUoKTtcblxuICAgIGlmIChydWxlTmFtZSA9PT0gRVJST1JfUlVMRV9OQU1FKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGV4cHJlc3Npb25SdWxlID0gZXh0cmFjdChydWxlcywgKHJ1bGUpID0+IHtcbiAgICBjb25zdCBydWxlTmFtZSA9IHJ1bGUuZ2V0TmFtZSgpO1xuXG4gICAgaWYgKHJ1bGVOYW1lID09PSBFWFBSRVNTSU9OX1JVTEVfTkFNRSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBsZXQgcnVsZSA9IGV4cHJlc3Npb25SdWxlLCAgLy8vXG4gICAgICBkZWZpbml0aW9ucyA9IHJ1bGUuZ2V0RGVmaW5pdGlvbnMoKTtcblxuICBjb25zdCBuYW1lID0gcnVsZS5nZXROYW1lKCksXG4gICAgICAgIG9wYWNpdHkgPSBydWxlLmdldE9wYWNpdHkoKSxcbiAgICAgICAgTm9uVGVybWluYWxOb2RlID0gcnVsZS5nZXROb25UZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgZmlyc3REZWZpbml0aW9uID0gZmlyc3QoZGVmaW5pdGlvbnMpLFxuICAgICAgICBkZWZpbml0aW9uID0gZmlyc3REZWZpbml0aW9uOyAvLy9cblxuICBkZWZpbml0aW9ucyA9IFtcbiAgICBkZWZpbml0aW9uXG4gIF07XG5cbiAgcnVsZSA9IFJ1bGUuZnJvbU5hbWVPcGFjaXR5RGVmaW5pdGlvbnNBbmROb25UZXJtaW5hbE5vZGUobmFtZSwgb3BhY2l0eSwgZGVmaW5pdGlvbnMsIE5vblRlcm1pbmFsTm9kZSk7XG5cbiAgcnVsZXMudW5zaGlmdChydWxlKTtcblxuICBjb25zdCBleHByZXNzaW9uQk5GUnVsZXMgPSBydWxlczsgIC8vL1xuXG4gIHJldHVybiBleHByZXNzaW9uQk5GUnVsZXM7XG59XG4iXSwibmFtZXMiOlsiYXVnbWVudEJORlJ1bGVzIiwiYXVnbWVudExleGljYWxSdWxlcyIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJleHRyYWN0IiwiZXhwcmVzc2lvbkJORlJ1bGVzIiwiZXhwcmVzc2lvbkJORlJ1bGVzRnJvbU5vdGhpbmciLCJleHByZXNzaW9uTGV4aWNhbFJ1bGVzIiwiZXhwcmVzc2lvbkxleGljYWxSdWxlc0Zyb21Ob3RoaW5nIiwibGV4aWNhbFJ1bGVzIiwidW5hc3NpZ25lZExleGljYWxSdWxlIiwicG9wIiwiYm5yUnVsZXMiLCJleHByZXNzaW9uTGV4ZXIiLCJFeHByZXNzaW9uTGV4ZXIiLCJmcm9tTm90aGluZyIsInJ1bGVzIiwiZ2V0UnVsZXMiLCJleHByZXNzaW9uUGFyc2VyIiwiRXhwcmVzc2lvblBhcnNlciIsInJ1bGVNYXAiLCJnZXRSdWxlTWFwIiwiT2JqZWN0IiwidmFsdWVzIiwicnVsZSIsInJ1bGVOYW1lIiwiZ2V0TmFtZSIsIkVSUk9SX1JVTEVfTkFNRSIsImV4cHJlc3Npb25SdWxlIiwiRVhQUkVTU0lPTl9SVUxFX05BTUUiLCJkZWZpbml0aW9ucyIsImdldERlZmluaXRpb25zIiwibmFtZSIsIm9wYWNpdHkiLCJnZXRPcGFjaXR5IiwiTm9uVGVybWluYWxOb2RlIiwiZ2V0Tm9uVGVybWluYWxOb2RlIiwiZmlyc3REZWZpbml0aW9uIiwiZGVmaW5pdGlvbiIsIlJ1bGUiLCJmcm9tTmFtZU9wYWNpdHlEZWZpbml0aW9uc0FuZE5vblRlcm1pbmFsTm9kZSIsInVuc2hpZnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQTRCZ0JBLGVBQWU7ZUFBZkE7O0lBZkFDLG1CQUFtQjtlQUFuQkE7Ozs0QkFYSzt5QkFDVTswQkFDbUI7eUJBRUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRELElBQVFDLFFBQW1CQyx5QkFBYyxDQUFqQ0QsT0FBT0UsVUFBWUQseUJBQWMsQ0FBMUJDO0FBRWYsSUFBTUMscUJBQXFCQyxpQ0FDckJDLHlCQUF5QkM7QUFFeEIsU0FBU1Asb0JBQW9CUSxZQUFZO0lBQzlDQSxlQUNFLHFCQUFHQTtJQUdMLElBQU1DLHdCQUF3QkQsYUFBYUUsR0FBRyxJQUFJLEdBQUc7SUFFckRGLGVBQWUsQUFDYixxQkFBR0EscUJBQ0gscUJBQUdGO0lBR0wsT0FBT0U7QUFDVDtBQUVPLFNBQVNULGdCQUFnQlksUUFBUTtJQUN0Q0EsV0FBVyxBQUNULHFCQUFHQSxpQkFDSCxxQkFBR1A7SUFHTCxPQUFPTztBQUNUO0FBRUEsU0FBU0o7SUFDUCxJQUFNSyxrQkFBa0JDLDJCQUFlLENBQUNDLFdBQVcsSUFDN0NDLFFBQVFILGdCQUFnQkksUUFBUSxJQUNoQ1YseUJBQ0UscUJBQUdTO0lBR1gsT0FBT1Q7QUFDVDtBQUVBLFNBQVNEO0lBQ1AsSUFBTVksbUJBQW1CQyw0QkFBZ0IsQ0FBQ0osV0FBVyxJQUMvQ0ssVUFBVUYsaUJBQWlCRyxVQUFVLElBQ3JDTCxRQUFRTSxPQUFPQyxNQUFNLENBQUNIO0lBRTVCaEIsUUFBUVksT0FBTyxTQUFDUTtRQUNkLElBQU1DLFdBQVdELEtBQUtFLE9BQU87UUFFN0IsSUFBSUQsYUFBYUUsMEJBQWUsRUFBRTtZQUNoQyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQU1DLGlCQUFpQnhCLFFBQVFZLE9BQU8sU0FBQ1E7UUFDckMsSUFBTUMsV0FBV0QsS0FBS0UsT0FBTztRQUU3QixJQUFJRCxhQUFhSSwrQkFBb0IsRUFBRTtZQUNyQyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUlMLE9BQU9JLGdCQUNQRSxjQUFjTixLQUFLTyxjQUFjO0lBRXJDLElBQU1DLE9BQU9SLEtBQUtFLE9BQU8sSUFDbkJPLFVBQVVULEtBQUtVLFVBQVUsSUFDekJDLGtCQUFrQlgsS0FBS1ksa0JBQWtCLElBQ3pDQyxrQkFBa0JuQyxNQUFNNEIsY0FDeEJRLGFBQWFELGlCQUFpQixHQUFHO0lBRXZDUCxjQUFjO1FBQ1pRO0tBQ0Q7SUFFRGQsT0FBT2Usa0JBQUksQ0FBQ0MsNENBQTRDLENBQUNSLE1BQU1DLFNBQVNILGFBQWFLO0lBRXJGbkIsTUFBTXlCLE9BQU8sQ0FBQ2pCO0lBRWQsSUFBTW5CLHFCQUFxQlcsT0FBUSxHQUFHO0lBRXRDLE9BQU9YO0FBQ1QifQ==
|
package/src/utilities/query.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { Rule } from "occam-parsers";
|
|
4
|
-
import { arrayUtilities } from "necessary";
|
|
5
|
-
import { ExpressionLexer, ExpressionParser } from "occam-query";
|
|
6
|
-
|
|
7
|
-
import { ERROR_RULE_NAME, EXPRESSION_RULE_NAME } from "../constants";
|
|
8
|
-
|
|
9
|
-
const { first, extract } = arrayUtilities;
|
|
10
|
-
|
|
11
|
-
const expressionBNFRules = expressionBNFRulesFromNothing(),
|
|
12
|
-
expressionLexicalRules = expressionLexicalRulesFromNothing();
|
|
13
|
-
|
|
14
|
-
export function augmentLexicalRules(lexicalRules) {
|
|
15
|
-
lexicalRules = [ ///
|
|
16
|
-
...lexicalRules
|
|
17
|
-
];
|
|
18
|
-
|
|
19
|
-
const unassignedLexicalRule = lexicalRules.pop(); ///
|
|
20
|
-
|
|
21
|
-
lexicalRules = [ ///
|
|
22
|
-
...lexicalRules,
|
|
23
|
-
...expressionLexicalRules
|
|
24
|
-
];
|
|
25
|
-
|
|
26
|
-
return lexicalRules;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export function augmentBNFRules(bnrRules) {
|
|
30
|
-
bnrRules = [ ///
|
|
31
|
-
...bnrRules,
|
|
32
|
-
...expressionBNFRules
|
|
33
|
-
];
|
|
34
|
-
|
|
35
|
-
return bnrRules;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function expressionLexicalRulesFromNothing() {
|
|
39
|
-
const expressionLexer = ExpressionLexer.fromNothing(),
|
|
40
|
-
rules = expressionLexer.getRules(),
|
|
41
|
-
expressionLexicalRules = [ ///
|
|
42
|
-
...rules
|
|
43
|
-
];
|
|
44
|
-
|
|
45
|
-
return expressionLexicalRules;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function expressionBNFRulesFromNothing() {
|
|
49
|
-
const expressionParser = ExpressionParser.fromNothing(),
|
|
50
|
-
ruleMap = expressionParser.getRuleMap(),
|
|
51
|
-
rules = Object.values(ruleMap);
|
|
52
|
-
|
|
53
|
-
extract(rules, (rule) => {
|
|
54
|
-
const ruleName = rule.getName();
|
|
55
|
-
|
|
56
|
-
if (ruleName === ERROR_RULE_NAME) {
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
const expressionRule = extract(rules, (rule) => {
|
|
62
|
-
const ruleName = rule.getName();
|
|
63
|
-
|
|
64
|
-
if (ruleName === EXPRESSION_RULE_NAME) {
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
let rule = expressionRule, ///
|
|
70
|
-
definitions = rule.getDefinitions();
|
|
71
|
-
|
|
72
|
-
const name = rule.getName(),
|
|
73
|
-
opacity = rule.getOpacity(),
|
|
74
|
-
NonTerminalNode = rule.getNonTerminalNode(),
|
|
75
|
-
firstDefinition = first(definitions),
|
|
76
|
-
definition = firstDefinition; ///
|
|
77
|
-
|
|
78
|
-
definitions = [
|
|
79
|
-
definition
|
|
80
|
-
];
|
|
81
|
-
|
|
82
|
-
rule = Rule.fromNameOpacityDefinitionsAndNonTerminalNode(name, opacity, definitions, NonTerminalNode);
|
|
83
|
-
|
|
84
|
-
rules.unshift(rule);
|
|
85
|
-
|
|
86
|
-
const expressionBNFRules = rules; ///
|
|
87
|
-
|
|
88
|
-
return expressionBNFRules;
|
|
89
|
-
}
|