aboutsummaryrefslogtreecommitdiff
path: root/cordova/node_modules/pegjs/lib/peg.js
diff options
context:
space:
mode:
authorKumar Priyansh <[email protected]>2019-01-19 12:37:14 +0530
committerKumar Priyansh <[email protected]>2019-01-19 12:37:14 +0530
commitdcdfc94cb39dfe2c39925a0145ffa45e2d061c30 (patch)
tree4f6379d955555b298c0e7b83a67e264240ee5614 /cordova/node_modules/pegjs/lib/peg.js
parent76f7b3678d3f1ff99c3935a774d420453b0c3cb9 (diff)
downloadWeatherApp-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.js58
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;