1 E -> E + T 2 E -> E - T 3 E -> T 4 T -> T * F 5 T -> T / F 6 T -> F 7 F -> (E) 8 F -> i
| Line | Stack | Input | Entry | Action/Production |
| 1 | 0 | (i+i)/i$ | s4 | Shift state 4 |
| 2 | 0 (4 | i + i)/i$ | s5 | Shift state 5 |
| 3 | 0 (4 i5 | + i)/i$ | r8 | F->i |
| To get to line 4 pop right-hand side (i5) Look at Table[4,F] find 3, push F3 | ||||
| 4 | 0 (4 F3 | + i)/i$ | r6 | T-> F |
| 5 | 0 (4 T2 | + i)/i$ | r3 | E ->T |
| 6 | 0 (4 E10 | + i)/i$ | s6 | shift state 6 |
| 7 | 0 (4 E10 +6 | i)/i$ | s5 | shift state 5 |
| 8 | 0 (4 E10 +6 i5 | )/i$ | r8 | F ->i |
| 9 | 0 (4 E10 +6 F3 | )/i$ | r6 | T->F |
| 10 | 0 (4 E10 +6 T11 | )/i$ | r1 | E-> E + T |
| 11 | 0 (4 E10 | )/i$ | s15 | shift 15 |
| 12 | 0 (4 E10 )15 | /i$ | r7 | F ->(E) |
| 13 | 0 F3 | /i$ | r6 | T->F |
| 14 | 0 T2 | /i$ | s9 | Shift state 9 |
| 15 | 0 T2 /9 | i$ | s5 | Shift state 5 |
| 16 | 0 T2 /9 i5 | $ | r8 | F->i |
| 17 | 0 T2 /9 F14 | $ | r5 | T -> T/F |
| 18 | 0 T2 | $ | r3 | E ->T |
| 19 | 0 E1 | $ | acc | parse successful |
Stack input $(F )$
0 Z -> E 1 E -> E + T 2 E -> E - T 3 E -> T 4 T -> T * F 5 T -> T / F 6 T -> F 7 F -> (E) 8 F -> i
E->@E + T E ->@E - T E ->@T T->@T * F T->@T / F T->@F F->@(E) F->@i
Z->E@ E-> E@ + T E-> E@ -T
0 Z -> E 1 E -> E + T 2 E -> E - T 3 E -> T 4 T -> T * F 5 T -> T / F 6 T -> F 7 F -> (E) 8 F -> i
State 0
Core Z->@E Closure E->@E + T E->@E - T E->@T T->@T * F T->@T / F T->@F F->@(E) F->@i |
State 1 [0 E]
Core Z->E@ E->E@ + T E->E@ - T Closure-Empty |
State 2 [0 T]
Core E->T@ T->T@ * F T->T@ / F Closure-Empty |
State 3 [0 F]
Core T->F@ Closure - Empty |
State 4 [0 (]
Core F->(@E) Closure E->@E + T E->@E - T E->@T T->@T * F T->@T / F T->@F F->@(E) F->@i |
State 5 [0 i]
Core F->i@ Closure - Empty |
State 6 [1 +]
Core E->E + @T Closure T->@T * F T->@T / F T->@F F->@(E) F->@i |
State 7 [1 -]
Core E->E - @T Closure T->@T * F T->@T / F T->@F F->@(E) F->@i |
State 8 [2 *]
Core T->T * @F Closure F->@(E) F->@i |
State 9 [2 /]
Core T->T / @F Closure F->@(E) F->@i |
State 10 [4 E]
Core F->(E@) E->E@ + T E->E@ - T Closure - Empty |
[4 T]=[0 T]=2 [4 F]=[0 F]=3 [4 (]=[0 (]=4 [4 i]=[0 i]=5 |
| Terminals | Non Terminals | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| State | i | + | - | * | / | ( | ) | $ | E | T | F |
| 0 | s5 | s4 | 1 | 2 | 3 | ||||||
| 1 | s6 | s7 | Accept | ||||||||
| 2 | r3 | r3 | s8 | s9 | r3 | r3 | |||||
| 3 | r6 | r6 | r6 | r6 | r6 | r6 | |||||
| 4 | s5 | s4 | 10 | 2 | 3 |
You can see the code for doing this process by clicking here .