The Theory of Parsing, Translation, and Compiling (Volume I: Parsing)