PEG.compiler = { /* * Names of passes that will get run during the compilation (in the specified * order). */ appliedPassNames: [ "reportMissingRules", "reportLeftRecursion", "removeProxyRules", "computeStackDepths" ], /* * Generates a parser from a specified grammar AST. Throws |PEG.GrammarError| * if the AST 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. */ compile: function(ast) { for (var i = 0; i < this.appliedPassNames.length; i++) { this.passes[this.appliedPassNames[i]](ast); } var source = this.emitter(ast); var result = eval(source); result._source = source; return result; } }; // @include "passes.js" // @include "emitter.js"