Skip to content
Snippets Groups Projects
Select Git revision
  • db44722d9130dd0fac3bb1a722e0f195739f0367
  • master default protected
  • sub1_resubmit
  • resubmit
  • stack
  • newSematics
6 results

Parser.hs

  • Parser.hs 41.85 KiB
    {-# OPTIONS_GHC -w #-}
    module Parser where
    import Lexer
    import Types
    import CSV
    import qualified Data.Array as Happy_Data_Array
    import qualified Data.Bits as Bits
    import Control.Applicative(Applicative(..))
    import Control.Monad (ap)
    
    -- parser produced by Happy Version 1.20.0
    
    data HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13
    	= HappyTerminal (Token)
    	| HappyErrorToken Prelude.Int
    	| HappyAbsSyn4 t4
    	| HappyAbsSyn5 t5
    	| HappyAbsSyn6 t6
    	| HappyAbsSyn7 t7
    	| HappyAbsSyn8 t8
    	| HappyAbsSyn9 t9
    	| HappyAbsSyn10 t10
    	| HappyAbsSyn11 t11
    	| HappyAbsSyn12 t12
    	| HappyAbsSyn13 t13
    
    happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int
    happyExpList = Happy_Data_Array.listArray (0,182) ([16384,0,0,0,2,0,0,64,0,0,0,0,0,0,0,0,16384,0,4,0,0,8,0,64,0,0,52000,33792,798,2048,0,0,0,0,0,0,0,0,0,6144,1557,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38464,2049,1597,0,1024,0,0,0,0,0,0,0,0,0,0,0,2304,0,0,22784,8198,6388,0,0,0,0,0,0,0,0,0,0,49152,12328,416,0,0,512,0,0,4096,0,8,0,0,35840,834,24,0,1,0,38464,2049,1597,45568,16396,12776,36864,101,36674,32769,812,31248,12,6500,53376,99,52000,33792,798,22784,8198,6388,51200,50,51105,16384,406,15624,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,4,0,0,34136,12294,0,0,0,32768,812,31248,12,0,16,0,0,2048,0,22784,8198,6388,51200,50,51105,16384,406,15624,6,6144,1541,50,0,0,0,0,0,0,0,1,0,0,2048,0,0,0,0,0,0,0,0,38464,2049,1597,0,1024,0,0,0,0,32768,812,31248,12,32768,0,0,52000,33792,798,0,0,0,51200,50,51105,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0
    	])
    
    {-# NOINLINE happyExpListPerState #-}
    happyExpListPerState st =
        token_strs_expected
      where token_strs = ["error","%dummy","%start_parseSource","Prog","SetDecl","SetDecls","Instructions","Expr","PredefFunc","SetNames","VarNames","Exprs","Nats","filter","in","out","SetName","Nat","PosNat","VarName","true","false","Str","'['","'{'","'}'","']'","\"->\"","\"==\"","\"/=\"","'('","')'","';'","':'","'\\\\'","','","'.'","'+'","x","map","xx","contains","isEmpty","let","if","else","then","'='","or","and","%eof"]
            bit_start = st Prelude.* 51
            bit_end = (st Prelude.+ 1) Prelude.* 51
            read_bit = readArrayBit happyExpList
            bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]
            bits_indexed = Prelude.zip bits [0..50]
            token_strs_expected = Prelude.concatMap f bits_indexed
            f (Prelude.False, _) = []
            f (Prelude.True, nr) = [token_strs Prelude.!! nr]
    
    action_0 (15) = happyShift action_2
    action_0 (4) = happyGoto action_3
    action_0 _ = happyFail (happyExpListPerState 0)
    
    action_1 (15) = happyShift action_2
    action_1 _ = happyFail (happyExpListPerState 1)
    
    action_2 (17) = happyShift action_6
    action_2 (5) = happyGoto action_4
    action_2 (6) = happyGoto action_5
    action_2 _ = happyFail (happyExpListPerState 2)
    
    action_3 (51) = happyAccept
    action_3 _ = happyFail (happyExpListPerState 3)
    
    action_4 _ = happyReduce_3
    
    action_5 (16) = happyShift action_8
    action_5 (36) = happyShift action_9
    action_5 _ = happyFail (happyExpListPerState 5)
    
    action_6 (34) = happyShift action_7
    action_6 _ = happyFail (happyExpListPerState 6)
    
    action_7 (18) = happyShift action_28
    action_7 _ = happyFail (happyExpListPerState 7)
    
    action_8 (14) = happyShift action_14
    action_8 (17) = happyShift action_15
    action_8 (18) = happyShift action_16
    action_8 (20) = happyShift action_17
    action_8 (23) = happyShift action_18
    action_8 (24) = happyShift action_19
    action_8 (35) = happyShift action_20
    action_8 (40) = happyShift action_21
    action_8 (42) = happyShift action_22
    action_8 (43) = happyShift action_23
    action_8 (44) = happyShift action_24
    action_8 (45) = happyShift action_25
    action_8 (49) = happyShift action_26
    action_8 (50) = happyShift action_27
    action_8 (7) = happyGoto action_11
    action_8 (8) = happyGoto action_12
    action_8 (9) = happyGoto action_13
    action_8 _ = happyFail (happyExpListPerState 8)
    
    action_9 (17) = happyShift action_6
    action_9 (5) = happyGoto action_10
    action_9 _ = happyFail (happyExpListPerState 9)
    
    action_10 _ = happyReduce_4
    
    action_11 _ = happyReduce_1
    
    action_12 (24) = happyShift action_35
    action_12 (25) = happyShift action_36
    action_12 (29) = happyShift action_37
    action_12 (31) = happyShift action_38
    action_12 (33) = happyShift action_39
    action_12 (38) = happyShift action_40
    action_12 (39) = happyShift action_41
    action_12 (49) = happyShift action_42
    action_12 (50) = happyShift action_43
    action_12 _ = happyFail (happyExpListPerState 12)
    
    action_13 _ = happyReduce_23
    
    action_14 _ = happyReduce_27
    
    action_15 _ = happyReduce_21
    
    action_16 _ = happyReduce_22
    
    action_17 _ = happyReduce_20
    
    action_18 _ = happyReduce_15
    
    action_19 (14) = happyShift action_14
    action_19 (17) = happyShift action_15
    action_19 (18) = happyShift action_16
    action_19 (20) = happyShift action_17
    action_19 (23) = happyShift action_18
    action_19 (24) = happyShift action_19
    action_19 (35) = happyShift action_20
    action_19 (40) = happyShift action_21
    action_19 (42) = happyShift action_22
    action_19 (43) = happyShift action_23
    action_19 (44) = happyShift action_24
    action_19 (45) = happyShift action_25
    action_19 (49) = happyShift action_26
    action_19 (50) = happyShift action_27
    action_19 (8) = happyGoto action_33
    action_19 (9) = happyGoto action_13
    action_19 (12) = happyGoto action_34
    action_19 _ = happyFail (happyExpListPerState 19)
    
    action_20 (31) = happyShift action_32
    action_20 _ = happyFail (happyExpListPerState 20)
    
    action_21 _ = happyReduce_30
    
    action_22 _ = happyReduce_28
    
    action_23 (24) = happyReduce_29
    action_23 (25) = happyReduce_29
    action_23 (26) = happyReduce_29
    action_23 (27) = happyReduce_29
    action_23 (29) = happyReduce_29
    action_23 (31) = happyReduce_29
    action_23 (32) = happyReduce_29
    action_23 (33) = happyReduce_29
    action_23 (36) = happyReduce_29
    action_23 (38) = happyReduce_29
    action_23 (39) = happyReduce_29
    action_23 (46) = happyReduce_29
    action_23 (47) = happyReduce_29
    action_23 (49) = happyReduce_29
    action_23 (50) = happyReduce_29
    action_23 _ = happyReduce_29
    
    action_24 (17) = happyShift action_30
    action_24 (20) = happyShift action_31
    action_24 _ = happyFail (happyExpListPerState 24)
    
    action_25 (14) = happyShift action_14
    action_25 (17) = happyShift action_15
    action_25 (18) = happyShift action_16
    action_25 (20) = happyShift action_17
    action_25 (23) = happyShift action_18
    action_25 (24) = happyShift action_19
    action_25 (35) = happyShift action_20
    action_25 (40) = happyShift action_21
    action_25 (42) = happyShift action_22
    action_25 (43) = happyShift action_23
    action_25 (44) = happyShift action_24
    action_25 (45) = happyShift action_25
    action_25 (49) = happyShift action_26
    action_25 (50) = happyShift action_27
    action_25 (8) = happyGoto action_29
    action_25 (9) = happyGoto action_13
    action_25 _ = happyFail (happyExpListPerState 25)
    
    action_26 _ = happyReduce_32
    
    action_27 _ = happyReduce_31
    
    action_28 _ = happyReduce_2
    
    action_29 (24) = happyShift action_35
    action_29 (25) = happyShift action_36
    action_29 (29) = happyShift action_37
    action_29 (31) = happyShift action_38
    action_29 (38) = happyShift action_40
    action_29 (39) = happyShift action_41
    action_29 (47) = happyShift action_59
    action_29 (49) = happyShift action_42
    action_29 (50) = happyShift action_43
    action_29 _ = happyFail (happyExpListPerState 29)
    
    action_30 (48) = happyShift action_58
    action_30 _ = happyFail (happyExpListPerState 30)
    
    action_31 (48) = happyShift action_57
    action_31 _ = happyFail (happyExpListPerState 31)
    
    action_32 (20) = happyShift action_56
    action_32 (11) = happyGoto action_55
    action_32 _ = happyFail (happyExpListPerState 32)
    
    action_33 (24) = happyShift action_35
    action_33 (25) = happyShift action_36
    action_33 (29) = happyShift action_37
    action_33 (31) = happyShift action_38
    action_33 (36) = happyShift action_54
    action_33 (38) = happyShift action_40
    action_33 (39) = happyShift action_41
    action_33 (49) = happyShift action_42
    action_33 (50) = happyShift action_43
    action_33 _ = happyReduce_37
    
    action_34 (27) = happyShift action_53
    action_34 _ = happyFail (happyExpListPerState 34)
    
    action_35 (14) = happyShift action_14
    action_35 (17) = happyShift action_15
    action_35 (18) = happyShift action_16
    action_35 (20) = happyShift action_17
    action_35 (23) = happyShift action_18
    action_35 (24) = happyShift action_19
    action_35 (35) = happyShift action_20
    action_35 (40) = happyShift action_21
    action_35 (42) = happyShift action_22
    action_35 (43) = happyShift action_23
    action_35 (44) = happyShift action_24
    action_35 (45) = happyShift action_25
    action_35 (49) = happyShift action_26
    action_35 (50) = happyShift action_27
    action_35 (8) = happyGoto action_52
    action_35 (9) = happyGoto action_13
    action_35 _ = happyFail (happyExpListPerState 35)
    
    action_36 (14) = happyShift action_14
    action_36 (17) = happyShift action_15
    action_36 (18) = happyShift action_16
    action_36 (20) = happyShift action_17
    action_36 (23) = happyShift action_18
    action_36 (24) = happyShift action_19
    action_36 (35) = happyShift action_20
    action_36 (40) = happyShift action_21
    action_36 (42) = happyShift action_22
    action_36 (43) = happyShift action_23
    action_36 (44) = happyShift action_24
    action_36 (45) = happyShift action_25
    action_36 (49) = happyShift action_26
    action_36 (50) = happyShift action_27
    action_36 (8) = happyGoto action_33
    action_36 (9) = happyGoto action_13
    action_36 (12) = happyGoto action_51
    action_36 _ = happyFail (happyExpListPerState 36)
    
    action_37 (14) = happyShift action_14
    action_37 (17) = happyShift action_15
    action_37 (18) = happyShift action_16
    action_37 (20) = happyShift action_17
    action_37 (23) = happyShift action_18
    action_37 (24) = happyShift action_19
    action_37 (35) = happyShift action_20
    action_37 (40) = happyShift action_21
    action_37 (42) = happyShift action_22
    action_37 (43) = happyShift action_23
    action_37 (44) = happyShift action_24
    action_37 (45) = happyShift action_25
    action_37 (49) = happyShift action_26
    action_37 (50) = happyShift action_27
    action_37 (8) = happyGoto action_50
    action_37 (9) = happyGoto action_13
    action_37 _ = happyFail (happyExpListPerState 37)
    
    action_38 (14) = happyShift action_14
    action_38 (17) = happyShift action_15
    action_38 (18) = happyShift action_16
    action_38 (20) = happyShift action_17
    action_38 (23) = happyShift action_18
    action_38 (24) = happyShift action_19
    action_38 (35) = happyShift action_20
    action_38 (40) = happyShift action_21
    action_38 (42) = happyShift action_22
    action_38 (43) = happyShift action_23
    action_38 (44) = happyShift action_24
    action_38 (45) = happyShift action_25
    action_38 (49) = happyShift action_26
    action_38 (50) = happyShift action_27
    action_38 (8) = happyGoto action_33
    action_38 (9) = happyGoto action_13
    action_38 (12) = happyGoto action_49
    action_38 _ = happyFail (happyExpListPerState 38)
    
    action_39 (14) = happyShift action_14
    action_39 (17) = happyShift action_15
    action_39 (18) = happyShift action_16
    action_39 (20) = happyShift action_17
    action_39 (23) = happyShift action_18
    action_39 (24) = happyShift action_19
    action_39 (35) = happyShift action_20
    action_39 (40) = happyShift action_21
    action_39 (42) = happyShift action_22
    action_39 (43) = happyShift action_23
    action_39 (44) = happyShift action_24
    action_39 (45) = happyShift action_25
    action_39 (49) = happyShift action_26
    action_39 (50) = happyShift action_27
    action_39 (7) = happyGoto action_48
    action_39 (8) = happyGoto action_12
    action_39 (9) = happyGoto action_13
    action_39 _ = happyReduce_5
    
    action_40 (14) = happyShift action_14
    action_40 (17) = happyShift action_15
    action_40 (18) = happyShift action_16
    action_40 (20) = happyShift action_17
    action_40 (23) = happyShift action_18
    action_40 (24) = happyShift action_19
    action_40 (35) = happyShift action_20
    action_40 (40) = happyShift action_21
    action_40 (42) = happyShift action_22
    action_40 (43) = happyShift action_23
    action_40 (44) = happyShift action_24
    action_40 (45) = happyShift action_25
    action_40 (49) = happyShift action_26
    action_40 (50) = happyShift action_27
    action_40 (8) = happyGoto action_47
    action_40 (9) = happyGoto action_13
    action_40 _ = happyFail (happyExpListPerState 40)
    
    action_41 (14) = happyShift action_14
    action_41 (17) = happyShift action_15
    action_41 (18) = happyShift action_16
    action_41 (20) = happyShift action_17
    action_41 (23) = happyShift action_18
    action_41 (24) = happyShift action_19
    action_41 (35) = happyShift action_20
    action_41 (40) = happyShift action_21
    action_41 (42) = happyShift action_22
    action_41 (43) = happyShift action_23
    action_41 (44) = happyShift action_24
    action_41 (45) = happyShift action_25
    action_41 (49) = happyShift action_26
    action_41 (50) = happyShift action_27
    action_41 (8) = happyGoto action_46
    action_41 (9) = happyGoto action_13
    action_41 _ = happyFail (happyExpListPerState 41)
    
    action_42 (14) = happyShift action_14
    action_42 (17) = happyShift action_15
    action_42 (18) = happyShift action_16
    action_42 (20) = happyShift action_17
    action_42 (23) = happyShift action_18
    action_42 (24) = happyShift action_19
    action_42 (35) = happyShift action_20
    action_42 (40) = happyShift action_21
    action_42 (42) = happyShift action_22
    action_42 (43) = happyShift action_23
    action_42 (44) = happyShift action_24
    action_42 (45) = happyShift action_25
    action_42 (49) = happyShift action_26
    action_42 (50) = happyShift action_27
    action_42 (8) = happyGoto action_45
    action_42 (9) = happyGoto action_13
    action_42 _ = happyFail (happyExpListPerState 42)
    
    action_43 (14) = happyShift action_14
    action_43 (17) = happyShift action_15
    action_43 (18) = happyShift action_16
    action_43 (20) = happyShift action_17
    action_43 (23) = happyShift action_18
    action_43 (24) = happyShift action_19
    action_43 (35) = happyShift action_20
    action_43 (40) = happyShift action_21
    action_43 (42) = happyShift action_22
    action_43 (43) = happyShift action_23
    action_43 (44) = happyShift action_24
    action_43 (45) = happyShift action_25
    action_43 (49) = happyShift action_26
    action_43 (50) = happyShift action_27
    action_43 (8) = happyGoto action_44
    action_43 (9) = happyGoto action_13
    action_43 _ = happyFail (happyExpListPerState 43)
    
    action_44 (24) = happyShift action_35
    action_44 (25) = happyShift action_36
    action_44 (29) = happyShift action_37
    action_44 (31) = happyShift action_38
    action_44 (38) = happyShift action_40
    action_44 (39) = happyShift action_41
    action_44 (49) = happyShift action_42
    action_44 (50) = happyShift action_43
    action_44 _ = happyReduce_25
    
    action_45 (24) = happyShift action_35
    action_45 (25) = happyShift action_36
    action_45 (29) = happyShift action_37
    action_45 (31) = happyShift action_38
    action_45 (38) = happyShift action_40
    action_45 (39) = happyShift action_41
    action_45 (49) = happyShift action_42
    action_45 (50) = happyShift action_43
    action_45 _ = happyReduce_24
    
    action_46 (24) = happyShift action_35
    action_46 (25) = happyShift action_36
    action_46 (29) = happyShift action_37
    action_46 (31) = happyShift action_38
    action_46 (38) = happyShift action_40
    action_46 (39) = happyShift action_41
    action_46 (49) = happyShift action_42
    action_46 (50) = happyShift action_43
    action_46 _ = happyReduce_10
    
    action_47 (24) = happyShift action_35
    action_47 (25) = happyShift action_36
    action_47 (29) = happyShift action_37
    action_47 (31) = happyShift action_38
    action_47 (38) = happyShift action_40
    action_47 (39) = happyShift action_41
    action_47 (49) = happyShift action_42
    action_47 (50) = happyShift action_43
    action_47 _ = happyReduce_11
    
    action_48 _ = happyReduce_6
    
    action_49 (32) = happyShift action_69
    action_49 _ = happyFail (happyExpListPerState 49)
    
    action_50 (24) = happyShift action_35
    action_50 (25) = happyShift action_36
    action_50 (29) = happyShift action_37
    action_50 (31) = happyShift action_38
    action_50 (38) = happyShift action_40
    action_50 (39) = happyShift action_41
    action_50 (49) = happyShift action_42
    action_50 (50) = happyShift action_43
    action_50 _ = happyReduce_9
    
    action_51 (26) = happyShift action_68
    action_51 _ = happyFail (happyExpListPerState 51)
    
    action_52 (24) = happyShift action_35
    action_52 (25) = happyShift action_36
    action_52 (27) = happyShift action_66
    action_52 (29) = happyShift action_37
    action_52 (31) = happyShift action_38
    action_52 (36) = happyShift action_67
    action_52 (38) = happyShift action_40
    action_52 (39) = happyShift action_41
    action_52 (49) = happyShift action_42
    action_52 (50) = happyShift action_43
    action_52 _ = happyFail (happyExpListPerState 52)
    
    action_53 _ = happyReduce_14
    
    action_54 (14) = happyShift action_14
    action_54 (17) = happyShift action_15
    action_54 (18) = happyShift action_16
    action_54 (20) = happyShift action_17
    action_54 (23) = happyShift action_18
    action_54 (24) = happyShift action_19
    action_54 (35) = happyShift action_20
    action_54 (40) = happyShift action_21
    action_54 (42) = happyShift action_22
    action_54 (43) = happyShift action_23
    action_54 (44) = happyShift action_24
    action_54 (45) = happyShift action_25
    action_54 (49) = happyShift action_26
    action_54 (50) = happyShift action_27
    action_54 (8) = happyGoto action_33
    action_54 (9) = happyGoto action_13
    action_54 (12) = happyGoto action_65
    action_54 _ = happyFail (happyExpListPerState 54)
    
    action_55 (32) = happyShift action_64
    action_55 _ = happyFail (happyExpListPerState 55)
    
    action_56 (36) = happyShift action_63
    action_56 _ = happyReduce_35
    
    action_57 (14) = happyShift action_14
    action_57 (17) = happyShift action_15
    action_57 (18) = happyShift action_16
    action_57 (20) = happyShift action_17
    action_57 (23) = happyShift action_18
    action_57 (24) = happyShift action_19
    action_57 (35) = happyShift action_20
    action_57 (40) = happyShift action_21
    action_57 (42) = happyShift action_22
    action_57 (43) = happyShift action_23
    action_57 (44) = happyShift action_24
    action_57 (45) = happyShift action_25
    action_57 (49) = happyShift action_26
    action_57 (50) = happyShift action_27
    action_57 (8) = happyGoto action_62
    action_57 (9) = happyGoto action_13
    action_57 _ = happyFail (happyExpListPerState 57)
    
    action_58 (14) = happyShift action_14
    action_58 (17) = happyShift action_15
    action_58 (18) = happyShift action_16
    action_58 (20) = happyShift action_17
    action_58 (23) = happyShift action_18
    action_58 (24) = happyShift action_19
    action_58 (35) = happyShift action_20
    action_58 (40) = happyShift action_21
    action_58 (42) = happyShift action_22
    action_58 (43) = happyShift action_23
    action_58 (44) = happyShift action_24
    action_58 (45) = happyShift action_25
    action_58 (49) = happyShift action_26
    action_58 (50) = happyShift action_27
    action_58 (8) = happyGoto action_61
    action_58 (9) = happyGoto action_13
    action_58 _ = happyFail (happyExpListPerState 58)
    
    action_59 (14) = happyShift action_14
    action_59 (17) = happyShift action_15
    action_59 (18) = happyShift action_16
    action_59 (20) = happyShift action_17
    action_59 (23) = happyShift action_18
    action_59 (24) = happyShift action_19
    action_59 (35) = happyShift action_20
    action_59 (40) = happyShift action_21
    action_59 (42) = happyShift action_22
    action_59 (43) = happyShift action_23
    action_59 (44) = happyShift action_24
    action_59 (45) = happyShift action_25
    action_59 (49) = happyShift action_26
    action_59 (50) = happyShift action_27
    action_59 (8) = happyGoto action_60
    action_59 (9) = happyGoto action_13
    action_59 _ = happyFail (happyExpListPerState 59)
    
    action_60 (24) = happyShift action_35
    action_60 (25) = happyShift action_36
    action_60 (29) = happyShift action_37
    action_60 (31) = happyShift action_38
    action_60 (38) = happyShift action_40
    action_60 (39) = happyShift action_41
    action_60 (46) = happyShift action_74
    action_60 (49) = happyShift action_42
    action_60 (50) = happyShift action_43
    action_60 _ = happyFail (happyExpListPerState 60)
    
    action_61 (24) = happyShift action_35
    action_61 (25) = happyShift action_36
    action_61 (29) = happyShift action_37
    action_61 (31) = happyShift action_38
    action_61 (38) = happyShift action_40
    action_61 (39) = happyShift action_41
    action_61 (49) = happyShift action_42
    action_61 (50) = happyShift action_43
    action_61 _ = happyReduce_18
    
    action_62 (24) = happyShift action_35
    action_62 (25) = happyShift action_36
    action_62 (29) = happyShift action_37
    action_62 (31) = happyShift action_38
    action_62 (38) = happyShift action_40
    action_62 (39) = happyShift action_41
    action_62 (49) = happyShift action_42
    action_62 (50) = happyShift action_43
    action_62 _ = happyReduce_19
    
    action_63 (20) = happyShift action_56
    action_63 (11) = happyGoto action_73
    action_63 _ = happyFail (happyExpListPerState 63)
    
    action_64 (28) = happyShift action_72
    action_64 _ = happyFail (happyExpListPerState 64)
    
    action_65 _ = happyReduce_38
    
    action_66 _ = happyReduce_12
    
    action_67 (14) = happyShift action_14
    action_67 (17) = happyShift action_15
    action_67 (18) = happyShift action_16
    action_67 (20) = happyShift action_17
    action_67 (23) = happyShift action_18
    action_67 (24) = happyShift action_19
    action_67 (35) = happyShift action_20
    action_67 (40) = happyShift action_21
    action_67 (42) = happyShift action_22
    action_67 (43) = happyShift action_23
    action_67 (44) = happyShift action_24
    action_67 (45) = happyShift action_25
    action_67 (49) = happyShift action_26
    action_67 (50) = happyShift action_27
    action_67 (8) = happyGoto action_33
    action_67 (9) = happyGoto action_13
    action_67 (12) = happyGoto action_71
    action_67 _ = happyFail (happyExpListPerState 67)
    
    action_68 (31) = happyShift action_70
    action_68 _ = happyFail (happyExpListPerState 68)
    
    action_69 _ = happyReduce_7
    
    action_70 (14) = happyShift action_14
    action_70 (17) = happyShift action_15
    action_70 (18) = happyShift action_16
    action_70 (20) = happyShift action_17
    action_70 (23) = happyShift action_18
    action_70 (24) = happyShift action_19
    action_70 (35) = happyShift action_20
    action_70 (40) = happyShift action_21
    action_70 (42) = happyShift action_22
    action_70 (43) = happyShift action_23
    action_70 (44) = happyShift action_24
    action_70 (45) = happyShift action_25
    action_70 (49) = happyShift action_26
    action_70 (50) = happyShift action_27
    action_70 (8) = happyGoto action_33
    action_70 (9) = happyGoto action_13
    action_70 (12) = happyGoto action_78
    action_70 _ = happyFail (happyExpListPerState 70)
    
    action_71 (27) = happyShift action_77
    action_71 _ = happyFail (happyExpListPerState 71)
    
    action_72 (14) = happyShift action_14
    action_72 (17) = happyShift action_15
    action_72 (18) = happyShift action_16
    action_72 (20) = happyShift action_17
    action_72 (23) = happyShift action_18
    action_72 (24) = happyShift action_19
    action_72 (35) = happyShift action_20
    action_72 (40) = happyShift action_21
    action_72 (42) = happyShift action_22
    action_72 (43) = happyShift action_23
    action_72 (44) = happyShift action_24
    action_72 (45) = happyShift action_25
    action_72 (49) = happyShift action_26
    action_72 (50) = happyShift action_27
    action_72 (8) = happyGoto action_76
    action_72 (9) = happyGoto action_13
    action_72 _ = happyFail (happyExpListPerState 72)
    
    action_73 _ = happyReduce_36
    
    action_74 (14) = happyShift action_14
    action_74 (17) = happyShift action_15
    action_74 (18) = happyShift action_16
    action_74 (20) = happyShift action_17
    action_74 (23) = happyShift action_18
    action_74 (24) = happyShift action_19
    action_74 (35) = happyShift action_20
    action_74 (40) = happyShift action_21
    action_74 (42) = happyShift action_22
    action_74 (43) = happyShift action_23
    action_74 (44) = happyShift action_24
    action_74 (45) = happyShift action_25
    action_74 (49) = happyShift action_26
    action_74 (50) = happyShift action_27
    action_74 (8) = happyGoto action_75
    action_74 (9) = happyGoto action_13
    action_74 _ = happyFail (happyExpListPerState 74)
    
    action_75 (24) = happyShift action_35
    action_75 (25) = happyShift action_36
    action_75 (29) = happyShift action_37
    action_75 (31) = happyShift action_38
    action_75 (38) = happyShift action_40
    action_75 (39) = happyShift action_41
    action_75 (49) = happyShift action_42
    action_75 (50) = happyShift action_43
    action_75 _ = happyReduce_17
    
    action_76 (24) = happyShift action_35
    action_76 (25) = happyShift action_36
    action_76 (29) = happyShift action_37
    action_76 (31) = happyShift action_38
    action_76 (38) = happyShift action_40
    action_76 (39) = happyShift action_41
    action_76 (49) = happyShift action_42
    action_76 (50) = happyShift action_43
    action_76 _ = happyReduce_16
    
    action_77 _ = happyReduce_13
    
    action_78 (32) = happyShift action_79
    action_78 _ = happyFail (happyExpListPerState 78)
    
    action_79 _ = happyReduce_8
    
    happyReduce_1 = happyReduce 4 4 happyReduction_1
    happyReduction_1 ((HappyAbsSyn7  happy_var_4) `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn6  happy_var_2) `HappyStk`
    	_ `HappyStk`
    	happyRest)
    	 = HappyAbsSyn4
    		 ((happy_var_2,happy_var_4)
    	) `HappyStk` happyRest
    
    happyReduce_2 = happySpecReduce_3  5 happyReduction_2
    happyReduction_2 _
    	_
    	(HappyTerminal (TokenSetName _ happy_var_1))
    	 =  HappyAbsSyn5
    		 (happy_var_1
    	)
    happyReduction_2 _ _ _  = notHappyAtAll 
    
    happyReduce_3 = happySpecReduce_1  6 happyReduction_3
    happyReduction_3 (HappyAbsSyn5  happy_var_1)
    	 =  HappyAbsSyn6
    		 ([happy_var_1]
    	)
    happyReduction_3 _  = notHappyAtAll 
    
    happyReduce_4 = happySpecReduce_3  6 happyReduction_4
    happyReduction_4 (HappyAbsSyn5  happy_var_3)
    	_
    	(HappyAbsSyn6  happy_var_1)
    	 =  HappyAbsSyn6
    		 (happy_var_3:happy_var_1
    	)
    happyReduction_4 _ _ _  = notHappyAtAll 
    
    happyReduce_5 = happySpecReduce_2  7 happyReduction_5
    happyReduction_5 _
    	(HappyAbsSyn8  happy_var_1)
    	 =  HappyAbsSyn7
    		 ([happy_var_1]
    	)
    happyReduction_5 _ _  = notHappyAtAll 
    
    happyReduce_6 = happySpecReduce_3  7 happyReduction_6
    happyReduction_6 (HappyAbsSyn7  happy_var_3)
    	_
    	(HappyAbsSyn8  happy_var_1)
    	 =  HappyAbsSyn7
    		 (happy_var_1:happy_var_3
    	)
    happyReduction_6 _ _ _  = notHappyAtAll 
    
    happyReduce_7 = happyReduce 4 8 happyReduction_7
    happyReduction_7 (_ `HappyStk`
    	(HappyAbsSyn12  happy_var_3) `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn8  happy_var_1) `HappyStk`
    	happyRest)
    	 = HappyAbsSyn8
    		 (FuncCall happy_var_1 [] happy_var_3
    	) `HappyStk` happyRest
    
    happyReduce_8 = happyReduce 7 8 happyReduction_8
    happyReduction_8 (_ `HappyStk`
    	(HappyAbsSyn12  happy_var_6) `HappyStk`
    	_ `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn12  happy_var_3) `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn8  happy_var_1) `HappyStk`
    	happyRest)
    	 = HappyAbsSyn8
    		 (FuncCall happy_var_1 happy_var_3 happy_var_6
    	) `HappyStk` happyRest
    
    happyReduce_9 = happySpecReduce_3  8 happyReduction_9
    happyReduction_9 (HappyAbsSyn8  happy_var_3)
    	_
    	(HappyAbsSyn8  happy_var_1)
    	 =  HappyAbsSyn8
    		 (FuncCall (PredefFunc IsEqual) [] [happy_var_1, happy_var_3]
    	)
    happyReduction_9 _ _ _  = notHappyAtAll 
    
    happyReduce_10 = happySpecReduce_3  8 happyReduction_10
    happyReduction_10 (HappyAbsSyn8  happy_var_3)
    	_
    	(HappyAbsSyn8  happy_var_1)
    	 =  HappyAbsSyn8
    		 (FuncCall (PredefFunc XProduct) [happy_var_1, happy_var_3] []
    	)
    happyReduction_10 _ _ _  = notHappyAtAll 
    
    happyReduce_11 = happySpecReduce_3  8 happyReduction_11
    happyReduction_11 (HappyAbsSyn8  happy_var_3)
    	_
    	(HappyAbsSyn8  happy_var_1)
    	 =  HappyAbsSyn8
    		 (FuncCall (PredefFunc Plus) [happy_var_1, happy_var_3] []
    	)
    happyReduction_11 _ _ _  = notHappyAtAll 
    
    happyReduce_12 = happyReduce 4 8 happyReduction_12
    happyReduction_12 (_ `HappyStk`
    	(HappyAbsSyn8  happy_var_3) `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn8  happy_var_1) `HappyStk`
    	happyRest)
    	 = HappyAbsSyn8
    		 (FuncCall (PredefFunc RecordIndex) [] [happy_var_1, happy_var_3]
    	) `HappyStk` happyRest
    
    happyReduce_13 = happyReduce 6 8 happyReduction_13
    happyReduction_13 (_ `HappyStk`
    	(HappyAbsSyn12  happy_var_5) `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn8  happy_var_3) `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn8  happy_var_1) `HappyStk`
    	happyRest)
    	 = HappyAbsSyn8
    		 (FuncCall (PredefFunc RecordSelect) [] (happy_var_1:happy_var_3:happy_var_5)
    	) `HappyStk` happyRest
    
    happyReduce_14 = happySpecReduce_3  8 happyReduction_14
    happyReduction_14 _
    	(HappyAbsSyn12  happy_var_2)
    	_
    	 =  HappyAbsSyn8
    		 (Record happy_var_2
    	)
    happyReduction_14 _ _ _  = notHappyAtAll 
    
    happyReduce_15 = happySpecReduce_1  8 happyReduction_15
    happyReduction_15 (HappyTerminal (TokenString _ happy_var_1))
    	 =  HappyAbsSyn8
    		 (Types.String $ stripWhitespace happy_var_1
    	)
    happyReduction_15 _  = notHappyAtAll 
    
    happyReduce_16 = happyReduce 6 8 happyReduction_16
    happyReduction_16 ((HappyAbsSyn8  happy_var_6) `HappyStk`
    	_ `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn11  happy_var_3) `HappyStk`
    	_ `HappyStk`
    	_ `HappyStk`
    	happyRest)
    	 = HappyAbsSyn8
    		 (FuncDef [] happy_var_3 happy_var_6
    	) `HappyStk` happyRest
    
    happyReduce_17 = happyReduce 6 8 happyReduction_17
    happyReduction_17 ((HappyAbsSyn8  happy_var_6) `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn8  happy_var_4) `HappyStk`
    	_ `HappyStk`
    	(HappyAbsSyn8  happy_var_2) `HappyStk`
    	_ `HappyStk`
    	happyRest)
    	 = HappyAbsSyn8
    		 (If happy_var_2 happy_var_4 happy_var_6
    	) `HappyStk` happyRest
    
    happyReduce_18 = happyReduce 4 8 happyReduction_18
    happyReduction_18 ((HappyAbsSyn8  happy_var_4) `HappyStk`
    	_ `HappyStk`
    	(HappyTerminal (TokenSetName _ happy_var_2)) `HappyStk`
    	_ `HappyStk`
    	happyRest)
    	 = HappyAbsSyn8
    		 (Let True happy_var_2 happy_var_4
    	) `HappyStk` happyRest
    
    happyReduce_19 = happyReduce 4 8 happyReduction_19
    happyReduction_19 ((HappyAbsSyn8  happy_var_4) `HappyStk`
    	_ `HappyStk`
    	(HappyTerminal (TokenVarName _ happy_var_2)) `HappyStk`
    	_ `HappyStk`
    	happyRest)
    	 = HappyAbsSyn8
    		 (Let False happy_var_2 happy_var_4
    	) `HappyStk` happyRest
    
    happyReduce_20 = happySpecReduce_1  8 happyReduction_20
    happyReduction_20 (HappyTerminal (TokenVarName _ happy_var_1))
    	 =  HappyAbsSyn8
    		 (Var happy_var_1
    	)
    happyReduction_20 _  = notHappyAtAll 
    
    happyReduce_21 = happySpecReduce_1  8 happyReduction_21
    happyReduction_21 (HappyTerminal (TokenSetName _ happy_var_1))
    	 =  HappyAbsSyn8
    		 (Var happy_var_1
    	)
    happyReduction_21 _  = notHappyAtAll 
    
    happyReduce_22 = happySpecReduce_1  8 happyReduction_22
    happyReduction_22 (HappyTerminal (TokenNat _ happy_var_1))
    	 =  HappyAbsSyn8
    		 (Types.Int happy_var_1
    	)
    happyReduction_22 _  = notHappyAtAll 
    
    happyReduce_23 = happySpecReduce_1  8 happyReduction_23
    happyReduction_23 (HappyAbsSyn9  happy_var_1)
    	 =  HappyAbsSyn8
    		 (PredefFunc happy_var_1
    	)
    happyReduction_23 _  = notHappyAtAll 
    
    happyReduce_24 = happySpecReduce_3  8 happyReduction_24
    happyReduction_24 (HappyAbsSyn8  happy_var_3)
    	_
    	(HappyAbsSyn8  happy_var_1)
    	 =  HappyAbsSyn8
    		 (FuncCall (PredefFunc Or) [] [happy_var_1,happy_var_3]
    	)
    happyReduction_24 _ _ _  = notHappyAtAll 
    
    happyReduce_25 = happySpecReduce_3  8 happyReduction_25
    happyReduction_25 (HappyAbsSyn8  happy_var_3)
    	_
    	(HappyAbsSyn8  happy_var_1)
    	 =  HappyAbsSyn8
    		 (FuncCall (PredefFunc And) [] [happy_var_1,happy_var_3]
    	)
    happyReduction_25 _ _ _  = notHappyAtAll 
    
    happyReduce_26 = happySpecReduce_1  9 happyReduction_26
    happyReduction_26 _
    	 =  HappyAbsSyn9
    		 (IsEmpty
    	)
    
    happyReduce_27 = happySpecReduce_1  9 happyReduction_27
    happyReduction_27 _
    	 =  HappyAbsSyn9
    		 (Filter
    	)
    
    happyReduce_28 = happySpecReduce_1  9 happyReduction_28
    happyReduction_28 _
    	 =  HappyAbsSyn9
    		 (Contains
    	)
    
    happyReduce_29 = happySpecReduce_1  9 happyReduction_29
    happyReduction_29 _
    	 =  HappyAbsSyn9
    		 (IsEmpty
    	)
    
    happyReduce_30 = happySpecReduce_1  9 happyReduction_30
    happyReduction_30 _
    	 =  HappyAbsSyn9
    		 (Map
    	)
    
    happyReduce_31 = happySpecReduce_1  9 happyReduction_31
    happyReduction_31 _
    	 =  HappyAbsSyn9
    		 (And
    	)
    
    happyReduce_32 = happySpecReduce_1  9 happyReduction_32
    happyReduction_32 _
    	 =  HappyAbsSyn9
    		 (Or
    	)
    
    happyReduce_33 = happySpecReduce_1  10 happyReduction_33
    happyReduction_33 (HappyTerminal (TokenSetName _ happy_var_1))
    	 =  HappyAbsSyn10
    		 ([happy_var_1]
    	)
    happyReduction_33 _  = notHappyAtAll 
    
    happyReduce_34 = happySpecReduce_3  10 happyReduction_34
    happyReduction_34 (HappyAbsSyn10  happy_var_3)
    	_
    	(HappyTerminal (TokenSetName _ happy_var_1))
    	 =  HappyAbsSyn10
    		 (happy_var_1:happy_var_3
    	)
    happyReduction_34 _ _ _  = notHappyAtAll 
    
    happyReduce_35 = happySpecReduce_1  11 happyReduction_35
    happyReduction_35 (HappyTerminal (TokenVarName _ happy_var_1))
    	 =  HappyAbsSyn11
    		 ([happy_var_1]
    	)
    happyReduction_35 _  = notHappyAtAll 
    
    happyReduce_36 = happySpecReduce_3  11 happyReduction_36
    happyReduction_36 (HappyAbsSyn11  happy_var_3)
    	_
    	(HappyTerminal (TokenVarName _ happy_var_1))
    	 =  HappyAbsSyn11
    		 (happy_var_1:happy_var_3
    	)
    happyReduction_36 _ _ _  = notHappyAtAll 
    
    happyReduce_37 = happySpecReduce_1  12 happyReduction_37
    happyReduction_37 (HappyAbsSyn8  happy_var_1)
    	 =  HappyAbsSyn12
    		 ([happy_var_1]
    	)
    happyReduction_37 _  = notHappyAtAll 
    
    happyReduce_38 = happySpecReduce_3  12 happyReduction_38
    happyReduction_38 (HappyAbsSyn12  happy_var_3)
    	_
    	(HappyAbsSyn8  happy_var_1)
    	 =  HappyAbsSyn12
    		 (happy_var_1:happy_var_3
    	)
    happyReduction_38 _ _ _  = notHappyAtAll 
    
    happyReduce_39 = happySpecReduce_1  13 happyReduction_39
    happyReduction_39 (HappyTerminal (TokenNat _ happy_var_1))
    	 =  HappyAbsSyn13
    		 ([happy_var_1]
    	)
    happyReduction_39 _  = notHappyAtAll 
    
    happyReduce_40 = happySpecReduce_3  13 happyReduction_40
    happyReduction_40 (HappyAbsSyn13  happy_var_3)
    	_
    	(HappyTerminal (TokenNat _ happy_var_1))
    	 =  HappyAbsSyn13
    		 (happy_var_1:happy_var_3
    	)
    happyReduction_40 _ _ _  = notHappyAtAll 
    
    happyNewToken action sts stk [] =
    	action 51 51 notHappyAtAll (HappyState action) sts stk []
    
    happyNewToken action sts stk (tk:tks) =
    	let cont i = action i i tk (HappyState action) sts stk tks in
    	case tk of {
    	TokenFilter _ -> cont 14;
    	TokenInSet _ -> cont 15;
    	TokenOutSet _ -> cont 16;
    	TokenSetName _ happy_dollar_dollar -> cont 17;
    	TokenNat _ happy_dollar_dollar -> cont 18;
    	TokenPosNat _ happy_dollar_dollar -> cont 19;
    	TokenVarName _ happy_dollar_dollar -> cont 20;
    	TokenTrue _ -> cont 21;
    	TokenFalse _ -> cont 22;
    	TokenString _ happy_dollar_dollar -> cont 23;
    	TokenLeftSqBracket _ -> cont 24;
    	TokenLeftBrace _ -> cont 25;
    	TokenRightBrace _ -> cont 26;
    	TokenRightSqBracket _ -> cont 27;
    	TokenArrow _ -> cont 28;
    	TokenisEqual _ -> cont 29;
    	TokenisNotEqual _ -> cont 30;
    	TokenLeftBracket _ -> cont 31;
    	TokenRightBracket _ -> cont 32;
    	TokenSemiCol _ -> cont 33;
    	TokenCol _ -> cont 34;
    	TokenLambda _ -> cont 35;
    	TokenComma _ -> cont 36;
    	TokenFullStop _ -> cont 37;
    	TokenPlus _ -> cont 38;
    	TokenXProduct _ -> cont 39;
    	TokenMap _ -> cont 40;
    	TokenXXProduct _ -> cont 41;
    	TokenContains _ -> cont 42;
    	TokenIsEmpty _ -> cont 43;
    	TokenLet _ -> cont 44;
    	TokenIf _ -> cont 45;
    	TokenElse _ -> cont 46;
    	TokenThen _ -> cont 47;
    	TokenEqual _ -> cont 48;
    	TokenBoolAND _ -> cont 49;
    	TokenBoolOR _ -> cont 50;
    	_ -> happyError' ((tk:tks), [])
    	}
    
    happyError_ explist 51 tk tks = happyError' (tks, explist)
    happyError_ explist _ tk tks = happyError' ((tk:tks), explist)
    
    newtype HappyIdentity a = HappyIdentity a
    happyIdentity = HappyIdentity
    happyRunIdentity (HappyIdentity a) = a
    
    instance Prelude.Functor HappyIdentity where
        fmap f (HappyIdentity a) = HappyIdentity (f a)
    
    instance Applicative HappyIdentity where
        pure  = HappyIdentity
        (<*>) = ap
    instance Prelude.Monad HappyIdentity where
        return = pure
        (HappyIdentity p) >>= q = q p
    
    happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b
    happyThen = (Prelude.>>=)
    happyReturn :: () => a -> HappyIdentity a
    happyReturn = (Prelude.return)
    happyThen1 m k tks = (Prelude.>>=) m (\a -> k a tks)
    happyReturn1 :: () => a -> b -> HappyIdentity a
    happyReturn1 = \a tks -> (Prelude.return) a
    happyError' :: () => ([(Token)], [Prelude.String]) -> HappyIdentity a
    happyError' = HappyIdentity Prelude.. (\(tokens, _) -> parseError tokens)
    parseSource tks = happyRunIdentity happySomeParser where
     happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn4 z -> happyReturn z; _other -> notHappyAtAll })
    
    happySeq = happyDontSeq
    
    
    parseError :: [Token] -> a
    parseError tokens = error $ "Parse error: " ++ (show.pos.head) tokens
    
    tokenPosn :: Token -> String
    tokenPosn t = let (AlexPn _ line col) = pos t in (show line) ++ ':' : (show col)
    {-# LINE 1 "templates/GenericTemplate.hs" #-}
    -- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    data Happy_IntList = HappyCons Prelude.Int Happy_IntList
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    infixr 9 `HappyStk`
    data HappyStk a = HappyStk a (HappyStk a)
    
    -----------------------------------------------------------------------------
    -- starting the parse
    
    happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
    
    -----------------------------------------------------------------------------
    -- Accepting the parse
    
    -- If the current token is ERROR_TOK, it means we've just accepted a partial
    -- parse (a %partial parser).  We must ignore the saved token on the top of
    -- the stack in this case.
    happyAccept (1) tk st sts (_ `HappyStk` ans `HappyStk` _) =
            happyReturn1 ans
    happyAccept j tk st sts (HappyStk ans _) = 
             (happyReturn1 ans)
    
    -----------------------------------------------------------------------------
    -- Arrays only: do the next action
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    indexShortOffAddr arr off = arr Happy_Data_Array.! off
    
    
    {-# INLINE happyLt #-}
    happyLt x y = (x Prelude.< y)
    
    
    
    
    
    
    readArrayBit arr bit =
        Bits.testBit (indexShortOffAddr arr (bit `Prelude.div` 16)) (bit `Prelude.mod` 16)
    
    
    
    
    
    
    -----------------------------------------------------------------------------
    -- HappyState data type (not arrays)
    
    
    
    newtype HappyState b c = HappyState
            (Prelude.Int ->                    -- token number
             Prelude.Int ->                    -- token number (yes, again)
             b ->                           -- token semantic value
             HappyState b c ->              -- current state
             [HappyState b c] ->            -- state stack
             c)
    
    
    
    -----------------------------------------------------------------------------
    -- Shifting a token
    
    happyShift new_state (1) tk st sts stk@(x `HappyStk` _) =
         let i = (case x of { HappyErrorToken (i) -> i }) in
    --     trace "shifting the error token" $
         new_state i i tk (HappyState (new_state)) ((st):(sts)) (stk)
    
    happyShift new_state i tk st sts stk =
         happyNewToken new_state ((st):(sts)) ((HappyTerminal (tk))`HappyStk`stk)
    
    -- happyReduce is specialised for the common cases.
    
    happySpecReduce_0 i fn (1) tk st sts stk
         = happyFail [] (1) tk st sts stk
    happySpecReduce_0 nt fn j tk st@((HappyState (action))) sts stk
         = action nt j tk st ((st):(sts)) (fn `HappyStk` stk)
    
    happySpecReduce_1 i fn (1) tk st sts stk
         = happyFail [] (1) tk st sts stk
    happySpecReduce_1 nt fn j tk _ sts@(((st@(HappyState (action))):(_))) (v1`HappyStk`stk')
         = let r = fn v1 in
           happySeq r (action nt j tk st sts (r `HappyStk` stk'))
    
    happySpecReduce_2 i fn (1) tk st sts stk
         = happyFail [] (1) tk st sts stk
    happySpecReduce_2 nt fn j tk _ ((_):(sts@(((st@(HappyState (action))):(_))))) (v1`HappyStk`v2`HappyStk`stk')
         = let r = fn v1 v2 in
           happySeq r (action nt j tk st sts (r `HappyStk` stk'))
    
    happySpecReduce_3 i fn (1) tk st sts stk
         = happyFail [] (1) tk st sts stk
    happySpecReduce_3 nt fn j tk _ ((_):(((_):(sts@(((st@(HappyState (action))):(_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
         = let r = fn v1 v2 v3 in
           happySeq r (action nt j tk st sts (r `HappyStk` stk'))
    
    happyReduce k i fn (1) tk st sts stk
         = happyFail [] (1) tk st sts stk
    happyReduce k nt fn j tk st sts stk
         = case happyDrop (k Prelude.- ((1) :: Prelude.Int)) sts of
             sts1@(((st1@(HappyState (action))):(_))) ->
                    let r = fn stk in  -- it doesn't hurt to always seq here...
                    happyDoSeq r (action nt j tk st1 sts1 r)
    
    happyMonadReduce k nt fn (1) tk st sts stk
         = happyFail [] (1) tk st sts stk
    happyMonadReduce k nt fn j tk st sts stk =
          case happyDrop k ((st):(sts)) of
            sts1@(((st1@(HappyState (action))):(_))) ->
              let drop_stk = happyDropStk k stk in
              happyThen1 (fn stk tk) (\r -> action nt j tk st1 sts1 (r `HappyStk` drop_stk))
    
    happyMonad2Reduce k nt fn (1) tk st sts stk
         = happyFail [] (1) tk st sts stk
    happyMonad2Reduce k nt fn j tk st sts stk =
          case happyDrop k ((st):(sts)) of
            sts1@(((st1@(HappyState (action))):(_))) ->
             let drop_stk = happyDropStk k stk
    
    
    
    
    
                 _ = nt :: Prelude.Int
                 new_state = action
    
              in
              happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
    
    happyDrop (0) l = l
    happyDrop n ((_):(t)) = happyDrop (n Prelude.- ((1) :: Prelude.Int)) t
    
    happyDropStk (0) l = l
    happyDropStk n (x `HappyStk` xs) = happyDropStk (n Prelude.- ((1)::Prelude.Int)) xs
    
    -----------------------------------------------------------------------------
    -- Moving to a new state after a reduction
    
    
    
    
    
    
    
    
    
    happyGoto action j tk st = action j j tk (HappyState action)
    
    
    -----------------------------------------------------------------------------
    -- Error recovery (ERROR_TOK is the error token)
    
    -- parse error if we are in recovery and we fail again
    happyFail explist (1) tk old_st _ stk@(x `HappyStk` _) =
         let i = (case x of { HappyErrorToken (i) -> i }) in
    --      trace "failing" $ 
            happyError_ explist i tk
    
    {-  We don't need state discarding for our restricted implementation of
        "error".  In fact, it can cause some bogus parses, so I've disabled it
        for now --SDM
    
    -- discard a state
    happyFail  ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts) 
                                                    (saved_tok `HappyStk` _ `HappyStk` stk) =
    --      trace ("discarding state, depth " ++ show (length stk))  $
            DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk))
    -}
    
    -- Enter error recovery: generate an error token,
    --                       save the old token and carry on.
    happyFail explist i tk (HappyState (action)) sts stk =
    --      trace "entering error recovery" $
            action (1) (1) tk (HappyState (action)) sts ((HappyErrorToken (i)) `HappyStk` stk)
    
    -- Internal happy errors:
    
    notHappyAtAll :: a
    notHappyAtAll = Prelude.error "Internal Happy error\n"
    
    -----------------------------------------------------------------------------
    -- Hack to get the typechecker to accept our action functions
    
    
    
    
    
    
    
    -----------------------------------------------------------------------------
    -- Seq-ing.  If the --strict flag is given, then Happy emits 
    --      happySeq = happyDoSeq
    -- otherwise it emits
    --      happySeq = happyDontSeq
    
    happyDoSeq, happyDontSeq :: a -> b -> b
    happyDoSeq   a b = a `Prelude.seq` b
    happyDontSeq a b = b
    
    -----------------------------------------------------------------------------
    -- Don't inline any functions from the template.  GHC has a nasty habit
    -- of deciding to inline happyGoto everywhere, which increases the size of
    -- the generated parser quite a bit.
    
    
    
    
    
    
    
    
    
    {-# NOINLINE happyShift #-}
    {-# NOINLINE happySpecReduce_0 #-}
    {-# NOINLINE happySpecReduce_1 #-}
    {-# NOINLINE happySpecReduce_2 #-}
    {-# NOINLINE happySpecReduce_3 #-}
    {-# NOINLINE happyReduce #-}
    {-# NOINLINE happyMonadReduce #-}
    {-# NOINLINE happyGoto #-}
    {-# NOINLINE happyFail #-}
    
    -- end of Happy Template.