0 $accept : S $end 1 S : 'a' 'b' A 'b' 2 | A 'c' 3 A : 'a' state 0 $accept : . S $end (0) 'a' shift 1 . error S goto 2 A goto 3 state 1 S : 'a' . 'b' A 'b' (1) A : 'a' . (3) 'b' shift 4 'c' reduce 3 state 2 $accept : S . $end (0) $end accept state 3 S : A . 'c' (2) 'c' shift 5 . error state 4 S : 'a' 'b' . A 'b' (1) 'a' shift 6 . error A goto 7 state 5 S : A 'c' . (2) . reduce 2 state 6 A : 'a' . (3) . reduce 3 state 7 S : 'a' 'b' A . 'b' (1) 'b' shift 8 . error state 8 S : 'a' 'b' A 'b' . (1) . reduce 1 5 terminals, 3 nonterminals 4 grammar rules, 9 states