a course project for Compilers