Sha256: ded7911a6c43ef87f56718b4cad907c84f0371f6ac98c76354539f982f7af91b
Contents?: true
Size: 1.41 KB
Versions: 2
Compression:
Stored size: 1.41 KB
Contents
var utils = require("./utils"); module.exports = { /* PEG.js version (uses semantic versioning). */ VERSION: "0.8.0", GrammarError: require("./grammar-error"), parser: require("./parser"), compiler: require("./compiler"), /* * Generates a parser from a specified grammar and returns it. * * The grammar must be a string in the format described by the metagramar in * the parser.pegjs file. * * Throws |PEG.parser.SyntaxError| if the grammar contains a syntax error or * |PEG.GrammarError| if it contains a semantic error. Note that not all * errors are detected during the generation and some may protrude to the * generated parser and cause its malfunction. */ buildParser: function(grammar) { function convertPasses(passes) { var converted = {}, stage; for (stage in passes) { if (passes.hasOwnProperty(stage)) { converted[stage] = utils.values(passes[stage]); } } return converted; } var options = arguments.length > 1 ? utils.clone(arguments[1]) : {}, plugins = "plugins" in options ? options.plugins : [], config = { parser: this.parser, passes: convertPasses(this.compiler.passes) }; utils.each(plugins, function(p) { p.use(config, options); }); return this.compiler.compile( config.parser.parse(grammar), config.passes, options ); } };
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
spider-src-0.1.7 | lib/spider-src/support/spider/node_modules/pegjs/lib/peg.js |
spider-src-0.1.6 | lib/spider-src/support/spider/node_modules/spider-script/node_modules/pegjs/lib/peg.js |