public ArrayList<String> simulate(String input) { ArrayList<String> strings = new ArrayList<String>(); strings.add("Simulación:"); long init = System.nanoTime(); if (nfa.simulate(input)) { strings.add("Tiempo: " + (System.nanoTime() - init) + "ns"); strings.add("Thomson: SÍ"); } else { strings.add("Tiempo: " + (System.nanoTime() - init) + "ns"); strings.add("Thomson: NO"); } strings.add(""); init = System.nanoTime(); if (nfaToDfa.simulate(input)) { strings.add("Tiempo: " + (System.nanoTime() - init) + "ns"); strings.add("Subconjuntos: SÍ"); } else { strings.add("Tiempo: " + (System.nanoTime() - init) + "ns"); strings.add("Subconjuntos: NO"); } strings.add(""); init = System.nanoTime(); if (dfa.simulate(input)) { strings.add("Tiempo: " + (System.nanoTime() - init) + "ns"); strings.add("DFA directo: SÍ"); } else { strings.add("Tiempo: " + (System.nanoTime() - init) + "ns"); strings.add("DFA directo: NO"); } strings.add(""); return strings; }
public void build(String rgx) throws Exception { nfa = nfaBuilder.build(rgx); nfa.writeFile("thomson.txt"); nfaToDfa = nfa.toDfa(); nfaToDfa.writeFile("subset.txt"); dfa = dfaBuilder.build(rgx); dfa.writeFile("direct.txt"); }