{-# OPTIONS_GHC -w #-}
{-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-}
#if __GLASGOW_HASKELL__ >= 710
{-# OPTIONS_GHC -XPartialTypeSignatures #-}
#endif
{-|
Module      : Toml.Parser
Description : Raw TOML expression parser
Copyright   : (c) Eric Mertens, 2023
License     : ISC
Maintainer  : emertens@gmail.com

This module parses TOML tokens into a list of raw,
uninterpreted sections and assignments.

-}
module Toml.Parser (
  -- * Types
  Expr(..),
  SectionKind(..),
  Val(..),
  Key,

  -- * Parser
  parseRawToml,
  ) where

import Data.List.NonEmpty (NonEmpty)
import Data.List.NonEmpty qualified as NonEmpty
import Data.Time (Day, TimeOfDay, LocalTime, ZonedTime)

import Toml.Located (Located(Located, locPosition, locThing))
import Toml.Position (posLine)
import Toml.Parser.Types
import Toml.Lexer (Token(..))
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.0

newtype HappyAbsSyn  = HappyAbsSyn HappyAny
#if __GLASGOW_HASKELL__ >= 607
type HappyAny = Happy_GHC_Exts.Any
#else
type HappyAny = forall a . a
#endif
newtype HappyWrap4 = HappyWrap4 ([Expr])
happyIn4 :: ([Expr]) -> (HappyAbsSyn )
happyIn4 :: [Expr] -> HappyAbsSyn
happyIn4 [Expr]
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Expr] -> HappyWrap4
HappyWrap4 [Expr]
x)
{-# INLINE happyIn4 #-}
happyOut4 :: (HappyAbsSyn ) -> HappyWrap4
happyOut4 :: HappyAbsSyn -> HappyWrap4
happyOut4 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut4 #-}
newtype HappyWrap5 = HappyWrap5 ([Expr])
happyIn5 :: ([Expr]) -> (HappyAbsSyn )
happyIn5 :: [Expr] -> HappyAbsSyn
happyIn5 [Expr]
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Expr] -> HappyWrap5
HappyWrap5 [Expr]
x)
{-# INLINE happyIn5 #-}
happyOut5 :: (HappyAbsSyn ) -> HappyWrap5
happyOut5 :: HappyAbsSyn -> HappyWrap5
happyOut5 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut5 #-}
newtype HappyWrap6 = HappyWrap6 ((Key, Val))
happyIn6 :: ((Key, Val)) -> (HappyAbsSyn )
happyIn6 :: (Key, Val) -> HappyAbsSyn
happyIn6 (Key, Val)
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ((Key, Val) -> HappyWrap6
HappyWrap6 (Key, Val)
x)
{-# INLINE happyIn6 #-}
happyOut6 :: (HappyAbsSyn ) -> HappyWrap6
happyOut6 :: HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut6 #-}
newtype HappyWrap7 = HappyWrap7 (Key)
happyIn7 :: (Key) -> (HappyAbsSyn )
happyIn7 :: Key -> HappyAbsSyn
happyIn7 Key
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Key -> HappyWrap7
HappyWrap7 Key
x)
{-# INLINE happyIn7 #-}
happyOut7 :: (HappyAbsSyn ) -> HappyWrap7
happyOut7 :: HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut7 #-}
newtype HappyWrap8 = HappyWrap8 (Located String)
happyIn8 :: (Located String) -> (HappyAbsSyn )
happyIn8 :: Located String -> HappyAbsSyn
happyIn8 Located String
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Located String -> HappyWrap8
HappyWrap8 Located String
x)
{-# INLINE happyIn8 #-}
happyOut8 :: (HappyAbsSyn ) -> HappyWrap8
happyOut8 :: HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut8 #-}
newtype HappyWrap9 = HappyWrap9 (Val)
happyIn9 :: (Val) -> (HappyAbsSyn )
happyIn9 :: Val -> HappyAbsSyn
happyIn9 Val
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Val -> HappyWrap9
HappyWrap9 Val
x)
{-# INLINE happyIn9 #-}
happyOut9 :: (HappyAbsSyn ) -> HappyWrap9
happyOut9 :: HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut9 #-}
newtype HappyWrap10 = HappyWrap10 ([(Key, Val)])
happyIn10 :: ([(Key, Val)]) -> (HappyAbsSyn )
happyIn10 :: [(Key, Val)] -> HappyAbsSyn
happyIn10 [(Key, Val)]
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([(Key, Val)] -> HappyWrap10
HappyWrap10 [(Key, Val)]
x)
{-# INLINE happyIn10 #-}
happyOut10 :: (HappyAbsSyn ) -> HappyWrap10
happyOut10 :: HappyAbsSyn -> HappyWrap10
happyOut10 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut10 #-}
newtype HappyWrap11 = HappyWrap11 ([Val])
happyIn11 :: ([Val]) -> (HappyAbsSyn )
happyIn11 :: [Val] -> HappyAbsSyn
happyIn11 [Val]
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Val] -> HappyWrap11
HappyWrap11 [Val]
x)
{-# INLINE happyIn11 #-}
happyOut11 :: (HappyAbsSyn ) -> HappyWrap11
happyOut11 :: HappyAbsSyn -> HappyWrap11
happyOut11 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut11 #-}
newtype HappyWrap12 = HappyWrap12 ([Val])
happyIn12 :: ([Val]) -> (HappyAbsSyn )
happyIn12 :: [Val] -> HappyAbsSyn
happyIn12 [Val]
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([Val] -> HappyWrap12
HappyWrap12 [Val]
x)
{-# INLINE happyIn12 #-}
happyOut12 :: (HappyAbsSyn ) -> HappyWrap12
happyOut12 :: HappyAbsSyn -> HappyWrap12
happyOut12 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut12 #-}
newtype HappyWrap13 = HappyWrap13 ()
happyIn13 :: () -> (HappyAbsSyn )
happyIn13 :: () -> HappyAbsSyn
happyIn13 ()
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (() -> HappyWrap13
HappyWrap13 ()
x)
{-# INLINE happyIn13 #-}
happyOut13 :: (HappyAbsSyn ) -> HappyWrap13
happyOut13 :: HappyAbsSyn -> HappyWrap13
happyOut13 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut13 #-}
newtype HappyWrap14 = HappyWrap14 ([((Key, Val))])
happyIn14 :: ([((Key, Val))]) -> (HappyAbsSyn )
happyIn14 :: [(Key, Val)] -> HappyAbsSyn
happyIn14 [(Key, Val)]
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([(Key, Val)] -> HappyWrap14
HappyWrap14 [(Key, Val)]
x)
{-# INLINE happyIn14 #-}
happyOut14 :: (HappyAbsSyn ) -> HappyWrap14
happyOut14 :: HappyAbsSyn -> HappyWrap14
happyOut14 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut14 #-}
newtype HappyWrap15 = HappyWrap15 (NonEmpty ([Expr]))
happyIn15 :: (NonEmpty ([Expr])) -> (HappyAbsSyn )
happyIn15 :: NonEmpty [Expr] -> HappyAbsSyn
happyIn15 NonEmpty [Expr]
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (NonEmpty [Expr] -> HappyWrap15
HappyWrap15 NonEmpty [Expr]
x)
{-# INLINE happyIn15 #-}
happyOut15 :: (HappyAbsSyn ) -> HappyWrap15
happyOut15 :: HappyAbsSyn -> HappyWrap15
happyOut15 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut15 #-}
newtype HappyWrap16 = HappyWrap16 (NonEmpty (Located String))
happyIn16 :: (NonEmpty (Located String)) -> (HappyAbsSyn )
happyIn16 :: Key -> HappyAbsSyn
happyIn16 Key
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Key -> HappyWrap16
HappyWrap16 Key
x)
{-# INLINE happyIn16 #-}
happyOut16 :: (HappyAbsSyn ) -> HappyWrap16
happyOut16 :: HappyAbsSyn -> HappyWrap16
happyOut16 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut16 #-}
newtype HappyWrap17 = HappyWrap17 (NonEmpty ((Key, Val)))
happyIn17 :: (NonEmpty ((Key, Val))) -> (HappyAbsSyn )
happyIn17 :: NonEmpty (Key, Val) -> HappyAbsSyn
happyIn17 NonEmpty (Key, Val)
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (NonEmpty (Key, Val) -> HappyWrap17
HappyWrap17 NonEmpty (Key, Val)
x)
{-# INLINE happyIn17 #-}
happyOut17 :: (HappyAbsSyn ) -> HappyWrap17
happyOut17 :: HappyAbsSyn -> HappyWrap17
happyOut17 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut17 #-}
newtype HappyWrap18 = HappyWrap18 (NonEmpty ([Expr]))
happyIn18 :: (NonEmpty ([Expr])) -> (HappyAbsSyn )
happyIn18 :: NonEmpty [Expr] -> HappyAbsSyn
happyIn18 NonEmpty [Expr]
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (NonEmpty [Expr] -> HappyWrap18
HappyWrap18 NonEmpty [Expr]
x)
{-# INLINE happyIn18 #-}
happyOut18 :: (HappyAbsSyn ) -> HappyWrap18
happyOut18 :: HappyAbsSyn -> HappyWrap18
happyOut18 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut18 #-}
newtype HappyWrap19 = HappyWrap19 (NonEmpty (Located String))
happyIn19 :: (NonEmpty (Located String)) -> (HappyAbsSyn )
happyIn19 :: Key -> HappyAbsSyn
happyIn19 Key
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (Key -> HappyWrap19
HappyWrap19 Key
x)
{-# INLINE happyIn19 #-}
happyOut19 :: (HappyAbsSyn ) -> HappyWrap19
happyOut19 :: HappyAbsSyn -> HappyWrap19
happyOut19 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut19 #-}
newtype HappyWrap20 = HappyWrap20 (NonEmpty ((Key, Val)))
happyIn20 :: (NonEmpty ((Key, Val))) -> (HappyAbsSyn )
happyIn20 :: NonEmpty (Key, Val) -> HappyAbsSyn
happyIn20 NonEmpty (Key, Val)
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (NonEmpty (Key, Val) -> HappyWrap20
HappyWrap20 NonEmpty (Key, Val)
x)
{-# INLINE happyIn20 #-}
happyOut20 :: (HappyAbsSyn ) -> HappyWrap20
happyOut20 :: HappyAbsSyn -> HappyWrap20
happyOut20 HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut20 #-}
happyInTok :: (Located Token) -> (HappyAbsSyn )
happyInTok :: Located Token -> HappyAbsSyn
happyInTok Located Token
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# Located Token
x
{-# INLINE happyInTok #-}
happyOutTok :: (HappyAbsSyn ) -> (Located Token)
happyOutTok :: HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
x = unsafeCoerce# :: forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOutTok #-}


happyExpList :: HappyAddr
happyExpList :: HappyAddr
happyExpList = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x00\x14\x03\x00\x00\x00\xa0\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x06\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\x08\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe4\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x80\x00\x00\x00\x00\x00\xd3\xe4\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x04\x00\x00\x00\x00\xa6\xc9\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00"#

{-# NOINLINE happyExpListPerState #-}
happyExpListPerState :: Int -> [String]
happyExpListPerState Int
st =
    [String]
token_strs_expected
  where token_strs :: [String]
token_strs = [String
"error",String
"%dummy",String
"%start_parseRawToml",String
"toml",String
"expression",String
"keyval",String
"key",String
"simplekey",String
"val",String
"inlinetable",String
"array",String
"arrayvalues",String
"newlines",String
"sepBy__keyval__','__",String
"sepBy1__expression__NEWLINE__",String
"sepBy1__simplekey__'.'__",String
"sepBy1__keyval__','__",String
"sepBy1___expression__NEWLINE__",String
"sepBy1___simplekey__'.'__",String
"sepBy1___keyval__','__",String
"'true'",String
"'false'",String
"','",String
"'='",String
"NEWLINE",String
"'.'",String
"'['",String
"']'",String
"'[['",String
"']]'",String
"'{'",String
"'}'",String
"BAREKEY",String
"STRING",String
"MLSTRING",String
"INTEGER",String
"FLOAT",String
"OFFSETDATETIME",String
"LOCALDATETIME",String
"LOCALDATE",String
"LOCALTIME",String
"EOF",String
"%eof"]
        bit_start :: Int
bit_start = Int
st forall a. Num a => a -> a -> a
Prelude.* Int
43
        bit_end :: Int
bit_end = (Int
st forall a. Num a => a -> a -> a
Prelude.+ Int
1) forall a. Num a => a -> a -> a
Prelude.* Int
43
        read_bit :: Int -> Bool
read_bit = HappyAddr -> Int -> Bool
readArrayBit HappyAddr
happyExpList
        bits :: [Bool]
bits = forall a b. (a -> b) -> [a] -> [b]
Prelude.map Int -> Bool
read_bit [Int
bit_start..Int
bit_end forall a. Num a => a -> a -> a
Prelude.- Int
1]
        bits_indexed :: [(Bool, Int)]
bits_indexed = forall a b. [a] -> [b] -> [(a, b)]
Prelude.zip [Bool]
bits [Int
0..Int
42]
        token_strs_expected :: [String]
token_strs_expected = forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
Prelude.concatMap (Bool, Int) -> [String]
f [(Bool, Int)]
bits_indexed
        f :: (Bool, Int) -> [String]
f (Bool
Prelude.False, Int
_) = []
        f (Bool
Prelude.True, Int
nr) = [[String]
token_strs forall a. [a] -> Int -> a
Prelude.!! Int
nr]

happyActOffsets :: HappyAddr
happyActOffsets :: HappyAddr
happyActOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\x27\x00\x27\x00\x00\x00\x00\x00\xfd\xff\x00\x00\xee\xff\x00\x00\x06\x00\x07\x00\x0c\x00\x0c\x00\x00\x00\x00\x00\xf0\xff\x04\x00\x14\x00\x0c\x00\x27\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x1d\x00\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x16\x00\x00\x00\x00\x00\x1e\x00\x00\x00"#

happyGotoOffsets :: HappyAddr
happyGotoOffsets :: HappyAddr
happyGotoOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\x41\x00\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x59\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x26\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x7b\x00\x2e\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#
"\xfd\xff\x00\x00\xdc\xff\xfc\xff\x00\x00\xda\xff\x00\x00\xf8\xff\xdf\xff\xde\xff\x00\x00\x00\x00\xf7\xff\xf6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfd\xff\xfe\xff\x00\x00\xf9\xff\xea\xff\xeb\xff\xf3\xff\xf2\xff\xe3\xff\xe1\xff\xf1\xff\xf0\xff\xf5\xff\xf4\xff\xed\xff\xec\xff\xef\xff\xee\xff\xdb\xff\xd9\xff\xfb\xff\xfa\xff\xd8\xff\x00\x00\xe0\xff\xdd\xff\x00\x00\xe3\xff\x00\x00\xe2\xff\xe8\xff\x00\x00\xe9\xff\xd7\xff\xe3\xff\xe7\xff\xe5\xff\x00\x00\xe3\xff\xe6\xff\xe4\xff"#

happyCheck :: HappyAddr
happyCheck :: HappyAddr
happyCheck = Addr# -> HappyAddr
HappyA# Addr#
"\xff\xff\x04\x00\x01\x00\x02\x00\x16\x00\x03\x00\x05\x00\x17\x00\x07\x00\x08\x00\x08\x00\x05\x00\x0b\x00\x06\x00\x0a\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x01\x00\x02\x00\x0d\x00\x0e\x00\x05\x00\x08\x00\x07\x00\x08\x00\x0c\x00\x03\x00\x0b\x00\x09\x00\x05\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x01\x00\x02\x00\x07\x00\x09\x00\x09\x00\x04\x00\x07\x00\x09\x00\x0d\x00\x0e\x00\x0b\x00\x09\x00\xff\xff\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\x0b\x00\x0c\x00\xff\xff\x0e\x00\x0f\x00\x0b\x00\x0c\x00\xff\xff\x0e\x00\x0f\x00\x02\x00\x03\x00\x04\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x0a\x00\xff\xff\x0c\x00\x0d\x00\xff\xff\x0f\x00\x10\x00\x0c\x00\x03\x00\x04\x00\x0f\x00\x02\x00\x03\x00\x04\x00\x03\x00\x04\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x0c\x00\xff\xff\x0c\x00\x0f\x00\xff\xff\x0f\x00\x05\x00\x06\x00\x07\x00\x08\x00\x05\x00\x06\x00\x07\x00\x05\x00\x06\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\xff\xff\xff\xff"#

happyTable :: HappyAddr
happyTable :: HappyAddr
happyTable = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x15\x00\x19\x00\x1a\x00\x14\x00\x35\x00\x30\x00\xff\xff\x1b\x00\x31\x00\x36\x00\x13\x00\x1c\x00\x12\x00\x28\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x19\x00\x1a\x00\x0d\x00\x0e\x00\x30\x00\x27\x00\x1b\x00\x3a\x00\x33\x00\x32\x00\x1c\x00\x2c\x00\x30\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x19\x00\x1a\x00\x0b\x00\x36\x00\x0c\x00\x25\x00\x1b\x00\x37\x00\x0d\x00\x0e\x00\x1c\x00\x3a\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x0e\x00\x02\x00\x03\x00\x04\x00\x05\x00\x00\x00\x02\x00\x03\x00\x04\x00\x05\x00\x00\x00\x06\x00\x07\x00\x00\x00\x08\x00\x09\x00\x06\x00\x07\x00\x00\x00\x08\x00\x09\x00\x28\x00\x04\x00\x05\x00\x00\x00\x24\x00\x03\x00\x04\x00\x05\x00\x29\x00\x00\x00\x07\x00\x2a\x00\x00\x00\x09\x00\x2b\x00\x07\x00\x10\x00\x05\x00\x09\x00\x33\x00\x04\x00\x05\x00\x0f\x00\x05\x00\x00\x00\x07\x00\x00\x00\x00\x00\x09\x00\x07\x00\x00\x00\x07\x00\x09\x00\x00\x00\x09\x00\x2d\x00\x16\x00\x17\x00\x2e\x00\x15\x00\x16\x00\x17\x00\x38\x00\x16\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\x00\x00\x00\x00\x00\x00"#

happyReduceArr :: Array
  Int
  (Int#
   -> Located Token
   -> Int#
   -> Happy_IntList
   -> HappyStk HappyAbsSyn
   -> [Located Token]
   -> Either (Located Token) HappyAbsSyn)
happyReduceArr = forall i e. Ix i => (i, i) -> [(i, e)] -> Array i e
Happy_Data_Array.array (Int
1, Int
40) [
	(Int
1 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_1),
	(Int
2 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_2),
	(Int
3 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_3),
	(Int
4 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_4),
	(Int
5 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_5),
	(Int
6 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_6),
	(Int
7 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_7),
	(Int
8 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_8),
	(Int
9 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_9),
	(Int
10 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_10),
	(Int
11 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_11),
	(Int
12 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_12),
	(Int
13 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_13),
	(Int
14 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_14),
	(Int
15 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_15),
	(Int
16 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_16),
	(Int
17 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_17),
	(Int
18 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_18),
	(Int
19 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_19),
	(Int
20 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_20),
	(Int
21 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_21),
	(Int
22 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_22),
	(Int
23 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_23),
	(Int
24 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_24),
	(Int
25 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_25),
	(Int
26 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_26),
	(Int
27 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_27),
	(Int
28 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_28),
	(Int
29 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_29),
	(Int
30 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_30),
	(Int
31 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_31),
	(Int
32 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_32),
	(Int
33 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_33),
	(Int
34 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_34),
	(Int
35 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_35),
	(Int
36 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_36),
	(Int
37 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_37),
	(Int
38 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_38),
	(Int
39 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_39),
	(Int
40 , Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_40)
	]

happy_n_terms :: Int
happy_n_terms = Int
24 :: Prelude.Int
happy_n_nonterms :: Int
happy_n_nonterms = Int
17 :: Prelude.Int

happyReduce_1 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_1 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_2  Int#
0# forall {p}. p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_1
happyReduction_1 :: p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_1 p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap15
happyOut15 HappyAbsSyn
happy_x_1 of { (HappyWrap15 NonEmpty [Expr]
happy_var_1) -> 
	[Expr] -> HappyAbsSyn
happyIn4
		 (forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat NonEmpty [Expr]
happy_var_1
	)}

happyReduce_2 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_2 = Int#
-> HappyAbsSyn
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_0  Int#
1# HappyAbsSyn
happyReduction_2
happyReduction_2 :: HappyAbsSyn
happyReduction_2  =  [Expr] -> HappyAbsSyn
happyIn5
		 ([]
	)

happyReduce_3 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_3 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
1# HappyAbsSyn -> HappyAbsSyn
happyReduction_3
happyReduction_3 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_3 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
happy_x_1 of { (HappyWrap6 (Key, Val)
happy_var_1) -> 
	[Expr] -> HappyAbsSyn
happyIn5
		 ([Key -> Val -> Expr
KeyValExpr (forall a b. (a, b) -> a
fst (Key, Val)
happy_var_1) (forall a b. (a, b) -> b
snd (Key, Val)
happy_var_1)]
	)}

happyReduce_4 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_4 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_3  Int#
1# forall {p} {p}. p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_4
happyReduction_4 :: p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_4 p
happy_x_3
	HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
happy_x_2 of { (HappyWrap7 Key
happy_var_2) -> 
	[Expr] -> HappyAbsSyn
happyIn5
		 ([Key -> Expr
TableExpr      Key
happy_var_2    ]
	)}

happyReduce_5 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_5 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_3  Int#
1# forall {p} {p}. p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_5
happyReduction_5 :: p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_5 p
happy_x_3
	HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
happy_x_2 of { (HappyWrap7 Key
happy_var_2) -> 
	[Expr] -> HappyAbsSyn
happyIn5
		 ([Key -> Expr
ArrayTableExpr Key
happy_var_2    ]
	)}

happyReduce_6 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_6 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_3  Int#
2# forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_6
happyReduction_6 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_6 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
happy_x_1 of { (HappyWrap7 Key
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_3 of { (HappyWrap9 Val
happy_var_3) -> 
	(Key, Val) -> HappyAbsSyn
happyIn6
		 ((Key
happy_var_1,Val
happy_var_3)
	)}}

happyReduce_7 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_7 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
3# HappyAbsSyn -> HappyAbsSyn
happyReduction_7
happyReduction_7 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_7 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap16
happyOut16 HappyAbsSyn
happy_x_1 of { (HappyWrap16 Key
happy_var_1) -> 
	Key -> HappyAbsSyn
happyIn7
		 (Key
happy_var_1
	)}

happyReduce_8 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_8 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
4# HappyAbsSyn -> HappyAbsSyn
happyReduction_8
happyReduction_8 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_8 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { Located Token
happy_var_1 -> 
	Located String -> HappyAbsSyn
happyIn8
		 (forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Token -> String
asString Located Token
happy_var_1
	)}

happyReduce_9 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_9 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
4# HappyAbsSyn -> HappyAbsSyn
happyReduction_9
happyReduction_9 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_9 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { Located Token
happy_var_1 -> 
	Located String -> HappyAbsSyn
happyIn8
		 (forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Token -> String
asString Located Token
happy_var_1
	)}

happyReduce_10 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_10 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_10
happyReduction_10 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_10 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { (Located Position
_ (TokInteger        Integer
happy_var_1)) -> 
	Val -> HappyAbsSyn
happyIn9
		 (Integer -> Val
ValInteger    Integer
happy_var_1
	)}

happyReduce_11 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_11 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_11
happyReduction_11 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_11 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { (Located Position
_ (TokFloat          Double
happy_var_1)) -> 
	Val -> HappyAbsSyn
happyIn9
		 (Double -> Val
ValFloat      Double
happy_var_1
	)}

happyReduce_12 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_12 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# forall {p}. p -> HappyAbsSyn
happyReduction_12
happyReduction_12 :: p -> HappyAbsSyn
happyReduction_12 p
happy_x_1
	 =  Val -> HappyAbsSyn
happyIn9
		 (Bool -> Val
ValBool       Bool
True
	)

happyReduce_13 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_13 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# forall {p}. p -> HappyAbsSyn
happyReduction_13
happyReduction_13 :: p -> HappyAbsSyn
happyReduction_13 p
happy_x_1
	 =  Val -> HappyAbsSyn
happyIn9
		 (Bool -> Val
ValBool       Bool
False
	)

happyReduce_14 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_14 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_14
happyReduction_14 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_14 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { Located Token
happy_var_1 -> 
	Val -> HappyAbsSyn
happyIn9
		 (String -> Val
ValString (Token -> String
asString (forall a. Located a -> a
locThing Located Token
happy_var_1))
	)}

happyReduce_15 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_15 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_15
happyReduction_15 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_15 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { (Located Position
_ (TokMlString       String
happy_var_1)) -> 
	Val -> HappyAbsSyn
happyIn9
		 (String -> Val
ValString     String
happy_var_1
	)}

happyReduce_16 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_16 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_16
happyReduction_16 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_16 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { (Located Position
_ (TokLocalDate      Day
happy_var_1)) -> 
	Val -> HappyAbsSyn
happyIn9
		 (Day -> Val
ValDay        Day
happy_var_1
	)}

happyReduce_17 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_17 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_17
happyReduction_17 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_17 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { (Located Position
_ (TokLocalTime      TimeOfDay
happy_var_1)) -> 
	Val -> HappyAbsSyn
happyIn9
		 (TimeOfDay -> Val
ValTimeOfDay  TimeOfDay
happy_var_1
	)}

happyReduce_18 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_18 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_18
happyReduction_18 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_18 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { (Located Position
_ (TokOffsetDateTime ZonedTime
happy_var_1)) -> 
	Val -> HappyAbsSyn
happyIn9
		 (ZonedTime -> Val
ValZonedTime  ZonedTime
happy_var_1
	)}

happyReduce_19 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_19 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_19
happyReduction_19 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_19 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> Located Token
happyOutTok HappyAbsSyn
happy_x_1 of { (Located Position
_ (TokLocalDateTime  LocalTime
happy_var_1)) -> 
	Val -> HappyAbsSyn
happyIn9
		 (LocalTime -> Val
ValLocalTime  LocalTime
happy_var_1
	)}

happyReduce_20 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_20 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_20
happyReduction_20 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_20 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap11
happyOut11 HappyAbsSyn
happy_x_1 of { (HappyWrap11 [Val]
happy_var_1) -> 
	Val -> HappyAbsSyn
happyIn9
		 ([Val] -> Val
ValArray      [Val]
happy_var_1
	)}

happyReduce_21 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_21 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_21
happyReduction_21 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_21 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap10
happyOut10 HappyAbsSyn
happy_x_1 of { (HappyWrap10 [(Key, Val)]
happy_var_1) -> 
	Val -> HappyAbsSyn
happyIn9
		 ([(Key, Val)] -> Val
ValTable      [(Key, Val)]
happy_var_1
	)}

happyReduce_22 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_22 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_3  Int#
6# forall {p} {p}. p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_22
happyReduction_22 :: p -> HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_22 p
happy_x_3
	HappyAbsSyn
happy_x_2
	p
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap14
happyOut14 HappyAbsSyn
happy_x_2 of { (HappyWrap14 [(Key, Val)]
happy_var_2) -> 
	[(Key, Val)] -> HappyAbsSyn
happyIn10
		 ([(Key, Val)]
happy_var_2
	)}

happyReduce_23 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_23 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_3  Int#
7# forall {p} {p} {p}. p -> p -> p -> HappyAbsSyn
happyReduction_23
happyReduction_23 :: p -> p -> p -> HappyAbsSyn
happyReduction_23 p
happy_x_3
	p
happy_x_2
	p
happy_x_1
	 =  [Val] -> HappyAbsSyn
happyIn11
		 ([]
	)

happyReduce_24 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_24 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce Int#
4# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_24
happyReduction_24 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_24 (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 -> HappyWrap12
happyOut12 HappyAbsSyn
happy_x_3 of { (HappyWrap12 [Val]
happy_var_3) -> 
	[Val] -> HappyAbsSyn
happyIn11
		 (forall a. [a] -> [a]
reverse [Val]
happy_var_3
	) forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}

happyReduce_25 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_25 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce Int#
6# Int#
7# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_25
happyReduction_25 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_25 (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 -> HappyWrap12
happyOut12 HappyAbsSyn
happy_x_3 of { (HappyWrap12 [Val]
happy_var_3) -> 
	[Val] -> HappyAbsSyn
happyIn11
		 (forall a. [a] -> [a]
reverse [Val]
happy_var_3
	) forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}

happyReduce_26 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_26 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_2  Int#
8# forall {p}. p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_26
happyReduction_26 :: p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_26 p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_1 of { (HappyWrap9 Val
happy_var_1) -> 
	[Val] -> HappyAbsSyn
happyIn12
		 ([Val
happy_var_1]
	)}

happyReduce_27 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_27 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce Int#
5# Int#
8# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_27
happyReduction_27 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_27 (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 -> HappyWrap12
happyOut12 HappyAbsSyn
happy_x_1 of { (HappyWrap12 [Val]
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_4 of { (HappyWrap9 Val
happy_var_4) -> 
	[Val] -> HappyAbsSyn
happyIn12
		 (Val
happy_var_4 forall a. a -> [a] -> [a]
: [Val]
happy_var_1
	) forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}

happyReduce_28 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_28 = Int#
-> HappyAbsSyn
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_0  Int#
9# HappyAbsSyn
happyReduction_28
happyReduction_28 :: HappyAbsSyn
happyReduction_28  =  () -> HappyAbsSyn
happyIn13
		 (
	)

happyReduce_29 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_29 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_2  Int#
9# forall {p} {p}. p -> p -> HappyAbsSyn
happyReduction_29
happyReduction_29 :: p -> p -> HappyAbsSyn
happyReduction_29 p
happy_x_2
	p
happy_x_1
	 =  () -> HappyAbsSyn
happyIn13
		 (
	)

happyReduce_30 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_30 = Int#
-> HappyAbsSyn
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_0  Int#
10# HappyAbsSyn
happyReduction_30
happyReduction_30 :: HappyAbsSyn
happyReduction_30  =  [(Key, Val)] -> HappyAbsSyn
happyIn14
		 ([]
	)

happyReduce_31 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_31 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
10# HappyAbsSyn -> HappyAbsSyn
happyReduction_31
happyReduction_31 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_31 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap17
happyOut17 HappyAbsSyn
happy_x_1 of { (HappyWrap17 NonEmpty (Key, Val)
happy_var_1) -> 
	[(Key, Val)] -> HappyAbsSyn
happyIn14
		 (forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (Key, Val)
happy_var_1
	)}

happyReduce_32 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_32 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_32
happyReduction_32 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_32 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap18
happyOut18 HappyAbsSyn
happy_x_1 of { (HappyWrap18 NonEmpty [Expr]
happy_var_1) -> 
	NonEmpty [Expr] -> HappyAbsSyn
happyIn15
		 (forall a. NonEmpty a -> NonEmpty a
NonEmpty.reverse NonEmpty [Expr]
happy_var_1
	)}

happyReduce_33 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_33 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
12# HappyAbsSyn -> HappyAbsSyn
happyReduction_33
happyReduction_33 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_33 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap19
happyOut19 HappyAbsSyn
happy_x_1 of { (HappyWrap19 Key
happy_var_1) -> 
	Key -> HappyAbsSyn
happyIn16
		 (forall a. NonEmpty a -> NonEmpty a
NonEmpty.reverse Key
happy_var_1
	)}

happyReduce_34 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_34 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
13# HappyAbsSyn -> HappyAbsSyn
happyReduction_34
happyReduction_34 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_34 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap20
happyOut20 HappyAbsSyn
happy_x_1 of { (HappyWrap20 NonEmpty (Key, Val)
happy_var_1) -> 
	NonEmpty (Key, Val) -> HappyAbsSyn
happyIn17
		 (forall a. NonEmpty a -> NonEmpty a
NonEmpty.reverse NonEmpty (Key, Val)
happy_var_1
	)}

happyReduce_35 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_35 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
14# HappyAbsSyn -> HappyAbsSyn
happyReduction_35
happyReduction_35 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_35 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap5
happyOut5 HappyAbsSyn
happy_x_1 of { (HappyWrap5 [Expr]
happy_var_1) -> 
	NonEmpty [Expr] -> HappyAbsSyn
happyIn18
		 (forall (f :: * -> *) a. Applicative f => a -> f a
pure [Expr]
happy_var_1
	)}

happyReduce_36 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_36 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_3  Int#
14# forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_36
happyReduction_36 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_36 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap18
happyOut18 HappyAbsSyn
happy_x_1 of { (HappyWrap18 NonEmpty [Expr]
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap5
happyOut5 HappyAbsSyn
happy_x_3 of { (HappyWrap5 [Expr]
happy_var_3) -> 
	NonEmpty [Expr] -> HappyAbsSyn
happyIn18
		 (forall a. a -> NonEmpty a -> NonEmpty a
NonEmpty.cons [Expr]
happy_var_3 NonEmpty [Expr]
happy_var_1
	)}}

happyReduce_37 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_37 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
15# HappyAbsSyn -> HappyAbsSyn
happyReduction_37
happyReduction_37 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_37 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_1 of { (HappyWrap8 Located String
happy_var_1) -> 
	Key -> HappyAbsSyn
happyIn19
		 (forall (f :: * -> *) a. Applicative f => a -> f a
pure Located String
happy_var_1
	)}

happyReduce_38 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_38 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_3  Int#
15# forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_38
happyReduction_38 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_38 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap19
happyOut19 HappyAbsSyn
happy_x_1 of { (HappyWrap19 Key
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_3 of { (HappyWrap8 Located String
happy_var_3) -> 
	Key -> HappyAbsSyn
happyIn19
		 (forall a. a -> NonEmpty a -> NonEmpty a
NonEmpty.cons Located String
happy_var_3 Key
happy_var_1
	)}}

happyReduce_39 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_39 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_1  Int#
16# HappyAbsSyn -> HappyAbsSyn
happyReduction_39
happyReduction_39 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_39 HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
happy_x_1 of { (HappyWrap6 (Key, Val)
happy_var_1) -> 
	NonEmpty (Key, Val) -> HappyAbsSyn
happyIn20
		 (forall (f :: * -> *) a. Applicative f => a -> f a
pure (Key, Val)
happy_var_1
	)}

happyReduce_40 :: Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyReduce_40 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happySpecReduce_3  Int#
16# forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_40
happyReduction_40 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_40 HappyAbsSyn
happy_x_3
	p
happy_x_2
	HappyAbsSyn
happy_x_1
	 =  case HappyAbsSyn -> HappyWrap20
happyOut20 HappyAbsSyn
happy_x_1 of { (HappyWrap20 NonEmpty (Key, Val)
happy_var_1) -> 
	case HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
happy_x_3 of { (HappyWrap6 (Key, Val)
happy_var_3) -> 
	NonEmpty (Key, Val) -> HappyAbsSyn
happyIn20
		 (forall a. a -> NonEmpty a -> NonEmpty a
NonEmpty.cons (Key, Val)
happy_var_3 NonEmpty (Key, Val)
happy_var_1
	)}}

happyNewToken :: Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyNewToken Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk [] =
	Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyDoAction Int#
23# forall a. a
notHappyAtAll Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk []

happyNewToken Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk (Located Token
tk:[Located Token]
tks) =
	let cont :: Int# -> Either (Located Token) HappyAbsSyn
cont Int#
i = Int#
-> Located Token
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [Located Token]
-> Either (Located Token) HappyAbsSyn
happyDoAction Int#
i Located Token
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk [Located Token]
tks in
	case Located Token
tk of {
	Located Position
_ Token
TokTrue -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
1#;
	Located Position
_ Token
TokFalse -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
2#;
	Located Position
_ Token
TokComma -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
3#;
	Located Position
_ Token
TokEquals -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
4#;
	Located Position
_ Token
TokNewline -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
5#;
	Located Position
_ Token
TokPeriod -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
6#;
	Located Position
_ Token
TokSquareO -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
7#;
	Located Position
_ Token
TokSquareC -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
8#;
	Located Position
_ Token
Tok2SquareO -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
9#;
	Located Position
_ Token
Tok2SquareC -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
10#;
	Located Position
_ Token
TokCurlyO -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
11#;
	Located Position
_ Token
TokCurlyC -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
12#;
	Located Position
_ (TokBareKey        String
_ ) -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
13#;
	Located Position
_ (TokString         String
_ ) -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
14#;
	Located Position
_ (TokMlString       String
happy_dollar_dollar) -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
15#;
	Located Position
_ (TokInteger        Integer
happy_dollar_dollar) -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
16#;
	Located Position
_ (TokFloat          Double
happy_dollar_dollar) -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
17#;
	Located Position
_ (TokOffsetDateTime ZonedTime
happy_dollar_dollar) -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
18#;
	Located Position
_ (TokLocalDateTime  LocalTime
happy_dollar_dollar) -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
19#;
	Located Position
_ (TokLocalDate      Day
happy_dollar_dollar) -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
20#;
	Located Position
_ (TokLocalTime      TimeOfDay
happy_dollar_dollar) -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
21#;
	Located Position
_ Token
TokEOF -> Int# -> Either (Located Token) HappyAbsSyn
cont Int#
22#;
	Located Token
_ -> forall a. ([Located Token], [String]) -> Either (Located Token) a
happyError' ((Located Token
tkforall a. a -> [a] -> [a]
:[Located Token]
tks), [])
	}

happyError_ :: [String]
-> Int#
-> Located Token
-> [Located Token]
-> Either (Located Token) a
happyError_ [String]
explist Int#
23# Located Token
tk [Located Token]
tks = forall a. ([Located Token], [String]) -> Either (Located Token) a
happyError' ([Located Token]
tks, [String]
explist)
happyError_ [String]
explist Int#
_ Located Token
tk [Located Token]
tks = forall a. ([Located Token], [String]) -> Either (Located Token) a
happyError' ((Located Token
tkforall a. a -> [a] -> [a]
:[Located Token]
tks), [String]
explist)

happyThen :: () => Either (Located Token) a -> (a -> Either (Located Token) b) -> Either (Located Token) b
happyThen :: forall a b.
Either (Located Token) a
-> (a -> Either (Located Token) b) -> Either (Located Token) b
happyThen = forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
(Prelude.>>=)
happyReturn :: () => a -> Either (Located Token) a
happyReturn :: forall a. a -> Either (Located Token) a
happyReturn = (forall (m :: * -> *) a. Monad m => a -> m a
Prelude.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
(Prelude.>>=) m t
m (\t
a -> t -> t -> m b
k t
a t
tks)
happyReturn1 :: () => a -> b -> Either (Located Token) a
happyReturn1 :: forall a b. a -> b -> Either (Located Token) a
happyReturn1 = \a
a b
tks -> (forall (m :: * -> *) a. Monad m => a -> m a
Prelude.return) a
a
happyError' :: () => ([(Located Token)], [Prelude.String]) -> Either (Located Token) a
happyError' :: forall a. ([Located Token], [String]) -> Either (Located Token) a
happyError' = (\([Located Token]
tokens, [String]
_) -> forall a. [Located Token] -> Either (Located Token) a
errorP [Located Token]
tokens)
parseRawToml :: [Located Token] -> Either (Located Token) [Expr]
parseRawToml [Located Token]
tks = Either (Located Token) [Expr]
happySomeParser where
 happySomeParser :: Either (Located Token) [Expr]
happySomeParser = forall a b.
Either (Located Token) a
-> (a -> Either (Located Token) b) -> Either (Located Token) b
happyThen (Int# -> [Located Token] -> Either (Located Token) HappyAbsSyn
happyParse Int#
0# [Located Token]
tks) (\HappyAbsSyn
x -> forall a. a -> Either (Located Token) a
happyReturn (let {(HappyWrap4 [Expr]
x') = HappyAbsSyn -> HappyWrap4
happyOut4 HappyAbsSyn
x} in [Expr]
x'))

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


-- | Parse a list of tokens either returning the first unexpected
-- token or a list of the TOML statements in the file to be
-- processed by "Toml.Semantics".
parseRawToml :: [Located Token] -> Either (Located Token) [Expr]
-- implementation generated by happy

errorP :: [Located Token] -> Either (Located Token) a
errorP :: forall a. [Located Token] -> Either (Located Token) a
errorP (Located Token
t:[Located Token]
_) = forall a b. a -> Either a b
Left Located Token
t
errorP []    = forall a. HasCallStack => String -> a
error String
"Parser.errorP: unterminated token stream"

asString :: Token -> String
asString :: Token -> String
asString (TokString String
x) = String
x
asString (TokBareKey String
x) = String
x
asString Token
_ = forall a. HasCallStack => String -> a
error String
"simpleKeyLexeme: panic"
{-# 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.