SLR Parser


Analysis SLR - Enter Grammar Production Set including augmented grammar (Ex: E' -> E).
Empty sentence (ε) = ''







SLR - Table Closure
GOTO Canonical ItemsStateClosure
{S' -> .S}0{S' -> .S; S -> .q * A * B * C}
goto(0, S){S' -> S.}1{S' -> S.}
goto(0, q){S -> q.* A * B * C}2{S -> q.* A * B * C}
goto(2, *){S -> q *.A * B * C}3{S -> q *.A * B * C; A -> .a; A -> .b * b * D}
goto(3, A){S -> q * A.* B * C}4{S -> q * A.* B * C}
goto(3, a){A -> a.}5{A -> a.}
goto(3, b){A -> b.* b * D}6{A -> b.* b * D}
goto(4, *){S -> q * A *.B * C}7{S -> q * A *.B * C; B -> .a; B -> .}
goto(6, *){A -> b *.b * D}8{A -> b *.b * D}
goto(7, B){S -> q * A * B.* C}9{S -> q * A * B.* C}
goto(7, a){B -> a.}10{B -> a.}
goto(8, b){A -> b * b.* D}11{A -> b * b.* D}
goto(9, *){S -> q * A * B *.C}12{S -> q * A * B *.C; C -> .b; C -> .}
goto(11, *){A -> b * b *.D}13{A -> b * b *.D; D -> .C; D -> .; C -> .b; C -> .}
goto(12, C){S -> q * A * B * C.}14{S -> q * A * B * C.}
goto(12, b){C -> b.}15{C -> b.}
goto(13, D){A -> b * b * D.}16{A -> b * b * D.}
goto(13, C){D -> C.}17{D -> C.}
goto(13, b){C -> b.}15 
Table First / Follow
Non-terminalFIRSTFOLLOW
S'{q}{$}
S{q}{$}
A{a,b}{*}
B{a,''}{*}
C{b,''}{$,*}
D{b,''}{*}


SLR Syntax Table
State Action GoTo
q*ab$S'SABCD
0s2     1    
1    Accept      
2 s3         
3  s5s6   4   
4 s7         
5 r2         
6 s8         
7 r5s10     9  
8   s11       
9 s12         
10 r4         
11 s13         
12 r7 s15r7    14 
13 r9 / r7 s15r7    1716
14    r1      
15 r6  r6      
16 r3         
17 r8         

Input Sequence:




Parsing Input Sequence
StepStackInput StringAction
10a * a * b * b * a * a * a $ 

Supervisior



The Team


Sabil Shrestha

sabil.com.np

Awan Shrestha

awan.com.np

Sansrit Paudel

Kathmandu University sansrit.com.np

Bhabin Khadka

Kathmandu University