krl-parser
Advanced tools
Comparing version 0.2.0 to 0.2.1
{ | ||
"name": "krl-parser", | ||
"version": "0.2.0", | ||
"version": "0.2.1", | ||
"description": "Parse KRL source code into an AST", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
@@ -7,2 +7,11 @@ # krl-parser | ||
## Usage | ||
```js | ||
var parser = require('krl-parser'); | ||
var src = ...//somehow get your krl string | ||
var ast = parser(src); | ||
``` | ||
## AST Specification | ||
@@ -9,0 +18,0 @@ |
@@ -215,6 +215,3 @@ // Generated automatically by nearley | ||
{"name": "rule$ebnf$2$subexpression$1$string$2", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, | ||
{"name": "rule$ebnf$2$subexpression$1$ebnf$1$subexpression$1", "symbols": [{"literal":";"}, "_"]}, | ||
{"name": "rule$ebnf$2$subexpression$1$ebnf$1", "symbols": ["rule$ebnf$2$subexpression$1$ebnf$1$subexpression$1"], "postprocess": id}, | ||
{"name": "rule$ebnf$2$subexpression$1$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}}, | ||
{"name": "rule$ebnf$2$subexpression$1", "symbols": ["rule$ebnf$2$subexpression$1$string$1", "__", "rule$ebnf$2$subexpression$1$string$2", "__", "EventExpression", "_", "rule$ebnf$2$subexpression$1$ebnf$1"]}, | ||
{"name": "rule$ebnf$2$subexpression$1", "symbols": ["rule$ebnf$2$subexpression$1$string$1", "__", "rule$ebnf$2$subexpression$1$string$2", "__", "EventExpression", "_semi"]}, | ||
{"name": "rule$ebnf$2", "symbols": ["rule$ebnf$2$subexpression$1"], "postprocess": id}, | ||
@@ -723,3 +720,9 @@ {"name": "rule$ebnf$2", "symbols": [], "postprocess": function(d) {return null;}}, | ||
{"name": "__$ebnf$1", "symbols": [/[\s]/, "__$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, | ||
{"name": "__", "symbols": ["__$ebnf$1"], "postprocess": noop} | ||
{"name": "__", "symbols": ["__$ebnf$1"], "postprocess": noop}, | ||
{"name": "_semi$ebnf$1", "symbols": []}, | ||
{"name": "_semi$ebnf$1", "symbols": [/[\s;]/, "_semi$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, | ||
{"name": "_semi", "symbols": ["_semi$ebnf$1"], "postprocess": noop}, | ||
{"name": "__semi$ebnf$1", "symbols": [/[\s;]/]}, | ||
{"name": "__semi$ebnf$1", "symbols": [/[\s;]/, "__semi$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, | ||
{"name": "__semi", "symbols": ["__semi$ebnf$1"], "postprocess": noop} | ||
] | ||
@@ -726,0 +729,0 @@ , ParserStart: "main" |
var nearley = require('nearley'); | ||
var grammar = require('./grammar.js'); | ||
var commentsToSpaces = require('./commentsToSpaces'); | ||
module.exports = function(src){ | ||
var p = new nearley.Parser(grammar.ParserRules, grammar.ParserStart); | ||
p.feed(src); | ||
p.feed(commentsToSpaces(src)); | ||
return [].concat.apply([], p.results); | ||
}; |
62291
725
523