Refactored parser, pretty printer and interpreter so that the parser returns a CodeBox object. This simplifies all three and makes it easier to add functions later on