Added logic to pass the interpreter and the lexer to function by reference so that they do not get copied, this prevents a bug that caused various pieces of the code to be parsed multiple times in the wrong order. Added string variables.