{-# OPTIONS_GHC -w #-}
{-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-}
#if __GLASGOW_HASKELL__ >= 710
{-# OPTIONS_GHC -XPartialTypeSignatures #-}
#endif
{-# LANGUAGE CPP               #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell   #-}
module Language.Happy.Parser
    ( parseGrammar
    , source
    ) where

import qualified Data.ByteString       as BS
import           Data.FileEmbed        (embedFile)
import           Data.Fix              (Fix (..))
import           Data.Text             (Text)
import qualified Data.Text             as Text
import           Language.Happy.Ast    (Node, NodeF (..))
import           Language.Happy.Lexer  (Alex, AlexPosn (..), Lexeme (..),
                                        alexError, alexMonadScan)
import           Language.Happy.Tokens (LexemeClass (..))
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 1.20.1.1

newtype HappyAbsSyn  = HappyAbsSyn HappyAny
#if __GLASGOW_HASKELL__ >= 607
type HappyAny = Happy_GHC_Exts.Any
#else
type HappyAny = forall a . a
#endif
newtype HappyWrap4 = HappyWrap4 (NonTerm)
happyIn4 :: (NonTerm) -> (HappyAbsSyn )
happyIn4 :: NonTerm -> HappyAbsSyn
happyIn4 NonTerm
x = HappyWrap4 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (NonTerm -> HappyWrap4
HappyWrap4 NonTerm
x)
{-# INLINE happyIn4 #-}
happyOut4 :: (HappyAbsSyn ) -> HappyWrap4
happyOut4 :: HappyAbsSyn -> HappyWrap4
happyOut4 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap4
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut4 #-}
newtype HappyWrap5 = HappyWrap5 ([Term])
happyIn5 :: ([Term]) -> (HappyAbsSyn )
happyIn5 :: [Term] -> HappyAbsSyn
happyIn5 [Term]
x = HappyWrap5 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([Term] -> HappyWrap5
HappyWrap5 [Term]
x)
{-# INLINE happyIn5 #-}
happyOut5 :: (HappyAbsSyn ) -> HappyWrap5
happyOut5 :: HappyAbsSyn -> HappyWrap5
happyOut5 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap5
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut5 #-}
newtype HappyWrap6 = HappyWrap6 ([NonTerm])
happyIn6 :: ([NonTerm]) -> (HappyAbsSyn )
happyIn6 :: [NonTerm] -> HappyAbsSyn
happyIn6 [NonTerm]
x = HappyWrap6 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([NonTerm] -> HappyWrap6
HappyWrap6 [NonTerm]
x)
{-# INLINE happyIn6 #-}
happyOut6 :: (HappyAbsSyn ) -> HappyWrap6
happyOut6 :: HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap6
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut6 #-}
newtype HappyWrap7 = HappyWrap7 (NonTerm)
happyIn7 :: (NonTerm) -> (HappyAbsSyn )
happyIn7 :: NonTerm -> HappyAbsSyn
happyIn7 NonTerm
x = HappyWrap7 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (NonTerm -> HappyWrap7
HappyWrap7 NonTerm
x)
{-# INLINE happyIn7 #-}
happyOut7 :: (HappyAbsSyn ) -> HappyWrap7
happyOut7 :: HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap7
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut7 #-}
newtype HappyWrap8 = HappyWrap8 ([Term])
happyIn8 :: ([Term]) -> (HappyAbsSyn )
happyIn8 :: [Term] -> HappyAbsSyn
happyIn8 [Term]
x = HappyWrap8 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([Term] -> HappyWrap8
HappyWrap8 [Term]
x)
{-# INLINE happyIn8 #-}
happyOut8 :: (HappyAbsSyn ) -> HappyWrap8
happyOut8 :: HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap8
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut8 #-}
newtype HappyWrap9 = HappyWrap9 ([NonTerm])
happyIn9 :: ([NonTerm]) -> (HappyAbsSyn )
happyIn9 :: [NonTerm] -> HappyAbsSyn
happyIn9 [NonTerm]
x = HappyWrap9 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([NonTerm] -> HappyWrap9
HappyWrap9 [NonTerm]
x)
{-# INLINE happyIn9 #-}
happyOut9 :: (HappyAbsSyn ) -> HappyWrap9
happyOut9 :: HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap9
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut9 #-}
newtype HappyWrap10 = HappyWrap10 (NonTerm)
happyIn10 :: (NonTerm) -> (HappyAbsSyn )
happyIn10 :: NonTerm -> HappyAbsSyn
happyIn10 NonTerm
x = HappyWrap10 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (NonTerm -> HappyWrap10
HappyWrap10 NonTerm
x)
{-# INLINE happyIn10 #-}
happyOut10 :: (HappyAbsSyn ) -> HappyWrap10
happyOut10 :: HappyAbsSyn -> HappyWrap10
happyOut10 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap10
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut10 #-}
newtype HappyWrap11 = HappyWrap11 (Term)
happyIn11 :: (Term) -> (HappyAbsSyn )
happyIn11 :: Term -> HappyAbsSyn
happyIn11 Term
x = HappyWrap11 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (Term -> HappyWrap11
HappyWrap11 Term
x)
{-# INLINE happyIn11 #-}
happyOut11 :: (HappyAbsSyn ) -> HappyWrap11
happyOut11 :: HappyAbsSyn -> HappyWrap11
happyOut11 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap11
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut11 #-}
newtype HappyWrap12 = HappyWrap12 ([NonTerm])
happyIn12 :: ([NonTerm]) -> (HappyAbsSyn )
happyIn12 :: [NonTerm] -> HappyAbsSyn
happyIn12 [NonTerm]
x = HappyWrap12 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([NonTerm] -> HappyWrap12
HappyWrap12 [NonTerm]
x)
{-# INLINE happyIn12 #-}
happyOut12 :: (HappyAbsSyn ) -> HappyWrap12
happyOut12 :: HappyAbsSyn -> HappyWrap12
happyOut12 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap12
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut12 #-}
newtype HappyWrap13 = HappyWrap13 (NonTerm)
happyIn13 :: (NonTerm) -> (HappyAbsSyn )
happyIn13 :: NonTerm -> HappyAbsSyn
happyIn13 NonTerm
x = HappyWrap13 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (NonTerm -> HappyWrap13
HappyWrap13 NonTerm
x)
{-# INLINE happyIn13 #-}
happyOut13 :: (HappyAbsSyn ) -> HappyWrap13
happyOut13 :: HappyAbsSyn -> HappyWrap13
happyOut13 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap13
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut13 #-}
newtype HappyWrap14 = HappyWrap14 (NonTerm)
happyIn14 :: (NonTerm) -> (HappyAbsSyn )
happyIn14 :: NonTerm -> HappyAbsSyn
happyIn14 NonTerm
x = HappyWrap14 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (NonTerm -> HappyWrap14
HappyWrap14 NonTerm
x)
{-# INLINE happyIn14 #-}
happyOut14 :: (HappyAbsSyn ) -> HappyWrap14
happyOut14 :: HappyAbsSyn -> HappyWrap14
happyOut14 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap14
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut14 #-}
newtype HappyWrap15 = HappyWrap15 (NonTerm)
happyIn15 :: (NonTerm) -> (HappyAbsSyn )
happyIn15 :: NonTerm -> HappyAbsSyn
happyIn15 NonTerm
x = HappyWrap15 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (NonTerm -> HappyWrap15
HappyWrap15 NonTerm
x)
{-# INLINE happyIn15 #-}
happyOut15 :: (HappyAbsSyn ) -> HappyWrap15
happyOut15 :: HappyAbsSyn -> HappyWrap15
happyOut15 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap15
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut15 #-}
newtype HappyWrap16 = HappyWrap16 ([NonTerm])
happyIn16 :: ([NonTerm]) -> (HappyAbsSyn )
happyIn16 :: [NonTerm] -> HappyAbsSyn
happyIn16 [NonTerm]
x = HappyWrap16 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([NonTerm] -> HappyWrap16
HappyWrap16 [NonTerm]
x)
{-# INLINE happyIn16 #-}
happyOut16 :: (HappyAbsSyn ) -> HappyWrap16
happyOut16 :: HappyAbsSyn -> HappyWrap16
happyOut16 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap16
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut16 #-}
newtype HappyWrap17 = HappyWrap17 (NonTerm)
happyIn17 :: (NonTerm) -> (HappyAbsSyn )
happyIn17 :: NonTerm -> HappyAbsSyn
happyIn17 NonTerm
x = HappyWrap17 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (NonTerm -> HappyWrap17
HappyWrap17 NonTerm
x)
{-# INLINE happyIn17 #-}
happyOut17 :: (HappyAbsSyn ) -> HappyWrap17
happyOut17 :: HappyAbsSyn -> HappyWrap17
happyOut17 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap17
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut17 #-}
happyInTok :: (Term) -> (HappyAbsSyn )
happyInTok :: Term -> HappyAbsSyn
happyInTok Term
x = Term -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# Term
x
{-# INLINE happyInTok #-}
happyOutTok :: (HappyAbsSyn ) -> (Term)
happyOutTok :: HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
x = HappyAbsSyn -> Term
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOutTok #-}


happyExpList :: HappyAddr
happyExpList :: HappyAddr
happyExpList = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\xfc\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xff\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x04\x00\x20\x00\x20\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x02\x00\x00\x00\x20\x00\x20\x00\x00\x02\x00\x02\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x20\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x20\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x20\x00\x00\x00\x00\x00\x00\x60\x00\x20\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x02\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#

{-# NOINLINE happyExpListPerState #-}
happyExpListPerState :: Int -> [a]
happyExpListPerState Int
st =
    [a]
token_strs_expected
  where token_strs :: [a]
token_strs = [a
"error",a
"%dummy",a
"%start_parseGrammar",a
"Grammar",a
"Code",a
"Pragmas",a
"Pragma",a
"TokenNames",a
"Tokens",a
"Token",a
"TokenName",a
"Rules",a
"Rule",a
"RuleType",a
"RuleDefn",a
"RuleLines",a
"RuleLine",a
"ID_NAME",a
"'{}'",a
"'%errorhandlertype'",a
"'%error'",a
"'%expect'",a
"'%left'",a
"'%lexer'",a
"'%monad'",a
"'%name'",a
"'%right'",a
"'%token'",a
"'%tokentype'",a
"'%%'",a
"'::'",a
"':'",a
"'|'",a
"LIT_STRING",a
"LIT_INTEGER",a
"%eof"]
        bit_start :: Int
bit_start = Int
st Int -> Int -> Int
forall a. Num a => a -> a -> a
Prelude.* Int
36
        bit_end :: Int
bit_end = (Int
st Int -> Int -> Int
forall a. Num a => a -> a -> a
Prelude.+ Int
1) Int -> Int -> Int
forall a. Num a => a -> a -> a
Prelude.* Int
36
        read_bit :: Int -> Bool
read_bit = HappyAddr -> Int -> Bool
readArrayBit HappyAddr
happyExpList
        bits :: [Bool]
bits = (Int -> Bool) -> [Int] -> [Bool]
forall a b. (a -> b) -> [a] -> [b]
Prelude.map Int -> Bool
read_bit [Int
bit_start..Int
bit_end Int -> Int -> Int
forall a. Num a => a -> a -> a
Prelude.- Int
1]
        bits_indexed :: [(Bool, Int)]
bits_indexed = [Bool] -> [Int] -> [(Bool, Int)]
forall a b. [a] -> [b] -> [(a, b)]
Prelude.zip [Bool]
bits [Int
0..Int
35]
        token_strs_expected :: [a]
token_strs_expected = ((Bool, Int) -> [a]) -> [(Bool, Int)] -> [a]
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
Prelude.concatMap (Bool, Int) -> [a]
f [(Bool, Int)]
bits_indexed
        f :: (Bool, Int) -> [a]
f (Bool
Prelude.False, Int
_) = []
        f (Bool
Prelude.True, Int
nr) = [[a]
token_strs [a] -> Int -> a
forall a. [a] -> Int -> a
Prelude.!! Int
nr]

happyActOffsets :: HappyAddr
happyActOffsets :: HappyAddr
happyActOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\xff\xff\xff\xff\x04\x00\x00\x00\xf2\xff\x12\x00\x00\x00\x00\x00\x10\x00\x11\x00\x0f\x00\x03\x00\x33\x00\x3e\x00\x2f\x00\x03\x00\x03\x00\x3f\x00\x00\x00\x03\x00\x00\x00\x40\x00\x00\x00\x00\x00\x03\x00\x00\x00\x42\x00\x00\x00\x43\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x24\x00\x00\x00\x46\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x2c\x00\x48\x00\x00\x00\x03\x00\x00\x00\x01\x00\x3b\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00"#

happyGotoOffsets :: HappyAddr
happyGotoOffsets :: HappyAddr
happyGotoOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\x39\x00\x4b\x00\x3a\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x2d\x00\x00\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x21\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x49\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00"#

happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#
happyAdjustOffset :: Int# -> Int#
happyAdjustOffset Int#
off = Int#
off

happyDefActions :: HappyAddr
happyDefActions :: HappyAddr
happyDefActions = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x00\x00\x00\x00\xfd\xff\x00\x00\x00\x00\xfb\xff\xfc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xff\xf2\xff\xed\xff\x00\x00\xe9\xff\xea\xff\xf0\xff\xef\xff\x00\x00\xf4\xff\x00\x00\xf1\xff\xf9\xff\xf6\xff\xf7\xff\xfa\xff\x00\x00\x00\x00\xe8\xff\x00\x00\x00\x00\xee\xff\xf5\xff\xf8\xff\xeb\xff\xec\xff\x00\x00\xe6\xff\x00\x00\xfe\xff\xe7\xff\x00\x00\xe5\xff\x00\x00\xe4\xff\xe3\xff\x00\x00\xe1\xff\xe2\xff"#

happyCheck :: HappyAddr
happyCheck :: HappyAddr
happyCheck = Addr# -> HappyAddr
HappyA# Addr#
"\xff\xff\x02\x00\x01\x00\x02\x00\x01\x00\x13\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x01\x00\x11\x00\x02\x00\x11\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x04\x00\x12\x00\x01\x00\x07\x00\x04\x00\x01\x00\x02\x00\x07\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x04\x00\x0d\x00\x04\x00\x07\x00\x01\x00\x07\x00\x05\x00\x06\x00\x07\x00\x02\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x01\x00\x0f\x00\x02\x00\x03\x00\x06\x00\x07\x00\x02\x00\x02\x00\x02\x00\x01\x00\x0e\x00\x02\x00\x01\x00\x01\x00\x07\x00\x02\x00\x02\x00\x10\x00\x01\x00\x03\x00\xff\xff\x0b\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#

happyTable :: HappyAddr
happyTable :: HappyAddr
happyTable = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x04\x00\x17\x00\x38\x00\x17\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x21\x00\x18\x00\x20\x00\x18\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x23\x00\x33\x00\x1f\x00\x2f\x00\x19\x00\x33\x00\x27\x00\x04\x00\x19\x00\x34\x00\x35\x00\x30\x00\x25\x00\x1d\x00\x38\x00\x18\x00\x19\x00\x1b\x00\x19\x00\x13\x00\x14\x00\x15\x00\x1d\x00\x23\x00\x24\x00\x25\x00\x04\x00\x02\x00\x32\x00\x05\x00\x06\x00\x2b\x00\x15\x00\x1c\x00\x13\x00\x2b\x00\x2a\x00\x2d\x00\x29\x00\x27\x00\x2f\x00\x27\x00\x33\x00\x08\x00\x37\x00\x02\x00\x21\x00\x00\x00\x2d\x00\x27\x00\x00\x00\x00\x00\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#
   -> Term
   -> Int#
   -> Happy_IntList
   -> HappyStk HappyAbsSyn
   -> Alex HappyAbsSyn)
happyReduceArr = (Int, Int)
-> [(Int,
     Int#
     -> Term
     -> Int#
     -> Happy_IntList
     -> HappyStk HappyAbsSyn
     -> Alex HappyAbsSyn)]
-> Array
     Int
     (Int#
      -> Term
      -> Int#
      -> Happy_IntList
      -> HappyStk HappyAbsSyn
      -> Alex HappyAbsSyn)
forall i e. Ix i => (i, i) -> [(i, e)] -> Array i e
Happy_Data_Array.array (Int
1, Int
30) [
	(Int
1 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_1),
	(Int
2 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_2),
	(Int
3 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_3),
	(Int
4 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_4),
	(Int
5 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_5),
	(Int
6 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_6),
	(Int
7 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_7),
	(Int
8 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_8),
	(Int
9 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_9),
	(Int
10 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_10),
	(Int
11 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_11),
	(Int
12 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_12),
	(Int
13 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_13),
	(Int
14 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_14),
	(Int
15 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_15),
	(Int
16 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_16),
	(Int
17 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_17),
	(Int
18 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_18),
	(Int
19 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_19),
	(Int
20 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_20),
	(Int
21 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_21),
	(Int
22 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_22),
	(Int
23 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_23),
	(Int
24 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_24),
	(Int
25 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_25),
	(Int
26 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_26),
	(Int
27 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_27),
	(Int
28 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_28),
	(Int
29 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_29),
	(Int
30 , Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_30)
	]

happy_n_terms :: Int
happy_n_terms = Int
20 :: Prelude.Int
happy_n_nonterms :: Int
happy_n_nonterms = Int
14 :: Prelude.Int

happyReduce_1 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_1 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_1 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce Int#
5# Int#
0# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_1
happyReduction_1 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_1 (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 -> HappyWrap5
happyOut5 HappyAbsSyn
happy_x_1 of { (HappyWrap5 [Term]
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
happy_x_2 of { (HappyWrap6 [NonTerm]
happy_var_2) -> 
	case HappyAbsSyn -> HappyWrap12
happyOut12 HappyAbsSyn
happy_x_4 of { (HappyWrap12 [NonTerm]
happy_var_4) -> 
	case HappyAbsSyn -> HappyWrap5
happyOut5 HappyAbsSyn
happy_x_5 of { (HappyWrap5 [Term]
happy_var_5) -> 
	NonTerm -> HappyAbsSyn
happyIn4
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ [Term] -> [NonTerm] -> [NonTerm] -> [Term] -> NodeF Term NonTerm
forall lexeme a.
[lexeme] -> [a] -> [a] -> [lexeme] -> NodeF lexeme a
Grammar [Term]
happy_var_1 [NonTerm]
happy_var_2 [NonTerm]
happy_var_4 [Term]
happy_var_5
	) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}}

happyReduce_2 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_2 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_2 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_1  Int#
1# HappyAbsSyn -> HappyAbsSyn
happyReduction_2
happyReduction_2 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_2 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_1 of { Term
happy_var_1 -> 
	[Term] -> HappyAbsSyn
happyIn5
		 ([Term
happy_var_1]
	)}

happyReduce_3 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_3 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_3 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
1# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_3
happyReduction_3 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_3 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap5
happyOut5 HappyAbsSyn
happy_x_1 of { (HappyWrap5 [Term]
happy_var_1) -> 
	case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	[Term] -> HappyAbsSyn
happyIn5
		 ([Term]
happy_var_1 [Term] -> [Term] -> [Term]
forall a. [a] -> [a] -> [a]
++ [Term
happy_var_2]
	)}}

happyReduce_4 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_4 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_4 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_1  Int#
2# HappyAbsSyn -> HappyAbsSyn
happyReduction_4
happyReduction_4 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_4 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
happy_x_1 of { (HappyWrap7 NonTerm
happy_var_1) -> 
	[NonTerm] -> HappyAbsSyn
happyIn6
		 ([NonTerm
happy_var_1]
	)}

happyReduce_5 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_5 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_5 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
2# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_5
happyReduction_5 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_5 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
happy_x_1 of { (HappyWrap6 [NonTerm]
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
happy_x_2 of { (HappyWrap7 NonTerm
happy_var_2) -> 
	[NonTerm] -> HappyAbsSyn
happyIn6
		 ([NonTerm]
happy_var_1 [NonTerm] -> [NonTerm] -> [NonTerm]
forall a. [a] -> [a] -> [a]
++ [NonTerm
happy_var_2]
	)}}

happyReduce_6 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_6 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_6 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_6
happyReduction_6 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_6 HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> NodeF Term NonTerm
forall lexeme a. lexeme -> NodeF lexeme a
PragmaExpect Term
happy_var_2
	)}

happyReduce_7 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_7 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_7 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_3  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_7
happyReduction_7 :: HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_7 HappyAbsSyn
happy_x_3
	HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_3 of { Term
happy_var_3 -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> Term -> NodeF Term NonTerm
forall lexeme a. lexeme -> lexeme -> NodeF lexeme a
PragmaName Term
happy_var_2 Term
happy_var_3
	)}}

happyReduce_8 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_8 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_8 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_8
happyReduction_8 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_8 HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> NodeF Term NonTerm
forall lexeme a. lexeme -> NodeF lexeme a
PragmaErrorHandlerType Term
happy_var_2
	)}

happyReduce_9 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_9 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_9 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_9
happyReduction_9 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_9 HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> NodeF Term NonTerm
forall lexeme a. lexeme -> NodeF lexeme a
PragmaError Term
happy_var_2
	)}

happyReduce_10 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_10 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_10 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_3  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_10
happyReduction_10 :: HappyAbsSyn -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_10 HappyAbsSyn
happy_x_3
	HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_3 of { Term
happy_var_3 -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> Term -> NodeF Term NonTerm
forall lexeme a. lexeme -> lexeme -> NodeF lexeme a
PragmaLexer Term
happy_var_2 Term
happy_var_3
	)}}

happyReduce_11 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_11 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_11 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_11
happyReduction_11 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_11 HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> NodeF Term NonTerm
forall lexeme a. lexeme -> NodeF lexeme a
PragmaMonad Term
happy_var_2
	)}

happyReduce_12 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_12 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_12 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_12
happyReduction_12 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_12 HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> NodeF Term NonTerm
forall lexeme a. lexeme -> NodeF lexeme a
PragmaTokenType Term
happy_var_2
	)}

happyReduce_13 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_13 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_13 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_13
happyReduction_13 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_13 HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_2 of { (HappyWrap9 [NonTerm]
happy_var_2) -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ [NonTerm] -> NodeF Term NonTerm
forall lexeme a. [a] -> NodeF lexeme a
PragmaToken [NonTerm]
happy_var_2
	)}

happyReduce_14 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_14 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_14 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_14
happyReduction_14 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_14 HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_2 of { (HappyWrap8 [Term]
happy_var_2) -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ [Term] -> NodeF Term NonTerm
forall lexeme a. [lexeme] -> NodeF lexeme a
PragmaLeft [Term]
happy_var_2
	)}

happyReduce_15 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_15 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_15 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_15
happyReduction_15 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_15 HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_2 of { (HappyWrap8 [Term]
happy_var_2) -> 
	NonTerm -> HappyAbsSyn
happyIn7
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ [Term] -> NodeF Term NonTerm
forall lexeme a. [lexeme] -> NodeF lexeme a
PragmaRight [Term]
happy_var_2
	)}

happyReduce_16 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_16 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_16 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_1  Int#
4# HappyAbsSyn -> HappyAbsSyn
happyReduction_16
happyReduction_16 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_16 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap11
happyOut11 HappyAbsSyn
happy_x_1 of { (HappyWrap11 Term
happy_var_1) -> 
	[Term] -> HappyAbsSyn
happyIn8
		 ([Term
happy_var_1]
	)}

happyReduce_17 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_17 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_17 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
4# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_17
happyReduction_17 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_17 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_1 of { (HappyWrap8 [Term]
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap11
happyOut11 HappyAbsSyn
happy_x_2 of { (HappyWrap11 Term
happy_var_2) -> 
	[Term] -> HappyAbsSyn
happyIn8
		 ([Term]
happy_var_1 [Term] -> [Term] -> [Term]
forall a. [a] -> [a] -> [a]
++ [Term
happy_var_2]
	)}}

happyReduce_18 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_18 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_18 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_18
happyReduction_18 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_18 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap10
happyOut10 HappyAbsSyn
happy_x_1 of { (HappyWrap10 NonTerm
happy_var_1) -> 
	[NonTerm] -> HappyAbsSyn
happyIn9
		 ([NonTerm
happy_var_1]
	)}

happyReduce_19 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_19 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_19 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
5# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_19
happyReduction_19 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_19 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_1 of { (HappyWrap9 [NonTerm]
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap10
happyOut10 HappyAbsSyn
happy_x_2 of { (HappyWrap10 NonTerm
happy_var_2) -> 
	[NonTerm] -> HappyAbsSyn
happyIn9
		 ([NonTerm]
happy_var_1 [NonTerm] -> [NonTerm] -> [NonTerm]
forall a. [a] -> [a] -> [a]
++ [NonTerm
happy_var_2]
	)}}

happyReduce_20 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_20 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_20 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
6# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_20
happyReduction_20 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_20 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap11
happyOut11 HappyAbsSyn
happy_x_1 of { (HappyWrap11 Term
happy_var_1) -> 
	case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	NonTerm -> HappyAbsSyn
happyIn10
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> Term -> NodeF Term NonTerm
forall lexeme a. lexeme -> lexeme -> NodeF lexeme a
Token Term
happy_var_1 Term
happy_var_2
	)}}

happyReduce_21 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_21 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_21 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_1  Int#
7# HappyAbsSyn -> HappyAbsSyn
happyReduction_21
happyReduction_21 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_21 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_1 of { Term
happy_var_1 -> 
	Term -> HappyAbsSyn
happyIn11
		 (Term
happy_var_1
	)}

happyReduce_22 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_22 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_22 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_1  Int#
7# HappyAbsSyn -> HappyAbsSyn
happyReduction_22
happyReduction_22 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_22 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_1 of { Term
happy_var_1 -> 
	Term -> HappyAbsSyn
happyIn11
		 (Term
happy_var_1
	)}

happyReduce_23 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_23 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_23 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_1  Int#
8# HappyAbsSyn -> HappyAbsSyn
happyReduction_23
happyReduction_23 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_23 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap13
happyOut13 HappyAbsSyn
happy_x_1 of { (HappyWrap13 NonTerm
happy_var_1) -> 
	[NonTerm] -> HappyAbsSyn
happyIn12
		 ([NonTerm
happy_var_1]
	)}

happyReduce_24 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_24 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_24 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
8# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_24
happyReduction_24 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_24 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap12
happyOut12 HappyAbsSyn
happy_x_1 of { (HappyWrap12 [NonTerm]
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap13
happyOut13 HappyAbsSyn
happy_x_2 of { (HappyWrap13 NonTerm
happy_var_2) -> 
	[NonTerm] -> HappyAbsSyn
happyIn12
		 ([NonTerm]
happy_var_1 [NonTerm] -> [NonTerm] -> [NonTerm]
forall a. [a] -> [a] -> [a]
++ [NonTerm
happy_var_2]
	)}}

happyReduce_25 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_25 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_25 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
9# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_25
happyReduction_25 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_25 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap14
happyOut14 HappyAbsSyn
happy_x_1 of { (HappyWrap14 NonTerm
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap15
happyOut15 HappyAbsSyn
happy_x_2 of { (HappyWrap15 NonTerm
happy_var_2) -> 
	NonTerm -> HappyAbsSyn
happyIn13
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ NonTerm -> NonTerm -> NodeF Term NonTerm
forall lexeme a. a -> a -> NodeF lexeme a
Rule NonTerm
happy_var_1 NonTerm
happy_var_2
	)}}

happyReduce_26 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_26 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_26 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_3  Int#
10# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_26
happyReduction_26 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_26 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_1 of { Term
happy_var_1 -> 
	case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_3 of { Term
happy_var_3 -> 
	NonTerm -> HappyAbsSyn
happyIn14
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> Term -> NodeF Term NonTerm
forall lexeme a. lexeme -> lexeme -> NodeF lexeme a
RuleType Term
happy_var_1 Term
happy_var_3
	)}}

happyReduce_27 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_27 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_27 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_3  Int#
11# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_27
happyReduction_27 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_27 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_1 of { Term
happy_var_1 -> 
	case HappyAbsSyn -> HappyWrap16
happyOut16 HappyAbsSyn
happy_x_3 of { (HappyWrap16 [NonTerm]
happy_var_3) -> 
	NonTerm -> HappyAbsSyn
happyIn15
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ Term -> [NonTerm] -> NodeF Term NonTerm
forall lexeme a. lexeme -> [a] -> NodeF lexeme a
RuleDefn Term
happy_var_1 [NonTerm]
happy_var_3
	)}}

happyReduce_28 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_28 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_28 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_1  Int#
12# HappyAbsSyn -> HappyAbsSyn
happyReduction_28
happyReduction_28 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_28 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap17
happyOut17 HappyAbsSyn
happy_x_1 of { (HappyWrap17 NonTerm
happy_var_1) -> 
	[NonTerm] -> HappyAbsSyn
happyIn16
		 ([NonTerm
happy_var_1]
	)}

happyReduce_29 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_29 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_29 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_3  Int#
12# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall p. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_29
happyReduction_29 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_29 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap16
happyOut16 HappyAbsSyn
happy_x_1 of { (HappyWrap16 [NonTerm]
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap17
happyOut17 HappyAbsSyn
happy_x_3 of { (HappyWrap17 NonTerm
happy_var_3) -> 
	[NonTerm] -> HappyAbsSyn
happyIn16
		 ([NonTerm]
happy_var_1 [NonTerm] -> [NonTerm] -> [NonTerm]
forall a. [a] -> [a] -> [a]
++ [NonTerm
happy_var_3]
	)}}

happyReduce_30 :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )
happyReduce_30 :: Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyReduce_30 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happySpecReduce_2  Int#
13# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_30
happyReduction_30 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_30 HappyAbsSyn
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_1 of { (HappyWrap8 [Term]
happy_var_1) -> 
	case HappyAbsSyn -> Term
happyOutTok HappyAbsSyn
happy_x_2 of { Term
happy_var_2 -> 
	NonTerm -> HappyAbsSyn
happyIn17
		 (NodeF Term NonTerm -> NonTerm
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF Term NonTerm -> NonTerm) -> NodeF Term NonTerm -> NonTerm
forall a b. (a -> b) -> a -> b
$ [Term] -> Term -> NodeF Term NonTerm
forall lexeme a. [lexeme] -> lexeme -> NodeF lexeme a
RuleLine [Term]
happy_var_1 Term
happy_var_2
	)}}

happyNewToken :: Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> Alex HappyAbsSyn
happyNewToken Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk
	= (Term -> Alex HappyAbsSyn) -> Alex HappyAbsSyn
forall a. (Term -> Alex a) -> Alex a
lexwrap(\Term
tk -> 
	let cont :: Int# -> Alex HappyAbsSyn
cont Int#
i = Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyDoAction Int#
i Term
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk in
	case Term
tk of {
	L AlexPosn
_ LexemeClass
Eof Text
_ -> Int#
-> Term
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> Alex HappyAbsSyn
happyDoAction Int#
19# Term
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk;
	L AlexPosn
_ LexemeClass
IdName			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
1#;
	L AlexPosn
_ LexemeClass
LitCode			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
2#;
	L AlexPosn
_ LexemeClass
KwErrorhandlertype	Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
3#;
	L AlexPosn
_ LexemeClass
KwError			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
4#;
	L AlexPosn
_ LexemeClass
KwExpect			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
5#;
	L AlexPosn
_ LexemeClass
KwLeft			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
6#;
	L AlexPosn
_ LexemeClass
KwLexer			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
7#;
	L AlexPosn
_ LexemeClass
KwMonad			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
8#;
	L AlexPosn
_ LexemeClass
KwName			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
9#;
	L AlexPosn
_ LexemeClass
KwRight			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
10#;
	L AlexPosn
_ LexemeClass
KwToken			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
11#;
	L AlexPosn
_ LexemeClass
KwTokentype		Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
12#;
	L AlexPosn
_ LexemeClass
PctPercentPercent		Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
13#;
	L AlexPosn
_ LexemeClass
PctColonColon		Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
14#;
	L AlexPosn
_ LexemeClass
PctColon			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
15#;
	L AlexPosn
_ LexemeClass
PctPipe			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
16#;
	L AlexPosn
_ LexemeClass
LitString			Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
17#;
	L AlexPosn
_ LexemeClass
LitInteger		Text
_ -> Int# -> Alex HappyAbsSyn
cont Int#
18#;
	Term
_ -> (Term, [String]) -> Alex HappyAbsSyn
forall a. (Term, [String]) -> Alex a
happyError' (Term
tk, [])
	})

happyError_ :: [String] -> Int# -> Term -> Alex a
happyError_ [String]
explist Int#
19# Term
tk = (Term, [String]) -> Alex a
forall a. (Term, [String]) -> Alex a
happyError' (Term
tk, [String]
explist)
happyError_ [String]
explist Int#
_ Term
tk = (Term, [String]) -> Alex a
forall a. (Term, [String]) -> Alex a
happyError' (Term
tk, [String]
explist)

