compilers programming assignment 2: Parser