Tokenizer, Compiler and Virtual Machine for own programming language. Assignment for class Design Patterns 2.