Assignment 4  compiler