Question
We want to create a top-down parser which is able to analyze the Java style class declarations same as the following examples, class Car extends
We want to create a top-down parser which is able to analyze the Java style class declarations same as the following examples,
class Car extends Vehicle public class JavaIsCrazy implements Factory, Builder, Listener public final class President extends Person implements Official
For this, we have the following grammar:
Index | Grammar Rule | |||||||||
0 | ||||||||||
1 | C | P F class identifier X Y | ||||||||
2 | P | public | ||||||||
3 | P | |||||||||
4 | F | final | ||||||||
5 | F | |||||||||
6 | X | extends identifier | ||||||||
7 | X | |||||||||
8 | Y | implements I | ||||||||
9 | Y | |||||||||
10 | I | identifier J | ||||||||
11 | J | ,I | ||||||||
12 | J |
For this homework, you need to submit the followings:
a - Compute Nullable values for all nonterminals (LHS) and all production rules (RHS). You submit the Nullable calculation rules and the results. You do not need to submit the iterative table that is used for calculation. (20 points)
To refer to productions you use production numbers mentioned above, since using the names are lengthy. The following is an example:
Instead of writing Nullable (extends identifier) you write Nullable (6).
b- Compute FIRST sets for all nonterminals (LHS) and all production rules (RHS). You submit the FIRST calculation rules and the result sets. You do not need to submit the iterative table that is used for calculation. (20 points)
To refer to productions you use production numbers mentioned above, since using the names are lengthy. The following is an example:
Instead of writing FIRST (extends identifier) you write FIRST (6).
c - Compute FOLLOW sets for all nonterminals (LHS). (do not forget to add a new start symbol and corresponding production rule including the end-of-input symbol, i.e. $). You submit the FOLLOW calculation rules for all and the result sets. (20 points)
d - Submit the LL(1) parsing table for the grammar. (20 points)
(Please note, you added a new production rule with a new start symbol. For this production rule use number 0 as its index number.)
To populate the table you use rule numbers mentioned above instead of writing the production rules in the table.
For example, in the table instead of writing F final you only write 4.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started