FIRST / FOLLOW table |
---|
Nonterminal | FIRST | FOLLOW |
---|
E' | {(,id} | {$} | E | {(,id} | {$,+,)} | T | {(,id} | {$,+,*,)} | F | {(,id} | {$,+,*,)} |
|
|
SLR closure table |
---|
Goto | Kernel | State | Closure |
---|
| {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 |
---|
State | ACTION | GOTO |
+ | * | ( | ) | id | $ | E' | E | T | F |
---|
0 | | | s4 | | s5 | | | 1 | 2 | 3 |
1 | s6 | | | | | acc | | | | |
2 | r2 | s7 | | r2 | | r2 | | | | |
3 | r4 | r4 | | r4 | | r4 | | | | |
4 | | | s4 | | s5 | | | 8 | 2 | 3 |
5 | r6 | r6 | | r6 | | r6 | | | | |
6 | | | s4 | | s5 | | | | 9 | 3 |
7 | | | s4 | | s5 | | | | | 10 |
8 | s6 | | | s11 | | | | | | |
9 | r1 | s7 | | r1 | | r1 | | | | |
10 | r3 | r3 | | r3 | | r3 | | | | |
11 | r5 | r5 | | r5 | | r5 | | | | |
|
|
|