diff options
| author | Kumar Priyansh <[email protected]> | 2019-01-19 12:37:14 +0530 |
|---|---|---|
| committer | Kumar Priyansh <[email protected]> | 2019-01-19 12:37:14 +0530 |
| commit | dcdfc94cb39dfe2c39925a0145ffa45e2d061c30 (patch) | |
| tree | 4f6379d955555b298c0e7b83a67e264240ee5614 /cordova/node_modules/pegjs/lib/peg.js | |
| parent | 76f7b3678d3f1ff99c3935a774d420453b0c3cb9 (diff) | |
| download | WeatherApp-dcdfc94cb39dfe2c39925a0145ffa45e2d061c30.tar.xz WeatherApp-dcdfc94cb39dfe2c39925a0145ffa45e2d061c30.zip | |
Initial Upload via GIT
Diffstat (limited to 'cordova/node_modules/pegjs/lib/peg.js')
| -rw-r--r-- | cordova/node_modules/pegjs/lib/peg.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/cordova/node_modules/pegjs/lib/peg.js b/cordova/node_modules/pegjs/lib/peg.js new file mode 100644 index 0000000..29b759b --- /dev/null +++ b/cordova/node_modules/pegjs/lib/peg.js @@ -0,0 +1,58 @@ +"use strict"; + +var arrays = require("./utils/arrays"), + objects = require("./utils/objects"); + +var peg = { + /* PEG.js version (uses semantic versioning). */ + VERSION: "0.10.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. + */ + generate: function(grammar, options) { + options = options !== void 0 ? options : {}; + + function convertPasses(passes) { + var converted = {}, stage; + + for (stage in passes) { + if (passes.hasOwnProperty(stage)) { + converted[stage] = objects.values(passes[stage]); + } + } + + return converted; + } + + options = objects.clone(options); + + var plugins = "plugins" in options ? options.plugins : [], + config = { + parser: peg.parser, + passes: convertPasses(peg.compiler.passes) + }; + + arrays.each(plugins, function(p) { p.use(config, options); }); + + return peg.compiler.compile( + config.parser.parse(grammar), + config.passes, + options + ); + } +}; + +module.exports = peg; |
