// showDFA performs common actions for individual and merged DFAs // it returns the ultimate (original or minimized) dfa func showDFA(dfa *rx.DFA, treelabel string, showtime bool) *rx.DFA { if *opt['p'] { dfa.ShowTree(os.Stdout, dfa.Tree, treelabel) } if *opt['n'] { dfa.ShowNFA(os.Stdout, "NFA") } if *opt['d'] { dfa.ShowStates(os.Stdout, "Unoptimized DFA") } if !*opt['u'] { if showtime { rxsys.Interval() // reset for timing } dfa = dfa.Minimize() if showtime { timestamp(fmt.Sprintf( "minimize to %d states", len(dfa.Dstates))) } if *opt['d'] { dfa.ShowStates(os.Stdout, "Minimized DFA") } } if *opt['h'] { synthx(dfa) } return dfa }