Text this: Introduction to automata theory, formal languages and computation