occam-grammars 1.1.1 → 1.2.4
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 +6707 -6602
- package/lib/example/view/furtle.js +4 -11
- package/lib/index.js +9 -1
- package/lib/utilities/lexers.js +43 -0
- package/lib/utilities/parsers.js +51 -0
- package/package.json +1 -1
- package/src/example/view/furtle.js +7 -20
- package/src/index.js +3 -0
- package/src/utilities/lexers.js +27 -0
- package/src/utilities/parsers.js +39 -0
|
@@ -8,9 +8,6 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return FurtleView;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var _occamlexers = require("occam-lexers");
|
|
12
|
-
var _occamparsers = require("occam-parsers");
|
|
13
|
-
var _occamgrammarutilities = require("occam-grammar-utilities");
|
|
14
11
|
var _index = require("../../index");
|
|
15
12
|
var _view = /*#__PURE__*/ _interop_require_default(require("../view"));
|
|
16
13
|
function _assert_this_initialized(self) {
|
|
@@ -104,7 +101,7 @@ function _is_native_reflect_construct() {
|
|
|
104
101
|
return !!result;
|
|
105
102
|
})();
|
|
106
103
|
}
|
|
107
|
-
var
|
|
104
|
+
var furtleParserFromBNF = _index.parsersUtilities.furtleParserFromBNF, furtleLexerFromEntries = _index.lexersUtilities.furtleLexerFromEntries;
|
|
108
105
|
var FurtleView = /*#__PURE__*/ function(View) {
|
|
109
106
|
_inherits(FurtleView, View);
|
|
110
107
|
function FurtleView() {
|
|
@@ -115,7 +112,7 @@ var FurtleView = /*#__PURE__*/ function(View) {
|
|
|
115
112
|
{
|
|
116
113
|
key: "getTokens",
|
|
117
114
|
value: function getTokens() {
|
|
118
|
-
var lexicalEntries = this.getLexicalEntries(), entries = lexicalEntries,
|
|
115
|
+
var lexicalEntries = this.getLexicalEntries(), entries = lexicalEntries, furtleLexer = furtleLexerFromEntries(entries), lexer = furtleLexer, content = this.getContent(), tokens = lexer.tokenise(content);
|
|
119
116
|
return tokens;
|
|
120
117
|
}
|
|
121
118
|
},
|
|
@@ -123,11 +120,7 @@ var FurtleView = /*#__PURE__*/ function(View) {
|
|
|
123
120
|
key: "getParseTree",
|
|
124
121
|
value: function getParseTree(tokens) {
|
|
125
122
|
var parseTree = null;
|
|
126
|
-
var bnf = this.getBNF();
|
|
127
|
-
var rules;
|
|
128
|
-
rules = rulesFromBNF(bnf);
|
|
129
|
-
rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
|
|
130
|
-
var ruleName = this.getRuleName(), startRuleName = ruleName, furtleParser = parserFromRulesAndStartRuleName(_index.FurtleParser, rules, startRuleName), parser = furtleParser, node = parser.parse(tokens);
|
|
123
|
+
var bnf = this.getBNF(), furtleParser = furtleParserFromBNF(bnf), parser = furtleParser, node = parser.parse(tokens);
|
|
131
124
|
if (node !== null) {
|
|
132
125
|
parseTree = node.asParseTree(tokens);
|
|
133
126
|
}
|
|
@@ -145,4 +138,4 @@ _define_property(FurtleView, "defaultProperties", {
|
|
|
145
138
|
className: "furtle"
|
|
146
139
|
});
|
|
147
140
|
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGdXJ0bGVMZXhlciwgRnVydGxlUGFyc2VyLCBsZXhlcnNVdGlsaXRpZXMsIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwiLi4vLi4vaW5kZXhcIjsgIC8vL1xuXG5pbXBvcnQgVmlldyBmcm9tIFwiLi4vdmlld1wiO1xuXG5jb25zdCB7IGZ1cnRsZVBhcnNlckZyb21CTkYgfSA9IHBhcnNlcnNVdGlsaXRpZXMsXG4gICAgICB7IGZ1cnRsZUxleGVyRnJvbUVudHJpZXMgfSA9IGxleGVyc1V0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnVydGxlVmlldyBleHRlbmRzIFZpZXcge1xuICBnZXRUb2tlbnMoKSB7XG4gICAgY29uc3QgbGV4aWNhbEVudHJpZXMgPSB0aGlzLmdldExleGljYWxFbnRyaWVzKCksXG4gICAgICAgICAgZW50cmllcyA9IGxleGljYWxFbnRyaWVzLCAvLy8vXG4gICAgICAgICAgZnVydGxlTGV4ZXIgPSBmdXJ0bGVMZXhlckZyb21FbnRyaWVzKGVudHJpZXMpLFxuICAgICAgICAgIGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgdG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgICByZXR1cm4gdG9rZW5zO1xuICB9XG5cbiAgZ2V0UGFyc2VUcmVlKHRva2Vucykge1xuICAgIGxldCBwYXJzZVRyZWUgPSBudWxsO1xuXG4gICAgY29uc3QgYm5mID0gdGhpcy5nZXRCTkYoKSxcbiAgICAgICAgICBmdXJ0bGVQYXJzZXIgPSBmdXJ0bGVQYXJzZXJGcm9tQk5GKGJuZiksXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAvLy9cbiAgICAgICAgICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgcGFyc2VUcmVlID0gbm9kZS5hc1BhcnNlVHJlZSh0b2tlbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBzdGF0aWMgTGV4ZXIgPSBGdXJ0bGVMZXhlcjtcblxuICBzdGF0aWMgUGFyc2VyID0gRnVydGxlUGFyc2VyO1xuXG4gIHN0YXRpYyByZWFkT25seSA9IGZhbHNlO1xuXG4gIHN0YXRpYyBpbml0aWFsQ29udGVudCA9IGBOb2RlKiB0ZXJtTm9kZSwgc3RhdGVtZW50Tm9kZTsgQm9vbGVhbiogYm91bmQgPSBmYWxzZTtcbiAgXG5TdHJpbmcgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuSWYgKHZhcmlhYmxlTmFtZSA9PSBudWxsKSB7XG4gIEJyZWFrO1xufVxuXG5Ob2RlcyBzdGF0ZW1lbnROb2RlcyA9IG5vZGVzUXVlcnkoc3RhdGVtZW50Tm9kZSwgLy9zdGF0ZW1lbnQpO1xuXG5Gb3JFYWNoKHN0YXRlbWVudE5vZGVzLCAoTm9kZSBzdGF0ZW1lbnROb2RlKSB7XG4gIFN0cmluZyBib3VuZFZhcmlhYmxlTmFtZSA9IGJvdW5kVmFyaWFibGVOYW1lRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7IFxuICBcbiAgSWYgKGJvdW5kVmFyaWFibGVOYW1lID09IHZhcmlhYmxlTmFtZSkge1xuICAgIGJvdW5kID0gdHJ1ZTtcbiAgICBcbiAgICBCcmVhaztcbiAgfVxufSk7XG4gIFxuICBcblN0cmluZyB2YXJpYWJsZU5hbWVGcm9tVGVybU5vZGUoTm9kZSB0ZXJtTm9kZSkge1xuICBTdHJpbmcgdmFyaWFibGVOYW1lID0gbnVsbDtcbiAgXG4gIE5vZGUgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlID0gbm9kZVF1ZXJ5KHRlcm1Ob2RlLCAvdGVybS92YXJpYWJsZS9AbmFtZSk7XG4gIFxuICBJZiAodmFyaWFibGVOYW1lVGVybWluYWxOb2RlICE9IG51bGwpIHtcbiAgICBTdHJpbmcgY29udGVudDtcbiAgICBcbiAgICB7IGNvbnRlbnQgfSA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZTtcbiAgICBcbiAgICB2YXJpYWJsZU5hbWUgPSBjb250ZW50O1xuICB9XG4gIFxuICBSZXR1cm4gdmFyaWFibGVOYW1lO1xufVxuXG5TdHJpbmcgYm91bmRWYXJpYWJsZU5hbWVGcm9tU3RhdGVtZW50Tm9kZShOb2RlIHN0YXRlbWVudE5vZGUpIHtcbiAgU3RyaW5nIGJvdW5kVmFyaWFibGVOYW1lID0gbnVsbDtcbiAgXG4gIE5vZGVzIGNoaWxkTm9kZXM7XG4gIFxuICB7IGNoaWxkTm9kZXMgfSA9IHN0YXRlbWVudE5vZGU7XG4gIFxuICBOb2RlIGZpcnN0Q2hpbGROb2RlO1xuXG4gIFsgZmlyc3RDaGlsZE5vZGUgXSA9IGNoaWxkTm9kZXM7XG4gIFxuICBCb29sZWFuIGZpcnN0Q2hpbGROb2RlVGVybWluYWxOb2RlID0gaXNUZXJtaW5hbE5vZGUoZmlyc3RDaGlsZE5vZGUpO1xuICBcbiAgSWYgKGZpcnN0Q2hpbGROb2RlVGVybWluYWxOb2RlKSB7XG4gICAgTm9kZSB0ZXJtaW5hbE5vZGUgPSBmaXJzdENoaWxkTm9kZTtcbiAgICBcbiAgICBTdHJpbmcgY29udGVudDtcbiAgICBcbiAgICB7IGNvbnRlbnQgfSA9IGZpcnN0Q2hpbGROb2RlO1xuICAgIFxuICAgIElmICgoY29udGVudCA9PSBcIuKIgFwiKSB8fCAoY29udGVudCA9PSBcIuKIg1wiKSkge1xuICAgICAgTm9kZSBzZWNvbmRDaGlsZE5vZGU7XG4gICAgICBcbiAgICAgIFsgXywgc2Vjb25kQ2hpbGROb2RlIF0gPSBjaGlsZE5vZGVzO1xuICAgICAgXG4gICAgICBOb2RlIGFyZ3VtZW50Tm9kZSA9IHNlY29uZENoaWxkTm9kZTtcbiAgICAgIFxuICAgICAgTm9kZSBib3VuZFZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSA9IG5vZGVRdWVyeShhcmd1bWVudE5vZGUsIC9hcmd1bWVudC90ZXJtL3ZhcmlhYmxlL0BuYW1lKTtcbiAgICAgIFxuICAgICAgSWYgKGJvdW5kVmFyaWFibGVOYW1lVGVybWluYWxOb2RlICE9IG51bGwpIHtcbiAgICAgICAgeyBjb250ZW50IH0gPSBib3VuZFZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZTtcbiAgICAgICAgXG4gICAgICAgIGJvdW5kVmFyaWFibGVOYW1lID0gY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgICBcbiAgUmV0dXJuIGJvdW5kVmFyaWFibGVOYW1lO1xufVxuYDtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImZ1cnRsZVwiXG4gIH07XG59XG4iXSwibmFtZXMiOlsiRnVydGxlVmlldyIsImZ1cnRsZVBhcnNlckZyb21CTkYiLCJwYXJzZXJzVXRpbGl0aWVzIiwiZnVydGxlTGV4ZXJGcm9tRW50cmllcyIsImxleGVyc1V0aWxpdGllcyIsImdldFRva2VucyIsImxleGljYWxFbnRyaWVzIiwiZ2V0TGV4aWNhbEVudHJpZXMiLCJlbnRyaWVzIiwiZnVydGxlTGV4ZXIiLCJsZXhlciIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJnZXRQYXJzZVRyZWUiLCJwYXJzZVRyZWUiLCJibmYiLCJnZXRCTkYiLCJmdXJ0bGVQYXJzZXIiLCJwYXJzZXIiLCJub2RlIiwicGFyc2UiLCJhc1BhcnNlVHJlZSIsIlZpZXciLCJMZXhlciIsIkZ1cnRsZUxleGVyIiwiUGFyc2VyIiwiRnVydGxlUGFyc2VyIiwicmVhZE9ubHkiLCJpbml0aWFsQ29udGVudCIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVNxQkE7OztxQkFQd0Q7MkRBRTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqQixJQUFNLEFBQUVDLHNCQUF3QkMsdUJBQWdCLENBQXhDRCxxQkFDRixBQUFFRSx5QkFBMkJDLHNCQUFlLENBQTFDRDtBQUVPLElBQUEsQUFBTUgsMkJBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO2VBQU4sa0JBQU1BOztrQkFBQUE7O1lBQ25CSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsaUJBQWlCLElBQUksQ0FBQ0MsaUJBQWlCLElBQ3ZDQyxVQUFVRixnQkFDVkcsY0FBY04sdUJBQXVCSyxVQUNyQ0UsUUFBUUQsYUFDUkUsVUFBVSxJQUFJLENBQUNDLFVBQVUsSUFDekJDLFNBQVNILE1BQU1JLFFBQVEsQ0FBQ0g7Z0JBRTlCLE9BQU9FO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsYUFBYUYsTUFBTTtnQkFDakIsSUFBSUcsWUFBWTtnQkFFaEIsSUFBTUMsTUFBTSxJQUFJLENBQUNDLE1BQU0sSUFDakJDLGVBQWVsQixvQkFBb0JnQixNQUNuQ0csU0FBU0QsY0FDVEUsT0FBT0QsT0FBT0UsS0FBSyxDQUFDVDtnQkFFMUIsSUFBSVEsU0FBUyxNQUFNO29CQUNqQkwsWUFBWUssS0FBS0UsV0FBVyxDQUFDVjtnQkFDL0I7Z0JBRUEsT0FBT0c7WUFDVDs7O1dBekJtQmhCO0VBQW1Cd0IsYUFBSTtBQTJCMUMsaUJBM0JtQnhCLFlBMkJaeUIsU0FBUUMsa0JBQVc7QUFFMUIsaUJBN0JtQjFCLFlBNkJaMkIsVUFBU0MsbUJBQVk7QUFFNUIsaUJBL0JtQjVCLFlBK0JaNkIsWUFBVztBQUVsQixpQkFqQ21CN0IsWUFpQ1o4QixrQkFBa0I7QUE4RXpCLGlCQS9HbUI5QixZQStHWitCLHFCQUFvQjtJQUN6QkMsV0FBVztBQUNiIn0=
|
package/lib/index.js
CHANGED
|
@@ -50,8 +50,16 @@ _export(exports, {
|
|
|
50
50
|
},
|
|
51
51
|
TeXParser: function() {
|
|
52
52
|
return _parser.default;
|
|
53
|
+
},
|
|
54
|
+
lexersUtilities: function() {
|
|
55
|
+
return _lexers.default;
|
|
56
|
+
},
|
|
57
|
+
parsersUtilities: function() {
|
|
58
|
+
return _parsers.default;
|
|
53
59
|
}
|
|
54
60
|
});
|
|
61
|
+
var _lexers = /*#__PURE__*/ _interop_require_default(require("./utilities/lexers"));
|
|
62
|
+
var _parsers = /*#__PURE__*/ _interop_require_default(require("./utilities/parsers"));
|
|
55
63
|
var _lexer = /*#__PURE__*/ _interop_require_default(require("./teX/lexer"));
|
|
56
64
|
var _lexer1 = /*#__PURE__*/ _interop_require_default(require("./json/lexer"));
|
|
57
65
|
var _lexer2 = /*#__PURE__*/ _interop_require_default(require("./furtle/lexer"));
|
|
@@ -72,4 +80,4 @@ function _interop_require_default(obj) {
|
|
|
72
80
|
};
|
|
73
81
|
}
|
|
74
82
|
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBsZXhlcnNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGV4ZXJzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcGFyc2Vyc1wiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRlWExleGVyIH0gZnJvbSBcIi4vdGVYL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEpTT05MZXhlciB9IGZyb20gXCIuL2pzb24vbGV4ZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRnVydGxlTGV4ZXIgfSBmcm9tIFwiLi9mdXJ0bGUvbGV4ZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbExleGVyIH0gZnJvbSBcIi4vbm9taW5hbC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQbGFpblRleHRMZXhlciB9IGZyb20gXCIuL3BsYWluVGV4dC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDdXN0b21HcmFtbWFyQk5GTGV4ZXIgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyQk5GL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEN1c3RvbUdyYW1tYXJQYXR0ZXJuTGV4ZXIgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyUGF0dGVybi9sZXhlclwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRlWFBhcnNlciB9IGZyb20gXCIuL3RlWC9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSlNPTlBhcnNlciB9IGZyb20gXCIuL2pzb24vcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuL2Z1cnRsZS9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbFBhcnNlciB9IGZyb20gXCIuL25vbWluYWwvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBsYWluVGV4dFBhcnNlciB9IGZyb20gXCIuL3BsYWluVGV4dC9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ3VzdG9tR3JhbW1hckJORlBhcnNlciB9IGZyb20gXCIuL2N1c3RvbUdyYW1tYXJCTkYvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEN1c3RvbUdyYW1tYXJQYXR0ZXJuUGFyc2VyIH0gZnJvbSBcIi4vY3VzdG9tR3JhbW1hclBhdHRlcm4vcGFyc2VyXCI7XG4iXSwibmFtZXMiOlsiQ3VzdG9tR3JhbW1hckJORkxleGVyIiwiQ3VzdG9tR3JhbW1hckJORlBhcnNlciIsIkN1c3RvbUdyYW1tYXJQYXR0ZXJuTGV4ZXIiLCJDdXN0b21HcmFtbWFyUGF0dGVyblBhcnNlciIsIkZ1cnRsZUxleGVyIiwiRnVydGxlUGFyc2VyIiwiSlNPTkxleGVyIiwiSlNPTlBhcnNlciIsIk5vbWluYWxMZXhlciIsIk5vbWluYWxQYXJzZXIiLCJQbGFpblRleHRMZXhlciIsIlBsYWluVGV4dFBhcnNlciIsIlRlWExleGVyIiwiVGVYUGFyc2VyIiwibGV4ZXJzVXRpbGl0aWVzIiwicGFyc2Vyc1V0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVW9CQSxxQkFBcUI7ZUFBckJBLGVBQXFCOztJQVFyQkMsc0JBQXNCO2VBQXRCQSxnQkFBc0I7O0lBUHRCQyx5QkFBeUI7ZUFBekJBLGVBQXlCOztJQVF6QkMsMEJBQTBCO2VBQTFCQSxnQkFBMEI7O0lBWjFCQyxXQUFXO2VBQVhBLGVBQVc7O0lBUVhDLFlBQVk7ZUFBWkEsZ0JBQVk7O0lBVFpDLFNBQVM7ZUFBVEEsZUFBUzs7SUFRVEMsVUFBVTtlQUFWQSxnQkFBVTs7SUFOVkMsWUFBWTtlQUFaQSxlQUFZOztJQVFaQyxhQUFhO2VBQWJBLGdCQUFhOztJQVBiQyxjQUFjO2VBQWRBLGVBQWM7O0lBUWRDLGVBQWU7ZUFBZkEsZ0JBQWU7O0lBWmZDLFFBQVE7ZUFBUkEsY0FBUTs7SUFRUkMsU0FBUztlQUFUQSxlQUFTOztJQVhUQyxlQUFlO2VBQWZBLGVBQWU7O0lBQ2ZDLGdCQUFnQjtlQUFoQkEsZ0JBQWdCOzs7NkRBRE87OERBQ0M7NERBRVI7NkRBQ0M7NkRBQ0U7NkRBQ0M7NkRBQ0U7NkRBQ087NkRBQ0k7NkRBRWhCOzhEQUNDOzhEQUNFOzhEQUNDOzhEQUNFOzhEQUNPOzhEQUNJIn0=
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
default: function() {
|
|
13
|
+
return _default;
|
|
14
|
+
},
|
|
15
|
+
furtleLexerFromEntries: function() {
|
|
16
|
+
return furtleLexerFromEntries;
|
|
17
|
+
},
|
|
18
|
+
furtleLexerFromNothing: function() {
|
|
19
|
+
return furtleLexerFromNothing;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
var _occamlexers = require("occam-lexers");
|
|
23
|
+
var _lexer = /*#__PURE__*/ _interop_require_default(require("../furtle/lexer"));
|
|
24
|
+
function _interop_require_default(obj) {
|
|
25
|
+
return obj && obj.__esModule ? obj : {
|
|
26
|
+
default: obj
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
var lexerFromRules = _occamlexers.lexerUtilities.lexerFromRules, rulesFromEntries = _occamlexers.lexerUtilities.rulesFromEntries;
|
|
30
|
+
function furtleLexerFromEntries(entries) {
|
|
31
|
+
var rules = rulesFromEntries(entries), furtleLexer = lexerFromRules(_lexer.default, rules);
|
|
32
|
+
return furtleLexer;
|
|
33
|
+
}
|
|
34
|
+
function furtleLexerFromNothing() {
|
|
35
|
+
var entries = _lexer.default.entries, rules = rulesFromEntries(entries), furtleLexer = lexerFromRules(_lexer.default, rules);
|
|
36
|
+
return furtleLexer;
|
|
37
|
+
}
|
|
38
|
+
var _default = {
|
|
39
|
+
furtleLexerFromEntries: furtleLexerFromEntries,
|
|
40
|
+
furtleLexerFromNothing: furtleLexerFromNothing
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbGV4ZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlclV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IEZ1cnRsZUxleGVyIGZyb20gXCIuLi9mdXJ0bGUvbGV4ZXJcIjtcblxuY29uc3QgeyBsZXhlckZyb21SdWxlcywgcnVsZXNGcm9tRW50cmllcyB9ID0gbGV4ZXJVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVMZXhlckZyb21FbnRyaWVzKGVudHJpZXMpIHtcbiAgY29uc3QgcnVsZXMgPSBydWxlc0Zyb21FbnRyaWVzKGVudHJpZXMpLFxuICAgICAgICBmdXJ0bGVMZXhlciA9IGxleGVyRnJvbVJ1bGVzKEZ1cnRsZUxleGVyLCBydWxlcyk7XG5cbiAgcmV0dXJuIGZ1cnRsZUxleGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnVydGxlTGV4ZXJGcm9tTm90aGluZygpIHtcbiAgY29uc3QgeyBlbnRyaWVzIH0gPSBGdXJ0bGVMZXhlcixcbiAgICAgICAgcnVsZXMgPSBydWxlc0Zyb21FbnRyaWVzKGVudHJpZXMpLFxuICAgICAgICBmdXJ0bGVMZXhlciA9IGxleGVyRnJvbVJ1bGVzKEZ1cnRsZUxleGVyLCBydWxlcyk7XG5cbiAgcmV0dXJuIGZ1cnRsZUxleGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGZ1cnRsZUxleGVyRnJvbUVudHJpZXMsXG4gIGZ1cnRsZUxleGVyRnJvbU5vdGhpbmdcbn07XG4iXSwibmFtZXMiOlsiZnVydGxlTGV4ZXJGcm9tRW50cmllcyIsImZ1cnRsZUxleGVyRnJvbU5vdGhpbmciLCJsZXhlckZyb21SdWxlcyIsImxleGVyVXRpbGl0aWVzIiwicnVsZXNGcm9tRW50cmllcyIsImVudHJpZXMiLCJydWxlcyIsImZ1cnRsZUxleGVyIiwiRnVydGxlTGV4ZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXVCQSxPQUdFO2VBSEY7O0lBZmdCQSxzQkFBc0I7ZUFBdEJBOztJQU9BQyxzQkFBc0I7ZUFBdEJBOzs7MkJBYmU7NERBRVA7Ozs7OztBQUV4QixJQUFRQyxpQkFBcUNDLDJCQUFjLENBQW5ERCxnQkFBZ0JFLG1CQUFxQkQsMkJBQWMsQ0FBbkNDO0FBRWpCLFNBQVNKLHVCQUF1QkssT0FBTztJQUM1QyxJQUFNQyxRQUFRRixpQkFBaUJDLFVBQ3pCRSxjQUFjTCxlQUFlTSxjQUFXLEVBQUVGO0lBRWhELE9BQU9DO0FBQ1Q7QUFFTyxTQUFTTjtJQUNkLElBQU0sQUFBRUksVUFBWUcsY0FBVyxDQUF2QkgsU0FDRkMsUUFBUUYsaUJBQWlCQyxVQUN6QkUsY0FBY0wsZUFBZU0sY0FBVyxFQUFFRjtJQUVoRCxPQUFPQztBQUNUO0lBRUEsV0FBZTtJQUNiUCx3QkFBQUE7SUFDQUMsd0JBQUFBO0FBQ0YifQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
default: function() {
|
|
13
|
+
return _default;
|
|
14
|
+
},
|
|
15
|
+
furtleParserFromBNF: function() {
|
|
16
|
+
return furtleParserFromBNF;
|
|
17
|
+
},
|
|
18
|
+
furtleParserFromNothing: function() {
|
|
19
|
+
return furtleParserFromNothing;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
var _occamparsers = require("occam-parsers");
|
|
23
|
+
var _occamgrammarutilities = require("occam-grammar-utilities");
|
|
24
|
+
var _parser = /*#__PURE__*/ _interop_require_default(require("../furtle/parser"));
|
|
25
|
+
function _interop_require_default(obj) {
|
|
26
|
+
return obj && obj.__esModule ? obj : {
|
|
27
|
+
default: obj
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
var rulesFromBNF = _occamparsers.parserUtilities.rulesFromBNF, parserFromRules = _occamparsers.parserUtilities.parserFromRules;
|
|
31
|
+
function furtleParserFromBNF(bnf) {
|
|
32
|
+
var rules;
|
|
33
|
+
rules = rulesFromBNF(bnf);
|
|
34
|
+
rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
|
|
35
|
+
var furtleParser = parserFromRules(_parser.default, rules);
|
|
36
|
+
return furtleParser;
|
|
37
|
+
}
|
|
38
|
+
function furtleParserFromNothing() {
|
|
39
|
+
var bnf = _parser.default.bnf;
|
|
40
|
+
var rules;
|
|
41
|
+
rules = rulesFromBNF(bnf);
|
|
42
|
+
rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
|
|
43
|
+
var furtleParser = parserFromRules(_parser.default, rules);
|
|
44
|
+
return furtleParser;
|
|
45
|
+
}
|
|
46
|
+
var _default = {
|
|
47
|
+
furtleParserFromBNF: furtleParserFromBNF,
|
|
48
|
+
furtleParserFromNothing: furtleParserFromNothing
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcGFyc2Vycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGFyc2VyVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcbmltcG9ydCB7IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24gfSBmcm9tIFwib2NjYW0tZ3JhbW1hci11dGlsaXRpZXNcIjtcblxuaW1wb3J0IEZ1cnRsZVBhcnNlciBmcm9tIFwiLi4vZnVydGxlL3BhcnNlclwiO1xuXG5jb25zdCB7IHJ1bGVzRnJvbUJORiwgcGFyc2VyRnJvbVJ1bGVzIH0gPSBwYXJzZXJVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVQYXJzZXJGcm9tQk5GKGJuZikge1xuICBsZXQgcnVsZXM7XG5cbiAgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKTtcblxuICBydWxlcyA9IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24ocnVsZXMpOyAgLy8vXG5cbiAgY29uc3QgZnVydGxlUGFyc2VyID0gcGFyc2VyRnJvbVJ1bGVzKEZ1cnRsZVBhcnNlciwgcnVsZXMpO1xuXG4gIHJldHVybiBmdXJ0bGVQYXJzZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVQYXJzZXJGcm9tTm90aGluZygpIHtcbiAgY29uc3QgeyBibmYgfSA9IEZ1cnRsZVBhcnNlcjtcblxuICBsZXQgcnVsZXM7XG5cbiAgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKTtcblxuICBydWxlcyA9IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24ocnVsZXMpOyAgLy8vXG5cbiAgY29uc3QgZnVydGxlUGFyc2VyID0gcGFyc2VyRnJvbVJ1bGVzKEZ1cnRsZVBhcnNlciwgcnVsZXMpO1xuXG4gIHJldHVybiBmdXJ0bGVQYXJzZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZnVydGxlUGFyc2VyRnJvbUJORixcbiAgZnVydGxlUGFyc2VyRnJvbU5vdGhpbmdcbn07XG4iXSwibmFtZXMiOlsiZnVydGxlUGFyc2VyRnJvbUJORiIsImZ1cnRsZVBhcnNlckZyb21Ob3RoaW5nIiwicnVsZXNGcm9tQk5GIiwicGFyc2VyVXRpbGl0aWVzIiwicGFyc2VyRnJvbVJ1bGVzIiwiYm5mIiwicnVsZXMiLCJlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIiwiZnVydGxlUGFyc2VyIiwiRnVydGxlUGFyc2VyIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFtQ0EsT0FHRTtlQUhGOztJQTFCZ0JBLG1CQUFtQjtlQUFuQkE7O0lBWUFDLHVCQUF1QjtlQUF2QkE7Ozs0QkFuQmdCO3FDQUNPOzZEQUVkOzs7Ozs7QUFFekIsSUFBUUMsZUFBa0NDLDZCQUFlLENBQWpERCxjQUFjRSxrQkFBb0JELDZCQUFlLENBQW5DQztBQUVmLFNBQVNKLG9CQUFvQkssR0FBRztJQUNyQyxJQUFJQztJQUVKQSxRQUFRSixhQUFhRztJQUVyQkMsUUFBUUMsSUFBQUEsNkNBQXNCLEVBQUNELFFBQVMsR0FBRztJQUUzQyxJQUFNRSxlQUFlSixnQkFBZ0JLLGVBQVksRUFBRUg7SUFFbkQsT0FBT0U7QUFDVDtBQUVPLFNBQVNQO0lBQ2QsSUFBTSxBQUFFSSxNQUFRSSxlQUFZLENBQXBCSjtJQUVSLElBQUlDO0lBRUpBLFFBQVFKLGFBQWFHO0lBRXJCQyxRQUFRQyxJQUFBQSw2Q0FBc0IsRUFBQ0QsUUFBUyxHQUFHO0lBRTNDLElBQU1FLGVBQWVKLGdCQUFnQkssZUFBWSxFQUFFSDtJQUVuRCxPQUFPRTtBQUNUO0lBRUEsV0FBZTtJQUNiUixxQkFBQUE7SUFDQUMseUJBQUFBO0FBQ0YifQ==
|
package/package.json
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { parserUtilities } from "occam-parsers";
|
|
5
|
-
import { eliminateLeftRecursion } from "occam-grammar-utilities";
|
|
6
|
-
import { FurtleLexer, FurtleParser } from "../../index"; ///
|
|
3
|
+
import { FurtleLexer, FurtleParser, lexersUtilities, parsersUtilities } from "../../index"; ///
|
|
7
4
|
|
|
8
5
|
import View from "../view";
|
|
9
6
|
|
|
10
|
-
const {
|
|
11
|
-
{
|
|
7
|
+
const { furtleParserFromBNF } = parsersUtilities,
|
|
8
|
+
{ furtleLexerFromEntries } = lexersUtilities;
|
|
12
9
|
|
|
13
10
|
export default class FurtleView extends View {
|
|
14
11
|
getTokens() {
|
|
15
12
|
const lexicalEntries = this.getLexicalEntries(),
|
|
16
|
-
entries = lexicalEntries,
|
|
17
|
-
|
|
18
|
-
furtleLexer = lexerFromRules(FurtleLexer, rules),
|
|
13
|
+
entries = lexicalEntries, ////
|
|
14
|
+
furtleLexer = furtleLexerFromEntries(entries),
|
|
19
15
|
lexer = furtleLexer, ///
|
|
20
16
|
content = this.getContent(),
|
|
21
17
|
tokens = lexer.tokenise(content);
|
|
@@ -26,17 +22,8 @@ export default class FurtleView extends View {
|
|
|
26
22
|
getParseTree(tokens) {
|
|
27
23
|
let parseTree = null;
|
|
28
24
|
|
|
29
|
-
const bnf = this.getBNF()
|
|
30
|
-
|
|
31
|
-
let rules;
|
|
32
|
-
|
|
33
|
-
rules = rulesFromBNF(bnf);
|
|
34
|
-
|
|
35
|
-
rules = eliminateLeftRecursion(rules); ///
|
|
36
|
-
|
|
37
|
-
const ruleName = this.getRuleName(),
|
|
38
|
-
startRuleName = ruleName, ///
|
|
39
|
-
furtleParser = parserFromRulesAndStartRuleName(FurtleParser, rules, startRuleName),
|
|
25
|
+
const bnf = this.getBNF(),
|
|
26
|
+
furtleParser = furtleParserFromBNF(bnf),
|
|
40
27
|
parser = furtleParser, ///
|
|
41
28
|
node = parser.parse(tokens);
|
|
42
29
|
|
package/src/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
export { default as lexersUtilities } from "./utilities/lexers";
|
|
4
|
+
export { default as parsersUtilities } from "./utilities/parsers";
|
|
5
|
+
|
|
3
6
|
export { default as TeXLexer } from "./teX/lexer";
|
|
4
7
|
export { default as JSONLexer } from "./json/lexer";
|
|
5
8
|
export { default as FurtleLexer } from "./furtle/lexer";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { lexerUtilities } from "occam-lexers";
|
|
4
|
+
|
|
5
|
+
import FurtleLexer from "../furtle/lexer";
|
|
6
|
+
|
|
7
|
+
const { lexerFromRules, rulesFromEntries } = lexerUtilities;
|
|
8
|
+
|
|
9
|
+
export function furtleLexerFromEntries(entries) {
|
|
10
|
+
const rules = rulesFromEntries(entries),
|
|
11
|
+
furtleLexer = lexerFromRules(FurtleLexer, rules);
|
|
12
|
+
|
|
13
|
+
return furtleLexer;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function furtleLexerFromNothing() {
|
|
17
|
+
const { entries } = FurtleLexer,
|
|
18
|
+
rules = rulesFromEntries(entries),
|
|
19
|
+
furtleLexer = lexerFromRules(FurtleLexer, rules);
|
|
20
|
+
|
|
21
|
+
return furtleLexer;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export default {
|
|
25
|
+
furtleLexerFromEntries,
|
|
26
|
+
furtleLexerFromNothing
|
|
27
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { parserUtilities } from "occam-parsers";
|
|
4
|
+
import { eliminateLeftRecursion } from "occam-grammar-utilities";
|
|
5
|
+
|
|
6
|
+
import FurtleParser from "../furtle/parser";
|
|
7
|
+
|
|
8
|
+
const { rulesFromBNF, parserFromRules } = parserUtilities;
|
|
9
|
+
|
|
10
|
+
export function furtleParserFromBNF(bnf) {
|
|
11
|
+
let rules;
|
|
12
|
+
|
|
13
|
+
rules = rulesFromBNF(bnf);
|
|
14
|
+
|
|
15
|
+
rules = eliminateLeftRecursion(rules); ///
|
|
16
|
+
|
|
17
|
+
const furtleParser = parserFromRules(FurtleParser, rules);
|
|
18
|
+
|
|
19
|
+
return furtleParser;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function furtleParserFromNothing() {
|
|
23
|
+
const { bnf } = FurtleParser;
|
|
24
|
+
|
|
25
|
+
let rules;
|
|
26
|
+
|
|
27
|
+
rules = rulesFromBNF(bnf);
|
|
28
|
+
|
|
29
|
+
rules = eliminateLeftRecursion(rules); ///
|
|
30
|
+
|
|
31
|
+
const furtleParser = parserFromRules(FurtleParser, rules);
|
|
32
|
+
|
|
33
|
+
return furtleParser;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export default {
|
|
37
|
+
furtleParserFromBNF,
|
|
38
|
+
furtleParserFromNothing
|
|
39
|
+
};
|