1{-# OPTIONS_GHC -w #-}
2{-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-}
3#if __GLASGOW_HASKELL__ >= 710
4{-# OPTIONS_GHC -XPartialTypeSignatures #-}
5#endif
6-- -----------------------------------------------------------------------------
7--
8-- Parser.y, part of Alex
9--
10-- (c) Simon Marlow 2003
11--
12-- -----------------------------------------------------------------------------
13
14{-# OPTIONS_GHC -w #-}
15
16module Parser ( parse, P ) where
17import AbsSyn
18import Scan
19import CharSet
20import ParseMonad hiding ( StartCode )
21
22import Data.Char
23--import Debug.Trace
24import qualified Data.Array as Happy_Data_Array
25import qualified Data.Bits as Bits
26import qualified GHC.Exts as Happy_GHC_Exts
27import Control.Applicative(Applicative(..))
28import Control.Monad (ap)
29
30-- parser produced by Happy Version 1.19.12
31
32newtype HappyAbsSyn  = HappyAbsSyn HappyAny
33#if __GLASGOW_HASKELL__ >= 607
34type HappyAny = Happy_GHC_Exts.Any
35#else
36type HappyAny = forall a . a
37#endif
38newtype HappyWrap4 = HappyWrap4 ((Maybe (AlexPosn,Code), [Directive], Scanner, Maybe (AlexPosn,Code)))
39happyIn4 :: ((Maybe (AlexPosn,Code), [Directive], Scanner, Maybe (AlexPosn,Code))) -> (HappyAbsSyn )
40happyIn4 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap4 x)
41{-# INLINE happyIn4 #-}
42happyOut4 :: (HappyAbsSyn ) -> HappyWrap4
43happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x
44{-# INLINE happyOut4 #-}
45newtype HappyWrap5 = HappyWrap5 (Maybe (AlexPosn,Code))
46happyIn5 :: (Maybe (AlexPosn,Code)) -> (HappyAbsSyn )
47happyIn5 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap5 x)
48{-# INLINE happyIn5 #-}
49happyOut5 :: (HappyAbsSyn ) -> HappyWrap5
50happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x
51{-# INLINE happyOut5 #-}
52newtype HappyWrap6 = HappyWrap6 ([Directive])
53happyIn6 :: ([Directive]) -> (HappyAbsSyn )
54happyIn6 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap6 x)
55{-# INLINE happyIn6 #-}
56happyOut6 :: (HappyAbsSyn ) -> HappyWrap6
57happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
58{-# INLINE happyOut6 #-}
59newtype HappyWrap7 = HappyWrap7 (Directive)
60happyIn7 :: (Directive) -> (HappyAbsSyn )
61happyIn7 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap7 x)
62{-# INLINE happyIn7 #-}
63happyOut7 :: (HappyAbsSyn ) -> HappyWrap7
64happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
65{-# INLINE happyOut7 #-}
66newtype HappyWrap8 = HappyWrap8 (Encoding)
67happyIn8 :: (Encoding) -> (HappyAbsSyn )
68happyIn8 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap8 x)
69{-# INLINE happyIn8 #-}
70happyOut8 :: (HappyAbsSyn ) -> HappyWrap8
71happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
72{-# INLINE happyOut8 #-}
73newtype HappyWrap9 = HappyWrap9 (())
74happyIn9 :: (()) -> (HappyAbsSyn )
75happyIn9 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap9 x)
76{-# INLINE happyIn9 #-}
77happyOut9 :: (HappyAbsSyn ) -> HappyWrap9
78happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
79{-# INLINE happyOut9 #-}
80newtype HappyWrap10 = HappyWrap10 (())
81happyIn10 :: (()) -> (HappyAbsSyn )
82happyIn10 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap10 x)
83{-# INLINE happyIn10 #-}
84happyOut10 :: (HappyAbsSyn ) -> HappyWrap10
85happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
86{-# INLINE happyOut10 #-}
87newtype HappyWrap11 = HappyWrap11 (Scanner)
88happyIn11 :: (Scanner) -> (HappyAbsSyn )
89happyIn11 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap11 x)
90{-# INLINE happyIn11 #-}
91happyOut11 :: (HappyAbsSyn ) -> HappyWrap11
92happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
93{-# INLINE happyOut11 #-}
94newtype HappyWrap12 = HappyWrap12 ([RECtx])
95happyIn12 :: ([RECtx]) -> (HappyAbsSyn )
96happyIn12 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap12 x)
97{-# INLINE happyIn12 #-}
98happyOut12 :: (HappyAbsSyn ) -> HappyWrap12
99happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
100{-# INLINE happyOut12 #-}
101newtype HappyWrap13 = HappyWrap13 ([RECtx])
102happyIn13 :: ([RECtx]) -> (HappyAbsSyn )
103happyIn13 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap13 x)
104{-# INLINE happyIn13 #-}
105happyOut13 :: (HappyAbsSyn ) -> HappyWrap13
106happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
107{-# INLINE happyOut13 #-}
108newtype HappyWrap14 = HappyWrap14 (RECtx)
109happyIn14 :: (RECtx) -> (HappyAbsSyn )
110happyIn14 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap14 x)
111{-# INLINE happyIn14 #-}
112happyOut14 :: (HappyAbsSyn ) -> HappyWrap14
113happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
114{-# INLINE happyOut14 #-}
115newtype HappyWrap15 = HappyWrap15 ([RECtx])
116happyIn15 :: ([RECtx]) -> (HappyAbsSyn )
117happyIn15 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap15 x)
118{-# INLINE happyIn15 #-}
119happyOut15 :: (HappyAbsSyn ) -> HappyWrap15
120happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
121{-# INLINE happyOut15 #-}
122newtype HappyWrap16 = HappyWrap16 ([(String,StartCode)])
123happyIn16 :: ([(String,StartCode)]) -> (HappyAbsSyn )
124happyIn16 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap16 x)
125{-# INLINE happyIn16 #-}
126happyOut16 :: (HappyAbsSyn ) -> HappyWrap16
127happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
128{-# INLINE happyOut16 #-}
129newtype HappyWrap17 = HappyWrap17 ([(String,StartCode)])
130happyIn17 :: ([(String,StartCode)]) -> (HappyAbsSyn )
131happyIn17 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap17 x)
132{-# INLINE happyIn17 #-}
133happyOut17 :: (HappyAbsSyn ) -> HappyWrap17
134happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
135{-# INLINE happyOut17 #-}
136newtype HappyWrap18 = HappyWrap18 (String)
137happyIn18 :: (String) -> (HappyAbsSyn )
138happyIn18 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap18 x)
139{-# INLINE happyIn18 #-}
140happyOut18 :: (HappyAbsSyn ) -> HappyWrap18
141happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
142{-# INLINE happyOut18 #-}
143newtype HappyWrap19 = HappyWrap19 (Maybe Code)
144happyIn19 :: (Maybe Code) -> (HappyAbsSyn )
145happyIn19 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap19 x)
146{-# INLINE happyIn19 #-}
147happyOut19 :: (HappyAbsSyn ) -> HappyWrap19
148happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
149{-# INLINE happyOut19 #-}
150newtype HappyWrap20 = HappyWrap20 (Maybe CharSet, RExp, RightContext RExp)
151happyIn20 :: (Maybe CharSet, RExp, RightContext RExp) -> (HappyAbsSyn )
152happyIn20 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap20 x)
153{-# INLINE happyIn20 #-}
154happyOut20 :: (HappyAbsSyn ) -> HappyWrap20
155happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
156{-# INLINE happyOut20 #-}
157newtype HappyWrap21 = HappyWrap21 (CharSet)
158happyIn21 :: (CharSet) -> (HappyAbsSyn )
159happyIn21 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap21 x)
160{-# INLINE happyIn21 #-}
161happyOut21 :: (HappyAbsSyn ) -> HappyWrap21
162happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
163{-# INLINE happyOut21 #-}
164newtype HappyWrap22 = HappyWrap22 (RightContext RExp)
165happyIn22 :: (RightContext RExp) -> (HappyAbsSyn )
166happyIn22 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap22 x)
167{-# INLINE happyIn22 #-}
168happyOut22 :: (HappyAbsSyn ) -> HappyWrap22
169happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
170{-# INLINE happyOut22 #-}
171newtype HappyWrap23 = HappyWrap23 (RExp)
172happyIn23 :: (RExp) -> (HappyAbsSyn )
173happyIn23 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap23 x)
174{-# INLINE happyIn23 #-}
175happyOut23 :: (HappyAbsSyn ) -> HappyWrap23
176happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
177{-# INLINE happyOut23 #-}
178newtype HappyWrap24 = HappyWrap24 (RExp)
179happyIn24 :: (RExp) -> (HappyAbsSyn )
180happyIn24 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap24 x)
181{-# INLINE happyIn24 #-}
182happyOut24 :: (HappyAbsSyn ) -> HappyWrap24
183happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
184{-# INLINE happyOut24 #-}
185newtype HappyWrap25 = HappyWrap25 (RExp)
186happyIn25 :: (RExp) -> (HappyAbsSyn )
187happyIn25 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap25 x)
188{-# INLINE happyIn25 #-}
189happyOut25 :: (HappyAbsSyn ) -> HappyWrap25
190happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
191{-# INLINE happyOut25 #-}
192newtype HappyWrap26 = HappyWrap26 (RExp -> RExp)
193happyIn26 :: (RExp -> RExp) -> (HappyAbsSyn )
194happyIn26 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap26 x)
195{-# INLINE happyIn26 #-}
196happyOut26 :: (HappyAbsSyn ) -> HappyWrap26
197happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
198{-# INLINE happyOut26 #-}
199newtype HappyWrap27 = HappyWrap27 (RExp)
200happyIn27 :: (RExp) -> (HappyAbsSyn )
201happyIn27 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap27 x)
202{-# INLINE happyIn27 #-}
203happyOut27 :: (HappyAbsSyn ) -> HappyWrap27
204happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
205{-# INLINE happyOut27 #-}
206newtype HappyWrap28 = HappyWrap28 (CharSet)
207happyIn28 :: (CharSet) -> (HappyAbsSyn )
208happyIn28 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap28 x)
209{-# INLINE happyIn28 #-}
210happyOut28 :: (HappyAbsSyn ) -> HappyWrap28
211happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
212{-# INLINE happyOut28 #-}
213newtype HappyWrap29 = HappyWrap29 (CharSet)
214happyIn29 :: (CharSet) -> (HappyAbsSyn )
215happyIn29 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap29 x)
216{-# INLINE happyIn29 #-}
217happyOut29 :: (HappyAbsSyn ) -> HappyWrap29
218happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
219{-# INLINE happyOut29 #-}
220newtype HappyWrap30 = HappyWrap30 ([CharSet])
221happyIn30 :: ([CharSet]) -> (HappyAbsSyn )
222happyIn30 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap30 x)
223{-# INLINE happyIn30 #-}
224happyOut30 :: (HappyAbsSyn ) -> HappyWrap30
225happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
226{-# INLINE happyOut30 #-}
227newtype HappyWrap31 = HappyWrap31 ((AlexPosn,String))
228happyIn31 :: ((AlexPosn,String)) -> (HappyAbsSyn )
229happyIn31 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap31 x)
230{-# INLINE happyIn31 #-}
231happyOut31 :: (HappyAbsSyn ) -> HappyWrap31
232happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
233{-# INLINE happyOut31 #-}
234happyInTok :: (Token) -> (HappyAbsSyn )
235happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
236{-# INLINE happyInTok #-}
237happyOutTok :: (HappyAbsSyn ) -> (Token)
238happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
239{-# INLINE happyOutTok #-}
240
241
242happyExpList :: HappyAddr
243happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x20\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\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x08\x00\x14\x60\x00\x00\x00\x00\x80\x00\x48\x21\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x20\x48\x21\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x03\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\x00\x00\x00\x00\x00\x00\x08\x80\x15\xe2\x00\x00\x00\x00\x80\x00\x40\x01\x06\x00\x00\x00\x00\x08\x00\x54\x60\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\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\x01\x00\x00\x00\x00\x28\x80\x54\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x80\x54\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xa0\x54\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x08\x80\x14\xe2\x00\x00\x00\x00\x00\x10\x00\x08\x00\x00\x00\x00\x00\x00\x00\x42\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x14\x60\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x08\x00\x16\x60\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x08\x00\x14\x60\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x80\x14\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x40\x00\x00\x00\x00\x00\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\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\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\x80\x14\xf2\x00\x00\x00\x00\x00\x10\x00\x08\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\x80\x54\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x80\x54\xe2\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\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\x20\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
244
245{-# NOINLINE happyExpListPerState #-}
246happyExpListPerState st =
247    token_strs_expected
248  where token_strs = ["error","%dummy","%start_parse","alex","maybe_code","directives","directive","encoding","macdefs","macdef","scanner","tokendefs","tokendef","rule","rules","startcodes","startcodes0","startcode","rhs","context","left_ctx","right_ctx","rexp","alt","term","rep","rexp0","set","set0","sets","smac","'.'","';'","'<'","'>'","','","'$'","'|'","'*'","'+'","'?'","'{'","'}'","'('","')'","'#'","'~'","'-'","'['","']'","'^'","'/'","ZERO","STRING","BIND","ID","CODE","CHAR","SMAC","RMAC","SMAC_DEF","RMAC_DEF","WRAPPER","ENCODING","ACTIONTYPE","TOKENTYPE","TYPECLASS","%eof"]
249        bit_start = st * 68
250        bit_end = (st + 1) * 68
251        read_bit = readArrayBit happyExpList
252        bits = map read_bit [bit_start..bit_end - 1]
253        bits_indexed = zip bits [0..67]
254        token_strs_expected = concatMap f bits_indexed
255        f (False, _) = []
256        f (True, nr) = [token_strs !! nr]
257
258happyActOffsets :: HappyAddr
259happyActOffsets = HappyA# "\xec\xff\xec\xff\xf3\x00\x00\x00\xe5\xff\xfc\xff\xf3\x00\x0d\x00\x18\x00\x2e\x00\x40\x00\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x00\xfc\xff\x7d\x00\x6f\x00\x00\x00\x27\x00\x00\x00\xb4\x00\x08\x00\x00\x00\x00\x00\x00\x00\x39\x00\x7d\x00\x0f\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x4f\x00\x01\x00\x00\x00\x01\x00\x00\x00\x15\x00\xff\xff\x6f\x00\xfd\xff\x24\x00\x26\x00\x00\x00\x00\x00\x7d\x00\x58\x00\x75\x00\x62\x00\x7d\x00\x00\x00\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x6f\x00\x00\x00\x21\x00\x00\x00\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\xfd\xff\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x00\x00\x5d\x00\x76\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x00\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
260
261happyGotoOffsets :: HappyAddr
262happyGotoOffsets = HappyA# "\x35\x00\x87\x00\x3e\x00\x00\x00\x00\x00\x4d\x00\x57\x00\x00\x00\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x5a\x00\x36\x00\xf4\xff\x00\x00\xf7\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x00\x22\x00\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x8a\x00\x00\x00\x9e\x00\x00\x00\xce\x00\x8d\x00\xe0\x00\x92\x00\x00\x00\x56\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x01\x00\x00\x04\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\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\xf2\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
263
264happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#
265happyAdjustOffset off = off
266
267happyDefActions :: HappyAddr
268happyDefActions = HappyA# "\xfc\xff\x00\x00\xfa\xff\xfd\xff\x00\x00\xf2\xff\xfa\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\xff\xf6\xff\xf7\xff\xf8\xff\xf4\xff\xf9\xff\xfb\xff\x00\x00\xf2\xff\x00\x00\x00\x00\xf0\xff\xd6\xff\xd4\xff\xd2\xff\xc8\xff\xc5\xff\xc2\xff\xbc\xff\x00\x00\x00\x00\xbd\xff\xca\xff\xc4\xff\xbb\xff\xc9\xff\xf1\xff\xf3\xff\xfc\xff\xed\xff\xef\xff\xed\xff\xea\xff\x00\x00\x00\x00\x00\x00\xd8\xff\xc8\xff\x00\x00\xdd\xff\xfe\xff\x00\x00\x00\x00\xbd\xff\x00\x00\xbd\xff\xbf\xff\x00\x00\xcb\xff\xd3\xff\xd1\xff\xd0\xff\xcf\xff\x00\x00\xd5\xff\x00\x00\xd7\xff\x00\x00\xc7\xff\x00\x00\xc1\xff\xbe\xff\xc3\xff\xc6\xff\x00\x00\xe4\xff\xe3\xff\xe2\xff\xdc\xff\xde\xff\xdb\xff\x00\x00\xd8\xff\xe9\xff\xe0\xff\xe1\xff\xec\xff\xe7\xff\xee\xff\xe7\xff\x00\x00\xdf\xff\xda\xff\xd9\xff\x00\x00\xe6\xff\xc0\xff\x00\x00\xce\xff\xcd\xff\x00\x00\xe5\xff\xeb\xff\xe8\xff\xcc\xff"#
269
270happyCheck :: HappyAddr
271happyCheck = HappyA# "\xff\xff\x02\x00\x01\x00\x06\x00\x03\x00\x0c\x00\x1a\x00\x13\x00\x14\x00\x15\x00\x25\x00\x17\x00\x18\x00\x19\x00\x0d\x00\x1b\x00\x01\x00\x10\x00\x15\x00\x12\x00\x1b\x00\x14\x00\x01\x00\x0f\x00\x17\x00\x1a\x00\x1e\x00\x1f\x00\x1b\x00\x1c\x00\x1d\x00\x10\x00\x0b\x00\x12\x00\x0d\x00\x14\x00\x17\x00\x10\x00\x05\x00\x12\x00\x01\x00\x14\x00\x1b\x00\x1c\x00\x17\x00\x0c\x00\x07\x00\x17\x00\x1b\x00\x1c\x00\x1d\x00\x0f\x00\x0d\x00\x00\x00\x01\x00\x10\x00\x14\x00\x12\x00\x01\x00\x19\x00\x16\x00\x1b\x00\x17\x00\x19\x00\x02\x00\x03\x00\x1b\x00\x1c\x00\x1d\x00\x17\x00\x0d\x00\x0e\x00\x19\x00\x10\x00\x1b\x00\x12\x00\x01\x00\x11\x00\x18\x00\x19\x00\x17\x00\x1b\x00\x05\x00\x06\x00\x1b\x00\x1c\x00\x1d\x00\x17\x00\x0d\x00\x02\x00\x03\x00\x10\x00\x17\x00\x12\x00\x01\x00\x05\x00\x06\x00\x18\x00\x17\x00\x0d\x00\x0e\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1a\x00\x0d\x00\x0d\x00\x0e\x00\x10\x00\x0f\x00\x12\x00\x01\x00\x14\x00\x0e\x00\x1b\x00\x17\x00\x13\x00\x01\x00\x1b\x00\x1b\x00\x1c\x00\x1d\x00\x13\x00\x0d\x00\x04\x00\x01\x00\x10\x00\x05\x00\x12\x00\x0c\x00\x0c\x00\x0f\x00\x10\x00\x17\x00\x12\x00\x01\x00\x04\x00\x1b\x00\x1c\x00\x1d\x00\x10\x00\x16\x00\x12\x00\x1b\x00\x1c\x00\x08\x00\x09\x00\x0a\x00\x07\x00\x0c\x00\x01\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\x0f\x00\x13\x00\x14\x00\x15\x00\xff\xff\x17\x00\x18\x00\x19\x00\x12\x00\x1b\x00\x08\x00\x09\x00\x0a\x00\x12\x00\x0c\x00\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\xff\xff\x13\x00\x14\x00\x15\x00\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x0a\x00\x0b\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x10\x00\x11\x00\xff\xff\x13\x00\x14\x00\x15\x00\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x0a\x00\x0b\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x10\x00\x11\x00\xff\xff\x13\x00\x14\x00\x15\x00\x0a\x00\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x10\x00\x11\x00\xff\xff\x13\x00\x14\x00\x15\x00\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x13\x00\x14\x00\x15\x00\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x13\x00\x14\x00\x15\x00\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x13\x00\x14\x00\x15\x00\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x13\x00\x14\x00\x15\x00\xff\xff\x17\x00\x18\x00\x19\x00\x15\x00\x1b\x00\x17\x00\x18\x00\x19\x00\xff\xff\x1b\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
272
273happyTable :: HappyAddr
274happyTable = HappyA# "\x00\x00\x57\x00\x1f\x00\x53\x00\x33\x00\x66\x00\x04\x00\x17\x00\x18\x00\x19\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x20\x00\x1d\x00\x1f\x00\x21\x00\x54\x00\x22\x00\x67\x00\x34\x00\x1f\x00\x36\x00\x23\x00\x58\x00\x16\x00\x17\x00\x24\x00\x25\x00\x26\x00\x21\x00\x5a\x00\x22\x00\x20\x00\x3a\x00\x12\x00\x21\x00\x64\x00\x22\x00\x1f\x00\x34\x00\x24\x00\x25\x00\x23\x00\x65\x00\x44\x00\x11\x00\x24\x00\x25\x00\x26\x00\x36\x00\x20\x00\x04\x00\x02\x00\x21\x00\x51\x00\x22\x00\x1f\x00\x3a\x00\x4f\x00\x1d\x00\x23\x00\x50\x00\x05\x00\x06\x00\x24\x00\x25\x00\x26\x00\x0f\x00\x20\x00\x3d\x00\x4b\x00\x21\x00\x1d\x00\x22\x00\x1f\x00\x37\x00\x26\x00\x1c\x00\x23\x00\x1d\x00\x13\x00\x14\x00\x24\x00\x25\x00\x26\x00\x0e\x00\x20\x00\x12\x00\x06\x00\x21\x00\x0d\x00\x22\x00\x1f\x00\x27\x00\x14\x00\x2a\x00\x23\x00\x4c\x00\x4d\x00\x60\x00\x24\x00\x25\x00\x26\x00\x04\x00\x20\x00\x67\x00\x4d\x00\x21\x00\x36\x00\x22\x00\x1f\x00\x34\x00\x47\x00\x4b\x00\x23\x00\x49\x00\x1f\x00\x46\x00\x24\x00\x25\x00\x26\x00\x63\x00\x20\x00\x62\x00\x1f\x00\x21\x00\x61\x00\x22\x00\x69\x00\x6b\x00\x36\x00\x21\x00\x23\x00\x22\x00\x02\x00\x0f\x00\x24\x00\x25\x00\x26\x00\x21\x00\x3d\x00\x22\x00\x24\x00\x25\x00\x2a\x00\x2b\x00\x2c\x00\x28\x00\x2d\x00\x34\x00\x24\x00\x25\x00\x2e\x00\x2f\x00\x55\x00\x30\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x31\x00\x1c\x00\x51\x00\x1d\x00\x5a\x00\x2b\x00\x2c\x00\x5d\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x00\x00\x30\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x5b\x00\x5c\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x2e\x00\x2f\x00\x00\x00\x30\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x5b\x00\x69\x00\x37\x00\x1c\x00\x38\x00\x1d\x00\x2e\x00\x2f\x00\x00\x00\x30\x00\x18\x00\x19\x00\x58\x00\x1a\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x2e\x00\x2f\x00\x00\x00\x30\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x3b\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x1d\x00\x54\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x1d\x00\x44\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x1d\x00\x5e\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x1b\x00\x1c\x00\x42\x00\x1d\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x1d\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x37\x00\x1c\x00\x49\x00\x1d\x00\x37\x00\x1c\x00\x47\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
275
276happyReduceArr = Happy_Data_Array.array (1, 68) [
277	(1 , happyReduce_1),
278	(2 , happyReduce_2),
279	(3 , happyReduce_3),
280	(4 , happyReduce_4),
281	(5 , happyReduce_5),
282	(6 , happyReduce_6),
283	(7 , happyReduce_7),
284	(8 , happyReduce_8),
285	(9 , happyReduce_9),
286	(10 , happyReduce_10),
287	(11 , happyReduce_11),
288	(12 , happyReduce_12),
289	(13 , happyReduce_13),
290	(14 , happyReduce_14),
291	(15 , happyReduce_15),
292	(16 , happyReduce_16),
293	(17 , happyReduce_17),
294	(18 , happyReduce_18),
295	(19 , happyReduce_19),
296	(20 , happyReduce_20),
297	(21 , happyReduce_21),
298	(22 , happyReduce_22),
299	(23 , happyReduce_23),
300	(24 , happyReduce_24),
301	(25 , happyReduce_25),
302	(26 , happyReduce_26),
303	(27 , happyReduce_27),
304	(28 , happyReduce_28),
305	(29 , happyReduce_29),
306	(30 , happyReduce_30),
307	(31 , happyReduce_31),
308	(32 , happyReduce_32),
309	(33 , happyReduce_33),
310	(34 , happyReduce_34),
311	(35 , happyReduce_35),
312	(36 , happyReduce_36),
313	(37 , happyReduce_37),
314	(38 , happyReduce_38),
315	(39 , happyReduce_39),
316	(40 , happyReduce_40),
317	(41 , happyReduce_41),
318	(42 , happyReduce_42),
319	(43 , happyReduce_43),
320	(44 , happyReduce_44),
321	(45 , happyReduce_45),
322	(46 , happyReduce_46),
323	(47 , happyReduce_47),
324	(48 , happyReduce_48),
325	(49 , happyReduce_49),
326	(50 , happyReduce_50),
327	(51 , happyReduce_51),
328	(52 , happyReduce_52),
329	(53 , happyReduce_53),
330	(54 , happyReduce_54),
331	(55 , happyReduce_55),
332	(56 , happyReduce_56),
333	(57 , happyReduce_57),
334	(58 , happyReduce_58),
335	(59 , happyReduce_59),
336	(60 , happyReduce_60),
337	(61 , happyReduce_61),
338	(62 , happyReduce_62),
339	(63 , happyReduce_63),
340	(64 , happyReduce_64),
341	(65 , happyReduce_65),
342	(66 , happyReduce_66),
343	(67 , happyReduce_67),
344	(68 , happyReduce_68)
345	]
346
347happy_n_terms = 38 :: Int
348happy_n_nonterms = 28 :: Int
349
350happyReduce_1 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
351happyReduce_1 = happyReduce 5# 0# happyReduction_1
352happyReduction_1 (happy_x_5 `HappyStk`
353	happy_x_4 `HappyStk`
354	happy_x_3 `HappyStk`
355	happy_x_2 `HappyStk`
356	happy_x_1 `HappyStk`
357	happyRest)
358	 = case happyOut5 happy_x_1 of { (HappyWrap5 happy_var_1) ->
359	case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) ->
360	case happyOut11 happy_x_4 of { (HappyWrap11 happy_var_4) ->
361	case happyOut5 happy_x_5 of { (HappyWrap5 happy_var_5) ->
362	happyIn4
363		 ((happy_var_1,happy_var_2,happy_var_4,happy_var_5)
364	) `HappyStk` happyRest}}}}
365
366happyReduce_2 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
367happyReduce_2 = happySpecReduce_1  1# happyReduction_2
368happyReduction_2 happy_x_1
369	 =  case happyOutTok happy_x_1 of { happy_var_1 ->
370	happyIn5
371		 (case happy_var_1 of T pos (CodeT code) ->
372						Just (pos,code)
373	)}
374
375happyReduce_3 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
376happyReduce_3 = happySpecReduce_0  1# happyReduction_3
377happyReduction_3  =  happyIn5
378		 (Nothing
379	)
380
381happyReduce_4 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
382happyReduce_4 = happySpecReduce_2  2# happyReduction_4
383happyReduction_4 happy_x_2
384	happy_x_1
385	 =  case happyOut7 happy_x_1 of { (HappyWrap7 happy_var_1) ->
386	case happyOut6 happy_x_2 of { (HappyWrap6 happy_var_2) ->
387	happyIn6
388		 (happy_var_1 : happy_var_2
389	)}}
390
391happyReduce_5 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
392happyReduce_5 = happySpecReduce_0  2# happyReduction_5
393happyReduction_5  =  happyIn6
394		 ([]
395	)
396
397happyReduce_6 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
398happyReduce_6 = happySpecReduce_2  3# happyReduction_6
399happyReduction_6 happy_x_2
400	happy_x_1
401	 =  case happyOutTok happy_x_2 of { (T _ (StringT happy_var_2)) ->
402	happyIn7
403		 (WrapperDirective happy_var_2
404	)}
405
406happyReduce_7 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
407happyReduce_7 = happySpecReduce_2  3# happyReduction_7
408happyReduction_7 happy_x_2
409	happy_x_1
410	 =  case happyOut8 happy_x_2 of { (HappyWrap8 happy_var_2) ->
411	happyIn7
412		 (EncodingDirective happy_var_2
413	)}
414
415happyReduce_8 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
416happyReduce_8 = happySpecReduce_2  3# happyReduction_8
417happyReduction_8 happy_x_2
418	happy_x_1
419	 =  case happyOutTok happy_x_2 of { (T _ (StringT happy_var_2)) ->
420	happyIn7
421		 (ActionType happy_var_2
422	)}
423
424happyReduce_9 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
425happyReduce_9 = happySpecReduce_2  3# happyReduction_9
426happyReduction_9 happy_x_2
427	happy_x_1
428	 =  case happyOutTok happy_x_2 of { (T _ (StringT happy_var_2)) ->
429	happyIn7
430		 (TokenType happy_var_2
431	)}
432
433happyReduce_10 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
434happyReduce_10 = happySpecReduce_2  3# happyReduction_10
435happyReduction_10 happy_x_2
436	happy_x_1
437	 =  case happyOutTok happy_x_2 of { (T _ (StringT happy_var_2)) ->
438	happyIn7
439		 (TypeClass happy_var_2
440	)}
441
442happyReduce_11 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
443happyReduce_11 = happyMonadReduce 1# 4# happyReduction_11
444happyReduction_11 (happy_x_1 `HappyStk`
445	happyRest) tk
446	 = happyThen ((case happyOutTok happy_x_1 of { (T _ (StringT happy_var_1)) ->
447	( lookupEncoding happy_var_1)})
448	) (\r -> happyReturn (happyIn8 r))
449
450happyReduce_12 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
451happyReduce_12 = happySpecReduce_2  5# happyReduction_12
452happyReduction_12 happy_x_2
453	happy_x_1
454	 =  happyIn9
455		 (()
456	)
457
458happyReduce_13 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
459happyReduce_13 = happySpecReduce_0  5# happyReduction_13
460happyReduction_13  =  happyIn9
461		 (()
462	)
463
464happyReduce_14 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
465happyReduce_14 = happyMonadReduce 2# 6# happyReduction_14
466happyReduction_14 (happy_x_2 `HappyStk`
467	happy_x_1 `HappyStk`
468	happyRest) tk
469	 = happyThen ((case happyOutTok happy_x_1 of { (T _ (SMacDefT happy_var_1)) ->
470	case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) ->
471	( newSMac happy_var_1 happy_var_2)}})
472	) (\r -> happyReturn (happyIn10 r))
473
474happyReduce_15 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
475happyReduce_15 = happyMonadReduce 2# 6# happyReduction_15
476happyReduction_15 (happy_x_2 `HappyStk`
477	happy_x_1 `HappyStk`
478	happyRest) tk
479	 = happyThen ((case happyOutTok happy_x_1 of { (T _ (RMacDefT happy_var_1)) ->
480	case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) ->
481	( newRMac happy_var_1 happy_var_2)}})
482	) (\r -> happyReturn (happyIn10 r))
483
484happyReduce_16 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
485happyReduce_16 = happySpecReduce_2  7# happyReduction_16
486happyReduction_16 happy_x_2
487	happy_x_1
488	 =  case happyOutTok happy_x_1 of { (T _ (BindT happy_var_1)) ->
489	case happyOut12 happy_x_2 of { (HappyWrap12 happy_var_2) ->
490	happyIn11
491		 (Scanner happy_var_1 happy_var_2
492	)}}
493
494happyReduce_17 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
495happyReduce_17 = happySpecReduce_2  8# happyReduction_17
496happyReduction_17 happy_x_2
497	happy_x_1
498	 =  case happyOut13 happy_x_1 of { (HappyWrap13 happy_var_1) ->
499	case happyOut12 happy_x_2 of { (HappyWrap12 happy_var_2) ->
500	happyIn12
501		 (happy_var_1 ++ happy_var_2
502	)}}
503
504happyReduce_18 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
505happyReduce_18 = happySpecReduce_0  8# happyReduction_18
506happyReduction_18  =  happyIn12
507		 ([]
508	)
509
510happyReduce_19 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
511happyReduce_19 = happySpecReduce_2  9# happyReduction_19
512happyReduction_19 happy_x_2
513	happy_x_1
514	 =  case happyOut16 happy_x_1 of { (HappyWrap16 happy_var_1) ->
515	case happyOut14 happy_x_2 of { (HappyWrap14 happy_var_2) ->
516	happyIn13
517		 ([ replaceCodes happy_var_1 happy_var_2 ]
518	)}}
519
520happyReduce_20 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
521happyReduce_20 = happyReduce 4# 9# happyReduction_20
522happyReduction_20 (happy_x_4 `HappyStk`
523	happy_x_3 `HappyStk`
524	happy_x_2 `HappyStk`
525	happy_x_1 `HappyStk`
526	happyRest)
527	 = case happyOut16 happy_x_1 of { (HappyWrap16 happy_var_1) ->
528	case happyOut15 happy_x_3 of { (HappyWrap15 happy_var_3) ->
529	happyIn13
530		 (map (replaceCodes happy_var_1) happy_var_3
531	) `HappyStk` happyRest}}
532
533happyReduce_21 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
534happyReduce_21 = happySpecReduce_1  9# happyReduction_21
535happyReduction_21 happy_x_1
536	 =  case happyOut14 happy_x_1 of { (HappyWrap14 happy_var_1) ->
537	happyIn13
538		 ([ happy_var_1 ]
539	)}
540
541happyReduce_22 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
542happyReduce_22 = happySpecReduce_2  10# happyReduction_22
543happyReduction_22 happy_x_2
544	happy_x_1
545	 =  case happyOut20 happy_x_1 of { (HappyWrap20 happy_var_1) ->
546	case happyOut19 happy_x_2 of { (HappyWrap19 happy_var_2) ->
547	happyIn14
548		 (let (l,e,r) = happy_var_1 in
549					  RECtx [] l e r happy_var_2
550	)}}
551
552happyReduce_23 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
553happyReduce_23 = happySpecReduce_2  11# happyReduction_23
554happyReduction_23 happy_x_2
555	happy_x_1
556	 =  case happyOut14 happy_x_1 of { (HappyWrap14 happy_var_1) ->
557	case happyOut15 happy_x_2 of { (HappyWrap15 happy_var_2) ->
558	happyIn15
559		 (happy_var_1 : happy_var_2
560	)}}
561
562happyReduce_24 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
563happyReduce_24 = happySpecReduce_0  11# happyReduction_24
564happyReduction_24  =  happyIn15
565		 ([]
566	)
567
568happyReduce_25 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
569happyReduce_25 = happySpecReduce_3  12# happyReduction_25
570happyReduction_25 happy_x_3
571	happy_x_2
572	happy_x_1
573	 =  case happyOut17 happy_x_2 of { (HappyWrap17 happy_var_2) ->
574	happyIn16
575		 (happy_var_2
576	)}
577
578happyReduce_26 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
579happyReduce_26 = happySpecReduce_3  13# happyReduction_26
580happyReduction_26 happy_x_3
581	happy_x_2
582	happy_x_1
583	 =  case happyOut18 happy_x_1 of { (HappyWrap18 happy_var_1) ->
584	case happyOut17 happy_x_3 of { (HappyWrap17 happy_var_3) ->
585	happyIn17
586		 ((happy_var_1,0) : happy_var_3
587	)}}
588
589happyReduce_27 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
590happyReduce_27 = happySpecReduce_1  13# happyReduction_27
591happyReduction_27 happy_x_1
592	 =  case happyOut18 happy_x_1 of { (HappyWrap18 happy_var_1) ->
593	happyIn17
594		 ([(happy_var_1,0)]
595	)}
596
597happyReduce_28 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
598happyReduce_28 = happySpecReduce_1  14# happyReduction_28
599happyReduction_28 happy_x_1
600	 =  happyIn18
601		 ("0"
602	)
603
604happyReduce_29 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
605happyReduce_29 = happySpecReduce_1  14# happyReduction_29
606happyReduction_29 happy_x_1
607	 =  case happyOutTok happy_x_1 of { (T _ (IdT happy_var_1)) ->
608	happyIn18
609		 (happy_var_1
610	)}
611
612happyReduce_30 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
613happyReduce_30 = happySpecReduce_1  15# happyReduction_30
614happyReduction_30 happy_x_1
615	 =  case happyOutTok happy_x_1 of { happy_var_1 ->
616	happyIn19
617		 (case happy_var_1 of T _ (CodeT code) -> Just code
618	)}
619
620happyReduce_31 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
621happyReduce_31 = happySpecReduce_1  15# happyReduction_31
622happyReduction_31 happy_x_1
623	 =  happyIn19
624		 (Nothing
625	)
626
627happyReduce_32 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
628happyReduce_32 = happySpecReduce_3  16# happyReduction_32
629happyReduction_32 happy_x_3
630	happy_x_2
631	happy_x_1
632	 =  case happyOut21 happy_x_1 of { (HappyWrap21 happy_var_1) ->
633	case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) ->
634	case happyOut22 happy_x_3 of { (HappyWrap22 happy_var_3) ->
635	happyIn20
636		 ((Just happy_var_1,happy_var_2,happy_var_3)
637	)}}}
638
639happyReduce_33 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
640happyReduce_33 = happySpecReduce_2  16# happyReduction_33
641happyReduction_33 happy_x_2
642	happy_x_1
643	 =  case happyOut23 happy_x_1 of { (HappyWrap23 happy_var_1) ->
644	case happyOut22 happy_x_2 of { (HappyWrap22 happy_var_2) ->
645	happyIn20
646		 ((Nothing,happy_var_1,happy_var_2)
647	)}}
648
649happyReduce_34 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
650happyReduce_34 = happySpecReduce_1  17# happyReduction_34
651happyReduction_34 happy_x_1
652	 =  happyIn21
653		 (charSetSingleton '\n'
654	)
655
656happyReduce_35 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
657happyReduce_35 = happySpecReduce_2  17# happyReduction_35
658happyReduction_35 happy_x_2
659	happy_x_1
660	 =  case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) ->
661	happyIn21
662		 (happy_var_1
663	)}
664
665happyReduce_36 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
666happyReduce_36 = happySpecReduce_1  18# happyReduction_36
667happyReduction_36 happy_x_1
668	 =  happyIn22
669		 (RightContextRExp (Ch (charSetSingleton '\n'))
670	)
671
672happyReduce_37 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
673happyReduce_37 = happySpecReduce_2  18# happyReduction_37
674happyReduction_37 happy_x_2
675	happy_x_1
676	 =  case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) ->
677	happyIn22
678		 (RightContextRExp happy_var_2
679	)}
680
681happyReduce_38 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
682happyReduce_38 = happySpecReduce_2  18# happyReduction_38
683happyReduction_38 happy_x_2
684	happy_x_1
685	 =  case happyOutTok happy_x_2 of { happy_var_2 ->
686	happyIn22
687		 (RightContextCode (case happy_var_2 of
688						T _ (CodeT code) -> code)
689	)}
690
691happyReduce_39 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
692happyReduce_39 = happySpecReduce_0  18# happyReduction_39
693happyReduction_39  =  happyIn22
694		 (NoRightContext
695	)
696
697happyReduce_40 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
698happyReduce_40 = happySpecReduce_3  19# happyReduction_40
699happyReduction_40 happy_x_3
700	happy_x_2
701	happy_x_1
702	 =  case happyOut24 happy_x_1 of { (HappyWrap24 happy_var_1) ->
703	case happyOut23 happy_x_3 of { (HappyWrap23 happy_var_3) ->
704	happyIn23
705		 (happy_var_1 :| happy_var_3
706	)}}
707
708happyReduce_41 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
709happyReduce_41 = happySpecReduce_1  19# happyReduction_41
710happyReduction_41 happy_x_1
711	 =  case happyOut24 happy_x_1 of { (HappyWrap24 happy_var_1) ->
712	happyIn23
713		 (happy_var_1
714	)}
715
716happyReduce_42 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
717happyReduce_42 = happySpecReduce_2  20# happyReduction_42
718happyReduction_42 happy_x_2
719	happy_x_1
720	 =  case happyOut24 happy_x_1 of { (HappyWrap24 happy_var_1) ->
721	case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) ->
722	happyIn24
723		 (happy_var_1 :%% happy_var_2
724	)}}
725
726happyReduce_43 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
727happyReduce_43 = happySpecReduce_1  20# happyReduction_43
728happyReduction_43 happy_x_1
729	 =  case happyOut25 happy_x_1 of { (HappyWrap25 happy_var_1) ->
730	happyIn24
731		 (happy_var_1
732	)}
733
734happyReduce_44 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
735happyReduce_44 = happySpecReduce_2  21# happyReduction_44
736happyReduction_44 happy_x_2
737	happy_x_1
738	 =  case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) ->
739	case happyOut26 happy_x_2 of { (HappyWrap26 happy_var_2) ->
740	happyIn25
741		 (happy_var_2 happy_var_1
742	)}}
743
744happyReduce_45 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
745happyReduce_45 = happySpecReduce_1  21# happyReduction_45
746happyReduction_45 happy_x_1
747	 =  case happyOut27 happy_x_1 of { (HappyWrap27 happy_var_1) ->
748	happyIn25
749		 (happy_var_1
750	)}
751
752happyReduce_46 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
753happyReduce_46 = happySpecReduce_1  22# happyReduction_46
754happyReduction_46 happy_x_1
755	 =  happyIn26
756		 (Star
757	)
758
759happyReduce_47 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
760happyReduce_47 = happySpecReduce_1  22# happyReduction_47
761happyReduction_47 happy_x_1
762	 =  happyIn26
763		 (Plus
764	)
765
766happyReduce_48 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
767happyReduce_48 = happySpecReduce_1  22# happyReduction_48
768happyReduction_48 happy_x_1
769	 =  happyIn26
770		 (Ques
771	)
772
773happyReduce_49 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
774happyReduce_49 = happySpecReduce_3  22# happyReduction_49
775happyReduction_49 happy_x_3
776	happy_x_2
777	happy_x_1
778	 =  case happyOutTok happy_x_2 of { (T _ (CharT happy_var_2)) ->
779	happyIn26
780		 (repeat_rng (digit happy_var_2) Nothing
781	)}
782
783happyReduce_50 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
784happyReduce_50 = happyReduce 4# 22# happyReduction_50
785happyReduction_50 (happy_x_4 `HappyStk`
786	happy_x_3 `HappyStk`
787	happy_x_2 `HappyStk`
788	happy_x_1 `HappyStk`
789	happyRest)
790	 = case happyOutTok happy_x_2 of { (T _ (CharT happy_var_2)) ->
791	happyIn26
792		 (repeat_rng (digit happy_var_2) (Just Nothing)
793	) `HappyStk` happyRest}
794
795happyReduce_51 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
796happyReduce_51 = happyReduce 5# 22# happyReduction_51
797happyReduction_51 (happy_x_5 `HappyStk`
798	happy_x_4 `HappyStk`
799	happy_x_3 `HappyStk`
800	happy_x_2 `HappyStk`
801	happy_x_1 `HappyStk`
802	happyRest)
803	 = case happyOutTok happy_x_2 of { (T _ (CharT happy_var_2)) ->
804	case happyOutTok happy_x_4 of { (T _ (CharT happy_var_4)) ->
805	happyIn26
806		 (repeat_rng (digit happy_var_2) (Just (Just (digit happy_var_4)))
807	) `HappyStk` happyRest}}
808
809happyReduce_52 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
810happyReduce_52 = happySpecReduce_2  23# happyReduction_52
811happyReduction_52 happy_x_2
812	happy_x_1
813	 =  happyIn27
814		 (Eps
815	)
816
817happyReduce_53 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
818happyReduce_53 = happySpecReduce_1  23# happyReduction_53
819happyReduction_53 happy_x_1
820	 =  case happyOutTok happy_x_1 of { (T _ (StringT happy_var_1)) ->
821	happyIn27
822		 (foldr (:%%) Eps
823					    (map (Ch . charSetSingleton) happy_var_1)
824	)}
825
826happyReduce_54 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
827happyReduce_54 = happyMonadReduce 1# 23# happyReduction_54
828happyReduction_54 (happy_x_1 `HappyStk`
829	happyRest) tk
830	 = happyThen ((case happyOutTok happy_x_1 of { (T _ (RMacT happy_var_1)) ->
831	( lookupRMac happy_var_1)})
832	) (\r -> happyReturn (happyIn27 r))
833
834happyReduce_55 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
835happyReduce_55 = happySpecReduce_1  23# happyReduction_55
836happyReduction_55 happy_x_1
837	 =  case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) ->
838	happyIn27
839		 (Ch happy_var_1
840	)}
841
842happyReduce_56 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
843happyReduce_56 = happySpecReduce_3  23# happyReduction_56
844happyReduction_56 happy_x_3
845	happy_x_2
846	happy_x_1
847	 =  case happyOut23 happy_x_2 of { (HappyWrap23 happy_var_2) ->
848	happyIn27
849		 (happy_var_2
850	)}
851
852happyReduce_57 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
853happyReduce_57 = happySpecReduce_3  24# happyReduction_57
854happyReduction_57 happy_x_3
855	happy_x_2
856	happy_x_1
857	 =  case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) ->
858	case happyOut29 happy_x_3 of { (HappyWrap29 happy_var_3) ->
859	happyIn28
860		 (happy_var_1 `charSetMinus` happy_var_3
861	)}}
862
863happyReduce_58 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
864happyReduce_58 = happySpecReduce_1  24# happyReduction_58
865happyReduction_58 happy_x_1
866	 =  case happyOut29 happy_x_1 of { (HappyWrap29 happy_var_1) ->
867	happyIn28
868		 (happy_var_1
869	)}
870
871happyReduce_59 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
872happyReduce_59 = happySpecReduce_1  25# happyReduction_59
873happyReduction_59 happy_x_1
874	 =  case happyOutTok happy_x_1 of { (T _ (CharT happy_var_1)) ->
875	happyIn29
876		 (charSetSingleton happy_var_1
877	)}
878
879happyReduce_60 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
880happyReduce_60 = happySpecReduce_3  25# happyReduction_60
881happyReduction_60 happy_x_3
882	happy_x_2
883	happy_x_1
884	 =  case happyOutTok happy_x_1 of { (T _ (CharT happy_var_1)) ->
885	case happyOutTok happy_x_3 of { (T _ (CharT happy_var_3)) ->
886	happyIn29
887		 (charSetRange happy_var_1 happy_var_3
888	)}}
889
890happyReduce_61 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
891happyReduce_61 = happyMonadReduce 1# 25# happyReduction_61
892happyReduction_61 (happy_x_1 `HappyStk`
893	happyRest) tk
894	 = happyThen ((case happyOut31 happy_x_1 of { (HappyWrap31 happy_var_1) ->
895	( lookupSMac happy_var_1)})
896	) (\r -> happyReturn (happyIn29 r))
897
898happyReduce_62 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
899happyReduce_62 = happySpecReduce_3  25# happyReduction_62
900happyReduction_62 happy_x_3
901	happy_x_2
902	happy_x_1
903	 =  case happyOut30 happy_x_2 of { (HappyWrap30 happy_var_2) ->
904	happyIn29
905		 (foldr charSetUnion emptyCharSet happy_var_2
906	)}
907
908happyReduce_63 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
909happyReduce_63 = happyMonadReduce 4# 25# happyReduction_63
910happyReduction_63 (happy_x_4 `HappyStk`
911	happy_x_3 `HappyStk`
912	happy_x_2 `HappyStk`
913	happy_x_1 `HappyStk`
914	happyRest) tk
915	 = happyThen ((case happyOutTok happy_x_1 of { happy_var_1 ->
916	case happyOut30 happy_x_3 of { (HappyWrap30 happy_var_3) ->
917	( do { dot <- lookupSMac (tokPosn happy_var_1, ".");
918		      	        return (dot `charSetMinus`
919			      		  foldr charSetUnion emptyCharSet happy_var_3) })}})
920	) (\r -> happyReturn (happyIn29 r))
921
922happyReduce_64 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
923happyReduce_64 = happyMonadReduce 2# 25# happyReduction_64
924happyReduction_64 (happy_x_2 `HappyStk`
925	happy_x_1 `HappyStk`
926	happyRest) tk
927	 = happyThen ((case happyOutTok happy_x_1 of { happy_var_1 ->
928	case happyOut29 happy_x_2 of { (HappyWrap29 happy_var_2) ->
929	( do { dot <- lookupSMac (tokPosn happy_var_1, ".");
930		      	        return (dot `charSetMinus` happy_var_2) })}})
931	) (\r -> happyReturn (happyIn29 r))
932
933happyReduce_65 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
934happyReduce_65 = happySpecReduce_2  26# happyReduction_65
935happyReduction_65 happy_x_2
936	happy_x_1
937	 =  case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) ->
938	case happyOut30 happy_x_2 of { (HappyWrap30 happy_var_2) ->
939	happyIn30
940		 (happy_var_1 : happy_var_2
941	)}}
942
943happyReduce_66 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
944happyReduce_66 = happySpecReduce_0  26# happyReduction_66
945happyReduction_66  =  happyIn30
946		 ([]
947	)
948
949happyReduce_67 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
950happyReduce_67 = happySpecReduce_1  27# happyReduction_67
951happyReduction_67 happy_x_1
952	 =  case happyOutTok happy_x_1 of { happy_var_1 ->
953	happyIn31
954		 ((tokPosn happy_var_1, ".")
955	)}
956
957happyReduce_68 :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
958happyReduce_68 = happySpecReduce_1  27# happyReduction_68
959happyReduction_68 happy_x_1
960	 =  case happyOutTok happy_x_1 of { happy_var_1 ->
961	happyIn31
962		 (case happy_var_1 of T p (SMacT s) -> (p, s)
963	)}
964
965happyNewToken action sts stk
966	= lexer(\tk ->
967	let cont i = happyDoAction i tk action sts stk in
968	case tk of {
969	T _ EOFT -> happyDoAction 37# tk action sts stk;
970	T _ (SpecialT '.') -> cont 1#;
971	T _ (SpecialT ';') -> cont 2#;
972	T _ (SpecialT '<') -> cont 3#;
973	T _ (SpecialT '>') -> cont 4#;
974	T _ (SpecialT ',') -> cont 5#;
975	T _ (SpecialT '$') -> cont 6#;
976	T _ (SpecialT '|') -> cont 7#;
977	T _ (SpecialT '*') -> cont 8#;
978	T _ (SpecialT '+') -> cont 9#;
979	T _ (SpecialT '?') -> cont 10#;
980	T _ (SpecialT '{') -> cont 11#;
981	T _ (SpecialT '}') -> cont 12#;
982	T _ (SpecialT '(') -> cont 13#;
983	T _ (SpecialT ')') -> cont 14#;
984	T _ (SpecialT '#') -> cont 15#;
985	T _ (SpecialT '~') -> cont 16#;
986	T _ (SpecialT '-') -> cont 17#;
987	T _ (SpecialT '[') -> cont 18#;
988	T _ (SpecialT ']') -> cont 19#;
989	T _ (SpecialT '^') -> cont 20#;
990	T _ (SpecialT '/') -> cont 21#;
991	T _ ZeroT -> cont 22#;
992	T _ (StringT happy_dollar_dollar) -> cont 23#;
993	T _ (BindT happy_dollar_dollar) -> cont 24#;
994	T _ (IdT happy_dollar_dollar) -> cont 25#;
995	T _ (CodeT _) -> cont 26#;
996	T _ (CharT happy_dollar_dollar) -> cont 27#;
997	T _ (SMacT _) -> cont 28#;
998	T _ (RMacT happy_dollar_dollar) -> cont 29#;
999	T _ (SMacDefT happy_dollar_dollar) -> cont 30#;
1000	T _ (RMacDefT happy_dollar_dollar) -> cont 31#;
1001	T _ WrapperT -> cont 32#;
1002	T _ EncodingT -> cont 33#;
1003	T _ ActionTypeT -> cont 34#;
1004	T _ TokenTypeT -> cont 35#;
1005	T _ TypeClassT -> cont 36#;
1006	_ -> happyError' (tk, [])
1007	})
1008
1009happyError_ explist 37# tk = happyError' (tk, explist)
1010happyError_ explist _ tk = happyError' (tk, explist)
1011
1012happyThen :: () => P a -> (a -> P b) -> P b
1013happyThen = ((>>=))
1014happyReturn :: () => a -> P a
1015happyReturn = (return)
1016happyParse :: () => Happy_GHC_Exts.Int# -> P (HappyAbsSyn )
1017
1018happyNewToken :: () => Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
1019
1020happyDoAction :: () => Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
1021
1022happyReduceArr :: () => Happy_Data_Array.Array Int (Happy_GHC_Exts.Int# -> Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ))
1023
1024happyThen1 :: () => P a -> (a -> P b) -> P b
1025happyThen1 = happyThen
1026happyReturn1 :: () => a -> P a
1027happyReturn1 = happyReturn
1028happyError' :: () => ((Token), [String]) -> P a
1029happyError' tk = (\(tokens, explist) -> happyError) tk
1030parse = happySomeParser where
1031 happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (let {(HappyWrap4 x') = happyOut4 x} in x'))
1032
1033happySeq = happyDontSeq
1034
1035
1036happyError :: P a
1037happyError = failP "parse error"
1038
1039-- -----------------------------------------------------------------------------
1040-- Utils
1041
1042digit c = ord c - ord '0'
1043
1044repeat_rng :: Int -> Maybe (Maybe Int) -> (RExp->RExp)
1045repeat_rng n (Nothing) re = foldr (:%%) Eps (replicate n re)
1046repeat_rng n (Just Nothing) re = foldr (:%%) (Star re) (replicate n re)
1047repeat_rng n (Just (Just m)) re = intl :%% rst
1048	where
1049	intl = repeat_rng n Nothing re
1050	rst = foldr (\re re'->Ques(re :%% re')) Eps (replicate (m-n) re)
1051
1052replaceCodes codes rectx = rectx{ reCtxStartCodes = codes }
1053
1054lookupEncoding :: String -> P Encoding
1055lookupEncoding s = case map toLower s of
1056  "iso-8859-1" -> return Latin1
1057  "latin1"     -> return Latin1
1058  "utf-8"      -> return UTF8
1059  "utf8"       -> return UTF8
1060  _            -> failP ("encoding " ++ show s ++ " not supported")
1061{-# LINE 1 "templates/GenericTemplate.hs" #-}
1062-- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.
1077#if __GLASGOW_HASKELL__ > 706
1078#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Bool)
1079#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Bool)
1080#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Bool)
1081#else
1082#define LT(n,m) (n Happy_GHC_Exts.<# m)
1083#define GTE(n,m) (n Happy_GHC_Exts.>=# m)
1084#define EQ(n,m) (n Happy_GHC_Exts.==# m)
1085#endif
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
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
1146infixr 9 `HappyStk`
1147data HappyStk a = HappyStk a (HappyStk a)
1148
1149-----------------------------------------------------------------------------
1150-- starting the parse
1151
1152happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
1153
1154-----------------------------------------------------------------------------
1155-- Accepting the parse
1156
1157-- If the current token is ERROR_TOK, it means we've just accepted a partial
1158-- parse (a %partial parser).  We must ignore the saved token on the top of
1159-- the stack in this case.
1160happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
1161        happyReturn1 ans
1162happyAccept j tk st sts (HappyStk ans _) =
1163        (happyTcHack j (happyTcHack st)) (happyReturn1 ans)
1164
1165-----------------------------------------------------------------------------
1166-- Arrays only: do the next action
1167
1168
1169
1170happyDoAction i tk st
1171        = {- nothing -}
1172          case action of
1173                0#           -> {- nothing -}
1174                                     happyFail (happyExpListPerState ((Happy_GHC_Exts.I# (st)) :: Int)) i tk st
1175                -1#          -> {- nothing -}
1176                                     happyAccept i tk st
1177                n | LT(n,(0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
1178                                                   (happyReduceArr Happy_Data_Array.! rule) i tk st
1179                                                   where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
1180                n                 -> {- nothing -}
1181                                     happyShift new_state i tk st
1182                                     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
1183   where off    = happyAdjustOffset (indexShortOffAddr happyActOffsets st)
1184         off_i  = (off Happy_GHC_Exts.+# i)
1185         check  = if GTE(off_i,(0# :: Happy_GHC_Exts.Int#))
1186                  then EQ(indexShortOffAddr happyCheck off_i, i)
1187                  else False
1188         action
1189          | check     = indexShortOffAddr happyTable off_i
1190          | otherwise = indexShortOffAddr happyDefActions st
1191
1192
1193
1194
1195indexShortOffAddr (HappyA# arr) off =
1196        Happy_GHC_Exts.narrow16Int# i
1197  where
1198        i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
1199        high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
1200        low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
1201        off' = off Happy_GHC_Exts.*# 2#
1202
1203
1204
1205
1206{-# INLINE happyLt #-}
1207happyLt x y = LT(x,y)
1208
1209
1210readArrayBit arr bit =
1211    Bits.testBit (Happy_GHC_Exts.I# (indexShortOffAddr arr ((unbox_int bit) `Happy_GHC_Exts.iShiftRA#` 4#))) (bit `mod` 16)
1212  where unbox_int (Happy_GHC_Exts.I# x) = x
1213
1214
1215
1216
1217
1218
1219data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
1220
1221
1222-----------------------------------------------------------------------------
1223-- HappyState data type (not arrays)
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237-----------------------------------------------------------------------------
1238-- Shifting a token
1239
1240happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
1241     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
1242--     trace "shifting the error token" $
1243     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
1244
1245happyShift new_state i tk st sts stk =
1246     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
1247
1248-- happyReduce is specialised for the common cases.
1249
1250happySpecReduce_0 i fn 0# tk st sts stk
1251     = happyFail [] 0# tk st sts stk
1252happySpecReduce_0 nt fn j tk st@((action)) sts stk
1253     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
1254
1255happySpecReduce_1 i fn 0# tk st sts stk
1256     = happyFail [] 0# tk st sts stk
1257happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
1258     = let r = fn v1 in
1259       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
1260
1261happySpecReduce_2 i fn 0# tk st sts stk
1262     = happyFail [] 0# tk st sts stk
1263happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
1264     = let r = fn v1 v2 in
1265       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
1266
1267happySpecReduce_3 i fn 0# tk st sts stk
1268     = happyFail [] 0# tk st sts stk
1269happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
1270     = let r = fn v1 v2 v3 in
1271       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
1272
1273happyReduce k i fn 0# tk st sts stk
1274     = happyFail [] 0# tk st sts stk
1275happyReduce k nt fn j tk st sts stk
1276     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
1277         sts1@((HappyCons (st1@(action)) (_))) ->
1278                let r = fn stk in  -- it doesn't hurt to always seq here...
1279                happyDoSeq r (happyGoto nt j tk st1 sts1 r)
1280
1281happyMonadReduce k nt fn 0# tk st sts stk
1282     = happyFail [] 0# tk st sts stk
1283happyMonadReduce k nt fn j tk st sts stk =
1284      case happyDrop k (HappyCons (st) (sts)) of
1285        sts1@((HappyCons (st1@(action)) (_))) ->
1286          let drop_stk = happyDropStk k stk in
1287          happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
1288
1289happyMonad2Reduce k nt fn 0# tk st sts stk
1290     = happyFail [] 0# tk st sts stk
1291happyMonad2Reduce k nt fn j tk st sts stk =
1292      case happyDrop k (HappyCons (st) (sts)) of
1293        sts1@((HappyCons (st1@(action)) (_))) ->
1294         let drop_stk = happyDropStk k stk
1295
1296             off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st1)
1297             off_i = (off Happy_GHC_Exts.+# nt)
1298             new_state = indexShortOffAddr happyTable off_i
1299
1300
1301
1302
1303          in
1304          happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
1305
1306happyDrop 0# l = l
1307happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
1308
1309happyDropStk 0# l = l
1310happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
1311
1312-----------------------------------------------------------------------------
1313-- Moving to a new state after a reduction
1314
1315
1316happyGoto nt j tk st =
1317   {- nothing -}
1318   happyDoAction j tk new_state
1319   where off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st)
1320         off_i = (off Happy_GHC_Exts.+# nt)
1321         new_state = indexShortOffAddr happyTable off_i
1322
1323
1324
1325
1326-----------------------------------------------------------------------------
1327-- Error recovery (ERROR_TOK is the error token)
1328
1329-- parse error if we are in recovery and we fail again
1330happyFail explist 0# tk old_st _ stk@(x `HappyStk` _) =
1331     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
1332--      trace "failing" $
1333        happyError_ explist i tk
1334
1335{-  We don't need state discarding for our restricted implementation of
1336    "error".  In fact, it can cause some bogus parses, so I've disabled it
1337    for now --SDM
1338
1339-- discard a state
1340happyFail  ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts)
1341                                                (saved_tok `HappyStk` _ `HappyStk` stk) =
1342--      trace ("discarding state, depth " ++ show (length stk))  $
1343        DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk))
1344-}
1345
1346-- Enter error recovery: generate an error token,
1347--                       save the old token and carry on.
1348happyFail explist i tk (action) sts stk =
1349--      trace "entering error recovery" $
1350        happyDoAction 0# tk action sts ((Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
1351
1352-- Internal happy errors:
1353
1354notHappyAtAll :: a
1355notHappyAtAll = error "Internal Happy error\n"
1356
1357-----------------------------------------------------------------------------
1358-- Hack to get the typechecker to accept our action functions
1359
1360
1361happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
1362happyTcHack x y = y
1363{-# INLINE happyTcHack #-}
1364
1365
1366-----------------------------------------------------------------------------
1367-- Seq-ing.  If the --strict flag is given, then Happy emits
1368--      happySeq = happyDoSeq
1369-- otherwise it emits
1370--      happySeq = happyDontSeq
1371
1372happyDoSeq, happyDontSeq :: a -> b -> b
1373happyDoSeq   a b = a `seq` b
1374happyDontSeq a b = b
1375
1376-----------------------------------------------------------------------------
1377-- Don't inline any functions from the template.  GHC has a nasty habit
1378-- of deciding to inline happyGoto everywhere, which increases the size of
1379-- the generated parser quite a bit.
1380
1381
1382{-# NOINLINE happyDoAction #-}
1383{-# NOINLINE happyTable #-}
1384{-# NOINLINE happyCheck #-}
1385{-# NOINLINE happyActOffsets #-}
1386{-# NOINLINE happyGotoOffsets #-}
1387{-# NOINLINE happyDefActions #-}
1388
1389{-# NOINLINE happyShift #-}
1390{-# NOINLINE happySpecReduce_0 #-}
1391{-# NOINLINE happySpecReduce_1 #-}
1392{-# NOINLINE happySpecReduce_2 #-}
1393{-# NOINLINE happySpecReduce_3 #-}
1394{-# NOINLINE happyReduce #-}
1395{-# NOINLINE happyMonadReduce #-}
1396{-# NOINLINE happyGoto #-}
1397{-# NOINLINE happyFail #-}
1398
1399-- end of Happy Template.
1400