0 $accept : %entry% $end 1 program : declaration SEMI program 2 | expression SEMI program 3 | SEMI program 4 | EOF 5 declaration : LET IDENT EQUAL expression 6 expression : simpexp 7 | application 8 simpexp : IDENT 9 | INT 10 | LPAREN expression RPAREN 11 | abstraction 12 abstraction : LAMBDA IDENT DOT expression 13 application : application simpexp 14 | simpexp simpexp 15 %entry% : '\001' program state 0 $accept : . %entry% $end (0) '\001' shift 1 . error %entry% goto 2 state 1 %entry% : '\001' . program (15) INT shift 3 IDENT shift 4 LET shift 5 LAMBDA shift 6 LPAREN shift 7 EOF shift 8 SEMI shift 9 . error program goto 10 declaration goto 11 expression goto 12 simpexp goto 13 application goto 14 abstraction goto 15 state 2 $accept : %entry% . $end (0) $end accept state 3 simpexp : INT . (9) . reduce 9 state 4 simpexp : IDENT . (8) . reduce 8 state 5 declaration : LET . IDENT EQUAL expression (5) IDENT shift 16 . error state 6 abstraction : LAMBDA . IDENT DOT expression (12) IDENT shift 17 . error state 7 simpexp : LPAREN . expression RPAREN (10) INT shift 3 IDENT shift 4 LAMBDA shift 6 LPAREN shift 7 . error expression goto 18 simpexp goto 13 application goto 14 abstraction goto 15 state 8 program : EOF . (4) . reduce 4 state 9 program : SEMI . program (3) INT shift 3 IDENT shift 4 LET shift 5 LAMBDA shift 6 LPAREN shift 7 EOF shift 8 SEMI shift 9 . error program goto 19 declaration goto 11 expression goto 12 simpexp goto 13 application goto 14 abstraction goto 15 state 10 %entry% : '\001' program . (15) . reduce 15 state 11 program : declaration . SEMI program (1) SEMI shift 20 . error state 12 program : expression . SEMI program (2) SEMI shift 21 . error 13: shift/reduce conflict (shift 3, reduce 6) on INT 13: shift/reduce conflict (shift 4, reduce 6) on IDENT 13: shift/reduce conflict (shift 6, reduce 6) on LAMBDA 13: shift/reduce conflict (shift 7, reduce 6) on LPAREN state 13 expression : simpexp . (6) application : simpexp . simpexp (14) INT shift 3 IDENT shift 4 LAMBDA shift 6 LPAREN shift 7 RPAREN reduce 6 SEMI reduce 6 simpexp goto 22 abstraction goto 15 14: shift/reduce conflict (shift 3, reduce 7) on INT 14: shift/reduce conflict (shift 4, reduce 7) on IDENT 14: shift/reduce conflict (shift 6, reduce 7) on LAMBDA 14: shift/reduce conflict (shift 7, reduce 7) on LPAREN state 14 expression : application . (7) application : application . simpexp (13) INT shift 3 IDENT shift 4 LAMBDA shift 6 LPAREN shift 7 RPAREN reduce 7 SEMI reduce 7 simpexp goto 23 abstraction goto 15 state 15 simpexp : abstraction . (11) . reduce 11 state 16 declaration : LET IDENT . EQUAL expression (5) EQUAL shift 24 . error state 17 abstraction : LAMBDA IDENT . DOT expression (12) DOT shift 25 . error state 18 simpexp : LPAREN expression . RPAREN (10) RPAREN shift 26 . error state 19 program : SEMI program . (3) . reduce 3 state 20 program : declaration SEMI . program (1) INT shift 3 IDENT shift 4 LET shift 5 LAMBDA shift 6 LPAREN shift 7 EOF shift 8 SEMI shift 9 . error program goto 27 declaration goto 11 expression goto 12 simpexp goto 13 application goto 14 abstraction goto 15 state 21 program : expression SEMI . program (2) INT shift 3 IDENT shift 4 LET shift 5 LAMBDA shift 6 LPAREN shift 7 EOF shift 8 SEMI shift 9 . error program goto 28 declaration goto 11 expression goto 12 simpexp goto 13 application goto 14 abstraction goto 15 state 22 application : simpexp simpexp . (14) . reduce 14 state 23 application : application simpexp . (13) . reduce 13 state 24 declaration : LET IDENT EQUAL . expression (5) INT shift 3 IDENT shift 4 LAMBDA shift 6 LPAREN shift 7 . error expression goto 29 simpexp goto 13 application goto 14 abstraction goto 15 state 25 abstraction : LAMBDA IDENT DOT . expression (12) INT shift 3 IDENT shift 4 LAMBDA shift 6 LPAREN shift 7 . error expression goto 30 simpexp goto 13 application goto 14 abstraction goto 15 state 26 simpexp : LPAREN expression RPAREN . (10) . reduce 10 state 27 program : declaration SEMI program . (1) . reduce 1 state 28 program : expression SEMI program . (2) . reduce 2 state 29 declaration : LET IDENT EQUAL expression . (5) . reduce 5 state 30 abstraction : LAMBDA IDENT DOT expression . (12) . reduce 12 State 13 contains 4 shift/reduce conflicts. State 14 contains 4 shift/reduce conflicts. 13 terminals, 8 nonterminals 16 grammar rules, 31 states