throws GrammarException {
Parser parser;
try {
parser = new RecursiveDescentParser(tokenizer, analyzer);
for (int i = 0; i < productions.size(); i++) {
parser.addPattern((ProductionPattern) productions.get(i));
}
parser.prepare();
} catch (ParserCreationException e) {