Grammar:
 f -> <6> LPAREN e(expr) RPAREN    {  v = expr;  }
    | <7> NUM(n)    {  v = n.value;  }
    | <8> ID NUM(n)    {  v = n.value;  };
 t -> <3> t(term) MUL f(factor)    {  v = term * factor;  }
    | <4> t(term) DIV f(factor)    {  v = term / factor;  }
    | <5> f(factor)    {  v = factor;  };
 e -> <0> e(expr) PLUS t(term)    {  v = expr + term;  }
    | <1> e(expr) MINUS t(term)    {  v = expr - term;  }
    | <2> t(term)    {  v = term;  };
Se' -> <9> e;

First sets:
FIRST(f) = {ID, LPAREN, NUM}
FIRST(t) = {ID, LPAREN, NUM}
FIRST(e) = {ID, LPAREN, NUM}
FIRST(e') = {ID, LPAREN, NUM}

Follow sets:
FOLLOW(f) = {DIV, EOF, PLUS, MUL, MINUS, RPAREN}
FOLLOW(t) = {DIV, EOF, PLUS, MUL, MINUS, RPAREN}
FOLLOW(e) = {EOF, PLUS, MINUS, RPAREN}
FOLLOW(e') = {EOF}

Automation:
Non-terminal count: 3
Terminal count: 9
State count: 18 (0 - 17)

Action table:
STATE |    DIV |    MUL |    NUM | LPAREN | RPAREN |     ID |   PLUS |  MINUS |    EOF
   0  | ------ | ------ |     s5 |     s4 | ------ |     s1 | ------ | ------ | ------
   1  | ------ | ------ |     s7 | ------ | ------ | ------ | ------ | ------ | ------
   2  |     r5 |     r5 | ------ | ------ |     r5 | ------ |     r5 |     r5 |     r5
   3  |     s8 |     s9 | ------ | ------ |     r2 | ------ |     r2 |     r2 |     r2
   4  | ------ | ------ |     s5 |     s4 | ------ |     s1 | ------ | ------ | ------
   5  |     r7 |     r7 | ------ | ------ |     r7 | ------ |     r7 |     r7 |     r7
   6  | ------ | ------ | ------ | ------ | ------ | ------ |    s11 |    s12 | accept
   7  |     r8 |     r8 | ------ | ------ |     r8 | ------ |     r8 |     r8 |     r8
   8  | ------ | ------ |     s5 |     s4 | ------ |     s1 | ------ | ------ | ------
   9  | ------ | ------ |     s5 |     s4 | ------ |     s1 | ------ | ------ | ------
  10  | ------ | ------ | ------ | ------ |    s15 | ------ |    s11 |    s12 | ------
  11  | ------ | ------ |     s5 |     s4 | ------ |     s1 | ------ | ------ | ------
  12  | ------ | ------ |     s5 |     s4 | ------ |     s1 | ------ | ------ | ------
  13  |     r4 |     r4 | ------ | ------ |     r4 | ------ |     r4 |     r4 |     r4
  14  |     r3 |     r3 | ------ | ------ |     r3 | ------ |     r3 |     r3 |     r3
  15  |     r6 |     r6 | ------ | ------ |     r6 | ------ |     r6 |     r6 |     r6
  16  |     s8 |     s9 | ------ | ------ |     r0 | ------ |     r0 |     r0 |     r0
  17  |     s8 |     s9 | ------ | ------ |     r1 | ------ |     r1 |     r1 |     r1


Goto table:
STATE |     t |     e |     f
   0  |     3 |     6 |     2
   1  | ----- | ----- | -----
   2  | ----- | ----- | -----
   3  | ----- | ----- | -----
   4  |     3 |    10 |     2
   5  | ----- | ----- | -----
   6  | ----- | ----- | -----
   7  | ----- | ----- | -----
   8  | ----- | ----- |    13
   9  | ----- | ----- |    14
  10  | ----- | ----- | -----
  11  |    16 | ----- |     2
  12  |    17 | ----- |     2
  13  | ----- | ----- | -----
  14  | ----- | ----- | -----
  15  | ----- | ----- | -----
  16  | ----- | ----- | -----
  17  | ----- | ----- | -----


State 0:
    e' -> * e

State 1:
    f -> ID * NUM

State 2:
    t -> f *

State 3:
    e -> t *
    t -> t * DIV f
    t -> t * MUL f

State 4:
    f -> LPAREN * e RPAREN

State 5:
    f -> NUM *

State 6:
    e -> e * MINUS t
    e -> e * PLUS t
    e' -> e *

State 7:
    f -> ID NUM *

State 8:
    t -> t DIV * f

State 9:
    t -> t MUL * f

State 10:
    e -> e * MINUS t
    e -> e * PLUS t
    f -> LPAREN e * RPAREN

State 11:
    e -> e PLUS * t

State 12:
    e -> e MINUS * t

State 13:
    t -> t DIV f *

State 14:
    t -> t MUL f *

State 15:
    f -> LPAREN e RPAREN *

State 16:
    e -> e PLUS t *
    t -> t * DIV f
    t -> t * MUL f

State 17:
    e -> e MINUS t *
    t -> t * DIV f
    t -> t * MUL f
