Select Git revision
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.