Finite Automata And Regular Grammars