502 views
1. Construct all the parse trees corresponding to $i + j * k$ for the grammar
$E \rightarrow E+E$
$E \rightarrow E*E$
$E \rightarrow id$
2. In this grammar, what is the precedence of the two operators $*$ and $+$?
3. If only one parse tree is desired for any string in the same language, what changes are to be made so that the resulting LALR(1) grammar is unambiguous?
edited | 502 views
0
$E\ ->\ idE'\\E'\ ->\ +EE'|*EE'|\ \epsilon$

Although I know there is no need of removing left recursion in case LALR parser but can the above be also the answer to part c)?

1. two parse tree for i+j*k.
2. $+$ and $*$ having same precedence..
3. to make grammer LALR compatible give priority to $+$ over $*$ or vice versa.

following grammar is LALR(1)

$E \rightarrow E + T$
$| T$
$T \rightarrow T * F$
$| F$
$F \rightarrow id$

edited by
+2
could you please explain, how giving priority to + over * and vice versa makes it LALR(1) ?
+1
why hadn't you make the grammar non-left recursive? Since priority has to be given to someone, we can give it to + or *. Is this the reason?
+4
LALR parsers can parse left recursive grammar. no need to remove left recursion. Had it been LL(1) then you would have to remove..
0
for given grammar how to  construct LALR(1) grammar which is unambiguous