Compiler design, parsing, intermediate representation, lexing