The document discusses three examples of LL(1) parsing. It explains the steps to determine if a grammar is LL(1) which includes calculating the first and follow sets, and constructing the parsing table. The examples show applying these steps to various grammars to analyze if they are LL(1) and build their parsing tables.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
160 views11 pages
LL1 ParsingExamples
The document discusses three examples of LL(1) parsing. It explains the steps to determine if a grammar is LL(1) which includes calculating the first and follow sets, and constructing the parsing table. The examples show applying these steps to various grammars to analyze if they are LL(1) and build their parsing tables.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11
LL(1) Parsing
Example of LL(1) Parser: Example 1
S aABb Ac|€ Bd|€ Step: 1: No left recursion in the grammar, hence no modification required. Step 2: Calculation of First Set First(S) = {a} First(A) = {c, €} First(B) = {d, €} Example of LL(1) Parser S aABb Ac|€ Bd|€ Step 3: Calculation of Follow Set Follow(S) = {$} Follow(A) = First(Bb) = First(B) = {d, €) Since it contains €, continue FIRST rule. First(Bb) = First(B) - € U First (b) = {d, b} Follow(A) = {d,b} Follow(B)= {b} Example of LL(1) Parser S aABb First(aABb)= a A c | € First(c)=c and First(€) = € (Use follow) B d | € First(d)=d and First(€) = € (Use follow) Step 4: Parsing Table Grammar is LL(1) Example String: acdb$ H/w string: adb$ a b c d $ S SaABb A A€ Ac A€ B B€ Bd Example of LL(1) Parser Example String: acdb$ a b c d $ S SaABb A A€ Ac A€ B B€ Bd
Stack Input Action
$ acdb$ Push S into Stack $S acdb$ S aABb $bBAa acdb$ Pop a $bBA cdb$ A c $bBc cdb$ Pop c $bB db$ B d $bd db$ Pop d $b b$ Pop b $ $ Accept Example of LL(1) Parser: Example 2 S AaAb | BbBa A€ B€ Step: 1: No left recursion in the grammar, hence no modification required. Step 2: Calculation of First Set First(S) = First(AaAb) U First(BbBa) First(AaAb) = First(A) = € Since it contains €, continue FIRST rule First(AaAb) = First(A) - € U First(aAb) = {a} Similarly: First(BbBa) = {b} First(S) = {a,b} Example of LL(1) Parser: Example 2 S AaAb | BbBa A€ B€ Step 3: Calculation of Follow Set Follow(S) = {$} Follow(A) = First(aAb) = a Follow(A) = First(b) = {b} Follow(A) = {a,b} Similarly Follow(B) = {a,b} Example of LL(1) Parser: Example 2 S AaAb | BbBa A€ B€ Step 4:Construction of Parsing Table: Grammar is LL(1) a b $ S SAaAb SBbBa A A€ A€ B B€ B€ Example of LL(1) Parser: Example 3 S AB |eDa A ab |c B dC C eC | € D fD | €
Step: 1: No left recursion in the grammar, hence no modification required.
Step 2: Calculation of First Set First(S) = {a,c,e} First(A) = {a,c} First(B) = {d} First(C) = {e, €} First(D) = {f, €} Example of LL(1) Parser: Example 3 S AB |eDa SeDA A ab |c Follow(D) = First(a) = {a} B dC BdC C eC | € Follow(C) = Follow(B) = {$} D fD | € CeC Follow(C) = Follow(C) = {$} Step 3: Calculation of Follow Set DfD Follow(S) = {$} Follow(D) = Follow(D) = {a} SAB Follow(A) = First(B) = {d} Follow(B) = Follow(S) = {$} Example of LL(1) Parser: Example 3 S AB |eDa A ab |c B dC C eC | € D fD | € Construction of Parsing Table: a b c d e f $ S SAB SAB SeDa A Aab Ac B BdC C CeC C€ D D€ DfD