1{-# OPTIONS_GHC -w #-} 2{-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-} 3#if __GLASGOW_HASKELL__ >= 710 4{-# OPTIONS_GHC -XPartialTypeSignatures #-} 5#endif 6{-# OPTIONS_GHC -w #-} 7module Parser (ourParser,AbsSyn) where 8import ParseMonad 9import AbsSyn 10import Lexer 11import qualified Data.Array as Happy_Data_Array 12import qualified Data.Bits as Bits 13import qualified GHC.Exts as Happy_GHC_Exts 14import Control.Applicative(Applicative(..)) 15import Control.Monad (ap) 16 17-- parser produced by Happy Version 1.19.12 18 19newtype HappyAbsSyn = HappyAbsSyn HappyAny 20#if __GLASGOW_HASKELL__ >= 607 21type HappyAny = Happy_GHC_Exts.Any 22#else 23type HappyAny = forall a . a 24#endif 25newtype HappyWrap4 = HappyWrap4 (AbsSyn) 26happyIn4 :: (AbsSyn) -> (HappyAbsSyn ) 27happyIn4 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap4 x) 28{-# INLINE happyIn4 #-} 29happyOut4 :: (HappyAbsSyn ) -> HappyWrap4 30happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x 31{-# INLINE happyOut4 #-} 32newtype HappyWrap5 = HappyWrap5 ([Rule]) 33happyIn5 :: ([Rule]) -> (HappyAbsSyn ) 34happyIn5 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap5 x) 35{-# INLINE happyIn5 #-} 36happyOut5 :: (HappyAbsSyn ) -> HappyWrap5 37happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x 38{-# INLINE happyOut5 #-} 39newtype HappyWrap6 = HappyWrap6 (Rule) 40happyIn6 :: (Rule) -> (HappyAbsSyn ) 41happyIn6 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap6 x) 42{-# INLINE happyIn6 #-} 43happyOut6 :: (HappyAbsSyn ) -> HappyWrap6 44happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x 45{-# INLINE happyOut6 #-} 46newtype HappyWrap7 = HappyWrap7 ([String]) 47happyIn7 :: ([String]) -> (HappyAbsSyn ) 48happyIn7 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap7 x) 49{-# INLINE happyIn7 #-} 50happyOut7 :: (HappyAbsSyn ) -> HappyWrap7 51happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x 52{-# INLINE happyOut7 #-} 53newtype HappyWrap8 = HappyWrap8 ([String]) 54happyIn8 :: ([String]) -> (HappyAbsSyn ) 55happyIn8 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap8 x) 56{-# INLINE happyIn8 #-} 57happyOut8 :: (HappyAbsSyn ) -> HappyWrap8 58happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x 59{-# INLINE happyOut8 #-} 60newtype HappyWrap9 = HappyWrap9 ([Prod]) 61happyIn9 :: ([Prod]) -> (HappyAbsSyn ) 62happyIn9 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap9 x) 63{-# INLINE happyIn9 #-} 64happyOut9 :: (HappyAbsSyn ) -> HappyWrap9 65happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x 66{-# INLINE happyOut9 #-} 67newtype HappyWrap10 = HappyWrap10 (Prod) 68happyIn10 :: (Prod) -> (HappyAbsSyn ) 69happyIn10 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap10 x) 70{-# INLINE happyIn10 #-} 71happyOut10 :: (HappyAbsSyn ) -> HappyWrap10 72happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x 73{-# INLINE happyOut10 #-} 74newtype HappyWrap11 = HappyWrap11 (Term) 75happyIn11 :: (Term) -> (HappyAbsSyn ) 76happyIn11 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap11 x) 77{-# INLINE happyIn11 #-} 78happyOut11 :: (HappyAbsSyn ) -> HappyWrap11 79happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x 80{-# INLINE happyOut11 #-} 81newtype HappyWrap12 = HappyWrap12 ([Term]) 82happyIn12 :: ([Term]) -> (HappyAbsSyn ) 83happyIn12 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap12 x) 84{-# INLINE happyIn12 #-} 85happyOut12 :: (HappyAbsSyn ) -> HappyWrap12 86happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x 87{-# INLINE happyOut12 #-} 88newtype HappyWrap13 = HappyWrap13 ([Term]) 89happyIn13 :: ([Term]) -> (HappyAbsSyn ) 90happyIn13 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap13 x) 91{-# INLINE happyIn13 #-} 92happyOut13 :: (HappyAbsSyn ) -> HappyWrap13 93happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x 94{-# INLINE happyOut13 #-} 95newtype HappyWrap14 = HappyWrap14 ([Term]) 96happyIn14 :: ([Term]) -> (HappyAbsSyn ) 97happyIn14 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap14 x) 98{-# INLINE happyIn14 #-} 99happyOut14 :: (HappyAbsSyn ) -> HappyWrap14 100happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x 101{-# INLINE happyOut14 #-} 102newtype HappyWrap15 = HappyWrap15 (Prec) 103happyIn15 :: (Prec) -> (HappyAbsSyn ) 104happyIn15 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap15 x) 105{-# INLINE happyIn15 #-} 106happyOut15 :: (HappyAbsSyn ) -> HappyWrap15 107happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x 108{-# INLINE happyOut15 #-} 109newtype HappyWrap16 = HappyWrap16 ([Directive String]) 110happyIn16 :: ([Directive String]) -> (HappyAbsSyn ) 111happyIn16 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap16 x) 112{-# INLINE happyIn16 #-} 113happyOut16 :: (HappyAbsSyn ) -> HappyWrap16 114happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x 115{-# INLINE happyOut16 #-} 116newtype HappyWrap17 = HappyWrap17 (Directive String) 117happyIn17 :: (Directive String) -> (HappyAbsSyn ) 118happyIn17 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap17 x) 119{-# INLINE happyIn17 #-} 120happyOut17 :: (HappyAbsSyn ) -> HappyWrap17 121happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x 122{-# INLINE happyOut17 #-} 123newtype HappyWrap18 = HappyWrap18 (Maybe String) 124happyIn18 :: (Maybe String) -> (HappyAbsSyn ) 125happyIn18 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap18 x) 126{-# INLINE happyIn18 #-} 127happyOut18 :: (HappyAbsSyn ) -> HappyWrap18 128happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x 129{-# INLINE happyOut18 #-} 130newtype HappyWrap19 = HappyWrap19 ([(String,String)]) 131happyIn19 :: ([(String,String)]) -> (HappyAbsSyn ) 132happyIn19 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap19 x) 133{-# INLINE happyIn19 #-} 134happyOut19 :: (HappyAbsSyn ) -> HappyWrap19 135happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x 136{-# INLINE happyOut19 #-} 137newtype HappyWrap20 = HappyWrap20 ((String,String)) 138happyIn20 :: ((String,String)) -> (HappyAbsSyn ) 139happyIn20 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap20 x) 140{-# INLINE happyIn20 #-} 141happyOut20 :: (HappyAbsSyn ) -> HappyWrap20 142happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x 143{-# INLINE happyOut20 #-} 144newtype HappyWrap21 = HappyWrap21 ([String]) 145happyIn21 :: ([String]) -> (HappyAbsSyn ) 146happyIn21 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap21 x) 147{-# INLINE happyIn21 #-} 148happyOut21 :: (HappyAbsSyn ) -> HappyWrap21 149happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x 150{-# INLINE happyOut21 #-} 151newtype HappyWrap22 = HappyWrap22 (Maybe String) 152happyIn22 :: (Maybe String) -> (HappyAbsSyn ) 153happyIn22 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap22 x) 154{-# INLINE happyIn22 #-} 155happyOut22 :: (HappyAbsSyn ) -> HappyWrap22 156happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x 157{-# INLINE happyOut22 #-} 158happyInTok :: (Token) -> (HappyAbsSyn ) 159happyInTok x = Happy_GHC_Exts.unsafeCoerce# x 160{-# INLINE happyInTok #-} 161happyOutTok :: (HappyAbsSyn ) -> (Token) 162happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x 163{-# INLINE happyOutTok #-} 164 165 166happyExpList :: HappyAddr 167happyExpList = HappyA# "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x08\x00\x00\x00\xe0\x7f\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\x7c\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x40\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# 168 169{-# NOINLINE happyExpListPerState #-} 170happyExpListPerState st = 171 token_strs_expected 172 where token_strs = ["error","%dummy","%start_ourParser","parser","rules","rule","params","comma_ids","prods","prod","term","terms","terms_rev","comma_terms","prec","tokInfos","tokInfo","optStart","tokenSpecs","tokenSpec","ids","optCode","id","spec_tokentype","spec_token","spec_name","spec_partial","spec_lexer","spec_imported_identity","spec_monad","spec_nonassoc","spec_left","spec_right","spec_prec","spec_shift","spec_expect","spec_error","spec_errorhandlertype","spec_attribute","spec_attributetype","code","int","\":\"","\";\"","\"::\"","\"%%\"","\"|\"","\"(\"","\")\"","\",\"","%eof"] 173 bit_start = st * 51 174 bit_end = (st + 1) * 51 175 read_bit = readArrayBit happyExpList 176 bits = map read_bit [bit_start..bit_end - 1] 177 bits_indexed = zip bits [0..50] 178 token_strs_expected = concatMap f bits_indexed 179 f (False, _) = [] 180 f (True, nr) = [token_strs !! nr] 181 182happyActOffsets :: HappyAddr 183happyActOffsets = HappyA# "\x03\x00\x03\x00\x23\x00\x00\x00\x29\x00\xff\xff\x00\x00\x3e\x00\x4f\x00\x51\x00\x52\x00\x41\x00\x00\x00\x42\x00\x55\x00\x55\x00\x55\x00\x43\x00\x45\x00\x58\x00\x59\x00\x48\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x5f\x00\x5f\x00\x00\x00\x60\x00\x50\x00\x00\x00\x00\x00\x61\x00\x0b\x00\x00\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x00\x00\x00\x00\x56\x00\x30\x00\x63\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x64\x00\x57\x00\x00\x00\x0a\x00\x00\x00\x54\x00\x00\x00\x15\x00\x67\x00\x5a\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x5c\x00\x6d\x00\x00\x00\x6f\x00\x5d\x00\x70\x00\x00\x00\x70\x00\x00\x00\x00\x00\x62\x00\x00\x00\x14\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00"# 184 185happyGotoOffsets :: HappyAddr 186happyGotoOffsets = HappyA# "\x12\x00\x65\x00\x3c\x00\x00\x00\x00\x00\x68\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x6c\x00\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x75\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x49\x00\x11\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x36\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00"# 187 188happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int# 189happyAdjustOffset off = off 190 191happyDefActions :: HappyAddr 192happyDefActions = HappyA# "\xc9\xff\x00\x00\x00\x00\xca\xff\x00\x00\x00\x00\xe4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\xff\x00\x00\xcb\xff\xcb\xff\xcb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\xff\x00\x00\xd4\xff\xd5\xff\xd6\xff\xd8\xff\xcb\xff\xd7\xff\xd9\xff\xdd\xff\x00\x00\xd0\xff\xd0\xff\xe2\xff\xce\xff\x00\x00\xe3\xff\xe5\xff\x00\x00\xc9\xff\xfc\xff\xf7\xff\xcd\xff\xcf\xff\xe1\xff\xd1\xff\xe0\xff\xde\xff\xdc\xff\xcc\xff\xd2\xff\xdb\xff\x00\x00\x00\x00\xfd\xff\xfe\xff\x00\x00\xf6\xff\xed\xff\x00\x00\xda\xff\x00\x00\xf9\xff\xf3\xff\xec\xff\xe6\xff\xee\xff\xf0\xff\xf8\xff\x00\x00\xf5\xff\x00\x00\xeb\xff\x00\x00\x00\x00\xe7\xff\xed\xff\x00\x00\xed\xff\xfb\xff\xed\xff\xf4\xff\xe8\xff\xf1\xff\xea\xff\x00\x00\xef\xff\x00\x00\xf2\xff\xfa\xff\xe9\xff"# 193 194happyCheck :: HappyAddr 195happyCheck = HappyA# "\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x01\x00\x01\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x02\x00\x1b\x00\x1c\x00\x13\x00\x18\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x07\x00\x13\x00\x15\x00\x0a\x00\x0c\x00\x0d\x00\x12\x00\x12\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x1b\x00\x1c\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x15\x00\x1d\x00\x17\x00\x0c\x00\x0d\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x0f\x00\x10\x00\x01\x00\x13\x00\x01\x00\x01\x00\x13\x00\x13\x00\x01\x00\x14\x00\x13\x00\x01\x00\x01\x00\x13\x00\x01\x00\x13\x00\x13\x00\x13\x00\x01\x00\x01\x00\x01\x00\x13\x00\x01\x00\x01\x00\x13\x00\x1a\x00\x01\x00\x13\x00\x13\x00\x01\x00\x01\x00\x19\x00\x01\x00\x13\x00\x01\x00\x01\x00\x15\x00\x01\x00\x1a\x00\x0d\x00\xff\xff\x12\x00\x16\x00\x03\x00\x11\x00\x04\x00\xff\xff\x11\x00\xff\xff\x11\x00\xff\xff\x0e\x00\x11\x00\x0e\x00\x0b\x00\x07\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# 196 197happyTable :: HappyAddr 198happyTable = HappyA# "\x00\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x50\x00\x2c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x04\x00\x38\x00\x47\x00\x48\x00\x04\x00\x29\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x56\x00\x04\x00\x51\x00\x57\x00\x4d\x00\x4e\x00\x39\x00\x02\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x59\x00\x5a\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x53\x00\x41\x00\x42\x00\x43\x00\x44\x00\x51\x00\x41\x00\x42\x00\x43\x00\x44\x00\x5b\x00\x41\x00\x42\x00\x43\x00\x44\x00\x3d\x00\xff\xff\x3e\x00\x05\x00\x06\x00\x29\x00\x2a\x00\x23\x00\x24\x00\x2d\x00\x24\x00\x26\x00\x27\x00\x23\x00\x22\x00\x21\x00\x20\x00\x1d\x00\x1b\x00\x1a\x00\x19\x00\x18\x00\x17\x00\x1d\x00\x35\x00\x33\x00\x32\x00\x30\x00\x26\x00\x2c\x00\x2d\x00\x3c\x00\x46\x00\x36\x00\x38\x00\x46\x00\x3f\x00\x40\x00\x49\x00\x46\x00\x4f\x00\x55\x00\x56\x00\x46\x00\x46\x00\x53\x00\x46\x00\x4a\x00\x27\x00\x00\x00\x02\x00\x5b\x00\x36\x00\x1e\x00\x3a\x00\x00\x00\x1d\x00\x00\x00\x1b\x00\x00\x00\x30\x00\x33\x00\x2e\x00\x4b\x00\x4a\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# 199 200happyReduceArr = Happy_Data_Array.array (1, 54) [ 201 (1 , happyReduce_1), 202 (2 , happyReduce_2), 203 (3 , happyReduce_3), 204 (4 , happyReduce_4), 205 (5 , happyReduce_5), 206 (6 , happyReduce_6), 207 (7 , happyReduce_7), 208 (8 , happyReduce_8), 209 (9 , happyReduce_9), 210 (10 , happyReduce_10), 211 (11 , happyReduce_11), 212 (12 , happyReduce_12), 213 (13 , happyReduce_13), 214 (14 , happyReduce_14), 215 (15 , happyReduce_15), 216 (16 , happyReduce_16), 217 (17 , happyReduce_17), 218 (18 , happyReduce_18), 219 (19 , happyReduce_19), 220 (20 , happyReduce_20), 221 (21 , happyReduce_21), 222 (22 , happyReduce_22), 223 (23 , happyReduce_23), 224 (24 , happyReduce_24), 225 (25 , happyReduce_25), 226 (26 , happyReduce_26), 227 (27 , happyReduce_27), 228 (28 , happyReduce_28), 229 (29 , happyReduce_29), 230 (30 , happyReduce_30), 231 (31 , happyReduce_31), 232 (32 , happyReduce_32), 233 (33 , happyReduce_33), 234 (34 , happyReduce_34), 235 (35 , happyReduce_35), 236 (36 , happyReduce_36), 237 (37 , happyReduce_37), 238 (38 , happyReduce_38), 239 (39 , happyReduce_39), 240 (40 , happyReduce_40), 241 (41 , happyReduce_41), 242 (42 , happyReduce_42), 243 (43 , happyReduce_43), 244 (44 , happyReduce_44), 245 (45 , happyReduce_45), 246 (46 , happyReduce_46), 247 (47 , happyReduce_47), 248 (48 , happyReduce_48), 249 (49 , happyReduce_49), 250 (50 , happyReduce_50), 251 (51 , happyReduce_51), 252 (52 , happyReduce_52), 253 (53 , happyReduce_53), 254 (54 , happyReduce_54) 255 ] 256 257happy_n_terms = 30 :: Int 258happy_n_nonterms = 19 :: Int 259 260happyReduce_1 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 261happyReduce_1 = happyReduce 5# 0# happyReduction_1 262happyReduction_1 (happy_x_5 `HappyStk` 263 happy_x_4 `HappyStk` 264 happy_x_3 `HappyStk` 265 happy_x_2 `HappyStk` 266 happy_x_1 `HappyStk` 267 happyRest) 268 = case happyOut22 happy_x_1 of { (HappyWrap22 happy_var_1) -> 269 case happyOut16 happy_x_2 of { (HappyWrap16 happy_var_2) -> 270 case happyOut5 happy_x_4 of { (HappyWrap5 happy_var_4) -> 271 case happyOut22 happy_x_5 of { (HappyWrap22 happy_var_5) -> 272 happyIn4 273 (AbsSyn happy_var_1 (reverse happy_var_2) (reverse happy_var_4) happy_var_5 274 ) `HappyStk` happyRest}}}} 275 276happyReduce_2 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 277happyReduce_2 = happySpecReduce_2 1# happyReduction_2 278happyReduction_2 happy_x_2 279 happy_x_1 280 = case happyOut5 happy_x_1 of { (HappyWrap5 happy_var_1) -> 281 case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) -> 282 happyIn5 283 (happy_var_2 : happy_var_1 284 )}} 285 286happyReduce_3 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 287happyReduce_3 = happySpecReduce_1 1# happyReduction_3 288happyReduction_3 happy_x_1 289 = case happyOut6 happy_x_1 of { (HappyWrap6 happy_var_1) -> 290 happyIn5 291 ([happy_var_1] 292 )} 293 294happyReduce_4 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 295happyReduce_4 = happyReduce 6# 2# happyReduction_4 296happyReduction_4 (happy_x_6 `HappyStk` 297 happy_x_5 `HappyStk` 298 happy_x_4 `HappyStk` 299 happy_x_3 `HappyStk` 300 happy_x_2 `HappyStk` 301 happy_x_1 `HappyStk` 302 happyRest) 303 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) -> 304 case happyOut7 happy_x_2 of { (HappyWrap7 happy_var_2) -> 305 case happyOutTok happy_x_4 of { (TokenInfo happy_var_4 TokCodeQuote) -> 306 case happyOut9 happy_x_6 of { (HappyWrap9 happy_var_6) -> 307 happyIn6 308 (Rule happy_var_1 happy_var_2 happy_var_6 (Just happy_var_4) 309 ) `HappyStk` happyRest}}}} 310 311happyReduce_5 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 312happyReduce_5 = happyReduce 7# 2# happyReduction_5 313happyReduction_5 (happy_x_7 `HappyStk` 314 happy_x_6 `HappyStk` 315 happy_x_5 `HappyStk` 316 happy_x_4 `HappyStk` 317 happy_x_3 `HappyStk` 318 happy_x_2 `HappyStk` 319 happy_x_1 `HappyStk` 320 happyRest) 321 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) -> 322 case happyOut7 happy_x_2 of { (HappyWrap7 happy_var_2) -> 323 case happyOutTok happy_x_4 of { (TokenInfo happy_var_4 TokCodeQuote) -> 324 case happyOut9 happy_x_7 of { (HappyWrap9 happy_var_7) -> 325 happyIn6 326 (Rule happy_var_1 happy_var_2 happy_var_7 (Just happy_var_4) 327 ) `HappyStk` happyRest}}}} 328 329happyReduce_6 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 330happyReduce_6 = happyReduce 4# 2# happyReduction_6 331happyReduction_6 (happy_x_4 `HappyStk` 332 happy_x_3 `HappyStk` 333 happy_x_2 `HappyStk` 334 happy_x_1 `HappyStk` 335 happyRest) 336 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) -> 337 case happyOut7 happy_x_2 of { (HappyWrap7 happy_var_2) -> 338 case happyOut9 happy_x_4 of { (HappyWrap9 happy_var_4) -> 339 happyIn6 340 (Rule happy_var_1 happy_var_2 happy_var_4 Nothing 341 ) `HappyStk` happyRest}}} 342 343happyReduce_7 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 344happyReduce_7 = happySpecReduce_3 3# happyReduction_7 345happyReduction_7 happy_x_3 346 happy_x_2 347 happy_x_1 348 = case happyOut8 happy_x_2 of { (HappyWrap8 happy_var_2) -> 349 happyIn7 350 (reverse happy_var_2 351 )} 352 353happyReduce_8 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 354happyReduce_8 = happySpecReduce_0 3# happyReduction_8 355happyReduction_8 = happyIn7 356 ([] 357 ) 358 359happyReduce_9 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 360happyReduce_9 = happySpecReduce_1 4# happyReduction_9 361happyReduction_9 happy_x_1 362 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) -> 363 happyIn8 364 ([happy_var_1] 365 )} 366 367happyReduce_10 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 368happyReduce_10 = happySpecReduce_3 4# happyReduction_10 369happyReduction_10 happy_x_3 370 happy_x_2 371 happy_x_1 372 = case happyOut8 happy_x_1 of { (HappyWrap8 happy_var_1) -> 373 case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokId) -> 374 happyIn8 375 (happy_var_3 : happy_var_1 376 )}} 377 378happyReduce_11 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 379happyReduce_11 = happySpecReduce_3 5# happyReduction_11 380happyReduction_11 happy_x_3 381 happy_x_2 382 happy_x_1 383 = case happyOut10 happy_x_1 of { (HappyWrap10 happy_var_1) -> 384 case happyOut9 happy_x_3 of { (HappyWrap9 happy_var_3) -> 385 happyIn9 386 (happy_var_1 : happy_var_3 387 )}} 388 389happyReduce_12 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 390happyReduce_12 = happySpecReduce_1 5# happyReduction_12 391happyReduction_12 happy_x_1 392 = case happyOut10 happy_x_1 of { (HappyWrap10 happy_var_1) -> 393 happyIn9 394 ([happy_var_1] 395 )} 396 397happyReduce_13 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 398happyReduce_13 = happyMonadReduce 4# 6# happyReduction_13 399happyReduction_13 (happy_x_4 `HappyStk` 400 happy_x_3 `HappyStk` 401 happy_x_2 `HappyStk` 402 happy_x_1 `HappyStk` 403 happyRest) tk 404 = happyThen ((case happyOut12 happy_x_1 of { (HappyWrap12 happy_var_1) -> 405 case happyOut15 happy_x_2 of { (HappyWrap15 happy_var_2) -> 406 case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) -> 407 ( lineP >>= \l -> return (Prod happy_var_1 happy_var_3 l happy_var_2))}}}) 408 ) (\r -> happyReturn (happyIn10 r)) 409 410happyReduce_14 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 411happyReduce_14 = happyMonadReduce 3# 6# happyReduction_14 412happyReduction_14 (happy_x_3 `HappyStk` 413 happy_x_2 `HappyStk` 414 happy_x_1 `HappyStk` 415 happyRest) tk 416 = happyThen ((case happyOut12 happy_x_1 of { (HappyWrap12 happy_var_1) -> 417 case happyOut15 happy_x_2 of { (HappyWrap15 happy_var_2) -> 418 case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) -> 419 ( lineP >>= \l -> return (Prod happy_var_1 happy_var_3 l happy_var_2))}}}) 420 ) (\r -> happyReturn (happyIn10 r)) 421 422happyReduce_15 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 423happyReduce_15 = happySpecReduce_1 7# happyReduction_15 424happyReduction_15 happy_x_1 425 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) -> 426 happyIn11 427 (App happy_var_1 [] 428 )} 429 430happyReduce_16 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 431happyReduce_16 = happyReduce 4# 7# happyReduction_16 432happyReduction_16 (happy_x_4 `HappyStk` 433 happy_x_3 `HappyStk` 434 happy_x_2 `HappyStk` 435 happy_x_1 `HappyStk` 436 happyRest) 437 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) -> 438 case happyOut14 happy_x_3 of { (HappyWrap14 happy_var_3) -> 439 happyIn11 440 (App happy_var_1 (reverse happy_var_3) 441 ) `HappyStk` happyRest}} 442 443happyReduce_17 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 444happyReduce_17 = happySpecReduce_1 8# happyReduction_17 445happyReduction_17 happy_x_1 446 = case happyOut13 happy_x_1 of { (HappyWrap13 happy_var_1) -> 447 happyIn12 448 (reverse happy_var_1 449 )} 450 451happyReduce_18 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 452happyReduce_18 = happySpecReduce_0 8# happyReduction_18 453happyReduction_18 = happyIn12 454 ([] 455 ) 456 457happyReduce_19 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 458happyReduce_19 = happySpecReduce_1 9# happyReduction_19 459happyReduction_19 happy_x_1 460 = case happyOut11 happy_x_1 of { (HappyWrap11 happy_var_1) -> 461 happyIn13 462 ([happy_var_1] 463 )} 464 465happyReduce_20 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 466happyReduce_20 = happySpecReduce_2 9# happyReduction_20 467happyReduction_20 happy_x_2 468 happy_x_1 469 = case happyOut13 happy_x_1 of { (HappyWrap13 happy_var_1) -> 470 case happyOut11 happy_x_2 of { (HappyWrap11 happy_var_2) -> 471 happyIn13 472 (happy_var_2 : happy_var_1 473 )}} 474 475happyReduce_21 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 476happyReduce_21 = happySpecReduce_1 10# happyReduction_21 477happyReduction_21 happy_x_1 478 = case happyOut11 happy_x_1 of { (HappyWrap11 happy_var_1) -> 479 happyIn14 480 ([happy_var_1] 481 )} 482 483happyReduce_22 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 484happyReduce_22 = happySpecReduce_3 10# happyReduction_22 485happyReduction_22 happy_x_3 486 happy_x_2 487 happy_x_1 488 = case happyOut14 happy_x_1 of { (HappyWrap14 happy_var_1) -> 489 case happyOut11 happy_x_3 of { (HappyWrap11 happy_var_3) -> 490 happyIn14 491 (happy_var_3 : happy_var_1 492 )}} 493 494happyReduce_23 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 495happyReduce_23 = happySpecReduce_2 11# happyReduction_23 496happyReduction_23 happy_x_2 497 happy_x_1 498 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) -> 499 happyIn15 500 (PrecId happy_var_2 501 )} 502 503happyReduce_24 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 504happyReduce_24 = happySpecReduce_1 11# happyReduction_24 505happyReduction_24 happy_x_1 506 = happyIn15 507 (PrecShift 508 ) 509 510happyReduce_25 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 511happyReduce_25 = happySpecReduce_0 11# happyReduction_25 512happyReduction_25 = happyIn15 513 (PrecNone 514 ) 515 516happyReduce_26 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 517happyReduce_26 = happySpecReduce_2 12# happyReduction_26 518happyReduction_26 happy_x_2 519 happy_x_1 520 = case happyOut16 happy_x_1 of { (HappyWrap16 happy_var_1) -> 521 case happyOut17 happy_x_2 of { (HappyWrap17 happy_var_2) -> 522 happyIn16 523 (happy_var_2 : happy_var_1 524 )}} 525 526happyReduce_27 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 527happyReduce_27 = happySpecReduce_1 12# happyReduction_27 528happyReduction_27 happy_x_1 529 = case happyOut17 happy_x_1 of { (HappyWrap17 happy_var_1) -> 530 happyIn16 531 ([happy_var_1] 532 )} 533 534happyReduce_28 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 535happyReduce_28 = happySpecReduce_2 13# happyReduction_28 536happyReduction_28 happy_x_2 537 happy_x_1 538 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) -> 539 happyIn17 540 (TokenType happy_var_2 541 )} 542 543happyReduce_29 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 544happyReduce_29 = happySpecReduce_2 13# happyReduction_29 545happyReduction_29 happy_x_2 546 happy_x_1 547 = case happyOut19 happy_x_2 of { (HappyWrap19 happy_var_2) -> 548 happyIn17 549 (TokenSpec happy_var_2 550 )} 551 552happyReduce_30 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 553happyReduce_30 = happySpecReduce_3 13# happyReduction_30 554happyReduction_30 happy_x_3 555 happy_x_2 556 happy_x_1 557 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) -> 558 case happyOut18 happy_x_3 of { (HappyWrap18 happy_var_3) -> 559 happyIn17 560 (TokenName happy_var_2 happy_var_3 False 561 )}} 562 563happyReduce_31 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 564happyReduce_31 = happySpecReduce_3 13# happyReduction_31 565happyReduction_31 happy_x_3 566 happy_x_2 567 happy_x_1 568 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) -> 569 case happyOut18 happy_x_3 of { (HappyWrap18 happy_var_3) -> 570 happyIn17 571 (TokenName happy_var_2 happy_var_3 True 572 )}} 573 574happyReduce_32 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 575happyReduce_32 = happySpecReduce_1 13# happyReduction_32 576happyReduction_32 happy_x_1 577 = happyIn17 578 (TokenImportedIdentity 579 ) 580 581happyReduce_33 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 582happyReduce_33 = happySpecReduce_3 13# happyReduction_33 583happyReduction_33 happy_x_3 584 happy_x_2 585 happy_x_1 586 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) -> 587 case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) -> 588 happyIn17 589 (TokenLexer happy_var_2 happy_var_3 590 )}} 591 592happyReduce_34 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 593happyReduce_34 = happySpecReduce_2 13# happyReduction_34 594happyReduction_34 happy_x_2 595 happy_x_1 596 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) -> 597 happyIn17 598 (TokenMonad "()" happy_var_2 "Prelude.>>=" "Prelude.return" 599 )} 600 601happyReduce_35 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 602happyReduce_35 = happySpecReduce_3 13# happyReduction_35 603happyReduction_35 happy_x_3 604 happy_x_2 605 happy_x_1 606 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) -> 607 case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) -> 608 happyIn17 609 (TokenMonad happy_var_2 happy_var_3 "Prelude.>>=" "Prelude.return" 610 )}} 611 612happyReduce_36 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 613happyReduce_36 = happyReduce 4# 13# happyReduction_36 614happyReduction_36 (happy_x_4 `HappyStk` 615 happy_x_3 `HappyStk` 616 happy_x_2 `HappyStk` 617 happy_x_1 `HappyStk` 618 happyRest) 619 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) -> 620 case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) -> 621 case happyOutTok happy_x_4 of { (TokenInfo happy_var_4 TokCodeQuote) -> 622 happyIn17 623 (TokenMonad "()" happy_var_2 happy_var_3 happy_var_4 624 ) `HappyStk` happyRest}}} 625 626happyReduce_37 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 627happyReduce_37 = happyReduce 5# 13# happyReduction_37 628happyReduction_37 (happy_x_5 `HappyStk` 629 happy_x_4 `HappyStk` 630 happy_x_3 `HappyStk` 631 happy_x_2 `HappyStk` 632 happy_x_1 `HappyStk` 633 happyRest) 634 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) -> 635 case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) -> 636 case happyOutTok happy_x_4 of { (TokenInfo happy_var_4 TokCodeQuote) -> 637 case happyOutTok happy_x_5 of { (TokenInfo happy_var_5 TokCodeQuote) -> 638 happyIn17 639 (TokenMonad happy_var_2 happy_var_3 happy_var_4 happy_var_5 640 ) `HappyStk` happyRest}}}} 641 642happyReduce_38 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 643happyReduce_38 = happySpecReduce_2 13# happyReduction_38 644happyReduction_38 happy_x_2 645 happy_x_1 646 = case happyOut21 happy_x_2 of { (HappyWrap21 happy_var_2) -> 647 happyIn17 648 (TokenNonassoc happy_var_2 649 )} 650 651happyReduce_39 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 652happyReduce_39 = happySpecReduce_2 13# happyReduction_39 653happyReduction_39 happy_x_2 654 happy_x_1 655 = case happyOut21 happy_x_2 of { (HappyWrap21 happy_var_2) -> 656 happyIn17 657 (TokenRight happy_var_2 658 )} 659 660happyReduce_40 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 661happyReduce_40 = happySpecReduce_2 13# happyReduction_40 662happyReduction_40 happy_x_2 663 happy_x_1 664 = case happyOut21 happy_x_2 of { (HappyWrap21 happy_var_2) -> 665 happyIn17 666 (TokenLeft happy_var_2 667 )} 668 669happyReduce_41 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 670happyReduce_41 = happySpecReduce_2 13# happyReduction_41 671happyReduction_41 happy_x_2 672 happy_x_1 673 = case happyOutTok happy_x_2 of { (TokenNum happy_var_2 TokNum) -> 674 happyIn17 675 (TokenExpect happy_var_2 676 )} 677 678happyReduce_42 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 679happyReduce_42 = happySpecReduce_2 13# happyReduction_42 680happyReduction_42 happy_x_2 681 happy_x_1 682 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) -> 683 happyIn17 684 (TokenError happy_var_2 685 )} 686 687happyReduce_43 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 688happyReduce_43 = happySpecReduce_2 13# happyReduction_43 689happyReduction_43 happy_x_2 690 happy_x_1 691 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) -> 692 happyIn17 693 (TokenErrorHandlerType happy_var_2 694 )} 695 696happyReduce_44 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 697happyReduce_44 = happySpecReduce_2 13# happyReduction_44 698happyReduction_44 happy_x_2 699 happy_x_1 700 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) -> 701 happyIn17 702 (TokenAttributetype happy_var_2 703 )} 704 705happyReduce_45 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 706happyReduce_45 = happySpecReduce_3 13# happyReduction_45 707happyReduction_45 happy_x_3 708 happy_x_2 709 happy_x_1 710 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) -> 711 case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) -> 712 happyIn17 713 (TokenAttribute happy_var_2 happy_var_3 714 )}} 715 716happyReduce_46 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 717happyReduce_46 = happySpecReduce_1 14# happyReduction_46 718happyReduction_46 happy_x_1 719 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) -> 720 happyIn18 721 (Just happy_var_1 722 )} 723 724happyReduce_47 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 725happyReduce_47 = happySpecReduce_0 14# happyReduction_47 726happyReduction_47 = happyIn18 727 (Nothing 728 ) 729 730happyReduce_48 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 731happyReduce_48 = happySpecReduce_2 15# happyReduction_48 732happyReduction_48 happy_x_2 733 happy_x_1 734 = case happyOut20 happy_x_1 of { (HappyWrap20 happy_var_1) -> 735 case happyOut19 happy_x_2 of { (HappyWrap19 happy_var_2) -> 736 happyIn19 737 (happy_var_1:happy_var_2 738 )}} 739 740happyReduce_49 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 741happyReduce_49 = happySpecReduce_1 15# happyReduction_49 742happyReduction_49 happy_x_1 743 = case happyOut20 happy_x_1 of { (HappyWrap20 happy_var_1) -> 744 happyIn19 745 ([happy_var_1] 746 )} 747 748happyReduce_50 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 749happyReduce_50 = happySpecReduce_2 16# happyReduction_50 750happyReduction_50 happy_x_2 751 happy_x_1 752 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) -> 753 case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) -> 754 happyIn20 755 ((happy_var_1,happy_var_2) 756 )}} 757 758happyReduce_51 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 759happyReduce_51 = happySpecReduce_2 17# happyReduction_51 760happyReduction_51 happy_x_2 761 happy_x_1 762 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) -> 763 case happyOut21 happy_x_2 of { (HappyWrap21 happy_var_2) -> 764 happyIn21 765 (happy_var_1 : happy_var_2 766 )}} 767 768happyReduce_52 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 769happyReduce_52 = happySpecReduce_0 17# happyReduction_52 770happyReduction_52 = happyIn21 771 ([] 772 ) 773 774happyReduce_53 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 775happyReduce_53 = happySpecReduce_1 18# happyReduction_53 776happyReduction_53 happy_x_1 777 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokCodeQuote) -> 778 happyIn22 779 (Just happy_var_1 780 )} 781 782happyReduce_54 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 783happyReduce_54 = happySpecReduce_0 18# happyReduction_54 784happyReduction_54 = happyIn22 785 (Nothing 786 ) 787 788happyNewToken action sts stk 789 = lexer(\tk -> 790 let cont i = happyDoAction i tk action sts stk in 791 case tk of { 792 TokenEOF -> happyDoAction 29# tk action sts stk; 793 TokenInfo happy_dollar_dollar TokId -> cont 1#; 794 TokenKW TokSpecId_TokenType -> cont 2#; 795 TokenKW TokSpecId_Token -> cont 3#; 796 TokenKW TokSpecId_Name -> cont 4#; 797 TokenKW TokSpecId_Partial -> cont 5#; 798 TokenKW TokSpecId_Lexer -> cont 6#; 799 TokenKW TokSpecId_ImportedIdentity -> cont 7#; 800 TokenKW TokSpecId_Monad -> cont 8#; 801 TokenKW TokSpecId_Nonassoc -> cont 9#; 802 TokenKW TokSpecId_Left -> cont 10#; 803 TokenKW TokSpecId_Right -> cont 11#; 804 TokenKW TokSpecId_Prec -> cont 12#; 805 TokenKW TokSpecId_Shift -> cont 13#; 806 TokenKW TokSpecId_Expect -> cont 14#; 807 TokenKW TokSpecId_Error -> cont 15#; 808 TokenKW TokSpecId_ErrorHandlerType -> cont 16#; 809 TokenKW TokSpecId_Attribute -> cont 17#; 810 TokenKW TokSpecId_Attributetype -> cont 18#; 811 TokenInfo happy_dollar_dollar TokCodeQuote -> cont 19#; 812 TokenNum happy_dollar_dollar TokNum -> cont 20#; 813 TokenKW TokColon -> cont 21#; 814 TokenKW TokSemiColon -> cont 22#; 815 TokenKW TokDoubleColon -> cont 23#; 816 TokenKW TokDoublePercent -> cont 24#; 817 TokenKW TokBar -> cont 25#; 818 TokenKW TokParenL -> cont 26#; 819 TokenKW TokParenR -> cont 27#; 820 TokenKW TokComma -> cont 28#; 821 _ -> happyError' (tk, []) 822 }) 823 824happyError_ explist 29# tk = happyError' (tk, explist) 825happyError_ explist _ tk = happyError' (tk, explist) 826 827happyThen :: () => P a -> (a -> P b) -> P b 828happyThen = (>>=) 829happyReturn :: () => a -> P a 830happyReturn = (return) 831happyParse :: () => Happy_GHC_Exts.Int# -> P (HappyAbsSyn ) 832 833happyNewToken :: () => Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 834 835happyDoAction :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ) 836 837happyReduceArr :: () => Happy_Data_Array.Array Int (Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )) 838 839happyThen1 :: () => P a -> (a -> P b) -> P b 840happyThen1 = happyThen 841happyReturn1 :: () => a -> P a 842happyReturn1 = happyReturn 843happyError' :: () => ((Token), [String]) -> P a 844happyError' tk = (\(tokens, explist) -> happyError) tk 845ourParser = happySomeParser where 846 happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (let {(HappyWrap4 x') = happyOut4 x} in x')) 847 848happySeq = happyDontSeq 849 850 851happyError :: P a 852happyError = lineP >>= \l -> failP (show l ++ ": Parse error\n") 853{-# LINE 1 "templates/GenericTemplate.hs" #-} 854-- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $ 855 856 857 858 859 860 861 862 863 864 865 866 867 868-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex. 869#if __GLASGOW_HASKELL__ > 706 870#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Bool) 871#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Bool) 872#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Bool) 873#else 874#define LT(n,m) (n Happy_GHC_Exts.<# m) 875#define GTE(n,m) (n Happy_GHC_Exts.>=# m) 876#define EQ(n,m) (n Happy_GHC_Exts.==# m) 877#endif 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938infixr 9 `HappyStk` 939data HappyStk a = HappyStk a (HappyStk a) 940 941----------------------------------------------------------------------------- 942-- starting the parse 943 944happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll 945 946----------------------------------------------------------------------------- 947-- Accepting the parse 948 949-- If the current token is ERROR_TOK, it means we've just accepted a partial 950-- parse (a %partial parser). We must ignore the saved token on the top of 951-- the stack in this case. 952happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) = 953 happyReturn1 ans 954happyAccept j tk st sts (HappyStk ans _) = 955 (happyTcHack j (happyTcHack st)) (happyReturn1 ans) 956 957----------------------------------------------------------------------------- 958-- Arrays only: do the next action 959 960 961 962happyDoAction i tk st 963 = {- nothing -} 964 case action of 965 0# -> {- nothing -} 966 happyFail (happyExpListPerState ((Happy_GHC_Exts.I# (st)) :: Int)) i tk st 967 -1# -> {- nothing -} 968 happyAccept i tk st 969 n | LT(n,(0# :: Happy_GHC_Exts.Int#)) -> {- nothing -} 970 (happyReduceArr Happy_Data_Array.! rule) i tk st 971 where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#)))))) 972 n -> {- nothing -} 973 happyShift new_state i tk st 974 where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) 975 where off = happyAdjustOffset (indexShortOffAddr happyActOffsets st) 976 off_i = (off Happy_GHC_Exts.+# i) 977 check = if GTE(off_i,(0# :: Happy_GHC_Exts.Int#)) 978 then EQ(indexShortOffAddr happyCheck off_i, i) 979 else False 980 action 981 | check = indexShortOffAddr happyTable off_i 982 | otherwise = indexShortOffAddr happyDefActions st 983 984 985 986 987indexShortOffAddr (HappyA# arr) off = 988 Happy_GHC_Exts.narrow16Int# i 989 where 990 i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low) 991 high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#))) 992 low = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off')) 993 off' = off Happy_GHC_Exts.*# 2# 994 995 996 997 998{-# INLINE happyLt #-} 999happyLt x y = LT(x,y) 1000 1001 1002readArrayBit arr bit = 1003 Bits.testBit (Happy_GHC_Exts.I# (indexShortOffAddr arr ((unbox_int bit) `Happy_GHC_Exts.iShiftRA#` 4#))) (bit `mod` 16) 1004 where unbox_int (Happy_GHC_Exts.I# x) = x 1005 1006 1007 1008 1009 1010 1011data HappyAddr = HappyA# Happy_GHC_Exts.Addr# 1012 1013 1014----------------------------------------------------------------------------- 1015-- HappyState data type (not arrays) 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029----------------------------------------------------------------------------- 1030-- Shifting a token 1031 1032happyShift new_state 0# tk st sts stk@(x `HappyStk` _) = 1033 let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in 1034-- trace "shifting the error token" $ 1035 happyDoAction i tk new_state (HappyCons (st) (sts)) (stk) 1036 1037happyShift new_state i tk st sts stk = 1038 happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk) 1039 1040-- happyReduce is specialised for the common cases. 1041 1042happySpecReduce_0 i fn 0# tk st sts stk 1043 = happyFail [] 0# tk st sts stk 1044happySpecReduce_0 nt fn j tk st@((action)) sts stk 1045 = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk) 1046 1047happySpecReduce_1 i fn 0# tk st sts stk 1048 = happyFail [] 0# tk st sts stk 1049happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk') 1050 = let r = fn v1 in 1051 happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk')) 1052 1053happySpecReduce_2 i fn 0# tk st sts stk 1054 = happyFail [] 0# tk st sts stk 1055happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk') 1056 = let r = fn v1 v2 in 1057 happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk')) 1058 1059happySpecReduce_3 i fn 0# tk st sts stk 1060 = happyFail [] 0# tk st sts stk 1061happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk') 1062 = let r = fn v1 v2 v3 in 1063 happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk')) 1064 1065happyReduce k i fn 0# tk st sts stk 1066 = happyFail [] 0# tk st sts stk 1067happyReduce k nt fn j tk st sts stk 1068 = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of 1069 sts1@((HappyCons (st1@(action)) (_))) -> 1070 let r = fn stk in -- it doesn't hurt to always seq here... 1071 happyDoSeq r (happyGoto nt j tk st1 sts1 r) 1072 1073happyMonadReduce k nt fn 0# tk st sts stk 1074 = happyFail [] 0# tk st sts stk 1075happyMonadReduce k nt fn j tk st sts stk = 1076 case happyDrop k (HappyCons (st) (sts)) of 1077 sts1@((HappyCons (st1@(action)) (_))) -> 1078 let drop_stk = happyDropStk k stk in 1079 happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk)) 1080 1081happyMonad2Reduce k nt fn 0# tk st sts stk 1082 = happyFail [] 0# tk st sts stk 1083happyMonad2Reduce k nt fn j tk st sts stk = 1084 case happyDrop k (HappyCons (st) (sts)) of 1085 sts1@((HappyCons (st1@(action)) (_))) -> 1086 let drop_stk = happyDropStk k stk 1087 1088 off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st1) 1089 off_i = (off Happy_GHC_Exts.+# nt) 1090 new_state = indexShortOffAddr happyTable off_i 1091 1092 1093 1094 1095 in 1096 happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk)) 1097 1098happyDrop 0# l = l 1099happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t 1100 1101happyDropStk 0# l = l 1102happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs 1103 1104----------------------------------------------------------------------------- 1105-- Moving to a new state after a reduction 1106 1107 1108happyGoto nt j tk st = 1109 {- nothing -} 1110 happyDoAction j tk new_state 1111 where off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st) 1112 off_i = (off Happy_GHC_Exts.+# nt) 1113 new_state = indexShortOffAddr happyTable off_i 1114 1115 1116 1117 1118----------------------------------------------------------------------------- 1119-- Error recovery (ERROR_TOK is the error token) 1120 1121-- parse error if we are in recovery and we fail again 1122happyFail explist 0# tk old_st _ stk@(x `HappyStk` _) = 1123 let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in 1124-- trace "failing" $ 1125 happyError_ explist i tk 1126 1127{- We don't need state discarding for our restricted implementation of 1128 "error". In fact, it can cause some bogus parses, so I've disabled it 1129 for now --SDM 1130 1131-- discard a state 1132happyFail ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts) 1133 (saved_tok `HappyStk` _ `HappyStk` stk) = 1134-- trace ("discarding state, depth " ++ show (length stk)) $ 1135 DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk)) 1136-} 1137 1138-- Enter error recovery: generate an error token, 1139-- save the old token and carry on. 1140happyFail explist i tk (action) sts stk = 1141-- trace "entering error recovery" $ 1142 happyDoAction 0# tk action sts ((Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk) 1143 1144-- Internal happy errors: 1145 1146notHappyAtAll :: a 1147notHappyAtAll = error "Internal Happy error\n" 1148 1149----------------------------------------------------------------------------- 1150-- Hack to get the typechecker to accept our action functions 1151 1152 1153happyTcHack :: Happy_GHC_Exts.Int# -> a -> a 1154happyTcHack x y = y 1155{-# INLINE happyTcHack #-} 1156 1157 1158----------------------------------------------------------------------------- 1159-- Seq-ing. If the --strict flag is given, then Happy emits 1160-- happySeq = happyDoSeq 1161-- otherwise it emits 1162-- happySeq = happyDontSeq 1163 1164happyDoSeq, happyDontSeq :: a -> b -> b 1165happyDoSeq a b = a `seq` b 1166happyDontSeq a b = b 1167 1168----------------------------------------------------------------------------- 1169-- Don't inline any functions from the template. GHC has a nasty habit 1170-- of deciding to inline happyGoto everywhere, which increases the size of 1171-- the generated parser quite a bit. 1172 1173 1174{-# NOINLINE happyDoAction #-} 1175{-# NOINLINE happyTable #-} 1176{-# NOINLINE happyCheck #-} 1177{-# NOINLINE happyActOffsets #-} 1178{-# NOINLINE happyGotoOffsets #-} 1179{-# NOINLINE happyDefActions #-} 1180 1181{-# NOINLINE happyShift #-} 1182{-# NOINLINE happySpecReduce_0 #-} 1183{-# NOINLINE happySpecReduce_1 #-} 1184{-# NOINLINE happySpecReduce_2 #-} 1185{-# NOINLINE happySpecReduce_3 #-} 1186{-# NOINLINE happyReduce #-} 1187{-# NOINLINE happyMonadReduce #-} 1188{-# NOINLINE happyGoto #-} 1189{-# NOINLINE happyFail #-} 1190 1191-- end of Happy Template. 1192