0 $accept : %entry% $end 1 start : expr EOF 2 expr : IDENT 3 | INT 4 | NOT expr 5 | SUB expr 6 | expr ADD expr 7 | expr SUB expr 8 | expr MUL expr 9 | LPAREN expr RPAREN 10 | expr expr 11 %entry% : '\001' start state 0 $accept : . %entry% $end (0) '\001' shift 1 . error %entry% goto 2 state 1 %entry% : '\001' . start (11) INT shift 3 IDENT shift 4 SUB shift 5 NOT shift 6 LPAREN shift 7 . error start goto 8 expr goto 9 state 2 $accept : %entry% . $end (0) $end accept state 3 expr : INT . (3) . reduce 3 state 4 expr : IDENT . (2) . reduce 2 state 5 expr : SUB . expr (5) INT shift 3 IDENT shift 4 SUB shift 5 NOT shift 6 LPAREN shift 7 . error expr goto 10 state 6 expr : NOT . expr (4) INT shift 3 IDENT shift 4 SUB shift 5 NOT shift 6 LPAREN shift 7 . error expr goto 11 state 7 expr : LPAREN . expr RPAREN (9) INT shift 3 IDENT shift 4 SUB shift 5 NOT shift 6 LPAREN shift 7 . error expr goto 12 state 8 %entry% : '\001' start . (11) . reduce 11 state 9 start : expr . EOF (1) expr : expr . ADD expr (6) expr : expr . SUB expr (7) expr : expr . MUL expr (8) expr : expr . expr (10) INT shift 3 IDENT shift 4 EOF shift 13 ADD shift 14 SUB shift 15 MUL shift 16 NOT shift 6 LPAREN shift 7 . error expr goto 17 10: shift/reduce conflict (shift 3, reduce 5) on INT 10: shift/reduce conflict (shift 4, reduce 5) on IDENT 10: shift/reduce conflict (shift 7, reduce 5) on LPAREN state 10 expr : SUB expr . (5) expr : expr . ADD expr (6) expr : expr . SUB expr (7) expr : expr . MUL expr (8) expr : expr . expr (10) INT shift 3 IDENT shift 4 LPAREN shift 7 EOF reduce 5 ADD reduce 5 SUB reduce 5 MUL reduce 5 NOT reduce 5 RPAREN reduce 5 expr goto 17 11: shift/reduce conflict (shift 3, reduce 4) on INT 11: shift/reduce conflict (shift 4, reduce 4) on IDENT 11: shift/reduce conflict (shift 7, reduce 4) on LPAREN state 11 expr : NOT expr . (4) expr : expr . ADD expr (6) expr : expr . SUB expr (7) expr : expr . MUL expr (8) expr : expr . expr (10) INT shift 3 IDENT shift 4 LPAREN shift 7 EOF reduce 4 ADD reduce 4 SUB reduce 4 MUL reduce 4 RPAREN reduce 4 expr goto 17 state 12 expr : expr . ADD expr (6) expr : expr . SUB expr (7) expr : expr . MUL expr (8) expr : LPAREN expr . RPAREN (9) expr : expr . expr (10) INT shift 3 IDENT shift 4 ADD shift 14 SUB shift 15 MUL shift 16 NOT shift 6 LPAREN shift 7 RPAREN shift 18 . error expr goto 17 state 13 start : expr EOF . (1) . reduce 1 state 14 expr : expr ADD . expr (6) INT shift 3 IDENT shift 4 SUB shift 5 NOT shift 6 LPAREN shift 7 . error expr goto 19 state 15 expr : SUB . expr (5) expr : expr SUB . expr (7) INT shift 3 IDENT shift 4 SUB shift 5 NOT shift 6 LPAREN shift 7 . error expr goto 20 state 16 expr : expr MUL . expr (8) INT shift 3 IDENT shift 4 SUB shift 5 NOT shift 6 LPAREN shift 7 . error expr goto 21 17: shift/reduce conflict (shift 3, reduce 10) on INT 17: shift/reduce conflict (shift 4, reduce 10) on IDENT 17: shift/reduce conflict (shift 14, reduce 10) on ADD 17: shift/reduce conflict (shift 15, reduce 10) on SUB 17: shift/reduce conflict (shift 16, reduce 10) on MUL 17: shift/reduce conflict (shift 6, reduce 10) on NOT 17: shift/reduce conflict (shift 7, reduce 10) on LPAREN state 17 expr : expr . ADD expr (6) expr : expr . SUB expr (7) expr : expr . MUL expr (8) expr : expr . expr (10) expr : expr expr . (10) INT shift 3 IDENT shift 4 ADD shift 14 SUB shift 15 MUL shift 16 NOT shift 6 LPAREN shift 7 EOF reduce 10 RPAREN reduce 10 expr goto 17 state 18 expr : LPAREN expr RPAREN . (9) . reduce 9 19: shift/reduce conflict (shift 3, reduce 6) on INT 19: shift/reduce conflict (shift 4, reduce 6) on IDENT 19: shift/reduce conflict (shift 7, reduce 6) on LPAREN state 19 expr : expr . ADD expr (6) expr : expr ADD expr . (6) expr : expr . SUB expr (7) expr : expr . MUL expr (8) expr : expr . expr (10) INT shift 3 IDENT shift 4 MUL shift 16 NOT shift 6 LPAREN shift 7 EOF reduce 6 ADD reduce 6 SUB reduce 6 RPAREN reduce 6 expr goto 17 20: shift/reduce conflict (shift 3, reduce 5) on INT 20: shift/reduce conflict (shift 3, reduce 7) on INT 20: shift/reduce conflict (shift 4, reduce 5) on IDENT 20: shift/reduce conflict (shift 4, reduce 7) on IDENT 20: reduce/reduce conflict (reduce 5, reduce 7) on EOF 20: reduce/reduce conflict (reduce 5, reduce 7) on ADD 20: reduce/reduce conflict (reduce 5, reduce 7) on SUB 20: reduce/reduce conflict (reduce 5, reduce 7) on MUL 20: reduce/reduce conflict (reduce 5, reduce 7) on NOT 20: shift/reduce conflict (shift 7, reduce 5) on LPAREN 20: shift/reduce conflict (shift 7, reduce 7) on LPAREN 20: reduce/reduce conflict (reduce 5, reduce 7) on RPAREN state 20 expr : SUB expr . (5) expr : expr . ADD expr (6) expr : expr . SUB expr (7) expr : expr SUB expr . (7) expr : expr . MUL expr (8) expr : expr . expr (10) INT shift 3 IDENT shift 4 LPAREN shift 7 EOF reduce 5 ADD reduce 5 SUB reduce 5 MUL reduce 5 NOT reduce 5 RPAREN reduce 5 expr goto 17 21: shift/reduce conflict (shift 3, reduce 8) on INT 21: shift/reduce conflict (shift 4, reduce 8) on IDENT 21: shift/reduce conflict (shift 7, reduce 8) on LPAREN state 21 expr : expr . ADD expr (6) expr : expr . SUB expr (7) expr : expr . MUL expr (8) expr : expr MUL expr . (8) expr : expr . expr (10) INT shift 3 IDENT shift 4 NOT shift 6 LPAREN shift 7 EOF reduce 8 ADD reduce 8 SUB reduce 8 MUL reduce 8 RPAREN reduce 8 expr goto 17 Rules never reduced: expr : expr SUB expr (7) State 10 contains 3 shift/reduce conflicts. State 11 contains 3 shift/reduce conflicts. State 17 contains 7 shift/reduce conflicts. State 19 contains 3 shift/reduce conflicts. State 20 contains 6 shift/reduce conflicts, 6 reduce/reduce conflicts. State 21 contains 3 shift/reduce conflicts. 14 terminals, 4 nonterminals 12 grammar rules, 22 states