CSE2002 Session21 TopDownParsingSession2
CSE2002 Session21 TopDownParsingSession2
Compiler Design
Recap
Left Recursion
Left Factoring
Top Down Parsing
Recursive Descent Parsing
Example EE+T|T
TT*F|F
F ( E ) | id
the form 𝐴 → 𝐴𝛼
Direct/Immediate left recursion: There is a production of
After the first step (substitute S by its rhs in the rules) the grammar
becomes
S Aa | b A Ac | Aad | bd | Є
After the second step (removal of left recursion) the grammar
becomes S Aa | b
A bdA' | A'
A' cA' | adA' | Є
Dr Prakash P VIT Chennai
Indirect Left Recursion
A → BaB An equivalent
B → Cb | ɛ immediately left-
C → Ab | Ac recursive grammar,
• S i E tSS’ | a • A → aA’
• S’ e S | ɛ • A’ → AB / Bc / Ac
• Eb
• A → aA’
• A’ → AD / Bc
• D→B/c
A)
C)
E -> E - T | T
E -> TX
T -> T + F | F X -> -TX | ε
F -> (E) | id T -> FY
Y -> +FY | ε
B) F -> (E) | id
E -> TE'
D)
E' -> -TE' | ε
E -> TX | (TX)
T -> T + F | F X -> -TX | +TX | ε
F -> (E) | id T -> id
A)
C)
E -> E - T | T
E -> TX
T -> T + F | F X -> -TX | ε
F -> (E) | id T -> FY
Y -> +FY | ε
B) F -> (E) | id
E -> TE'
D)
E' -> -TE' | ε
E -> TX | (TX)
T -> T + F | F X -> -TX | +TX | ε
F -> (E) | id T -> id