You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
(function(global) {
|
|
|
|
var undefined;
|
|
|
|
var PEG = {
|
|
/* PEG.js version. */
|
|
VERSION: "@VERSION",
|
|
|
|
/*
|
|
* 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) {
|
|
return PEG.compiler.compile(PEG.parser.parse(grammar));
|
|
}
|
|
};
|
|
|
|
/* Thrown when the grammar contains an error. */
|
|
|
|
PEG.GrammarError = function(message) {
|
|
this.name = "PEG.GrammarError";
|
|
this.message = message;
|
|
};
|
|
|
|
PEG.GrammarError.prototype = Error.prototype;
|
|
|
|
// @include "utils.js"
|
|
// @include "parser.js"
|
|
// @include "compiler.js"
|
|
|
|
if (typeof exports !== "undefined") { // Looks like we're in CommonJS environment.
|
|
extend(exports, PEG);
|
|
} else { // Okay, assume this is a browser/Rhino.
|
|
global.PEG = PEG;
|
|
}
|
|
|
|
})(this);
|