Agda-2.3.2.2: src/prototyping/termrep/happy.out
-----------------------------------------------------------------------------
Info file generated by Happy Version 1.18.6 from Syntax/Par.y
-----------------------------------------------------------------------------
terminal L_err is unused
-----------------------------------------------------------------------------
Grammar
-----------------------------------------------------------------------------
%start_pProgram -> Program (0)
%start_pDecls -> Decls (1)
%start_pDecl -> Decl (2)
%start_pListDecl -> ListDecl (3)
%start_pListIdent -> ListIdent (4)
%start_pExpr -> Expr (5)
%start_pExpr1 -> Expr1 (6)
%start_pExpr2 -> Expr2 (7)
Ident -> L_ident (8)
Program -> Decls (9)
Decls -> Decl ';' Decls (10)
Decls -> Decl ';' (11)
Decl -> Ident ':' Expr '=' Expr (12)
Decl -> Ident ':' Expr (13)
ListDecl -> Decl (14)
ListDecl -> Decl ';' ListDecl (15)
ListIdent -> Ident (16)
ListIdent -> Ident ListIdent (17)
Expr -> '\\' Expr1 '->' Expr (18)
Expr -> '(' Expr1 ':' Expr ')' '->' Expr (19)
Expr -> '[' Expr1 ':' Expr ']' '->' Expr (20)
Expr -> '(' Expr1 ':' Expr ')' '*' Expr (21)
Expr -> 'let' '{' ListDecl '}' 'in' Expr (22)
Expr -> Expr1 '->' Expr (23)
Expr -> Expr1 (24)
Expr1 -> Expr1 Expr2 (25)
Expr1 -> Expr2 (26)
Expr2 -> '_' (27)
Expr2 -> Ident (28)
Expr2 -> '(' Expr ')' (29)
-----------------------------------------------------------------------------
Terminals
-----------------------------------------------------------------------------
'(' { PT _ (TS _ 1) }
')' { PT _ (TS _ 2) }
'*' { PT _ (TS _ 3) }
'->' { PT _ (TS _ 4) }
':' { PT _ (TS _ 5) }
';' { PT _ (TS _ 6) }
'=' { PT _ (TS _ 7) }
'[' { PT _ (TS _ 8) }
'\\' { PT _ (TS _ 9) }
']' { PT _ (TS _ 10) }
'_' { PT _ (TS _ 11) }
'in' { PT _ (TS _ 12) }
'let' { PT _ (TS _ 13) }
'{' { PT _ (TS _ 14) }
'}' { PT _ (TS _ 15) }
L_ident { PT _ (TV $$) }
L_err { _ }
-----------------------------------------------------------------------------
Non-terminals
-----------------------------------------------------------------------------
%start_pProgram rule 0
%start_pDecls rule 1
%start_pDecl rule 2
%start_pListDecl rule 3
%start_pListIdent rule 4
%start_pExpr rule 5
%start_pExpr1 rule 6
%start_pExpr2 rule 7
Ident rule 8
Program rule 9
Decls rules 10, 11
Decl rules 12, 13
ListDecl rules 14, 15
ListIdent rules 16, 17
Expr rules 18, 19, 20, 21, 22, 23, 24
Expr1 rules 25, 26
Expr2 rules 27, 28, 29
-----------------------------------------------------------------------------
States
-----------------------------------------------------------------------------
State 0
L_ident shift, and enter state 9
Ident goto state 24
Program goto state 30
Decls goto state 31
Decl goto state 29
State 1
L_ident shift, and enter state 9
Ident goto state 24
Decls goto state 28
Decl goto state 29
State 2
L_ident shift, and enter state 9
Ident goto state 24
Decl goto state 27
State 3
L_ident shift, and enter state 9
Ident goto state 24
Decl goto state 25
ListDecl goto state 26
State 4
L_ident shift, and enter state 9
Ident goto state 22
ListIdent goto state 23
State 5
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 16
Expr1 goto state 17
Expr2 goto state 15
State 6
'(' shift, and enter state 12
'_' shift, and enter state 13
L_ident shift, and enter state 9
Ident goto state 10
Expr1 goto state 14
Expr2 goto state 15
State 7
'(' shift, and enter state 12
'_' shift, and enter state 13
L_ident shift, and enter state 9
Ident goto state 10
Expr2 goto state 11
State 8
L_ident shift, and enter state 9
State 9
Ident -> L_ident . (rule 8)
'(' reduce using rule 8
')' reduce using rule 8
'->' reduce using rule 8
':' reduce using rule 8
';' reduce using rule 8
'=' reduce using rule 8
']' reduce using rule 8
'_' reduce using rule 8
'}' reduce using rule 8
L_ident reduce using rule 8
%eof reduce using rule 8
State 10
Expr2 -> Ident . (rule 28)
'(' reduce using rule 28
')' reduce using rule 28
'->' reduce using rule 28
':' reduce using rule 28
';' reduce using rule 28
'=' reduce using rule 28
']' reduce using rule 28
'_' reduce using rule 28
'}' reduce using rule 28
L_ident reduce using rule 28
%eof reduce using rule 28
State 11
%start_pExpr2 -> Expr2 . (rule 7)
%eof accept
State 12
Expr2 -> '(' . Expr ')' (rule 29)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 39
Expr1 goto state 17
Expr2 goto state 15
State 13
Expr2 -> '_' . (rule 27)
'(' reduce using rule 27
')' reduce using rule 27
'->' reduce using rule 27
':' reduce using rule 27
';' reduce using rule 27
'=' reduce using rule 27
']' reduce using rule 27
'_' reduce using rule 27
'}' reduce using rule 27
L_ident reduce using rule 27
%eof reduce using rule 27
State 14
%start_pExpr1 -> Expr1 . (rule 6)
Expr1 -> Expr1 . Expr2 (rule 25)
'(' shift, and enter state 12
'_' shift, and enter state 13
L_ident shift, and enter state 9
%eof accept
Ident goto state 10
Expr2 goto state 41
State 15
Expr1 -> Expr2 . (rule 26)
'(' reduce using rule 26
')' reduce using rule 26
'->' reduce using rule 26
':' reduce using rule 26
';' reduce using rule 26
'=' reduce using rule 26
']' reduce using rule 26
'_' reduce using rule 26
'}' reduce using rule 26
L_ident reduce using rule 26
%eof reduce using rule 26
State 16
%start_pExpr -> Expr . (rule 5)
%eof accept
State 17
Expr -> Expr1 . '->' Expr (rule 23)
Expr -> Expr1 . (rule 24)
Expr1 -> Expr1 . Expr2 (rule 25)
'(' shift, and enter state 12
')' reduce using rule 24
'->' shift, and enter state 42
';' reduce using rule 24
'=' reduce using rule 24
']' reduce using rule 24
'_' shift, and enter state 13
'}' reduce using rule 24
L_ident shift, and enter state 9
%eof reduce using rule 24
Ident goto state 10
Expr2 goto state 41
State 18
Expr -> '(' . Expr1 ':' Expr ')' '->' Expr (rule 19)
Expr -> '(' . Expr1 ':' Expr ')' '*' Expr (rule 21)
Expr2 -> '(' . Expr ')' (rule 29)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 39
Expr1 goto state 40
Expr2 goto state 15
State 19
Expr -> '[' . Expr1 ':' Expr ']' '->' Expr (rule 20)
'(' shift, and enter state 12
'_' shift, and enter state 13
L_ident shift, and enter state 9
Ident goto state 10
Expr1 goto state 38
Expr2 goto state 15
State 20
Expr -> '\\' . Expr1 '->' Expr (rule 18)
'(' shift, and enter state 12
'_' shift, and enter state 13
L_ident shift, and enter state 9
Ident goto state 10
Expr1 goto state 37
Expr2 goto state 15
State 21
Expr -> 'let' . '{' ListDecl '}' 'in' Expr (rule 22)
'{' shift, and enter state 36
State 22
ListIdent -> Ident . (rule 16)
ListIdent -> Ident . ListIdent (rule 17)
L_ident shift, and enter state 9
%eof reduce using rule 16
Ident goto state 22
ListIdent goto state 35
State 23
%start_pListIdent -> ListIdent . (rule 4)
%eof accept
State 24
Decl -> Ident . ':' Expr '=' Expr (rule 12)
Decl -> Ident . ':' Expr (rule 13)
':' shift, and enter state 34
State 25
ListDecl -> Decl . (rule 14)
ListDecl -> Decl . ';' ListDecl (rule 15)
';' shift, and enter state 33
'}' reduce using rule 14
%eof reduce using rule 14
State 26
%start_pListDecl -> ListDecl . (rule 3)
%eof accept
State 27
%start_pDecl -> Decl . (rule 2)
%eof accept
State 28
%start_pDecls -> Decls . (rule 1)
%eof accept
State 29
Decls -> Decl . ';' Decls (rule 10)
Decls -> Decl . ';' (rule 11)
';' shift, and enter state 32
State 30
%start_pProgram -> Program . (rule 0)
%eof accept
State 31
Program -> Decls . (rule 9)
%eof reduce using rule 9
State 32
Decls -> Decl ';' . Decls (rule 10)
Decls -> Decl ';' . (rule 11)
L_ident shift, and enter state 9
%eof reduce using rule 11
Ident goto state 24
Decls goto state 51
Decl goto state 29
State 33
ListDecl -> Decl ';' . ListDecl (rule 15)
L_ident shift, and enter state 9
Ident goto state 24
Decl goto state 25
ListDecl goto state 50
State 34
Decl -> Ident ':' . Expr '=' Expr (rule 12)
Decl -> Ident ':' . Expr (rule 13)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 49
Expr1 goto state 17
Expr2 goto state 15
State 35
ListIdent -> Ident ListIdent . (rule 17)
%eof reduce using rule 17
State 36
Expr -> 'let' '{' . ListDecl '}' 'in' Expr (rule 22)
L_ident shift, and enter state 9
Ident goto state 24
Decl goto state 25
ListDecl goto state 48
State 37
Expr -> '\\' Expr1 . '->' Expr (rule 18)
Expr1 -> Expr1 . Expr2 (rule 25)
'(' shift, and enter state 12
'->' shift, and enter state 47
'_' shift, and enter state 13
L_ident shift, and enter state 9
Ident goto state 10
Expr2 goto state 41
State 38
Expr -> '[' Expr1 . ':' Expr ']' '->' Expr (rule 20)
Expr1 -> Expr1 . Expr2 (rule 25)
'(' shift, and enter state 12
':' shift, and enter state 46
'_' shift, and enter state 13
L_ident shift, and enter state 9
Ident goto state 10
Expr2 goto state 41
State 39
Expr2 -> '(' Expr . ')' (rule 29)
')' shift, and enter state 45
State 40
Expr -> '(' Expr1 . ':' Expr ')' '->' Expr (rule 19)
Expr -> '(' Expr1 . ':' Expr ')' '*' Expr (rule 21)
Expr -> Expr1 . '->' Expr (rule 23)
Expr -> Expr1 . (rule 24)
Expr1 -> Expr1 . Expr2 (rule 25)
'(' shift, and enter state 12
')' reduce using rule 24
'->' shift, and enter state 42
':' shift, and enter state 44
'_' shift, and enter state 13
L_ident shift, and enter state 9
Ident goto state 10
Expr2 goto state 41
State 41
Expr1 -> Expr1 Expr2 . (rule 25)
'(' reduce using rule 25
')' reduce using rule 25
'->' reduce using rule 25
':' reduce using rule 25
';' reduce using rule 25
'=' reduce using rule 25
']' reduce using rule 25
'_' reduce using rule 25
'}' reduce using rule 25
L_ident reduce using rule 25
%eof reduce using rule 25
State 42
Expr -> Expr1 '->' . Expr (rule 23)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 43
Expr1 goto state 17
Expr2 goto state 15
State 43
Expr -> Expr1 '->' Expr . (rule 23)
')' reduce using rule 23
';' reduce using rule 23
'=' reduce using rule 23
']' reduce using rule 23
'}' reduce using rule 23
%eof reduce using rule 23
State 44
Expr -> '(' Expr1 ':' . Expr ')' '->' Expr (rule 19)
Expr -> '(' Expr1 ':' . Expr ')' '*' Expr (rule 21)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 56
Expr1 goto state 17
Expr2 goto state 15
State 45
Expr2 -> '(' Expr ')' . (rule 29)
'(' reduce using rule 29
')' reduce using rule 29
'->' reduce using rule 29
':' reduce using rule 29
';' reduce using rule 29
'=' reduce using rule 29
']' reduce using rule 29
'_' reduce using rule 29
'}' reduce using rule 29
L_ident reduce using rule 29
%eof reduce using rule 29
State 46
Expr -> '[' Expr1 ':' . Expr ']' '->' Expr (rule 20)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 55
Expr1 goto state 17
Expr2 goto state 15
State 47
Expr -> '\\' Expr1 '->' . Expr (rule 18)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 54
Expr1 goto state 17
Expr2 goto state 15
State 48
Expr -> 'let' '{' ListDecl . '}' 'in' Expr (rule 22)
'}' shift, and enter state 53
State 49
Decl -> Ident ':' Expr . '=' Expr (rule 12)
Decl -> Ident ':' Expr . (rule 13)
';' reduce using rule 13
'=' shift, and enter state 52
'}' reduce using rule 13
%eof reduce using rule 13
State 50
ListDecl -> Decl ';' ListDecl . (rule 15)
'}' reduce using rule 15
%eof reduce using rule 15
State 51
Decls -> Decl ';' Decls . (rule 10)
%eof reduce using rule 10
State 52
Decl -> Ident ':' Expr '=' . Expr (rule 12)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 60
Expr1 goto state 17
Expr2 goto state 15
State 53
Expr -> 'let' '{' ListDecl '}' . 'in' Expr (rule 22)
'in' shift, and enter state 59
State 54
Expr -> '\\' Expr1 '->' Expr . (rule 18)
')' reduce using rule 18
';' reduce using rule 18
'=' reduce using rule 18
']' reduce using rule 18
'}' reduce using rule 18
%eof reduce using rule 18
State 55
Expr -> '[' Expr1 ':' Expr . ']' '->' Expr (rule 20)
']' shift, and enter state 58
State 56
Expr -> '(' Expr1 ':' Expr . ')' '->' Expr (rule 19)
Expr -> '(' Expr1 ':' Expr . ')' '*' Expr (rule 21)
')' shift, and enter state 57
State 57
Expr -> '(' Expr1 ':' Expr ')' . '->' Expr (rule 19)
Expr -> '(' Expr1 ':' Expr ')' . '*' Expr (rule 21)
'*' shift, and enter state 63
'->' shift, and enter state 64
State 58
Expr -> '[' Expr1 ':' Expr ']' . '->' Expr (rule 20)
'->' shift, and enter state 62
State 59
Expr -> 'let' '{' ListDecl '}' 'in' . Expr (rule 22)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 61
Expr1 goto state 17
Expr2 goto state 15
State 60
Decl -> Ident ':' Expr '=' Expr . (rule 12)
';' reduce using rule 12
'}' reduce using rule 12
%eof reduce using rule 12
State 61
Expr -> 'let' '{' ListDecl '}' 'in' Expr . (rule 22)
')' reduce using rule 22
';' reduce using rule 22
'=' reduce using rule 22
']' reduce using rule 22
'}' reduce using rule 22
%eof reduce using rule 22
State 62
Expr -> '[' Expr1 ':' Expr ']' '->' . Expr (rule 20)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 67
Expr1 goto state 17
Expr2 goto state 15
State 63
Expr -> '(' Expr1 ':' Expr ')' '*' . Expr (rule 21)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 66
Expr1 goto state 17
Expr2 goto state 15
State 64
Expr -> '(' Expr1 ':' Expr ')' '->' . Expr (rule 19)
'(' shift, and enter state 18
'[' shift, and enter state 19
'\\' shift, and enter state 20
'_' shift, and enter state 13
'let' shift, and enter state 21
L_ident shift, and enter state 9
Ident goto state 10
Expr goto state 65
Expr1 goto state 17
Expr2 goto state 15
State 65
Expr -> '(' Expr1 ':' Expr ')' '->' Expr . (rule 19)
')' reduce using rule 19
';' reduce using rule 19
'=' reduce using rule 19
']' reduce using rule 19
'}' reduce using rule 19
%eof reduce using rule 19
State 66
Expr -> '(' Expr1 ':' Expr ')' '*' Expr . (rule 21)
')' reduce using rule 21
';' reduce using rule 21
'=' reduce using rule 21
']' reduce using rule 21
'}' reduce using rule 21
%eof reduce using rule 21
State 67
Expr -> '[' Expr1 ':' Expr ']' '->' Expr . (rule 20)
')' reduce using rule 20
';' reduce using rule 20
'=' reduce using rule 20
']' reduce using rule 20
'}' reduce using rule 20
%eof reduce using rule 20
-----------------------------------------------------------------------------
Grammar Totals
-----------------------------------------------------------------------------
Number of rules: 30
Number of terminals: 17
Number of non-terminals: 17
Number of states: 68