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.

44 lines
1.0 KiB
JavaScript

(function(global, undefined) {
/* ===== PEG ===== */
var PEG = {
/*
* 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));
}
};
/* ===== PEG.GrammarError ===== */
/* Thrown when the grammar contains an error. */
PEG.GrammarError = function(message) {
this.name = "PEG.GrammarError";
this.message = message;
};
PEG.GrammarError.prototype = Error.prototype;
/* ===== Includes ===== */
// @include "utils.js"
// @include "parser.js"
// @include "compiler.js"
/* ===== Export ===== */
global.PEG = PEG;
})(this);