occam-grammars 1.2.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 +48 -30
- package/lib/example/view/furtle.js +4 -11
- package/lib/index.js +25 -17
- package/lib/utilities/lexers.js +9 -1
- package/lib/utilities/parsers.js +12 -1
- package/package.json +1 -1
- package/src/example/view/furtle.js +7 -20
- package/src/index.js +2 -0
- package/src/utilities/lexers.js +8 -0
- package/src/utilities/parsers.js +13 -1
|
@@ -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
|
@@ -10,16 +10,22 @@ function _export(target, all) {
|
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
12
|
CustomGrammarBNFLexer: function() {
|
|
13
|
-
return
|
|
13
|
+
return _lexer5.default;
|
|
14
14
|
},
|
|
15
15
|
CustomGrammarBNFParser: function() {
|
|
16
|
-
return
|
|
16
|
+
return _parser5.default;
|
|
17
17
|
},
|
|
18
18
|
CustomGrammarPatternLexer: function() {
|
|
19
|
-
return
|
|
19
|
+
return _lexer6.default;
|
|
20
20
|
},
|
|
21
21
|
CustomGrammarPatternParser: function() {
|
|
22
|
-
return
|
|
22
|
+
return _parser6.default;
|
|
23
|
+
},
|
|
24
|
+
FurtleLexer: function() {
|
|
25
|
+
return _lexer2.default;
|
|
26
|
+
},
|
|
27
|
+
FurtleParser: function() {
|
|
28
|
+
return _parser2.default;
|
|
23
29
|
},
|
|
24
30
|
JSONLexer: function() {
|
|
25
31
|
return _lexer1.default;
|
|
@@ -28,16 +34,16 @@ _export(exports, {
|
|
|
28
34
|
return _parser1.default;
|
|
29
35
|
},
|
|
30
36
|
NominalLexer: function() {
|
|
31
|
-
return
|
|
37
|
+
return _lexer3.default;
|
|
32
38
|
},
|
|
33
39
|
NominalParser: function() {
|
|
34
|
-
return
|
|
40
|
+
return _parser3.default;
|
|
35
41
|
},
|
|
36
42
|
PlainTextLexer: function() {
|
|
37
|
-
return
|
|
43
|
+
return _lexer4.default;
|
|
38
44
|
},
|
|
39
45
|
PlainTextParser: function() {
|
|
40
|
-
return
|
|
46
|
+
return _parser4.default;
|
|
41
47
|
},
|
|
42
48
|
TeXLexer: function() {
|
|
43
49
|
return _lexer.default;
|
|
@@ -56,20 +62,22 @@ var _lexers = /*#__PURE__*/ _interop_require_default(require("./utilities/lexers
|
|
|
56
62
|
var _parsers = /*#__PURE__*/ _interop_require_default(require("./utilities/parsers"));
|
|
57
63
|
var _lexer = /*#__PURE__*/ _interop_require_default(require("./teX/lexer"));
|
|
58
64
|
var _lexer1 = /*#__PURE__*/ _interop_require_default(require("./json/lexer"));
|
|
59
|
-
var _lexer2 = /*#__PURE__*/ _interop_require_default(require("./
|
|
60
|
-
var _lexer3 = /*#__PURE__*/ _interop_require_default(require("./
|
|
61
|
-
var _lexer4 = /*#__PURE__*/ _interop_require_default(require("./
|
|
62
|
-
var _lexer5 = /*#__PURE__*/ _interop_require_default(require("./
|
|
65
|
+
var _lexer2 = /*#__PURE__*/ _interop_require_default(require("./furtle/lexer"));
|
|
66
|
+
var _lexer3 = /*#__PURE__*/ _interop_require_default(require("./nominal/lexer"));
|
|
67
|
+
var _lexer4 = /*#__PURE__*/ _interop_require_default(require("./plainText/lexer"));
|
|
68
|
+
var _lexer5 = /*#__PURE__*/ _interop_require_default(require("./customGrammarBNF/lexer"));
|
|
69
|
+
var _lexer6 = /*#__PURE__*/ _interop_require_default(require("./customGrammarPattern/lexer"));
|
|
63
70
|
var _parser = /*#__PURE__*/ _interop_require_default(require("./teX/parser"));
|
|
64
71
|
var _parser1 = /*#__PURE__*/ _interop_require_default(require("./json/parser"));
|
|
65
|
-
var _parser2 = /*#__PURE__*/ _interop_require_default(require("./
|
|
66
|
-
var _parser3 = /*#__PURE__*/ _interop_require_default(require("./
|
|
67
|
-
var _parser4 = /*#__PURE__*/ _interop_require_default(require("./
|
|
68
|
-
var _parser5 = /*#__PURE__*/ _interop_require_default(require("./
|
|
72
|
+
var _parser2 = /*#__PURE__*/ _interop_require_default(require("./furtle/parser"));
|
|
73
|
+
var _parser3 = /*#__PURE__*/ _interop_require_default(require("./nominal/parser"));
|
|
74
|
+
var _parser4 = /*#__PURE__*/ _interop_require_default(require("./plainText/parser"));
|
|
75
|
+
var _parser5 = /*#__PURE__*/ _interop_require_default(require("./customGrammarBNF/parser"));
|
|
76
|
+
var _parser6 = /*#__PURE__*/ _interop_require_default(require("./customGrammarPattern/parser"));
|
|
69
77
|
function _interop_require_default(obj) {
|
|
70
78
|
return obj && obj.__esModule ? obj : {
|
|
71
79
|
default: obj
|
|
72
80
|
};
|
|
73
81
|
}
|
|
74
82
|
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBsZXhlcnNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGV4ZXJzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcGFyc2Vyc1wiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRlWExleGVyIH0gZnJvbSBcIi4vdGVYL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEpTT05MZXhlciB9IGZyb20gXCIuL2pzb24vbGV4ZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRnVydGxlTGV4ZXIgfSBmcm9tIFwiLi9mdXJ0bGUvbGV4ZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbExleGVyIH0gZnJvbSBcIi4vbm9taW5hbC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQbGFpblRleHRMZXhlciB9IGZyb20gXCIuL3BsYWluVGV4dC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDdXN0b21HcmFtbWFyQk5GTGV4ZXIgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyQk5GL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEN1c3RvbUdyYW1tYXJQYXR0ZXJuTGV4ZXIgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyUGF0dGVybi9sZXhlclwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRlWFBhcnNlciB9IGZyb20gXCIuL3RlWC9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSlNPTlBhcnNlciB9IGZyb20gXCIuL2pzb24vcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuL2Z1cnRsZS9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbFBhcnNlciB9IGZyb20gXCIuL25vbWluYWwvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBsYWluVGV4dFBhcnNlciB9IGZyb20gXCIuL3BsYWluVGV4dC9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ3VzdG9tR3JhbW1hckJORlBhcnNlciB9IGZyb20gXCIuL2N1c3RvbUdyYW1tYXJCTkYvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEN1c3RvbUdyYW1tYXJQYXR0ZXJuUGFyc2VyIH0gZnJvbSBcIi4vY3VzdG9tR3JhbW1hclBhdHRlcm4vcGFyc2VyXCI7XG4iXSwibmFtZXMiOlsiQ3VzdG9tR3JhbW1hckJORkxleGVyIiwiQ3VzdG9tR3JhbW1hckJORlBhcnNlciIsIkN1c3RvbUdyYW1tYXJQYXR0ZXJuTGV4ZXIiLCJDdXN0b21HcmFtbWFyUGF0dGVyblBhcnNlciIsIkZ1cnRsZUxleGVyIiwiRnVydGxlUGFyc2VyIiwiSlNPTkxleGVyIiwiSlNPTlBhcnNlciIsIk5vbWluYWxMZXhlciIsIk5vbWluYWxQYXJzZXIiLCJQbGFpblRleHRMZXhlciIsIlBsYWluVGV4dFBhcnNlciIsIlRlWExleGVyIiwiVGVYUGFyc2VyIiwibGV4ZXJzVXRpbGl0aWVzIiwicGFyc2Vyc1V0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVW9CQSxxQkFBcUI7ZUFBckJBLGVBQXFCOztJQVFyQkMsc0JBQXNCO2VBQXRCQSxnQkFBc0I7O0lBUHRCQyx5QkFBeUI7ZUFBekJBLGVBQXlCOztJQVF6QkMsMEJBQTBCO2VBQTFCQSxnQkFBMEI7O0lBWjFCQyxXQUFXO2VBQVhBLGVBQVc7O0lBUVhDLFlBQVk7ZUFBWkEsZ0JBQVk7O0lBVFpDLFNBQVM7ZUFBVEEsZUFBUzs7SUFRVEMsVUFBVTtlQUFWQSxnQkFBVTs7SUFOVkMsWUFBWTtlQUFaQSxlQUFZOztJQVFaQyxhQUFhO2VBQWJBLGdCQUFhOztJQVBiQyxjQUFjO2VBQWRBLGVBQWM7O0lBUWRDLGVBQWU7ZUFBZkEsZ0JBQWU7O0lBWmZDLFFBQVE7ZUFBUkEsY0FBUTs7SUFRUkMsU0FBUztlQUFUQSxlQUFTOztJQVhUQyxlQUFlO2VBQWZBLGVBQWU7O0lBQ2ZDLGdCQUFnQjtlQUFoQkEsZ0JBQWdCOzs7NkRBRE87OERBQ0M7NERBRVI7NkRBQ0M7NkRBQ0U7NkRBQ0M7NkRBQ0U7NkRBQ087NkRBQ0k7NkRBRWhCOzhEQUNDOzhEQUNFOzhEQUNDOzhEQUNFOzhEQUNPOzhEQUNJIn0=
|
package/lib/utilities/lexers.js
CHANGED
|
@@ -12,6 +12,9 @@ _export(exports, {
|
|
|
12
12
|
default: function() {
|
|
13
13
|
return _default;
|
|
14
14
|
},
|
|
15
|
+
furtleLexerFromEntries: function() {
|
|
16
|
+
return furtleLexerFromEntries;
|
|
17
|
+
},
|
|
15
18
|
furtleLexerFromNothing: function() {
|
|
16
19
|
return furtleLexerFromNothing;
|
|
17
20
|
}
|
|
@@ -24,12 +27,17 @@ function _interop_require_default(obj) {
|
|
|
24
27
|
};
|
|
25
28
|
}
|
|
26
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
|
+
}
|
|
27
34
|
function furtleLexerFromNothing() {
|
|
28
35
|
var entries = _lexer.default.entries, rules = rulesFromEntries(entries), furtleLexer = lexerFromRules(_lexer.default, rules);
|
|
29
36
|
return furtleLexer;
|
|
30
37
|
}
|
|
31
38
|
var _default = {
|
|
39
|
+
furtleLexerFromEntries: furtleLexerFromEntries,
|
|
32
40
|
furtleLexerFromNothing: furtleLexerFromNothing
|
|
33
41
|
};
|
|
34
42
|
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbGV4ZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlclV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IEZ1cnRsZUxleGVyIGZyb20gXCIuLi9mdXJ0bGUvbGV4ZXJcIjtcblxuY29uc3QgeyBsZXhlckZyb21SdWxlcywgcnVsZXNGcm9tRW50cmllcyB9ID0gbGV4ZXJVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVMZXhlckZyb21FbnRyaWVzKGVudHJpZXMpIHtcbiAgY29uc3QgcnVsZXMgPSBydWxlc0Zyb21FbnRyaWVzKGVudHJpZXMpLFxuICAgICAgICBmdXJ0bGVMZXhlciA9IGxleGVyRnJvbVJ1bGVzKEZ1cnRsZUxleGVyLCBydWxlcyk7XG5cbiAgcmV0dXJuIGZ1cnRsZUxleGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnVydGxlTGV4ZXJGcm9tTm90aGluZygpIHtcbiAgY29uc3QgeyBlbnRyaWVzIH0gPSBGdXJ0bGVMZXhlcixcbiAgICAgICAgcnVsZXMgPSBydWxlc0Zyb21FbnRyaWVzKGVudHJpZXMpLFxuICAgICAgICBmdXJ0bGVMZXhlciA9IGxleGVyRnJvbVJ1bGVzKEZ1cnRsZUxleGVyLCBydWxlcyk7XG5cbiAgcmV0dXJuIGZ1cnRsZUxleGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGZ1cnRsZUxleGVyRnJvbUVudHJpZXMsXG4gIGZ1cnRsZUxleGVyRnJvbU5vdGhpbmdcbn07XG4iXSwibmFtZXMiOlsiZnVydGxlTGV4ZXJGcm9tRW50cmllcyIsImZ1cnRsZUxleGVyRnJvbU5vdGhpbmciLCJsZXhlckZyb21SdWxlcyIsImxleGVyVXRpbGl0aWVzIiwicnVsZXNGcm9tRW50cmllcyIsImVudHJpZXMiLCJydWxlcyIsImZ1cnRsZUxleGVyIiwiRnVydGxlTGV4ZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXVCQSxPQUdFO2VBSEY7O0lBZmdCQSxzQkFBc0I7ZUFBdEJBOztJQU9BQyxzQkFBc0I7ZUFBdEJBOzs7MkJBYmU7NERBRVA7Ozs7OztBQUV4QixJQUFRQyxpQkFBcUNDLDJCQUFjLENBQW5ERCxnQkFBZ0JFLG1CQUFxQkQsMkJBQWMsQ0FBbkNDO0FBRWpCLFNBQVNKLHVCQUF1QkssT0FBTztJQUM1QyxJQUFNQyxRQUFRRixpQkFBaUJDLFVBQ3pCRSxjQUFjTCxlQUFlTSxjQUFXLEVBQUVGO0lBRWhELE9BQU9DO0FBQ1Q7QUFFTyxTQUFTTjtJQUNkLElBQU0sQUFBRUksVUFBWUcsY0FBVyxDQUF2QkgsU0FDRkMsUUFBUUYsaUJBQWlCQyxVQUN6QkUsY0FBY0wsZUFBZU0sY0FBVyxFQUFFRjtJQUVoRCxPQUFPQztBQUNUO0lBRUEsV0FBZTtJQUNiUCx3QkFBQUE7SUFDQUMsd0JBQUFBO0FBQ0YifQ==
|
package/lib/utilities/parsers.js
CHANGED
|
@@ -12,6 +12,9 @@ _export(exports, {
|
|
|
12
12
|
default: function() {
|
|
13
13
|
return _default;
|
|
14
14
|
},
|
|
15
|
+
furtleParserFromBNF: function() {
|
|
16
|
+
return furtleParserFromBNF;
|
|
17
|
+
},
|
|
15
18
|
furtleParserFromNothing: function() {
|
|
16
19
|
return furtleParserFromNothing;
|
|
17
20
|
}
|
|
@@ -25,6 +28,13 @@ function _interop_require_default(obj) {
|
|
|
25
28
|
};
|
|
26
29
|
}
|
|
27
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
|
+
}
|
|
28
38
|
function furtleParserFromNothing() {
|
|
29
39
|
var bnf = _parser.default.bnf;
|
|
30
40
|
var rules;
|
|
@@ -34,7 +44,8 @@ function furtleParserFromNothing() {
|
|
|
34
44
|
return furtleParser;
|
|
35
45
|
}
|
|
36
46
|
var _default = {
|
|
47
|
+
furtleParserFromBNF: furtleParserFromBNF,
|
|
37
48
|
furtleParserFromNothing: furtleParserFromNothing
|
|
38
49
|
};
|
|
39
50
|
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
@@ -5,6 +5,7 @@ export { default as parsersUtilities } from "./utilities/parsers";
|
|
|
5
5
|
|
|
6
6
|
export { default as TeXLexer } from "./teX/lexer";
|
|
7
7
|
export { default as JSONLexer } from "./json/lexer";
|
|
8
|
+
export { default as FurtleLexer } from "./furtle/lexer";
|
|
8
9
|
export { default as NominalLexer } from "./nominal/lexer";
|
|
9
10
|
export { default as PlainTextLexer } from "./plainText/lexer";
|
|
10
11
|
export { default as CustomGrammarBNFLexer } from "./customGrammarBNF/lexer";
|
|
@@ -12,6 +13,7 @@ export { default as CustomGrammarPatternLexer } from "./customGrammarPattern/lex
|
|
|
12
13
|
|
|
13
14
|
export { default as TeXParser } from "./teX/parser";
|
|
14
15
|
export { default as JSONParser } from "./json/parser";
|
|
16
|
+
export { default as FurtleParser } from "./furtle/parser";
|
|
15
17
|
export { default as NominalParser } from "./nominal/parser";
|
|
16
18
|
export { default as PlainTextParser } from "./plainText/parser";
|
|
17
19
|
export { default as CustomGrammarBNFParser } from "./customGrammarBNF/parser";
|
package/src/utilities/lexers.js
CHANGED
|
@@ -6,6 +6,13 @@ import FurtleLexer from "../furtle/lexer";
|
|
|
6
6
|
|
|
7
7
|
const { lexerFromRules, rulesFromEntries } = lexerUtilities;
|
|
8
8
|
|
|
9
|
+
export function furtleLexerFromEntries(entries) {
|
|
10
|
+
const rules = rulesFromEntries(entries),
|
|
11
|
+
furtleLexer = lexerFromRules(FurtleLexer, rules);
|
|
12
|
+
|
|
13
|
+
return furtleLexer;
|
|
14
|
+
}
|
|
15
|
+
|
|
9
16
|
export function furtleLexerFromNothing() {
|
|
10
17
|
const { entries } = FurtleLexer,
|
|
11
18
|
rules = rulesFromEntries(entries),
|
|
@@ -15,5 +22,6 @@ export function furtleLexerFromNothing() {
|
|
|
15
22
|
}
|
|
16
23
|
|
|
17
24
|
export default {
|
|
25
|
+
furtleLexerFromEntries,
|
|
18
26
|
furtleLexerFromNothing
|
|
19
27
|
};
|
package/src/utilities/parsers.js
CHANGED
|
@@ -7,6 +7,18 @@ import FurtleParser from "../furtle/parser";
|
|
|
7
7
|
|
|
8
8
|
const { rulesFromBNF, parserFromRules } = parserUtilities;
|
|
9
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
|
+
|
|
10
22
|
export function furtleParserFromNothing() {
|
|
11
23
|
const { bnf } = FurtleParser;
|
|
12
24
|
|
|
@@ -21,7 +33,7 @@ export function furtleParserFromNothing() {
|
|
|
21
33
|
return furtleParser;
|
|
22
34
|
}
|
|
23
35
|
|
|
24
|
-
|
|
25
36
|
export default {
|
|
37
|
+
furtleParserFromBNF,
|
|
26
38
|
furtleParserFromNothing
|
|
27
39
|
};
|