// Add class
file.addClass(cls);
// Add file comment
str = file.toString() + "\n\n" + gen.getFileComment();
file.addComment(new JavaComment(JavaComment.BLOCK, str));
// Add imports
file.addImport(new JavaImport("net.percederberg.grammatica.parser",
"Analyzer"));
file.addImport(new JavaImport("net.percederberg.grammatica.parser",
"Node"));
file.addImport(new JavaImport("net.percederberg.grammatica.parser",
"ParseException"));
file.addImport(new JavaImport("net.percederberg.grammatica.parser",
"Production"));
file.addImport(new JavaImport("net.percederberg.grammatica.parser",
"Token"));
// Add class comment
str = TYPE_COMMENT;
if (gen.getClassComment() != null) {
str += "\n\n" + gen.getClassComment();
}
cls.addComment(new JavaComment(str));
// Add enter method
enter.addComment(new JavaComment(ENTER_COMMENT));
enter.addThrows("ParseException");
enter.addCode("switch (node.getId()) {");
cls.addMethod(enter);
// Add exit method
exit.addComment(new JavaComment(EXIT_COMMENT));
exit.addThrows("ParseException");
exit.addCode("switch (node.getId()) {");
cls.addMethod(exit);
// Add child method
child.addComment(new JavaComment(CHILD_COMMENT));
child.addThrows("ParseException");
child.addCode("switch (node.getId()) {");
cls.addMethod(child);
}