Text this: Introduction to Languages And The Theory of Computation