4.3k views

Consider the grammar shown below.

$S \rightarrow C \ C$

$C \rightarrow c \ C \ | \ d$

This grammar is

1. LL(1)
2. SLR(1) but not LL(1)
3. LALR(1) but not SLR(1)
4. LR(I) but not LALR(1)
edited | 4.3k views

ans is A

$First(S)=First(C)=\{c,d\}$

there are no multiple in single row of parsing table hence grammar is LL1

note : if we have $A \rightarrow B/C$ for grammar to be LL(1) first(B) intersection First(C) should be null otherwise grammar is not LL1.If First(B) contains $\epsilon$ then Follow(A) intersection First(C) should be null. Using this we can say grammar is LL(1) or not without constructing parsing table.

An $\epsilon$ free LL(1) grammar is also SLR(1) and hence LALR(1) and LR(1) too.

edited by
0

@Arjun sir:-

IS the following statement true?

If a grammar is LL(1) and not containing ϵϵ, then it is SLR(1) and so LALR(1) and LR(1).

0
yes it is!
0
why?
0
An ϵϵ free LL(1) grammar is also SLR(1) and hence LALR(1) and LR(1) too.

Is this true Arjun sir?
0

wikki says-

A ε-free LL(1) grammar is also a SLR(1) grammar. A LL(1) grammar with symbols that have both empty and non-empty derivations is also a LALR(1) grammar. A LL(1) grammar with symbols that have only the empty derivation may or may not be LALR(1).[5]

0
So what is the confusing part ?
+1

yes every LL(1) grammar in not LALR(1).

0
Still what is wrong with the given statement?
0
Can we say a grammar is also SLR(k),LALR(K),LR(k) if it is a epsilon free LL(k) grammar?
0

According to wiki - https://en.wikipedia.org/wiki/LL_grammar
A LL(1) grammar with symbols that have both empty and non-empty derivations is also a LALR(1) grammar.

is it true?

+1 vote

1
2