Question
Consider the following grammar: (//some alternative rules are listed on separate lines without using symbol |): stmt > assignment > subr call assignment > id
Consider the following grammar: (//some alternative rules are listed on separate lines without using symbol |):
stmt > assignment
> subr call
assignment > id := expr
subr call > id ( arg list )
expr > primary expr tail
expr tail > op expr
>
primary > id
> subr call
> ( expr )
op > + | - | * | /
arg list > expr args tail
args tail > , arg list
>
(a) Construct a parse tree for the input string foo(a,b).
(b) Give a canonical (right-most) derivation of this same string.
(c) Prove that the grammar is not LL(1). (//hint: find an example that LL(1) does not work).
(d) Modify the grammar so that it is LL(1). (//hint: use left factoring)
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