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

  1. 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 + | -

  1. 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)
  2. Please submit a report for your implementation, which should include the following information:
  1. The process of eliminating all left recursions; (10 marks)
  2. 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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!