Main { (@ // 'OroMatcher', a regular expression engine from OroInc. static Perl5Util om = new Perl5Util(); @) private static CmdArgs parseCmdArgs(String[] argv) (@ StringBuffer strbuf = new StringBuffer(); for(int k =0; k < argv.length; ++k){ strbuf.append(" "); strbuf.append(argv[k]); } System.out.println("["+strbuf.toString()+"]"); InputStream stream = new ByteArrayInputStream(strbuf.toString().getBytes()); CmdLineParser parser = new CmdLineParser(stream); try{ CmdArgs result; result = parser._CmdLine(); result.fixupDefaults(); return result; } catch(ParseException e){ die(e); } return new CmdArgs(); @) public static void main(String[] argv) (@ try { CmdArgs args = parseCmdArgs(argv); final String CategoryName = args.getCategoryName(); final File ConfigFileName = args.getConfigFileName(); final File DefinitionFileName = args.getDefinitionFileName(); Registry registry = new Registry(); // Parse the Config file FileInputStream file = new FileInputStream(ConfigFileName); Parser parser = new Parser(file); parser._Configuration(registry); // Parse the Definitions file file = new FileInputStream(DefinitionFileName); parser = new Parser(file); parser._Definitions(registry); // Display Registry //registry.display(); // Fix up Registry registry.registerEntitiesAsTypes(); registry.fixupTypeUse(); // Generate Code GeneratedCodeCategory category = registry.get_generatedCategory(CategoryName); // At this point 'category' is not null registry.generateCode(category,args); } catch(ParseException e){ die(e); } catch(FileNotFoundException e){ die(e); } @) }