CISC 471/672 PROGRAMMING ASSIGNMENT 3 - PARSER - PART 1 -------------------------------------------------------- GRADING INSTRUCTIONS -------------------- Name:_____________________________ Date of Submission:_________ Total grade ____ - late points ____ = Final grade (out of 35)_____ Days Late:____ Due Date: Monday, March 21, 2018 (midnight). Show point deductions or check below (partial credit given where applicable): ___ (30 for UG; 25 for G) Grammar: (look at constructs listed below for what you should implement) Both Undergrads (1.5 pts each) and Graduate students (1 pt each): ___ precedence and associativity of operators consistent with language def ___ simple skeleton program with a class ___ class lists ___ class declarations ___ feature list ___ feature ___ method declarations without parameters ___ method declarations with parameters ___ method call (2 forms) ___ variable declarations ___ assignment expression ___ if then else expression ___ begin block ___ let expression ___ new expression ___ isvoid expression ___ arithmetic expressions (+,-,*,/) ___ relational expressions (~,<,<=,=) ___ logical expressions (not) ___ simple expressions (id, integer, string, true, false) Graduate students only (1 pt each): ___ variable declarations with initialization ___ while loop ___ case expression ___ nested control structures Note: You should implement the above constructs so that your parser accepts syntactically correct programs without error messages/bombing. We will check for features of the languages that are NOT accepted properly by parser. We will be checking whether your grammar does not accept syntactically erroneous programs, and which features are improperly accepted when they should be flagged as errors. (5 pts) Error Handling (Graduate student only): ___ detection and descriptive error messages printed out: error explanation and maybe location (no error recovery for first deadline is needed, just detection of a single error in a given program, no detection of multiple errors in same program needed) For programs that have errors, the output is the error messages of the parser. (5 pts) External documentation in README ___ Explain your design decisions, your test cases, and why you believe your program is correct and robust. General Comments: