- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Show that the following grammar is LR (1)
S โ A a |b A c |B c | b B a
A โ d
B โ d
Solution
Step1 − Construct Augment Grammar
(0) S′ → S
(1) S → A a
(2) S → b A c
(3) S → B c
(4) S → b B a
(5) A → d
(6) B → d
Step2 − Find Closure & goto. Construct a set of LR (1) items. Here all the boxes represent new states.
LR (1) Parsing Table
So, the LR (1) Parsing Table has no several entries. Grammar is LR (1).
Construction of LR (1) or Canonical LR Parsing Table
Input − An Augmented Grammar G’.
Output − The Canonical LR (1) Parsing Table
Method
Filling the "shift" Entries(s) − Apply Rule (2a) of construction of CLR Parsing Table.
Consider I3 = goto(I0, c)
∴ Action[0, c] = shift 3
∴ Write s3 in front of Row state 0 and column c.
Similarly, consider another entry.
i.e., I7 = goto(I2, d)
∴ Action[2, d] = shift 7
∴ Write s7 in front of Row State 2 and column d. Similarly, other entries of shift are filled onto the Action table.
Filling the "reduce" Entries (r)
Apply rule (2b) of construction of CLR parsing Table. Consider productions of the form A → α โ , a
For example, Consider
I4 = goto(I0, d)
C → d โ, c | d
Here, C → d โ, c | d is of form A → α โ , a. So, set Action [4, c] and Action [4, d] to r3.
Since C → d is production number 3 in the given Question.
∴ Write r3 in front of Row State 4 and column c and d.
Because c, d looks ahead symbols in production C → d โ , c | d.
Consider another example
I9 = goto(I9, C)
C → c C โ, $
Since C → c C is production number (2) in the given question.
∴ Write r2 in front of Row State 9 and column $, because $ is the lookahead symbol attached to the production.
∴ Action [9, $] = r2
Similarly, fill all entries of reducing into the Parsing Table.
Filling of goto Entries
In goto, only Non-Terminal are seen column-wise,
For example
I8 = goto(I3, C)
∴ Action [3, C] = 8
i.e., write 8 in front of Row state 3 and column C.
Filling of "accept" Entry
Apply Rule (2c) of CLR Parsing Table
Find the state in which production of form S′ → S โ, $ lies
∴ It is state I1
∴ Write accept in front of Row state 1 & column $.