Question: Please design and implement an LL(1) parser for the following given grammar: Non-terminal S E T O Terminal id := ; real integer P(S): S
- Please design and implement an LL(1) parser for the following given grammar:
| Non-terminal | S |
| E | |
| T | |
| O | |
| Terminal | id |
| := | |
| ; | |
| real | |
| integer |
| P(S): S id := E ; E EOT E T T id | real | integer O + | - |
- Please submit the source code (in any programming language) of your LL(1) parser, which should be runnable and give correct output for a given input: given an acceptable string, the LL(1) parser should output accept; while given an non-acceptable string, the LL(1) parser should output an error message; (30 marks)
- Please submit a report for your implementation, which should include the following information:
- The process of eliminating all left recursions; (10 marks)
- The First, Follow and Predict sets for all productions; and the final LL(1) Table; (10 marks)
Sample execution of input string id := id + real integer, which should include both the detailed parsing process with a PDA and the LL(1) table (refer to LL1-example of L3.pdf), and the screenshots of the real executions. (10 marks)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
