CSC3003S compiler practical assignment