{-# OPTIONS_GHC -w #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE PatternGuards #-}
{-# LANGUAGE NoStrictData #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE PartialTypeSignatures #-}
#if __GLASGOW_HASKELL__ >= 710
{-# LANGUAGE PartialTypeSignatures #-}
#endif
{-# OPTIONS_GHC -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-}
{-# LANGUAGE PatternSynonyms #-}

module BNFC.Par
  ( happyError
  , myLexer
  , pGrammar
  , pListDef
  , pDef
  , pItem
  , pListItem
  , pCat
  , pListCat
  , pLabel
  , pArg
  , pListArg
  , pSeparation
  , pListString
  , pExp
  , pExp1
  , pExp2
  , pListExp
  , pListExp2
  , pRHS
  , pListRHS
  , pMinimumSize
  , pReg
  , pReg1
  , pReg2
  , pReg3
  ) where

import Prelude

import qualified BNFC.Abs
import BNFC.Lex
import qualified Data.Function as Happy_Prelude
import qualified Data.Bool as Happy_Prelude
import qualified Data.Function as Happy_Prelude
import qualified Data.Maybe as Happy_Prelude
import qualified Data.Int as Happy_Prelude
import qualified Data.String as Happy_Prelude
import qualified Data.Tuple as Happy_Prelude
import qualified Data.List as Happy_Prelude
import qualified Control.Monad as Happy_Prelude
import qualified Text.Show as Happy_Prelude
import qualified GHC.Num as Happy_Prelude
import qualified GHC.Err as Happy_Prelude
import qualified Data.Array as Happy_Data_Array
import qualified Data.Bits as Bits
import qualified GHC.Exts as Happy_GHC_Exts
import Control.Applicative(Applicative(..))
import Control.Monad (ap)

-- parser produced by Happy Version 2.1.5

newtype HappyAbsSyn  = HappyAbsSyn HappyAny
#if __GLASGOW_HASKELL__ >= 607
type HappyAny = Happy_GHC_Exts.Any
#else
type HappyAny = forall a . a
#endif
newtype HappyWrap28 = HappyWrap28 (Char)
happyIn28 :: (Char) -> (HappyAbsSyn )
happyIn28 :: Char -> HappyAbsSyn
happyIn28 Char
x = HappyWrap28 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Char -> HappyWrap28
HappyWrap28 Char
x)
{-# INLINE happyIn28 #-}
happyOut28 :: (HappyAbsSyn ) -> HappyWrap28
happyOut28 :: HappyAbsSyn -> HappyWrap28
happyOut28 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap28
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut28 #-}
newtype HappyWrap29 = HappyWrap29 (Double)
happyIn29 :: (Double) -> (HappyAbsSyn )
happyIn29 :: Double -> HappyAbsSyn
happyIn29 Double
x = HappyWrap29 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Double -> HappyWrap29
HappyWrap29 Double
x)
{-# INLINE happyIn29 #-}
happyOut29 :: (HappyAbsSyn ) -> HappyWrap29
happyOut29 :: HappyAbsSyn -> HappyWrap29
happyOut29 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap29
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut29 #-}
newtype HappyWrap30 = HappyWrap30 (Integer)
happyIn30 :: (Integer) -> (HappyAbsSyn )
happyIn30 :: Integer -> HappyAbsSyn
happyIn30 Integer
x = HappyWrap30 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Integer -> HappyWrap30
HappyWrap30 Integer
x)
{-# INLINE happyIn30 #-}
happyOut30 :: (HappyAbsSyn ) -> HappyWrap30
happyOut30 :: HappyAbsSyn -> HappyWrap30
happyOut30 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap30
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut30 #-}
newtype HappyWrap31 = HappyWrap31 (String)
happyIn31 :: (String) -> (HappyAbsSyn )
happyIn31 :: String -> HappyAbsSyn
happyIn31 String
x = HappyWrap31 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (String -> HappyWrap31
HappyWrap31 String
x)
{-# INLINE happyIn31 #-}
happyOut31 :: (HappyAbsSyn ) -> HappyWrap31
happyOut31 :: HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap31
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut31 #-}
newtype HappyWrap32 = HappyWrap32 (BNFC.Abs.Identifier)
happyIn32 :: (BNFC.Abs.Identifier) -> (HappyAbsSyn )
happyIn32 :: Identifier -> HappyAbsSyn
happyIn32 Identifier
x = HappyWrap32 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Identifier -> HappyWrap32
HappyWrap32 Identifier
x)
{-# INLINE happyIn32 #-}
happyOut32 :: (HappyAbsSyn ) -> HappyWrap32
happyOut32 :: HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap32
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut32 #-}
newtype HappyWrap33 = HappyWrap33 (BNFC.Abs.Grammar)
happyIn33 :: (BNFC.Abs.Grammar) -> (HappyAbsSyn )
happyIn33 :: Grammar -> HappyAbsSyn
happyIn33 Grammar
x = HappyWrap33 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Grammar -> HappyWrap33
HappyWrap33 Grammar
x)
{-# INLINE happyIn33 #-}
happyOut33 :: (HappyAbsSyn ) -> HappyWrap33
happyOut33 :: HappyAbsSyn -> HappyWrap33
happyOut33 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap33
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut33 #-}
newtype HappyWrap34 = HappyWrap34 ([BNFC.Abs.Def])
happyIn34 :: ([BNFC.Abs.Def]) -> (HappyAbsSyn )
happyIn34 :: [Def] -> HappyAbsSyn
happyIn34 [Def]
x = HappyWrap34 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Def] -> HappyWrap34
HappyWrap34 [Def]
x)
{-# INLINE happyIn34 #-}
happyOut34 :: (HappyAbsSyn ) -> HappyWrap34
happyOut34 :: HappyAbsSyn -> HappyWrap34
happyOut34 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap34
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut34 #-}
newtype HappyWrap35 = HappyWrap35 (BNFC.Abs.Def)
happyIn35 :: (BNFC.Abs.Def) -> (HappyAbsSyn )
happyIn35 :: Def -> HappyAbsSyn
happyIn35 Def
x = HappyWrap35 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Def -> HappyWrap35
HappyWrap35 Def
x)
{-# INLINE happyIn35 #-}
happyOut35 :: (HappyAbsSyn ) -> HappyWrap35
happyOut35 :: HappyAbsSyn -> HappyWrap35
happyOut35 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap35
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut35 #-}
newtype HappyWrap36 = HappyWrap36 (BNFC.Abs.Item)
happyIn36 :: (BNFC.Abs.Item) -> (HappyAbsSyn )
happyIn36 :: Item -> HappyAbsSyn
happyIn36 Item
x = HappyWrap36 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Item -> HappyWrap36
HappyWrap36 Item
x)
{-# INLINE happyIn36 #-}
happyOut36 :: (HappyAbsSyn ) -> HappyWrap36
happyOut36 :: HappyAbsSyn -> HappyWrap36
happyOut36 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap36
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut36 #-}
newtype HappyWrap37 = HappyWrap37 ([BNFC.Abs.Item])
happyIn37 :: ([BNFC.Abs.Item]) -> (HappyAbsSyn )
happyIn37 :: [Item] -> HappyAbsSyn
happyIn37 [Item]
x = HappyWrap37 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Item] -> HappyWrap37
HappyWrap37 [Item]
x)
{-# INLINE happyIn37 #-}
happyOut37 :: (HappyAbsSyn ) -> HappyWrap37
happyOut37 :: HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap37
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut37 #-}
newtype HappyWrap38 = HappyWrap38 (BNFC.Abs.Cat)
happyIn38 :: (BNFC.Abs.Cat) -> (HappyAbsSyn )
happyIn38 :: Cat -> HappyAbsSyn
happyIn38 Cat
x = HappyWrap38 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Cat -> HappyWrap38
HappyWrap38 Cat
x)
{-# INLINE happyIn38 #-}
happyOut38 :: (HappyAbsSyn ) -> HappyWrap38
happyOut38 :: HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap38
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut38 #-}
newtype HappyWrap39 = HappyWrap39 ([BNFC.Abs.Cat])
happyIn39 :: ([BNFC.Abs.Cat]) -> (HappyAbsSyn )
happyIn39 :: [Cat] -> HappyAbsSyn
happyIn39 [Cat]
x = HappyWrap39 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Cat] -> HappyWrap39
HappyWrap39 [Cat]
x)
{-# INLINE happyIn39 #-}
happyOut39 :: (HappyAbsSyn ) -> HappyWrap39
happyOut39 :: HappyAbsSyn -> HappyWrap39
happyOut39 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap39
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut39 #-}
newtype HappyWrap40 = HappyWrap40 (BNFC.Abs.Label)
happyIn40 :: (BNFC.Abs.Label) -> (HappyAbsSyn )
happyIn40 :: Label -> HappyAbsSyn
happyIn40 Label
x = HappyWrap40 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Label -> HappyWrap40
HappyWrap40 Label
x)
{-# INLINE happyIn40 #-}
happyOut40 :: (HappyAbsSyn ) -> HappyWrap40
happyOut40 :: HappyAbsSyn -> HappyWrap40
happyOut40 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap40
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut40 #-}
newtype HappyWrap41 = HappyWrap41 (BNFC.Abs.Arg)
happyIn41 :: (BNFC.Abs.Arg) -> (HappyAbsSyn )
happyIn41 :: Arg -> HappyAbsSyn
happyIn41 Arg
x = HappyWrap41 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Arg -> HappyWrap41
HappyWrap41 Arg
x)
{-# INLINE happyIn41 #-}
happyOut41 :: (HappyAbsSyn ) -> HappyWrap41
happyOut41 :: HappyAbsSyn -> HappyWrap41
happyOut41 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap41
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut41 #-}
newtype HappyWrap42 = HappyWrap42 ([BNFC.Abs.Arg])
happyIn42 :: ([BNFC.Abs.Arg]) -> (HappyAbsSyn )
happyIn42 :: [Arg] -> HappyAbsSyn
happyIn42 [Arg]
x = HappyWrap42 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Arg] -> HappyWrap42
HappyWrap42 [Arg]
x)
{-# INLINE happyIn42 #-}
happyOut42 :: (HappyAbsSyn ) -> HappyWrap42
happyOut42 :: HappyAbsSyn -> HappyWrap42
happyOut42 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap42
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut42 #-}
newtype HappyWrap43 = HappyWrap43 (BNFC.Abs.Separation)
happyIn43 :: (BNFC.Abs.Separation) -> (HappyAbsSyn )
happyIn43 :: Separation -> HappyAbsSyn
happyIn43 Separation
x = HappyWrap43 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Separation -> HappyWrap43
HappyWrap43 Separation
x)
{-# INLINE happyIn43 #-}
happyOut43 :: (HappyAbsSyn ) -> HappyWrap43
happyOut43 :: HappyAbsSyn -> HappyWrap43
happyOut43 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap43
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut43 #-}
newtype HappyWrap44 = HappyWrap44 ([String])
happyIn44 :: ([String]) -> (HappyAbsSyn )
happyIn44 :: [String] -> HappyAbsSyn
happyIn44 [String]
x = HappyWrap44 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([String] -> HappyWrap44
HappyWrap44 [String]
x)
{-# INLINE happyIn44 #-}
happyOut44 :: (HappyAbsSyn ) -> HappyWrap44
happyOut44 :: HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap44
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut44 #-}
newtype HappyWrap45 = HappyWrap45 (BNFC.Abs.Exp)
happyIn45 :: (BNFC.Abs.Exp) -> (HappyAbsSyn )
happyIn45 :: Exp -> HappyAbsSyn
happyIn45 Exp
x = HappyWrap45 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Exp -> HappyWrap45
HappyWrap45 Exp
x)
{-# INLINE happyIn45 #-}
happyOut45 :: (HappyAbsSyn ) -> HappyWrap45
happyOut45 :: HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap45
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut45 #-}
newtype HappyWrap46 = HappyWrap46 (BNFC.Abs.Exp)
happyIn46 :: (BNFC.Abs.Exp) -> (HappyAbsSyn )
happyIn46 :: Exp -> HappyAbsSyn
happyIn46 Exp
x = HappyWrap46 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Exp -> HappyWrap46
HappyWrap46 Exp
x)
{-# INLINE happyIn46 #-}
happyOut46 :: (HappyAbsSyn ) -> HappyWrap46
happyOut46 :: HappyAbsSyn -> HappyWrap46
happyOut46 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap46
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut46 #-}
newtype HappyWrap47 = HappyWrap47 (BNFC.Abs.Exp)
happyIn47 :: (BNFC.Abs.Exp) -> (HappyAbsSyn )
happyIn47 :: Exp -> HappyAbsSyn
happyIn47 Exp
x = HappyWrap47 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Exp -> HappyWrap47
HappyWrap47 Exp
x)
{-# INLINE happyIn47 #-}
happyOut47 :: (HappyAbsSyn ) -> HappyWrap47
happyOut47 :: HappyAbsSyn -> HappyWrap47
happyOut47 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap47
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut47 #-}
newtype HappyWrap48 = HappyWrap48 ([BNFC.Abs.Exp])
happyIn48 :: ([BNFC.Abs.Exp]) -> (HappyAbsSyn )
happyIn48 :: [Exp] -> HappyAbsSyn
happyIn48 [Exp]
x = HappyWrap48 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Exp] -> HappyWrap48
HappyWrap48 [Exp]
x)
{-# INLINE happyIn48 #-}
happyOut48 :: (HappyAbsSyn ) -> HappyWrap48
happyOut48 :: HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap48
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut48 #-}
newtype HappyWrap49 = HappyWrap49 ([BNFC.Abs.Exp])
happyIn49 :: ([BNFC.Abs.Exp]) -> (HappyAbsSyn )
happyIn49 :: [Exp] -> HappyAbsSyn
happyIn49 [Exp]
x = HappyWrap49 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Exp] -> HappyWrap49
HappyWrap49 [Exp]
x)
{-# INLINE happyIn49 #-}
happyOut49 :: (HappyAbsSyn ) -> HappyWrap49
happyOut49 :: HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap49
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut49 #-}
newtype HappyWrap50 = HappyWrap50 (BNFC.Abs.RHS)
happyIn50 :: (BNFC.Abs.RHS) -> (HappyAbsSyn )
happyIn50 :: RHS -> HappyAbsSyn
happyIn50 RHS
x = HappyWrap50 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (RHS -> HappyWrap50
HappyWrap50 RHS
x)
{-# INLINE happyIn50 #-}
happyOut50 :: (HappyAbsSyn ) -> HappyWrap50
happyOut50 :: HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap50
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut50 #-}
newtype HappyWrap51 = HappyWrap51 ([BNFC.Abs.RHS])
happyIn51 :: ([BNFC.Abs.RHS]) -> (HappyAbsSyn )
happyIn51 :: [RHS] -> HappyAbsSyn
happyIn51 [RHS]
x = HappyWrap51 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([RHS] -> HappyWrap51
HappyWrap51 [RHS]
x)
{-# INLINE happyIn51 #-}
happyOut51 :: (HappyAbsSyn ) -> HappyWrap51
happyOut51 :: HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap51
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut51 #-}
newtype HappyWrap52 = HappyWrap52 (BNFC.Abs.MinimumSize)
happyIn52 :: (BNFC.Abs.MinimumSize) -> (HappyAbsSyn )
happyIn52 :: MinimumSize -> HappyAbsSyn
happyIn52 MinimumSize
x = HappyWrap52 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (MinimumSize -> HappyWrap52
HappyWrap52 MinimumSize
x)
{-# INLINE happyIn52 #-}
happyOut52 :: (HappyAbsSyn ) -> HappyWrap52
happyOut52 :: HappyAbsSyn -> HappyWrap52
happyOut52 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap52
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut52 #-}
newtype HappyWrap53 = HappyWrap53 (BNFC.Abs.Reg)
happyIn53 :: (BNFC.Abs.Reg) -> (HappyAbsSyn )
happyIn53 :: Reg -> HappyAbsSyn
happyIn53 Reg
x = HappyWrap53 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Reg -> HappyWrap53
HappyWrap53 Reg
x)
{-# INLINE happyIn53 #-}
happyOut53 :: (HappyAbsSyn ) -> HappyWrap53
happyOut53 :: HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap53
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut53 #-}
newtype HappyWrap54 = HappyWrap54 (BNFC.Abs.Reg)
happyIn54 :: (BNFC.Abs.Reg) -> (HappyAbsSyn )
happyIn54 :: Reg -> HappyAbsSyn
happyIn54 Reg
x = HappyWrap54 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Reg -> HappyWrap54
HappyWrap54 Reg
x)
{-# INLINE happyIn54 #-}
happyOut54 :: (HappyAbsSyn ) -> HappyWrap54
happyOut54 :: HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap54
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut54 #-}
newtype HappyWrap55 = HappyWrap55 (BNFC.Abs.Reg)
happyIn55 :: (BNFC.Abs.Reg) -> (HappyAbsSyn )
happyIn55 :: Reg -> HappyAbsSyn
happyIn55 Reg
x = HappyWrap55 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Reg -> HappyWrap55
HappyWrap55 Reg
x)
{-# INLINE happyIn55 #-}
happyOut55 :: (HappyAbsSyn ) -> HappyWrap55
happyOut55 :: HappyAbsSyn -> HappyWrap55
happyOut55 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap55
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut55 #-}
newtype HappyWrap56 = HappyWrap56 (BNFC.Abs.Reg)
happyIn56 :: (BNFC.Abs.Reg) -> (HappyAbsSyn )
happyIn56 :: Reg -> HappyAbsSyn
happyIn56 Reg
x = HappyWrap56 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Reg -> HappyWrap56
HappyWrap56 Reg
x)
{-# INLINE happyIn56 #-}
happyOut56 :: (HappyAbsSyn ) -> HappyWrap56
happyOut56 :: HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap56
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut56 #-}
happyInTok :: (Token) -> (HappyAbsSyn )
happyInTok :: Token -> HappyAbsSyn
happyInTok Token
x = Token -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# Token
x
{-# INLINE happyInTok #-}
happyOutTok :: (HappyAbsSyn ) -> (Token)
happyOutTok :: HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
x = HappyAbsSyn -> Token
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOutTok #-}


{-# NOINLINE happyTokenStrings #-}
happyTokenStrings :: [String]
happyTokenStrings = [String
"'('",String
"')'",String
"'*'",String
"'+'",String
"','",String
"'-'",String
"'.'",String
"':'",String
"'::='",String
"';'",String
"'='",String
"'?'",String
"'['",String
"']'",String
"'_'",String
"'char'",String
"'coercions'",String
"'comment'",String
"'define'",String
"'delimiters'",String
"'digit'",String
"'entrypoints'",String
"'eps'",String
"'internal'",String
"'layout'",String
"'letter'",String
"'lower'",String
"'nonempty'",String
"'position'",String
"'rules'",String
"'separator'",String
"'stop'",String
"'terminator'",String
"'token'",String
"'toplevel'",String
"'upper'",String
"'{'",String
"'|'",String
"'}'",String
"L_charac",String
"L_doubl",String
"L_integ",String
"L_quoted",String
"L_Identifier",String
"%eof"]

happyActOffsets :: HappyAddr
happyActOffsets :: HappyAddr
happyActOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\x1c\x00\x00\x00\x1c\x00\x00\x00\x3e\x00\x00\x00\xf4\xff\xff\xff\xf4\xff\xff\xff\xf5\xff\xff\xff\xf5\xff\xff\xff\x29\x00\x00\x00\xe1\xff\xff\xff\xe1\xff\xff\xff\x80\x00\x00\x00\xde\xff\xff\xff\x1b\x00\x00\x00\x1b\x00\x00\x00\x1b\x00\x00\x00\x1b\x00\x00\x00\x1b\x00\x00\x00\xf4\xff\xff\xff\xf4\xff\xff\xff\x2d\x00\x00\x00\x57\x00\x00\x00\x57\x00\x00\x00\x57\x00\x00\x00\x57\x00\x00\x00\xf6\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x57\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\xff\xff\xff\xff\xb4\x00\x00\x00\x0f\x00\x00\x00\x57\x00\x00\x00\xdd\xff\xff\xff\x46\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x49\x00\x00\x00\x51\x00\x00\x00\xf5\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x51\x00\x00\x00\x1b\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x4e\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x58\x00\x00\x00\x58\x00\x00\x00\x58\x00\x00\x00\x58\x00\x00\x00\x9f\x00\x00\x00\x89\x00\x00\x00\x89\x00\x00\x00\x92\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\xae\x00\x00\x00\xaf\x00\x00\x00\xaf\x00\x00\x00\x00\x00\x00\x00\xaf\x00\x00\x00\xd7\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x00\x00\xe1\x00\x00\x00\xd1\x00\x00\x00\xd1\x00\x00\x00\xd1\x00\x00\x00\xd1\x00\x00\x00\xd1\x00\x00\x00\x0b\x01\x00\x00\xe7\x00\x00\x00\xfd\x00\x00\x00\x10\x01\x00\x00\xf5\xff\xff\xff\xf5\xff\xff\xff\x29\x00\x00\x00\x83\x00\x00\x00\x21\x01\x00\x00\x1f\x01\x00\x00\x44\x01\x00\x00\x44\x01\x00\x00\x2a\x01\x00\x00\x40\x01\x00\x00\x62\x01\x00\x00\x1c\x00\x00\x00\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x57\x00\x00\x00\xf5\xff\xff\xff\xf5\xff\xff\xff\x69\x01\x00\x00\x48\x01\x00\x00\x00\x00\x00\x00\x4b\x01\x00\x00\x00\x00\x00\x00\x6c\x01\x00\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x49\x01\x00\x00\x4d\x01\x00\x00\x4f\x01\x00\x00\xf5\xff\xff\xff\xf5\xff\xff\xff\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x01\x00\x00\x1b\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x6e\x01\x00\x00\x78\x01\x00\x00\x00\x00\x00\x00\x6f\x01\x00\x00\xf4\xff\xff\xff\x00\x00\x00\x00\x57\x00\x00\x00\x57\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x01\x00\x00\x71\x01\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x01\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x01\x00\x00\x58\x01\x00\x00\xf5\xff\xff\xff\x00\x00\x00\x00\x57\x00\x00\x00\xf4\xff\xff\xff\x58\x01\x00\x00\x58\x01\x00\x00\x61\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x01\x00\x00\x7c\x01\x00\x00\x80\x00\x00\x00\x1b\x00\x00\x00\xf4\xff\xff\xff\x82\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x01\x00\x00\xf4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#

happyGotoOffsets :: HappyAddr
happyGotoOffsets :: HappyAddr
happyGotoOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\xf4\x00\x00\x00\x26\x01\x00\x00\x3a\x01\x00\x00\x55\x01\x00\x00\x3f\x01\x00\x00\x2f\x01\x00\x00\x24\x01\x00\x00\x5e\x00\x00\x00\xc9\x00\x00\x00\xb2\x00\x00\x00\x7d\x01\x00\x00\x02\x00\x00\x00\xeb\x00\x00\x00\x0e\x01\x00\x00\x22\x01\x00\x00\xa9\x00\x00\x00\x8e\x00\x00\x00\x15\x01\x00\x00\xc8\x00\x00\x00\x75\x01\x00\x00\x5b\x00\x00\x00\x71\x00\x00\x00\x26\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x86\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\x88\x01\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\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\x93\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x01\x00\x00\x8c\x01\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x01\x00\x00\x8f\x01\x00\x00\x90\x01\x00\x00\x5e\x01\x00\x00\x5a\x01\x00\x00\x60\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x91\x01\x00\x00\x7e\x01\x00\x00\x7f\x01\x00\x00\x94\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x01\x00\x00\x69\x00\x00\x00\x5f\x01\x00\x00\x66\x01\x00\x00\x00\x00\x00\x00\x95\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x01\x00\x00\x23\x01\x00\x00\x98\x01\x00\x00\x8e\x01\x00\x00\x67\x01\x00\x00\x5c\x01\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\x04\x01\x00\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x01\x00\x00\x68\x01\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\xe0\x00\x00\x00\x9a\x01\x00\x00\x9b\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\x84\x01\x00\x00\x09\x01\x00\x00\x4a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x01\x00\x00\x52\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#

happyDefActions :: HappyAddr
happyDefActions :: HappyAddr
happyDefActions = Addr# -> HappyAddr
HappyA# Addr#
"\xe1\xff\xff\xff\xe1\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xff\xff\x00\x00\x00\x00\xc7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbe\xff\xff\xff\xbc\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\xff\xff\xff\x00\x00\x00\x00\xcb\xff\xff\xff\xcb\xff\xff\xff\xa3\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xff\xff\xff\x98\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xff\xff\xff\x95\xff\xff\xff\x99\xff\xff\xff\x94\xff\xff\xff\x92\xff\xff\xff\x93\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xff\xff\x00\x00\x00\x00\x9f\xff\xff\xff\x00\x00\x00\x00\xa1\xff\xff\xff\x00\x00\x00\x00\xa4\xff\xff\xff\xcd\xff\xff\xff\xc8\xff\xff\xff\xcb\xff\xff\xff\xa7\xff\xff\xff\xcc\xff\xff\xff\xa6\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe4\xff\xff\xff\xe3\xff\xff\xff\x00\x00\x00\x00\xb1\xff\xff\xff\xaf\xff\xff\xff\xb2\xff\xff\xff\xb0\xff\xff\xff\xb3\xff\xff\xff\xa9\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xac\xff\xff\xff\xe6\xff\xff\xff\xe5\xff\xff\xff\xb3\xff\xff\xff\xab\xff\xff\xff\xb6\xff\xff\xff\xb4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\xff\xff\xff\xbe\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\xff\xff\xc6\xff\xff\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\xc7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\xff\xff\xff\xa3\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\xff\xff\xe1\xff\xff\xff\x00\x00\x00\x00\xe2\xff\xff\xff\xde\xff\xff\xff\xe1\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\xff\xff\x00\x00\x00\x00\xce\xff\xff\xff\x00\x00\x00\x00\xd7\xff\xff\xff\x00\x00\x00\x00\xbe\xff\xff\xff\xdc\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xff\xff\xc2\xff\xff\xff\x00\x00\x00\x00\xbd\xff\xff\xff\xbb\xff\xff\xff\xba\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xac\xff\xff\xff\xb5\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xff\xff\xff\x00\x00\x00\x00\xcb\xff\xff\xff\xca\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff\xff\xff\x9c\xff\xff\xff\x9b\xff\xff\xff\x9a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xff\xff\xff\x97\xff\xff\xff\x96\xff\xff\xff\xa2\xff\xff\xff\xa0\xff\xff\xff\xa5\xff\xff\xff\xc9\xff\xff\xff\xad\xff\xff\xff\xae\xff\xff\xff\xaa\xff\xff\xff\xb7\xff\xff\xff\xb8\xff\xff\xff\xc1\xff\xff\xff\x00\x00\x00\x00\xc5\xff\xff\xff\x00\x00\x00\x00\xd3\xff\xff\xff\xdb\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xff\xff\xff\x00\x00\x00\x00\xcb\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd9\xff\xff\xff\xdf\xff\xff\xff\xd5\xff\xff\xff\xd6\xff\xff\xff\xd2\xff\xff\xff\xd8\xff\xff\xff\x00\x00\x00\x00\xbc\xff\xff\xff\x00\x00\x00\x00\xcb\xff\xff\xff\x00\x00\x00\x00\xc0\xff\xff\xff\xdd\xff\xff\xff\xd1\xff\xff\xff\xa3\xff\xff\xff\xcb\xff\xff\xff\xda\xff\xff\xff\xd4\xff\xff\xff"#

happyCheck :: HappyAddr
happyCheck :: HappyAddr
happyCheck = Addr# -> HappyAddr
HappyA# Addr#
"\xff\xff\xff\xff\x02\x00\x00\x00\x0e\x00\x00\x00\x0e\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x2c\x00\x00\x00\x2e\x00\x00\x00\x03\x00\x00\x00\x0e\x00\x00\x00\x2d\x00\x00\x00\x03\x00\x00\x00\x11\x00\x00\x00\x0d\x00\x00\x00\x10\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00\x07\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x29\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x1c\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x29\x00\x00\x00\x0e\x00\x00\x00\x0e\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x2e\x00\x00\x00\x17\x00\x00\x00\x1c\x00\x00\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x0e\x00\x00\x00\x27\x00\x00\x00\x10\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x2e\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x02\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x2c\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x07\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x06\x00\x00\x00\x17\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x04\x00\x00\x00\x2e\x00\x00\x00\x04\x00\x00\x00\x0e\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x2d\x00\x00\x00\x0c\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x29\x00\x00\x00\x09\x00\x00\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x2e\x00\x00\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x20\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x15\x00\x00\x00\x21\x00\x00\x00\x06\x00\x00\x00\x13\x00\x00\x00\x24\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x13\x00\x00\x00\x2c\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x2e\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x2c\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0d\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x0d\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x2d\x00\x00\x00\x04\x00\x00\x00\x2e\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x09\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x06\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x0f\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x2e\x00\x00\x00\x0c\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\x2d\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x2c\x00\x00\x00\x04\x00\x00\x00\x16\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x0a\x00\x00\x00\x0b\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x13\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x04\x00\x00\x00\x0a\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x0c\x00\x00\x00\x2d\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x0c\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x23\x00\x00\x00\x0a\x00\x00\x00\x0c\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x2d\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x2d\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x08\x00\x00\x00\x04\x00\x00\x00\x0a\x00\x00\x00\x04\x00\x00\x00\x1d\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x0a\x00\x00\x00\x0b\x00\x00\x00\x0a\x00\x00\x00\x0b\x00\x00\x00\x0a\x00\x00\x00\x0a\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x0b\x00\x00\x00\x2e\x00\x00\x00\x2e\x00\x00\x00\x0a\x00\x00\x00\x0a\x00\x00\x00\x0a\x00\x00\x00\x0a\x00\x00\x00\x08\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2c\x00\x00\x00\x2c\x00\x00\x00\x2c\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2c\x00\x00\x00\x0f\x00\x00\x00\x0f\x00\x00\x00\x28\x00\x00\x00\x0f\x00\x00\x00\x07\x00\x00\x00\x0f\x00\x00\x00\x0a\x00\x00\x00\x2c\x00\x00\x00\x03\x00\x00\x00\x0a\x00\x00\x00\x0c\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x1d\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x18\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x18\x00\x00\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\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\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\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"#

happyTable :: HappyAddr
happyTable :: HappyAddr
happyTable = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x00\x00\x1d\x00\x00\x00\x35\x00\x00\x00\x35\x00\x00\x00\x94\x00\x00\x00\x4b\x00\x00\x00\x4b\x00\x00\x00\x1a\x00\x00\x00\x96\x00\x00\x00\x97\x00\x00\x00\x36\x00\x00\x00\xff\xff\xff\xff\x4b\x00\x00\x00\x1e\x00\x00\x00\x37\x00\x00\x00\x4b\x00\x00\x00\x1f\x00\x00\x00\x98\x00\x00\x00\x4c\x00\x00\x00\x78\x00\x00\x00\x9c\x00\x00\x00\x20\x00\x00\x00\x93\x00\x00\x00\x21\x00\x00\x00\x1a\x00\x00\x00\xb0\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\xa6\x00\x00\x00\x40\x00\x00\x00\x57\x00\x00\x00\x1a\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x37\x00\x00\x00\x1b\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x1a\x00\x00\x00\x6f\x00\x00\x00\x1a\x00\x00\x00\x41\x00\x00\x00\x58\x00\x00\x00\x57\x00\x00\x00\x59\x00\x00\x00\xff\xff\xff\xff\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\xff\xff\xff\xff\x65\x00\x00\x00\x94\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x58\x00\x00\x00\x94\x00\x00\x00\x59\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\xff\xff\xff\xff\x6b\x00\x00\x00\x6c\x00\x00\x00\x57\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x36\x00\x00\x00\x1a\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x37\x00\x00\x00\x2d\x00\x00\x00\x1a\x00\x00\x00\x58\x00\x00\x00\x93\x00\x00\x00\x59\x00\x00\x00\xa8\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x8b\x00\x00\x00\x65\x00\x00\x00\x37\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x1d\x00\x00\x00\xa9\x00\x00\x00\x1a\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x1a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x54\x00\x00\x00\xff\xff\xff\xff\x54\x00\x00\x00\x1e\x00\x00\x00\x9f\x00\x00\x00\x26\x00\x00\x00\x1f\x00\x00\x00\x1a\x00\x00\x00\x55\x00\x00\x00\x37\x00\x00\x00\x7b\x00\x00\x00\x20\x00\x00\x00\x1a\x00\x00\x00\x21\x00\x00\x00\x91\x00\x00\x00\x1a\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x28\x00\x00\x00\x26\x00\x00\x00\x9a\x00\x00\x00\x2a\x00\x00\x00\x28\x00\x00\x00\x26\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x1a\x00\x00\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x8a\x00\x00\x00\xb5\x00\x00\x00\x2a\x00\x00\x00\x28\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xba\x00\x00\x00\x2a\x00\x00\x00\x28\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x26\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x9e\x00\x00\x00\x28\x00\x00\x00\x26\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x4f\x00\x00\x00\x3d\x00\x00\x00\x50\x00\x00\x00\x3e\x00\x00\x00\x7a\x00\x00\x00\x89\x00\x00\x00\x3d\x00\x00\x00\x7b\x00\x00\x00\x8e\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x43\x00\x00\x00\x3d\x00\x00\x00\x36\x00\x00\x00\x8b\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x43\x00\x00\x00\x50\x00\x00\x00\xff\xff\xff\xff\x96\x00\x00\x00\x97\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x36\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x98\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x8c\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x43\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x50\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x53\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\xa4\x00\x00\x00\x37\x00\x00\x00\x50\x00\x00\x00\xff\xff\xff\xff\x32\x00\x00\x00\x33\x00\x00\x00\x85\x00\x00\x00\x32\x00\x00\x00\xa0\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x51\x00\x00\x00\x85\x00\x00\x00\x83\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x43\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x43\x00\x00\x00\x84\x00\x00\x00\x32\x00\x00\x00\xb9\x00\x00\x00\x54\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x6d\x00\x00\x00\x4a\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\xff\xff\xff\xff\x5f\x00\x00\x00\x8d\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x43\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x43\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x43\x00\x00\x00\x82\x00\x00\x00\x37\x00\x00\x00\xa5\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xc2\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x49\x00\x00\x00\x46\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x50\x00\x00\x00\x2e\x00\x00\x00\x36\x00\x00\x00\x54\x00\x00\x00\x37\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x51\x00\x00\x00\xad\x00\x00\x00\x5f\x00\x00\x00\x2e\x00\x00\x00\x54\x00\x00\x00\x48\x00\x00\x00\x71\x00\x00\x00\x6d\x00\x00\x00\x54\x00\x00\x00\x5b\x00\x00\x00\xb6\x00\x00\x00\x6d\x00\x00\x00\x5f\x00\x00\x00\x37\x00\x00\x00\x54\x00\x00\x00\x2e\x00\x00\x00\x5f\x00\x00\x00\x5e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x78\x00\x00\x00\x8f\x00\x00\x00\x5f\x00\x00\x00\x2f\x00\x00\x00\x5c\x00\x00\x00\x31\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x37\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x91\x00\x00\x00\x31\x00\x00\x00\x2f\x00\x00\x00\xc1\x00\x00\x00\x31\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x37\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\xc5\x00\x00\x00\x31\x00\x00\x00\x5d\x00\x00\x00\x2e\x00\x00\x00\x31\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2e\x00\x00\x00\x59\x00\x00\x00\x7c\x00\x00\x00\x59\x00\x00\x00\xa9\x00\x00\x00\x7d\x00\x00\x00\xb4\x00\x00\x00\x2e\x00\x00\x00\x2e\x00\x00\x00\x2e\x00\x00\x00\x73\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\x00\x00\xaa\x00\x00\x00\xbb\x00\x00\x00\xb3\x00\x00\x00\xb0\x00\x00\x00\x37\x00\x00\x00\x37\x00\x00\x00\x36\x00\x00\x00\x36\x00\x00\x00\x36\x00\x00\x00\x43\x00\x00\x00\xa3\x00\x00\x00\x36\x00\x00\x00\xa4\x00\x00\x00\xa2\x00\x00\x00\x9e\x00\x00\x00\x9d\x00\x00\x00\x93\x00\x00\x00\xc0\x00\x00\x00\xbf\x00\x00\x00\x36\x00\x00\x00\xc1\x00\x00\x00\xc5\x00\x00\x00\xbe\x00\x00\x00\x94\x00\x00\x00\x99\x00\x00\x00\x2d\x00\x00\x00\x98\x00\x00\x00\x4d\x00\x00\x00\x2b\x00\x00\x00\x87\x00\x00\x00\x86\x00\x00\x00\xab\x00\x00\x00\x80\x00\x00\x00\x7f\x00\x00\x00\xc3\x00\x00\x00\x7e\x00\x00\x00\x76\x00\x00\x00\x75\x00\x00\x00\x74\x00\x00\x00\x73\x00\x00\x00\xb1\x00\x00\x00\xae\x00\x00\x00\xac\x00\x00\x00\xbc\x00\x00\x00\xb8\x00\x00\x00\xb7\x00\x00\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#

happyReduceArr :: Array
  Int
  (Int#
   -> Token
   -> Int#
   -> Happy_IntList
   -> HappyStk HappyAbsSyn
   -> [Token]
   -> Err HappyAbsSyn)
happyReduceArr = (Int, Int)
-> [(Int,
     Int#
     -> Token
     -> Int#
     -> Happy_IntList
     -> HappyStk HappyAbsSyn
     -> [Token]
     -> Err HappyAbsSyn)]
-> Array
     Int
     (Int#
      -> Token
      -> Int#
      -> Happy_IntList
      -> HappyStk HappyAbsSyn
      -> [Token]
      -> Err HappyAbsSyn)
forall i e. Ix i => (i, i) -> [(i, e)] -> Array i e
Happy_Data_Array.array (Int
24, Int
111) [
        (Int
24 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_24),
        (Int
25 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_25),
        (Int
26 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_26),
        (Int
27 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_27),
        (Int
28 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_28),
        (Int
29 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_29),
        (Int
30 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_30),
        (Int
31 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_31),
        (Int
32 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_32),
        (Int
33 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_33),
        (Int
34 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_34),
        (Int
35 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_35),
        (Int
36 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_36),
        (Int
37 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_37),
        (Int
38 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_38),
        (Int
39 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_39),
        (Int
40 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_40),
        (Int
41 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_41),
        (Int
42 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_42),
        (Int
43 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_43),
        (Int
44 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_44),
        (Int
45 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_45),
        (Int
46 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_46),
        (Int
47 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_47),
        (Int
48 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_48),
        (Int
49 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_49),
        (Int
50 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_50),
        (Int
51 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_51),
        (Int
52 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_52),
        (Int
53 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_53),
        (Int
54 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_54),
        (Int
55 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_55),
        (Int
56 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_56),
        (Int
57 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_57),
        (Int
58 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_58),
        (Int
59 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_59),
        (Int
60 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_60),
        (Int
61 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_61),
        (Int
62 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_62),
        (Int
63 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_63),
        (Int
64 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_64),
        (Int
65 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_65),
        (Int
66 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_66),
        (Int
67 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_67),
        (Int
68 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_68),
        (Int
69 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_69),
        (Int
70 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_70),
        (Int
71 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_71),
        (Int
72 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_72),
        (Int
73 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_73),
        (Int
74 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_74),
        (Int
75 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_75),
        (Int
76 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_76),
        (Int
77 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_77),
        (Int
78 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_78),
        (Int
79 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_79),
        (Int
80 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_80),
        (Int
81 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_81),
        (Int
82 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_82),
        (Int
83 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_83),
        (Int
84 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_84),
        (Int
85 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_85),
        (Int
86 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_86),
        (Int
87 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_87),
        (Int
88 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_88),
        (Int
89 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_89),
        (Int
90 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_90),
        (Int
91 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_91),
        (Int
92 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_92),
        (Int
93 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_93),
        (Int
94 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_94),
        (Int
95 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_95),
        (Int
96 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_96),
        (Int
97 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_97),
        (Int
98 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_98),
        (Int
99 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_99),
        (Int
100 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_100),
        (Int
101 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_101),
        (Int
102 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_102),
        (Int
103 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_103),
        (Int
104 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_104),
        (Int
105 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_105),
        (Int
106 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_106),
        (Int
107 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_107),
        (Int
108 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_108),
        (Int
109 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_109),
        (Int
110 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_110),
        (Int
111 , Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_111)
        ]

happyRuleArr :: HappyAddr
happyRuleArr :: HappyAddr
happyRuleArr = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x03\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x05\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\x05\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x03\x00\x00\x00\x0a\x00\x00\x00\x01\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x0b\x00\x00\x00\x03\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x0c\x00\x00\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x03\x00\x00\x00\x0c\x00\x00\x00\x05\x00\x00\x00\x0d\x00\x00\x00\x01\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x11\x00\x00\x00\x03\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x02\x00\x00\x00\x12\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x15\x00\x00\x00\x02\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x17\x00\x00\x00\x03\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x03\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x03\x00\x00\x00\x1a\x00\x00\x00\x01\x00\x00\x00\x1b\x00\x00\x00\x02\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00"#

happyCatchStates :: [Happy_Prelude.Int]
happyCatchStates :: [Int]
happyCatchStates = []

happy_n_terms :: Int
happy_n_terms = Int
47 :: Happy_Prelude.Int
happy_n_nonterms :: Int
happy_n_nonterms = Int
29 :: Happy_Prelude.Int

happy_n_starts :: Int
happy_n_starts = Int
24 :: Happy_Prelude.Int

happyReduce_24 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_24 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
0# HappyAbsSyn -> HappyAbsSyn
happyReduction_24
happyReduction_24 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_24 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { (PT Posn
_ (TC String
happy_var_1)) -> 
        Char -> HappyAbsSyn
happyIn28
                 ((String -> Char
forall a. Read a => String -> a
read String
happy_var_1) :: Char
        )}

happyReduce_25 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_25 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
1# HappyAbsSyn -> HappyAbsSyn
happyReduction_25
happyReduction_25 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_25 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { (PT Posn
_ (TD String
happy_var_1)) -> 
        Double -> HappyAbsSyn
happyIn29
                 ((String -> Double
forall a. Read a => String -> a
read String
happy_var_1) :: Double
        )}

happyReduce_26 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_26 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
2# HappyAbsSyn -> HappyAbsSyn
happyReduction_26
happyReduction_26 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_26 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { (PT Posn
_ (TI String
happy_var_1)) -> 
        Integer -> HappyAbsSyn
happyIn30
                 ((String -> Integer
forall a. Read a => String -> a
read String
happy_var_1) :: Integer
        )}

happyReduce_27 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_27 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
3# HappyAbsSyn -> HappyAbsSyn
happyReduction_27
happyReduction_27 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_27 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { (PT Posn
_ (TL String
happy_var_1)) -> 
        String -> HappyAbsSyn
happyIn31
                 (String
happy_var_1
        )}

happyReduce_28 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_28 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
4# HappyAbsSyn -> HappyAbsSyn
happyReduction_28
happyReduction_28 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_28 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> Token
happyOutTok HappyAbsSyn
happy_x_1 of { Token
happy_var_1 -> 
        Identifier -> HappyAbsSyn
happyIn32
                 (((Int, Int), String) -> Identifier
BNFC.Abs.Identifier (Token -> ((Int, Int), String)
mkPosToken Token
happy_var_1)
        )}

happyReduce_29 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_29 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_29
happyReduction_29 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_29 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap34
happyOut34 HappyAbsSyn
happy_x_1 of { (HappyWrap34 [Def]
happy_var_1) -> 
        Grammar -> HappyAbsSyn
happyIn33
                 ([Def] -> Grammar
BNFC.Abs.Grammar [Def]
happy_var_1
        )}

happyReduce_30 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_30 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
6# HappyAbsSyn
happyReduction_30
happyReduction_30 :: HappyAbsSyn
happyReduction_30  =  [Def] -> HappyAbsSyn
happyIn34
                 ([]
        )

happyReduce_31 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_31 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
6# HappyAbsSyn -> HappyAbsSyn
happyReduction_31
happyReduction_31 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_31 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap35
happyOut35 HappyAbsSyn
happy_x_1 of { (HappyWrap35 Def
happy_var_1) -> 
        [Def] -> HappyAbsSyn
happyIn34
                 ((Def -> [Def] -> [Def]
forall a. a -> [a] -> [a]
:[]) Def
happy_var_1
        )}

happyReduce_32 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_32 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
6# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_32
happyReduction_32 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_32 HappyAbsSyn
happy_x_3
        p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap35
happyOut35 HappyAbsSyn
happy_x_1 of { (HappyWrap35 Def
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap34
happyOut34 HappyAbsSyn
happy_x_3 of { (HappyWrap34 [Def]
happy_var_3) -> 
        [Def] -> HappyAbsSyn
happyIn34
                 ((:) Def
happy_var_1 [Def]
happy_var_3
        )}}

happyReduce_33 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_33 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
6# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_33
happyReduction_33 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_33 HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap34
happyOut34 HappyAbsSyn
happy_x_2 of { (HappyWrap34 [Def]
happy_var_2) -> 
        [Def] -> HappyAbsSyn
happyIn34
                 ([Def]
happy_var_2
        )}

happyReduce_34 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_34 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
5# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_34
happyReduction_34 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_34 (HappyAbsSyn
happy_x_5 `HappyStk`
        HappyAbsSyn
happy_x_4 `HappyStk`
        HappyAbsSyn
happy_x_3 `HappyStk`
        HappyAbsSyn
happy_x_2 `HappyStk`
        HappyAbsSyn
happy_x_1 `HappyStk`
        HappyStk HappyAbsSyn
happyRest)
         = case HappyAbsSyn -> HappyWrap40
happyOut40 HappyAbsSyn
happy_x_1 of { (HappyWrap40 Label
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_3 of { (HappyWrap38 Cat
happy_var_3) -> 
        case HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
happy_x_5 of { (HappyWrap37 [Item]
happy_var_5) -> 
        Def -> HappyAbsSyn
happyIn35
                 (Label -> Cat -> [Item] -> Def
BNFC.Abs.Rule Label
happy_var_1 Cat
happy_var_3 [Item]
happy_var_5
        ) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}

happyReduce_35 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_35 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
7# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_35
happyReduction_35 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_35 HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_2 of { (HappyWrap31 String
happy_var_2) -> 
        Def -> HappyAbsSyn
happyIn35
                 (String -> Def
BNFC.Abs.Comment String
happy_var_2
        )}

happyReduce_36 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_36 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
7# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_36
happyReduction_36 :: HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_36 HappyAbsSyn
happy_x_3
        HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_2 of { (HappyWrap31 String
happy_var_2) -> 
        case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_3 of { (HappyWrap31 String
happy_var_3) -> 
        Def -> HappyAbsSyn
happyIn35
                 (String -> String -> Def
BNFC.Abs.Comments String
happy_var_2 String
happy_var_3
        )}}

happyReduce_37 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_37 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
6# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_37
happyReduction_37 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_37 (HappyAbsSyn
happy_x_6 `HappyStk`
        HappyAbsSyn
happy_x_5 `HappyStk`
        HappyAbsSyn
happy_x_4 `HappyStk`
        HappyAbsSyn
happy_x_3 `HappyStk`
        HappyAbsSyn
happy_x_2 `HappyStk`
        HappyAbsSyn
happy_x_1 `HappyStk`
        HappyStk HappyAbsSyn
happyRest)
         = case HappyAbsSyn -> HappyWrap40
happyOut40 HappyAbsSyn
happy_x_2 of { (HappyWrap40 Label
happy_var_2) -> 
        case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_4 of { (HappyWrap38 Cat
happy_var_4) -> 
        case HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
happy_x_6 of { (HappyWrap37 [Item]
happy_var_6) -> 
        Def -> HappyAbsSyn
happyIn35
                 (Label -> Cat -> [Item] -> Def
BNFC.Abs.Internal Label
happy_var_2 Cat
happy_var_4 [Item]
happy_var_6
        ) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}

happyReduce_38 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_38 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
7# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_38
happyReduction_38 :: HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_38 HappyAbsSyn
happy_x_3
        HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_2 of { (HappyWrap32 Identifier
happy_var_2) -> 
        case HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
happy_x_3 of { (HappyWrap53 Reg
happy_var_3) -> 
        Def -> HappyAbsSyn
happyIn35
                 (Identifier -> Reg -> Def
BNFC.Abs.Token Identifier
happy_var_2 Reg
happy_var_3
        )}}

happyReduce_39 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_39 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
4# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_39
happyReduction_39 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_39 (HappyAbsSyn
happy_x_4 `HappyStk`
        HappyAbsSyn
happy_x_3 `HappyStk`
        HappyAbsSyn
happy_x_2 `HappyStk`
        HappyAbsSyn
happy_x_1 `HappyStk`
        HappyStk HappyAbsSyn
happyRest)
         = case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_3 of { (HappyWrap32 Identifier
happy_var_3) -> 
        case HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
happy_x_4 of { (HappyWrap53 Reg
happy_var_4) -> 
        Def -> HappyAbsSyn
happyIn35
                 (Identifier -> Reg -> Def
BNFC.Abs.PosToken Identifier
happy_var_3 Reg
happy_var_4
        ) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}

happyReduce_40 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_40 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
7# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_40
happyReduction_40 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_40 HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap39
happyOut39 HappyAbsSyn
happy_x_2 of { (HappyWrap39 [Cat]
happy_var_2) -> 
        Def -> HappyAbsSyn
happyIn35
                 ([Cat] -> Def
BNFC.Abs.Entryp [Cat]
happy_var_2
        )}

happyReduce_41 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_41 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
4# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_41
happyReduction_41 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_41 (HappyAbsSyn
happy_x_4 `HappyStk`
        HappyAbsSyn
happy_x_3 `HappyStk`
        HappyAbsSyn
happy_x_2 `HappyStk`
        HappyAbsSyn
happy_x_1 `HappyStk`
        HappyStk HappyAbsSyn
happyRest)
         = case HappyAbsSyn -> HappyWrap52
happyOut52 HappyAbsSyn
happy_x_2 of { (HappyWrap52 MinimumSize
happy_var_2) -> 
        case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_3 of { (HappyWrap38 Cat
happy_var_3) -> 
        case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_4 of { (HappyWrap31 String
happy_var_4) -> 
        Def -> HappyAbsSyn
happyIn35
                 (MinimumSize -> Cat -> String -> Def
BNFC.Abs.Separator MinimumSize
happy_var_2 Cat
happy_var_3 String
happy_var_4
        ) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}

happyReduce_42 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_42 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
4# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_42
happyReduction_42 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_42 (HappyAbsSyn
happy_x_4 `HappyStk`
        HappyAbsSyn
happy_x_3 `HappyStk`
        HappyAbsSyn
happy_x_2 `HappyStk`
        HappyAbsSyn
happy_x_1 `HappyStk`
        HappyStk HappyAbsSyn
happyRest)
         = case HappyAbsSyn -> HappyWrap52
happyOut52 HappyAbsSyn
happy_x_2 of { (HappyWrap52 MinimumSize
happy_var_2) -> 
        case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_3 of { (HappyWrap38 Cat
happy_var_3) -> 
        case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_4 of { (HappyWrap31 String
happy_var_4) -> 
        Def -> HappyAbsSyn
happyIn35
                 (MinimumSize -> Cat -> String -> Def
BNFC.Abs.Terminator MinimumSize
happy_var_2 Cat
happy_var_3 String
happy_var_4
        ) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}

happyReduce_43 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_43 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
6# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_43
happyReduction_43 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_43 (HappyAbsSyn
happy_x_6 `HappyStk`
        HappyAbsSyn
happy_x_5 `HappyStk`
        HappyAbsSyn
happy_x_4 `HappyStk`
        HappyAbsSyn
happy_x_3 `HappyStk`
        HappyAbsSyn
happy_x_2 `HappyStk`
        HappyAbsSyn
happy_x_1 `HappyStk`
        HappyStk HappyAbsSyn
happyRest)
         = case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_2 of { (HappyWrap38 Cat
happy_var_2) -> 
        case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_3 of { (HappyWrap31 String
happy_var_3) -> 
        case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_4 of { (HappyWrap31 String
happy_var_4) -> 
        case HappyAbsSyn -> HappyWrap43
happyOut43 HappyAbsSyn
happy_x_5 of { (HappyWrap43 Separation
happy_var_5) -> 
        case HappyAbsSyn -> HappyWrap52
happyOut52 HappyAbsSyn
happy_x_6 of { (HappyWrap52 MinimumSize
happy_var_6) -> 
        Def -> HappyAbsSyn
happyIn35
                 (Cat -> String -> String -> Separation -> MinimumSize -> Def
BNFC.Abs.Delimiters Cat
happy_var_2 String
happy_var_3 String
happy_var_4 Separation
happy_var_5 MinimumSize
happy_var_6
        ) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}}}

happyReduce_44 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_44 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
7# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_44
happyReduction_44 :: HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_44 HappyAbsSyn
happy_x_3
        HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_2 of { (HappyWrap32 Identifier
happy_var_2) -> 
        case HappyAbsSyn -> HappyWrap30
happyOut30 HappyAbsSyn
happy_x_3 of { (HappyWrap30 Integer
happy_var_3) -> 
        Def -> HappyAbsSyn
happyIn35
                 (Identifier -> Integer -> Def
BNFC.Abs.Coercions Identifier
happy_var_2 Integer
happy_var_3
        )}}

happyReduce_45 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_45 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
4# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_45
happyReduction_45 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_45 (HappyAbsSyn
happy_x_4 `HappyStk`
        HappyAbsSyn
happy_x_3 `HappyStk`
        HappyAbsSyn
happy_x_2 `HappyStk`
        HappyAbsSyn
happy_x_1 `HappyStk`
        HappyStk HappyAbsSyn
happyRest)
         = case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_2 of { (HappyWrap32 Identifier
happy_var_2) -> 
        case HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
happy_x_4 of { (HappyWrap51 [RHS]
happy_var_4) -> 
        Def -> HappyAbsSyn
happyIn35
                 (Identifier -> [RHS] -> Def
BNFC.Abs.Rules Identifier
happy_var_2 [RHS]
happy_var_4
        ) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}

happyReduce_46 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_46 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
5# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_46
happyReduction_46 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_46 (HappyAbsSyn
happy_x_5 `HappyStk`
        HappyAbsSyn
happy_x_4 `HappyStk`
        HappyAbsSyn
happy_x_3 `HappyStk`
        HappyAbsSyn
happy_x_2 `HappyStk`
        HappyAbsSyn
happy_x_1 `HappyStk`
        HappyStk HappyAbsSyn
happyRest)
         = case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_2 of { (HappyWrap32 Identifier
happy_var_2) -> 
        case HappyAbsSyn -> HappyWrap42
happyOut42 HappyAbsSyn
happy_x_3 of { (HappyWrap42 [Arg]
happy_var_3) -> 
        case HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
happy_x_5 of { (HappyWrap45 Exp
happy_var_5) -> 
        Def -> HappyAbsSyn
happyIn35
                 (Identifier -> [Arg] -> Exp -> Def
BNFC.Abs.Function Identifier
happy_var_2 [Arg]
happy_var_3 Exp
happy_var_5
        ) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}

happyReduce_47 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_47 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
7# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_47
happyReduction_47 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_47 HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
happy_x_2 of { (HappyWrap44 [String]
happy_var_2) -> 
        Def -> HappyAbsSyn
happyIn35
                 ([String] -> Def
BNFC.Abs.Layout [String]
happy_var_2
        )}

happyReduce_48 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_48 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
7# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p}. HappyAbsSyn -> p -> p -> HappyAbsSyn
happyReduction_48
happyReduction_48 :: HappyAbsSyn -> p -> p -> HappyAbsSyn
happyReduction_48 HappyAbsSyn
happy_x_3
        p
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
happy_x_3 of { (HappyWrap44 [String]
happy_var_3) -> 
        Def -> HappyAbsSyn
happyIn35
                 ([String] -> Def
BNFC.Abs.LayoutStop [String]
happy_var_3
        )}

happyReduce_49 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_49 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
7# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p}. p -> p -> HappyAbsSyn
happyReduction_49
happyReduction_49 :: p -> p -> HappyAbsSyn
happyReduction_49 p
happy_x_2
        p
happy_x_1
         =  Def -> HappyAbsSyn
happyIn35
                 (Def
BNFC.Abs.LayoutTop
        )

happyReduce_50 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_50 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
8# HappyAbsSyn -> HappyAbsSyn
happyReduction_50
happyReduction_50 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_50 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_1 of { (HappyWrap31 String
happy_var_1) -> 
        Item -> HappyAbsSyn
happyIn36
                 (String -> Item
BNFC.Abs.Terminal String
happy_var_1
        )}

happyReduce_51 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_51 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
8# HappyAbsSyn -> HappyAbsSyn
happyReduction_51
happyReduction_51 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_51 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_1 of { (HappyWrap38 Cat
happy_var_1) -> 
        Item -> HappyAbsSyn
happyIn36
                 (Cat -> Item
BNFC.Abs.NTerminal Cat
happy_var_1
        )}

happyReduce_52 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_52 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
9# HappyAbsSyn
happyReduction_52
happyReduction_52 :: HappyAbsSyn
happyReduction_52  =  [Item] -> HappyAbsSyn
happyIn37
                 ([]
        )

happyReduce_53 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_53 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
9# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_53
happyReduction_53 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_53 HappyAbsSyn
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap36
happyOut36 HappyAbsSyn
happy_x_1 of { (HappyWrap36 Item
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
happy_x_2 of { (HappyWrap37 [Item]
happy_var_2) -> 
        [Item] -> HappyAbsSyn
happyIn37
                 ((:) Item
happy_var_1 [Item]
happy_var_2
        )}}

happyReduce_54 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_54 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
10# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p}. p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_54
happyReduction_54 :: p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_54 p
happy_x_3
        HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_2 of { (HappyWrap38 Cat
happy_var_2) -> 
        Cat -> HappyAbsSyn
happyIn38
                 (Cat -> Cat
BNFC.Abs.ListCat Cat
happy_var_2
        )}

happyReduce_55 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_55 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
10# HappyAbsSyn -> HappyAbsSyn
happyReduction_55
happyReduction_55 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_55 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_1 of { (HappyWrap32 Identifier
happy_var_1) -> 
        Cat -> HappyAbsSyn
happyIn38
                 (Identifier -> Cat
BNFC.Abs.IdCat Identifier
happy_var_1
        )}

happyReduce_56 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_56 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
11# HappyAbsSyn
happyReduction_56
happyReduction_56 :: HappyAbsSyn
happyReduction_56  =  [Cat] -> HappyAbsSyn
happyIn39
                 ([]
        )

happyReduce_57 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_57 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_57
happyReduction_57 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_57 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_1 of { (HappyWrap38 Cat
happy_var_1) -> 
        [Cat] -> HappyAbsSyn
happyIn39
                 ((Cat -> [Cat] -> [Cat]
forall a. a -> [a] -> [a]
:[]) Cat
happy_var_1
        )}

happyReduce_58 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_58 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
11# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_58
happyReduction_58 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_58 HappyAbsSyn
happy_x_3
        p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
happy_x_1 of { (HappyWrap38 Cat
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap39
happyOut39 HappyAbsSyn
happy_x_3 of { (HappyWrap39 [Cat]
happy_var_3) -> 
        [Cat] -> HappyAbsSyn
happyIn39
                 ((:) Cat
happy_var_1 [Cat]
happy_var_3
        )}}

happyReduce_59 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_59 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
12# HappyAbsSyn -> HappyAbsSyn
happyReduction_59
happyReduction_59 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_59 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_1 of { (HappyWrap32 Identifier
happy_var_1) -> 
        Label -> HappyAbsSyn
happyIn40
                 (Identifier -> Label
BNFC.Abs.Id Identifier
happy_var_1
        )}

happyReduce_60 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_60 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
12# HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn
happyReduction_60
happyReduction_60 :: p -> HappyAbsSyn
happyReduction_60 p
happy_x_1
         =  Label -> HappyAbsSyn
happyIn40
                 (Label
BNFC.Abs.Wild
        )

happyReduce_61 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_61 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
12# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p}. p -> p -> HappyAbsSyn
happyReduction_61
happyReduction_61 :: p -> p -> HappyAbsSyn
happyReduction_61 p
happy_x_2
        p
happy_x_1
         =  Label -> HappyAbsSyn
happyIn40
                 (Label
BNFC.Abs.ListE
        )

happyReduce_62 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_62 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
12# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p} {p}. p -> p -> p -> HappyAbsSyn
happyReduction_62
happyReduction_62 :: p -> p -> p -> HappyAbsSyn
happyReduction_62 p
happy_x_3
        p
happy_x_2
        p
happy_x_1
         =  Label -> HappyAbsSyn
happyIn40
                 (Label
BNFC.Abs.ListCons
        )

happyReduce_63 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_63 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
5# Int#
12# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_63
happyReduction_63 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_63 (HappyAbsSyn
happy_x_5 `HappyStk`
        HappyAbsSyn
happy_x_4 `HappyStk`
        HappyAbsSyn
happy_x_3 `HappyStk`
        HappyAbsSyn
happy_x_2 `HappyStk`
        HappyAbsSyn
happy_x_1 `HappyStk`
        HappyStk HappyAbsSyn
happyRest)
         = Label -> HappyAbsSyn
happyIn40
                 (Label
BNFC.Abs.ListOne
        ) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest

happyReduce_64 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_64 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
13# HappyAbsSyn -> HappyAbsSyn
happyReduction_64
happyReduction_64 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_64 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_1 of { (HappyWrap32 Identifier
happy_var_1) -> 
        Arg -> HappyAbsSyn
happyIn41
                 (Identifier -> Arg
BNFC.Abs.Arg Identifier
happy_var_1
        )}

happyReduce_65 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_65 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
14# HappyAbsSyn
happyReduction_65
happyReduction_65 :: HappyAbsSyn
happyReduction_65  =  [Arg] -> HappyAbsSyn
happyIn42
                 ([]
        )

happyReduce_66 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_66 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
14# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_66
happyReduction_66 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_66 HappyAbsSyn
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap41
happyOut41 HappyAbsSyn
happy_x_1 of { (HappyWrap41 Arg
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap42
happyOut42 HappyAbsSyn
happy_x_2 of { (HappyWrap42 [Arg]
happy_var_2) -> 
        [Arg] -> HappyAbsSyn
happyIn42
                 ((:) Arg
happy_var_1 [Arg]
happy_var_2
        )}}

happyReduce_67 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_67 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
15# HappyAbsSyn
happyReduction_67
happyReduction_67 :: HappyAbsSyn
happyReduction_67  =  Separation -> HappyAbsSyn
happyIn43
                 (Separation
BNFC.Abs.SepNone
        )

happyReduce_68 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_68 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
15# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_68
happyReduction_68 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_68 HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_2 of { (HappyWrap31 String
happy_var_2) -> 
        Separation -> HappyAbsSyn
happyIn43
                 (String -> Separation
BNFC.Abs.SepTerm String
happy_var_2
        )}

happyReduce_69 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_69 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
15# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_69
happyReduction_69 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_69 HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_2 of { (HappyWrap31 String
happy_var_2) -> 
        Separation -> HappyAbsSyn
happyIn43
                 (String -> Separation
BNFC.Abs.SepSepar String
happy_var_2
        )}

happyReduce_70 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_70 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
16# HappyAbsSyn -> HappyAbsSyn
happyReduction_70
happyReduction_70 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_70 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_1 of { (HappyWrap31 String
happy_var_1) -> 
        [String] -> HappyAbsSyn
happyIn44
                 ((String -> [String] -> [String]
forall a. a -> [a] -> [a]
:[]) String
happy_var_1
        )}

happyReduce_71 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_71 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
16# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_71
happyReduction_71 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_71 HappyAbsSyn
happy_x_3
        p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_1 of { (HappyWrap31 String
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
happy_x_3 of { (HappyWrap44 [String]
happy_var_3) -> 
        [String] -> HappyAbsSyn
happyIn44
                 ((:) String
happy_var_1 [String]
happy_var_3
        )}}

happyReduce_72 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_72 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
17# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_72
happyReduction_72 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_72 HappyAbsSyn
happy_x_3
        p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap46
happyOut46 HappyAbsSyn
happy_x_1 of { (HappyWrap46 Exp
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
happy_x_3 of { (HappyWrap45 Exp
happy_var_3) -> 
        Exp -> HappyAbsSyn
happyIn45
                 (Exp -> Exp -> Exp
BNFC.Abs.Cons Exp
happy_var_1 Exp
happy_var_3
        )}}

happyReduce_73 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_73 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
17# HappyAbsSyn -> HappyAbsSyn
happyReduction_73
happyReduction_73 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_73 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap46
happyOut46 HappyAbsSyn
happy_x_1 of { (HappyWrap46 Exp
happy_var_1) -> 
        Exp -> HappyAbsSyn
happyIn45
                 (Exp
happy_var_1
        )}

happyReduce_74 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_74 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
18# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_74
happyReduction_74 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_74 HappyAbsSyn
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_1 of { (HappyWrap32 Identifier
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
happy_x_2 of { (HappyWrap49 [Exp]
happy_var_2) -> 
        Exp -> HappyAbsSyn
happyIn46
                 (Identifier -> [Exp] -> Exp
BNFC.Abs.App Identifier
happy_var_1 [Exp]
happy_var_2
        )}}

happyReduce_75 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_75 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
18# HappyAbsSyn -> HappyAbsSyn
happyReduction_75
happyReduction_75 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_75 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap47
happyOut47 HappyAbsSyn
happy_x_1 of { (HappyWrap47 Exp
happy_var_1) -> 
        Exp -> HappyAbsSyn
happyIn46
                 (Exp
happy_var_1
        )}

happyReduce_76 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_76 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
19# HappyAbsSyn -> HappyAbsSyn
happyReduction_76
happyReduction_76 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_76 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap32
happyOut32 HappyAbsSyn
happy_x_1 of { (HappyWrap32 Identifier
happy_var_1) -> 
        Exp -> HappyAbsSyn
happyIn47
                 (Identifier -> Exp
BNFC.Abs.Var Identifier
happy_var_1
        )}

happyReduce_77 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_77 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
19# HappyAbsSyn -> HappyAbsSyn
happyReduction_77
happyReduction_77 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_77 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap30
happyOut30 HappyAbsSyn
happy_x_1 of { (HappyWrap30 Integer
happy_var_1) -> 
        Exp -> HappyAbsSyn
happyIn47
                 (Integer -> Exp
BNFC.Abs.LitInt Integer
happy_var_1
        )}

happyReduce_78 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_78 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
19# HappyAbsSyn -> HappyAbsSyn
happyReduction_78
happyReduction_78 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_78 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap28
happyOut28 HappyAbsSyn
happy_x_1 of { (HappyWrap28 Char
happy_var_1) -> 
        Exp -> HappyAbsSyn
happyIn47
                 (Char -> Exp
BNFC.Abs.LitChar Char
happy_var_1
        )}

happyReduce_79 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_79 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
19# HappyAbsSyn -> HappyAbsSyn
happyReduction_79
happyReduction_79 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_79 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_1 of { (HappyWrap31 String
happy_var_1) -> 
        Exp -> HappyAbsSyn
happyIn47
                 (String -> Exp
BNFC.Abs.LitString String
happy_var_1
        )}

happyReduce_80 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_80 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
19# HappyAbsSyn -> HappyAbsSyn
happyReduction_80
happyReduction_80 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_80 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap29
happyOut29 HappyAbsSyn
happy_x_1 of { (HappyWrap29 Double
happy_var_1) -> 
        Exp -> HappyAbsSyn
happyIn47
                 (Double -> Exp
BNFC.Abs.LitDouble Double
happy_var_1
        )}

happyReduce_81 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_81 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
19# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p}. p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_81
happyReduction_81 :: p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_81 p
happy_x_3
        HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
happy_x_2 of { (HappyWrap48 [Exp]
happy_var_2) -> 
        Exp -> HappyAbsSyn
happyIn47
                 ([Exp] -> Exp
BNFC.Abs.List [Exp]
happy_var_2
        )}

happyReduce_82 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_82 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
19# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p}. p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_82
happyReduction_82 :: p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_82 p
happy_x_3
        HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
happy_x_2 of { (HappyWrap45 Exp
happy_var_2) -> 
        Exp -> HappyAbsSyn
happyIn47
                 (Exp
happy_var_2
        )}

happyReduce_83 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_83 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
20# HappyAbsSyn
happyReduction_83
happyReduction_83 :: HappyAbsSyn
happyReduction_83  =  [Exp] -> HappyAbsSyn
happyIn48
                 ([]
        )

happyReduce_84 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_84 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
20# HappyAbsSyn -> HappyAbsSyn
happyReduction_84
happyReduction_84 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_84 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
happy_x_1 of { (HappyWrap45 Exp
happy_var_1) -> 
        [Exp] -> HappyAbsSyn
happyIn48
                 ((Exp -> [Exp] -> [Exp]
forall a. a -> [a] -> [a]
:[]) Exp
happy_var_1
        )}

happyReduce_85 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_85 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
20# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_85
happyReduction_85 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_85 HappyAbsSyn
happy_x_3
        p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
happy_x_1 of { (HappyWrap45 Exp
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
happy_x_3 of { (HappyWrap48 [Exp]
happy_var_3) -> 
        [Exp] -> HappyAbsSyn
happyIn48
                 ((:) Exp
happy_var_1 [Exp]
happy_var_3
        )}}

happyReduce_86 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_86 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
21# HappyAbsSyn -> HappyAbsSyn
happyReduction_86
happyReduction_86 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_86 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap47
happyOut47 HappyAbsSyn
happy_x_1 of { (HappyWrap47 Exp
happy_var_1) -> 
        [Exp] -> HappyAbsSyn
happyIn49
                 ((Exp -> [Exp] -> [Exp]
forall a. a -> [a] -> [a]
:[]) Exp
happy_var_1
        )}

happyReduce_87 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_87 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
21# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_87
happyReduction_87 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_87 HappyAbsSyn
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap47
happyOut47 HappyAbsSyn
happy_x_1 of { (HappyWrap47 Exp
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
happy_x_2 of { (HappyWrap49 [Exp]
happy_var_2) -> 
        [Exp] -> HappyAbsSyn
happyIn49
                 ((:) Exp
happy_var_1 [Exp]
happy_var_2
        )}}

happyReduce_88 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_88 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
22# HappyAbsSyn -> HappyAbsSyn
happyReduction_88
happyReduction_88 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_88 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
happy_x_1 of { (HappyWrap37 [Item]
happy_var_1) -> 
        RHS -> HappyAbsSyn
happyIn50
                 ([Item] -> RHS
BNFC.Abs.RHS [Item]
happy_var_1
        )}

happyReduce_89 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_89 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
23# HappyAbsSyn -> HappyAbsSyn
happyReduction_89
happyReduction_89 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_89 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
happy_x_1 of { (HappyWrap50 RHS
happy_var_1) -> 
        [RHS] -> HappyAbsSyn
happyIn51
                 ((RHS -> [RHS] -> [RHS]
forall a. a -> [a] -> [a]
:[]) RHS
happy_var_1
        )}

happyReduce_90 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_90 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
23# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_90
happyReduction_90 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_90 HappyAbsSyn
happy_x_3
        p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
happy_x_1 of { (HappyWrap50 RHS
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
happy_x_3 of { (HappyWrap51 [RHS]
happy_var_3) -> 
        [RHS] -> HappyAbsSyn
happyIn51
                 ((:) RHS
happy_var_1 [RHS]
happy_var_3
        )}}

happyReduce_91 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_91 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
24# HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn
happyReduction_91
happyReduction_91 :: p -> HappyAbsSyn
happyReduction_91 p
happy_x_1
         =  MinimumSize -> HappyAbsSyn
happyIn52
                 (MinimumSize
BNFC.Abs.MNonempty
        )

happyReduce_92 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_92 = Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0  Int#
24# HappyAbsSyn
happyReduction_92
happyReduction_92 :: HappyAbsSyn
happyReduction_92  =  MinimumSize -> HappyAbsSyn
happyIn52
                 (MinimumSize
BNFC.Abs.MEmpty
        )

happyReduce_93 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_93 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
25# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_93
happyReduction_93 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_93 HappyAbsSyn
happy_x_3
        p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
happy_x_1 of { (HappyWrap53 Reg
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
happy_x_3 of { (HappyWrap54 Reg
happy_var_3) -> 
        Reg -> HappyAbsSyn
happyIn53
                 (Reg -> Reg -> Reg
BNFC.Abs.RAlt Reg
happy_var_1 Reg
happy_var_3
        )}}

happyReduce_94 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_94 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
25# HappyAbsSyn -> HappyAbsSyn
happyReduction_94
happyReduction_94 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_94 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
happy_x_1 of { (HappyWrap54 Reg
happy_var_1) -> 
        Reg -> HappyAbsSyn
happyIn53
                 (Reg
happy_var_1
        )}

happyReduce_95 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_95 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
26# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_95
happyReduction_95 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_95 HappyAbsSyn
happy_x_3
        p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
happy_x_1 of { (HappyWrap54 Reg
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap55
happyOut55 HappyAbsSyn
happy_x_3 of { (HappyWrap55 Reg
happy_var_3) -> 
        Reg -> HappyAbsSyn
happyIn54
                 (Reg -> Reg -> Reg
BNFC.Abs.RMinus Reg
happy_var_1 Reg
happy_var_3
        )}}

happyReduce_96 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_96 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
26# HappyAbsSyn -> HappyAbsSyn
happyReduction_96
happyReduction_96 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_96 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap55
happyOut55 HappyAbsSyn
happy_x_1 of { (HappyWrap55 Reg
happy_var_1) -> 
        Reg -> HappyAbsSyn
happyIn54
                 (Reg
happy_var_1
        )}

happyReduce_97 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_97 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
27# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_97
happyReduction_97 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_97 HappyAbsSyn
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap55
happyOut55 HappyAbsSyn
happy_x_1 of { (HappyWrap55 Reg
happy_var_1) -> 
        case HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
happy_x_2 of { (HappyWrap56 Reg
happy_var_2) -> 
        Reg -> HappyAbsSyn
happyIn55
                 (Reg -> Reg -> Reg
BNFC.Abs.RSeq Reg
happy_var_1 Reg
happy_var_2
        )}}

happyReduce_98 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_98 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
27# HappyAbsSyn -> HappyAbsSyn
happyReduction_98
happyReduction_98 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_98 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
happy_x_1 of { (HappyWrap56 Reg
happy_var_1) -> 
        Reg -> HappyAbsSyn
happyIn55
                 (Reg
happy_var_1
        )}

happyReduce_99 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_99 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
28# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_99
happyReduction_99 :: p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_99 p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
happy_x_1 of { (HappyWrap56 Reg
happy_var_1) -> 
        Reg -> HappyAbsSyn
happyIn56
                 (Reg -> Reg
BNFC.Abs.RStar Reg
happy_var_1
        )}

happyReduce_100 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_100 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
28# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_100
happyReduction_100 :: p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_100 p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
happy_x_1 of { (HappyWrap56 Reg
happy_var_1) -> 
        Reg -> HappyAbsSyn
happyIn56
                 (Reg -> Reg
BNFC.Abs.RPlus Reg
happy_var_1
        )}

happyReduce_101 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_101 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2  Int#
28# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_101
happyReduction_101 :: p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_101 p
happy_x_2
        HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
happy_x_1 of { (HappyWrap56 Reg
happy_var_1) -> 
        Reg -> HappyAbsSyn
happyIn56
                 (Reg -> Reg
BNFC.Abs.ROpt Reg
happy_var_1
        )}

happyReduce_102 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_102 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
28# HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn
happyReduction_102
happyReduction_102 :: p -> HappyAbsSyn
happyReduction_102 p
happy_x_1
         =  Reg -> HappyAbsSyn
happyIn56
                 (Reg
BNFC.Abs.REps
        )

happyReduce_103 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_103 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
28# HappyAbsSyn -> HappyAbsSyn
happyReduction_103
happyReduction_103 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_103 HappyAbsSyn
happy_x_1
         =  case HappyAbsSyn -> HappyWrap28
happyOut28 HappyAbsSyn
happy_x_1 of { (HappyWrap28 Char
happy_var_1) -> 
        Reg -> HappyAbsSyn
happyIn56
                 (Char -> Reg
BNFC.Abs.RChar Char
happy_var_1
        )}

happyReduce_104 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_104 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
28# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p}. p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_104
happyReduction_104 :: p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_104 p
happy_x_3
        HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_2 of { (HappyWrap31 String
happy_var_2) -> 
        Reg -> HappyAbsSyn
happyIn56
                 (String -> Reg
BNFC.Abs.RAlts String
happy_var_2
        )}

happyReduce_105 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_105 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
28# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p}. p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_105
happyReduction_105 :: p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_105 p
happy_x_3
        HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap31
happyOut31 HappyAbsSyn
happy_x_2 of { (HappyWrap31 String
happy_var_2) -> 
        Reg -> HappyAbsSyn
happyIn56
                 (String -> Reg
BNFC.Abs.RSeqs String
happy_var_2
        )}

happyReduce_106 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_106 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
28# HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn
happyReduction_106
happyReduction_106 :: p -> HappyAbsSyn
happyReduction_106 p
happy_x_1
         =  Reg -> HappyAbsSyn
happyIn56
                 (Reg
BNFC.Abs.RDigit
        )

happyReduce_107 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_107 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
28# HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn
happyReduction_107
happyReduction_107 :: p -> HappyAbsSyn
happyReduction_107 p
happy_x_1
         =  Reg -> HappyAbsSyn
happyIn56
                 (Reg
BNFC.Abs.RLetter
        )

happyReduce_108 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_108 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
28# HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn
happyReduction_108
happyReduction_108 :: p -> HappyAbsSyn
happyReduction_108 p
happy_x_1
         =  Reg -> HappyAbsSyn
happyIn56
                 (Reg
BNFC.Abs.RUpper
        )

happyReduce_109 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_109 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
28# HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn
happyReduction_109
happyReduction_109 :: p -> HappyAbsSyn
happyReduction_109 p
happy_x_1
         =  Reg -> HappyAbsSyn
happyIn56
                 (Reg
BNFC.Abs.RLower
        )

happyReduce_110 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_110 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1  Int#
28# HappyAbsSyn -> HappyAbsSyn
forall {p}. p -> HappyAbsSyn
happyReduction_110
happyReduction_110 :: p -> HappyAbsSyn
happyReduction_110 p
happy_x_1
         =  Reg -> HappyAbsSyn
happyIn56
                 (Reg
BNFC.Abs.RAny
        )

happyReduce_111 :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce_111 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3  Int#
28# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p} {p}. p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_111
happyReduction_111 :: p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_111 p
happy_x_3
        HappyAbsSyn
happy_x_2
        p
happy_x_1
         =  case HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
happy_x_2 of { (HappyWrap53 Reg
happy_var_2) -> 
        Reg -> HappyAbsSyn
happyIn56
                 (Reg
happy_var_2
        )}

happyTerminalToTok :: Token -> Int#
happyTerminalToTok Token
term = case Token
term of {
        PT Posn
_ (TS String
_ Int
1) -> Int#
2#;
        PT Posn
_ (TS String
_ Int
2) -> Int#
3#;
        PT Posn
_ (TS String
_ Int
3) -> Int#
4#;
        PT Posn
_ (TS String
_ Int
4) -> Int#
5#;
        PT Posn
_ (TS String
_ Int
5) -> Int#
6#;
        PT Posn
_ (TS String
_ Int
6) -> Int#
7#;
        PT Posn
_ (TS String
_ Int
7) -> Int#
8#;
        PT Posn
_ (TS String
_ Int
8) -> Int#
9#;
        PT Posn
_ (TS String
_ Int
9) -> Int#
10#;
        PT Posn
_ (TS String
_ Int
10) -> Int#
11#;
        PT Posn
_ (TS String
_ Int
11) -> Int#
12#;
        PT Posn
_ (TS String
_ Int
12) -> Int#
13#;
        PT Posn
_ (TS String
_ Int
13) -> Int#
14#;
        PT Posn
_ (TS String
_ Int
14) -> Int#
15#;
        PT Posn
_ (TS String
_ Int
15) -> Int#
16#;
        PT Posn
_ (TS String
_ Int
16) -> Int#
17#;
        PT Posn
_ (TS String
_ Int
17) -> Int#
18#;
        PT Posn
_ (TS String
_ Int
18) -> Int#
19#;
        PT Posn
_ (TS String
_ Int
19) -> Int#
20#;
        PT Posn
_ (TS String
_ Int
20) -> Int#
21#;
        PT Posn
_ (TS String
_ Int
21) -> Int#
22#;
        PT Posn
_ (TS String
_ Int
22) -> Int#
23#;
        PT Posn
_ (TS String
_ Int
23) -> Int#
24#;
        PT Posn
_ (TS String
_ Int
24) -> Int#
25#;
        PT Posn
_ (TS String
_ Int
25) -> Int#
26#;
        PT Posn
_ (TS String
_ Int
26) -> Int#
27#;
        PT Posn
_ (TS String
_ Int
27) -> Int#
28#;
        PT Posn
_ (TS String
_ Int
28) -> Int#
29#;
        PT Posn
_ (TS String
_ Int
29) -> Int#
30#;
        PT Posn
_ (TS String
_ Int
30) -> Int#
31#;
        PT Posn
_ (TS String
_ Int
31) -> Int#
32#;
        PT Posn
_ (TS String
_ Int
32) -> Int#
33#;
        PT Posn
_ (TS String
_ Int
33) -> Int#
34#;
        PT Posn
_ (TS String
_ Int
34) -> Int#
35#;
        PT Posn
_ (TS String
_ Int
35) -> Int#
36#;
        PT Posn
_ (TS String
_ Int
36) -> Int#
37#;
        PT Posn
_ (TS String
_ Int
37) -> Int#
38#;
        PT Posn
_ (TS String
_ Int
38) -> Int#
39#;
        PT Posn
_ (TS String
_ Int
39) -> Int#
40#;
        PT Posn
_ (TC String
happy_dollar_dollar) -> Int#
41#;
        PT Posn
_ (TD String
happy_dollar_dollar) -> Int#
42#;
        PT Posn
_ (TI String
happy_dollar_dollar) -> Int#
43#;
        PT Posn
_ (TL String
happy_dollar_dollar) -> Int#
44#;
        PT Posn
_ (T_Identifier String
_) -> Int#
45#;
        Token
_ -> Int#
-1#;
        }
{-# NOINLINE happyTerminalToTok #-}

happyLex :: (t -> [a] -> t) -> (Int# -> Token -> [Token] -> t) -> [Token] -> t
happyLex t -> [a] -> t
kend  Int# -> Token -> [Token] -> t
_kmore []       = t -> [a] -> t
kend t
forall a. a
notHappyAtAll []
happyLex t -> [a] -> t
_kend Int# -> Token -> [Token] -> t
kmore  (Token
tk:[Token]
tks) = Int# -> Token -> [Token] -> t
kmore (Token -> Int#
happyTerminalToTok Token
tk) Token
tk [Token]
tks
{-# INLINE happyLex #-}

happyNewToken :: Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyNewToken Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk = (ZonkAny 0 -> [Token] -> Err HappyAbsSyn)
-> (Int# -> Token -> [Token] -> Err HappyAbsSyn)
-> [Token]
-> Err HappyAbsSyn
forall {t} {a} {t}.
(t -> [a] -> t) -> (Int# -> Token -> [Token] -> t) -> [Token] -> t
happyLex (\ZonkAny 0
tk -> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyDoAction Int#
46# Token
forall a. a
notHappyAtAll Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk) (\Int#
i Token
tk -> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyDoAction Int#
i Token
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk)

happyReport :: Int# -> Token -> [String] -> ([Token] -> Err a) -> [Token] -> Err a
happyReport Int#
46# Token
tk [String]
explist [Token] -> Err a
resume [Token]
tks = [Token] -> [String] -> ([Token] -> Err a) -> Err a
forall a. [Token] -> [String] -> ([Token] -> Err a) -> Err a
happyReport' [Token]
tks [String]
explist [Token] -> Err a
resume
happyReport Int#
_ Token
tk [String]
explist [Token] -> Err a
resume [Token]
tks = [Token] -> [String] -> ([Token] -> Err a) -> Err a
forall a. [Token] -> [String] -> ([Token] -> Err a) -> Err a
happyReport' (Token
tkToken -> [Token] -> [Token]
forall a. a -> [a] -> [a]
:[Token]
tks) [String]
explist (\[Token]
tks -> [Token] -> Err a
resume ([Token] -> [Token]
forall a. HasCallStack => [a] -> [a]
Happy_Prelude.tail [Token]
tks))


happyThen :: () => (Err a) -> (a -> (Err b)) -> (Err b)
happyThen :: forall a b. Err a -> (a -> Err b) -> Err b
happyThen = (Either String a -> (a -> Either String b) -> Either String b
forall a b. Err a -> (a -> Err b) -> Err b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
(>>=))
happyReturn :: () => a -> (Err a)
happyReturn :: forall a. a -> Err a
happyReturn = (a -> Either String a
forall a. a -> Err a
forall (m :: * -> *) a. Monad m => a -> m a
return)
happyThen1 :: m t -> (t -> t -> m b) -> t -> m b
happyThen1 m t
m t -> t -> m b
k t
tks = (forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
(>>=)) m t
m (\t
a -> t -> t -> m b
k t
a t
tks)
happyFmap1 :: (t -> b) -> (t -> Err t) -> t -> Err b
happyFmap1 t -> b
f t -> Err t
m t
tks = Err t -> (t -> Err b) -> Err b
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (t -> Err t
m t
tks) (\t
a -> b -> Err b
forall a. a -> Err a
happyReturn (t -> b
f t
a))
happyReturn1 :: () => a -> b -> (Err a)
happyReturn1 :: forall a b. a -> b -> Err a
happyReturn1 = \a
a b
tks -> (forall (m :: * -> *) a. Monad m => a -> m a
return) a
a
happyReport' :: () => [(Token)] -> [Happy_Prelude.String] -> ([(Token)] -> (Err a)) -> (Err a)
happyReport' :: forall a. [Token] -> [String] -> ([Token] -> Err a) -> Err a
happyReport' = (\[Token]
tokens [String]
expected [Token] -> Err a
resume -> [Token] -> Err a
forall a. [Token] -> Err a
happyError [Token]
tokens)

happyAbort :: () => [(Token)] -> (Err a)
happyAbort :: forall a. [Token] -> Err a
happyAbort = String -> [Token] -> Err a
forall a. HasCallStack => String -> a
Happy_Prelude.error String
"Called abort handler in non-resumptive parser"

pGrammar :: [Token] -> Err Grammar
pGrammar [Token]
tks = Err Grammar
happySomeParser where
 happySomeParser :: Err Grammar
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Grammar) -> Err Grammar
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
0# [Token]
tks) (\HappyAbsSyn
x -> Grammar -> Err Grammar
forall a. a -> Err a
happyReturn (let {(HappyWrap33 Grammar
x') = HappyAbsSyn -> HappyWrap33
happyOut33 HappyAbsSyn
x} in Grammar
x'))

pListDef :: [Token] -> Err [Def]
pListDef [Token]
tks = Err [Def]
happySomeParser where
 happySomeParser :: Err [Def]
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err [Def]) -> Err [Def]
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
1# [Token]
tks) (\HappyAbsSyn
x -> [Def] -> Err [Def]
forall a. a -> Err a
happyReturn (let {(HappyWrap34 [Def]
x') = HappyAbsSyn -> HappyWrap34
happyOut34 HappyAbsSyn
x} in [Def]
x'))

pDef :: [Token] -> Err Def
pDef [Token]
tks = Err Def
happySomeParser where
 happySomeParser :: Err Def
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Def) -> Err Def
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
2# [Token]
tks) (\HappyAbsSyn
x -> Def -> Err Def
forall a. a -> Err a
happyReturn (let {(HappyWrap35 Def
x') = HappyAbsSyn -> HappyWrap35
happyOut35 HappyAbsSyn
x} in Def
x'))

pItem :: [Token] -> Err Item
pItem [Token]
tks = Err Item
happySomeParser where
 happySomeParser :: Err Item
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Item) -> Err Item
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
3# [Token]
tks) (\HappyAbsSyn
x -> Item -> Err Item
forall a. a -> Err a
happyReturn (let {(HappyWrap36 Item
x') = HappyAbsSyn -> HappyWrap36
happyOut36 HappyAbsSyn
x} in Item
x'))

pListItem :: [Token] -> Err [Item]
pListItem [Token]
tks = Err [Item]
happySomeParser where
 happySomeParser :: Err [Item]
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err [Item]) -> Err [Item]
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
4# [Token]
tks) (\HappyAbsSyn
x -> [Item] -> Err [Item]
forall a. a -> Err a
happyReturn (let {(HappyWrap37 [Item]
x') = HappyAbsSyn -> HappyWrap37
happyOut37 HappyAbsSyn
x} in [Item]
x'))

pCat :: [Token] -> Err Cat
pCat [Token]
tks = Err Cat
happySomeParser where
 happySomeParser :: Err Cat
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Cat) -> Err Cat
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
5# [Token]
tks) (\HappyAbsSyn
x -> Cat -> Err Cat
forall a. a -> Err a
happyReturn (let {(HappyWrap38 Cat
x') = HappyAbsSyn -> HappyWrap38
happyOut38 HappyAbsSyn
x} in Cat
x'))

pListCat :: [Token] -> Err [Cat]
pListCat [Token]
tks = Err [Cat]
happySomeParser where
 happySomeParser :: Err [Cat]
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err [Cat]) -> Err [Cat]
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
6# [Token]
tks) (\HappyAbsSyn
x -> [Cat] -> Err [Cat]
forall a. a -> Err a
happyReturn (let {(HappyWrap39 [Cat]
x') = HappyAbsSyn -> HappyWrap39
happyOut39 HappyAbsSyn
x} in [Cat]
x'))

pLabel :: [Token] -> Err Label
pLabel [Token]
tks = Err Label
happySomeParser where
 happySomeParser :: Err Label
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Label) -> Err Label
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
7# [Token]
tks) (\HappyAbsSyn
x -> Label -> Err Label
forall a. a -> Err a
happyReturn (let {(HappyWrap40 Label
x') = HappyAbsSyn -> HappyWrap40
happyOut40 HappyAbsSyn
x} in Label
x'))

pArg :: [Token] -> Err Arg
pArg [Token]
tks = Err Arg
happySomeParser where
 happySomeParser :: Err Arg
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Arg) -> Err Arg
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
8# [Token]
tks) (\HappyAbsSyn
x -> Arg -> Err Arg
forall a. a -> Err a
happyReturn (let {(HappyWrap41 Arg
x') = HappyAbsSyn -> HappyWrap41
happyOut41 HappyAbsSyn
x} in Arg
x'))

pListArg :: [Token] -> Err [Arg]
pListArg [Token]
tks = Err [Arg]
happySomeParser where
 happySomeParser :: Err [Arg]
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err [Arg]) -> Err [Arg]
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
9# [Token]
tks) (\HappyAbsSyn
x -> [Arg] -> Err [Arg]
forall a. a -> Err a
happyReturn (let {(HappyWrap42 [Arg]
x') = HappyAbsSyn -> HappyWrap42
happyOut42 HappyAbsSyn
x} in [Arg]
x'))

pSeparation :: [Token] -> Err Separation
pSeparation [Token]
tks = Err Separation
happySomeParser where
 happySomeParser :: Err Separation
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err Separation) -> Err Separation
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
10# [Token]
tks) (\HappyAbsSyn
x -> Separation -> Err Separation
forall a. a -> Err a
happyReturn (let {(HappyWrap43 Separation
x') = HappyAbsSyn -> HappyWrap43
happyOut43 HappyAbsSyn
x} in Separation
x'))

pListString :: [Token] -> Err [String]
pListString [Token]
tks = Err [String]
happySomeParser where
 happySomeParser :: Err [String]
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err [String]) -> Err [String]
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
11# [Token]
tks) (\HappyAbsSyn
x -> [String] -> Err [String]
forall a. a -> Err a
happyReturn (let {(HappyWrap44 [String]
x') = HappyAbsSyn -> HappyWrap44
happyOut44 HappyAbsSyn
x} in [String]
x'))

pExp :: [Token] -> Err Exp
pExp [Token]
tks = Err Exp
happySomeParser where
 happySomeParser :: Err Exp
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Exp) -> Err Exp
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
12# [Token]
tks) (\HappyAbsSyn
x -> Exp -> Err Exp
forall a. a -> Err a
happyReturn (let {(HappyWrap45 Exp
x') = HappyAbsSyn -> HappyWrap45
happyOut45 HappyAbsSyn
x} in Exp
x'))

pExp1 :: [Token] -> Err Exp
pExp1 [Token]
tks = Err Exp
happySomeParser where
 happySomeParser :: Err Exp
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Exp) -> Err Exp
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
13# [Token]
tks) (\HappyAbsSyn
x -> Exp -> Err Exp
forall a. a -> Err a
happyReturn (let {(HappyWrap46 Exp
x') = HappyAbsSyn -> HappyWrap46
happyOut46 HappyAbsSyn
x} in Exp
x'))

pExp2 :: [Token] -> Err Exp
pExp2 [Token]
tks = Err Exp
happySomeParser where
 happySomeParser :: Err Exp
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Exp) -> Err Exp
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
14# [Token]
tks) (\HappyAbsSyn
x -> Exp -> Err Exp
forall a. a -> Err a
happyReturn (let {(HappyWrap47 Exp
x') = HappyAbsSyn -> HappyWrap47
happyOut47 HappyAbsSyn
x} in Exp
x'))

pListExp :: [Token] -> Err [Exp]
pListExp [Token]
tks = Err [Exp]
happySomeParser where
 happySomeParser :: Err [Exp]
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err [Exp]) -> Err [Exp]
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
15# [Token]
tks) (\HappyAbsSyn
x -> [Exp] -> Err [Exp]
forall a. a -> Err a
happyReturn (let {(HappyWrap48 [Exp]
x') = HappyAbsSyn -> HappyWrap48
happyOut48 HappyAbsSyn
x} in [Exp]
x'))

pListExp2 :: [Token] -> Err [Exp]
pListExp2 [Token]
tks = Err [Exp]
happySomeParser where
 happySomeParser :: Err [Exp]
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err [Exp]) -> Err [Exp]
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
16# [Token]
tks) (\HappyAbsSyn
x -> [Exp] -> Err [Exp]
forall a. a -> Err a
happyReturn (let {(HappyWrap49 [Exp]
x') = HappyAbsSyn -> HappyWrap49
happyOut49 HappyAbsSyn
x} in [Exp]
x'))

pRHS :: [Token] -> Err RHS
pRHS [Token]
tks = Err RHS
happySomeParser where
 happySomeParser :: Err RHS
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err RHS) -> Err RHS
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
17# [Token]
tks) (\HappyAbsSyn
x -> RHS -> Err RHS
forall a. a -> Err a
happyReturn (let {(HappyWrap50 RHS
x') = HappyAbsSyn -> HappyWrap50
happyOut50 HappyAbsSyn
x} in RHS
x'))

pListRHS :: [Token] -> Err [RHS]
pListRHS [Token]
tks = Err [RHS]
happySomeParser where
 happySomeParser :: Err [RHS]
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err [RHS]) -> Err [RHS]
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
18# [Token]
tks) (\HappyAbsSyn
x -> [RHS] -> Err [RHS]
forall a. a -> Err a
happyReturn (let {(HappyWrap51 [RHS]
x') = HappyAbsSyn -> HappyWrap51
happyOut51 HappyAbsSyn
x} in [RHS]
x'))

pMinimumSize :: [Token] -> Err MinimumSize
pMinimumSize [Token]
tks = Err MinimumSize
happySomeParser where
 happySomeParser :: Err MinimumSize
happySomeParser = Err HappyAbsSyn
-> (HappyAbsSyn -> Err MinimumSize) -> Err MinimumSize
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
19# [Token]
tks) (\HappyAbsSyn
x -> MinimumSize -> Err MinimumSize
forall a. a -> Err a
happyReturn (let {(HappyWrap52 MinimumSize
x') = HappyAbsSyn -> HappyWrap52
happyOut52 HappyAbsSyn
x} in MinimumSize
x'))

pReg :: [Token] -> Err Reg
pReg [Token]
tks = Err Reg
happySomeParser where
 happySomeParser :: Err Reg
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Reg) -> Err Reg
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
20# [Token]
tks) (\HappyAbsSyn
x -> Reg -> Err Reg
forall a. a -> Err a
happyReturn (let {(HappyWrap53 Reg
x') = HappyAbsSyn -> HappyWrap53
happyOut53 HappyAbsSyn
x} in Reg
x'))

pReg1 :: [Token] -> Err Reg
pReg1 [Token]
tks = Err Reg
happySomeParser where
 happySomeParser :: Err Reg
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Reg) -> Err Reg
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
21# [Token]
tks) (\HappyAbsSyn
x -> Reg -> Err Reg
forall a. a -> Err a
happyReturn (let {(HappyWrap54 Reg
x') = HappyAbsSyn -> HappyWrap54
happyOut54 HappyAbsSyn
x} in Reg
x'))

pReg2 :: [Token] -> Err Reg
pReg2 [Token]
tks = Err Reg
happySomeParser where
 happySomeParser :: Err Reg
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Reg) -> Err Reg
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
22# [Token]
tks) (\HappyAbsSyn
x -> Reg -> Err Reg
forall a. a -> Err a
happyReturn (let {(HappyWrap55 Reg
x') = HappyAbsSyn -> HappyWrap55
happyOut55 HappyAbsSyn
x} in Reg
x'))

pReg3 :: [Token] -> Err Reg
pReg3 [Token]
tks = Err Reg
happySomeParser where
 happySomeParser :: Err Reg
happySomeParser = Err HappyAbsSyn -> (HappyAbsSyn -> Err Reg) -> Err Reg
forall a b. Err a -> (a -> Err b) -> Err b
happyThen (Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
23# [Token]
tks) (\HappyAbsSyn
x -> Reg -> Err Reg
forall a. a -> Err a
happyReturn (let {(HappyWrap56 Reg
x') = HappyAbsSyn -> HappyWrap56
happyOut56 HappyAbsSyn
x} in Reg
x'))

happySeq :: a -> b -> b
happySeq = a -> b -> b
forall a b. a -> b -> b
happyDontSeq


type Err = Either String

happyError :: [Token] -> Err a
happyError :: forall a. [Token] -> Err a
happyError [Token]
ts = String -> Either String a
forall a b. a -> Either a b
Left (String -> Either String a) -> String -> Either String a
forall a b. (a -> b) -> a -> b
$
  String
"syntax error at " String -> String -> String
forall a. [a] -> [a] -> [a]
++ [Token] -> String
tokenPos [Token]
ts String -> String -> String
forall a. [a] -> [a] -> [a]
++
  case [Token]
ts of
    []      -> []
    [Err Posn
_] -> String
" due to lexer error"
    Token
t:[Token]
_     -> String
" before `" String -> String -> String
forall a. [a] -> [a] -> [a]
++ (Token -> String
prToken Token
t) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"'"

myLexer :: String -> [Token]
myLexer :: String -> [Token]
myLexer = String -> [Token]
tokens
#define HAPPY_COERCE 1
-- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $

#if !defined(__GLASGOW_HASKELL__)
#  error This code isn't being built with GHC.
#endif

-- Get WORDS_BIGENDIAN (if defined)
#include "MachDeps.h"

-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.
#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Happy_Prelude.Bool)
#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Happy_Prelude.Bool)
#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Happy_Prelude.Bool)
#define PLUS(n,m) (n Happy_GHC_Exts.+# m)
#define MINUS(n,m) (n Happy_GHC_Exts.-# m)
#define TIMES(n,m) (n Happy_GHC_Exts.*# m)
#define NEGATE(n) (Happy_GHC_Exts.negateInt# (n))

type Happy_Int = Happy_GHC_Exts.Int#
data Happy_IntList = HappyCons Happy_Int Happy_IntList

#define INVALID_TOK -1#
#define ERROR_TOK 0#
#define CATCH_TOK 1#

#if defined(HAPPY_COERCE)
#  define GET_ERROR_TOKEN(x)  (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# i) -> i })
#  define MK_ERROR_TOKEN(i)   (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# i))
#  define MK_TOKEN(x)         (happyInTok (x))
#else
#  define GET_ERROR_TOKEN(x)  (case x of { HappyErrorToken (Happy_GHC_Exts.I# i) -> i })
#  define MK_ERROR_TOKEN(i)   (HappyErrorToken (Happy_GHC_Exts.I# i))
#  define MK_TOKEN(x)         (HappyTerminal (x))
#endif

#if defined(HAPPY_DEBUG)
#  define DEBUG_TRACE(s)    (happyTrace (s)) Happy_Prelude.$
happyTrace string expr = Happy_System_IO_Unsafe.unsafePerformIO Happy_Prelude.$ do
    Happy_System_IO.hPutStr Happy_System_IO.stderr string
    Happy_Prelude.return expr
#else
#  define DEBUG_TRACE(s)    {- nothing -}
#endif

infixr 9 `HappyStk`
data HappyStk a = HappyStk a (HappyStk a)

-----------------------------------------------------------------------------
-- starting the parse

happyParse :: Int# -> [Token] -> Err HappyAbsSyn
happyParse Int#
start_state = Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyNewToken Int#
start_state Happy_IntList
forall a. a
notHappyAtAll HappyStk HappyAbsSyn
forall a. a
notHappyAtAll

-----------------------------------------------------------------------------
-- Accepting the parse

-- If the current token is ERROR_TOK, it means we've just accepted a partial
-- parse (a %partial parser).  We must ignore the saved token on the top of
-- the stack in this case.
happyAccept :: Int# -> p -> Int# -> p -> HappyStk a -> b -> Err a
happyAccept ERROR_TOK tk st sts (_ `HappyStk` ans `HappyStk` _) =
        happyReturn1 ans
happyAccept Int#
j p
tk Int#
st p
sts (HappyStk a
ans HappyStk a
_) =
        (Int# -> ((b -> Err a) -> b -> Err a) -> (b -> Err a) -> b -> Err a
forall a. Int# -> a -> a
happyTcHack Int#
j (Int# -> (b -> Err a) -> b -> Err a
forall a. Int# -> a -> a
happyTcHack Int#
st)) (a -> b -> Err a
forall a b. a -> b -> Err a
happyReturn1 a
ans)

-----------------------------------------------------------------------------
-- Arrays only: do the next action

happyDoAction :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyDoAction Int#
i Token
tk Int#
st =
  DEBUG_TRACE("state: " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++
              ",\ttoken: " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++
              ",\taction: ")
  case Int# -> HappyAction
happyDecodeAction (Int# -> Int# -> Int#
happyNextAction Int#
i Int#
st) of
    HappyAction
HappyFail             -> DEBUG_TRACE("failing.\n")
                             Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyFail Int#
i Token
tk Int#
st
    HappyAction
HappyAccept           -> DEBUG_TRACE("accept.\n")
                             Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
forall {p} {p} {a} {b}.
Int# -> p -> Int# -> p -> HappyStk a -> b -> Err a
happyAccept Int#
i Token
tk Int#
st
    HappyReduce Int#
rule      -> DEBUG_TRACE("reduce (rule " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# rule) Happy_Prelude.++ ")")
                             (Array
  Int
  (Int#
   -> Token
   -> Int#
   -> Happy_IntList
   -> HappyStk HappyAbsSyn
   -> [Token]
   -> Err HappyAbsSyn)
happyReduceArr Array
  Int
  (Int#
   -> Token
   -> Int#
   -> Happy_IntList
   -> HappyStk HappyAbsSyn
   -> [Token]
   -> Err HappyAbsSyn)
-> Int
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
forall i e. Ix i => Array i e -> i -> e
Happy_Data_Array.! (Int# -> Int
Happy_GHC_Exts.I# Int#
rule)) Int#
i Token
tk Int#
st
    HappyShift  Int#
new_state -> DEBUG_TRACE("shift, enter state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# new_state) Happy_Prelude.++ "\n")
                             Int#
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyShift Int#
new_state Int#
i Token
tk Int#
st

{-# INLINE happyNextAction #-}
happyNextAction :: Int# -> Int# -> Int#
happyNextAction Int#
i Int#
st = case Int# -> Int# -> Maybe Int
happyIndexActionTable Int#
i Int#
st of
  Happy_Prelude.Just (Happy_GHC_Exts.I# Int#
act) -> Int#
act
  Maybe Int
Happy_Prelude.Nothing                      -> HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyDefActions Int#
st

{-# INLINE happyIndexActionTable #-}
happyIndexActionTable :: Int# -> Int# -> Maybe Int
happyIndexActionTable Int#
i Int#
st
  | GTE(i, 0#), GTE(off, 0#), EQ(happyIndexOffAddr happyCheck off, i)
  -- i >= 0:   Guard against INVALID_TOK (do the default action, which ultimately errors)
  -- off >= 0: Otherwise it's a default action
  -- equality check: Ensure that the entry in the compressed array is owned by st
  = Int -> Maybe Int
forall a. a -> Maybe a
Happy_Prelude.Just (Int# -> Int
Happy_GHC_Exts.I# (HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyTable Int#
off))
  | Bool
Happy_Prelude.otherwise
  = Maybe Int
forall a. Maybe a
Happy_Prelude.Nothing
  where
    off :: Int#
off = PLUS(happyIndexOffAddr happyActOffsets st, i)

data HappyAction
  = HappyFail
  | HappyAccept
  | HappyReduce Happy_Int -- rule number
  | HappyShift Happy_Int  -- new state
  deriving Int -> HappyAction -> String -> String
[HappyAction] -> String -> String
HappyAction -> String
(Int -> HappyAction -> String -> String)
-> (HappyAction -> String)
-> ([HappyAction] -> String -> String)
-> Show HappyAction
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
$cshowsPrec :: Int -> HappyAction -> String -> String
showsPrec :: Int -> HappyAction -> String -> String
$cshow :: HappyAction -> String
show :: HappyAction -> String
$cshowList :: [HappyAction] -> String -> String
showList :: [HappyAction] -> String -> String
Happy_Prelude.Show

{-# INLINE happyDecodeAction #-}
happyDecodeAction :: Happy_Int -> HappyAction
happyDecodeAction :: Int# -> HappyAction
happyDecodeAction  Int#
0#                        = HappyAction
HappyFail
happyDecodeAction Int#
-1#                        = HappyAction
HappyAccept
happyDecodeAction Int#
action | LT(action, 0#)    = HappyReduce NEGATE(PLUS(action, 1#))
                         | Bool
Happy_Prelude.otherwise = Int# -> HappyAction
HappyShift MINUS(action, 1#)

{-# INLINE happyIndexGotoTable #-}
happyIndexGotoTable :: Int# -> Int# -> Int#
happyIndexGotoTable Int#
nt Int#
st = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyTable Int#
off
  where
    off :: Int#
off = PLUS(happyIndexOffAddr happyGotoOffsets st, nt)

{-# INLINE happyIndexOffAddr #-}
happyIndexOffAddr :: HappyAddr -> Happy_Int -> Happy_Int
happyIndexOffAddr :: HappyAddr -> Int# -> Int#
happyIndexOffAddr (HappyA# Addr#
arr) Int#
off =
#if __GLASGOW_HASKELL__ >= 901
  Int32# -> Int#
Happy_GHC_Exts.int32ToInt# -- qualified import because it doesn't exist on older GHC's
#endif
#ifdef WORDS_BIGENDIAN
  -- The CI of `alex` tests this code path
  (Happy_GHC_Exts.word32ToInt32# (Happy_GHC_Exts.wordToWord32# (Happy_GHC_Exts.byteSwap32# (Happy_GHC_Exts.word32ToWord# (Happy_GHC_Exts.int32ToWord32#
#endif
  (Addr# -> Int# -> Int32#
Happy_GHC_Exts.indexInt32OffAddr# Addr#
arr Int#
off)
#ifdef WORDS_BIGENDIAN
  )))))
#endif

happyIndexRuleArr :: Happy_Int -> (# Happy_Int, Happy_Int #)
happyIndexRuleArr :: Int# -> (# Int#, Int# #)
happyIndexRuleArr Int#
r = (# Int#
nt, Int#
len #)
  where
    !(Happy_GHC_Exts.I# Int#
n_starts) = Int
happy_n_starts
    offs :: Int#
offs = TIMES(MINUS(r,n_starts),2#)
    nt :: Int#
nt = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyRuleArr Int#
offs
    len :: Int#
len = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyRuleArr PLUS(offs,1#)

data HappyAddr = HappyA# Happy_GHC_Exts.Addr#

-----------------------------------------------------------------------------
-- Shifting a token

happyShift :: Int#
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyShift Int#
new_state ERROR_TOK tk st sts stk@(x `HappyStk` _) =
     -- See "Error Fixup" below
     let i = GET_ERROR_TOKEN(x) in
     DEBUG_TRACE("shifting the error token")
     happyDoAction i tk new_state (HappyCons st sts) stk

happyShift Int#
new_state Int#
i Token
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk =
     Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyNewToken Int#
new_state (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts) (MK_TOKEN(tk) `HappyStk` stk)

-- happyReduce is specialised for the common cases.

happySpecReduce_0 :: Int#
-> HappyAbsSyn
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_0 Int#
nt HappyAbsSyn
fn Int#
j Token
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk
     = HappyAbsSyn
-> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a b. a -> b -> b
happySeq HappyAbsSyn
fn (Int#
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyGoto Int#
nt Int#
j Token
tk Int#
st (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts) (HappyAbsSyn
fn HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
stk))

happySpecReduce_1 :: Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_1 Int#
nt HappyAbsSyn -> HappyAbsSyn
fn Int#
j Token
tk Int#
old_st sts :: Happy_IntList
sts@(HappyCons Int#
st Happy_IntList
_) (HappyAbsSyn
v1 `HappyStk` HappyStk HappyAbsSyn
stk')
     = let r :: HappyAbsSyn
r = HappyAbsSyn -> HappyAbsSyn
fn HappyAbsSyn
v1 in
       Int# -> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a. Int# -> a -> a
happyTcHack Int#
old_st (HappyAbsSyn
-> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a b. a -> b -> b
happySeq HappyAbsSyn
r (Int#
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyGoto Int#
nt Int#
j Token
tk Int#
st Happy_IntList
sts (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
stk')))

happySpecReduce_2 :: Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_2 Int#
nt HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
fn Int#
j Token
tk Int#
old_st
  (HappyCons Int#
_ sts :: Happy_IntList
sts@(HappyCons Int#
st Happy_IntList
_))
  (HappyAbsSyn
v1 `HappyStk` HappyAbsSyn
v2 `HappyStk` HappyStk HappyAbsSyn
stk')
     = let r :: HappyAbsSyn
r = HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
fn HappyAbsSyn
v1 HappyAbsSyn
v2 in
       Int# -> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a. Int# -> a -> a
happyTcHack Int#
old_st (HappyAbsSyn
-> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a b. a -> b -> b
happySeq HappyAbsSyn
r (Int#
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyGoto Int#
nt Int#
j Token
tk Int#
st Happy_IntList
sts (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
stk')))

happySpecReduce_3 :: Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happySpecReduce_3 Int#
nt HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
fn Int#
j Token
tk Int#
old_st
  (HappyCons Int#
_ (HappyCons Int#
_ sts :: Happy_IntList
sts@(HappyCons Int#
st Happy_IntList
_)))
  (HappyAbsSyn
v1 `HappyStk` HappyAbsSyn
v2 `HappyStk` HappyAbsSyn
v3 `HappyStk` HappyStk HappyAbsSyn
stk')
     = let r :: HappyAbsSyn
r = HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
fn HappyAbsSyn
v1 HappyAbsSyn
v2 HappyAbsSyn
v3 in
       Int# -> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a. Int# -> a -> a
happyTcHack Int#
old_st (HappyAbsSyn
-> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a b. a -> b -> b
happySeq HappyAbsSyn
r (Int#
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyGoto Int#
nt Int#
j Token
tk Int#
st Happy_IntList
sts (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
stk')))

happyReduce :: Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyReduce Int#
k Int#
nt HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
fn Int#
j Token
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk
     = case Int# -> Happy_IntList -> Happy_IntList
happyDrop MINUS(k,(1# :: Happy_Int)) sts of
         sts1 :: Happy_IntList
sts1@(HappyCons Int#
st1 Happy_IntList
_) ->
                let r :: HappyStk HappyAbsSyn
r = HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
fn HappyStk HappyAbsSyn
stk in -- it doesn't hurt to always seq here...
                Int#
st Int# -> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a. Int# -> a -> a
`happyTcHack` HappyStk HappyAbsSyn
-> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a b. a -> b -> b
happyDoSeq HappyStk HappyAbsSyn
r (Int#
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyGoto Int#
nt Int#
j Token
tk Int#
st1 Happy_IntList
sts1 HappyStk HappyAbsSyn
r)

happyMonadReduce :: Int#
-> Int#
-> (HappyStk HappyAbsSyn -> Token -> Err HappyAbsSyn)
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyMonadReduce Int#
k Int#
nt HappyStk HappyAbsSyn -> Token -> Err HappyAbsSyn
fn Int#
j Token
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk =
      case Int# -> Happy_IntList -> Happy_IntList
happyDrop Int#
k (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts) of
        sts1 :: Happy_IntList
sts1@(HappyCons Int#
st1 Happy_IntList
_) ->
          let drop_stk :: HappyStk HappyAbsSyn
drop_stk = Int# -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall {a}. Int# -> HappyStk a -> HappyStk a
happyDropStk Int#
k HappyStk HappyAbsSyn
stk in
          Int#
j Int# -> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a. Int# -> a -> a
`happyTcHack` Err HappyAbsSyn
-> (HappyAbsSyn -> [Token] -> Err HappyAbsSyn)
-> [Token]
-> Err HappyAbsSyn
forall {m :: * -> *} {t} {t} {b}.
Monad m =>
m t -> (t -> t -> m b) -> t -> m b
happyThen1 (HappyStk HappyAbsSyn -> Token -> Err HappyAbsSyn
fn HappyStk HappyAbsSyn
stk Token
tk)
                                     (\HappyAbsSyn
r -> Int#
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyGoto Int#
nt Int#
j Token
tk Int#
st1 Happy_IntList
sts1 (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
drop_stk))

happyMonad2Reduce :: Int#
-> Int#
-> (HappyStk HappyAbsSyn -> t -> Err HappyAbsSyn)
-> Int#
-> t
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyMonad2Reduce Int#
k Int#
nt HappyStk HappyAbsSyn -> t -> Err HappyAbsSyn
fn Int#
j t
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk =
      case Int# -> Happy_IntList -> Happy_IntList
happyDrop Int#
k (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts) of
        sts1 :: Happy_IntList
sts1@(HappyCons Int#
st1 Happy_IntList
_) ->
          let drop_stk :: HappyStk HappyAbsSyn
drop_stk = Int# -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall {a}. Int# -> HappyStk a -> HappyStk a
happyDropStk Int#
k HappyStk HappyAbsSyn
stk
              off :: Int#
off = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyGotoOffsets Int#
st1
              off_i :: Int#
off_i = PLUS(off, nt)
              new_state :: Int#
new_state = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyTable Int#
off_i
          in
            Int#
j Int# -> ([Token] -> Err HappyAbsSyn) -> [Token] -> Err HappyAbsSyn
forall a. Int# -> a -> a
`happyTcHack` Err HappyAbsSyn
-> (HappyAbsSyn -> [Token] -> Err HappyAbsSyn)
-> [Token]
-> Err HappyAbsSyn
forall {m :: * -> *} {t} {t} {b}.
Monad m =>
m t -> (t -> t -> m b) -> t -> m b
happyThen1 (HappyStk HappyAbsSyn -> t -> Err HappyAbsSyn
fn HappyStk HappyAbsSyn
stk t
tk)
                                       (\HappyAbsSyn
r -> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyNewToken Int#
new_state Happy_IntList
sts1 (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
drop_stk))

happyDrop :: Int# -> Happy_IntList -> Happy_IntList
happyDrop Int#
0# Happy_IntList
l               = Happy_IntList
l
happyDrop Int#
n  (HappyCons Int#
_ Happy_IntList
t) = Int# -> Happy_IntList -> Happy_IntList
happyDrop MINUS(n,(1# :: Happy_Int)) t

happyDropStk :: Int# -> HappyStk a -> HappyStk a
happyDropStk Int#
0# HappyStk a
l                 = HappyStk a
l
happyDropStk Int#
n  (a
x `HappyStk` HappyStk a
xs) = Int# -> HappyStk a -> HappyStk a
happyDropStk MINUS(n,(1#::Happy_Int)) xs

-----------------------------------------------------------------------------
-- Moving to a new state after a reduction

happyGoto :: Int#
-> Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyGoto Int#
nt Int#
j Token
tk Int#
st =
   DEBUG_TRACE(", goto state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# new_state) Happy_Prelude.++ "\n")
   Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyDoAction Int#
j Token
tk Int#
new_state
  where new_state :: Int#
new_state = Int# -> Int# -> Int#
happyIndexGotoTable Int#
nt Int#
st

{- Note [Error recovery]
~~~~~~~~~~~~~~~~~~~~~~~~
When there is no applicable action for the current lookahead token `tk`,
happy enters error recovery mode. Depending on whether the grammar file
declares the two action form `%error { abort } { report }` for
    Resumptive Error Handling,
it works in one (not resumptive) or two phases (resumptive):

 1. Fixup mode:
    Try to see if there is an action for the error token ERROR_TOK. If there
    is, do *not* emit an error and pretend instead that an `error` token was
    inserted.
    When there is no ERROR_TOK action, report an error.

    In non-resumptive error handling, calling the single error handler
    (e.g. `happyError`) will throw an exception and abort the parser.
    However, in resumptive error handling we enter *error resumption mode*.

 2. Error resumption mode:
    After reporting the error (with `report`), happy will attempt to find
    a good state stack to resume parsing in.
    For each candidate stack, it discards input until one of the candidates
    resumes (i.e. shifts the current input).
    If no candidate resumes before the end of input, resumption failed and
    calls the `abort` function, to much the same effect as in non-resumptive
    error handling.

    Candidate stacks are declared by the grammar author using the special
    `catch` terminal and called "catch frames".
    This mechanism is described in detail in Note [happyResume].

The `catch` resumption mechanism (2) is what usually is associated with
`error` in `bison` or `menhir`. Since `error` is used for the Fixup mechanism
(1) above, we call the corresponding token `catch`.
Furthermore, in constrast to `bison`, our implementation of `catch`
non-deterministically considers multiple catch frames on the stack for
resumption (See Note [Multiple catch frames]).

Note [happyResume]
~~~~~~~~~~~~~~~~~~
`happyResume` implements the resumption mechanism from Note [Error recovery].
It is best understood by example. Consider

Exp :: { String }
Exp : '1'                { "1" }
    | catch              { "catch" }
    | Exp '+' Exp %shift { $1 Happy_Prelude.++ " + " Happy_Prelude.++ $3 } -- %shift: associate 1 + 1 + 1 to the right
    | '(' Exp ')'        { "(" Happy_Prelude.++ $2 Happy_Prelude.++ ")" }

The idea of the use of `catch` here is that upon encountering a parse error
during expression parsing, we can gracefully degrade using the `catch` rule,
still producing a partial syntax tree and keep on parsing to find further
syntax errors.

Let's trace the parser state for input 11+1, which will error out after shifting 1.
After shifting, we have the following item stack (growing downwards and omitting
transitive closure items):

  State 0: %start_parseExp -> . Exp
  State 5: Exp -> '1' .

(Stack as a list of state numbers: [5,0].)
As Note [Error recovery] describes, we will first try Fixup mode.
That fails because no production can shift the `error` token.
Next we try Error resumption mode. This works as follows:

  1. Pop off the item stack until we find an item that can shift the `catch`
     token. (Implemented in `pop_items`.)
       * State 5 cannot shift catch. Pop.
       * State 0 can shift catch, which would transition into
          State 4: Exp -> catch .
     So record the *stack* `[4,0]` after doing the shift transition.
     We call this a *catch frame*, where the top is a *catch state*,
     corresponding to an item in which we just shifted a `catch` token.
     There can be multiple such catch stacks, see Note [Multiple catch frames].

  2. Discard tokens from the input until the lookahead can be shifted in one
     of the catch stacks. (Implemented in `discard_input_until_exp` and
     `some_catch_state_shifts`.)
       * We cannot shift the current lookahead '1' in state 4, so we discard
       * We *can* shift the next lookahead '+' in state 4, but only after
         reducing, which pops State 4 and goes to State 3:
           State 3: %start_parseExp -> Exp .
                    Exp -> Exp . '+' Exp
         Here we can shift '+'.
     As you can see, to implement this machinery we need to simulate
     the operation of the LALR automaton, especially reduction
     (`happySimulateReduce`).

Note [Multiple catch frames]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For fewer spurious error messages, it can be beneficial to trace multiple catch
items. Consider

Exp : '1'
    | catch
    | Exp '+' Exp %shift
    | '(' Exp ')'

Let's trace the parser state for input (;+1, which will error out after shifting (.
After shifting, we have the following item stack (growing downwards):

  State 0: %start_parseExp -> . Exp
  State 6: Exp -> '(' . Exp ')'

Upon error, we want to find items in the stack which can shift a catch token.
Note that both State 0 and State 6 can shift a catch token, transitioning into
  State 4: Exp -> catch .
Hence we record the catch frames `[4,6,0]` and `[4,0]` for possible resumption.

Which catch frame do we pick for resumption?
Note that resuming catch frame `[4,0]` will parse as "catch+1", whereas
resuming the innermost frame `[4,6,0]` corresponds to parsing "(catch+1".
The latter would keep discarding input until the closing ')' is found.
So we will discard + and 1, leading to a spurious syntax error at the end of
input, aborting the parse and never producing a partial syntax tree. Bad!

It is far preferable to resume with catch frame `[4,0]`, where we can resume
successfully on input +, so that is what we do.

In general, we pick the catch frame for resumption that discards the least
amount of input for a successful shift, preferring the topmost such catch frame.
-}

-- happyFail :: Happy_Int -> Token -> Happy_Int -> _
-- This function triggers Note [Error recovery].
-- If the current token is ERROR_TOK, phase (1) has failed and we might try
-- phase (2).
happyFail :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyFail ERROR_TOK = happyFixupFailed
happyFail Int#
i         = Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyTryFixup Int#
i

-- Enter Error Fixup (see Note [Error recovery]):
-- generate an error token, save the old token and carry on.
-- When a `happyShift` accepts the error token, we will pop off the error token
-- to resume parsing with the current lookahead `i`.
happyTryFixup :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyTryFixup Int#
i Token
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk =
  DEBUG_TRACE("entering `error` fixup.\n")
  Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyDoAction ERROR_TOK tk action sts (MK_ERROR_TOKEN(i) `HappyStk` stk)
  -- NB: `happyShift` will simply pop the error token and carry on with
  --     `tk`. Hence we don't change `tk` in the call here

-- See Note [Error recovery], phase (2).
-- Enter resumption mode after reporting the error by calling `happyResume`.
happyFixupFailed :: Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyFixupFailed Token
tk Int#
st Happy_IntList
sts (HappyAbsSyn
x `HappyStk` HappyStk HappyAbsSyn
stk) =
  let i :: Int#
i = GET_ERROR_TOKEN(x) in
  DEBUG_TRACE("`error` fixup failed.\n")
  let resume :: [Token] -> Err HappyAbsSyn
resume   = Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyResume Int#
i Token
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk
      expected :: [String]
expected = Int# -> Happy_IntList -> [String]
happyExpectedTokens Int#
st Happy_IntList
sts in
  Int#
-> Token
-> [String]
-> ([Token] -> Err HappyAbsSyn)
-> [Token]
-> Err HappyAbsSyn
forall {a}.
Int# -> Token -> [String] -> ([Token] -> Err a) -> [Token] -> Err a
happyReport Int#
i Token
tk [String]
expected [Token] -> Err HappyAbsSyn
resume

-- happyResume :: Happy_Int -> Token -> Happy_Int -> _
-- See Note [happyResume]
happyResume :: Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyResume Int#
i Token
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk = [(Happy_IntList, HappyStk HappyAbsSyn)]
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
pop_items [] Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk
  where
    !(Happy_GHC_Exts.I# Int#
n_starts) = Int
happy_n_starts   -- this is to test whether we have a start token
    !(Happy_GHC_Exts.I# Int#
eof_i) = Int
happy_n_terms Int -> Int -> Int
forall a. Num a => a -> a -> a
Happy_Prelude.- Int
1   -- this is the token number of the EOF token
    happy_list_to_list :: Happy_IntList -> [Happy_Prelude.Int]
    happy_list_to_list :: Happy_IntList -> [Int]
happy_list_to_list (HappyCons Int#
st Happy_IntList
sts)
      | LT(st, n_starts)
      = [(Int# -> Int
Happy_GHC_Exts.I# Int#
st)]
      | Bool
Happy_Prelude.otherwise
      = (Int# -> Int
Happy_GHC_Exts.I# Int#
st) Int -> [Int] -> [Int]
forall a. a -> [a] -> [a]
: Happy_IntList -> [Int]
happy_list_to_list Happy_IntList
sts

    -- See (1) of Note [happyResume]
    pop_items :: [(Happy_IntList, HappyStk HappyAbsSyn)]
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
pop_items [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk
      | LT(st, n_starts)
      = DEBUG_TRACE("reached start state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ ", ")
        if [(Happy_IntList, HappyStk HappyAbsSyn)] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
Happy_Prelude.null [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames_new
          then DEBUG_TRACE("no resumption.\n")
               [Token] -> Err HappyAbsSyn
forall a. [Token] -> Err a
happyAbort
          else DEBUG_TRACE("now discard input, trying to anchor in states " Happy_Prelude.++ Happy_Prelude.show (Happy_Prelude.map (happy_list_to_list . Happy_Prelude.fst) (Happy_Prelude.reverse catch_frames_new)) Happy_Prelude.++ ".\n")
               Int#
-> Token
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> [Token]
-> Err HappyAbsSyn
discard_input_until_exp Int#
i Token
tk ([(Happy_IntList, HappyStk HappyAbsSyn)]
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
forall a. [a] -> [a]
Happy_Prelude.reverse [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames_new)
      | (HappyCons Int#
st1 Happy_IntList
sts1) <- Happy_IntList
sts, HappyAbsSyn
_ `HappyStk` HappyStk HappyAbsSyn
stk1 <- HappyStk HappyAbsSyn
stk
      = [(Happy_IntList, HappyStk HappyAbsSyn)]
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
pop_items [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames_new Int#
st1 Happy_IntList
sts1 HappyStk HappyAbsSyn
stk1
      where
        !catch_frames_new :: [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames_new
          | HappyShift Int#
new_state <- Int# -> HappyAction
happyDecodeAction (Int# -> Int# -> Int#
happyNextAction CATCH_TOK st)
          , DEBUG_TRACE("can shift catch token in state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ ", into state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# new_state) Happy_Prelude.++ "\n")
            [(Happy_IntList, HappyStk HappyAbsSyn)] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
Happy_Prelude.null (((Happy_IntList, HappyStk HappyAbsSyn) -> Bool)
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
forall a. (a -> Bool) -> [a] -> [a]
Happy_Prelude.filter (\(HappyCons Int#
_ (HappyCons Int#
h Happy_IntList
_),HappyStk HappyAbsSyn
_) -> EQ(st,h)) catch_frames)
          = (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
new_state (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts), MK_ERROR_TOKEN(i) `HappyStk` stk):catch_frames -- MK_ERROR_TOKEN(i) is just some dummy that should not be accessed by user code
          | Bool
Happy_Prelude.otherwise
          = DEBUG_TRACE("already shifted or can't shift catch in " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ "\n")
            [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames

    -- See (2) of Note [happyResume]
    discard_input_until_exp :: Int#
-> Token
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> [Token]
-> Err HappyAbsSyn
discard_input_until_exp Int#
i Token
tk [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames
      | Happy_Prelude.Just (HappyCons Int#
st (HappyCons Int#
catch_st Happy_IntList
sts), HappyStk HappyAbsSyn
catch_frame) <- Int#
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> Maybe (Happy_IntList, HappyStk HappyAbsSyn)
forall {b}.
Int# -> [(Happy_IntList, b)] -> Maybe (Happy_IntList, b)
some_catch_state_shifts Int#
i [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames
      = DEBUG_TRACE("found expected token in state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ " after shifting from " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# catch_st) Happy_Prelude.++ ": " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++ "\n")
        Int#
-> Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Token]
-> Err HappyAbsSyn
happyDoAction Int#
i Token
tk Int#
st (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
catch_st Happy_IntList
sts) HappyStk HappyAbsSyn
catch_frame
      | EQ(i,eof_i) -- is i EOF?
      = DEBUG_TRACE("reached EOF, cannot resume. abort parse :(\n")
        [Token] -> Err HappyAbsSyn
forall a. [Token] -> Err a
happyAbort
      | Bool
Happy_Prelude.otherwise
      = DEBUG_TRACE("discard token " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++ "\n")
        (Token -> [Token] -> Err HappyAbsSyn)
-> (Int# -> Token -> [Token] -> Err HappyAbsSyn)
-> [Token]
-> Err HappyAbsSyn
forall {t} {a} {t}.
(t -> [a] -> t) -> (Int# -> Token -> [Token] -> t) -> [Token] -> t
happyLex (\Token
eof_tk -> Int#
-> Token
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> [Token]
-> Err HappyAbsSyn
discard_input_until_exp Int#
eof_i Token
eof_tk [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames) -- eof
                 (\Int#
i Token
tk   -> Int#
-> Token
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> [Token]
-> Err HappyAbsSyn
discard_input_until_exp Int#
i Token
tk [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames)         -- not eof

    some_catch_state_shifts :: Int# -> [(Happy_IntList, b)] -> Maybe (Happy_IntList, b)
some_catch_state_shifts Int#
_ [] = DEBUG_TRACE("no catch state could shift.\n") Happy_Prelude.Nothing
    some_catch_state_shifts Int#
i catch_frames :: [(Happy_IntList, b)]
catch_frames@(((HappyCons Int#
st Happy_IntList
sts),b
_):[(Happy_IntList, b)]
_) = Int#
-> Int#
-> Happy_IntList
-> [(Happy_IntList, b)]
-> Maybe (Happy_IntList, b)
try_head Int#
i Int#
st Happy_IntList
sts [(Happy_IntList, b)]
catch_frames
      where
        try_head :: Int#
-> Int#
-> Happy_IntList
-> [(Happy_IntList, b)]
-> Maybe (Happy_IntList, b)
try_head Int#
i Int#
st Happy_IntList
sts [(Happy_IntList, b)]
catch_frames = -- PRECONDITION: head catch_frames = (HappyCons st sts)
          DEBUG_TRACE("trying token " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++ " in state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ ": ")
          case Int# -> HappyAction
happyDecodeAction (Int# -> Int# -> Int#
happyNextAction Int#
i Int#
st) of
            HappyAction
HappyFail     -> DEBUG_TRACE("fail.\n")   some_catch_state_shifts i (Happy_Prelude.tail catch_frames)
            HappyAction
HappyAccept   -> DEBUG_TRACE("accept.\n") Happy_Prelude.Just (Happy_Prelude.head catch_frames)
            HappyShift Int#
_  -> DEBUG_TRACE("shift.\n")  Happy_Prelude.Just (Happy_Prelude.head catch_frames)
            HappyReduce Int#
r -> case Int# -> Int# -> Happy_IntList -> Happy_IntList
happySimulateReduce Int#
r Int#
st Happy_IntList
sts of
              (HappyCons Int#
st1 Happy_IntList
sts1) -> Int#
-> Int#
-> Happy_IntList
-> [(Happy_IntList, b)]
-> Maybe (Happy_IntList, b)
try_head Int#
i Int#
st1 Happy_IntList
sts1 [(Happy_IntList, b)]
catch_frames

happySimulateReduce :: Int# -> Int# -> Happy_IntList -> Happy_IntList
happySimulateReduce Int#
r Int#
st Happy_IntList
sts =
  DEBUG_TRACE("simulate reduction of rule " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# r) Happy_Prelude.++ ", ")
  let (# Int#
nt, Int#
len #) = Int# -> (# Int#, Int# #)
happyIndexRuleArr Int#
r in
  DEBUG_TRACE("nt " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# nt) Happy_Prelude.++ ", len: " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# len) Happy_Prelude.++ ", new_st ")
  let !(sts1 :: Happy_IntList
sts1@(HappyCons Int#
st1 Happy_IntList
_)) = Int# -> Happy_IntList -> Happy_IntList
happyDrop Int#
len (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts)
      new_st :: Int#
new_st = Int# -> Int# -> Int#
happyIndexGotoTable Int#
nt Int#
st1 in
  DEBUG_TRACE(Happy_Prelude.show (Happy_GHC_Exts.I# new_st) Happy_Prelude.++ ".\n")
  (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
new_st Happy_IntList
sts1)

happyTokenToString :: Happy_Prelude.Int -> Happy_Prelude.String
happyTokenToString :: Int -> String
happyTokenToString Int
i = [String]
happyTokenStrings [String] -> Int -> String
forall a. HasCallStack => [a] -> Int -> a
Happy_Prelude.!! (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
Happy_Prelude.- Int
2) -- 2: errorTok, catchTok

happyExpectedTokens :: Happy_Int -> Happy_IntList -> [Happy_Prelude.String]
-- Upon a parse error, we want to suggest tokens that are expected in that
-- situation. This function computes such tokens.
-- It works by examining the top of the state stack.
-- For every token number that does a shift transition, record that token number.
-- For every token number that does a reduce transition, simulate that reduction
-- on the state state stack and repeat.
-- The recorded token numbers are then formatted with 'happyTokenToString' and
-- returned.
happyExpectedTokens :: Int# -> Happy_IntList -> [String]
happyExpectedTokens Int#
st Happy_IntList
sts =
  DEBUG_TRACE("constructing expected tokens.\n")
  (Int -> String) -> [Int] -> [String]
forall a b. (a -> b) -> [a] -> [b]
Happy_Prelude.map Int -> String
happyTokenToString (Int# -> Happy_IntList -> [Int] -> [Int]
search_shifts Int#
st Happy_IntList
sts [])
  where
    search_shifts :: Int# -> Happy_IntList -> [Int] -> [Int]
search_shifts Int#
st Happy_IntList
sts [Int]
shifts = ((Int, Int) -> [Int] -> [Int]) -> [Int] -> [(Int, Int)] -> [Int]
forall a b. (a -> b -> b) -> b -> [a] -> b
forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
Happy_Prelude.foldr (Int# -> Happy_IntList -> (Int, Int) -> [Int] -> [Int]
add_action Int#
st Happy_IntList
sts) [Int]
shifts (Int# -> [(Int, Int)]
distinct_actions Int#
st)
    add_action :: Int# -> Happy_IntList -> (Int, Int) -> [Int] -> [Int]
add_action Int#
st Happy_IntList
sts (Happy_GHC_Exts.I# Int#
i, Happy_GHC_Exts.I# Int#
act) [Int]
shifts =
      DEBUG_TRACE("found action in state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ ", input " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++ ", " Happy_Prelude.++ Happy_Prelude.show (happyDecodeAction act) Happy_Prelude.++ "\n")
      case Int# -> HappyAction
happyDecodeAction Int#
act of
        HappyAction
HappyFail     -> [Int]
shifts
        HappyAction
HappyAccept   -> [Int]
shifts -- This would always be %eof or error... Not helpful
        HappyShift Int#
_  -> Int -> [Int] -> [Int]
forall a. Ord a => a -> [a] -> [a]
Happy_Prelude.insert (Int# -> Int
Happy_GHC_Exts.I# Int#
i) [Int]
shifts
        HappyReduce Int#
r -> case Int# -> Int# -> Happy_IntList -> Happy_IntList
happySimulateReduce Int#
r Int#
st Happy_IntList
sts of
          (HappyCons Int#
st1 Happy_IntList
sts1) -> Int# -> Happy_IntList -> [Int] -> [Int]
search_shifts Int#
st1 Happy_IntList
sts1 [Int]
shifts
    distinct_actions :: Int# -> [(Int, Int)]
distinct_actions Int#
st
      -- The (token number, action) pairs of all actions in the given state
      = ((-Int
1), (Int# -> Int
Happy_GHC_Exts.I# (HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyDefActions Int#
st)))
      (Int, Int) -> [(Int, Int)] -> [(Int, Int)]
forall a. a -> [a] -> [a]
: [ (Int
i, Int
act) | Int
i <- [Int
begin_i..Int
happy_n_terms], Int
act <- Int# -> Int -> [Int]
get_act Int#
row_off Int
i ]
      where
        row_off :: Int#
row_off = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyActOffsets Int#
st
        begin_i :: Int
begin_i = Int
2 -- +2: errorTok,catchTok
    get_act :: Int# -> Int -> [Int]
get_act Int#
off (Happy_GHC_Exts.I# Int#
i) -- happyIndexActionTable with cached row offset
      | let off_i :: Int#
off_i = PLUS(off,i)
      , GTE(off_i,0#)
      , EQ(happyIndexOffAddr happyCheck off_i,i)
      = [(Int# -> Int
Happy_GHC_Exts.I# (HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyTable Int#
off_i))]
      | Bool
Happy_Prelude.otherwise
      = []

-- Internal happy errors:

notHappyAtAll :: a
notHappyAtAll :: forall a. a
notHappyAtAll = String -> a
forall a. HasCallStack => String -> a
Happy_Prelude.error String
"Internal Happy parser panic. This is not supposed to happen! Please open a bug report at https://github.com/haskell/happy/issues.\n"

-----------------------------------------------------------------------------
-- Hack to get the typechecker to accept our action functions

happyTcHack :: Happy_Int -> a -> a
happyTcHack :: forall a. Int# -> a -> a
happyTcHack Int#
x a
y = a
y
{-# INLINE happyTcHack #-}

-----------------------------------------------------------------------------
-- Seq-ing.  If the --strict flag is given, then Happy emits
--      happySeq = happyDoSeq
-- otherwise it emits
--      happySeq = happyDontSeq

happyDoSeq, happyDontSeq :: a -> b -> b
happyDoSeq :: forall a b. a -> b -> b
happyDoSeq   a
a b
b = a
a a -> b -> b
forall a b. a -> b -> b
`Happy_GHC_Exts.seq` b
b
happyDontSeq :: forall a b. a -> b -> b
happyDontSeq a
a b
b = b
b

-----------------------------------------------------------------------------
-- Don't inline any functions from the template.  GHC has a nasty habit
-- of deciding to inline happyGoto everywhere, which increases the size of
-- the generated parser quite a bit.

{-# NOINLINE happyDoAction #-}
{-# NOINLINE happyTable #-}
{-# NOINLINE happyCheck #-}
{-# NOINLINE happyActOffsets #-}
{-# NOINLINE happyGotoOffsets #-}
{-# NOINLINE happyDefActions #-}

{-# NOINLINE happyShift #-}
{-# NOINLINE happySpecReduce_0 #-}
{-# NOINLINE happySpecReduce_1 #-}
{-# NOINLINE happySpecReduce_2 #-}
{-# NOINLINE happySpecReduce_3 #-}
{-# NOINLINE happyReduce #-}
{-# NOINLINE happyMonadReduce #-}
{-# NOINLINE happyGoto #-}
{-# NOINLINE happyFail #-}

-- end of Happy Template.