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