never executed always true always false
1 {-# OPTIONS_GHC -w #-}
2 {-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-}
3 #if __GLASGOW_HASKELL__ >= 710
4 {-# OPTIONS_GHC -XPartialTypeSignatures #-}
5 #endif
6 {-# LANGUAGE TupleSections #-}
7
8 module GHC.Cmm.Parser ( parseCmmFile ) where
9
10 import GHC.Prelude
11 import qualified Prelude -- for happy-generated code
12
13 import GHC.Driver.Session
14 import GHC.Driver.Ppr
15 import GHC.Driver.Config.Parser (initParserOpts)
16
17 import GHC.Platform
18 import GHC.Platform.Profile
19
20 import GHC.StgToCmm.ExtCode
21 import GHC.StgToCmm.Prof
22 import GHC.StgToCmm.Heap
23 import GHC.StgToCmm.Monad hiding ( getCode, getCodeR, getCodeScoped, emitLabel, emit
24 , emitStore, emitAssign, emitOutOfLine, withUpdFrameOff
25 , getUpdFrameOff, getProfile, getPlatform, getPtrOpts )
26 import qualified GHC.StgToCmm.Monad as F
27 import GHC.StgToCmm.Utils
28 import GHC.StgToCmm.Foreign
29 import GHC.StgToCmm.Expr
30 import GHC.StgToCmm.Lit
31 import GHC.StgToCmm.Closure
32 import GHC.StgToCmm.Layout hiding (ArgRep(..))
33 import GHC.StgToCmm.Ticky
34 import GHC.StgToCmm.Prof
35 import GHC.StgToCmm.Bind ( emitBlackHoleCode, emitUpdateFrame )
36
37 import GHC.Cmm.Opt
38 import GHC.Cmm.Graph
39 import GHC.Cmm
40 import GHC.Cmm.Utils
41 import GHC.Cmm.Switch ( mkSwitchTargets )
42 import GHC.Cmm.Info
43 import GHC.Cmm.BlockId
44 import GHC.Cmm.Lexer
45 import GHC.Cmm.CLabel
46 import GHC.Cmm.Parser.Monad hiding (getPlatform, getProfile, getPtrOpts)
47 import qualified GHC.Cmm.Parser.Monad as PD
48 import GHC.Cmm.CallConv
49 import GHC.Runtime.Heap.Layout
50 import GHC.Parser.Lexer
51 import GHC.Parser.Errors.Types
52 import GHC.Parser.Errors.Ppr
53
54 import GHC.Types.CostCentre
55 import GHC.Types.ForeignCall
56 import GHC.Unit.Module
57 import GHC.Unit.Home
58 import GHC.Types.Literal
59 import GHC.Types.Unique
60 import GHC.Types.Unique.FM
61 import GHC.Types.SrcLoc
62 import GHC.Types.Tickish ( GenTickish(SourceNote) )
63 import GHC.Utils.Error
64 import GHC.Data.StringBuffer
65 import GHC.Data.FastString
66 import GHC.Utils.Panic
67 import GHC.Settings.Constants
68 import GHC.Utils.Outputable
69 import GHC.Types.Basic
70 import GHC.Data.Bag ( Bag, emptyBag, unitBag, isEmptyBag )
71 import GHC.Types.Var
72
73 import Control.Monad
74 import Data.Array
75 import Data.Char ( ord )
76 import System.Exit
77 import Data.Maybe
78 import qualified Data.Map as M
79 import qualified Data.ByteString.Char8 as BS8
80 import qualified Data.Array as Happy_Data_Array
81 import qualified Data.Bits as Bits
82 import qualified GHC.Exts as Happy_GHC_Exts
83 import Control.Applicative(Applicative(..))
84 import Control.Monad (ap)
85
86 -- parser produced by Happy Version 1.20.0
87
88 newtype HappyAbsSyn = HappyAbsSyn HappyAny
89 #if __GLASGOW_HASKELL__ >= 607
90 type HappyAny = Happy_GHC_Exts.Any
91 #else
92 type HappyAny = forall a . a
93 #endif
94 newtype HappyWrap4 = HappyWrap4 (CmmParse ())
95 happyIn4 :: (CmmParse ()) -> (HappyAbsSyn )
96 happyIn4 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap4 x)
97 {-# INLINE happyIn4 #-}
98 happyOut4 :: (HappyAbsSyn ) -> HappyWrap4
99 happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x
100 {-# INLINE happyOut4 #-}
101 newtype HappyWrap5 = HappyWrap5 (CmmParse ())
102 happyIn5 :: (CmmParse ()) -> (HappyAbsSyn )
103 happyIn5 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap5 x)
104 {-# INLINE happyIn5 #-}
105 happyOut5 :: (HappyAbsSyn ) -> HappyWrap5
106 happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x
107 {-# INLINE happyOut5 #-}
108 newtype HappyWrap6 = HappyWrap6 (CmmParse ())
109 happyIn6 :: (CmmParse ()) -> (HappyAbsSyn )
110 happyIn6 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap6 x)
111 {-# INLINE happyIn6 #-}
112 happyOut6 :: (HappyAbsSyn ) -> HappyWrap6
113 happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
114 {-# INLINE happyOut6 #-}
115 newtype HappyWrap7 = HappyWrap7 (CmmParse CLabel)
116 happyIn7 :: (CmmParse CLabel) -> (HappyAbsSyn )
117 happyIn7 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap7 x)
118 {-# INLINE happyIn7 #-}
119 happyOut7 :: (HappyAbsSyn ) -> HappyWrap7
120 happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
121 {-# INLINE happyOut7 #-}
122 newtype HappyWrap8 = HappyWrap8 ([CmmParse [CmmStatic]])
123 happyIn8 :: ([CmmParse [CmmStatic]]) -> (HappyAbsSyn )
124 happyIn8 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap8 x)
125 {-# INLINE happyIn8 #-}
126 happyOut8 :: (HappyAbsSyn ) -> HappyWrap8
127 happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
128 {-# INLINE happyOut8 #-}
129 newtype HappyWrap9 = HappyWrap9 (CmmParse [CmmStatic])
130 happyIn9 :: (CmmParse [CmmStatic]) -> (HappyAbsSyn )
131 happyIn9 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap9 x)
132 {-# INLINE happyIn9 #-}
133 happyOut9 :: (HappyAbsSyn ) -> HappyWrap9
134 happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
135 {-# INLINE happyOut9 #-}
136 newtype HappyWrap10 = HappyWrap10 ([CmmParse CmmExpr])
137 happyIn10 :: ([CmmParse CmmExpr]) -> (HappyAbsSyn )
138 happyIn10 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap10 x)
139 {-# INLINE happyIn10 #-}
140 happyOut10 :: (HappyAbsSyn ) -> HappyWrap10
141 happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
142 {-# INLINE happyOut10 #-}
143 newtype HappyWrap11 = HappyWrap11 (CmmParse ())
144 happyIn11 :: (CmmParse ()) -> (HappyAbsSyn )
145 happyIn11 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap11 x)
146 {-# INLINE happyIn11 #-}
147 happyOut11 :: (HappyAbsSyn ) -> HappyWrap11
148 happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
149 {-# INLINE happyOut11 #-}
150 newtype HappyWrap12 = HappyWrap12 (Convention)
151 happyIn12 :: (Convention) -> (HappyAbsSyn )
152 happyIn12 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap12 x)
153 {-# INLINE happyIn12 #-}
154 happyOut12 :: (HappyAbsSyn ) -> HappyWrap12
155 happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
156 {-# INLINE happyOut12 #-}
157 newtype HappyWrap13 = HappyWrap13 (CmmParse ())
158 happyIn13 :: (CmmParse ()) -> (HappyAbsSyn )
159 happyIn13 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap13 x)
160 {-# INLINE happyIn13 #-}
161 happyOut13 :: (HappyAbsSyn ) -> HappyWrap13
162 happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
163 {-# INLINE happyOut13 #-}
164 newtype HappyWrap14 = HappyWrap14 (CmmParse (CLabel, Maybe CmmInfoTable, [LocalReg]))
165 happyIn14 :: (CmmParse (CLabel, Maybe CmmInfoTable, [LocalReg])) -> (HappyAbsSyn )
166 happyIn14 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap14 x)
167 {-# INLINE happyIn14 #-}
168 happyOut14 :: (HappyAbsSyn ) -> HappyWrap14
169 happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
170 {-# INLINE happyOut14 #-}
171 newtype HappyWrap15 = HappyWrap15 (CmmParse ())
172 happyIn15 :: (CmmParse ()) -> (HappyAbsSyn )
173 happyIn15 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap15 x)
174 {-# INLINE happyIn15 #-}
175 happyOut15 :: (HappyAbsSyn ) -> HappyWrap15
176 happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
177 {-# INLINE happyOut15 #-}
178 newtype HappyWrap16 = HappyWrap16 (CmmParse ())
179 happyIn16 :: (CmmParse ()) -> (HappyAbsSyn )
180 happyIn16 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap16 x)
181 {-# INLINE happyIn16 #-}
182 happyOut16 :: (HappyAbsSyn ) -> HappyWrap16
183 happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
184 {-# INLINE happyOut16 #-}
185 newtype HappyWrap17 = HappyWrap17 ([(FastString, CLabel)])
186 happyIn17 :: ([(FastString, CLabel)]) -> (HappyAbsSyn )
187 happyIn17 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap17 x)
188 {-# INLINE happyIn17 #-}
189 happyOut17 :: (HappyAbsSyn ) -> HappyWrap17
190 happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
191 {-# INLINE happyOut17 #-}
192 newtype HappyWrap18 = HappyWrap18 ((FastString, CLabel))
193 happyIn18 :: ((FastString, CLabel)) -> (HappyAbsSyn )
194 happyIn18 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap18 x)
195 {-# INLINE happyIn18 #-}
196 happyOut18 :: (HappyAbsSyn ) -> HappyWrap18
197 happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
198 {-# INLINE happyOut18 #-}
199 newtype HappyWrap19 = HappyWrap19 ([FastString])
200 happyIn19 :: ([FastString]) -> (HappyAbsSyn )
201 happyIn19 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap19 x)
202 {-# INLINE happyIn19 #-}
203 happyOut19 :: (HappyAbsSyn ) -> HappyWrap19
204 happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
205 {-# INLINE happyOut19 #-}
206 newtype HappyWrap20 = HappyWrap20 (CmmParse ())
207 happyIn20 :: (CmmParse ()) -> (HappyAbsSyn )
208 happyIn20 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap20 x)
209 {-# INLINE happyIn20 #-}
210 happyOut20 :: (HappyAbsSyn ) -> HappyWrap20
211 happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
212 {-# INLINE happyOut20 #-}
213 newtype HappyWrap21 = HappyWrap21 (CmmParse [(GlobalReg, Maybe CmmExpr)])
214 happyIn21 :: (CmmParse [(GlobalReg, Maybe CmmExpr)]) -> (HappyAbsSyn )
215 happyIn21 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap21 x)
216 {-# INLINE happyIn21 #-}
217 happyOut21 :: (HappyAbsSyn ) -> HappyWrap21
218 happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
219 {-# INLINE happyOut21 #-}
220 newtype HappyWrap22 = HappyWrap22 (CmmParse (Maybe CmmExpr))
221 happyIn22 :: (CmmParse (Maybe CmmExpr)) -> (HappyAbsSyn )
222 happyIn22 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap22 x)
223 {-# INLINE happyIn22 #-}
224 happyOut22 :: (HappyAbsSyn ) -> HappyWrap22
225 happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
226 {-# INLINE happyOut22 #-}
227 newtype HappyWrap23 = HappyWrap23 (CmmParse CmmExpr)
228 happyIn23 :: (CmmParse CmmExpr) -> (HappyAbsSyn )
229 happyIn23 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap23 x)
230 {-# INLINE happyIn23 #-}
231 happyOut23 :: (HappyAbsSyn ) -> HappyWrap23
232 happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
233 {-# INLINE happyOut23 #-}
234 newtype HappyWrap24 = HappyWrap24 (CmmReturnInfo)
235 happyIn24 :: (CmmReturnInfo) -> (HappyAbsSyn )
236 happyIn24 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap24 x)
237 {-# INLINE happyIn24 #-}
238 happyOut24 :: (HappyAbsSyn ) -> HappyWrap24
239 happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
240 {-# INLINE happyOut24 #-}
241 newtype HappyWrap25 = HappyWrap25 (CmmParse BoolExpr)
242 happyIn25 :: (CmmParse BoolExpr) -> (HappyAbsSyn )
243 happyIn25 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap25 x)
244 {-# INLINE happyIn25 #-}
245 happyOut25 :: (HappyAbsSyn ) -> HappyWrap25
246 happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
247 {-# INLINE happyOut25 #-}
248 newtype HappyWrap26 = HappyWrap26 (CmmParse BoolExpr)
249 happyIn26 :: (CmmParse BoolExpr) -> (HappyAbsSyn )
250 happyIn26 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap26 x)
251 {-# INLINE happyIn26 #-}
252 happyOut26 :: (HappyAbsSyn ) -> HappyWrap26
253 happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
254 {-# INLINE happyOut26 #-}
255 newtype HappyWrap27 = HappyWrap27 (Safety)
256 happyIn27 :: (Safety) -> (HappyAbsSyn )
257 happyIn27 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap27 x)
258 {-# INLINE happyIn27 #-}
259 happyOut27 :: (HappyAbsSyn ) -> HappyWrap27
260 happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
261 {-# INLINE happyOut27 #-}
262 newtype HappyWrap28 = HappyWrap28 ([GlobalReg])
263 happyIn28 :: ([GlobalReg]) -> (HappyAbsSyn )
264 happyIn28 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap28 x)
265 {-# INLINE happyIn28 #-}
266 happyOut28 :: (HappyAbsSyn ) -> HappyWrap28
267 happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
268 {-# INLINE happyOut28 #-}
269 newtype HappyWrap29 = HappyWrap29 ([GlobalReg])
270 happyIn29 :: ([GlobalReg]) -> (HappyAbsSyn )
271 happyIn29 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap29 x)
272 {-# INLINE happyIn29 #-}
273 happyOut29 :: (HappyAbsSyn ) -> HappyWrap29
274 happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
275 {-# INLINE happyOut29 #-}
276 newtype HappyWrap30 = HappyWrap30 (Maybe (Integer,Integer))
277 happyIn30 :: (Maybe (Integer,Integer)) -> (HappyAbsSyn )
278 happyIn30 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap30 x)
279 {-# INLINE happyIn30 #-}
280 happyOut30 :: (HappyAbsSyn ) -> HappyWrap30
281 happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
282 {-# INLINE happyOut30 #-}
283 newtype HappyWrap31 = HappyWrap31 ([CmmParse ([Integer],Either BlockId (CmmParse ()))])
284 happyIn31 :: ([CmmParse ([Integer],Either BlockId (CmmParse ()))]) -> (HappyAbsSyn )
285 happyIn31 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap31 x)
286 {-# INLINE happyIn31 #-}
287 happyOut31 :: (HappyAbsSyn ) -> HappyWrap31
288 happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
289 {-# INLINE happyOut31 #-}
290 newtype HappyWrap32 = HappyWrap32 (CmmParse ([Integer],Either BlockId (CmmParse ())))
291 happyIn32 :: (CmmParse ([Integer],Either BlockId (CmmParse ()))) -> (HappyAbsSyn )
292 happyIn32 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap32 x)
293 {-# INLINE happyIn32 #-}
294 happyOut32 :: (HappyAbsSyn ) -> HappyWrap32
295 happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
296 {-# INLINE happyOut32 #-}
297 newtype HappyWrap33 = HappyWrap33 (CmmParse (Either BlockId (CmmParse ())))
298 happyIn33 :: (CmmParse (Either BlockId (CmmParse ()))) -> (HappyAbsSyn )
299 happyIn33 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap33 x)
300 {-# INLINE happyIn33 #-}
301 happyOut33 :: (HappyAbsSyn ) -> HappyWrap33
302 happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
303 {-# INLINE happyOut33 #-}
304 newtype HappyWrap34 = HappyWrap34 ([Integer])
305 happyIn34 :: ([Integer]) -> (HappyAbsSyn )
306 happyIn34 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap34 x)
307 {-# INLINE happyIn34 #-}
308 happyOut34 :: (HappyAbsSyn ) -> HappyWrap34
309 happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
310 {-# INLINE happyOut34 #-}
311 newtype HappyWrap35 = HappyWrap35 (Maybe (CmmParse ()))
312 happyIn35 :: (Maybe (CmmParse ())) -> (HappyAbsSyn )
313 happyIn35 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap35 x)
314 {-# INLINE happyIn35 #-}
315 happyOut35 :: (HappyAbsSyn ) -> HappyWrap35
316 happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
317 {-# INLINE happyOut35 #-}
318 newtype HappyWrap36 = HappyWrap36 (CmmParse ())
319 happyIn36 :: (CmmParse ()) -> (HappyAbsSyn )
320 happyIn36 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap36 x)
321 {-# INLINE happyIn36 #-}
322 happyOut36 :: (HappyAbsSyn ) -> HappyWrap36
323 happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
324 {-# INLINE happyOut36 #-}
325 newtype HappyWrap37 = HappyWrap37 (Maybe Bool)
326 happyIn37 :: (Maybe Bool) -> (HappyAbsSyn )
327 happyIn37 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap37 x)
328 {-# INLINE happyIn37 #-}
329 happyOut37 :: (HappyAbsSyn ) -> HappyWrap37
330 happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
331 {-# INLINE happyOut37 #-}
332 newtype HappyWrap38 = HappyWrap38 (CmmParse CmmExpr)
333 happyIn38 :: (CmmParse CmmExpr) -> (HappyAbsSyn )
334 happyIn38 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap38 x)
335 {-# INLINE happyIn38 #-}
336 happyOut38 :: (HappyAbsSyn ) -> HappyWrap38
337 happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
338 {-# INLINE happyOut38 #-}
339 newtype HappyWrap39 = HappyWrap39 (CmmParse CmmExpr)
340 happyIn39 :: (CmmParse CmmExpr) -> (HappyAbsSyn )
341 happyIn39 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap39 x)
342 {-# INLINE happyIn39 #-}
343 happyOut39 :: (HappyAbsSyn ) -> HappyWrap39
344 happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
345 {-# INLINE happyOut39 #-}
346 newtype HappyWrap40 = HappyWrap40 (CmmType)
347 happyIn40 :: (CmmType) -> (HappyAbsSyn )
348 happyIn40 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap40 x)
349 {-# INLINE happyIn40 #-}
350 happyOut40 :: (HappyAbsSyn ) -> HappyWrap40
351 happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
352 {-# INLINE happyOut40 #-}
353 newtype HappyWrap41 = HappyWrap41 ([CmmParse (CmmExpr, ForeignHint)])
354 happyIn41 :: ([CmmParse (CmmExpr, ForeignHint)]) -> (HappyAbsSyn )
355 happyIn41 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap41 x)
356 {-# INLINE happyIn41 #-}
357 happyOut41 :: (HappyAbsSyn ) -> HappyWrap41
358 happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
359 {-# INLINE happyOut41 #-}
360 newtype HappyWrap42 = HappyWrap42 ([CmmParse (CmmExpr, ForeignHint)])
361 happyIn42 :: ([CmmParse (CmmExpr, ForeignHint)]) -> (HappyAbsSyn )
362 happyIn42 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap42 x)
363 {-# INLINE happyIn42 #-}
364 happyOut42 :: (HappyAbsSyn ) -> HappyWrap42
365 happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
366 {-# INLINE happyOut42 #-}
367 newtype HappyWrap43 = HappyWrap43 (CmmParse (CmmExpr, ForeignHint))
368 happyIn43 :: (CmmParse (CmmExpr, ForeignHint)) -> (HappyAbsSyn )
369 happyIn43 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap43 x)
370 {-# INLINE happyIn43 #-}
371 happyOut43 :: (HappyAbsSyn ) -> HappyWrap43
372 happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
373 {-# INLINE happyOut43 #-}
374 newtype HappyWrap44 = HappyWrap44 ([CmmParse CmmExpr])
375 happyIn44 :: ([CmmParse CmmExpr]) -> (HappyAbsSyn )
376 happyIn44 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap44 x)
377 {-# INLINE happyIn44 #-}
378 happyOut44 :: (HappyAbsSyn ) -> HappyWrap44
379 happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
380 {-# INLINE happyOut44 #-}
381 newtype HappyWrap45 = HappyWrap45 ([CmmParse CmmExpr])
382 happyIn45 :: ([CmmParse CmmExpr]) -> (HappyAbsSyn )
383 happyIn45 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap45 x)
384 {-# INLINE happyIn45 #-}
385 happyOut45 :: (HappyAbsSyn ) -> HappyWrap45
386 happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
387 {-# INLINE happyOut45 #-}
388 newtype HappyWrap46 = HappyWrap46 (CmmParse CmmExpr)
389 happyIn46 :: (CmmParse CmmExpr) -> (HappyAbsSyn )
390 happyIn46 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap46 x)
391 {-# INLINE happyIn46 #-}
392 happyOut46 :: (HappyAbsSyn ) -> HappyWrap46
393 happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
394 {-# INLINE happyOut46 #-}
395 newtype HappyWrap47 = HappyWrap47 ([CmmParse (LocalReg, ForeignHint)])
396 happyIn47 :: ([CmmParse (LocalReg, ForeignHint)]) -> (HappyAbsSyn )
397 happyIn47 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap47 x)
398 {-# INLINE happyIn47 #-}
399 happyOut47 :: (HappyAbsSyn ) -> HappyWrap47
400 happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
401 {-# INLINE happyOut47 #-}
402 newtype HappyWrap48 = HappyWrap48 ([CmmParse (LocalReg, ForeignHint)])
403 happyIn48 :: ([CmmParse (LocalReg, ForeignHint)]) -> (HappyAbsSyn )
404 happyIn48 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap48 x)
405 {-# INLINE happyIn48 #-}
406 happyOut48 :: (HappyAbsSyn ) -> HappyWrap48
407 happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
408 {-# INLINE happyOut48 #-}
409 newtype HappyWrap49 = HappyWrap49 (CmmParse (LocalReg, ForeignHint))
410 happyIn49 :: (CmmParse (LocalReg, ForeignHint)) -> (HappyAbsSyn )
411 happyIn49 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap49 x)
412 {-# INLINE happyIn49 #-}
413 happyOut49 :: (HappyAbsSyn ) -> HappyWrap49
414 happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
415 {-# INLINE happyOut49 #-}
416 newtype HappyWrap50 = HappyWrap50 (CmmParse LocalReg)
417 happyIn50 :: (CmmParse LocalReg) -> (HappyAbsSyn )
418 happyIn50 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap50 x)
419 {-# INLINE happyIn50 #-}
420 happyOut50 :: (HappyAbsSyn ) -> HappyWrap50
421 happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
422 {-# INLINE happyOut50 #-}
423 newtype HappyWrap51 = HappyWrap51 (CmmParse CmmReg)
424 happyIn51 :: (CmmParse CmmReg) -> (HappyAbsSyn )
425 happyIn51 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap51 x)
426 {-# INLINE happyIn51 #-}
427 happyOut51 :: (HappyAbsSyn ) -> HappyWrap51
428 happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
429 {-# INLINE happyOut51 #-}
430 newtype HappyWrap52 = HappyWrap52 (Maybe [CmmParse LocalReg])
431 happyIn52 :: (Maybe [CmmParse LocalReg]) -> (HappyAbsSyn )
432 happyIn52 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap52 x)
433 {-# INLINE happyIn52 #-}
434 happyOut52 :: (HappyAbsSyn ) -> HappyWrap52
435 happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
436 {-# INLINE happyOut52 #-}
437 newtype HappyWrap53 = HappyWrap53 ([CmmParse LocalReg])
438 happyIn53 :: ([CmmParse LocalReg]) -> (HappyAbsSyn )
439 happyIn53 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap53 x)
440 {-# INLINE happyIn53 #-}
441 happyOut53 :: (HappyAbsSyn ) -> HappyWrap53
442 happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
443 {-# INLINE happyOut53 #-}
444 newtype HappyWrap54 = HappyWrap54 ([CmmParse LocalReg])
445 happyIn54 :: ([CmmParse LocalReg]) -> (HappyAbsSyn )
446 happyIn54 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap54 x)
447 {-# INLINE happyIn54 #-}
448 happyOut54 :: (HappyAbsSyn ) -> HappyWrap54
449 happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
450 {-# INLINE happyOut54 #-}
451 newtype HappyWrap55 = HappyWrap55 (CmmParse LocalReg)
452 happyIn55 :: (CmmParse LocalReg) -> (HappyAbsSyn )
453 happyIn55 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap55 x)
454 {-# INLINE happyIn55 #-}
455 happyOut55 :: (HappyAbsSyn ) -> HappyWrap55
456 happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
457 {-# INLINE happyOut55 #-}
458 newtype HappyWrap56 = HappyWrap56 (CmmType)
459 happyIn56 :: (CmmType) -> (HappyAbsSyn )
460 happyIn56 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap56 x)
461 {-# INLINE happyIn56 #-}
462 happyOut56 :: (HappyAbsSyn ) -> HappyWrap56
463 happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
464 {-# INLINE happyOut56 #-}
465 newtype HappyWrap57 = HappyWrap57 (CmmType)
466 happyIn57 :: (CmmType) -> (HappyAbsSyn )
467 happyIn57 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap57 x)
468 {-# INLINE happyIn57 #-}
469 happyOut57 :: (HappyAbsSyn ) -> HappyWrap57
470 happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
471 {-# INLINE happyOut57 #-}
472 happyInTok :: (Located CmmToken) -> (HappyAbsSyn )
473 happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
474 {-# INLINE happyInTok #-}
475 happyOutTok :: (HappyAbsSyn ) -> (Located CmmToken)
476 happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
477 {-# INLINE happyOutTok #-}
478
479
480 happyExpList :: HappyAddr
481 happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x37\x00\xc1\xff\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\x80\xdf\x00\x04\xff\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\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\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x20\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\x10\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\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\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\x08\x00\x00\x00\x00\x00\x00\x00\x04\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x40\x00\x00\x00\x00\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\x04\x00\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xf0\x3f\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\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\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\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x00\x00\x00\xd0\x63\xf3\xff\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x3d\x36\xff\x3f\x00\x00\x00\x00\x00\x00\x00\x10\x02\x00\x00\x00\x40\x8f\xcd\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x08\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x20\x32\x00\x00\x00\x00\x00\xf0\xff\x07\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x08\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\xf0\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x10\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\x01\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\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\x80\x00\x00\x00\xff\x03\x00\x00\x00\x00\x00\x00\x00\x84\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x08\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\x80\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\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x10\xc0\xff\xf0\x03\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\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\x80\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x20\x32\x00\x00\x00\x00\x00\xf0\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x20\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\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\xff\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x00\x00\x00\x00\x00\xfc\xff\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\x20\x32\x00\x00\x00\x00\x00\xf0\xff\x07\x00\x00\x00\x00\x00\x00\x40\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\x80\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x20\x32\x00\x00\x00\x00\x00\xf0\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x3f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\xfc\x0f\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\xc3\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x0f\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x08\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x00\x22\x03\x02\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x04\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\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\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x08\x00\x00\x00\x00\x00\x00\x00\x04\xf0\x3f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\xfc\x0f\x3f\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x06\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\x00\x00\x00\x03\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\x10\xff\xc3\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x20\x32\x00\x00\x00\x00\x00\xf0\xff\x07\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x00\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x20\x32\x00\x00\x00\x00\x00\xf0\xff\x07\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x00\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x20\x32\x00\x00\x00\x00\x00\xf0\xff\x07\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x00\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x20\x32\x00\x00\x00\x00\x00\xf0\xff\x07\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x00\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\x00\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\x20\x32\x20\x00\x00\x00\x00\xf0\xff\x07\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x08\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x00\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7f\xfc\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\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\x08\xf0\x3f\xfc\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\x88\x0c\x00\x00\x00\x00\x04\xfc\xff\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x1f\x3f\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\x01\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\x10\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\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\xf0\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\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\x10\xff\xc3\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x01\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\x10\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\x10\x00\x00\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\x01\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\xc1\xff\xf0\x03\x00\x00\x00\x00\x00\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\x32\x00\x00\x00\x00\x00\xf0\xff\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\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\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x3f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x08\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x00\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x40\x00\x00\x00\x00\x00\x00\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\x04\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\x00\x00\x00\x00\x00\x00\x00\x00\x40\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\x10\x02\x00\x00\x00\x40\x8f\xcd\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x03\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x3f\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x3f\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x07\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x00\x00\x00\x00\x00\xfc\xff\x01\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x00\x00\x00\x00\x00\xc0\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x20\x32\x00\x00\x00\x00\x00\xf0\xff\x07\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\x0c\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\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\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x80\x00\x00\x00\x00\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\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\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\x40\x00\x00\x00\x00\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\x04\x00\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\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\x08\x04\x00\x00\x00\x00\x00\xfc\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x80\x00\x00\x00\x00\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\x04\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\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\x04\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x32\x00\x00\x00\x00\x00\xf0\xff\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\x00\x00\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\xff\xf0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\xf0\x3f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x0f\x3f\x00\x00\x00\x00\x00\x01\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\x40\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\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\x00\x00\x22\x03\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x20\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x40\x00\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\x04\x00\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\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\x40\x00\x00\x00\x00\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x3d\x36\xff\x3f\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\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\xf4\xd8\xfc\xff\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x02\x00\x00\x00\x40\x8f\xcd\xff\x0f\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\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\x01\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\x10\x00\x00\x00\x00\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\x01\x00\x00\x00\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\x10\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\x04\x00\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00"#
482
483 {-# NOINLINE happyExpListPerState #-}
484 happyExpListPerState st =
485 token_strs_expected
486 where token_strs = ["error","%dummy","%start_cmmParse","cmm","cmmtop","cmmdata","data_label","statics","static","lits","cmmproc","maybe_conv","maybe_body","info","body","decl","importNames","importName","names","stmt","unwind_regs","expr_or_unknown","foreignLabel","opt_never_returns","bool_expr","bool_op","safety","vols","globals","maybe_range","arms","arm","arm_body","ints","default","else","cond_likely","expr","expr0","maybe_ty","cmm_hint_exprs0","cmm_hint_exprs","cmm_hint_expr","exprs0","exprs","reg","foreign_results","foreign_formals","foreign_formal","local_lreg","lreg","maybe_formals","formals0","formals","formal","type","typenot8","':'","';'","'{'","'}'","'['","']'","'('","')'","'='","'`'","'~'","'/'","'*'","'%'","'-'","'+'","'&'","'^'","'|'","'>'","'<'","','","'!'","'..'","'::'","'>>'","'<<'","'>='","'<='","'=='","'!='","'&&'","'||'","'True'","'False'","'likely'","'CLOSURE'","'INFO_TABLE'","'INFO_TABLE_RET'","'INFO_TABLE_FUN'","'INFO_TABLE_CONSTR'","'INFO_TABLE_SELECTOR'","'else'","'export'","'section'","'goto'","'if'","'call'","'jump'","'foreign'","'never'","'prim'","'reserve'","'return'","'returns'","'import'","'switch'","'case'","'default'","'push'","'unwind'","'bits8'","'bits16'","'bits32'","'bits64'","'bits128'","'bits256'","'bits512'","'float32'","'float64'","'gcptr'","GLOBALREG","NAME","STRING","INT","FLOAT","%eof"]
487 bit_start = st Prelude.* 134
488 bit_end = (st Prelude.+ 1) Prelude.* 134
489 read_bit = readArrayBit happyExpList
490 bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]
491 bits_indexed = Prelude.zip bits [0..133]
492 token_strs_expected = Prelude.concatMap f bits_indexed
493 f (Prelude.False, _) = []
494 f (Prelude.True, nr) = [token_strs Prelude.!! nr]
495
496 happyActOffsets :: HappyAddr
497 happyActOffsets = HappyA# "\x44\x01\x00\x00\xba\xff\x44\x01\x00\x00\x00\x00\xdf\xff\x00\x00\xcf\xff\x00\x00\x14\x00\x18\x00\x1c\x00\x1f\x00\x2c\x00\x33\x00\xe4\xff\x21\x00\xe0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x66\x00\x56\x00\x00\x00\x79\x00\xc9\x00\xcc\x00\xf2\x00\xb4\x00\xc6\x00\xc7\x00\xd8\x00\xda\x00\xe2\x00\x1a\x01\x19\x01\x00\x00\x00\x00\x2e\x00\x2f\x04\x00\x00\x18\x01\x1e\x01\x20\x01\x23\x01\x27\x01\x2a\x01\xf8\x00\x00\x00\xf9\x00\x00\x00\x00\x00\xe0\xff\x00\x00\x00\x00\x07\x01\x43\x01\x00\x00\x04\x01\x05\x01\x09\x01\x0a\x01\x0b\x01\x08\x01\x54\x01\x00\x00\x47\x01\x16\x01\x00\x00\x00\x00\x20\x00\x5f\x01\x20\x00\x20\x00\xfa\xff\x5d\x01\x23\x00\x00\x00\x22\x04\x26\x01\x63\x00\x72\x00\x72\x00\x72\x00\x72\x01\x75\x01\x74\x01\x35\x01\x00\x00\x10\x00\x00\x00\x2f\x04\x00\x00\x68\x01\x69\x01\x08\x00\x76\x01\x8e\x01\x92\x01\x00\x00\xa2\x01\x07\x01\xff\xff\xa7\x01\xb2\x01\xb5\x01\x02\x00\x77\x01\x73\x01\xbf\x01\xbc\x01\x00\x00\xd1\x01\x00\x00\x72\x00\x72\x00\x8f\x01\x72\x00\x00\x00\x00\x00\x00\x00\xbe\x01\xbe\x01\x00\x00\x00\x00\x9f\x01\xa0\x01\xa1\x01\x00\x00\x2f\x04\xb4\x01\xf5\x01\x72\x00\x00\x00\x00\x00\x72\x00\xfe\x01\x08\x02\x72\x00\x72\x00\xc7\x01\x72\x00\xab\x02\x16\x02\x63\x02\xfc\xff\x00\x00\xe7\x02\x63\x00\x63\x00\x11\x02\x0c\x02\x06\x02\x00\x00\x17\x02\x00\x00\xd5\x01\x72\x00\x72\x00\xd6\x01\x13\x02\x00\x00\x00\x00\x00\x00\xe3\x01\xe4\x01\xd3\x01\x30\x02\x00\x00\x25\x02\x26\x00\x26\x02\x00\x00\x00\x00\x5e\x00\x2f\x02\x94\x02\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x01\x00\x14\x02\x63\x00\x63\x00\x72\x00\x37\x02\x25\x00\x72\x00\x3b\x00\xbf\x02\x32\x02\x00\x00\x23\x02\xfb\x01\x3e\x02\x4c\x00\x00\x00\x3f\x02\xd3\x02\x46\x02\x33\x02\x49\x02\x3c\x02\x3d\x02\x4b\x02\x00\x00\x2f\x04\x00\x00\x7b\x00\x4d\x02\x00\x00\x94\x02\x72\x00\x19\x02\x00\x00\x4f\x02\x55\x02\x22\x02\x5a\x02\x61\x02\x6b\x02\x66\x02\x77\x02\x70\x02\x4a\x02\x00\x00\x72\x00\x00\x00\x31\x02\x39\x02\x3a\x02\x00\x00\x3b\x02\x00\x00\x00\x00\x7a\x02\x71\x02\xe7\x02\x00\x00\xc5\x00\x58\x02\x48\x02\x92\x02\x72\x00\xc5\x00\x00\x00\x8d\x02\x97\x02\x00\x00\x98\x02\x89\x02\x00\x00\xa2\x02\xcb\x00\x8b\x02\xac\x02\x20\x00\x6c\x02\xfb\x02\xfb\x02\xfb\x02\xfb\x02\x29\x00\x29\x00\xfb\x02\xfb\x02\x66\x01\x34\x04\x44\x04\x7b\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x02\xa3\x02\x00\x00\xba\x02\x00\x00\xbb\x02\x72\x00\x72\x00\x72\x00\x72\x00\x00\x00\xc0\x02\xd7\x00\xc1\x02\x8e\x02\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\xd1\x02\x9d\x02\xb0\x02\xa0\x02\x00\x00\xa4\x02\x00\x00\xe8\x02\xe9\x02\xea\x02\xfd\x02\xf5\x02\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x02\xc9\x02\xc8\x02\xd6\x02\x00\x00\x1c\x03\x11\x03\x00\x00\x24\x03\x28\x03\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x22\x03\x23\x03\x01\x03\x7c\x02\xe7\x01\xd3\x00\x2c\x03\x00\x00\x19\x03\x2f\x03\x3c\x03\x72\x00\xf6\x02\x00\x00\x00\x00\x72\x00\x00\x00\x3e\x03\x00\x00\x00\x00\x37\x03\x3f\x03\x00\x00\xf8\x02\x06\x00\x30\x03\x35\x03\x38\x03\x50\x03\x00\x00\x0d\x03\x16\x03\x17\x03\x00\x00\x20\x00\x25\x03\x00\x00\x20\x00\x60\x03\x20\x00\x67\x03\x3d\x03\x00\x00\x00\x00\x00\x00\x78\x03\x45\x03\x7c\x03\x84\x03\x00\x00\x86\x03\x8a\x03\x92\x03\x75\x03\x82\x03\x83\x03\x5a\x03\x40\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x03\x9f\x03\x00\x00\x00\x00\x00\x00"#
498
499 happyGotoOffsets :: HappyAddr
500 happyGotoOffsets = HappyA# "\xbf\x00\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\xa0\x03\x00\x00\x8b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x03\x00\x00\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x03\x00\x00\x00\x00\xa9\x03\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x03\x00\x00\xc0\x03\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\xf0\x00\x00\x00\xf3\x00\xfb\x00\x00\x00\x00\x00\xb5\x03\x00\x00\x4b\x04\x00\x00\x79\x01\x4f\x03\x51\x03\x5d\x03\x00\x00\x9a\x03\x00\x00\xbd\x03\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\xbc\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x03\x6d\x03\x00\x00\x79\x03\x00\x00\x00\x00\x00\x00\xac\x03\xad\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x00\x00\x00\x00\x7b\x03\x00\x00\x00\x00\x30\x01\x00\x00\x00\x00\x93\x01\x87\x03\x00\x00\xf9\x02\x00\x00\xba\x03\x00\x00\xbb\x03\x00\x00\x00\x00\x7b\x01\x7d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x03\x89\x03\x95\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x03\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x03\xa3\x03\xa5\x03\xb1\x03\xb3\x03\xbf\x03\xc1\x03\xcd\x03\xcf\x03\xdb\x03\xdd\x03\xe9\x03\xeb\x03\xf7\x03\xf9\x03\x05\x04\x00\x00\x00\x00\x7f\x01\x95\x01\xfc\x02\x00\x00\xc7\x03\x10\x03\xbe\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\x00\x00\x00\x00\xe4\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x04\x00\x00\x00\x00\x00\x00\xe6\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x03\xf1\x00\x00\x00\x00\x00\x43\x03\xef\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x03\x51\x00\x13\x04\x15\x04\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x03\xfc\x00\xde\x03\x00\x00\xf5\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x03\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x03\xf2\x03\x00\x00\x00\x00\x41\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x03\xfa\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x01\x00\x00\x00\x00\x2c\x01\x00\x00\x33\x01\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
501
502 happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#
503 happyAdjustOffset off = off
504
505 happyDefActions :: HappyAddr
506 happyDefActions = HappyA# "\xfe\xff\x00\x00\x00\x00\xfe\xff\xfb\xff\xfc\xff\xeb\xff\xfa\xff\x00\x00\x5f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xff\x5e\xff\x5d\xff\x5c\xff\x5b\xff\x5a\xff\x59\xff\x58\xff\x57\xff\x56\xff\xe7\xff\x00\x00\xda\xff\x00\x00\xd8\xff\x00\x00\x00\x00\x00\x00\xd5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xff\xea\xff\xfd\xff\x00\x00\x66\xff\xdd\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\xd6\xff\xd7\xff\x00\x00\xdc\xff\xd9\xff\xf6\xff\x00\x00\xd4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xff\x63\xff\x00\x00\xec\xff\xe9\xff\xe0\xff\x00\x00\xe0\xff\xe0\xff\x00\x00\x00\x00\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\xff\x00\x00\x00\x00\x69\xff\x6a\xff\x61\xff\x64\xff\x67\xff\xee\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\xff\x00\x00\xf6\xff\x00\x00\x5f\xff\x00\x00\x60\xff\x00\x00\x00\x00\x00\x00\x00\x00\x88\xff\x84\xff\x00\x00\xf3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x73\xff\x74\xff\x85\xff\x80\xff\x80\xff\xf5\xff\xf8\xff\x00\x00\x00\x00\x00\x00\xe2\xff\x66\xff\x00\x00\x00\x00\x00\x00\x62\xff\xd2\xff\x78\xff\x00\x00\x00\x00\x78\xff\x00\x00\x00\x00\x78\xff\x00\x00\x00\x00\x00\x00\x9c\xff\xb8\xff\xb7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x70\xff\x6d\xff\x00\x00\x6b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\xff\xdf\xff\xe8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xff\x00\x00\x6f\xff\x00\x00\xcb\xff\xb4\xff\x00\x00\xb8\xff\xb7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xff\x00\x00\x00\x00\x78\xff\x00\x00\x76\xff\x00\x00\x77\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\x00\x00\xee\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xff\x00\x00\x87\xff\x8a\xff\x00\x00\x8b\xff\x00\x00\x00\x00\x00\x00\xf4\xff\x00\x00\xee\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xff\x78\xff\x7f\xff\x00\x00\x00\x00\x00\x00\xe1\xff\x00\x00\xf9\xff\xed\xff\x00\x00\xbe\xff\xbc\xff\xbd\xff\x00\x00\xa9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xff\x00\x00\x00\x00\xb0\xff\x00\x00\xad\xff\xc9\xff\x00\x00\xb5\xff\xb6\xff\x00\x00\xe0\xff\x00\x00\x8d\xff\x8c\xff\x8f\xff\x91\xff\x95\xff\x96\xff\x8e\xff\x90\xff\x92\xff\x93\xff\x94\xff\x97\xff\x98\xff\x99\xff\x9a\xff\x9b\xff\xb3\xff\x71\xff\x6e\xff\x00\x00\x00\x00\xd1\xff\x00\x00\xbb\xff\x00\x00\x78\xff\x7e\xff\x00\x00\x00\x00\xc4\xff\x00\x00\x00\x00\x00\x00\x00\x00\xaf\xff\xae\xff\x00\x00\xc1\xff\x75\xff\xca\xff\x00\x00\xa1\xff\xa9\xff\x00\x00\xc2\xff\x00\x00\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\xff\x00\x00\xf0\xff\xef\xff\xf2\xff\xf1\xff\x89\xff\x82\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbf\xff\x00\x00\xa4\xff\xa8\xff\x00\x00\x00\x00\xab\xff\xc8\xff\x78\xff\xac\xff\xc6\xff\x00\x00\x00\x00\xa0\xff\x00\x00\x00\x00\x7a\xff\x00\x00\x7d\xff\x7c\xff\x00\x00\x00\x00\x00\x00\xb2\xff\x79\xff\xd0\xff\x78\xff\xc3\xff\x00\x00\x9d\xff\x9e\xff\x00\x00\x00\x00\xcc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xff\x00\x00\x00\x00\x00\x00\xa7\xff\xe0\xff\x00\x00\xa3\xff\xe0\xff\x00\x00\xe0\xff\x00\x00\xba\xff\xb1\xff\x7b\xff\xce\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xff\xa6\xff\xa5\xff\xa2\xff\x9f\xff\xc5\xff\xb9\xff\xcf\xff\x00\x00\x00\x00\xe4\xff\xe5\xff"#
507
508 happyCheck :: HappyAddr
509 happyCheck = HappyA# "\xff\xff\x02\x00\x12\x00\x07\x00\x03\x00\x25\x00\x07\x00\x4d\x00\x06\x00\x03\x00\x0b\x00\x04\x00\x05\x00\x0e\x00\x0f\x00\x23\x00\x08\x00\x01\x00\x22\x00\x23\x00\x02\x00\x36\x00\x2a\x00\x07\x00\x49\x00\x07\x00\x2a\x00\x07\x00\x20\x00\x21\x00\x16\x00\x07\x00\x34\x00\x35\x00\x02\x00\x07\x00\x34\x00\x35\x00\x07\x00\x07\x00\x05\x00\x49\x00\x4a\x00\x06\x00\x32\x00\x49\x00\x34\x00\x2e\x00\x02\x00\x03\x00\x0d\x00\x07\x00\x2e\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x07\x00\x34\x00\x35\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x2c\x00\x4b\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x07\x00\x34\x00\x35\x00\x36\x00\x0b\x00\x38\x00\x39\x00\x0e\x00\x0f\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x07\x00\x4a\x00\x49\x00\x48\x00\x0b\x00\x49\x00\x4a\x00\x0e\x00\x0f\x00\x22\x00\x23\x00\x02\x00\x25\x00\x26\x00\x27\x00\x07\x00\x17\x00\x2a\x00\x16\x00\x0b\x00\x20\x00\x21\x00\x0e\x00\x0f\x00\x36\x00\x48\x00\x49\x00\x34\x00\x35\x00\x0c\x00\x0d\x00\x0e\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x07\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x49\x00\x0e\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x00\x00\x01\x00\x02\x00\x49\x00\x00\x00\x01\x00\x02\x00\x07\x00\x02\x00\x03\x00\x0a\x00\x07\x00\x0c\x00\x03\x00\x0a\x00\x02\x00\x0c\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x04\x00\x05\x00\x20\x00\x21\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x34\x00\x35\x00\x0d\x00\x0e\x00\x34\x00\x35\x00\x22\x00\x23\x00\x0b\x00\x0c\x00\x49\x00\x0b\x00\x0c\x00\x10\x00\x0d\x00\x0e\x00\x10\x00\x34\x00\x35\x00\x0b\x00\x0c\x00\x16\x00\x0b\x00\x0c\x00\x10\x00\x1b\x00\x1c\x00\x10\x00\x49\x00\x49\x00\x0b\x00\x0c\x00\x2c\x00\x2d\x00\x2e\x00\x10\x00\x1b\x00\x1c\x00\x34\x00\x35\x00\x2b\x00\x02\x00\x4a\x00\x2b\x00\x2f\x00\x07\x00\x49\x00\x2f\x00\x49\x00\x34\x00\x35\x00\x2b\x00\x34\x00\x35\x00\x2b\x00\x2f\x00\x49\x00\x25\x00\x2f\x00\x16\x00\x34\x00\x35\x00\x2b\x00\x34\x00\x35\x00\x16\x00\x2f\x00\x16\x00\x0b\x00\x0c\x00\x16\x00\x34\x00\x35\x00\x10\x00\x16\x00\x0b\x00\x0c\x00\x16\x00\x49\x00\x49\x00\x10\x00\x01\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x4b\x00\x4b\x00\x49\x00\x22\x00\x23\x00\x4b\x00\x4b\x00\x4b\x00\x2b\x00\x28\x00\x29\x00\x2a\x00\x2f\x00\x08\x00\x16\x00\x2b\x00\x49\x00\x34\x00\x35\x00\x2f\x00\x04\x00\x34\x00\x35\x00\x09\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x49\x00\x2c\x00\x2d\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x07\x00\x05\x00\x07\x00\x38\x00\x48\x00\x16\x00\x16\x00\x1a\x00\x1b\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x16\x00\x49\x00\x15\x00\x16\x00\x15\x00\x16\x00\x15\x00\x16\x00\x15\x00\x16\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x22\x00\x23\x00\x22\x00\x23\x00\x22\x00\x23\x00\x22\x00\x23\x00\x2a\x00\x16\x00\x2a\x00\x04\x00\x2a\x00\x16\x00\x2a\x00\x15\x00\x16\x00\x05\x00\x34\x00\x35\x00\x34\x00\x35\x00\x34\x00\x35\x00\x34\x00\x35\x00\x22\x00\x23\x00\x22\x00\x23\x00\x07\x00\x05\x00\x28\x00\x29\x00\x2a\x00\x4b\x00\x2a\x00\x49\x00\x02\x00\x32\x00\x33\x00\x34\x00\x35\x00\x0a\x00\x34\x00\x35\x00\x34\x00\x35\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x02\x00\x05\x00\x19\x00\x49\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x02\x00\x4b\x00\x4b\x00\x4b\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x08\x00\x03\x00\x4b\x00\x02\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x09\x00\x4b\x00\x02\x00\x08\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x05\x00\x16\x00\x07\x00\x49\x00\x08\x00\x4a\x00\x0e\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x49\x00\x49\x00\x09\x00\x09\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x06\x00\x08\x00\x24\x00\x02\x00\x08\x00\x18\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x08\x00\x08\x00\x02\x00\x16\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x06\x00\x08\x00\x16\x00\x16\x00\x07\x00\x06\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x06\x00\x16\x00\x49\x00\x02\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x07\x00\x16\x00\x4a\x00\x02\x00\x08\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x02\x00\x0a\x00\x4a\x00\x02\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x07\x00\x4b\x00\x4b\x00\x4b\x00\x16\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x3a\x00\x4b\x00\x02\x00\x08\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x08\x00\x06\x00\x06\x00\x16\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x08\x00\x20\x00\x09\x00\x01\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x09\x00\x49\x00\x30\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x07\x00\x07\x00\x02\x00\x04\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x48\x00\x06\x00\x3b\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x3a\x00\x4b\x00\x48\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x08\x00\x16\x00\x16\x00\x16\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x4a\x00\x4a\x00\x16\x00\x4b\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x22\x00\x23\x00\x01\x00\x22\x00\x23\x00\x4a\x00\x28\x00\x29\x00\x2a\x00\x28\x00\x29\x00\x2a\x00\x16\x00\x04\x00\x01\x00\x08\x00\x08\x00\x2b\x00\x34\x00\x35\x00\x16\x00\x34\x00\x35\x00\x22\x00\x23\x00\x08\x00\x22\x00\x23\x00\x08\x00\x28\x00\x29\x00\x2a\x00\x28\x00\x29\x00\x2a\x00\x02\x00\x08\x00\x4a\x00\x03\x00\x03\x00\x4b\x00\x34\x00\x35\x00\x16\x00\x34\x00\x35\x00\x22\x00\x23\x00\x16\x00\x22\x00\x23\x00\x16\x00\x28\x00\x29\x00\x2a\x00\x28\x00\x29\x00\x2a\x00\x22\x00\x23\x00\x4a\x00\x08\x00\x26\x00\x27\x00\x34\x00\x35\x00\x2a\x00\x34\x00\x35\x00\x4a\x00\x4a\x00\x02\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x28\x00\x29\x00\x2a\x00\x29\x00\x2a\x00\x49\x00\x08\x00\x33\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x02\x00\x2a\x00\x37\x00\x08\x00\x02\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x04\x00\x2a\x00\x04\x00\x4b\x00\x02\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x04\x00\x2a\x00\x16\x00\x16\x00\x0f\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x4a\x00\x2a\x00\x08\x00\x08\x00\x08\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x09\x00\x2a\x00\x1a\x00\x0f\x00\x0f\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x30\x00\x2a\x00\x06\x00\x03\x00\x0f\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x11\x00\x2a\x00\x24\x00\x24\x00\x18\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x21\x00\x2a\x00\x2e\x00\x13\x00\x19\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x06\x00\x2a\x00\x06\x00\x2f\x00\x09\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x09\x00\x2a\x00\x19\x00\x1f\x00\x1e\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x11\x00\x2a\x00\x20\x00\x17\x00\x1e\x00\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\x14\x00\x2a\x00\xff\xff\x1d\x00\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\x34\x00\x35\x00\x34\x00\x35\x00\x2a\x00\xff\xff\x2a\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\xff\xff\x34\x00\x35\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\x4a\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x2c\x00\x2d\x00\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
510
511 happyTable :: HappyAddr
512 happyTable = HappyA# "\x00\x00\x7c\x00\x03\x01\xcd\x00\x18\x01\x21\x00\x7d\x00\xff\xff\xf1\x00\x87\x01\x7e\x00\x6e\x00\x6f\x00\x7f\x00\x80\x00\x53\x01\x8b\x00\x91\x00\x04\x01\x78\x00\x61\x01\x2f\x00\x79\x00\x92\x00\x26\x00\x62\x01\x79\x00\x2c\x00\xce\x00\xcf\x00\x8c\x00\x2b\x00\x7a\x00\x09\x00\x58\x00\x2a\x00\x7a\x00\x09\x00\x29\x00\x59\x00\xa8\x00\x22\x00\x23\x00\x10\x01\xaa\x00\x26\x00\xab\x00\x19\x01\x50\x00\x51\x00\x11\x01\x28\x00\x88\x01\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\x27\x00\x70\x00\x71\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x11\x00\xf2\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x72\xff\x7d\x00\x72\xff\x5e\x00\x5f\x00\x7e\x00\x13\x00\x60\x00\x7f\x00\x80\x00\x61\x00\x62\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x63\x00\x64\x00\x9f\x00\x24\x00\x26\x00\x12\x01\x7e\x00\xa6\x00\xa7\x00\x7f\x00\x80\x00\x69\x01\x78\x00\x40\x00\x6a\x01\x6b\x01\x6c\x01\x7d\x00\xa0\x00\x79\x00\x3f\x00\x7e\x00\xce\x00\xcf\x00\x7f\x00\x80\x00\x06\x01\x63\x00\x0d\x01\x7a\x00\x09\x00\xbc\x00\xbd\x00\xbe\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x7d\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x09\x00\x3e\x00\x7f\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x02\x00\x03\x00\x04\x00\x3d\x00\x2f\x00\x03\x00\x04\x00\x05\x00\x50\x00\x51\x00\x06\x00\x05\x00\x07\x00\x3c\x00\x06\x00\x3b\x00\x07\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x85\x00\x6f\x00\xce\x00\xcf\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\x08\x00\x09\x00\x1e\x00\x1f\x00\x08\x00\x09\x00\x65\x01\x66\x01\x51\x00\x52\x00\x39\x00\xac\x00\x52\x00\x53\x00\x40\x00\x1f\x00\x53\x00\xfa\x00\x09\x00\xab\x00\x52\x00\x3a\x00\x37\x01\x52\x00\x53\x00\x42\x01\x43\x01\x53\x00\x38\x00\x37\x00\x98\x01\x52\x00\x2b\x01\xa2\x00\xa3\x00\x53\x00\x5c\x01\x43\x01\x70\x00\x71\x00\x54\x00\x33\x00\x72\x01\x54\x00\x55\x00\x32\x00\x36\x00\x55\x00\x35\x00\x56\x00\x09\x00\x54\x00\x56\x00\x09\x00\x54\x00\x55\x00\x34\x00\x73\x00\x55\x00\x4a\x00\x56\x00\x09\x00\x54\x00\x56\x00\x09\x00\x49\x00\x55\x00\x48\x00\x96\x01\x52\x00\x47\x00\x56\x00\x09\x00\x53\x00\x46\x00\x94\x01\x52\x00\x45\x00\x26\x00\x43\x00\x53\x00\x6e\x00\x74\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x6d\x00\x6c\x00\x68\x00\xd4\x00\x78\x00\x6b\x00\x6a\x00\x69\x00\x54\x00\xdc\x00\xd6\x00\x79\x00\x55\x00\x67\x00\x66\x00\x54\x00\x65\x00\x56\x00\x09\x00\x55\x00\xae\x00\x7a\x00\x09\x00\xa9\x00\x56\x00\x09\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\xa1\x00\x11\x00\x12\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\x98\x00\x97\x00\x95\x00\x13\x00\x94\x00\x8f\x00\x8d\x00\xc6\x00\xc7\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x8a\x00\x1e\x00\x9b\x00\x9c\x00\xb8\x00\xb9\x00\xb7\x00\x9c\x00\x15\x01\x9c\x00\xe0\x00\x4b\x00\x4c\x00\x4d\x00\x09\x00\x9d\x00\x78\x00\xba\x00\x78\x00\x9d\x00\x78\x00\x9d\x00\x78\x00\x79\x00\x89\x00\x79\x00\x87\x00\x79\x00\x88\x00\x79\x00\x14\x01\x9c\x00\x77\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\xd4\x00\x78\x00\x9d\x00\x78\x00\x76\x00\x75\x00\xd9\x00\xd6\x00\x79\x00\xef\x00\x79\x00\xf0\x00\xee\x00\x8f\x00\x4c\x00\x4d\x00\x09\x00\xed\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x2f\x01\xec\x00\xe6\x00\xe9\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x73\x01\xe4\x00\xe3\x00\xe2\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xdf\x00\x08\x01\xe0\x00\xdc\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xdb\x00\xd8\x00\xb7\x00\xb6\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xd2\x00\xb5\x00\xd3\x00\xa6\x00\xb4\x00\xb0\x00\xaf\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x32\x01\x31\x01\x2d\x01\x2b\x01\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\x2e\x01\x2a\x01\x17\x01\x13\x01\x0a\x01\x09\x01\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x07\x01\x03\x01\x01\x01\x00\x01\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\x4e\x01\xff\x00\xfe\x00\xfd\x00\xfa\x00\xf6\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xf3\x00\xfc\x00\xf7\x00\x53\x01\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xd0\x00\x8f\x00\xf4\x00\x52\x01\x51\x01\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x50\x01\x4f\x01\x4c\x01\x48\x01\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\x74\x01\x4b\x01\x4a\x01\x49\x01\x47\x01\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x45\x01\x42\x01\x41\x01\x3e\x01\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xf9\x00\x3d\x01\x3c\x01\x3b\x01\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x3a\x01\xce\x00\x35\x01\x39\x01\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xd4\x00\x37\x01\x36\x01\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x34\x01\x33\x01\x64\x01\x67\x01\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x0b\x01\x12\x01\x60\x01\x5f\x01\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x8f\x00\x45\x01\x5c\x01\x94\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\x55\x01\x59\x01\x58\x01\x57\x01\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\x00\x00\x00\x00\x81\x01\x7f\x01\x56\x01\x80\x01\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x00\x78\x00\x7d\x01\xd4\x00\x78\x00\x7e\x01\xd5\x00\xd6\x00\x79\x00\x13\x01\xd6\x00\x79\x00\x7c\x01\x7b\x01\x7a\x01\x78\x01\x77\x01\x76\x01\x7a\x00\x09\x00\x70\x01\x7a\x00\x09\x00\xd4\x00\x78\x00\x71\x01\xd4\x00\x78\x00\x6f\x01\x0d\x01\xd6\x00\x79\x00\x4c\x01\xd6\x00\x79\x00\x91\x01\x8b\x01\x8f\x01\x8c\x01\x8a\x01\x5c\x01\x7a\x00\x09\x00\x85\x01\x7a\x00\x09\x00\xd4\x00\x78\x00\x84\x01\xd4\x00\x78\x00\x83\x01\x6d\x01\xd6\x00\x79\x00\x78\x01\xd6\x00\x79\x00\x69\x01\x78\x00\x9c\x01\x82\x01\x8f\x01\x6c\x01\x7a\x00\x09\x00\x79\x00\x7a\x00\x09\x00\x9b\x01\x9a\x01\x96\x01\xd4\x00\x78\x00\xd4\x00\x78\x00\x7a\x00\x09\x00\x8c\x01\xd6\x00\x79\x00\x3f\x01\x79\x00\x98\x01\x94\x01\x93\x01\x9a\x00\x78\x00\x99\x00\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\xa6\x01\x79\x00\xa5\x01\x9f\x01\xa4\x01\x98\x00\x78\x00\x77\x00\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\xa3\x01\x79\x00\xa2\x01\xa7\x01\xa1\x01\xea\x00\x78\x00\xe9\x00\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\xa0\x01\x79\x00\x9e\x01\x9d\x01\x2c\x00\xe7\x00\x78\x00\xdd\x00\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\xa8\x01\x79\x00\xaa\x01\xa9\x01\x2d\x00\xd8\x00\x78\x00\xb1\x00\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x4e\x00\x79\x00\x95\x00\x24\x00\x43\x00\xb0\x00\x78\x00\x28\x01\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x30\x00\x79\x00\x8d\x00\x41\x00\x2c\x00\x27\x01\x78\x00\x26\x01\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x92\x00\x79\x00\xe6\x00\xe4\x00\xd0\x00\x25\x01\x78\x00\x24\x01\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\xcb\x00\x79\x00\xb2\x00\x2f\x01\x0e\x01\x23\x01\x78\x00\x22\x01\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x01\x01\x79\x00\xf4\x00\x0b\x01\x45\x01\x21\x01\x78\x00\x20\x01\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x3e\x01\x79\x00\x62\x01\x5d\x01\x5a\x01\x1f\x01\x78\x00\x1e\x01\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x59\x01\x79\x00\x74\x01\x8d\x01\x88\x01\x1d\x01\x78\x00\x1c\x01\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x91\x01\x79\x00\x00\x00\x85\x01\x00\x00\x1b\x01\x78\x00\x1a\x01\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x00\x00\x79\x00\x00\x00\x00\x00\x00\x00\x19\x01\x78\x00\xf7\x00\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x00\x00\x79\x00\x00\x00\x00\x00\x00\x00\x68\x01\x78\x00\x67\x01\x78\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x79\x00\x00\x00\x79\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\x00\x00\x7a\x00\x09\x00\x7a\x00\x09\x00\x00\x00\x00\x00\x00\x00\xc6\x00\xc7\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x00\xc7\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\xa6\x00\xa7\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x4c\x00\x4d\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
513
514 happyReduceArr = Happy_Data_Array.array (1, 169) [
515 (1 , happyReduce_1),
516 (2 , happyReduce_2),
517 (3 , happyReduce_3),
518 (4 , happyReduce_4),
519 (5 , happyReduce_5),
520 (6 , happyReduce_6),
521 (7 , happyReduce_7),
522 (8 , happyReduce_8),
523 (9 , happyReduce_9),
524 (10 , happyReduce_10),
525 (11 , happyReduce_11),
526 (12 , happyReduce_12),
527 (13 , happyReduce_13),
528 (14 , happyReduce_14),
529 (15 , happyReduce_15),
530 (16 , happyReduce_16),
531 (17 , happyReduce_17),
532 (18 , happyReduce_18),
533 (19 , happyReduce_19),
534 (20 , happyReduce_20),
535 (21 , happyReduce_21),
536 (22 , happyReduce_22),
537 (23 , happyReduce_23),
538 (24 , happyReduce_24),
539 (25 , happyReduce_25),
540 (26 , happyReduce_26),
541 (27 , happyReduce_27),
542 (28 , happyReduce_28),
543 (29 , happyReduce_29),
544 (30 , happyReduce_30),
545 (31 , happyReduce_31),
546 (32 , happyReduce_32),
547 (33 , happyReduce_33),
548 (34 , happyReduce_34),
549 (35 , happyReduce_35),
550 (36 , happyReduce_36),
551 (37 , happyReduce_37),
552 (38 , happyReduce_38),
553 (39 , happyReduce_39),
554 (40 , happyReduce_40),
555 (41 , happyReduce_41),
556 (42 , happyReduce_42),
557 (43 , happyReduce_43),
558 (44 , happyReduce_44),
559 (45 , happyReduce_45),
560 (46 , happyReduce_46),
561 (47 , happyReduce_47),
562 (48 , happyReduce_48),
563 (49 , happyReduce_49),
564 (50 , happyReduce_50),
565 (51 , happyReduce_51),
566 (52 , happyReduce_52),
567 (53 , happyReduce_53),
568 (54 , happyReduce_54),
569 (55 , happyReduce_55),
570 (56 , happyReduce_56),
571 (57 , happyReduce_57),
572 (58 , happyReduce_58),
573 (59 , happyReduce_59),
574 (60 , happyReduce_60),
575 (61 , happyReduce_61),
576 (62 , happyReduce_62),
577 (63 , happyReduce_63),
578 (64 , happyReduce_64),
579 (65 , happyReduce_65),
580 (66 , happyReduce_66),
581 (67 , happyReduce_67),
582 (68 , happyReduce_68),
583 (69 , happyReduce_69),
584 (70 , happyReduce_70),
585 (71 , happyReduce_71),
586 (72 , happyReduce_72),
587 (73 , happyReduce_73),
588 (74 , happyReduce_74),
589 (75 , happyReduce_75),
590 (76 , happyReduce_76),
591 (77 , happyReduce_77),
592 (78 , happyReduce_78),
593 (79 , happyReduce_79),
594 (80 , happyReduce_80),
595 (81 , happyReduce_81),
596 (82 , happyReduce_82),
597 (83 , happyReduce_83),
598 (84 , happyReduce_84),
599 (85 , happyReduce_85),
600 (86 , happyReduce_86),
601 (87 , happyReduce_87),
602 (88 , happyReduce_88),
603 (89 , happyReduce_89),
604 (90 , happyReduce_90),
605 (91 , happyReduce_91),
606 (92 , happyReduce_92),
607 (93 , happyReduce_93),
608 (94 , happyReduce_94),
609 (95 , happyReduce_95),
610 (96 , happyReduce_96),
611 (97 , happyReduce_97),
612 (98 , happyReduce_98),
613 (99 , happyReduce_99),
614 (100 , happyReduce_100),
615 (101 , happyReduce_101),
616 (102 , happyReduce_102),
617 (103 , happyReduce_103),
618 (104 , happyReduce_104),
619 (105 , happyReduce_105),
620 (106 , happyReduce_106),
621 (107 , happyReduce_107),
622 (108 , happyReduce_108),
623 (109 , happyReduce_109),
624 (110 , happyReduce_110),
625 (111 , happyReduce_111),
626 (112 , happyReduce_112),
627 (113 , happyReduce_113),
628 (114 , happyReduce_114),
629 (115 , happyReduce_115),
630 (116 , happyReduce_116),
631 (117 , happyReduce_117),
632 (118 , happyReduce_118),
633 (119 , happyReduce_119),
634 (120 , happyReduce_120),
635 (121 , happyReduce_121),
636 (122 , happyReduce_122),
637 (123 , happyReduce_123),
638 (124 , happyReduce_124),
639 (125 , happyReduce_125),
640 (126 , happyReduce_126),
641 (127 , happyReduce_127),
642 (128 , happyReduce_128),
643 (129 , happyReduce_129),
644 (130 , happyReduce_130),
645 (131 , happyReduce_131),
646 (132 , happyReduce_132),
647 (133 , happyReduce_133),
648 (134 , happyReduce_134),
649 (135 , happyReduce_135),
650 (136 , happyReduce_136),
651 (137 , happyReduce_137),
652 (138 , happyReduce_138),
653 (139 , happyReduce_139),
654 (140 , happyReduce_140),
655 (141 , happyReduce_141),
656 (142 , happyReduce_142),
657 (143 , happyReduce_143),
658 (144 , happyReduce_144),
659 (145 , happyReduce_145),
660 (146 , happyReduce_146),
661 (147 , happyReduce_147),
662 (148 , happyReduce_148),
663 (149 , happyReduce_149),
664 (150 , happyReduce_150),
665 (151 , happyReduce_151),
666 (152 , happyReduce_152),
667 (153 , happyReduce_153),
668 (154 , happyReduce_154),
669 (155 , happyReduce_155),
670 (156 , happyReduce_156),
671 (157 , happyReduce_157),
672 (158 , happyReduce_158),
673 (159 , happyReduce_159),
674 (160 , happyReduce_160),
675 (161 , happyReduce_161),
676 (162 , happyReduce_162),
677 (163 , happyReduce_163),
678 (164 , happyReduce_164),
679 (165 , happyReduce_165),
680 (166 , happyReduce_166),
681 (167 , happyReduce_167),
682 (168 , happyReduce_168),
683 (169 , happyReduce_169)
684 ]
685
686 happy_n_terms = 78 :: Prelude.Int
687 happy_n_nonterms = 54 :: Prelude.Int
688
689 happyReduce_1 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
690 happyReduce_1 = happySpecReduce_0 0# happyReduction_1
691 happyReduction_1 = happyIn4
692 (return ()
693 )
694
695 happyReduce_2 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
696 happyReduce_2 = happySpecReduce_2 0# happyReduction_2
697 happyReduction_2 happy_x_2
698 happy_x_1
699 = case happyOut5 happy_x_1 of { (HappyWrap5 happy_var_1) ->
700 case happyOut4 happy_x_2 of { (HappyWrap4 happy_var_2) ->
701 happyIn4
702 (do happy_var_1; happy_var_2
703 )}}
704
705 happyReduce_3 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
706 happyReduce_3 = happySpecReduce_1 1# happyReduction_3
707 happyReduction_3 happy_x_1
708 = case happyOut11 happy_x_1 of { (HappyWrap11 happy_var_1) ->
709 happyIn5
710 (happy_var_1
711 )}
712
713 happyReduce_4 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
714 happyReduce_4 = happySpecReduce_1 1# happyReduction_4
715 happyReduction_4 happy_x_1
716 = case happyOut6 happy_x_1 of { (HappyWrap6 happy_var_1) ->
717 happyIn5
718 (happy_var_1
719 )}
720
721 happyReduce_5 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
722 happyReduce_5 = happySpecReduce_1 1# happyReduction_5
723 happyReduction_5 happy_x_1
724 = case happyOut16 happy_x_1 of { (HappyWrap16 happy_var_1) ->
725 happyIn5
726 (happy_var_1
727 )}
728
729 happyReduce_6 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
730 happyReduce_6 = happyMonadReduce 8# 1# happyReduction_6
731 happyReduction_6 (happy_x_8 `HappyStk`
732 happy_x_7 `HappyStk`
733 happy_x_6 `HappyStk`
734 happy_x_5 `HappyStk`
735 happy_x_4 `HappyStk`
736 happy_x_3 `HappyStk`
737 happy_x_2 `HappyStk`
738 happy_x_1 `HappyStk`
739 happyRest) tk
740 = happyThen ((case happyOutTok happy_x_3 of { (L _ (CmmT_Name happy_var_3)) ->
741 case happyOutTok happy_x_5 of { (L _ (CmmT_Name happy_var_5)) ->
742 case happyOut10 happy_x_6 of { (HappyWrap10 happy_var_6) ->
743 ( do
744 home_unit_id <- getHomeUnitId
745 liftP $ pure $ do
746 lits <- sequence happy_var_6;
747 staticClosure home_unit_id happy_var_3 happy_var_5 (map getLit lits))}}})
748 ) (\r -> happyReturn (happyIn5 r))
749
750 happyReduce_7 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
751 happyReduce_7 = happyReduce 6# 2# happyReduction_7
752 happyReduction_7 (happy_x_6 `HappyStk`
753 happy_x_5 `HappyStk`
754 happy_x_4 `HappyStk`
755 happy_x_3 `HappyStk`
756 happy_x_2 `HappyStk`
757 happy_x_1 `HappyStk`
758 happyRest)
759 = case happyOutTok happy_x_2 of { (L _ (CmmT_String happy_var_2)) ->
760 case happyOut7 happy_x_4 of { (HappyWrap7 happy_var_4) ->
761 case happyOut8 happy_x_5 of { (HappyWrap8 happy_var_5) ->
762 happyIn6
763 (do lbl <- happy_var_4;
764 ss <- sequence happy_var_5;
765 code (emitDecl (CmmData (Section (section happy_var_2) lbl) (CmmStaticsRaw lbl (concat ss))))
766 ) `HappyStk` happyRest}}}
767
768 happyReduce_8 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
769 happyReduce_8 = happyMonadReduce 2# 3# happyReduction_8
770 happyReduction_8 (happy_x_2 `HappyStk`
771 happy_x_1 `HappyStk`
772 happyRest) tk
773 = happyThen ((case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
774 ( do
775 home_unit_id <- getHomeUnitId
776 liftP $ pure $ do
777 pure (mkCmmDataLabel home_unit_id (NeedExternDecl False) happy_var_1))})
778 ) (\r -> happyReturn (happyIn7 r))
779
780 happyReduce_9 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
781 happyReduce_9 = happySpecReduce_0 4# happyReduction_9
782 happyReduction_9 = happyIn8
783 ([]
784 )
785
786 happyReduce_10 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
787 happyReduce_10 = happySpecReduce_2 4# happyReduction_10
788 happyReduction_10 happy_x_2
789 happy_x_1
790 = case happyOut9 happy_x_1 of { (HappyWrap9 happy_var_1) ->
791 case happyOut8 happy_x_2 of { (HappyWrap8 happy_var_2) ->
792 happyIn8
793 (happy_var_1 : happy_var_2
794 )}}
795
796 happyReduce_11 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
797 happyReduce_11 = happySpecReduce_3 5# happyReduction_11
798 happyReduction_11 happy_x_3
799 happy_x_2
800 happy_x_1
801 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
802 happyIn9
803 (do e <- happy_var_2;
804 return [CmmStaticLit (getLit e)]
805 )}
806
807 happyReduce_12 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
808 happyReduce_12 = happySpecReduce_2 5# happyReduction_12
809 happyReduction_12 happy_x_2
810 happy_x_1
811 = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) ->
812 happyIn9
813 (return [CmmUninitialised
814 (widthInBytes (typeWidth happy_var_1))]
815 )}
816
817 happyReduce_13 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
818 happyReduce_13 = happyReduce 5# 5# happyReduction_13
819 happyReduction_13 (happy_x_5 `HappyStk`
820 happy_x_4 `HappyStk`
821 happy_x_3 `HappyStk`
822 happy_x_2 `HappyStk`
823 happy_x_1 `HappyStk`
824 happyRest)
825 = case happyOutTok happy_x_4 of { (L _ (CmmT_String happy_var_4)) ->
826 happyIn9
827 (return [mkString happy_var_4]
828 ) `HappyStk` happyRest}
829
830 happyReduce_14 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
831 happyReduce_14 = happyReduce 5# 5# happyReduction_14
832 happyReduction_14 (happy_x_5 `HappyStk`
833 happy_x_4 `HappyStk`
834 happy_x_3 `HappyStk`
835 happy_x_2 `HappyStk`
836 happy_x_1 `HappyStk`
837 happyRest)
838 = case happyOutTok happy_x_3 of { (L _ (CmmT_Int happy_var_3)) ->
839 happyIn9
840 (return [CmmUninitialised
841 (fromIntegral happy_var_3)]
842 ) `HappyStk` happyRest}
843
844 happyReduce_15 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
845 happyReduce_15 = happyReduce 5# 5# happyReduction_15
846 happyReduction_15 (happy_x_5 `HappyStk`
847 happy_x_4 `HappyStk`
848 happy_x_3 `HappyStk`
849 happy_x_2 `HappyStk`
850 happy_x_1 `HappyStk`
851 happyRest)
852 = case happyOut57 happy_x_1 of { (HappyWrap57 happy_var_1) ->
853 case happyOutTok happy_x_3 of { (L _ (CmmT_Int happy_var_3)) ->
854 happyIn9
855 (return [CmmUninitialised
856 (widthInBytes (typeWidth happy_var_1) *
857 fromIntegral happy_var_3)]
858 ) `HappyStk` happyRest}}
859
860 happyReduce_16 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
861 happyReduce_16 = happyReduce 5# 5# happyReduction_16
862 happyReduction_16 (happy_x_5 `HappyStk`
863 happy_x_4 `HappyStk`
864 happy_x_3 `HappyStk`
865 happy_x_2 `HappyStk`
866 happy_x_1 `HappyStk`
867 happyRest)
868 = case happyOutTok happy_x_3 of { (L _ (CmmT_Name happy_var_3)) ->
869 case happyOut10 happy_x_4 of { (HappyWrap10 happy_var_4) ->
870 happyIn9
871 (do { lits <- sequence happy_var_4
872 ; profile <- getProfile
873 ; return $ map CmmStaticLit $
874 mkStaticClosure profile (mkForeignLabel happy_var_3 Nothing ForeignLabelInExternalPackage IsData)
875 -- mkForeignLabel because these are only used
876 -- for CHARLIKE and INTLIKE closures in the RTS.
877 dontCareCCS (map getLit lits) [] [] [] }
878 ) `HappyStk` happyRest}}
879
880 happyReduce_17 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
881 happyReduce_17 = happySpecReduce_0 6# happyReduction_17
882 happyReduction_17 = happyIn10
883 ([]
884 )
885
886 happyReduce_18 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
887 happyReduce_18 = happySpecReduce_3 6# happyReduction_18
888 happyReduction_18 happy_x_3
889 happy_x_2
890 happy_x_1
891 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
892 case happyOut10 happy_x_3 of { (HappyWrap10 happy_var_3) ->
893 happyIn10
894 (happy_var_2 : happy_var_3
895 )}}
896
897 happyReduce_19 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
898 happyReduce_19 = happyReduce 4# 7# happyReduction_19
899 happyReduction_19 (happy_x_4 `HappyStk`
900 happy_x_3 `HappyStk`
901 happy_x_2 `HappyStk`
902 happy_x_1 `HappyStk`
903 happyRest)
904 = case happyOut14 happy_x_1 of { (HappyWrap14 happy_var_1) ->
905 case happyOut12 happy_x_2 of { (HappyWrap12 happy_var_2) ->
906 case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) ->
907 case happyOut13 happy_x_4 of { (HappyWrap13 happy_var_4) ->
908 happyIn11
909 (do ((entry_ret_label, info, stk_formals, formals), agraph) <-
910 getCodeScoped $ loopDecls $ do {
911 (entry_ret_label, info, stk_formals) <- happy_var_1;
912 dflags <- getDynFlags;
913 platform <- getPlatform;
914 formals <- sequence (fromMaybe [] happy_var_3);
915 withName (showSDoc dflags (pdoc platform entry_ret_label))
916 happy_var_4;
917 return (entry_ret_label, info, stk_formals, formals) }
918 let do_layout = isJust happy_var_3
919 code (emitProcWithStackFrame happy_var_2 info
920 entry_ret_label stk_formals formals agraph
921 do_layout )
922 ) `HappyStk` happyRest}}}}
923
924 happyReduce_20 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
925 happyReduce_20 = happySpecReduce_0 8# happyReduction_20
926 happyReduction_20 = happyIn12
927 (NativeNodeCall
928 )
929
930 happyReduce_21 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
931 happyReduce_21 = happySpecReduce_1 8# happyReduction_21
932 happyReduction_21 happy_x_1
933 = happyIn12
934 (NativeReturn
935 )
936
937 happyReduce_22 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
938 happyReduce_22 = happySpecReduce_1 9# happyReduction_22
939 happyReduction_22 happy_x_1
940 = happyIn13
941 (return ()
942 )
943
944 happyReduce_23 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
945 happyReduce_23 = happySpecReduce_3 9# happyReduction_23
946 happyReduction_23 happy_x_3
947 happy_x_2
948 happy_x_1
949 = case happyOutTok happy_x_1 of { happy_var_1 ->
950 case happyOut15 happy_x_2 of { (HappyWrap15 happy_var_2) ->
951 case happyOutTok happy_x_3 of { happy_var_3 ->
952 happyIn13
953 (withSourceNote happy_var_1 happy_var_3 happy_var_2
954 )}}}
955
956 happyReduce_24 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
957 happyReduce_24 = happyMonadReduce 1# 10# happyReduction_24
958 happyReduction_24 (happy_x_1 `HappyStk`
959 happyRest) tk
960 = happyThen ((case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
961 ( do
962 home_unit_id <- getHomeUnitId
963 liftP $ pure $ do
964 newFunctionName happy_var_1 home_unit_id
965 return (mkCmmCodeLabel home_unit_id happy_var_1, Nothing, []))})
966 ) (\r -> happyReturn (happyIn14 r))
967
968 happyReduce_25 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
969 happyReduce_25 = happyMonadReduce 14# 10# happyReduction_25
970 happyReduction_25 (happy_x_14 `HappyStk`
971 happy_x_13 `HappyStk`
972 happy_x_12 `HappyStk`
973 happy_x_11 `HappyStk`
974 happy_x_10 `HappyStk`
975 happy_x_9 `HappyStk`
976 happy_x_8 `HappyStk`
977 happy_x_7 `HappyStk`
978 happy_x_6 `HappyStk`
979 happy_x_5 `HappyStk`
980 happy_x_4 `HappyStk`
981 happy_x_3 `HappyStk`
982 happy_x_2 `HappyStk`
983 happy_x_1 `HappyStk`
984 happyRest) tk
985 = happyThen ((case happyOutTok happy_x_3 of { (L _ (CmmT_Name happy_var_3)) ->
986 case happyOutTok happy_x_5 of { (L _ (CmmT_Int happy_var_5)) ->
987 case happyOutTok happy_x_7 of { (L _ (CmmT_Int happy_var_7)) ->
988 case happyOutTok happy_x_9 of { (L _ (CmmT_Int happy_var_9)) ->
989 case happyOutTok happy_x_11 of { (L _ (CmmT_String happy_var_11)) ->
990 case happyOutTok happy_x_13 of { (L _ (CmmT_String happy_var_13)) ->
991 ( do
992 home_unit_id <- getHomeUnitId
993 liftP $ pure $ do
994 profile <- getProfile
995 let prof = profilingInfo profile happy_var_11 happy_var_13
996 rep = mkRTSRep (fromIntegral happy_var_9) $
997 mkHeapRep profile False (fromIntegral happy_var_5)
998 (fromIntegral happy_var_7) Thunk
999 -- not really Thunk, but that makes the info table
1000 -- we want.
1001 return (mkCmmEntryLabel home_unit_id happy_var_3,
1002 Just $ CmmInfoTable { cit_lbl = mkCmmInfoLabel home_unit_id happy_var_3
1003 , cit_rep = rep
1004 , cit_prof = prof, cit_srt = Nothing, cit_clo = Nothing },
1005 []))}}}}}})
1006 ) (\r -> happyReturn (happyIn14 r))
1007
1008 happyReduce_26 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1009 happyReduce_26 = happyMonadReduce 16# 10# happyReduction_26
1010 happyReduction_26 (happy_x_16 `HappyStk`
1011 happy_x_15 `HappyStk`
1012 happy_x_14 `HappyStk`
1013 happy_x_13 `HappyStk`
1014 happy_x_12 `HappyStk`
1015 happy_x_11 `HappyStk`
1016 happy_x_10 `HappyStk`
1017 happy_x_9 `HappyStk`
1018 happy_x_8 `HappyStk`
1019 happy_x_7 `HappyStk`
1020 happy_x_6 `HappyStk`
1021 happy_x_5 `HappyStk`
1022 happy_x_4 `HappyStk`
1023 happy_x_3 `HappyStk`
1024 happy_x_2 `HappyStk`
1025 happy_x_1 `HappyStk`
1026 happyRest) tk
1027 = happyThen ((case happyOutTok happy_x_3 of { (L _ (CmmT_Name happy_var_3)) ->
1028 case happyOutTok happy_x_5 of { (L _ (CmmT_Int happy_var_5)) ->
1029 case happyOutTok happy_x_7 of { (L _ (CmmT_Int happy_var_7)) ->
1030 case happyOutTok happy_x_9 of { (L _ (CmmT_Int happy_var_9)) ->
1031 case happyOutTok happy_x_11 of { (L _ (CmmT_String happy_var_11)) ->
1032 case happyOutTok happy_x_13 of { (L _ (CmmT_String happy_var_13)) ->
1033 case happyOutTok happy_x_15 of { (L _ (CmmT_Int happy_var_15)) ->
1034 ( do
1035 home_unit_id <- getHomeUnitId
1036 liftP $ pure $ do
1037 profile <- getProfile
1038 let prof = profilingInfo profile happy_var_11 happy_var_13
1039 ty = Fun 0 (ArgSpec (fromIntegral happy_var_15))
1040 -- Arity zero, arg_type happy_var_15
1041 rep = mkRTSRep (fromIntegral happy_var_9) $
1042 mkHeapRep profile False (fromIntegral happy_var_5)
1043 (fromIntegral happy_var_7) ty
1044 return (mkCmmEntryLabel home_unit_id happy_var_3,
1045 Just $ CmmInfoTable { cit_lbl = mkCmmInfoLabel home_unit_id happy_var_3
1046 , cit_rep = rep
1047 , cit_prof = prof, cit_srt = Nothing, cit_clo = Nothing },
1048 []))}}}}}}})
1049 ) (\r -> happyReturn (happyIn14 r))
1050
1051 happyReduce_27 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1052 happyReduce_27 = happyMonadReduce 16# 10# happyReduction_27
1053 happyReduction_27 (happy_x_16 `HappyStk`
1054 happy_x_15 `HappyStk`
1055 happy_x_14 `HappyStk`
1056 happy_x_13 `HappyStk`
1057 happy_x_12 `HappyStk`
1058 happy_x_11 `HappyStk`
1059 happy_x_10 `HappyStk`
1060 happy_x_9 `HappyStk`
1061 happy_x_8 `HappyStk`
1062 happy_x_7 `HappyStk`
1063 happy_x_6 `HappyStk`
1064 happy_x_5 `HappyStk`
1065 happy_x_4 `HappyStk`
1066 happy_x_3 `HappyStk`
1067 happy_x_2 `HappyStk`
1068 happy_x_1 `HappyStk`
1069 happyRest) tk
1070 = happyThen ((case happyOutTok happy_x_3 of { (L _ (CmmT_Name happy_var_3)) ->
1071 case happyOutTok happy_x_5 of { (L _ (CmmT_Int happy_var_5)) ->
1072 case happyOutTok happy_x_7 of { (L _ (CmmT_Int happy_var_7)) ->
1073 case happyOutTok happy_x_9 of { (L _ (CmmT_Int happy_var_9)) ->
1074 case happyOutTok happy_x_11 of { (L _ (CmmT_Int happy_var_11)) ->
1075 case happyOutTok happy_x_13 of { (L _ (CmmT_String happy_var_13)) ->
1076 case happyOutTok happy_x_15 of { (L _ (CmmT_String happy_var_15)) ->
1077 ( do
1078 home_unit_id <- getHomeUnitId
1079 liftP $ pure $ do
1080 profile <- getProfile
1081 let prof = profilingInfo profile happy_var_13 happy_var_15
1082 ty = Constr (fromIntegral happy_var_9) -- Tag
1083 (BS8.pack happy_var_13)
1084 rep = mkRTSRep (fromIntegral happy_var_11) $
1085 mkHeapRep profile False (fromIntegral happy_var_5)
1086 (fromIntegral happy_var_7) ty
1087 return (mkCmmEntryLabel home_unit_id happy_var_3,
1088 Just $ CmmInfoTable { cit_lbl = mkCmmInfoLabel home_unit_id happy_var_3
1089 , cit_rep = rep
1090 , cit_prof = prof, cit_srt = Nothing,cit_clo = Nothing },
1091 []))}}}}}}})
1092 ) (\r -> happyReturn (happyIn14 r))
1093
1094 happyReduce_28 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1095 happyReduce_28 = happyMonadReduce 12# 10# happyReduction_28
1096 happyReduction_28 (happy_x_12 `HappyStk`
1097 happy_x_11 `HappyStk`
1098 happy_x_10 `HappyStk`
1099 happy_x_9 `HappyStk`
1100 happy_x_8 `HappyStk`
1101 happy_x_7 `HappyStk`
1102 happy_x_6 `HappyStk`
1103 happy_x_5 `HappyStk`
1104 happy_x_4 `HappyStk`
1105 happy_x_3 `HappyStk`
1106 happy_x_2 `HappyStk`
1107 happy_x_1 `HappyStk`
1108 happyRest) tk
1109 = happyThen ((case happyOutTok happy_x_3 of { (L _ (CmmT_Name happy_var_3)) ->
1110 case happyOutTok happy_x_5 of { (L _ (CmmT_Int happy_var_5)) ->
1111 case happyOutTok happy_x_7 of { (L _ (CmmT_Int happy_var_7)) ->
1112 case happyOutTok happy_x_9 of { (L _ (CmmT_String happy_var_9)) ->
1113 case happyOutTok happy_x_11 of { (L _ (CmmT_String happy_var_11)) ->
1114 ( do
1115 home_unit_id <- getHomeUnitId
1116 liftP $ pure $ do
1117 profile <- getProfile
1118 let prof = profilingInfo profile happy_var_9 happy_var_11
1119 ty = ThunkSelector (fromIntegral happy_var_5)
1120 rep = mkRTSRep (fromIntegral happy_var_7) $
1121 mkHeapRep profile False 0 0 ty
1122 return (mkCmmEntryLabel home_unit_id happy_var_3,
1123 Just $ CmmInfoTable { cit_lbl = mkCmmInfoLabel home_unit_id happy_var_3
1124 , cit_rep = rep
1125 , cit_prof = prof, cit_srt = Nothing, cit_clo = Nothing },
1126 []))}}}}})
1127 ) (\r -> happyReturn (happyIn14 r))
1128
1129 happyReduce_29 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1130 happyReduce_29 = happyMonadReduce 6# 10# happyReduction_29
1131 happyReduction_29 (happy_x_6 `HappyStk`
1132 happy_x_5 `HappyStk`
1133 happy_x_4 `HappyStk`
1134 happy_x_3 `HappyStk`
1135 happy_x_2 `HappyStk`
1136 happy_x_1 `HappyStk`
1137 happyRest) tk
1138 = happyThen ((case happyOutTok happy_x_3 of { (L _ (CmmT_Name happy_var_3)) ->
1139 case happyOutTok happy_x_5 of { (L _ (CmmT_Int happy_var_5)) ->
1140 ( do
1141 home_unit_id <- getHomeUnitId
1142 liftP $ pure $ do
1143 let prof = NoProfilingInfo
1144 rep = mkRTSRep (fromIntegral happy_var_5) $ mkStackRep []
1145 return (mkCmmRetLabel home_unit_id happy_var_3,
1146 Just $ CmmInfoTable { cit_lbl = mkCmmRetInfoLabel home_unit_id happy_var_3
1147 , cit_rep = rep
1148 , cit_prof = prof, cit_srt = Nothing, cit_clo = Nothing },
1149 []))}})
1150 ) (\r -> happyReturn (happyIn14 r))
1151
1152 happyReduce_30 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1153 happyReduce_30 = happyMonadReduce 8# 10# happyReduction_30
1154 happyReduction_30 (happy_x_8 `HappyStk`
1155 happy_x_7 `HappyStk`
1156 happy_x_6 `HappyStk`
1157 happy_x_5 `HappyStk`
1158 happy_x_4 `HappyStk`
1159 happy_x_3 `HappyStk`
1160 happy_x_2 `HappyStk`
1161 happy_x_1 `HappyStk`
1162 happyRest) tk
1163 = happyThen ((case happyOutTok happy_x_3 of { (L _ (CmmT_Name happy_var_3)) ->
1164 case happyOutTok happy_x_5 of { (L _ (CmmT_Int happy_var_5)) ->
1165 case happyOut53 happy_x_7 of { (HappyWrap53 happy_var_7) ->
1166 ( do
1167 home_unit_id <- getHomeUnitId
1168 liftP $ pure $ do
1169 platform <- getPlatform
1170 live <- sequence happy_var_7
1171 let prof = NoProfilingInfo
1172 -- drop one for the info pointer
1173 bitmap = mkLiveness platform (drop 1 live)
1174 rep = mkRTSRep (fromIntegral happy_var_5) $ mkStackRep bitmap
1175 return (mkCmmRetLabel home_unit_id happy_var_3,
1176 Just $ CmmInfoTable { cit_lbl = mkCmmRetInfoLabel home_unit_id happy_var_3
1177 , cit_rep = rep
1178 , cit_prof = prof, cit_srt = Nothing, cit_clo = Nothing },
1179 live))}}})
1180 ) (\r -> happyReturn (happyIn14 r))
1181
1182 happyReduce_31 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1183 happyReduce_31 = happySpecReduce_0 11# happyReduction_31
1184 happyReduction_31 = happyIn15
1185 (return ()
1186 )
1187
1188 happyReduce_32 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1189 happyReduce_32 = happySpecReduce_2 11# happyReduction_32
1190 happyReduction_32 happy_x_2
1191 happy_x_1
1192 = case happyOut16 happy_x_1 of { (HappyWrap16 happy_var_1) ->
1193 case happyOut15 happy_x_2 of { (HappyWrap15 happy_var_2) ->
1194 happyIn15
1195 (do happy_var_1; happy_var_2
1196 )}}
1197
1198 happyReduce_33 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1199 happyReduce_33 = happySpecReduce_2 11# happyReduction_33
1200 happyReduction_33 happy_x_2
1201 happy_x_1
1202 = case happyOut20 happy_x_1 of { (HappyWrap20 happy_var_1) ->
1203 case happyOut15 happy_x_2 of { (HappyWrap15 happy_var_2) ->
1204 happyIn15
1205 (do happy_var_1; happy_var_2
1206 )}}
1207
1208 happyReduce_34 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1209 happyReduce_34 = happySpecReduce_3 12# happyReduction_34
1210 happyReduction_34 happy_x_3
1211 happy_x_2
1212 happy_x_1
1213 = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) ->
1214 case happyOut19 happy_x_2 of { (HappyWrap19 happy_var_2) ->
1215 happyIn16
1216 (mapM_ (newLocal happy_var_1) happy_var_2
1217 )}}
1218
1219 happyReduce_35 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1220 happyReduce_35 = happySpecReduce_3 12# happyReduction_35
1221 happyReduction_35 happy_x_3
1222 happy_x_2
1223 happy_x_1
1224 = case happyOut17 happy_x_2 of { (HappyWrap17 happy_var_2) ->
1225 happyIn16
1226 (mapM_ newImport happy_var_2
1227 )}
1228
1229 happyReduce_36 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1230 happyReduce_36 = happySpecReduce_3 12# happyReduction_36
1231 happyReduction_36 happy_x_3
1232 happy_x_2
1233 happy_x_1
1234 = happyIn16
1235 (return ()
1236 )
1237
1238 happyReduce_37 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1239 happyReduce_37 = happySpecReduce_1 13# happyReduction_37
1240 happyReduction_37 happy_x_1
1241 = case happyOut18 happy_x_1 of { (HappyWrap18 happy_var_1) ->
1242 happyIn17
1243 ([happy_var_1]
1244 )}
1245
1246 happyReduce_38 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1247 happyReduce_38 = happySpecReduce_3 13# happyReduction_38
1248 happyReduction_38 happy_x_3
1249 happy_x_2
1250 happy_x_1
1251 = case happyOut18 happy_x_1 of { (HappyWrap18 happy_var_1) ->
1252 case happyOut17 happy_x_3 of { (HappyWrap17 happy_var_3) ->
1253 happyIn17
1254 (happy_var_1 : happy_var_3
1255 )}}
1256
1257 happyReduce_39 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1258 happyReduce_39 = happySpecReduce_1 14# happyReduction_39
1259 happyReduction_39 happy_x_1
1260 = case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
1261 happyIn18
1262 ((happy_var_1, mkForeignLabel happy_var_1 Nothing ForeignLabelInExternalPackage IsFunction)
1263 )}
1264
1265 happyReduce_40 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1266 happyReduce_40 = happySpecReduce_2 14# happyReduction_40
1267 happyReduction_40 happy_x_2
1268 happy_x_1
1269 = case happyOutTok happy_x_2 of { (L _ (CmmT_Name happy_var_2)) ->
1270 happyIn18
1271 ((happy_var_2, mkForeignLabel happy_var_2 Nothing ForeignLabelInExternalPackage IsData)
1272 )}
1273
1274 happyReduce_41 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1275 happyReduce_41 = happySpecReduce_2 14# happyReduction_41
1276 happyReduction_41 happy_x_2
1277 happy_x_1
1278 = case happyOutTok happy_x_1 of { (L _ (CmmT_String happy_var_1)) ->
1279 case happyOutTok happy_x_2 of { (L _ (CmmT_Name happy_var_2)) ->
1280 happyIn18
1281 ((happy_var_2, mkCmmCodeLabel (UnitId (mkFastString happy_var_1)) happy_var_2)
1282 )}}
1283
1284 happyReduce_42 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1285 happyReduce_42 = happySpecReduce_1 15# happyReduction_42
1286 happyReduction_42 happy_x_1
1287 = case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
1288 happyIn19
1289 ([happy_var_1]
1290 )}
1291
1292 happyReduce_43 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1293 happyReduce_43 = happySpecReduce_3 15# happyReduction_43
1294 happyReduction_43 happy_x_3
1295 happy_x_2
1296 happy_x_1
1297 = case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
1298 case happyOut19 happy_x_3 of { (HappyWrap19 happy_var_3) ->
1299 happyIn19
1300 (happy_var_1 : happy_var_3
1301 )}}
1302
1303 happyReduce_44 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1304 happyReduce_44 = happySpecReduce_1 16# happyReduction_44
1305 happyReduction_44 happy_x_1
1306 = happyIn20
1307 (return ()
1308 )
1309
1310 happyReduce_45 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1311 happyReduce_45 = happySpecReduce_2 16# happyReduction_45
1312 happyReduction_45 happy_x_2
1313 happy_x_1
1314 = case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
1315 happyIn20
1316 (do l <- newLabel happy_var_1; emitLabel l
1317 )}
1318
1319 happyReduce_46 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1320 happyReduce_46 = happyReduce 4# 16# happyReduction_46
1321 happyReduction_46 (happy_x_4 `HappyStk`
1322 happy_x_3 `HappyStk`
1323 happy_x_2 `HappyStk`
1324 happy_x_1 `HappyStk`
1325 happyRest)
1326 = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) ->
1327 case happyOutTok happy_x_2 of { happy_var_2 ->
1328 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
1329 case happyOutTok happy_x_4 of { happy_var_4 ->
1330 happyIn20
1331 (do reg <- happy_var_1; e <- happy_var_3; withSourceNote happy_var_2 happy_var_4 (emitAssign reg e)
1332 ) `HappyStk` happyRest}}}}
1333
1334 happyReduce_47 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1335 happyReduce_47 = happyReduce 7# 16# happyReduction_47
1336 happyReduction_47 (happy_x_7 `HappyStk`
1337 happy_x_6 `HappyStk`
1338 happy_x_5 `HappyStk`
1339 happy_x_4 `HappyStk`
1340 happy_x_3 `HappyStk`
1341 happy_x_2 `HappyStk`
1342 happy_x_1 `HappyStk`
1343 happyRest)
1344 = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) ->
1345 case happyOutTok happy_x_2 of { happy_var_2 ->
1346 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
1347 case happyOut38 happy_x_6 of { (HappyWrap38 happy_var_6) ->
1348 case happyOutTok happy_x_7 of { happy_var_7 ->
1349 happyIn20
1350 (withSourceNote happy_var_2 happy_var_7 (doStore happy_var_1 happy_var_3 happy_var_6)
1351 ) `HappyStk` happyRest}}}}}
1352
1353 happyReduce_48 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1354 happyReduce_48 = happyMonadReduce 10# 16# happyReduction_48
1355 happyReduction_48 (happy_x_10 `HappyStk`
1356 happy_x_9 `HappyStk`
1357 happy_x_8 `HappyStk`
1358 happy_x_7 `HappyStk`
1359 happy_x_6 `HappyStk`
1360 happy_x_5 `HappyStk`
1361 happy_x_4 `HappyStk`
1362 happy_x_3 `HappyStk`
1363 happy_x_2 `HappyStk`
1364 happy_x_1 `HappyStk`
1365 happyRest) tk
1366 = happyThen ((case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) ->
1367 case happyOutTok happy_x_3 of { (L _ (CmmT_String happy_var_3)) ->
1368 case happyOut23 happy_x_4 of { (HappyWrap23 happy_var_4) ->
1369 case happyOut41 happy_x_6 of { (HappyWrap41 happy_var_6) ->
1370 case happyOut27 happy_x_8 of { (HappyWrap27 happy_var_8) ->
1371 case happyOut24 happy_x_9 of { (HappyWrap24 happy_var_9) ->
1372 ( foreignCall happy_var_3 happy_var_1 happy_var_4 happy_var_6 happy_var_8 happy_var_9)}}}}}})
1373 ) (\r -> happyReturn (happyIn20 r))
1374
1375 happyReduce_49 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1376 happyReduce_49 = happyMonadReduce 8# 16# happyReduction_49
1377 happyReduction_49 (happy_x_8 `HappyStk`
1378 happy_x_7 `HappyStk`
1379 happy_x_6 `HappyStk`
1380 happy_x_5 `HappyStk`
1381 happy_x_4 `HappyStk`
1382 happy_x_3 `HappyStk`
1383 happy_x_2 `HappyStk`
1384 happy_x_1 `HappyStk`
1385 happyRest) tk
1386 = happyThen ((case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) ->
1387 case happyOutTok happy_x_4 of { (L _ (CmmT_Name happy_var_4)) ->
1388 case happyOut44 happy_x_6 of { (HappyWrap44 happy_var_6) ->
1389 ( primCall happy_var_1 happy_var_4 happy_var_6)}}})
1390 ) (\r -> happyReturn (happyIn20 r))
1391
1392 happyReduce_50 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1393 happyReduce_50 = happyMonadReduce 5# 16# happyReduction_50
1394 happyReduction_50 (happy_x_5 `HappyStk`
1395 happy_x_4 `HappyStk`
1396 happy_x_3 `HappyStk`
1397 happy_x_2 `HappyStk`
1398 happy_x_1 `HappyStk`
1399 happyRest) tk
1400 = happyThen ((case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
1401 case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) ->
1402 ( stmtMacro happy_var_1 happy_var_3)}})
1403 ) (\r -> happyReturn (happyIn20 r))
1404
1405 happyReduce_51 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1406 happyReduce_51 = happyReduce 7# 16# happyReduction_51
1407 happyReduction_51 (happy_x_7 `HappyStk`
1408 happy_x_6 `HappyStk`
1409 happy_x_5 `HappyStk`
1410 happy_x_4 `HappyStk`
1411 happy_x_3 `HappyStk`
1412 happy_x_2 `HappyStk`
1413 happy_x_1 `HappyStk`
1414 happyRest)
1415 = case happyOut30 happy_x_2 of { (HappyWrap30 happy_var_2) ->
1416 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
1417 case happyOut31 happy_x_5 of { (HappyWrap31 happy_var_5) ->
1418 case happyOut35 happy_x_6 of { (HappyWrap35 happy_var_6) ->
1419 happyIn20
1420 (do as <- sequence happy_var_5; doSwitch happy_var_2 happy_var_3 as happy_var_6
1421 ) `HappyStk` happyRest}}}}
1422
1423 happyReduce_52 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1424 happyReduce_52 = happySpecReduce_3 16# happyReduction_52
1425 happyReduction_52 happy_x_3
1426 happy_x_2
1427 happy_x_1
1428 = case happyOutTok happy_x_2 of { (L _ (CmmT_Name happy_var_2)) ->
1429 happyIn20
1430 (do l <- lookupLabel happy_var_2; emit (mkBranch l)
1431 )}
1432
1433 happyReduce_53 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1434 happyReduce_53 = happyReduce 5# 16# happyReduction_53
1435 happyReduction_53 (happy_x_5 `HappyStk`
1436 happy_x_4 `HappyStk`
1437 happy_x_3 `HappyStk`
1438 happy_x_2 `HappyStk`
1439 happy_x_1 `HappyStk`
1440 happyRest)
1441 = case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) ->
1442 happyIn20
1443 (doReturn happy_var_3
1444 ) `HappyStk` happyRest}
1445
1446 happyReduce_54 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1447 happyReduce_54 = happyReduce 4# 16# happyReduction_54
1448 happyReduction_54 (happy_x_4 `HappyStk`
1449 happy_x_3 `HappyStk`
1450 happy_x_2 `HappyStk`
1451 happy_x_1 `HappyStk`
1452 happyRest)
1453 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
1454 case happyOut28 happy_x_3 of { (HappyWrap28 happy_var_3) ->
1455 happyIn20
1456 (doRawJump happy_var_2 happy_var_3
1457 ) `HappyStk` happyRest}}
1458
1459 happyReduce_55 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1460 happyReduce_55 = happyReduce 6# 16# happyReduction_55
1461 happyReduction_55 (happy_x_6 `HappyStk`
1462 happy_x_5 `HappyStk`
1463 happy_x_4 `HappyStk`
1464 happy_x_3 `HappyStk`
1465 happy_x_2 `HappyStk`
1466 happy_x_1 `HappyStk`
1467 happyRest)
1468 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
1469 case happyOut44 happy_x_4 of { (HappyWrap44 happy_var_4) ->
1470 happyIn20
1471 (doJumpWithStack happy_var_2 [] happy_var_4
1472 ) `HappyStk` happyRest}}
1473
1474 happyReduce_56 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1475 happyReduce_56 = happyReduce 9# 16# happyReduction_56
1476 happyReduction_56 (happy_x_9 `HappyStk`
1477 happy_x_8 `HappyStk`
1478 happy_x_7 `HappyStk`
1479 happy_x_6 `HappyStk`
1480 happy_x_5 `HappyStk`
1481 happy_x_4 `HappyStk`
1482 happy_x_3 `HappyStk`
1483 happy_x_2 `HappyStk`
1484 happy_x_1 `HappyStk`
1485 happyRest)
1486 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
1487 case happyOut44 happy_x_4 of { (HappyWrap44 happy_var_4) ->
1488 case happyOut44 happy_x_7 of { (HappyWrap44 happy_var_7) ->
1489 happyIn20
1490 (doJumpWithStack happy_var_2 happy_var_4 happy_var_7
1491 ) `HappyStk` happyRest}}}
1492
1493 happyReduce_57 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1494 happyReduce_57 = happyReduce 6# 16# happyReduction_57
1495 happyReduction_57 (happy_x_6 `HappyStk`
1496 happy_x_5 `HappyStk`
1497 happy_x_4 `HappyStk`
1498 happy_x_3 `HappyStk`
1499 happy_x_2 `HappyStk`
1500 happy_x_1 `HappyStk`
1501 happyRest)
1502 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
1503 case happyOut44 happy_x_4 of { (HappyWrap44 happy_var_4) ->
1504 happyIn20
1505 (doCall happy_var_2 [] happy_var_4
1506 ) `HappyStk` happyRest}}
1507
1508 happyReduce_58 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1509 happyReduce_58 = happyReduce 10# 16# happyReduction_58
1510 happyReduction_58 (happy_x_10 `HappyStk`
1511 happy_x_9 `HappyStk`
1512 happy_x_8 `HappyStk`
1513 happy_x_7 `HappyStk`
1514 happy_x_6 `HappyStk`
1515 happy_x_5 `HappyStk`
1516 happy_x_4 `HappyStk`
1517 happy_x_3 `HappyStk`
1518 happy_x_2 `HappyStk`
1519 happy_x_1 `HappyStk`
1520 happyRest)
1521 = case happyOut54 happy_x_2 of { (HappyWrap54 happy_var_2) ->
1522 case happyOut38 happy_x_6 of { (HappyWrap38 happy_var_6) ->
1523 case happyOut44 happy_x_8 of { (HappyWrap44 happy_var_8) ->
1524 happyIn20
1525 (doCall happy_var_6 happy_var_2 happy_var_8
1526 ) `HappyStk` happyRest}}}
1527
1528 happyReduce_59 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1529 happyReduce_59 = happyReduce 5# 16# happyReduction_59
1530 happyReduction_59 (happy_x_5 `HappyStk`
1531 happy_x_4 `HappyStk`
1532 happy_x_3 `HappyStk`
1533 happy_x_2 `HappyStk`
1534 happy_x_1 `HappyStk`
1535 happyRest)
1536 = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) ->
1537 case happyOut37 happy_x_3 of { (HappyWrap37 happy_var_3) ->
1538 case happyOutTok happy_x_5 of { (L _ (CmmT_Name happy_var_5)) ->
1539 happyIn20
1540 (do l <- lookupLabel happy_var_5; cmmRawIf happy_var_2 l happy_var_3
1541 ) `HappyStk` happyRest}}}
1542
1543 happyReduce_60 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1544 happyReduce_60 = happyReduce 7# 16# happyReduction_60
1545 happyReduction_60 (happy_x_7 `HappyStk`
1546 happy_x_6 `HappyStk`
1547 happy_x_5 `HappyStk`
1548 happy_x_4 `HappyStk`
1549 happy_x_3 `HappyStk`
1550 happy_x_2 `HappyStk`
1551 happy_x_1 `HappyStk`
1552 happyRest)
1553 = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) ->
1554 case happyOut37 happy_x_3 of { (HappyWrap37 happy_var_3) ->
1555 case happyOutTok happy_x_4 of { happy_var_4 ->
1556 case happyOut15 happy_x_5 of { (HappyWrap15 happy_var_5) ->
1557 case happyOutTok happy_x_6 of { happy_var_6 ->
1558 case happyOut36 happy_x_7 of { (HappyWrap36 happy_var_7) ->
1559 happyIn20
1560 (cmmIfThenElse happy_var_2 (withSourceNote happy_var_4 happy_var_6 happy_var_5) happy_var_7 happy_var_3
1561 ) `HappyStk` happyRest}}}}}}
1562
1563 happyReduce_61 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1564 happyReduce_61 = happyReduce 5# 16# happyReduction_61
1565 happyReduction_61 (happy_x_5 `HappyStk`
1566 happy_x_4 `HappyStk`
1567 happy_x_3 `HappyStk`
1568 happy_x_2 `HappyStk`
1569 happy_x_1 `HappyStk`
1570 happyRest)
1571 = case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) ->
1572 case happyOut13 happy_x_5 of { (HappyWrap13 happy_var_5) ->
1573 happyIn20
1574 (pushStackFrame happy_var_3 happy_var_5
1575 ) `HappyStk` happyRest}}
1576
1577 happyReduce_62 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1578 happyReduce_62 = happyReduce 5# 16# happyReduction_62
1579 happyReduction_62 (happy_x_5 `HappyStk`
1580 happy_x_4 `HappyStk`
1581 happy_x_3 `HappyStk`
1582 happy_x_2 `HappyStk`
1583 happy_x_1 `HappyStk`
1584 happyRest)
1585 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
1586 case happyOut51 happy_x_4 of { (HappyWrap51 happy_var_4) ->
1587 case happyOut13 happy_x_5 of { (HappyWrap13 happy_var_5) ->
1588 happyIn20
1589 (reserveStackFrame happy_var_2 happy_var_4 happy_var_5
1590 ) `HappyStk` happyRest}}}
1591
1592 happyReduce_63 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1593 happyReduce_63 = happySpecReduce_3 16# happyReduction_63
1594 happyReduction_63 happy_x_3
1595 happy_x_2
1596 happy_x_1
1597 = case happyOut21 happy_x_2 of { (HappyWrap21 happy_var_2) ->
1598 happyIn20
1599 (happy_var_2 >>= code . emitUnwind
1600 )}
1601
1602 happyReduce_64 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1603 happyReduce_64 = happyReduce 5# 17# happyReduction_64
1604 happyReduction_64 (happy_x_5 `HappyStk`
1605 happy_x_4 `HappyStk`
1606 happy_x_3 `HappyStk`
1607 happy_x_2 `HappyStk`
1608 happy_x_1 `HappyStk`
1609 happyRest)
1610 = case happyOutTok happy_x_1 of { (L _ (CmmT_GlobalReg happy_var_1)) ->
1611 case happyOut22 happy_x_3 of { (HappyWrap22 happy_var_3) ->
1612 case happyOut21 happy_x_5 of { (HappyWrap21 happy_var_5) ->
1613 happyIn21
1614 (do e <- happy_var_3; rest <- happy_var_5; return ((happy_var_1, e) : rest)
1615 ) `HappyStk` happyRest}}}
1616
1617 happyReduce_65 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1618 happyReduce_65 = happySpecReduce_3 17# happyReduction_65
1619 happyReduction_65 happy_x_3
1620 happy_x_2
1621 happy_x_1
1622 = case happyOutTok happy_x_1 of { (L _ (CmmT_GlobalReg happy_var_1)) ->
1623 case happyOut22 happy_x_3 of { (HappyWrap22 happy_var_3) ->
1624 happyIn21
1625 (do e <- happy_var_3; return [(happy_var_1, e)]
1626 )}}
1627
1628 happyReduce_66 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1629 happyReduce_66 = happySpecReduce_1 18# happyReduction_66
1630 happyReduction_66 happy_x_1
1631 = happyIn22
1632 (do return Nothing
1633 )
1634
1635 happyReduce_67 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1636 happyReduce_67 = happySpecReduce_1 18# happyReduction_67
1637 happyReduction_67 happy_x_1
1638 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
1639 happyIn22
1640 (do e <- happy_var_1; return (Just e)
1641 )}
1642
1643 happyReduce_68 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1644 happyReduce_68 = happySpecReduce_1 19# happyReduction_68
1645 happyReduction_68 happy_x_1
1646 = case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
1647 happyIn23
1648 (return (CmmLit (CmmLabel (mkForeignLabel happy_var_1 Nothing ForeignLabelInThisPackage IsFunction)))
1649 )}
1650
1651 happyReduce_69 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1652 happyReduce_69 = happySpecReduce_0 20# happyReduction_69
1653 happyReduction_69 = happyIn24
1654 (CmmMayReturn
1655 )
1656
1657 happyReduce_70 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1658 happyReduce_70 = happySpecReduce_2 20# happyReduction_70
1659 happyReduction_70 happy_x_2
1660 happy_x_1
1661 = happyIn24
1662 (CmmNeverReturns
1663 )
1664
1665 happyReduce_71 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1666 happyReduce_71 = happySpecReduce_1 21# happyReduction_71
1667 happyReduction_71 happy_x_1
1668 = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) ->
1669 happyIn25
1670 (happy_var_1
1671 )}
1672
1673 happyReduce_72 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1674 happyReduce_72 = happySpecReduce_1 21# happyReduction_72
1675 happyReduction_72 happy_x_1
1676 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
1677 happyIn25
1678 (do e <- happy_var_1; return (BoolTest e)
1679 )}
1680
1681 happyReduce_73 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1682 happyReduce_73 = happySpecReduce_3 22# happyReduction_73
1683 happyReduction_73 happy_x_3
1684 happy_x_2
1685 happy_x_1
1686 = case happyOut25 happy_x_1 of { (HappyWrap25 happy_var_1) ->
1687 case happyOut25 happy_x_3 of { (HappyWrap25 happy_var_3) ->
1688 happyIn26
1689 (do e1 <- happy_var_1; e2 <- happy_var_3;
1690 return (BoolAnd e1 e2)
1691 )}}
1692
1693 happyReduce_74 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1694 happyReduce_74 = happySpecReduce_3 22# happyReduction_74
1695 happyReduction_74 happy_x_3
1696 happy_x_2
1697 happy_x_1
1698 = case happyOut25 happy_x_1 of { (HappyWrap25 happy_var_1) ->
1699 case happyOut25 happy_x_3 of { (HappyWrap25 happy_var_3) ->
1700 happyIn26
1701 (do e1 <- happy_var_1; e2 <- happy_var_3;
1702 return (BoolOr e1 e2)
1703 )}}
1704
1705 happyReduce_75 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1706 happyReduce_75 = happySpecReduce_2 22# happyReduction_75
1707 happyReduction_75 happy_x_2
1708 happy_x_1
1709 = case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) ->
1710 happyIn26
1711 (do e <- happy_var_2; return (BoolNot e)
1712 )}
1713
1714 happyReduce_76 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1715 happyReduce_76 = happySpecReduce_3 22# happyReduction_76
1716 happyReduction_76 happy_x_3
1717 happy_x_2
1718 happy_x_1
1719 = case happyOut26 happy_x_2 of { (HappyWrap26 happy_var_2) ->
1720 happyIn26
1721 (happy_var_2
1722 )}
1723
1724 happyReduce_77 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1725 happyReduce_77 = happySpecReduce_0 23# happyReduction_77
1726 happyReduction_77 = happyIn27
1727 (PlayRisky
1728 )
1729
1730 happyReduce_78 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1731 happyReduce_78 = happyMonadReduce 1# 23# happyReduction_78
1732 happyReduction_78 (happy_x_1 `HappyStk`
1733 happyRest) tk
1734 = happyThen ((case happyOutTok happy_x_1 of { (L _ (CmmT_String happy_var_1)) ->
1735 ( parseSafety happy_var_1)})
1736 ) (\r -> happyReturn (happyIn27 r))
1737
1738 happyReduce_79 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1739 happyReduce_79 = happySpecReduce_2 24# happyReduction_79
1740 happyReduction_79 happy_x_2
1741 happy_x_1
1742 = happyIn28
1743 ([]
1744 )
1745
1746 happyReduce_80 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1747 happyReduce_80 = happyMonadReduce 3# 24# happyReduction_80
1748 happyReduction_80 (happy_x_3 `HappyStk`
1749 happy_x_2 `HappyStk`
1750 happy_x_1 `HappyStk`
1751 happyRest) tk
1752 = happyThen ((( do platform <- PD.getPlatform
1753 ; return (realArgRegsCover platform)))
1754 ) (\r -> happyReturn (happyIn28 r))
1755
1756 happyReduce_81 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1757 happyReduce_81 = happySpecReduce_3 24# happyReduction_81
1758 happyReduction_81 happy_x_3
1759 happy_x_2
1760 happy_x_1
1761 = case happyOut29 happy_x_2 of { (HappyWrap29 happy_var_2) ->
1762 happyIn28
1763 (happy_var_2
1764 )}
1765
1766 happyReduce_82 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1767 happyReduce_82 = happySpecReduce_1 25# happyReduction_82
1768 happyReduction_82 happy_x_1
1769 = case happyOutTok happy_x_1 of { (L _ (CmmT_GlobalReg happy_var_1)) ->
1770 happyIn29
1771 ([happy_var_1]
1772 )}
1773
1774 happyReduce_83 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1775 happyReduce_83 = happySpecReduce_3 25# happyReduction_83
1776 happyReduction_83 happy_x_3
1777 happy_x_2
1778 happy_x_1
1779 = case happyOutTok happy_x_1 of { (L _ (CmmT_GlobalReg happy_var_1)) ->
1780 case happyOut29 happy_x_3 of { (HappyWrap29 happy_var_3) ->
1781 happyIn29
1782 (happy_var_1 : happy_var_3
1783 )}}
1784
1785 happyReduce_84 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1786 happyReduce_84 = happyReduce 5# 26# happyReduction_84
1787 happyReduction_84 (happy_x_5 `HappyStk`
1788 happy_x_4 `HappyStk`
1789 happy_x_3 `HappyStk`
1790 happy_x_2 `HappyStk`
1791 happy_x_1 `HappyStk`
1792 happyRest)
1793 = case happyOutTok happy_x_2 of { (L _ (CmmT_Int happy_var_2)) ->
1794 case happyOutTok happy_x_4 of { (L _ (CmmT_Int happy_var_4)) ->
1795 happyIn30
1796 (Just (happy_var_2, happy_var_4)
1797 ) `HappyStk` happyRest}}
1798
1799 happyReduce_85 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1800 happyReduce_85 = happySpecReduce_0 26# happyReduction_85
1801 happyReduction_85 = happyIn30
1802 (Nothing
1803 )
1804
1805 happyReduce_86 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1806 happyReduce_86 = happySpecReduce_0 27# happyReduction_86
1807 happyReduction_86 = happyIn31
1808 ([]
1809 )
1810
1811 happyReduce_87 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1812 happyReduce_87 = happySpecReduce_2 27# happyReduction_87
1813 happyReduction_87 happy_x_2
1814 happy_x_1
1815 = case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) ->
1816 case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) ->
1817 happyIn31
1818 (happy_var_1 : happy_var_2
1819 )}}
1820
1821 happyReduce_88 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1822 happyReduce_88 = happyReduce 4# 28# happyReduction_88
1823 happyReduction_88 (happy_x_4 `HappyStk`
1824 happy_x_3 `HappyStk`
1825 happy_x_2 `HappyStk`
1826 happy_x_1 `HappyStk`
1827 happyRest)
1828 = case happyOut34 happy_x_2 of { (HappyWrap34 happy_var_2) ->
1829 case happyOut33 happy_x_4 of { (HappyWrap33 happy_var_4) ->
1830 happyIn32
1831 (do b <- happy_var_4; return (happy_var_2, b)
1832 ) `HappyStk` happyRest}}
1833
1834 happyReduce_89 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1835 happyReduce_89 = happySpecReduce_3 29# happyReduction_89
1836 happyReduction_89 happy_x_3
1837 happy_x_2
1838 happy_x_1
1839 = case happyOutTok happy_x_1 of { happy_var_1 ->
1840 case happyOut15 happy_x_2 of { (HappyWrap15 happy_var_2) ->
1841 case happyOutTok happy_x_3 of { happy_var_3 ->
1842 happyIn33
1843 (return (Right (withSourceNote happy_var_1 happy_var_3 happy_var_2))
1844 )}}}
1845
1846 happyReduce_90 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1847 happyReduce_90 = happySpecReduce_3 29# happyReduction_90
1848 happyReduction_90 happy_x_3
1849 happy_x_2
1850 happy_x_1
1851 = case happyOutTok happy_x_2 of { (L _ (CmmT_Name happy_var_2)) ->
1852 happyIn33
1853 (do l <- lookupLabel happy_var_2; return (Left l)
1854 )}
1855
1856 happyReduce_91 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1857 happyReduce_91 = happySpecReduce_1 30# happyReduction_91
1858 happyReduction_91 happy_x_1
1859 = case happyOutTok happy_x_1 of { (L _ (CmmT_Int happy_var_1)) ->
1860 happyIn34
1861 ([ happy_var_1 ]
1862 )}
1863
1864 happyReduce_92 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1865 happyReduce_92 = happySpecReduce_3 30# happyReduction_92
1866 happyReduction_92 happy_x_3
1867 happy_x_2
1868 happy_x_1
1869 = case happyOutTok happy_x_1 of { (L _ (CmmT_Int happy_var_1)) ->
1870 case happyOut34 happy_x_3 of { (HappyWrap34 happy_var_3) ->
1871 happyIn34
1872 (happy_var_1 : happy_var_3
1873 )}}
1874
1875 happyReduce_93 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1876 happyReduce_93 = happyReduce 5# 31# happyReduction_93
1877 happyReduction_93 (happy_x_5 `HappyStk`
1878 happy_x_4 `HappyStk`
1879 happy_x_3 `HappyStk`
1880 happy_x_2 `HappyStk`
1881 happy_x_1 `HappyStk`
1882 happyRest)
1883 = case happyOutTok happy_x_3 of { happy_var_3 ->
1884 case happyOut15 happy_x_4 of { (HappyWrap15 happy_var_4) ->
1885 case happyOutTok happy_x_5 of { happy_var_5 ->
1886 happyIn35
1887 (Just (withSourceNote happy_var_3 happy_var_5 happy_var_4)
1888 ) `HappyStk` happyRest}}}
1889
1890 happyReduce_94 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1891 happyReduce_94 = happySpecReduce_0 31# happyReduction_94
1892 happyReduction_94 = happyIn35
1893 (Nothing
1894 )
1895
1896 happyReduce_95 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1897 happyReduce_95 = happySpecReduce_0 32# happyReduction_95
1898 happyReduction_95 = happyIn36
1899 (return ()
1900 )
1901
1902 happyReduce_96 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1903 happyReduce_96 = happyReduce 4# 32# happyReduction_96
1904 happyReduction_96 (happy_x_4 `HappyStk`
1905 happy_x_3 `HappyStk`
1906 happy_x_2 `HappyStk`
1907 happy_x_1 `HappyStk`
1908 happyRest)
1909 = case happyOutTok happy_x_2 of { happy_var_2 ->
1910 case happyOut15 happy_x_3 of { (HappyWrap15 happy_var_3) ->
1911 case happyOutTok happy_x_4 of { happy_var_4 ->
1912 happyIn36
1913 (withSourceNote happy_var_2 happy_var_4 happy_var_3
1914 ) `HappyStk` happyRest}}}
1915
1916 happyReduce_97 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1917 happyReduce_97 = happyReduce 5# 33# happyReduction_97
1918 happyReduction_97 (happy_x_5 `HappyStk`
1919 happy_x_4 `HappyStk`
1920 happy_x_3 `HappyStk`
1921 happy_x_2 `HappyStk`
1922 happy_x_1 `HappyStk`
1923 happyRest)
1924 = happyIn37
1925 (Just True
1926 ) `HappyStk` happyRest
1927
1928 happyReduce_98 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1929 happyReduce_98 = happyReduce 5# 33# happyReduction_98
1930 happyReduction_98 (happy_x_5 `HappyStk`
1931 happy_x_4 `HappyStk`
1932 happy_x_3 `HappyStk`
1933 happy_x_2 `HappyStk`
1934 happy_x_1 `HappyStk`
1935 happyRest)
1936 = happyIn37
1937 (Just False
1938 ) `HappyStk` happyRest
1939
1940 happyReduce_99 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1941 happyReduce_99 = happySpecReduce_0 33# happyReduction_99
1942 happyReduction_99 = happyIn37
1943 (Nothing
1944 )
1945
1946 happyReduce_100 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1947 happyReduce_100 = happySpecReduce_3 34# happyReduction_100
1948 happyReduction_100 happy_x_3
1949 happy_x_2
1950 happy_x_1
1951 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
1952 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
1953 happyIn38
1954 (mkMachOp MO_U_Quot [happy_var_1,happy_var_3]
1955 )}}
1956
1957 happyReduce_101 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1958 happyReduce_101 = happySpecReduce_3 34# happyReduction_101
1959 happyReduction_101 happy_x_3
1960 happy_x_2
1961 happy_x_1
1962 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
1963 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
1964 happyIn38
1965 (mkMachOp MO_Mul [happy_var_1,happy_var_3]
1966 )}}
1967
1968 happyReduce_102 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1969 happyReduce_102 = happySpecReduce_3 34# happyReduction_102
1970 happyReduction_102 happy_x_3
1971 happy_x_2
1972 happy_x_1
1973 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
1974 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
1975 happyIn38
1976 (mkMachOp MO_U_Rem [happy_var_1,happy_var_3]
1977 )}}
1978
1979 happyReduce_103 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1980 happyReduce_103 = happySpecReduce_3 34# happyReduction_103
1981 happyReduction_103 happy_x_3
1982 happy_x_2
1983 happy_x_1
1984 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
1985 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
1986 happyIn38
1987 (mkMachOp MO_Sub [happy_var_1,happy_var_3]
1988 )}}
1989
1990 happyReduce_104 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
1991 happyReduce_104 = happySpecReduce_3 34# happyReduction_104
1992 happyReduction_104 happy_x_3
1993 happy_x_2
1994 happy_x_1
1995 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
1996 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
1997 happyIn38
1998 (mkMachOp MO_Add [happy_var_1,happy_var_3]
1999 )}}
2000
2001 happyReduce_105 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2002 happyReduce_105 = happySpecReduce_3 34# happyReduction_105
2003 happyReduction_105 happy_x_3
2004 happy_x_2
2005 happy_x_1
2006 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2007 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2008 happyIn38
2009 (mkMachOp MO_U_Shr [happy_var_1,happy_var_3]
2010 )}}
2011
2012 happyReduce_106 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2013 happyReduce_106 = happySpecReduce_3 34# happyReduction_106
2014 happyReduction_106 happy_x_3
2015 happy_x_2
2016 happy_x_1
2017 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2018 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2019 happyIn38
2020 (mkMachOp MO_Shl [happy_var_1,happy_var_3]
2021 )}}
2022
2023 happyReduce_107 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2024 happyReduce_107 = happySpecReduce_3 34# happyReduction_107
2025 happyReduction_107 happy_x_3
2026 happy_x_2
2027 happy_x_1
2028 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2029 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2030 happyIn38
2031 (mkMachOp MO_And [happy_var_1,happy_var_3]
2032 )}}
2033
2034 happyReduce_108 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2035 happyReduce_108 = happySpecReduce_3 34# happyReduction_108
2036 happyReduction_108 happy_x_3
2037 happy_x_2
2038 happy_x_1
2039 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2040 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2041 happyIn38
2042 (mkMachOp MO_Xor [happy_var_1,happy_var_3]
2043 )}}
2044
2045 happyReduce_109 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2046 happyReduce_109 = happySpecReduce_3 34# happyReduction_109
2047 happyReduction_109 happy_x_3
2048 happy_x_2
2049 happy_x_1
2050 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2051 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2052 happyIn38
2053 (mkMachOp MO_Or [happy_var_1,happy_var_3]
2054 )}}
2055
2056 happyReduce_110 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2057 happyReduce_110 = happySpecReduce_3 34# happyReduction_110
2058 happyReduction_110 happy_x_3
2059 happy_x_2
2060 happy_x_1
2061 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2062 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2063 happyIn38
2064 (mkMachOp MO_U_Ge [happy_var_1,happy_var_3]
2065 )}}
2066
2067 happyReduce_111 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2068 happyReduce_111 = happySpecReduce_3 34# happyReduction_111
2069 happyReduction_111 happy_x_3
2070 happy_x_2
2071 happy_x_1
2072 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2073 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2074 happyIn38
2075 (mkMachOp MO_U_Gt [happy_var_1,happy_var_3]
2076 )}}
2077
2078 happyReduce_112 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2079 happyReduce_112 = happySpecReduce_3 34# happyReduction_112
2080 happyReduction_112 happy_x_3
2081 happy_x_2
2082 happy_x_1
2083 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2084 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2085 happyIn38
2086 (mkMachOp MO_U_Le [happy_var_1,happy_var_3]
2087 )}}
2088
2089 happyReduce_113 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2090 happyReduce_113 = happySpecReduce_3 34# happyReduction_113
2091 happyReduction_113 happy_x_3
2092 happy_x_2
2093 happy_x_1
2094 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2095 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2096 happyIn38
2097 (mkMachOp MO_U_Lt [happy_var_1,happy_var_3]
2098 )}}
2099
2100 happyReduce_114 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2101 happyReduce_114 = happySpecReduce_3 34# happyReduction_114
2102 happyReduction_114 happy_x_3
2103 happy_x_2
2104 happy_x_1
2105 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2106 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2107 happyIn38
2108 (mkMachOp MO_Ne [happy_var_1,happy_var_3]
2109 )}}
2110
2111 happyReduce_115 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2112 happyReduce_115 = happySpecReduce_3 34# happyReduction_115
2113 happyReduction_115 happy_x_3
2114 happy_x_2
2115 happy_x_1
2116 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2117 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2118 happyIn38
2119 (mkMachOp MO_Eq [happy_var_1,happy_var_3]
2120 )}}
2121
2122 happyReduce_116 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2123 happyReduce_116 = happySpecReduce_2 34# happyReduction_116
2124 happyReduction_116 happy_x_2
2125 happy_x_1
2126 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
2127 happyIn38
2128 (mkMachOp MO_Not [happy_var_2]
2129 )}
2130
2131 happyReduce_117 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2132 happyReduce_117 = happySpecReduce_2 34# happyReduction_117
2133 happyReduction_117 happy_x_2
2134 happy_x_1
2135 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
2136 happyIn38
2137 (mkMachOp MO_S_Neg [happy_var_2]
2138 )}
2139
2140 happyReduce_118 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2141 happyReduce_118 = happyMonadReduce 5# 34# happyReduction_118
2142 happyReduction_118 (happy_x_5 `HappyStk`
2143 happy_x_4 `HappyStk`
2144 happy_x_3 `HappyStk`
2145 happy_x_2 `HappyStk`
2146 happy_x_1 `HappyStk`
2147 happyRest) tk
2148 = happyThen ((case happyOut39 happy_x_1 of { (HappyWrap39 happy_var_1) ->
2149 case happyOutTok happy_x_3 of { (L _ (CmmT_Name happy_var_3)) ->
2150 case happyOut39 happy_x_5 of { (HappyWrap39 happy_var_5) ->
2151 ( do { mo <- nameToMachOp happy_var_3 ;
2152 return (mkMachOp mo [happy_var_1,happy_var_5]) })}}})
2153 ) (\r -> happyReturn (happyIn38 r))
2154
2155 happyReduce_119 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2156 happyReduce_119 = happySpecReduce_1 34# happyReduction_119
2157 happyReduction_119 happy_x_1
2158 = case happyOut39 happy_x_1 of { (HappyWrap39 happy_var_1) ->
2159 happyIn38
2160 (happy_var_1
2161 )}
2162
2163 happyReduce_120 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2164 happyReduce_120 = happySpecReduce_2 35# happyReduction_120
2165 happyReduction_120 happy_x_2
2166 happy_x_1
2167 = case happyOutTok happy_x_1 of { (L _ (CmmT_Int happy_var_1)) ->
2168 case happyOut40 happy_x_2 of { (HappyWrap40 happy_var_2) ->
2169 happyIn39
2170 (return (CmmLit (CmmInt happy_var_1 (typeWidth happy_var_2)))
2171 )}}
2172
2173 happyReduce_121 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2174 happyReduce_121 = happySpecReduce_2 35# happyReduction_121
2175 happyReduction_121 happy_x_2
2176 happy_x_1
2177 = case happyOutTok happy_x_1 of { (L _ (CmmT_Float happy_var_1)) ->
2178 case happyOut40 happy_x_2 of { (HappyWrap40 happy_var_2) ->
2179 happyIn39
2180 (return (CmmLit (CmmFloat happy_var_1 (typeWidth happy_var_2)))
2181 )}}
2182
2183 happyReduce_122 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2184 happyReduce_122 = happySpecReduce_1 35# happyReduction_122
2185 happyReduction_122 happy_x_1
2186 = case happyOutTok happy_x_1 of { (L _ (CmmT_String happy_var_1)) ->
2187 happyIn39
2188 (do s <- code (newStringCLit happy_var_1);
2189 return (CmmLit s)
2190 )}
2191
2192 happyReduce_123 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2193 happyReduce_123 = happySpecReduce_1 35# happyReduction_123
2194 happyReduction_123 happy_x_1
2195 = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) ->
2196 happyIn39
2197 (happy_var_1
2198 )}
2199
2200 happyReduce_124 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2201 happyReduce_124 = happyReduce 4# 35# happyReduction_124
2202 happyReduction_124 (happy_x_4 `HappyStk`
2203 happy_x_3 `HappyStk`
2204 happy_x_2 `HappyStk`
2205 happy_x_1 `HappyStk`
2206 happyRest)
2207 = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) ->
2208 case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) ->
2209 happyIn39
2210 (do e <- happy_var_3; return (CmmLoad e happy_var_1)
2211 ) `HappyStk` happyRest}}
2212
2213 happyReduce_125 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2214 happyReduce_125 = happyMonadReduce 5# 35# happyReduction_125
2215 happyReduction_125 (happy_x_5 `HappyStk`
2216 happy_x_4 `HappyStk`
2217 happy_x_3 `HappyStk`
2218 happy_x_2 `HappyStk`
2219 happy_x_1 `HappyStk`
2220 happyRest) tk
2221 = happyThen ((case happyOutTok happy_x_2 of { (L _ (CmmT_Name happy_var_2)) ->
2222 case happyOut44 happy_x_4 of { (HappyWrap44 happy_var_4) ->
2223 ( exprOp happy_var_2 happy_var_4)}})
2224 ) (\r -> happyReturn (happyIn39 r))
2225
2226 happyReduce_126 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2227 happyReduce_126 = happySpecReduce_3 35# happyReduction_126
2228 happyReduction_126 happy_x_3
2229 happy_x_2
2230 happy_x_1
2231 = case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) ->
2232 happyIn39
2233 (happy_var_2
2234 )}
2235
2236 happyReduce_127 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2237 happyReduce_127 = happyMonadReduce 0# 36# happyReduction_127
2238 happyReduction_127 (happyRest) tk
2239 = happyThen ((( do platform <- PD.getPlatform; return $ bWord platform))
2240 ) (\r -> happyReturn (happyIn40 r))
2241
2242 happyReduce_128 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2243 happyReduce_128 = happySpecReduce_2 36# happyReduction_128
2244 happyReduction_128 happy_x_2
2245 happy_x_1
2246 = case happyOut56 happy_x_2 of { (HappyWrap56 happy_var_2) ->
2247 happyIn40
2248 (happy_var_2
2249 )}
2250
2251 happyReduce_129 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2252 happyReduce_129 = happySpecReduce_0 37# happyReduction_129
2253 happyReduction_129 = happyIn41
2254 ([]
2255 )
2256
2257 happyReduce_130 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2258 happyReduce_130 = happySpecReduce_1 37# happyReduction_130
2259 happyReduction_130 happy_x_1
2260 = case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) ->
2261 happyIn41
2262 (happy_var_1
2263 )}
2264
2265 happyReduce_131 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2266 happyReduce_131 = happySpecReduce_1 38# happyReduction_131
2267 happyReduction_131 happy_x_1
2268 = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) ->
2269 happyIn42
2270 ([happy_var_1]
2271 )}
2272
2273 happyReduce_132 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2274 happyReduce_132 = happySpecReduce_3 38# happyReduction_132
2275 happyReduction_132 happy_x_3
2276 happy_x_2
2277 happy_x_1
2278 = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) ->
2279 case happyOut42 happy_x_3 of { (HappyWrap42 happy_var_3) ->
2280 happyIn42
2281 (happy_var_1 : happy_var_3
2282 )}}
2283
2284 happyReduce_133 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2285 happyReduce_133 = happySpecReduce_1 39# happyReduction_133
2286 happyReduction_133 happy_x_1
2287 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2288 happyIn43
2289 (do e <- happy_var_1;
2290 return (e, inferCmmHint e)
2291 )}
2292
2293 happyReduce_134 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2294 happyReduce_134 = happyMonadReduce 2# 39# happyReduction_134
2295 happyReduction_134 (happy_x_2 `HappyStk`
2296 happy_x_1 `HappyStk`
2297 happyRest) tk
2298 = happyThen ((case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2299 case happyOutTok happy_x_2 of { (L _ (CmmT_String happy_var_2)) ->
2300 ( do h <- parseCmmHint happy_var_2;
2301 return $ do
2302 e <- happy_var_1; return (e, h))}})
2303 ) (\r -> happyReturn (happyIn43 r))
2304
2305 happyReduce_135 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2306 happyReduce_135 = happySpecReduce_0 40# happyReduction_135
2307 happyReduction_135 = happyIn44
2308 ([]
2309 )
2310
2311 happyReduce_136 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2312 happyReduce_136 = happySpecReduce_1 40# happyReduction_136
2313 happyReduction_136 happy_x_1
2314 = case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) ->
2315 happyIn44
2316 (happy_var_1
2317 )}
2318
2319 happyReduce_137 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2320 happyReduce_137 = happySpecReduce_1 41# happyReduction_137
2321 happyReduction_137 happy_x_1
2322 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2323 happyIn45
2324 ([ happy_var_1 ]
2325 )}
2326
2327 happyReduce_138 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2328 happyReduce_138 = happySpecReduce_3 41# happyReduction_138
2329 happyReduction_138 happy_x_3
2330 happy_x_2
2331 happy_x_1
2332 = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) ->
2333 case happyOut45 happy_x_3 of { (HappyWrap45 happy_var_3) ->
2334 happyIn45
2335 (happy_var_1 : happy_var_3
2336 )}}
2337
2338 happyReduce_139 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2339 happyReduce_139 = happySpecReduce_1 42# happyReduction_139
2340 happyReduction_139 happy_x_1
2341 = case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
2342 happyIn46
2343 (lookupName happy_var_1
2344 )}
2345
2346 happyReduce_140 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2347 happyReduce_140 = happySpecReduce_1 42# happyReduction_140
2348 happyReduction_140 happy_x_1
2349 = case happyOutTok happy_x_1 of { (L _ (CmmT_GlobalReg happy_var_1)) ->
2350 happyIn46
2351 (return (CmmReg (CmmGlobal happy_var_1))
2352 )}
2353
2354 happyReduce_141 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2355 happyReduce_141 = happySpecReduce_0 43# happyReduction_141
2356 happyReduction_141 = happyIn47
2357 ([]
2358 )
2359
2360 happyReduce_142 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2361 happyReduce_142 = happyReduce 4# 43# happyReduction_142
2362 happyReduction_142 (happy_x_4 `HappyStk`
2363 happy_x_3 `HappyStk`
2364 happy_x_2 `HappyStk`
2365 happy_x_1 `HappyStk`
2366 happyRest)
2367 = case happyOut48 happy_x_2 of { (HappyWrap48 happy_var_2) ->
2368 happyIn47
2369 (happy_var_2
2370 ) `HappyStk` happyRest}
2371
2372 happyReduce_143 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2373 happyReduce_143 = happySpecReduce_1 44# happyReduction_143
2374 happyReduction_143 happy_x_1
2375 = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) ->
2376 happyIn48
2377 ([happy_var_1]
2378 )}
2379
2380 happyReduce_144 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2381 happyReduce_144 = happySpecReduce_2 44# happyReduction_144
2382 happyReduction_144 happy_x_2
2383 happy_x_1
2384 = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) ->
2385 happyIn48
2386 ([happy_var_1]
2387 )}
2388
2389 happyReduce_145 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2390 happyReduce_145 = happySpecReduce_3 44# happyReduction_145
2391 happyReduction_145 happy_x_3
2392 happy_x_2
2393 happy_x_1
2394 = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) ->
2395 case happyOut48 happy_x_3 of { (HappyWrap48 happy_var_3) ->
2396 happyIn48
2397 (happy_var_1 : happy_var_3
2398 )}}
2399
2400 happyReduce_146 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2401 happyReduce_146 = happySpecReduce_1 45# happyReduction_146
2402 happyReduction_146 happy_x_1
2403 = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) ->
2404 happyIn49
2405 (do e <- happy_var_1; return (e, inferCmmHint (CmmReg (CmmLocal e)))
2406 )}
2407
2408 happyReduce_147 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2409 happyReduce_147 = happyMonadReduce 2# 45# happyReduction_147
2410 happyReduction_147 (happy_x_2 `HappyStk`
2411 happy_x_1 `HappyStk`
2412 happyRest) tk
2413 = happyThen ((case happyOutTok happy_x_1 of { (L _ (CmmT_String happy_var_1)) ->
2414 case happyOut50 happy_x_2 of { (HappyWrap50 happy_var_2) ->
2415 ( do h <- parseCmmHint happy_var_1;
2416 return $ do
2417 e <- happy_var_2; return (e,h))}})
2418 ) (\r -> happyReturn (happyIn49 r))
2419
2420 happyReduce_148 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2421 happyReduce_148 = happySpecReduce_1 46# happyReduction_148
2422 happyReduction_148 happy_x_1
2423 = case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
2424 happyIn50
2425 (do e <- lookupName happy_var_1;
2426 return $
2427 case e of
2428 CmmReg (CmmLocal r) -> r
2429 other -> pprPanic "CmmParse:" (ftext happy_var_1 <> text " not a local register")
2430 )}
2431
2432 happyReduce_149 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2433 happyReduce_149 = happySpecReduce_1 47# happyReduction_149
2434 happyReduction_149 happy_x_1
2435 = case happyOutTok happy_x_1 of { (L _ (CmmT_Name happy_var_1)) ->
2436 happyIn51
2437 (do e <- lookupName happy_var_1;
2438 return $
2439 case e of
2440 CmmReg r -> r
2441 other -> pprPanic "CmmParse:" (ftext happy_var_1 <> text " not a register")
2442 )}
2443
2444 happyReduce_150 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2445 happyReduce_150 = happySpecReduce_1 47# happyReduction_150
2446 happyReduction_150 happy_x_1
2447 = case happyOutTok happy_x_1 of { (L _ (CmmT_GlobalReg happy_var_1)) ->
2448 happyIn51
2449 (return (CmmGlobal happy_var_1)
2450 )}
2451
2452 happyReduce_151 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2453 happyReduce_151 = happySpecReduce_0 48# happyReduction_151
2454 happyReduction_151 = happyIn52
2455 (Nothing
2456 )
2457
2458 happyReduce_152 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2459 happyReduce_152 = happySpecReduce_3 48# happyReduction_152
2460 happyReduction_152 happy_x_3
2461 happy_x_2
2462 happy_x_1
2463 = case happyOut53 happy_x_2 of { (HappyWrap53 happy_var_2) ->
2464 happyIn52
2465 (Just happy_var_2
2466 )}
2467
2468 happyReduce_153 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2469 happyReduce_153 = happySpecReduce_0 49# happyReduction_153
2470 happyReduction_153 = happyIn53
2471 ([]
2472 )
2473
2474 happyReduce_154 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2475 happyReduce_154 = happySpecReduce_1 49# happyReduction_154
2476 happyReduction_154 happy_x_1
2477 = case happyOut54 happy_x_1 of { (HappyWrap54 happy_var_1) ->
2478 happyIn53
2479 (happy_var_1
2480 )}
2481
2482 happyReduce_155 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2483 happyReduce_155 = happySpecReduce_2 50# happyReduction_155
2484 happyReduction_155 happy_x_2
2485 happy_x_1
2486 = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) ->
2487 happyIn54
2488 ([happy_var_1]
2489 )}
2490
2491 happyReduce_156 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2492 happyReduce_156 = happySpecReduce_1 50# happyReduction_156
2493 happyReduction_156 happy_x_1
2494 = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) ->
2495 happyIn54
2496 ([happy_var_1]
2497 )}
2498
2499 happyReduce_157 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2500 happyReduce_157 = happySpecReduce_3 50# happyReduction_157
2501 happyReduction_157 happy_x_3
2502 happy_x_2
2503 happy_x_1
2504 = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) ->
2505 case happyOut54 happy_x_3 of { (HappyWrap54 happy_var_3) ->
2506 happyIn54
2507 (happy_var_1 : happy_var_3
2508 )}}
2509
2510 happyReduce_158 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2511 happyReduce_158 = happySpecReduce_2 51# happyReduction_158
2512 happyReduction_158 happy_x_2
2513 happy_x_1
2514 = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) ->
2515 case happyOutTok happy_x_2 of { (L _ (CmmT_Name happy_var_2)) ->
2516 happyIn55
2517 (newLocal happy_var_1 happy_var_2
2518 )}}
2519
2520 happyReduce_159 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2521 happyReduce_159 = happySpecReduce_1 52# happyReduction_159
2522 happyReduction_159 happy_x_1
2523 = happyIn56
2524 (b8
2525 )
2526
2527 happyReduce_160 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2528 happyReduce_160 = happySpecReduce_1 52# happyReduction_160
2529 happyReduction_160 happy_x_1
2530 = case happyOut57 happy_x_1 of { (HappyWrap57 happy_var_1) ->
2531 happyIn56
2532 (happy_var_1
2533 )}
2534
2535 happyReduce_161 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2536 happyReduce_161 = happySpecReduce_1 53# happyReduction_161
2537 happyReduction_161 happy_x_1
2538 = happyIn57
2539 (b16
2540 )
2541
2542 happyReduce_162 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2543 happyReduce_162 = happySpecReduce_1 53# happyReduction_162
2544 happyReduction_162 happy_x_1
2545 = happyIn57
2546 (b32
2547 )
2548
2549 happyReduce_163 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2550 happyReduce_163 = happySpecReduce_1 53# happyReduction_163
2551 happyReduction_163 happy_x_1
2552 = happyIn57
2553 (b64
2554 )
2555
2556 happyReduce_164 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2557 happyReduce_164 = happySpecReduce_1 53# happyReduction_164
2558 happyReduction_164 happy_x_1
2559 = happyIn57
2560 (b128
2561 )
2562
2563 happyReduce_165 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2564 happyReduce_165 = happySpecReduce_1 53# happyReduction_165
2565 happyReduction_165 happy_x_1
2566 = happyIn57
2567 (b256
2568 )
2569
2570 happyReduce_166 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2571 happyReduce_166 = happySpecReduce_1 53# happyReduction_166
2572 happyReduction_166 happy_x_1
2573 = happyIn57
2574 (b512
2575 )
2576
2577 happyReduce_167 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2578 happyReduce_167 = happySpecReduce_1 53# happyReduction_167
2579 happyReduction_167 happy_x_1
2580 = happyIn57
2581 (f32
2582 )
2583
2584 happyReduce_168 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2585 happyReduce_168 = happySpecReduce_1 53# happyReduction_168
2586 happyReduction_168 happy_x_1
2587 = happyIn57
2588 (f64
2589 )
2590
2591 happyReduce_169 :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2592 happyReduce_169 = happyMonadReduce 1# 53# happyReduction_169
2593 happyReduction_169 (happy_x_1 `HappyStk`
2594 happyRest) tk
2595 = happyThen ((( do platform <- PD.getPlatform; return $ gcWord platform))
2596 ) (\r -> happyReturn (happyIn57 r))
2597
2598 happyNewToken action sts stk
2599 = cmmlex(\tk ->
2600 let cont i = happyDoAction i tk action sts stk in
2601 case tk of {
2602 L _ CmmT_EOF -> happyDoAction 77# tk action sts stk;
2603 L _ (CmmT_SpecChar ':') -> cont 1#;
2604 L _ (CmmT_SpecChar ';') -> cont 2#;
2605 L _ (CmmT_SpecChar '{') -> cont 3#;
2606 L _ (CmmT_SpecChar '}') -> cont 4#;
2607 L _ (CmmT_SpecChar '[') -> cont 5#;
2608 L _ (CmmT_SpecChar ']') -> cont 6#;
2609 L _ (CmmT_SpecChar '(') -> cont 7#;
2610 L _ (CmmT_SpecChar ')') -> cont 8#;
2611 L _ (CmmT_SpecChar '=') -> cont 9#;
2612 L _ (CmmT_SpecChar '`') -> cont 10#;
2613 L _ (CmmT_SpecChar '~') -> cont 11#;
2614 L _ (CmmT_SpecChar '/') -> cont 12#;
2615 L _ (CmmT_SpecChar '*') -> cont 13#;
2616 L _ (CmmT_SpecChar '%') -> cont 14#;
2617 L _ (CmmT_SpecChar '-') -> cont 15#;
2618 L _ (CmmT_SpecChar '+') -> cont 16#;
2619 L _ (CmmT_SpecChar '&') -> cont 17#;
2620 L _ (CmmT_SpecChar '^') -> cont 18#;
2621 L _ (CmmT_SpecChar '|') -> cont 19#;
2622 L _ (CmmT_SpecChar '>') -> cont 20#;
2623 L _ (CmmT_SpecChar '<') -> cont 21#;
2624 L _ (CmmT_SpecChar ',') -> cont 22#;
2625 L _ (CmmT_SpecChar '!') -> cont 23#;
2626 L _ (CmmT_DotDot) -> cont 24#;
2627 L _ (CmmT_DoubleColon) -> cont 25#;
2628 L _ (CmmT_Shr) -> cont 26#;
2629 L _ (CmmT_Shl) -> cont 27#;
2630 L _ (CmmT_Ge) -> cont 28#;
2631 L _ (CmmT_Le) -> cont 29#;
2632 L _ (CmmT_Eq) -> cont 30#;
2633 L _ (CmmT_Ne) -> cont 31#;
2634 L _ (CmmT_BoolAnd) -> cont 32#;
2635 L _ (CmmT_BoolOr) -> cont 33#;
2636 L _ (CmmT_True ) -> cont 34#;
2637 L _ (CmmT_False) -> cont 35#;
2638 L _ (CmmT_likely) -> cont 36#;
2639 L _ (CmmT_CLOSURE) -> cont 37#;
2640 L _ (CmmT_INFO_TABLE) -> cont 38#;
2641 L _ (CmmT_INFO_TABLE_RET) -> cont 39#;
2642 L _ (CmmT_INFO_TABLE_FUN) -> cont 40#;
2643 L _ (CmmT_INFO_TABLE_CONSTR) -> cont 41#;
2644 L _ (CmmT_INFO_TABLE_SELECTOR) -> cont 42#;
2645 L _ (CmmT_else) -> cont 43#;
2646 L _ (CmmT_export) -> cont 44#;
2647 L _ (CmmT_section) -> cont 45#;
2648 L _ (CmmT_goto) -> cont 46#;
2649 L _ (CmmT_if) -> cont 47#;
2650 L _ (CmmT_call) -> cont 48#;
2651 L _ (CmmT_jump) -> cont 49#;
2652 L _ (CmmT_foreign) -> cont 50#;
2653 L _ (CmmT_never) -> cont 51#;
2654 L _ (CmmT_prim) -> cont 52#;
2655 L _ (CmmT_reserve) -> cont 53#;
2656 L _ (CmmT_return) -> cont 54#;
2657 L _ (CmmT_returns) -> cont 55#;
2658 L _ (CmmT_import) -> cont 56#;
2659 L _ (CmmT_switch) -> cont 57#;
2660 L _ (CmmT_case) -> cont 58#;
2661 L _ (CmmT_default) -> cont 59#;
2662 L _ (CmmT_push) -> cont 60#;
2663 L _ (CmmT_unwind) -> cont 61#;
2664 L _ (CmmT_bits8) -> cont 62#;
2665 L _ (CmmT_bits16) -> cont 63#;
2666 L _ (CmmT_bits32) -> cont 64#;
2667 L _ (CmmT_bits64) -> cont 65#;
2668 L _ (CmmT_bits128) -> cont 66#;
2669 L _ (CmmT_bits256) -> cont 67#;
2670 L _ (CmmT_bits512) -> cont 68#;
2671 L _ (CmmT_float32) -> cont 69#;
2672 L _ (CmmT_float64) -> cont 70#;
2673 L _ (CmmT_gcptr) -> cont 71#;
2674 L _ (CmmT_GlobalReg happy_dollar_dollar) -> cont 72#;
2675 L _ (CmmT_Name happy_dollar_dollar) -> cont 73#;
2676 L _ (CmmT_String happy_dollar_dollar) -> cont 74#;
2677 L _ (CmmT_Int happy_dollar_dollar) -> cont 75#;
2678 L _ (CmmT_Float happy_dollar_dollar) -> cont 76#;
2679 _ -> happyError' (tk, [])
2680 })
2681
2682 happyError_ explist 77# tk = happyError' (tk, explist)
2683 happyError_ explist _ tk = happyError' (tk, explist)
2684
2685 happyThen :: () => PD a -> (a -> PD b) -> PD b
2686 happyThen = (>>=)
2687 happyReturn :: () => a -> PD a
2688 happyReturn = (return)
2689 happyParse :: () => Happy_GHC_Exts.Int# -> PD (HappyAbsSyn )
2690
2691 happyNewToken :: () => Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2692
2693 happyDoAction :: () => Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn )
2694
2695 happyReduceArr :: () => Happy_Data_Array.Array Prelude.Int (Happy_GHC_Exts.Int# -> Located CmmToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> PD (HappyAbsSyn ))
2696
2697 happyThen1 :: () => PD a -> (a -> PD b) -> PD b
2698 happyThen1 = happyThen
2699 happyReturn1 :: () => a -> PD a
2700 happyReturn1 = happyReturn
2701 happyError' :: () => ((Located CmmToken), [Prelude.String]) -> PD a
2702 happyError' tk = (\(tokens, explist) -> happyError) tk
2703 cmmParse = happySomeParser where
2704 happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (let {(HappyWrap4 x') = happyOut4 x} in x'))
2705
2706 happySeq = happyDoSeq
2707
2708
2709 section :: String -> SectionType
2710 section "text" = Text
2711 section "data" = Data
2712 section "rodata" = ReadOnlyData
2713 section "relrodata" = RelocatableReadOnlyData
2714 section "bss" = UninitialisedData
2715 section s = OtherSection s
2716
2717 mkString :: String -> CmmStatic
2718 mkString s = CmmString (BS8.pack s)
2719
2720 -- mkMachOp infers the type of the MachOp from the type of its first
2721 -- argument. We assume that this is correct: for MachOps that don't have
2722 -- symmetrical args (e.g. shift ops), the first arg determines the type of
2723 -- the op.
2724 mkMachOp :: (Width -> MachOp) -> [CmmParse CmmExpr] -> CmmParse CmmExpr
2725 mkMachOp fn args = do
2726 platform <- getPlatform
2727 arg_exprs <- sequence args
2728 return (CmmMachOp (fn (typeWidth (cmmExprType platform (head arg_exprs)))) arg_exprs)
2729
2730 getLit :: CmmExpr -> CmmLit
2731 getLit (CmmLit l) = l
2732 getLit (CmmMachOp (MO_S_Neg _) [CmmLit (CmmInt i r)]) = CmmInt (negate i) r
2733 getLit _ = panic "invalid literal" -- TODO messy failure
2734
2735 nameToMachOp :: FastString -> PD (Width -> MachOp)
2736 nameToMachOp name =
2737 case lookupUFM machOps name of
2738 Nothing -> failMsgPD $ \span -> mkPlainErrorMsgEnvelope span $ PsErrCmmParser (CmmUnknownPrimitive name)
2739 Just m -> return m
2740
2741 exprOp :: FastString -> [CmmParse CmmExpr] -> PD (CmmParse CmmExpr)
2742 exprOp name args_code = do
2743 ptr_opts <- PD.getPtrOpts
2744 case lookupUFM (exprMacros ptr_opts) name of
2745 Just f -> return $ do
2746 args <- sequence args_code
2747 return (f args)
2748 Nothing -> do
2749 mo <- nameToMachOp name
2750 return $ mkMachOp mo args_code
2751
2752 exprMacros :: PtrOpts -> UniqFM FastString ([CmmExpr] -> CmmExpr)
2753 exprMacros ptr_opts = listToUFM [
2754 ( fsLit "ENTRY_CODE", \ [x] -> entryCode platform x ),
2755 ( fsLit "INFO_PTR", \ [x] -> closureInfoPtr ptr_opts x ),
2756 ( fsLit "STD_INFO", \ [x] -> infoTable profile x ),
2757 ( fsLit "FUN_INFO", \ [x] -> funInfoTable profile x ),
2758 ( fsLit "GET_ENTRY", \ [x] -> entryCode platform (closureInfoPtr ptr_opts x) ),
2759 ( fsLit "GET_STD_INFO", \ [x] -> infoTable profile (closureInfoPtr ptr_opts x) ),
2760 ( fsLit "GET_FUN_INFO", \ [x] -> funInfoTable profile (closureInfoPtr ptr_opts x) ),
2761 ( fsLit "INFO_TYPE", \ [x] -> infoTableClosureType profile x ),
2762 ( fsLit "INFO_PTRS", \ [x] -> infoTablePtrs profile x ),
2763 ( fsLit "INFO_NPTRS", \ [x] -> infoTableNonPtrs profile x )
2764 ]
2765 where
2766 profile = po_profile ptr_opts
2767 platform = profilePlatform profile
2768
2769 -- we understand a subset of C-- primitives:
2770 machOps = listToUFM $
2771 map (\(x, y) -> (mkFastString x, y)) [
2772 ( "add", MO_Add ),
2773 ( "sub", MO_Sub ),
2774 ( "eq", MO_Eq ),
2775 ( "ne", MO_Ne ),
2776 ( "mul", MO_Mul ),
2777 ( "neg", MO_S_Neg ),
2778 ( "quot", MO_S_Quot ),
2779 ( "rem", MO_S_Rem ),
2780 ( "divu", MO_U_Quot ),
2781 ( "modu", MO_U_Rem ),
2782
2783 ( "ge", MO_S_Ge ),
2784 ( "le", MO_S_Le ),
2785 ( "gt", MO_S_Gt ),
2786 ( "lt", MO_S_Lt ),
2787
2788 ( "geu", MO_U_Ge ),
2789 ( "leu", MO_U_Le ),
2790 ( "gtu", MO_U_Gt ),
2791 ( "ltu", MO_U_Lt ),
2792
2793 ( "and", MO_And ),
2794 ( "or", MO_Or ),
2795 ( "xor", MO_Xor ),
2796 ( "com", MO_Not ),
2797 ( "shl", MO_Shl ),
2798 ( "shrl", MO_U_Shr ),
2799 ( "shra", MO_S_Shr ),
2800
2801 ( "fadd", MO_F_Add ),
2802 ( "fsub", MO_F_Sub ),
2803 ( "fneg", MO_F_Neg ),
2804 ( "fmul", MO_F_Mul ),
2805 ( "fquot", MO_F_Quot ),
2806
2807 ( "feq", MO_F_Eq ),
2808 ( "fne", MO_F_Ne ),
2809 ( "fge", MO_F_Ge ),
2810 ( "fle", MO_F_Le ),
2811 ( "fgt", MO_F_Gt ),
2812 ( "flt", MO_F_Lt ),
2813
2814 ( "lobits8", flip MO_UU_Conv W8 ),
2815 ( "lobits16", flip MO_UU_Conv W16 ),
2816 ( "lobits32", flip MO_UU_Conv W32 ),
2817 ( "lobits64", flip MO_UU_Conv W64 ),
2818
2819 ( "zx16", flip MO_UU_Conv W16 ),
2820 ( "zx32", flip MO_UU_Conv W32 ),
2821 ( "zx64", flip MO_UU_Conv W64 ),
2822
2823 ( "sx16", flip MO_SS_Conv W16 ),
2824 ( "sx32", flip MO_SS_Conv W32 ),
2825 ( "sx64", flip MO_SS_Conv W64 ),
2826
2827 ( "f2f32", flip MO_FF_Conv W32 ), -- TODO; rounding mode
2828 ( "f2f64", flip MO_FF_Conv W64 ), -- TODO; rounding mode
2829 ( "f2i8", flip MO_FS_Conv W8 ),
2830 ( "f2i16", flip MO_FS_Conv W16 ),
2831 ( "f2i32", flip MO_FS_Conv W32 ),
2832 ( "f2i64", flip MO_FS_Conv W64 ),
2833 ( "i2f32", flip MO_SF_Conv W32 ),
2834 ( "i2f64", flip MO_SF_Conv W64 )
2835 ]
2836
2837 callishMachOps :: Platform -> UniqFM FastString ([CmmExpr] -> (CallishMachOp, [CmmExpr]))
2838 callishMachOps platform = listToUFM $
2839 map (\(x, y) -> (mkFastString x, y)) [
2840
2841 ( "pow64f", (MO_F64_Pwr,) ),
2842 ( "sin64f", (MO_F64_Sin,) ),
2843 ( "cos64f", (MO_F64_Cos,) ),
2844 ( "tan64f", (MO_F64_Tan,) ),
2845 ( "sinh64f", (MO_F64_Sinh,) ),
2846 ( "cosh64f", (MO_F64_Cosh,) ),
2847 ( "tanh64f", (MO_F64_Tanh,) ),
2848 ( "asin64f", (MO_F64_Asin,) ),
2849 ( "acos64f", (MO_F64_Acos,) ),
2850 ( "atan64f", (MO_F64_Atan,) ),
2851 ( "asinh64f", (MO_F64_Asinh,) ),
2852 ( "acosh64f", (MO_F64_Acosh,) ),
2853 ( "log64f", (MO_F64_Log,) ),
2854 ( "log1p64f", (MO_F64_Log1P,) ),
2855 ( "exp64f", (MO_F64_Exp,) ),
2856 ( "expM164f", (MO_F64_ExpM1,) ),
2857 ( "fabs64f", (MO_F64_Fabs,) ),
2858 ( "sqrt64f", (MO_F64_Sqrt,) ),
2859
2860 ( "pow32f", (MO_F32_Pwr,) ),
2861 ( "sin32f", (MO_F32_Sin,) ),
2862 ( "cos32f", (MO_F32_Cos,) ),
2863 ( "tan32f", (MO_F32_Tan,) ),
2864 ( "sinh32f", (MO_F32_Sinh,) ),
2865 ( "cosh32f", (MO_F32_Cosh,) ),
2866 ( "tanh32f", (MO_F32_Tanh,) ),
2867 ( "asin32f", (MO_F32_Asin,) ),
2868 ( "acos32f", (MO_F32_Acos,) ),
2869 ( "atan32f", (MO_F32_Atan,) ),
2870 ( "asinh32f", (MO_F32_Asinh,) ),
2871 ( "acosh32f", (MO_F32_Acosh,) ),
2872 ( "log32f", (MO_F32_Log,) ),
2873 ( "log1p32f", (MO_F32_Log1P,) ),
2874 ( "exp32f", (MO_F32_Exp,) ),
2875 ( "expM132f", (MO_F32_ExpM1,) ),
2876 ( "fabs32f", (MO_F32_Fabs,) ),
2877 ( "sqrt32f", (MO_F32_Sqrt,) ),
2878
2879 ( "read_barrier", (MO_ReadBarrier,)),
2880 ( "write_barrier", (MO_WriteBarrier,)),
2881 ( "memcpy", memcpyLikeTweakArgs MO_Memcpy ),
2882 ( "memset", memcpyLikeTweakArgs MO_Memset ),
2883 ( "memmove", memcpyLikeTweakArgs MO_Memmove ),
2884 ( "memcmp", memcpyLikeTweakArgs MO_Memcmp ),
2885
2886 ( "suspendThread", (MO_SuspendThread,) ),
2887 ( "resumeThread", (MO_ResumeThread,) ),
2888
2889 ("prefetch0", (MO_Prefetch_Data 0,)),
2890 ("prefetch1", (MO_Prefetch_Data 1,)),
2891 ("prefetch2", (MO_Prefetch_Data 2,)),
2892 ("prefetch3", (MO_Prefetch_Data 3,)),
2893
2894 ( "popcnt8", (MO_PopCnt W8,)),
2895 ( "popcnt16", (MO_PopCnt W16,)),
2896 ( "popcnt32", (MO_PopCnt W32,)),
2897 ( "popcnt64", (MO_PopCnt W64,)),
2898
2899 ( "pdep8", (MO_Pdep W8,)),
2900 ( "pdep16", (MO_Pdep W16,)),
2901 ( "pdep32", (MO_Pdep W32,)),
2902 ( "pdep64", (MO_Pdep W64,)),
2903
2904 ( "pext8", (MO_Pext W8,)),
2905 ( "pext16", (MO_Pext W16,)),
2906 ( "pext32", (MO_Pext W32,)),
2907 ( "pext64", (MO_Pext W64,)),
2908
2909 ( "cmpxchg8", (MO_Cmpxchg W8,)),
2910 ( "cmpxchg16", (MO_Cmpxchg W16,)),
2911 ( "cmpxchg32", (MO_Cmpxchg W32,)),
2912 ( "cmpxchg64", (MO_Cmpxchg W64,)),
2913
2914 ( "xchg8", (MO_Xchg W8,)),
2915 ( "xchg16", (MO_Xchg W16,)),
2916 ( "xchg32", (MO_Xchg W32,)),
2917 ( "xchg64", (MO_Xchg W64,))
2918 ]
2919 where
2920 memcpyLikeTweakArgs :: (Int -> CallishMachOp) -> [CmmExpr] -> (CallishMachOp, [CmmExpr])
2921 memcpyLikeTweakArgs op [] = pgmError "memcpy-like function requires at least one argument"
2922 memcpyLikeTweakArgs op args@(_:_) =
2923 (op align, args')
2924 where
2925 args' = init args
2926 align = case last args of
2927 CmmLit (CmmInt alignInteger _) -> fromInteger alignInteger
2928 e -> pgmErrorDoc "Non-constant alignment in memcpy-like function:" (pdoc platform e)
2929 -- The alignment of memcpy-ish operations must be a
2930 -- compile-time constant. We verify this here, passing it around
2931 -- in the MO_* constructor. In order to do this, however, we
2932 -- must intercept the arguments in primCall.
2933
2934 parseSafety :: String -> PD Safety
2935 parseSafety "safe" = return PlaySafe
2936 parseSafety "unsafe" = return PlayRisky
2937 parseSafety "interruptible" = return PlayInterruptible
2938 parseSafety str = failMsgPD $ \span -> mkPlainErrorMsgEnvelope span $
2939 PsErrCmmParser (CmmUnrecognisedSafety str)
2940
2941 parseCmmHint :: String -> PD ForeignHint
2942 parseCmmHint "ptr" = return AddrHint
2943 parseCmmHint "signed" = return SignedHint
2944 parseCmmHint str = failMsgPD $ \span -> mkPlainErrorMsgEnvelope span $
2945 PsErrCmmParser (CmmUnrecognisedHint str)
2946
2947 -- labels are always pointers, so we might as well infer the hint
2948 inferCmmHint :: CmmExpr -> ForeignHint
2949 inferCmmHint (CmmLit (CmmLabel _)) = AddrHint
2950 inferCmmHint (CmmReg (CmmGlobal g)) | isPtrGlobalReg g = AddrHint
2951 inferCmmHint _ = NoHint
2952
2953 isPtrGlobalReg Sp = True
2954 isPtrGlobalReg SpLim = True
2955 isPtrGlobalReg Hp = True
2956 isPtrGlobalReg HpLim = True
2957 isPtrGlobalReg CCCS = True
2958 isPtrGlobalReg CurrentTSO = True
2959 isPtrGlobalReg CurrentNursery = True
2960 isPtrGlobalReg (VanillaReg _ VGcPtr) = True
2961 isPtrGlobalReg _ = False
2962
2963 happyError :: PD a
2964 happyError = PD $ \_ _ s -> unP srcParseFail s
2965
2966 -- -----------------------------------------------------------------------------
2967 -- Statement-level macros
2968
2969 stmtMacro :: FastString -> [CmmParse CmmExpr] -> PD (CmmParse ())
2970 stmtMacro fun args_code = do
2971 case lookupUFM stmtMacros fun of
2972 Nothing -> failMsgPD $ \span -> mkPlainErrorMsgEnvelope span $ PsErrCmmParser (CmmUnknownMacro fun)
2973 Just fcode -> return $ do
2974 args <- sequence args_code
2975 code (fcode args)
2976
2977 stmtMacros :: UniqFM FastString ([CmmExpr] -> FCode ())
2978 stmtMacros = listToUFM [
2979 ( fsLit "CCS_ALLOC", \[words,ccs] -> profAlloc words ccs ),
2980 ( fsLit "ENTER_CCS_THUNK", \[e] -> enterCostCentreThunk e ),
2981
2982 ( fsLit "CLOSE_NURSERY", \[] -> emitCloseNursery ),
2983 ( fsLit "OPEN_NURSERY", \[] -> emitOpenNursery ),
2984
2985 -- completely generic heap and stack checks, for use in high-level cmm.
2986 ( fsLit "HP_CHK_GEN", \[bytes] ->
2987 heapStackCheckGen Nothing (Just bytes) ),
2988 ( fsLit "STK_CHK_GEN", \[] ->
2989 heapStackCheckGen (Just (CmmLit CmmHighStackMark)) Nothing ),
2990
2991 -- A stack check for a fixed amount of stack. Sounds a bit strange, but
2992 -- we use the stack for a bit of temporary storage in a couple of primops
2993 ( fsLit "STK_CHK_GEN_N", \[bytes] ->
2994 heapStackCheckGen (Just bytes) Nothing ),
2995
2996 -- A stack check on entry to a thunk, where the argument is the thunk pointer.
2997 ( fsLit "STK_CHK_NP" , \[node] -> entryHeapCheck' False node 0 [] (return ())),
2998
2999 ( fsLit "LOAD_THREAD_STATE", \[] -> emitLoadThreadState ),
3000 ( fsLit "SAVE_THREAD_STATE", \[] -> emitSaveThreadState ),
3001
3002 ( fsLit "SAVE_REGS", \[] -> emitSaveRegs ),
3003 ( fsLit "RESTORE_REGS", \[] -> emitRestoreRegs ),
3004
3005 ( fsLit "PUSH_TUPLE_REGS", \[live_regs] -> emitPushTupleRegs live_regs ),
3006 ( fsLit "POP_TUPLE_REGS", \[live_regs] -> emitPopTupleRegs live_regs ),
3007
3008 ( fsLit "LDV_ENTER", \[e] -> ldvEnter e ),
3009 ( fsLit "LDV_RECORD_CREATE", \[e] -> ldvRecordCreate e ),
3010
3011 ( fsLit "PUSH_UPD_FRAME", \[sp,e] -> emitPushUpdateFrame sp e ),
3012 ( fsLit "SET_HDR", \[ptr,info,ccs] ->
3013 emitSetDynHdr ptr info ccs ),
3014 ( fsLit "TICK_ALLOC_PRIM", \[hdr,goods,slop] ->
3015 tickyAllocPrim hdr goods slop ),
3016 ( fsLit "TICK_ALLOC_PAP", \[goods,slop] ->
3017 tickyAllocPAP goods slop ),
3018 ( fsLit "TICK_ALLOC_UP_THK", \[goods,slop] ->
3019 tickyAllocThunk goods slop ),
3020 ( fsLit "UPD_BH_UPDATABLE", \[reg] -> emitBlackHoleCode reg )
3021 ]
3022
3023 emitPushUpdateFrame :: CmmExpr -> CmmExpr -> FCode ()
3024 emitPushUpdateFrame sp e = do
3025 emitUpdateFrame sp mkUpdInfoLabel e
3026
3027 pushStackFrame :: [CmmParse CmmExpr] -> CmmParse () -> CmmParse ()
3028 pushStackFrame fields body = do
3029 profile <- getProfile
3030 exprs <- sequence fields
3031 updfr_off <- getUpdFrameOff
3032 let (new_updfr_off, _, g) = copyOutOflow profile NativeReturn Ret Old
3033 [] updfr_off exprs
3034 emit g
3035 withUpdFrameOff new_updfr_off body
3036
3037 reserveStackFrame
3038 :: CmmParse CmmExpr
3039 -> CmmParse CmmReg
3040 -> CmmParse ()
3041 -> CmmParse ()
3042 reserveStackFrame psize preg body = do
3043 platform <- getPlatform
3044 old_updfr_off <- getUpdFrameOff
3045 reg <- preg
3046 esize <- psize
3047 let size = case constantFoldExpr platform esize of
3048 CmmLit (CmmInt n _) -> n
3049 _other -> pprPanic "CmmParse: not a compile-time integer: "
3050 (pdoc platform esize)
3051 let frame = old_updfr_off + platformWordSizeInBytes platform * fromIntegral size
3052 emitAssign reg (CmmStackSlot Old frame)
3053 withUpdFrameOff frame body
3054
3055 profilingInfo profile desc_str ty_str
3056 = if not (profileIsProfiling profile)
3057 then NoProfilingInfo
3058 else ProfilingInfo (BS8.pack desc_str) (BS8.pack ty_str)
3059
3060 staticClosure :: UnitId -> FastString -> FastString -> [CmmLit] -> CmmParse ()
3061 staticClosure pkg cl_label info payload
3062 = do profile <- getProfile
3063 let lits = mkStaticClosure profile (mkCmmInfoLabel pkg info) dontCareCCS payload [] [] []
3064 code $ emitDataLits (mkCmmDataLabel pkg (NeedExternDecl True) cl_label) lits
3065
3066 foreignCall
3067 :: String
3068 -> [CmmParse (LocalReg, ForeignHint)]
3069 -> CmmParse CmmExpr
3070 -> [CmmParse (CmmExpr, ForeignHint)]
3071 -> Safety
3072 -> CmmReturnInfo
3073 -> PD (CmmParse ())
3074 foreignCall conv_string results_code expr_code args_code safety ret
3075 = do conv <- case conv_string of
3076 "C" -> return CCallConv
3077 "stdcall" -> return StdCallConv
3078 _ -> failMsgPD $ \span -> mkPlainErrorMsgEnvelope span $
3079 PsErrCmmParser (CmmUnknownCConv conv_string)
3080 return $ do
3081 platform <- getPlatform
3082 results <- sequence results_code
3083 expr <- expr_code
3084 args <- sequence args_code
3085 let
3086 expr' = adjCallTarget platform conv expr args
3087 (arg_exprs, arg_hints) = unzip args
3088 (res_regs, res_hints) = unzip results
3089 fc = ForeignConvention conv arg_hints res_hints ret
3090 target = ForeignTarget expr' fc
3091 _ <- code $ emitForeignCall safety res_regs target arg_exprs
3092 return ()
3093
3094
3095 doReturn :: [CmmParse CmmExpr] -> CmmParse ()
3096 doReturn exprs_code = do
3097 profile <- getProfile
3098 exprs <- sequence exprs_code
3099 updfr_off <- getUpdFrameOff
3100 emit (mkReturnSimple profile exprs updfr_off)
3101
3102 mkReturnSimple :: Profile -> [CmmActual] -> UpdFrameOffset -> CmmAGraph
3103 mkReturnSimple profile actuals updfr_off =
3104 mkReturn profile e actuals updfr_off
3105 where e = entryCode platform (CmmLoad (CmmStackSlot Old updfr_off)
3106 (gcWord platform))
3107 platform = profilePlatform profile
3108
3109 doRawJump :: CmmParse CmmExpr -> [GlobalReg] -> CmmParse ()
3110 doRawJump expr_code vols = do
3111 profile <- getProfile
3112 expr <- expr_code
3113 updfr_off <- getUpdFrameOff
3114 emit (mkRawJump profile expr updfr_off vols)
3115
3116 doJumpWithStack :: CmmParse CmmExpr -> [CmmParse CmmExpr]
3117 -> [CmmParse CmmExpr] -> CmmParse ()
3118 doJumpWithStack expr_code stk_code args_code = do
3119 profile <- getProfile
3120 expr <- expr_code
3121 stk_args <- sequence stk_code
3122 args <- sequence args_code
3123 updfr_off <- getUpdFrameOff
3124 emit (mkJumpExtra profile NativeNodeCall expr args updfr_off stk_args)
3125
3126 doCall :: CmmParse CmmExpr -> [CmmParse LocalReg] -> [CmmParse CmmExpr]
3127 -> CmmParse ()
3128 doCall expr_code res_code args_code = do
3129 expr <- expr_code
3130 args <- sequence args_code
3131 ress <- sequence res_code
3132 updfr_off <- getUpdFrameOff
3133 c <- code $ mkCall expr (NativeNodeCall,NativeReturn) ress args updfr_off []
3134 emit c
3135
3136 adjCallTarget :: Platform -> CCallConv -> CmmExpr -> [(CmmExpr, ForeignHint) ]
3137 -> CmmExpr
3138 -- On Windows, we have to add the '@N' suffix to the label when making
3139 -- a call with the stdcall calling convention.
3140 adjCallTarget platform StdCallConv (CmmLit (CmmLabel lbl)) args
3141 | platformOS platform == OSMinGW32
3142 = CmmLit (CmmLabel (addLabelSize lbl (sum (map size args))))
3143 where size (e, _) = max (platformWordSizeInBytes platform) (widthInBytes (typeWidth (cmmExprType platform e)))
3144 -- c.f. CgForeignCall.emitForeignCall
3145 adjCallTarget _ _ expr _
3146 = expr
3147
3148 primCall
3149 :: [CmmParse (CmmFormal, ForeignHint)]
3150 -> FastString
3151 -> [CmmParse CmmExpr]
3152 -> PD (CmmParse ())
3153 primCall results_code name args_code
3154 = do
3155 platform <- PD.getPlatform
3156 case lookupUFM (callishMachOps platform) name of
3157 Nothing -> failMsgPD $ \span -> mkPlainErrorMsgEnvelope span $ PsErrCmmParser (CmmUnknownPrimitive name)
3158 Just f -> return $ do
3159 results <- sequence results_code
3160 args <- sequence args_code
3161 let (p, args') = f args
3162 code (emitPrimCall (map fst results) p args')
3163
3164 doStore :: CmmType -> CmmParse CmmExpr -> CmmParse CmmExpr -> CmmParse ()
3165 doStore rep addr_code val_code
3166 = do platform <- getPlatform
3167 addr <- addr_code
3168 val <- val_code
3169 -- if the specified store type does not match the type of the expr
3170 -- on the rhs, then we insert a coercion that will cause the type
3171 -- mismatch to be flagged by cmm-lint. If we don't do this, then
3172 -- the store will happen at the wrong type, and the error will not
3173 -- be noticed.
3174 let val_width = typeWidth (cmmExprType platform val)
3175 rep_width = typeWidth rep
3176 let coerce_val
3177 | val_width /= rep_width = CmmMachOp (MO_UU_Conv val_width rep_width) [val]
3178 | otherwise = val
3179 emitStore addr coerce_val
3180
3181 -- -----------------------------------------------------------------------------
3182 -- If-then-else and boolean expressions
3183
3184 data BoolExpr
3185 = BoolExpr `BoolAnd` BoolExpr
3186 | BoolExpr `BoolOr` BoolExpr
3187 | BoolNot BoolExpr
3188 | BoolTest CmmExpr
3189
3190 -- ToDo: smart constructors which simplify the boolean expression.
3191
3192 cmmIfThenElse cond then_part else_part likely = do
3193 then_id <- newBlockId
3194 join_id <- newBlockId
3195 c <- cond
3196 emitCond c then_id likely
3197 else_part
3198 emit (mkBranch join_id)
3199 emitLabel then_id
3200 then_part
3201 -- fall through to join
3202 emitLabel join_id
3203
3204 cmmRawIf cond then_id likely = do
3205 c <- cond
3206 emitCond c then_id likely
3207
3208 -- 'emitCond cond true_id' emits code to test whether the cond is true,
3209 -- branching to true_id if so, and falling through otherwise.
3210 emitCond (BoolTest e) then_id likely = do
3211 else_id <- newBlockId
3212 emit (mkCbranch e then_id else_id likely)
3213 emitLabel else_id
3214 emitCond (BoolNot (BoolTest (CmmMachOp op args))) then_id likely
3215 | Just op' <- maybeInvertComparison op
3216 = emitCond (BoolTest (CmmMachOp op' args)) then_id (not <$> likely)
3217 emitCond (BoolNot e) then_id likely = do
3218 else_id <- newBlockId
3219 emitCond e else_id likely
3220 emit (mkBranch then_id)
3221 emitLabel else_id
3222 emitCond (e1 `BoolOr` e2) then_id likely = do
3223 emitCond e1 then_id likely
3224 emitCond e2 then_id likely
3225 emitCond (e1 `BoolAnd` e2) then_id likely = do
3226 -- we'd like to invert one of the conditionals here to avoid an
3227 -- extra branch instruction, but we can't use maybeInvertComparison
3228 -- here because we can't look too closely at the expression since
3229 -- we're in a loop.
3230 and_id <- newBlockId
3231 else_id <- newBlockId
3232 emitCond e1 and_id likely
3233 emit (mkBranch else_id)
3234 emitLabel and_id
3235 emitCond e2 then_id likely
3236 emitLabel else_id
3237
3238 -- -----------------------------------------------------------------------------
3239 -- Source code notes
3240
3241 -- | Generate a source note spanning from "a" to "b" (inclusive), then
3242 -- proceed with parsing. This allows debugging tools to reason about
3243 -- locations in Cmm code.
3244 withSourceNote :: Located a -> Located b -> CmmParse c -> CmmParse c
3245 withSourceNote a b parse = do
3246 name <- getName
3247 case combineSrcSpans (getLoc a) (getLoc b) of
3248 RealSrcSpan span _ -> code (emitTick (SourceNote span name)) >> parse
3249 _other -> parse
3250
3251 -- -----------------------------------------------------------------------------
3252 -- Table jumps
3253
3254 -- We use a simplified form of C-- switch statements for now. A
3255 -- switch statement always compiles to a table jump. Each arm can
3256 -- specify a list of values (not ranges), and there can be a single
3257 -- default branch. The range of the table is given either by the
3258 -- optional range on the switch (eg. switch [0..7] {...}), or by
3259 -- the minimum/maximum values from the branches.
3260
3261 doSwitch :: Maybe (Integer,Integer)
3262 -> CmmParse CmmExpr
3263 -> [([Integer],Either BlockId (CmmParse ()))]
3264 -> Maybe (CmmParse ()) -> CmmParse ()
3265 doSwitch mb_range scrut arms deflt
3266 = do
3267 -- Compile code for the default branch
3268 dflt_entry <-
3269 case deflt of
3270 Nothing -> return Nothing
3271 Just e -> do b <- forkLabelledCode e; return (Just b)
3272
3273 -- Compile each case branch
3274 table_entries <- mapM emitArm arms
3275 let table = M.fromList (concat table_entries)
3276
3277 platform <- getPlatform
3278 let range = fromMaybe (0, platformMaxWord platform) mb_range
3279
3280 expr <- scrut
3281 -- ToDo: check for out of range and jump to default if necessary
3282 emit $ mkSwitch expr (mkSwitchTargets False range dflt_entry table)
3283 where
3284 emitArm :: ([Integer],Either BlockId (CmmParse ())) -> CmmParse [(Integer,BlockId)]
3285 emitArm (ints,Left blockid) = return [ (i,blockid) | i <- ints ]
3286 emitArm (ints,Right code) = do
3287 blockid <- forkLabelledCode code
3288 return [ (i,blockid) | i <- ints ]
3289
3290 forkLabelledCode :: CmmParse () -> CmmParse BlockId
3291 forkLabelledCode p = do
3292 (_,ag) <- getCodeScoped p
3293 l <- newBlockId
3294 emitOutOfLine l ag
3295 return l
3296
3297 -- -----------------------------------------------------------------------------
3298 -- Putting it all together
3299
3300 -- The initial environment: we define some constants that the compiler
3301 -- knows about here.
3302 initEnv :: Profile -> Env
3303 initEnv profile = listToUFM [
3304 ( fsLit "SIZEOF_StgHeader",
3305 VarN (CmmLit (CmmInt (fromIntegral (fixedHdrSize profile)) (wordWidth platform)) )),
3306 ( fsLit "SIZEOF_StgInfoTable",
3307 VarN (CmmLit (CmmInt (fromIntegral (stdInfoTableSizeB profile)) (wordWidth platform)) ))
3308 ]
3309 where platform = profilePlatform profile
3310
3311
3312 parseCmmFile :: DynFlags
3313 -> Module
3314 -> HomeUnit
3315 -> FilePath
3316 -> IO (Messages PsMessage, Messages PsMessage, Maybe (CmmGroup, [InfoProvEnt]))
3317 parseCmmFile dflags this_mod home_unit filename = do
3318 buf <- hGetStringBuffer filename
3319 let
3320 init_loc = mkRealSrcLoc (mkFastString filename) 1 1
3321 opts = initParserOpts dflags
3322 init_state = (initParserState opts buf init_loc) { lex_state = [0] }
3323 -- reset the lex_state: the Lexer monad leaves some stuff
3324 -- in there we don't want.
3325 case unPD cmmParse dflags home_unit init_state of
3326 PFailed pst -> do
3327 let (warnings,errors) = getPsMessages pst
3328 return (warnings, errors, Nothing)
3329 POk pst code -> do
3330 st <- initC
3331 let fcode = do
3332 ((), cmm) <- getCmm $ unEC code "global" (initEnv (targetProfile dflags)) [] >> return ()
3333 let used_info = map (cmmInfoTableToInfoProvEnt this_mod)
3334 (mapMaybe topInfoTable cmm)
3335 ((), cmm2) <- getCmm $ mapM_ emitInfoTableProv used_info
3336 return (cmm ++ cmm2, used_info)
3337 (cmm, _) = runC dflags no_module st fcode
3338 (warnings,errors) = getPsMessages pst
3339 if not (isEmptyMessages errors)
3340 then return (warnings, errors, Nothing)
3341 else return (warnings, errors, Just cmm)
3342 where
3343 no_module = panic "parseCmmFile: no module"
3344 {-# LINE 1 "templates/GenericTemplate.hs" #-}
3345 -- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359 -- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.
3360 #if __GLASGOW_HASKELL__ > 706
3361 #define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Prelude.Bool)
3362 #define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Prelude.Bool)
3363 #define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Prelude.Bool)
3364 #else
3365 #define LT(n,m) (n Happy_GHC_Exts.<# m)
3366 #define GTE(n,m) (n Happy_GHC_Exts.>=# m)
3367 #define EQ(n,m) (n Happy_GHC_Exts.==# m)
3368 #endif
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388 data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429 infixr 9 `HappyStk`
3430 data HappyStk a = HappyStk a (HappyStk a)
3431
3432 -----------------------------------------------------------------------------
3433 -- starting the parse
3434
3435 happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
3436
3437 -----------------------------------------------------------------------------
3438 -- Accepting the parse
3439
3440 -- If the current token is ERROR_TOK, it means we've just accepted a partial
3441 -- parse (a %partial parser). We must ignore the saved token on the top of
3442 -- the stack in this case.
3443 happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
3444 happyReturn1 ans
3445 happyAccept j tk st sts (HappyStk ans _) =
3446 (happyTcHack j (happyTcHack st)) (happyReturn1 ans)
3447
3448 -----------------------------------------------------------------------------
3449 -- Arrays only: do the next action
3450
3451
3452
3453 happyDoAction i tk st
3454 = {- nothing -}
3455 case action of
3456 0# -> {- nothing -}
3457 happyFail (happyExpListPerState ((Happy_GHC_Exts.I# (st)) :: Prelude.Int)) i tk st
3458 -1# -> {- nothing -}
3459 happyAccept i tk st
3460 n | LT(n,(0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
3461 (happyReduceArr Happy_Data_Array.! rule) i tk st
3462 where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
3463 n -> {- nothing -}
3464 happyShift new_state i tk st
3465 where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
3466 where off = happyAdjustOffset (indexShortOffAddr happyActOffsets st)
3467 off_i = (off Happy_GHC_Exts.+# i)
3468 check = if GTE(off_i,(0# :: Happy_GHC_Exts.Int#))
3469 then EQ(indexShortOffAddr happyCheck off_i, i)
3470 else Prelude.False
3471 action
3472 | check = indexShortOffAddr happyTable off_i
3473 | Prelude.otherwise = indexShortOffAddr happyDefActions st
3474
3475
3476
3477
3478 indexShortOffAddr (HappyA# arr) off =
3479 Happy_GHC_Exts.narrow16Int# i
3480 where
3481 i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
3482 high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
3483 low = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
3484 off' = off Happy_GHC_Exts.*# 2#
3485
3486
3487
3488
3489 {-# INLINE happyLt #-}
3490 happyLt x y = LT(x,y)
3491
3492
3493 readArrayBit arr bit =
3494 Bits.testBit (Happy_GHC_Exts.I# (indexShortOffAddr arr ((unbox_int bit) `Happy_GHC_Exts.iShiftRA#` 4#))) (bit `Prelude.mod` 16)
3495 where unbox_int (Happy_GHC_Exts.I# x) = x
3496
3497
3498
3499
3500
3501
3502 data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
3503
3504
3505 -----------------------------------------------------------------------------
3506 -- HappyState data type (not arrays)
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520 -----------------------------------------------------------------------------
3521 -- Shifting a token
3522
3523 happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
3524 let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
3525 -- trace "shifting the error token" $
3526 happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
3527
3528 happyShift new_state i tk st sts stk =
3529 happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
3530
3531 -- happyReduce is specialised for the common cases.
3532
3533 happySpecReduce_0 i fn 0# tk st sts stk
3534 = happyFail [] 0# tk st sts stk
3535 happySpecReduce_0 nt fn j tk st@((action)) sts stk
3536 = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
3537
3538 happySpecReduce_1 i fn 0# tk st sts stk
3539 = happyFail [] 0# tk st sts stk
3540 happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
3541 = let r = fn v1 in
3542 happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
3543
3544 happySpecReduce_2 i fn 0# tk st sts stk
3545 = happyFail [] 0# tk st sts stk
3546 happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
3547 = let r = fn v1 v2 in
3548 happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
3549
3550 happySpecReduce_3 i fn 0# tk st sts stk
3551 = happyFail [] 0# tk st sts stk
3552 happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
3553 = let r = fn v1 v2 v3 in
3554 happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
3555
3556 happyReduce k i fn 0# tk st sts stk
3557 = happyFail [] 0# tk st sts stk
3558 happyReduce k nt fn j tk st sts stk
3559 = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
3560 sts1@((HappyCons (st1@(action)) (_))) ->
3561 let r = fn stk in -- it doesn't hurt to always seq here...
3562 happyDoSeq r (happyGoto nt j tk st1 sts1 r)
3563
3564 happyMonadReduce k nt fn 0# tk st sts stk
3565 = happyFail [] 0# tk st sts stk
3566 happyMonadReduce k nt fn j tk st sts stk =
3567 case happyDrop k (HappyCons (st) (sts)) of
3568 sts1@((HappyCons (st1@(action)) (_))) ->
3569 let drop_stk = happyDropStk k stk in
3570 happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
3571
3572 happyMonad2Reduce k nt fn 0# tk st sts stk
3573 = happyFail [] 0# tk st sts stk
3574 happyMonad2Reduce k nt fn j tk st sts stk =
3575 case happyDrop k (HappyCons (st) (sts)) of
3576 sts1@((HappyCons (st1@(action)) (_))) ->
3577 let drop_stk = happyDropStk k stk
3578
3579 off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st1)
3580 off_i = (off Happy_GHC_Exts.+# nt)
3581 new_state = indexShortOffAddr happyTable off_i
3582
3583
3584
3585
3586 in
3587 happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
3588
3589 happyDrop 0# l = l
3590 happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
3591
3592 happyDropStk 0# l = l
3593 happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
3594
3595 -----------------------------------------------------------------------------
3596 -- Moving to a new state after a reduction
3597
3598
3599 happyGoto nt j tk st =
3600 {- nothing -}
3601 happyDoAction j tk new_state
3602 where off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st)
3603 off_i = (off Happy_GHC_Exts.+# nt)
3604 new_state = indexShortOffAddr happyTable off_i
3605
3606
3607
3608
3609 -----------------------------------------------------------------------------
3610 -- Error recovery (ERROR_TOK is the error token)
3611
3612 -- parse error if we are in recovery and we fail again
3613 happyFail explist 0# tk old_st _ stk@(x `HappyStk` _) =
3614 let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
3615 -- trace "failing" $
3616 happyError_ explist i tk
3617
3618 {- We don't need state discarding for our restricted implementation of
3619 "error". In fact, it can cause some bogus parses, so I've disabled it
3620 for now --SDM
3621
3622 -- discard a state
3623 happyFail ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts)
3624 (saved_tok `HappyStk` _ `HappyStk` stk) =
3625 -- trace ("discarding state, depth " ++ show (length stk)) $
3626 DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk))
3627 -}
3628
3629 -- Enter error recovery: generate an error token,
3630 -- save the old token and carry on.
3631 happyFail explist i tk (action) sts stk =
3632 -- trace "entering error recovery" $
3633 happyDoAction 0# tk action sts ((Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
3634
3635 -- Internal happy errors:
3636
3637 notHappyAtAll :: a
3638 notHappyAtAll = Prelude.error "Internal Happy error\n"
3639
3640 -----------------------------------------------------------------------------
3641 -- Hack to get the typechecker to accept our action functions
3642
3643
3644 happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
3645 happyTcHack x y = y
3646 {-# INLINE happyTcHack #-}
3647
3648
3649 -----------------------------------------------------------------------------
3650 -- Seq-ing. If the --strict flag is given, then Happy emits
3651 -- happySeq = happyDoSeq
3652 -- otherwise it emits
3653 -- happySeq = happyDontSeq
3654
3655 happyDoSeq, happyDontSeq :: a -> b -> b
3656 happyDoSeq a b = a `Prelude.seq` b
3657 happyDontSeq a b = b
3658
3659 -----------------------------------------------------------------------------
3660 -- Don't inline any functions from the template. GHC has a nasty habit
3661 -- of deciding to inline happyGoto everywhere, which increases the size of
3662 -- the generated parser quite a bit.
3663
3664
3665 {-# NOINLINE happyDoAction #-}
3666 {-# NOINLINE happyTable #-}
3667 {-# NOINLINE happyCheck #-}
3668 {-# NOINLINE happyActOffsets #-}
3669 {-# NOINLINE happyGotoOffsets #-}
3670 {-# NOINLINE happyDefActions #-}
3671
3672 {-# NOINLINE happyShift #-}
3673 {-# NOINLINE happySpecReduce_0 #-}
3674 {-# NOINLINE happySpecReduce_1 #-}
3675 {-# NOINLINE happySpecReduce_2 #-}
3676 {-# NOINLINE happySpecReduce_3 #-}
3677 {-# NOINLINE happyReduce #-}
3678 {-# NOINLINE happyMonadReduce #-}
3679 {-# NOINLINE happyGoto #-}
3680 {-# NOINLINE happyFail #-}
3681
3682 -- end of Happy Template.