Compiler assignment 3