Project 2: Parser for the PASC language. The project has these files: driver2.c: driving program to check command line options and invoke yypase(). parser.y: grammar definitions and semantic actions to build a syntax tree. tree.c: routines to build and test the syntax tree; some functions are updated and new functions are added for convenience. tree.h: tree node definitions. lexer.l: lex file from project 1; It generates tokens and maintains a string buffer containing all lexemes. table.c : implementation of a hash table and string buffer used to store lexemes (identifiers and string constants). To run the parser, type 'make' or 'make -f parse.mk' followed by: parser [-da [-dt [outfile]]] < file.pasc The flag '-da' turns on tracing and '-dt' outputs the syntax tree to 'outfile'. If no file is specified, stdout is assumed. The parser reports any errors found along with the line and column numbers.