packages feed

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