Deterministic Finite Automaton that works recursively to do union, intersection and complement operations