Lexer (~100 lines) Recognizer (~100 lines) Parser (~200 lines) Interpreter (~500 lines) Unit tests (~600 lines)