happyThen :: () => Alex a -> (a -> Alex b) -> Alex b
happyThen :: Alex a -> (a -> Alex b) -> Alex b
happyThen = Alex a -> (a -> Alex b) -> Alex b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
(Prelude.>>=)
happyReturn :: () => a -> Alex a
happyReturn :: a -> Alex a
happyReturn = (a -> Alex a
forall (m :: * -> *) a. Monad m => a -> m a
Prelude.return)
happyParse :: () => Happy_GHC_Exts.Int# -> Alex (HappyAbsSyn )

happyNewToken :: () => Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )

happyDoAction :: () => Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn )

happyReduceArr :: () => Happy_Data_Array.Array Prelude.Int (Happy_GHC_Exts.Int# -> Term -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> Alex (HappyAbsSyn ))

happyThen1 :: () => Alex a -> (a -> Alex b) -> Alex b
happyThen1 :: Alex a -> (a -> Alex b) -> Alex b
happyThen1 = Alex a -> (a -> Alex b) -> Alex b
forall a b. Alex a -> (a -> Alex b) -> Alex b
happyThen
happyReturn1 :: () => a -> Alex a
happyReturn1 :: a -> Alex a
happyReturn1 = a -> Alex a
forall a. a -> Alex a
happyReturn
happyError' :: () => ((Term), [Prelude.String]) -> Alex a
happyError' :: (Term, [String]) -> Alex a
happyError' (Term, [String])
tk = (Term, [String]) -> Alex a
forall text a. Show text => (Lexeme text, [String]) -> Alex a
parseError (Term, [String])
tk
parseGrammar :: Alex NonTerm
parseGrammar = Alex NonTerm
happySomeParser where
 happySomeParser :: Alex NonTerm
happySomeParser = Alex HappyAbsSyn -> (HappyAbsSyn -> Alex NonTerm) -> Alex NonTerm
forall a b. Alex a -> (a -> Alex b) -> Alex b
happyThen (Int# -> Alex HappyAbsSyn
happyParse Int#
0#) (\HappyAbsSyn
x -> NonTerm -> Alex NonTerm
forall a. a -> Alex a
happyReturn (let {(HappyWrap4 NonTerm
x') = HappyAbsSyn -> HappyWrap4
happyOut4 HappyAbsSyn
x} in NonTerm
x'))

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


type Term = Lexeme Text
type NonTerm = Node Term

parseError :: Show text => (Lexeme text, [String]) -> Alex a
parseError :: (Lexeme text, [String]) -> Alex a
parseError (L (AlexPn Int
_ Int
line Int
col) LexemeClass
c text
t, [String]
options) =
    String -> Alex a
forall a. String -> Alex a
alexError (String -> Alex a) -> String -> Alex a
forall a b. (a -> b) -> a -> b
$ String
":" String -> String -> String
forall a. Semigroup a => a -> a -> a
<> Int -> String
forall a. Show a => a -> String
show Int
line String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
":" String -> String -> String
forall a. Semigroup a => a -> a -> a
<> Int -> String
forall a. Show a => a -> String
show Int
col String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
": Parse error near " String -> String -> String
forall a. Semigroup a => a -> a -> a
<> LexemeClass -> String
forall a. Show a => a -> String
show LexemeClass
c String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
": "
        String -> String -> String
forall a. Semigroup a => a -> a -> a
<> text -> String
forall a. Show a => a -> String
show text
t String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
"; expected one of " String -> String -> String
forall a. Semigroup a => a -> a -> a
<> [String] -> String
forall a. Show a => a -> String
show [String]
options

lexwrap :: (Lexeme Text -> Alex a) -> Alex a
lexwrap :: (Term -> Alex a) -> Alex a
lexwrap = (Alex Term
alexMonadScan Alex Term -> (Term -> Alex a) -> Alex a
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=)

source :: BS.ByteString
#ifdef SOURCE
source = $(embedFile SOURCE)
#else
source :: ByteString
source = ByteString
BS.empty
#endif
{-# LINE 1 "templates/GenericTemplate.hs" #-}
-- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $













-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.
#if __GLASGOW_HASKELL__ > 706
#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Prelude.Bool)
#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Prelude.Bool)
#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Prelude.Bool)
#else
#define LT(n,m) (n Happy_GHC_Exts.<# m)
#define GTE(n,m) (n Happy_GHC_Exts.>=# m)
#define EQ(n,m) (n Happy_GHC_Exts.==# m)
#endif



















data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList








































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

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

happyParse start_state = happyNewToken start_state notHappyAtAll 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 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
        happyReturn1 ans
happyAccept j tk st sts (HappyStk ans _) = 
        (happyTcHack j (happyTcHack st)) (happyReturn1 ans)

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



happyDoAction i tk st
        = {- nothing -}
          case action of
                0#           -> {- nothing -}
                                     happyFail (happyExpListPerState ((Happy_GHC_Exts.I# (st)) :: Prelude.Int)) i tk st
                -1#          -> {- nothing -}
                                     happyAccept i tk st
                n | LT(n,(0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
                                                   (happyReduceArr Happy_Data_Array.! rule) i tk st
                                                   where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
                n                 -> {- nothing -}
                                     happyShift new_state i tk st
                                     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
   where off    = happyAdjustOffset (indexShortOffAddr happyActOffsets st)
         off_i  = (off Happy_GHC_Exts.+# i)
         check  = if GTE(off_i,(0# :: Happy_GHC_Exts.Int#))
                  then EQ(indexShortOffAddr happyCheck off_i, i)
                  else Prelude.False
         action
          | check     = indexShortOffAddr happyTable off_i
          | Prelude.otherwise = indexShortOffAddr happyDefActions st




indexShortOffAddr (HappyA# arr) off =
        Happy_GHC_Exts.narrow16Int# i
  where
        i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
        high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
        low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
        off' = off Happy_GHC_Exts.*# 2#




{-# INLINE happyLt #-}
happyLt x y = LT(x,y)


readArrayBit arr bit =
    Bits.testBit (Happy_GHC_Exts.I# (indexShortOffAddr arr ((unbox_int bit) `Happy_GHC_Exts.iShiftRA#` 4#))) (bit `Prelude.mod` 16)
  where unbox_int (Happy_GHC_Exts.I# x) = x






data HappyAddr = HappyA# Happy_GHC_Exts.Addr#


-----------------------------------------------------------------------------
-- HappyState data type (not arrays)













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

happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
--     trace "shifting the error token" $
     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)

happyShift new_state i tk st sts stk =
     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)

-- happyReduce is specialised for the common cases.

happySpecReduce_0 i fn 0# tk st sts stk
     = happyFail [] 0# tk st sts stk
happySpecReduce_0 nt fn j tk st@((action)) sts stk
     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)

happySpecReduce_1 i fn 0# tk st sts stk
     = happyFail [] 0# tk st sts stk
happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
     = let r = fn v1 in
       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))

happySpecReduce_2 i fn 0# tk st sts stk
     = happyFail [] 0# tk st sts stk
happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
     = let r = fn v1 v2 in
       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))

happySpecReduce_3 i fn 0# tk st sts stk
     = happyFail [] 0# tk st sts stk
happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
     = let r = fn v1 v2 v3 in
       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))

happyReduce k i fn 0# tk st sts stk
     = happyFail [] 0# tk st sts stk
happyReduce k nt fn j tk st sts stk
     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
         sts1@((HappyCons (st1@(action)) (_))) ->
                let r = fn stk in  -- it doesn't hurt to always seq here...
                happyDoSeq r (happyGoto nt j tk st1 sts1 r)

happyMonadReduce k nt fn 0# tk st sts stk
     = happyFail [] 0# tk st sts stk
happyMonadReduce k nt fn j tk st sts stk =
      case happyDrop k (HappyCons (st) (sts)) of
        sts1@((HappyCons (st1@(action)) (_))) ->
          let drop_stk = happyDropStk k stk in
          happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))

happyMonad2Reduce k nt fn 0# tk st sts stk
     = happyFail [] 0# tk st sts stk
happyMonad2Reduce k nt fn j tk st sts stk =
      case happyDrop k (HappyCons (st) (sts)) of
        sts1@((HappyCons (st1@(action)) (_))) ->
         let drop_stk = happyDropStk k stk

             off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st1)
             off_i = (off Happy_GHC_Exts.+# nt)
             new_state = indexShortOffAddr happyTable off_i




          in
          happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))

happyDrop 0# l = l
happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t

happyDropStk 0# l = l
happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs

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


happyGoto nt j tk st = 
   {- nothing -}
   happyDoAction j tk new_state
   where off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st)
         off_i = (off Happy_GHC_Exts.+# nt)
         new_state = indexShortOffAddr happyTable off_i




-----------------------------------------------------------------------------
-- Error recovery (ERROR_TOK is the error token)

-- parse error if we are in recovery and we fail again
happyFail explist 0# tk old_st _ stk@(x `HappyStk` _) =
     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
--      trace "failing" $ 
        happyError_ explist i tk

{-  We don't need state discarding for our restricted implementation of
    "error".  In fact, it can cause some bogus parses, so I've disabled it
    for now --SDM

-- discard a state
happyFail  ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts) 
                                                (saved_tok `HappyStk` _ `HappyStk` stk) =
--      trace ("discarding state, depth " ++ show (length stk))  $
        DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk))
-}

-- Enter error recovery: generate an error token,
--                       save the old token and carry on.
happyFail explist i tk (action) sts stk =
--      trace "entering error recovery" $
        happyDoAction 0# tk action sts ((Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)

-- Internal happy errors:

notHappyAtAll :: a
notHappyAtAll = Prelude.error "Internal Happy error\n"

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


happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
happyTcHack x y = 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   a b = a `Prelude.seq` b
happyDontSeq a 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.