Lexical analyzer to parse and generate valid tokens. Recursive Descent Parser to generate a top down derivation tree.