Oberon interpreter using PLY, task for the course on formal languages and compiler frontend design