a compiler for course project, pascal-like grammar