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) {
LineRange range = (LineRange) lines.get(e.getName());
if (range == null) {
throw new GrammarException(fileName, e.getMessage());
} else {