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