A Practice project for learning compliers