}
private void finishInit() {
for(String type : new HashSet<String>(autLists.keySet())) {
if(verbose) System.out.println("Building DFA for: " + type + " at " + new GregorianCalendar().getTime() + "...");
Automaton mainAut;
//if(verbose) System.out.println("Building DFA from " + autLists.get(type).size() + " items.");
mainAut = Automaton.union(autLists.get(type));
System.gc();
if(verbose) {
System.out.println("Memory: " + Runtime.getRuntime().freeMemory() + " " + Runtime.getRuntime().totalMemory() + " " + Runtime.getRuntime().maxMemory());
}
mainAut.determinize();
if(verbose) System.out.println("DFA initialised");
if(verbose) {
System.out.println("Memory: " + Runtime.getRuntime().freeMemory() + " " + Runtime.getRuntime().totalMemory() + " " + Runtime.getRuntime().maxMemory());
}
runAuts.put(type, new RunAutomaton(mainAut, false));
autLists.remove(type);
}
for(String type : new HashSet<String>(simpleAuts.keySet())) {
if(verbose) System.out.println("Building DFA for: " + type + "b at " + new GregorianCalendar().getTime() + "... ");
Automaton mainAut = simpleAuts.get(type).toAutomaton();
if(verbose) System.out.println("DFA initialised");
runAuts.put(type + "b", new RunAutomaton(mainAut, false));
simpleAuts.remove(type);
}
if(verbose) System.out.println("All DFAs built");