a design project for compiler design class