occam-grammars 1.2.5 → 1.3.1
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 +14 -2
- package/lib/utilities/parsers.js +14 -3
- package/package.json +1 -1
- package/src/utilities/parsers.js +15 -2
package/lib/utilities/parsers.js
CHANGED
|
@@ -15,6 +15,9 @@ _export(exports, {
|
|
|
15
15
|
furtleParserFromBNF: function() {
|
|
16
16
|
return furtleParserFromBNF;
|
|
17
17
|
},
|
|
18
|
+
furtleParserFromBNFAndStartRuleName: function() {
|
|
19
|
+
return furtleParserFromBNFAndStartRuleName;
|
|
20
|
+
},
|
|
18
21
|
furtleParserFromNothing: function() {
|
|
19
22
|
return furtleParserFromNothing;
|
|
20
23
|
}
|
|
@@ -27,7 +30,7 @@ function _interop_require_default(obj) {
|
|
|
27
30
|
default: obj
|
|
28
31
|
};
|
|
29
32
|
}
|
|
30
|
-
var rulesFromBNF = _occamparsers.parserUtilities.rulesFromBNF, parserFromRules = _occamparsers.parserUtilities.parserFromRules;
|
|
33
|
+
var rulesFromBNF = _occamparsers.parserUtilities.rulesFromBNF, parserFromRules = _occamparsers.parserUtilities.parserFromRules, parserFromRulesAndStartRuleName = _occamparsers.parserUtilities.parserFromRulesAndStartRuleName;
|
|
31
34
|
function furtleParserFromBNF(bnf) {
|
|
32
35
|
var rules;
|
|
33
36
|
rules = rulesFromBNF(bnf);
|
|
@@ -43,9 +46,17 @@ function furtleParserFromNothing() {
|
|
|
43
46
|
var furtleParser = parserFromRules(_parser.default, rules);
|
|
44
47
|
return furtleParser;
|
|
45
48
|
}
|
|
49
|
+
function furtleParserFromBNFAndStartRuleName(bnf, startRuleName) {
|
|
50
|
+
var rules;
|
|
51
|
+
rules = rulesFromBNF(bnf);
|
|
52
|
+
rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
|
|
53
|
+
var furtleParser = parserFromRulesAndStartRuleName(_parser.default, rules, startRuleName);
|
|
54
|
+
return furtleParser;
|
|
55
|
+
}
|
|
46
56
|
var _default = {
|
|
47
57
|
furtleParserFromBNF: furtleParserFromBNF,
|
|
48
|
-
furtleParserFromNothing: furtleParserFromNothing
|
|
58
|
+
furtleParserFromNothing: furtleParserFromNothing,
|
|
59
|
+
furtleParserFromBNFAndStartRuleName: furtleParserFromBNFAndStartRuleName
|
|
49
60
|
};
|
|
50
61
|
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcGFyc2Vycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGFyc2VyVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcbmltcG9ydCB7IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24gfSBmcm9tIFwib2NjYW0tZ3JhbW1hci11dGlsaXRpZXNcIjtcblxuaW1wb3J0IEZ1cnRsZVBhcnNlciBmcm9tIFwiLi4vZnVydGxlL3BhcnNlclwiO1xuXG5jb25zdCB7IHJ1bGVzRnJvbUJORiwgcGFyc2VyRnJvbVJ1bGVzLCBwYXJzZXJGcm9tUnVsZXNBbmRTdGFydFJ1bGVOYW1lIH0gPSBwYXJzZXJVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVQYXJzZXJGcm9tQk5GKGJuZikge1xuICBsZXQgcnVsZXM7XG5cbiAgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKTtcblxuICBydWxlcyA9IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24ocnVsZXMpOyAgLy8vXG5cbiAgY29uc3QgZnVydGxlUGFyc2VyID0gcGFyc2VyRnJvbVJ1bGVzKEZ1cnRsZVBhcnNlciwgcnVsZXMpO1xuXG4gIHJldHVybiBmdXJ0bGVQYXJzZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVQYXJzZXJGcm9tTm90aGluZygpIHtcbiAgY29uc3QgeyBibmYgfSA9IEZ1cnRsZVBhcnNlcjtcblxuICBsZXQgcnVsZXM7XG5cbiAgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKTtcblxuICBydWxlcyA9IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24ocnVsZXMpOyAgLy8vXG5cbiAgY29uc3QgZnVydGxlUGFyc2VyID0gcGFyc2VyRnJvbVJ1bGVzKEZ1cnRsZVBhcnNlciwgcnVsZXMpO1xuXG4gIHJldHVybiBmdXJ0bGVQYXJzZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVQYXJzZXJGcm9tQk5GQW5kU3RhcnRSdWxlTmFtZShibmYsIHN0YXJ0UnVsZU5hbWUpIHtcbiAgbGV0IHJ1bGVzO1xuXG4gIHJ1bGVzID0gcnVsZXNGcm9tQk5GKGJuZik7XG5cbiAgcnVsZXMgPSBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uKHJ1bGVzKTsgIC8vL1xuXG4gIGNvbnN0IGZ1cnRsZVBhcnNlciA9IHBhcnNlckZyb21SdWxlc0FuZFN0YXJ0UnVsZU5hbWUoRnVydGxlUGFyc2VyLCBydWxlcywgc3RhcnRSdWxlTmFtZSk7XG5cbiAgcmV0dXJuIGZ1cnRsZVBhcnNlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBmdXJ0bGVQYXJzZXJGcm9tQk5GLFxuICBmdXJ0bGVQYXJzZXJGcm9tTm90aGluZyxcbiAgZnVydGxlUGFyc2VyRnJvbUJORkFuZFN0YXJ0UnVsZU5hbWVcbn07XG4iXSwibmFtZXMiOlsiZnVydGxlUGFyc2VyRnJvbUJORiIsImZ1cnRsZVBhcnNlckZyb21CTkZBbmRTdGFydFJ1bGVOYW1lIiwiZnVydGxlUGFyc2VyRnJvbU5vdGhpbmciLCJydWxlc0Zyb21CTkYiLCJwYXJzZXJVdGlsaXRpZXMiLCJwYXJzZXJGcm9tUnVsZXMiLCJwYXJzZXJGcm9tUnVsZXNBbmRTdGFydFJ1bGVOYW1lIiwiYm5mIiwicnVsZXMiLCJlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIiwiZnVydGxlUGFyc2VyIiwiRnVydGxlUGFyc2VyIiwic3RhcnRSdWxlTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBK0NBLE9BSUU7ZUFKRjs7SUF0Q2dCQSxtQkFBbUI7ZUFBbkJBOztJQTBCQUMsbUNBQW1DO2VBQW5DQTs7SUFkQUMsdUJBQXVCO2VBQXZCQTs7OzRCQW5CZ0I7cUNBQ087NkRBRWQ7Ozs7OztBQUV6QixJQUFRQyxlQUFtRUMsNkJBQWUsQ0FBbEZELGNBQWNFLGtCQUFxREQsNkJBQWUsQ0FBcEVDLGlCQUFpQkMsa0NBQW9DRiw2QkFBZSxDQUFuREU7QUFFaEMsU0FBU04sb0JBQW9CTyxHQUFHO0lBQ3JDLElBQUlDO0lBRUpBLFFBQVFMLGFBQWFJO0lBRXJCQyxRQUFRQyxJQUFBQSw2Q0FBc0IsRUFBQ0QsUUFBUyxHQUFHO0lBRTNDLElBQU1FLGVBQWVMLGdCQUFnQk0sZUFBWSxFQUFFSDtJQUVuRCxPQUFPRTtBQUNUO0FBRU8sU0FBU1I7SUFDZCxJQUFNLEFBQUVLLE1BQVFJLGVBQVksQ0FBcEJKO0lBRVIsSUFBSUM7SUFFSkEsUUFBUUwsYUFBYUk7SUFFckJDLFFBQVFDLElBQUFBLDZDQUFzQixFQUFDRCxRQUFTLEdBQUc7SUFFM0MsSUFBTUUsZUFBZUwsZ0JBQWdCTSxlQUFZLEVBQUVIO0lBRW5ELE9BQU9FO0FBQ1Q7QUFFTyxTQUFTVCxvQ0FBb0NNLEdBQUcsRUFBRUssYUFBYTtJQUNwRSxJQUFJSjtJQUVKQSxRQUFRTCxhQUFhSTtJQUVyQkMsUUFBUUMsSUFBQUEsNkNBQXNCLEVBQUNELFFBQVMsR0FBRztJQUUzQyxJQUFNRSxlQUFlSixnQ0FBZ0NLLGVBQVksRUFBRUgsT0FBT0k7SUFFMUUsT0FBT0Y7QUFDVDtJQUVBLFdBQWU7SUFDYlYscUJBQUFBO0lBQ0FFLHlCQUFBQTtJQUNBRCxxQ0FBQUE7QUFDRiJ9
|
package/package.json
CHANGED
package/src/utilities/parsers.js
CHANGED
|
@@ -5,7 +5,7 @@ import { eliminateLeftRecursion } from "occam-grammar-utilities";
|
|
|
5
5
|
|
|
6
6
|
import FurtleParser from "../furtle/parser";
|
|
7
7
|
|
|
8
|
-
const { rulesFromBNF, parserFromRules } = parserUtilities;
|
|
8
|
+
const { rulesFromBNF, parserFromRules, parserFromRulesAndStartRuleName } = parserUtilities;
|
|
9
9
|
|
|
10
10
|
export function furtleParserFromBNF(bnf) {
|
|
11
11
|
let rules;
|
|
@@ -33,7 +33,20 @@ export function furtleParserFromNothing() {
|
|
|
33
33
|
return furtleParser;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
export function furtleParserFromBNFAndStartRuleName(bnf, startRuleName) {
|
|
37
|
+
let rules;
|
|
38
|
+
|
|
39
|
+
rules = rulesFromBNF(bnf);
|
|
40
|
+
|
|
41
|
+
rules = eliminateLeftRecursion(rules); ///
|
|
42
|
+
|
|
43
|
+
const furtleParser = parserFromRulesAndStartRuleName(FurtleParser, rules, startRuleName);
|
|
44
|
+
|
|
45
|
+
return furtleParser;
|
|
46
|
+
}
|
|
47
|
+
|
|
36
48
|
export default {
|
|
37
49
|
furtleParserFromBNF,
|
|
38
|
-
furtleParserFromNothing
|
|
50
|
+
furtleParserFromNothing,
|
|
51
|
+
furtleParserFromBNFAndStartRuleName
|
|
39
52
|
};
|