Interpreter that uses Abstract Syntax Tree walking to run code
Lexer/Scanner/Tokenizer
Recursive descent based parser