SLR grammar ('' is ε):

FIRST / FOLLOW table
NonterminalFIRSTFOLLOW
E'{(,id}{$}
E{(,id}{$,+,)}
T{(,id}{$,+,*,)}
F{(,id}{$,+,*,)}

SLR closure table
GotoKernelStateClosure
{E' -> .E}0{E' -> .E; E -> .E + T; E -> .T; T -> .T * F; T -> .F; F -> .( E ); F -> .id}
goto(0, E){E' -> E.; E -> E.+ T}1{E' -> E.; E -> E.+ T}
goto(0, T){E -> T.; T -> T.* F}2{E -> T.; T -> T.* F}
goto(0, F){T -> F.}3{T -> F.}
goto(0, (){F -> (.E )}4{F -> (.E ); E -> .E + T; E -> .T; T -> .T * F; T -> .F; F -> .( E ); F -> .id}
goto(0, id){F -> id.}5{F -> id.}
goto(1, +){E -> E +.T}6{E -> E +.T; T -> .T * F; T -> .F; F -> .( E ); F -> .id}
goto(2, *){T -> T *.F}7{T -> T *.F; F -> .( E ); F -> .id}
goto(4, E){F -> ( E.); E -> E.+ T}8{F -> ( E.); E -> E.+ T}
goto(4, T){E -> T.; T -> T.* F}2 
goto(4, F){T -> F.}3 
goto(4, (){F -> (.E )}4 
goto(4, id){F -> id.}5 
goto(6, T){E -> E + T.; T -> T.* F}9{E -> E + T.; T -> T.* F}
goto(6, F){T -> F.}3 
goto(6, (){F -> (.E )}4 
goto(6, id){F -> id.}5 
goto(7, F){T -> T * F.}10{T -> T * F.}
goto(7, (){F -> (.E )}4 
goto(7, id){F -> id.}5 
goto(8, )){F -> ( E ).}11{F -> ( E ).}
goto(8, +){E -> E +.T}6 
goto(9, *){T -> T *.F}7 



LR table
StateACTIONGOTO
+*()id$E'ETF
0  s4 s5  123
1s6    acc    
2r2s7 r2 r2    
3r4r4 r4 r4    
4  s4 s5  823
5r6r6 r6 r6    
6  s4 s5   93
7  s4 s5    10
8s6  s11      
9r1s7 r1 r1    
10r3r3 r3 r3    
11r5r5 r5 r5    

Input (tokens):

Maximum number of steps:


TraceTree
StepStackInputAction
10id + id * id $s5
E
E
T
F
id
+
T
T
F
id
*
F
id
20 id 5+ id * id $r6
30 F+ id * id $3
40 F 3+ id * id $r4
50 T+ id * id $2
60 T 2+ id * id $r2
70 E+ id * id $1
80 E 1+ id * id $s6
90 E 1 + 6id * id $s5
100 E 1 + 6 id 5* id $r6
110 E 1 + 6 F* id $3
120 E 1 + 6 F 3* id $r4
130 E 1 + 6 T* id $9
140 E 1 + 6 T 9* id $s7
150 E 1 + 6 T 9 * 7id $s5
160 E 1 + 6 T 9 * 7 id 5$r6
170 E 1 + 6 T 9 * 7 F$10
180 E 1 + 6 T 9 * 7 F 10$r3
190 E 1 + 6 T$9
200 E 1 + 6 T 9$r1
210 E$1
220 E 1$acc