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.10
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 (Maybe String)
103happyIn15 :: (Maybe String) -> (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\x80\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\xf8\xdf\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xf7\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x08\x00\x00\x00\x10\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x02\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\x40\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\x80\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x01\x00\x02\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\xa0\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\x18\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x10\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\x20\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x10\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\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\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_expect","spec_error","spec_errorhandlertype","spec_attribute","spec_attributetype","code","int","\":\"","\";\"","\"::\"","\"%%\"","\"|\"","\"(\"","\")\"","\",\"","%eof"]
173        bit_start = st * 50
174        bit_end = (st + 1) * 50
175        read_bit = readArrayBit happyExpList
176        bits = map read_bit [bit_start..bit_end - 1]
177        bits_indexed = zip bits [0..49]
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\x33\x00\xff\xff\x00\x00\x1d\x00\x45\x00\x4f\x00\x50\x00\x40\x00\x00\x00\x41\x00\x53\x00\x53\x00\x53\x00\x42\x00\x44\x00\x56\x00\x57\x00\x47\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x5d\x00\x5d\x00\x00\x00\x5e\x00\x4e\x00\x00\x00\x00\x00\x60\x00\x12\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x52\x00\x09\x00\x61\x00\x00\x00\x00\x00\x06\x00\x00\x00\x65\x00\x55\x00\x00\x00\x0a\x00\x00\x00\x54\x00\x00\x00\x5c\x00\x68\x00\x58\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x5b\x00\x6d\x00\x6e\x00\x5f\x00\x6f\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x62\x00\x00\x00\x2a\x00\x00\x00\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
184
185happyGotoOffsets :: HappyAddr
186happyGotoOffsets = HappyA# "\x11\x00\x63\x00\x3b\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x6c\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x76\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x48\x00\x10\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x35\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\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# "\xca\xff\x00\x00\x00\x00\xcb\xff\x00\x00\x00\x00\xe5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x00\x00\xcc\xff\xcc\xff\xcc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xff\x00\x00\xd5\xff\xd6\xff\xd7\xff\xd9\xff\xcc\xff\xd8\xff\xda\xff\xde\xff\x00\x00\xd1\xff\xd1\xff\xe3\xff\xcf\xff\x00\x00\xe4\xff\xe6\xff\x00\x00\xca\xff\xfc\xff\xf7\xff\xce\xff\xd0\xff\xe2\xff\xd2\xff\xe1\xff\xdf\xff\xdd\xff\xcd\xff\xd3\xff\xdc\xff\x00\x00\x00\x00\xfd\xff\xfe\xff\x00\x00\xf6\xff\xed\xff\x00\x00\xdb\xff\x00\x00\xf9\xff\xf3\xff\xec\xff\xe7\xff\xee\xff\xf0\xff\xf8\xff\x00\x00\xf5\xff\x00\x00\xeb\xff\x00\x00\x00\x00\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\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x00\x00\x02\x00\x01\x00\x07\x00\x12\x00\x17\x00\x0a\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x14\x00\x14\x00\x16\x00\x1a\x00\x1b\x00\x12\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\x12\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\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\x1a\x00\x1b\x00\x01\x00\x0c\x00\x0d\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x0f\x00\x10\x00\x1c\x00\x01\x00\x01\x00\x12\x00\x12\x00\x01\x00\x13\x00\x12\x00\x01\x00\x01\x00\x12\x00\x01\x00\x12\x00\x12\x00\x12\x00\x01\x00\x01\x00\x12\x00\x01\x00\x01\x00\x12\x00\x12\x00\x19\x00\x01\x00\x12\x00\x0c\x00\x01\x00\x01\x00\x01\x00\x18\x00\x12\x00\x01\x00\x01\x00\x01\x00\x19\x00\x01\x00\x14\x00\x0d\x00\x12\x00\x03\x00\x15\x00\xff\xff\x04\x00\xff\xff\xff\xff\x11\x00\x11\x00\x07\x00\x07\x00\xff\xff\x11\x00\x0e\x00\x11\x00\x0e\x00\x0b\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"#
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\x4f\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x04\x00\x38\x00\x2c\x00\x55\x00\x04\x00\x29\x00\x56\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x3d\x00\x50\x00\x3e\x00\x47\x00\x48\x00\x39\x00\x02\x00\x04\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x27\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x52\x00\x41\x00\x42\x00\x43\x00\x44\x00\x50\x00\x41\x00\x42\x00\x43\x00\x44\x00\x5a\x00\x41\x00\x42\x00\x43\x00\x44\x00\x58\x00\x59\x00\x26\x00\x05\x00\x06\x00\x29\x00\x2a\x00\x23\x00\x24\x00\x2d\x00\x24\x00\xff\xff\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\x2d\x00\x2c\x00\x3c\x00\x36\x00\x3f\x00\x38\x00\x46\x00\x40\x00\x4d\x00\x46\x00\x49\x00\x46\x00\x4e\x00\x55\x00\x54\x00\x46\x00\x46\x00\x4a\x00\x46\x00\x52\x00\x27\x00\x02\x00\x36\x00\x5a\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x1e\x00\x1d\x00\x4a\x00\x5b\x00\x00\x00\x1b\x00\x30\x00\x33\x00\x2e\x00\x4b\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, 53) [
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	]
255
256happy_n_terms = 29 :: Int
257happy_n_nonterms = 19 :: Int
258
259happyReduce_1 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
260happyReduce_1 = happyReduce 5# 0# happyReduction_1
261happyReduction_1 (happy_x_5 `HappyStk`
262	happy_x_4 `HappyStk`
263	happy_x_3 `HappyStk`
264	happy_x_2 `HappyStk`
265	happy_x_1 `HappyStk`
266	happyRest)
267	 = case happyOut22 happy_x_1 of { (HappyWrap22 happy_var_1) ->
268	case happyOut16 happy_x_2 of { (HappyWrap16 happy_var_2) ->
269	case happyOut5 happy_x_4 of { (HappyWrap5 happy_var_4) ->
270	case happyOut22 happy_x_5 of { (HappyWrap22 happy_var_5) ->
271	happyIn4
272		 (AbsSyn happy_var_1 (reverse happy_var_2) (reverse happy_var_4) happy_var_5
273	) `HappyStk` happyRest}}}}
274
275happyReduce_2 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
276happyReduce_2 = happySpecReduce_2  1# happyReduction_2
277happyReduction_2 happy_x_2
278	happy_x_1
279	 =  case happyOut5 happy_x_1 of { (HappyWrap5 happy_var_1) ->
280	case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) ->
281	happyIn5
282		 (happy_var_2 : happy_var_1
283	)}}
284
285happyReduce_3 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
286happyReduce_3 = happySpecReduce_1  1# happyReduction_3
287happyReduction_3 happy_x_1
288	 =  case happyOut6 happy_x_1 of { (HappyWrap6 happy_var_1) ->
289	happyIn5
290		 ([happy_var_1]
291	)}
292
293happyReduce_4 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
294happyReduce_4 = happyReduce 6# 2# happyReduction_4
295happyReduction_4 (happy_x_6 `HappyStk`
296	happy_x_5 `HappyStk`
297	happy_x_4 `HappyStk`
298	happy_x_3 `HappyStk`
299	happy_x_2 `HappyStk`
300	happy_x_1 `HappyStk`
301	happyRest)
302	 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) ->
303	case happyOut7 happy_x_2 of { (HappyWrap7 happy_var_2) ->
304	case happyOutTok happy_x_4 of { (TokenInfo happy_var_4 TokCodeQuote) ->
305	case happyOut9 happy_x_6 of { (HappyWrap9 happy_var_6) ->
306	happyIn6
307		 ((happy_var_1,happy_var_2,happy_var_6,Just happy_var_4)
308	) `HappyStk` happyRest}}}}
309
310happyReduce_5 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
311happyReduce_5 = happyReduce 7# 2# happyReduction_5
312happyReduction_5 (happy_x_7 `HappyStk`
313	happy_x_6 `HappyStk`
314	happy_x_5 `HappyStk`
315	happy_x_4 `HappyStk`
316	happy_x_3 `HappyStk`
317	happy_x_2 `HappyStk`
318	happy_x_1 `HappyStk`
319	happyRest)
320	 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) ->
321	case happyOut7 happy_x_2 of { (HappyWrap7 happy_var_2) ->
322	case happyOutTok happy_x_4 of { (TokenInfo happy_var_4 TokCodeQuote) ->
323	case happyOut9 happy_x_7 of { (HappyWrap9 happy_var_7) ->
324	happyIn6
325		 ((happy_var_1,happy_var_2,happy_var_7,Just happy_var_4)
326	) `HappyStk` happyRest}}}}
327
328happyReduce_6 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
329happyReduce_6 = happyReduce 4# 2# happyReduction_6
330happyReduction_6 (happy_x_4 `HappyStk`
331	happy_x_3 `HappyStk`
332	happy_x_2 `HappyStk`
333	happy_x_1 `HappyStk`
334	happyRest)
335	 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) ->
336	case happyOut7 happy_x_2 of { (HappyWrap7 happy_var_2) ->
337	case happyOut9 happy_x_4 of { (HappyWrap9 happy_var_4) ->
338	happyIn6
339		 ((happy_var_1,happy_var_2,happy_var_4,Nothing)
340	) `HappyStk` happyRest}}}
341
342happyReduce_7 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
343happyReduce_7 = happySpecReduce_3  3# happyReduction_7
344happyReduction_7 happy_x_3
345	happy_x_2
346	happy_x_1
347	 =  case happyOut8 happy_x_2 of { (HappyWrap8 happy_var_2) ->
348	happyIn7
349		 (reverse happy_var_2
350	)}
351
352happyReduce_8 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
353happyReduce_8 = happySpecReduce_0  3# happyReduction_8
354happyReduction_8  =  happyIn7
355		 ([]
356	)
357
358happyReduce_9 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
359happyReduce_9 = happySpecReduce_1  4# happyReduction_9
360happyReduction_9 happy_x_1
361	 =  case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) ->
362	happyIn8
363		 ([happy_var_1]
364	)}
365
366happyReduce_10 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
367happyReduce_10 = happySpecReduce_3  4# happyReduction_10
368happyReduction_10 happy_x_3
369	happy_x_2
370	happy_x_1
371	 =  case happyOut8 happy_x_1 of { (HappyWrap8 happy_var_1) ->
372	case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokId) ->
373	happyIn8
374		 (happy_var_3 : happy_var_1
375	)}}
376
377happyReduce_11 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
378happyReduce_11 = happySpecReduce_3  5# happyReduction_11
379happyReduction_11 happy_x_3
380	happy_x_2
381	happy_x_1
382	 =  case happyOut10 happy_x_1 of { (HappyWrap10 happy_var_1) ->
383	case happyOut9 happy_x_3 of { (HappyWrap9 happy_var_3) ->
384	happyIn9
385		 (happy_var_1 : happy_var_3
386	)}}
387
388happyReduce_12 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
389happyReduce_12 = happySpecReduce_1  5# happyReduction_12
390happyReduction_12 happy_x_1
391	 =  case happyOut10 happy_x_1 of { (HappyWrap10 happy_var_1) ->
392	happyIn9
393		 ([happy_var_1]
394	)}
395
396happyReduce_13 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
397happyReduce_13 = happyMonadReduce 4# 6# happyReduction_13
398happyReduction_13 (happy_x_4 `HappyStk`
399	happy_x_3 `HappyStk`
400	happy_x_2 `HappyStk`
401	happy_x_1 `HappyStk`
402	happyRest) tk
403	 = happyThen ((case happyOut12 happy_x_1 of { (HappyWrap12 happy_var_1) ->
404	case happyOut15 happy_x_2 of { (HappyWrap15 happy_var_2) ->
405	case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) ->
406	( lineP >>= \l -> return (happy_var_1,happy_var_3,l,happy_var_2))}}})
407	) (\r -> happyReturn (happyIn10 r))
408
409happyReduce_14 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
410happyReduce_14 = happyMonadReduce 3# 6# happyReduction_14
411happyReduction_14 (happy_x_3 `HappyStk`
412	happy_x_2 `HappyStk`
413	happy_x_1 `HappyStk`
414	happyRest) tk
415	 = happyThen ((case happyOut12 happy_x_1 of { (HappyWrap12 happy_var_1) ->
416	case happyOut15 happy_x_2 of { (HappyWrap15 happy_var_2) ->
417	case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) ->
418	( lineP >>= \l -> return (happy_var_1,happy_var_3,l,happy_var_2))}}})
419	) (\r -> happyReturn (happyIn10 r))
420
421happyReduce_15 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
422happyReduce_15 = happySpecReduce_1  7# happyReduction_15
423happyReduction_15 happy_x_1
424	 =  case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) ->
425	happyIn11
426		 (App happy_var_1 []
427	)}
428
429happyReduce_16 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
430happyReduce_16 = happyReduce 4# 7# happyReduction_16
431happyReduction_16 (happy_x_4 `HappyStk`
432	happy_x_3 `HappyStk`
433	happy_x_2 `HappyStk`
434	happy_x_1 `HappyStk`
435	happyRest)
436	 = case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) ->
437	case happyOut14 happy_x_3 of { (HappyWrap14 happy_var_3) ->
438	happyIn11
439		 (App happy_var_1 (reverse happy_var_3)
440	) `HappyStk` happyRest}}
441
442happyReduce_17 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
443happyReduce_17 = happySpecReduce_1  8# happyReduction_17
444happyReduction_17 happy_x_1
445	 =  case happyOut13 happy_x_1 of { (HappyWrap13 happy_var_1) ->
446	happyIn12
447		 (reverse happy_var_1
448	)}
449
450happyReduce_18 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
451happyReduce_18 = happySpecReduce_0  8# happyReduction_18
452happyReduction_18  =  happyIn12
453		 ([]
454	)
455
456happyReduce_19 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
457happyReduce_19 = happySpecReduce_1  9# happyReduction_19
458happyReduction_19 happy_x_1
459	 =  case happyOut11 happy_x_1 of { (HappyWrap11 happy_var_1) ->
460	happyIn13
461		 ([happy_var_1]
462	)}
463
464happyReduce_20 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
465happyReduce_20 = happySpecReduce_2  9# happyReduction_20
466happyReduction_20 happy_x_2
467	happy_x_1
468	 =  case happyOut13 happy_x_1 of { (HappyWrap13 happy_var_1) ->
469	case happyOut11 happy_x_2 of { (HappyWrap11 happy_var_2) ->
470	happyIn13
471		 (happy_var_2 : happy_var_1
472	)}}
473
474happyReduce_21 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
475happyReduce_21 = happySpecReduce_1  10# happyReduction_21
476happyReduction_21 happy_x_1
477	 =  case happyOut11 happy_x_1 of { (HappyWrap11 happy_var_1) ->
478	happyIn14
479		 ([happy_var_1]
480	)}
481
482happyReduce_22 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
483happyReduce_22 = happySpecReduce_3  10# happyReduction_22
484happyReduction_22 happy_x_3
485	happy_x_2
486	happy_x_1
487	 =  case happyOut14 happy_x_1 of { (HappyWrap14 happy_var_1) ->
488	case happyOut11 happy_x_3 of { (HappyWrap11 happy_var_3) ->
489	happyIn14
490		 (happy_var_3 : happy_var_1
491	)}}
492
493happyReduce_23 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
494happyReduce_23 = happySpecReduce_2  11# happyReduction_23
495happyReduction_23 happy_x_2
496	happy_x_1
497	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) ->
498	happyIn15
499		 (Just happy_var_2
500	)}
501
502happyReduce_24 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
503happyReduce_24 = happySpecReduce_0  11# happyReduction_24
504happyReduction_24  =  happyIn15
505		 (Nothing
506	)
507
508happyReduce_25 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
509happyReduce_25 = happySpecReduce_2  12# happyReduction_25
510happyReduction_25 happy_x_2
511	happy_x_1
512	 =  case happyOut16 happy_x_1 of { (HappyWrap16 happy_var_1) ->
513	case happyOut17 happy_x_2 of { (HappyWrap17 happy_var_2) ->
514	happyIn16
515		 (happy_var_2 : happy_var_1
516	)}}
517
518happyReduce_26 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
519happyReduce_26 = happySpecReduce_1  12# happyReduction_26
520happyReduction_26 happy_x_1
521	 =  case happyOut17 happy_x_1 of { (HappyWrap17 happy_var_1) ->
522	happyIn16
523		 ([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_2  13# happyReduction_27
528happyReduction_27 happy_x_2
529	happy_x_1
530	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) ->
531	happyIn17
532		 (TokenType happy_var_2
533	)}
534
535happyReduce_28 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
536happyReduce_28 = happySpecReduce_2  13# happyReduction_28
537happyReduction_28 happy_x_2
538	happy_x_1
539	 =  case happyOut19 happy_x_2 of { (HappyWrap19 happy_var_2) ->
540	happyIn17
541		 (TokenSpec happy_var_2
542	)}
543
544happyReduce_29 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
545happyReduce_29 = happySpecReduce_3  13# happyReduction_29
546happyReduction_29 happy_x_3
547	happy_x_2
548	happy_x_1
549	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) ->
550	case happyOut18 happy_x_3 of { (HappyWrap18 happy_var_3) ->
551	happyIn17
552		 (TokenName happy_var_2 happy_var_3 False
553	)}}
554
555happyReduce_30 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
556happyReduce_30 = happySpecReduce_3  13# happyReduction_30
557happyReduction_30 happy_x_3
558	happy_x_2
559	happy_x_1
560	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) ->
561	case happyOut18 happy_x_3 of { (HappyWrap18 happy_var_3) ->
562	happyIn17
563		 (TokenName happy_var_2 happy_var_3 True
564	)}}
565
566happyReduce_31 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
567happyReduce_31 = happySpecReduce_1  13# happyReduction_31
568happyReduction_31 happy_x_1
569	 =  happyIn17
570		 (TokenImportedIdentity
571	)
572
573happyReduce_32 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
574happyReduce_32 = happySpecReduce_3  13# happyReduction_32
575happyReduction_32 happy_x_3
576	happy_x_2
577	happy_x_1
578	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) ->
579	case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) ->
580	happyIn17
581		 (TokenLexer happy_var_2 happy_var_3
582	)}}
583
584happyReduce_33 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
585happyReduce_33 = happySpecReduce_2  13# happyReduction_33
586happyReduction_33 happy_x_2
587	happy_x_1
588	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) ->
589	happyIn17
590		 (TokenMonad "()" happy_var_2 ">>=" "return"
591	)}
592
593happyReduce_34 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
594happyReduce_34 = happySpecReduce_3  13# happyReduction_34
595happyReduction_34 happy_x_3
596	happy_x_2
597	happy_x_1
598	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) ->
599	case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) ->
600	happyIn17
601		 (TokenMonad happy_var_2 happy_var_3 ">>=" "return"
602	)}}
603
604happyReduce_35 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
605happyReduce_35 = happyReduce 4# 13# happyReduction_35
606happyReduction_35 (happy_x_4 `HappyStk`
607	happy_x_3 `HappyStk`
608	happy_x_2 `HappyStk`
609	happy_x_1 `HappyStk`
610	happyRest)
611	 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) ->
612	case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) ->
613	case happyOutTok happy_x_4 of { (TokenInfo happy_var_4 TokCodeQuote) ->
614	happyIn17
615		 (TokenMonad "()" happy_var_2 happy_var_3 happy_var_4
616	) `HappyStk` happyRest}}}
617
618happyReduce_36 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
619happyReduce_36 = happyReduce 5# 13# happyReduction_36
620happyReduction_36 (happy_x_5 `HappyStk`
621	happy_x_4 `HappyStk`
622	happy_x_3 `HappyStk`
623	happy_x_2 `HappyStk`
624	happy_x_1 `HappyStk`
625	happyRest)
626	 = case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) ->
627	case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) ->
628	case happyOutTok happy_x_4 of { (TokenInfo happy_var_4 TokCodeQuote) ->
629	case happyOutTok happy_x_5 of { (TokenInfo happy_var_5 TokCodeQuote) ->
630	happyIn17
631		 (TokenMonad happy_var_2 happy_var_3 happy_var_4 happy_var_5
632	) `HappyStk` happyRest}}}}
633
634happyReduce_37 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
635happyReduce_37 = happySpecReduce_2  13# happyReduction_37
636happyReduction_37 happy_x_2
637	happy_x_1
638	 =  case happyOut21 happy_x_2 of { (HappyWrap21 happy_var_2) ->
639	happyIn17
640		 (TokenNonassoc happy_var_2
641	)}
642
643happyReduce_38 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
644happyReduce_38 = happySpecReduce_2  13# happyReduction_38
645happyReduction_38 happy_x_2
646	happy_x_1
647	 =  case happyOut21 happy_x_2 of { (HappyWrap21 happy_var_2) ->
648	happyIn17
649		 (TokenRight happy_var_2
650	)}
651
652happyReduce_39 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
653happyReduce_39 = happySpecReduce_2  13# happyReduction_39
654happyReduction_39 happy_x_2
655	happy_x_1
656	 =  case happyOut21 happy_x_2 of { (HappyWrap21 happy_var_2) ->
657	happyIn17
658		 (TokenLeft happy_var_2
659	)}
660
661happyReduce_40 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
662happyReduce_40 = happySpecReduce_2  13# happyReduction_40
663happyReduction_40 happy_x_2
664	happy_x_1
665	 =  case happyOutTok happy_x_2 of { (TokenNum happy_var_2  TokNum) ->
666	happyIn17
667		 (TokenExpect happy_var_2
668	)}
669
670happyReduce_41 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
671happyReduce_41 = happySpecReduce_2  13# happyReduction_41
672happyReduction_41 happy_x_2
673	happy_x_1
674	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) ->
675	happyIn17
676		 (TokenError happy_var_2
677	)}
678
679happyReduce_42 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
680happyReduce_42 = happySpecReduce_2  13# happyReduction_42
681happyReduction_42 happy_x_2
682	happy_x_1
683	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) ->
684	happyIn17
685		 (TokenErrorHandlerType happy_var_2
686	)}
687
688happyReduce_43 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
689happyReduce_43 = happySpecReduce_2  13# happyReduction_43
690happyReduction_43 happy_x_2
691	happy_x_1
692	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) ->
693	happyIn17
694		 (TokenAttributetype happy_var_2
695	)}
696
697happyReduce_44 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
698happyReduce_44 = happySpecReduce_3  13# happyReduction_44
699happyReduction_44 happy_x_3
700	happy_x_2
701	happy_x_1
702	 =  case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokId) ->
703	case happyOutTok happy_x_3 of { (TokenInfo happy_var_3 TokCodeQuote) ->
704	happyIn17
705		 (TokenAttribute happy_var_2 happy_var_3
706	)}}
707
708happyReduce_45 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
709happyReduce_45 = happySpecReduce_1  14# happyReduction_45
710happyReduction_45 happy_x_1
711	 =  case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) ->
712	happyIn18
713		 (Just happy_var_1
714	)}
715
716happyReduce_46 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
717happyReduce_46 = happySpecReduce_0  14# happyReduction_46
718happyReduction_46  =  happyIn18
719		 (Nothing
720	)
721
722happyReduce_47 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
723happyReduce_47 = happySpecReduce_2  15# happyReduction_47
724happyReduction_47 happy_x_2
725	happy_x_1
726	 =  case happyOut20 happy_x_1 of { (HappyWrap20 happy_var_1) ->
727	case happyOut19 happy_x_2 of { (HappyWrap19 happy_var_2) ->
728	happyIn19
729		 (happy_var_1:happy_var_2
730	)}}
731
732happyReduce_48 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
733happyReduce_48 = happySpecReduce_1  15# happyReduction_48
734happyReduction_48 happy_x_1
735	 =  case happyOut20 happy_x_1 of { (HappyWrap20 happy_var_1) ->
736	happyIn19
737		 ([happy_var_1]
738	)}
739
740happyReduce_49 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
741happyReduce_49 = happySpecReduce_2  16# happyReduction_49
742happyReduction_49 happy_x_2
743	happy_x_1
744	 =  case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) ->
745	case happyOutTok happy_x_2 of { (TokenInfo happy_var_2 TokCodeQuote) ->
746	happyIn20
747		 ((happy_var_1,happy_var_2)
748	)}}
749
750happyReduce_50 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
751happyReduce_50 = happySpecReduce_2  17# happyReduction_50
752happyReduction_50 happy_x_2
753	happy_x_1
754	 =  case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokId) ->
755	case happyOut21 happy_x_2 of { (HappyWrap21 happy_var_2) ->
756	happyIn21
757		 (happy_var_1 : happy_var_2
758	)}}
759
760happyReduce_51 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
761happyReduce_51 = happySpecReduce_0  17# happyReduction_51
762happyReduction_51  =  happyIn21
763		 ([]
764	)
765
766happyReduce_52 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
767happyReduce_52 = happySpecReduce_1  18# happyReduction_52
768happyReduction_52 happy_x_1
769	 =  case happyOutTok happy_x_1 of { (TokenInfo happy_var_1 TokCodeQuote) ->
770	happyIn22
771		 (Just happy_var_1
772	)}
773
774happyReduce_53 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
775happyReduce_53 = happySpecReduce_0  18# happyReduction_53
776happyReduction_53  =  happyIn22
777		 (Nothing
778	)
779
780happyNewToken action sts stk
781	= lexer(\tk ->
782	let cont i = happyDoAction i tk action sts stk in
783	case tk of {
784	TokenEOF -> happyDoAction 28# tk action sts stk;
785	TokenInfo happy_dollar_dollar TokId -> cont 1#;
786	TokenKW      TokSpecId_TokenType -> cont 2#;
787	TokenKW      TokSpecId_Token -> cont 3#;
788	TokenKW      TokSpecId_Name -> cont 4#;
789	TokenKW      TokSpecId_Partial -> cont 5#;
790	TokenKW      TokSpecId_Lexer -> cont 6#;
791	TokenKW      TokSpecId_ImportedIdentity -> cont 7#;
792	TokenKW      TokSpecId_Monad -> cont 8#;
793	TokenKW      TokSpecId_Nonassoc -> cont 9#;
794	TokenKW      TokSpecId_Left -> cont 10#;
795	TokenKW      TokSpecId_Right -> cont 11#;
796	TokenKW      TokSpecId_Prec -> cont 12#;
797	TokenKW      TokSpecId_Expect -> cont 13#;
798	TokenKW      TokSpecId_Error -> cont 14#;
799	TokenKW      TokSpecId_ErrorHandlerType -> cont 15#;
800	TokenKW      TokSpecId_Attribute -> cont 16#;
801	TokenKW      TokSpecId_Attributetype -> cont 17#;
802	TokenInfo happy_dollar_dollar TokCodeQuote -> cont 18#;
803	TokenNum happy_dollar_dollar  TokNum -> cont 19#;
804	TokenKW      TokColon -> cont 20#;
805	TokenKW      TokSemiColon -> cont 21#;
806	TokenKW      TokDoubleColon -> cont 22#;
807	TokenKW      TokDoublePercent -> cont 23#;
808	TokenKW      TokBar -> cont 24#;
809	TokenKW      TokParenL -> cont 25#;
810	TokenKW      TokParenR -> cont 26#;
811	TokenKW      TokComma -> cont 27#;
812	_ -> happyError' (tk, [])
813	})
814
815happyError_ explist 28# tk = happyError' (tk, explist)
816happyError_ explist _ tk = happyError' (tk, explist)
817
818happyThen :: () => P a -> (a -> P b) -> P b
819happyThen = (>>=)
820happyReturn :: () => a -> P a
821happyReturn = (return)
822happyParse :: () => Happy_GHC_Exts.Int# -> P (HappyAbsSyn )
823
824happyNewToken :: () => Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
825
826happyDoAction :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
827
828happyReduceArr :: () => Happy_Data_Array.Array Int (Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ))
829
830happyThen1 :: () => P a -> (a -> P b) -> P b
831happyThen1 = happyThen
832happyReturn1 :: () => a -> P a
833happyReturn1 = happyReturn
834happyError' :: () => ((Token), [String]) -> P a
835happyError' tk = (\(tokens, explist) -> happyError) tk
836ourParser = happySomeParser where
837 happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (let {(HappyWrap4 x') = happyOut4 x} in x'))
838
839happySeq = happyDontSeq
840
841
842happyError :: P a
843happyError = lineP >>= \l -> failP (show l ++ ": Parse error\n")
844{-# LINE 1 "templates/GenericTemplate.hs" #-}
845{-# LINE 1 "templates/GenericTemplate.hs" #-}
846{-# LINE 1 "<built-in>" #-}
847{-# LINE 1 "<command-line>" #-}
848{-# LINE 10 "<command-line>" #-}
849# 1 "/usr/include/stdc-predef.h" 1 3 4
850
851# 17 "/usr/include/stdc-predef.h" 3 4
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898{-# LINE 10 "<command-line>" #-}
899{-# LINE 1 "/home/smarlow/local/lib/ghc-8.4.3/include/ghcversion.h" #-}
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915{-# LINE 10 "<command-line>" #-}
916{-# LINE 1 "/tmp/ghc27342_0/ghc_2.h" #-}
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379{-# LINE 10 "<command-line>" #-}
1380{-# LINE 1 "templates/GenericTemplate.hs" #-}
1381-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.
1396#if __GLASGOW_HASKELL__ > 706
1397#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Bool)
1398#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Bool)
1399#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Bool)
1400#else
1401#define LT(n,m) (n Happy_GHC_Exts.<# m)
1402#define GTE(n,m) (n Happy_GHC_Exts.>=# m)
1403#define EQ(n,m) (n Happy_GHC_Exts.==# m)
1404#endif
1405{-# LINE 43 "templates/GenericTemplate.hs" #-}
1406
1407data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
1408
1409
1410
1411
1412
1413
1414
1415{-# LINE 65 "templates/GenericTemplate.hs" #-}
1416
1417{-# LINE 75 "templates/GenericTemplate.hs" #-}
1418
1419{-# LINE 84 "templates/GenericTemplate.hs" #-}
1420
1421infixr 9 `HappyStk`
1422data HappyStk a = HappyStk a (HappyStk a)
1423
1424-----------------------------------------------------------------------------
1425-- starting the parse
1426
1427happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
1428
1429-----------------------------------------------------------------------------
1430-- Accepting the parse
1431
1432-- If the current token is 0#, it means we've just accepted a partial
1433-- parse (a %partial parser).  We must ignore the saved token on the top of
1434-- the stack in this case.
1435happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
1436        happyReturn1 ans
1437happyAccept j tk st sts (HappyStk ans _) =
1438        (happyTcHack j (happyTcHack st)) (happyReturn1 ans)
1439
1440-----------------------------------------------------------------------------
1441-- Arrays only: do the next action
1442
1443
1444
1445happyDoAction i tk st
1446        = {- nothing -}
1447
1448
1449          case action of
1450                0#           -> {- nothing -}
1451                                     happyFail (happyExpListPerState ((Happy_GHC_Exts.I# (st)) :: Int)) i tk st
1452                -1#          -> {- nothing -}
1453                                     happyAccept i tk st
1454                n | LT(n,(0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
1455
1456                                                   (happyReduceArr Happy_Data_Array.! rule) i tk st
1457                                                   where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
1458                n                 -> {- nothing -}
1459
1460
1461                                     happyShift new_state i tk st
1462                                     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
1463   where off    = happyAdjustOffset (indexShortOffAddr happyActOffsets st)
1464         off_i  = (off Happy_GHC_Exts.+#  i)
1465         check  = if GTE(off_i,(0# :: Happy_GHC_Exts.Int#))
1466                  then EQ(indexShortOffAddr happyCheck off_i, i)
1467                  else False
1468         action
1469          | check     = indexShortOffAddr happyTable off_i
1470          | otherwise = indexShortOffAddr happyDefActions st
1471
1472
1473
1474
1475indexShortOffAddr (HappyA# arr) off =
1476        Happy_GHC_Exts.narrow16Int# i
1477  where
1478        i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
1479        high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
1480        low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
1481        off' = off Happy_GHC_Exts.*# 2#
1482
1483
1484
1485
1486{-# INLINE happyLt #-}
1487happyLt x y = LT(x,y)
1488
1489
1490readArrayBit arr bit =
1491    Bits.testBit (Happy_GHC_Exts.I# (indexShortOffAddr arr ((unbox_int bit) `Happy_GHC_Exts.iShiftRA#` 4#))) (bit `mod` 16)
1492  where unbox_int (Happy_GHC_Exts.I# x) = x
1493
1494
1495
1496
1497
1498
1499data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
1500
1501
1502-----------------------------------------------------------------------------
1503-- HappyState data type (not arrays)
1504
1505{-# LINE 180 "templates/GenericTemplate.hs" #-}
1506
1507-----------------------------------------------------------------------------
1508-- Shifting a token
1509
1510happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
1511     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
1512--     trace "shifting the error token" $
1513     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
1514
1515happyShift new_state i tk st sts stk =
1516     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
1517
1518-- happyReduce is specialised for the common cases.
1519
1520happySpecReduce_0 i fn 0# tk st sts stk
1521     = happyFail [] 0# tk st sts stk
1522happySpecReduce_0 nt fn j tk st@((action)) sts stk
1523     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
1524
1525happySpecReduce_1 i fn 0# tk st sts stk
1526     = happyFail [] 0# tk st sts stk
1527happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
1528     = let r = fn v1 in
1529       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
1530
1531happySpecReduce_2 i fn 0# tk st sts stk
1532     = happyFail [] 0# tk st sts stk
1533happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
1534     = let r = fn v1 v2 in
1535       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
1536
1537happySpecReduce_3 i fn 0# tk st sts stk
1538     = happyFail [] 0# tk st sts stk
1539happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
1540     = let r = fn v1 v2 v3 in
1541       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
1542
1543happyReduce k i fn 0# tk st sts stk
1544     = happyFail [] 0# tk st sts stk
1545happyReduce k nt fn j tk st sts stk
1546     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
1547         sts1@((HappyCons (st1@(action)) (_))) ->
1548                let r = fn stk in  -- it doesn't hurt to always seq here...
1549                happyDoSeq r (happyGoto nt j tk st1 sts1 r)
1550
1551happyMonadReduce k nt fn 0# tk st sts stk
1552     = happyFail [] 0# tk st sts stk
1553happyMonadReduce k nt fn j tk st sts stk =
1554      case happyDrop k (HappyCons (st) (sts)) of
1555        sts1@((HappyCons (st1@(action)) (_))) ->
1556          let drop_stk = happyDropStk k stk in
1557          happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
1558
1559happyMonad2Reduce k nt fn 0# tk st sts stk
1560     = happyFail [] 0# tk st sts stk
1561happyMonad2Reduce k nt fn j tk st sts stk =
1562      case happyDrop k (HappyCons (st) (sts)) of
1563        sts1@((HappyCons (st1@(action)) (_))) ->
1564         let drop_stk = happyDropStk k stk
1565
1566             off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st1)
1567             off_i = (off Happy_GHC_Exts.+#  nt)
1568             new_state = indexShortOffAddr happyTable off_i
1569
1570
1571
1572
1573          in
1574          happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
1575
1576happyDrop 0# l = l
1577happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
1578
1579happyDropStk 0# l = l
1580happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
1581
1582-----------------------------------------------------------------------------
1583-- Moving to a new state after a reduction
1584
1585
1586happyGoto nt j tk st =
1587   {- nothing -}
1588   happyDoAction j tk new_state
1589   where off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st)
1590         off_i = (off Happy_GHC_Exts.+#  nt)
1591         new_state = indexShortOffAddr happyTable off_i
1592
1593
1594
1595
1596-----------------------------------------------------------------------------
1597-- Error recovery (0# is the error token)
1598
1599-- parse error if we are in recovery and we fail again
1600happyFail explist 0# tk old_st _ stk@(x `HappyStk` _) =
1601     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
1602--      trace "failing" $
1603        happyError_ explist i tk
1604
1605{-  We don't need state discarding for our restricted implementation of
1606    "error".  In fact, it can cause some bogus parses, so I've disabled it
1607    for now --SDM
1608
1609-- discard a state
1610happyFail  0# tk old_st (HappyCons ((action)) (sts))
1611                                                (saved_tok `HappyStk` _ `HappyStk` stk) =
1612--      trace ("discarding state, depth " ++ show (length stk))  $
1613        happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
1614-}
1615
1616-- Enter error recovery: generate an error token,
1617--                       save the old token and carry on.
1618happyFail explist i tk (action) sts stk =
1619--      trace "entering error recovery" $
1620        happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
1621
1622-- Internal happy errors:
1623
1624notHappyAtAll :: a
1625notHappyAtAll = error "Internal Happy error\n"
1626
1627-----------------------------------------------------------------------------
1628-- Hack to get the typechecker to accept our action functions
1629
1630
1631happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
1632happyTcHack x y = y
1633{-# INLINE happyTcHack #-}
1634
1635
1636-----------------------------------------------------------------------------
1637-- Seq-ing.  If the --strict flag is given, then Happy emits
1638--      happySeq = happyDoSeq
1639-- otherwise it emits
1640--      happySeq = happyDontSeq
1641
1642happyDoSeq, happyDontSeq :: a -> b -> b
1643happyDoSeq   a b = a `seq` b
1644happyDontSeq a b = b
1645
1646-----------------------------------------------------------------------------
1647-- Don't inline any functions from the template.  GHC has a nasty habit
1648-- of deciding to inline happyGoto everywhere, which increases the size of
1649-- the generated parser quite a bit.
1650
1651
1652{-# NOINLINE happyDoAction #-}
1653{-# NOINLINE happyTable #-}
1654{-# NOINLINE happyCheck #-}
1655{-# NOINLINE happyActOffsets #-}
1656{-# NOINLINE happyGotoOffsets #-}
1657{-# NOINLINE happyDefActions #-}
1658
1659{-# NOINLINE happyShift #-}
1660{-# NOINLINE happySpecReduce_0 #-}
1661{-# NOINLINE happySpecReduce_1 #-}
1662{-# NOINLINE happySpecReduce_2 #-}
1663{-# NOINLINE happySpecReduce_3 #-}
1664{-# NOINLINE happyReduce #-}
1665{-# NOINLINE happyMonadReduce #-}
1666{-# NOINLINE happyGoto #-}
1667{-# NOINLINE happyFail #-}
1668
1669-- end of Happy Template.
1670