{-# OPTIONS_GHC -w #-}
{-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-}
#if __GLASGOW_HASKELL__ >= 710
{-# OPTIONS_GHC -XPartialTypeSignatures #-}
#endif
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Language.Cimple.TreeParser
( TreeParser
, parseTranslationUnit
, toEither
) where
import Data.Fix (Fix (..))
import Data.Text (Text)
import Language.Cimple.Ast (CommentStyle (..), Node, NodeF (..))
import Language.Cimple.Lexer (Lexeme)
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)
newtype HappyAbsSyn = HappyAbsSyn HappyAny
#if __GLASGOW_HASKELL__ >= 607
type HappyAny = Happy_GHC_Exts.Any
#else
type HappyAny = forall a . a
#endif
newtype HappyWrap6 = HappyWrap6 ([TextNode])
happyIn6 :: ([TextNode]) -> (HappyAbsSyn )
happyIn6 :: [TextNode] -> HappyAbsSyn
happyIn6 [TextNode]
x = HappyWrap6 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([TextNode] -> HappyWrap6
HappyWrap6 [TextNode]
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 (TextNode)
happyIn7 :: (TextNode) -> (HappyAbsSyn )
happyIn7 :: TextNode -> HappyAbsSyn
happyIn7 TextNode
x = HappyWrap7 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (TextNode -> HappyWrap7
HappyWrap7 TextNode
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 ([TextNode])
happyIn8 :: ([TextNode]) -> (HappyAbsSyn )
happyIn8 :: [TextNode] -> HappyAbsSyn
happyIn8 [TextNode]
x = HappyWrap8 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([TextNode] -> HappyWrap8
HappyWrap8 [TextNode]
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 ([TextNode])
happyIn9 :: ([TextNode]) -> (HappyAbsSyn )
happyIn9 :: [TextNode] -> HappyAbsSyn
happyIn9 [TextNode]
x = HappyWrap9 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([TextNode] -> HappyWrap9
HappyWrap9 [TextNode]
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 ([TextNode])
happyIn10 :: ([TextNode]) -> (HappyAbsSyn )
happyIn10 :: [TextNode] -> HappyAbsSyn
happyIn10 [TextNode]
x = HappyWrap10 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([TextNode] -> HappyWrap10
HappyWrap10 [TextNode]
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 (TextNode)
happyIn11 :: (TextNode) -> (HappyAbsSyn )
happyIn11 :: TextNode -> HappyAbsSyn
happyIn11 TextNode
x = HappyWrap11 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (TextNode -> HappyWrap11
HappyWrap11 TextNode
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 ([TextNode])
happyIn12 :: ([TextNode]) -> (HappyAbsSyn )
happyIn12 :: [TextNode] -> HappyAbsSyn
happyIn12 [TextNode]
x = HappyWrap12 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([TextNode] -> HappyWrap12
HappyWrap12 [TextNode]
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 (TextNode)
happyIn13 :: (TextNode) -> (HappyAbsSyn )
happyIn13 :: TextNode -> HappyAbsSyn
happyIn13 TextNode
x = HappyWrap13 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (TextNode -> HappyWrap13
HappyWrap13 TextNode
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 ([TextNode])
happyIn14 :: ([TextNode]) -> (HappyAbsSyn )
happyIn14 :: [TextNode] -> HappyAbsSyn
happyIn14 [TextNode]
x = HappyWrap14 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([TextNode] -> HappyWrap14
HappyWrap14 [TextNode]
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 ([TextNode])
happyIn15 :: ([TextNode]) -> (HappyAbsSyn )
happyIn15 :: [TextNode] -> HappyAbsSyn
happyIn15 [TextNode]
x = HappyWrap15 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# ([TextNode] -> HappyWrap15
HappyWrap15 [TextNode]
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 (TextNode)
happyIn16 :: (TextNode) -> (HappyAbsSyn )
happyIn16 :: TextNode -> HappyAbsSyn
happyIn16 TextNode
x = HappyWrap16 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (TextNode -> HappyWrap16
HappyWrap16 TextNode
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 (TextNode)
happyIn17 :: (TextNode) -> (HappyAbsSyn )
happyIn17 :: TextNode -> HappyAbsSyn
happyIn17 TextNode
x = HappyWrap17 -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# (TextNode -> HappyWrap17
HappyWrap17 TextNode
x)
{-# INLINE happyIn17 #-}
happyOut17 :: (HappyAbsSyn ) -> HappyWrap17
happyOut17 :: HappyAbsSyn -> HappyWrap17
happyOut17 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap17
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut17 #-}
happyInTok :: (TextNode) -> (HappyAbsSyn )
happyInTok :: TextNode -> HappyAbsSyn
happyInTok TextNode
x = TextNode -> HappyAbsSyn
Happy_GHC_Exts.unsafeCoerce# TextNode
x
{-# INLINE happyInTok #-}
happyOutTok :: (HappyAbsSyn ) -> (TextNode)
happyOutTok :: HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
x = HappyAbsSyn -> TextNode
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOutTok #-}
happyExpList :: HappyAddr
happyExpList :: HappyAddr
happyExpList = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x7e\x80\x2c\x00\x00\x00\x00\xf6\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x7e\x80\x20\x00\x00\x00\x00\xf6\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
{-# NOINLINE happyExpListPerState #-}
happyExpListPerState :: Int -> [[Char]]
happyExpListPerState Int
st =
[[Char]]
token_strs_expected
where token_strs :: [[Char]]
token_strs = [[Char]
"error",[Char]
"%dummy",[Char]
"%start_parseTranslationUnit",[Char]
"%start_parseDecls",[Char]
"%start_parseHeaderBody",[Char]
"TranslationUnit",[Char]
"Header",[Char]
"HeaderBody",[Char]
"Source",[Char]
"Features",[Char]
"IfDefine",[Char]
"Includes",[Char]
"Include",[Char]
"Decls",[Char]
"DeclList",[Char]
"Decl",[Char]
"CommentableDecl",[Char]
"ifndefDefine",[Char]
"ifdefDefine",[Char]
"ifDefine",[Char]
"ifndefInclude",[Char]
"ifdefInclude",[Char]
"ifInclude",[Char]
"docComment",[Char]
"preprocInclude",[Char]
"preprocDefine",[Char]
"preprocDefineConst",[Char]
"preprocDefineMacro",[Char]
"preprocIf",[Char]
"preprocIfdef",[Char]
"preprocIfndef",[Char]
"preprocElse",[Char]
"preprocElif",[Char]
"preprocUndef",[Char]
"preprocDefined",[Char]
"preprocScopedDefine",[Char]
"macroBodyStmt",[Char]
"macroBodyFunCall",[Char]
"macroParam",[Char]
"staticAssert",[Char]
"licenseDecl",[Char]
"copyrightDecl",[Char]
"comment",[Char]
"commentSectionEnd",[Char]
"commented",[Char]
"externC",[Char]
"compoundStmt",[Char]
"break",[Char]
"goto",[Char]
"continue",[Char]
"return",[Char]
"switchStmt",[Char]
"ifStmt",[Char]
"forStmt",[Char]
"whileStmt",[Char]
"doWhileStmt",[Char]
"case",[Char]
"default",[Char]
"label",[Char]
"exprStmt",[Char]
"vLA",[Char]
"varDeclStmt",[Char]
"varDecl",[Char]
"declSpecArray",[Char]
"initialiserList",[Char]
"unaryExpr",[Char]
"binaryExpr",[Char]
"ternaryExpr",[Char]
"assignExpr",[Char]
"parenExpr",[Char]
"castExpr",[Char]
"compoundExpr",[Char]
"sizeofExpr",[Char]
"sizeofType",[Char]
"literalExpr",[Char]
"varExpr",[Char]
"memberAccess",[Char]
"pointerAccess",[Char]
"arrayAccess",[Char]
"functionCall",[Char]
"commentExpr",[Char]
"enumConsts",[Char]
"enumDecl",[Char]
"enumerator",[Char]
"aggregateDecl",[Char]
"typedef",[Char]
"typedefFunction",[Char]
"struct",[Char]
"union",[Char]
"memberDecl",[Char]
"tyConst",[Char]
"tyPointer",[Char]
"tyStruct",[Char]
"tyFunc",[Char]
"tyStd",[Char]
"tyUserDefined",[Char]
"functionDecl",[Char]
"functionDefn",[Char]
"functionPrototype",[Char]
"ellipsis",[Char]
"nonNull",[Char]
"constDecl",[Char]
"constDefn",[Char]
"%eof"]
bit_start :: Int
bit_start = Int
st Int -> Int -> Int
forall a. Num a => a -> a -> a
Prelude.* Int
104
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
104
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
103]
token_strs_expected :: [[Char]]
token_strs_expected = ((Bool, Int) -> [[Char]]) -> [(Bool, Int)] -> [[Char]]
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
Prelude.concatMap (Bool, Int) -> [[Char]]
f [(Bool, Int)]
bits_indexed
f :: (Bool, Int) -> [[Char]]
f (Bool
Prelude.False, Int
_) = []
f (Bool
Prelude.True, Int
nr) = [[[Char]]
token_strs [[Char]] -> Int -> [Char]
forall a. [a] -> Int -> a
Prelude.!! Int
nr]
happyActOffsets :: HappyAddr
happyActOffsets :: HappyAddr
happyActOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\xed\xff\x00\x00\x10\x00\xf1\xff\x1f\x00\xdd\xff\x00\x00\xdd\xff\x01\x00\xdd\xff\x0c\x00\x00\x00\x00\x00\x0f\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x00\x00"#
happyGotoOffsets :: HappyAddr
happyGotoOffsets :: HappyAddr
happyGotoOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\x3a\x00\x34\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\xfc\xff\x00\x00\x21\x00\x00\x00\x00\x00\x3b\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x30\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\xe9\xff\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\x00\x00\xea\xff\x00\x00\xf5\xff\xfa\xff\xf9\xff\x00\x00\xf5\xff\xf8\xff\xd0\xff\xe8\xff\xe5\xff\xf3\xff\xf2\xff\xf1\xff\x00\x00\xd8\xff\xd7\xff\xd6\xff\xd5\xff\xd4\xff\xd3\xff\xd2\xff\xe7\xff\xe6\xff\xd9\xff\xdb\xff\xda\xff\xe0\xff\xde\xff\xd1\xff\xdf\xff\xe3\xff\xe2\xff\xe1\xff\xdd\xff\xdc\xff\xe9\xff\x00\x00\xfc\xff\xef\xff\xf7\xff\xed\xff\xec\xff\xeb\xff\xee\xff\xe4\xff\xfb\xff\xf4\xff\xf0\xff\xe9\xff\xf6\xff"#
happyCheck :: HappyAddr
happyCheck :: HappyAddr
happyCheck = Addr# -> HappyAddr
HappyA# Addr#
"\xff\xff\x05\x00\x01\x00\x02\x00\x03\x00\x18\x00\x0a\x00\x0b\x00\x07\x00\x18\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x01\x00\x02\x00\x03\x00\x07\x00\x07\x00\x08\x00\x09\x00\x08\x00\x17\x00\x09\x00\x0e\x00\x1a\x00\x1b\x00\x05\x00\x1d\x00\x01\x00\x02\x00\x03\x00\x01\x00\x0b\x00\x03\x00\x04\x00\x07\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x04\x00\x05\x00\x06\x00\x01\x00\x08\x00\x03\x00\x04\x00\x57\x00\x17\x00\x0e\x00\x07\x00\x08\x00\x09\x00\x00\x00\x1d\x00\x08\x00\x09\x00\x02\x00\x06\x00\x05\x00\x01\x00\x41\x00\x42\x00\x06\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
happyTable :: HappyAddr
happyTable :: HappyAddr
happyTable = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x10\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x11\x00\x12\x00\x17\x00\x05\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x14\x00\x15\x00\x16\x00\x0f\x00\x2f\x00\x30\x00\x08\x00\x39\x00\x1e\x00\x07\x00\x10\x00\x1f\x00\x20\x00\x10\x00\x21\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x35\x00\x0c\x00\x0d\x00\x2e\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x32\x00\x33\x00\x34\x00\x2e\x00\x35\x00\x36\x00\x0d\x00\xff\xff\x1e\x00\x10\x00\x2f\x00\x3a\x00\x08\x00\x09\x00\x21\x00\x07\x00\x08\x00\x05\x00\x2c\x00\x37\x00\x2e\x00\x22\x00\x23\x00\x39\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x00\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn)
happyReduceArr = (Int, Int)
-> [(Int,
Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn)]
-> Array
Int
(Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn)
forall i e. Ix i => (i, i) -> [(i, e)] -> Array i e
Happy_Data_Array.array (Int
3, Int
47) [
(Int
3 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_3),
(Int
4 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_4),
(Int
5 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_5),
(Int
6 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_6),
(Int
7 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_7),
(Int
8 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_8),
(Int
9 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_9),
(Int
10 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_10),
(Int
11 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_11),
(Int
12 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_12),
(Int
13 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_13),
(Int
14 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_14),
(Int
15 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_15),
(Int
16 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_16),
(Int
17 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_17),
(Int
18 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_18),
(Int
19 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_19),
(Int
20 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_20),
(Int
21 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_21),
(Int
22 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_22),
(Int
23 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_23),
(Int
24 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_24),
(Int
25 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_25),
(Int
26 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_26),
(Int
27 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_27),
(Int
28 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_28),
(Int
29 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_29),
(Int
30 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_30),
(Int
31 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_31),
(Int
32 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_32),
(Int
33 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_33),
(Int
34 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_34),
(Int
35 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_35),
(Int
36 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_36),
(Int
37 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_37),
(Int
38 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_38),
(Int
39 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_39),
(Int
40 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_40),
(Int
41 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_41),
(Int
42 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_42),
(Int
43 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_43),
(Int
44 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_44),
(Int
45 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_45),
(Int
46 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_46),
(Int
47 , Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_47)
]
happy_n_terms :: Int
happy_n_terms = Int
88 :: Prelude.Int
happy_n_nonterms :: Int
happy_n_nonterms = Int
12 :: Prelude.Int
happyReduce_3 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_3 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_3 Int#
0# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_3
happyReduction_3 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_3 HappyAbsSyn
happy_x_3
HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_2 of { TextNode
happy_var_2 ->
case HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
happy_x_3 of { (HappyWrap7 TextNode
happy_var_3) ->
[TextNode] -> HappyAbsSyn
happyIn6
([TextNode
happy_var_1, NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> NodeF TextLexeme TextNode -> TextNode
forall a b. (a -> b) -> a -> b
$ TextNode -> TextNode -> NodeF TextLexeme TextNode
forall lexeme a. a -> a -> NodeF lexeme a
Commented TextNode
happy_var_2 TextNode
happy_var_3]
)}}}
happyReduce_4 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_4 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_3 Int#
0# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_4
happyReduction_4 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_4 HappyAbsSyn
happy_x_3
HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_2 of { TextNode
happy_var_2 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_3 of { (HappyWrap9 [TextNode]
happy_var_3) ->
[TextNode] -> HappyAbsSyn
happyIn6
(TextNode
happy_var_1 TextNode -> [TextNode] -> [TextNode]
forall k1. k1 -> [k1] -> [k1]
: (TextNode -> TextNode) -> [TextNode] -> [TextNode]
forall a. (a -> a) -> [a] -> [a]
mapHead (NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> (TextNode -> NodeF TextLexeme TextNode) -> TextNode -> TextNode
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TextNode -> TextNode -> NodeF TextLexeme TextNode
forall lexeme a. a -> a -> NodeF lexeme a
Commented TextNode
happy_var_2)[TextNode]
happy_var_3
)}}}
happyReduce_5 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_5 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_2 Int#
0# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_5
happyReduction_5 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_5 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
case HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
happy_x_2 of { (HappyWrap7 TextNode
happy_var_2) ->
[TextNode] -> HappyAbsSyn
happyIn6
([TextNode
happy_var_1, TextNode
happy_var_2]
)}}
happyReduce_6 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_6 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_2 Int#
0# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_6
happyReduction_6 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_6 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_2 of { (HappyWrap9 [TextNode]
happy_var_2) ->
[TextNode] -> HappyAbsSyn
happyIn6
(TextNode
happy_var_1 TextNode -> [TextNode] -> [TextNode]
forall k1. k1 -> [k1] -> [k1]
: [TextNode]
happy_var_2
)}}
happyReduce_7 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_7 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyMonadReduce Int#
1# Int#
1# HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_7
happyReduction_7 :: HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_7 (HappyAbsSyn
happy_x_1 `HappyStk`
HappyStk HappyAbsSyn
happyRest) TextNode
tk
= TreeParser TextNode
-> (TextNode -> TreeParser HappyAbsSyn) -> TreeParser HappyAbsSyn
forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen ((case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
( ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
parseHeaderBody TextNode
happy_var_1)})
) (\TextNode
r -> HappyAbsSyn -> TreeParser HappyAbsSyn
forall a. a -> TreeParser a
happyReturn (TextNode -> HappyAbsSyn
happyIn7 TextNode
r))
happyReduce_8 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_8 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_3 Int#
2# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_8
happyReduction_8 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_8 HappyAbsSyn
happy_x_3
HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
case HappyAbsSyn -> HappyWrap12
happyOut12 HappyAbsSyn
happy_x_2 of { (HappyWrap12 [TextNode]
happy_var_2) ->
case HappyAbsSyn -> HappyWrap14
happyOut14 HappyAbsSyn
happy_x_3 of { (HappyWrap14 [TextNode]
happy_var_3) ->
[TextNode] -> HappyAbsSyn
happyIn8
(TextNode
happy_var_1 TextNode -> [TextNode] -> [TextNode]
forall k1. k1 -> [k1] -> [k1]
: [TextNode] -> [TextNode]
forall a. [a] -> [a]
reverse [TextNode]
happy_var_2 [TextNode] -> [TextNode] -> [TextNode]
forall a. [a] -> [a] -> [a]
++ [TextNode]
happy_var_3
)}}}
happyReduce_9 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_9 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce Int#
4# Int#
3# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_9
happyReduction_9 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_9 (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 -> HappyWrap10
happyOut10 HappyAbsSyn
happy_x_1 of { (HappyWrap10 [TextNode]
happy_var_1) ->
case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_2 of { TextNode
happy_var_2 ->
case HappyAbsSyn -> HappyWrap12
happyOut12 HappyAbsSyn
happy_x_3 of { (HappyWrap12 [TextNode]
happy_var_3) ->
case HappyAbsSyn -> HappyWrap14
happyOut14 HappyAbsSyn
happy_x_4 of { (HappyWrap14 [TextNode]
happy_var_4) ->
[TextNode] -> HappyAbsSyn
happyIn9
([TextNode]
happy_var_1 [TextNode] -> [TextNode] -> [TextNode]
forall a. [a] -> [a] -> [a]
++ [TextNode
happy_var_2] [TextNode] -> [TextNode] -> [TextNode]
forall a. [a] -> [a] -> [a]
++ [TextNode] -> [TextNode]
forall a. [a] -> [a]
reverse [TextNode]
happy_var_3 [TextNode] -> [TextNode] -> [TextNode]
forall a. [a] -> [a] -> [a]
++ [TextNode]
happy_var_4
) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}}
happyReduce_10 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_10 = Int#
-> HappyAbsSyn
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_0 Int#
4# HappyAbsSyn
happyReduction_10
happyReduction_10 :: HappyAbsSyn
happyReduction_10 = [TextNode] -> HappyAbsSyn
happyIn10
([]
)
happyReduce_11 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_11 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_2 Int#
4# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_11
happyReduction_11 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_11 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> HappyWrap10
happyOut10 HappyAbsSyn
happy_x_1 of { (HappyWrap10 [TextNode]
happy_var_1) ->
case HappyAbsSyn -> HappyWrap11
happyOut11 HappyAbsSyn
happy_x_2 of { (HappyWrap11 TextNode
happy_var_2) ->
[TextNode] -> HappyAbsSyn
happyIn10
(TextNode
happy_var_2 TextNode -> [TextNode] -> [TextNode]
forall k1. k1 -> [k1] -> [k1]
: [TextNode]
happy_var_1
)}}
happyReduce_12 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_12 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_12
happyReduction_12 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_12 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn11
(TextNode
happy_var_1
)}
happyReduce_13 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_13 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_13
happyReduction_13 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_13 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn11
(TextNode
happy_var_1
)}
happyReduce_14 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_14 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
5# HappyAbsSyn -> HappyAbsSyn
happyReduction_14
happyReduction_14 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_14 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn11
(TextNode
happy_var_1
)}
happyReduce_15 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_15 = Int#
-> HappyAbsSyn
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_0 Int#
6# HappyAbsSyn
happyReduction_15
happyReduction_15 :: HappyAbsSyn
happyReduction_15 = [TextNode] -> HappyAbsSyn
happyIn12
([]
)
happyReduce_16 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_16 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_2 Int#
6# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_16
happyReduction_16 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_16 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> HappyWrap12
happyOut12 HappyAbsSyn
happy_x_1 of { (HappyWrap12 [TextNode]
happy_var_1) ->
case HappyAbsSyn -> HappyWrap13
happyOut13 HappyAbsSyn
happy_x_2 of { (HappyWrap13 TextNode
happy_var_2) ->
[TextNode] -> HappyAbsSyn
happyIn12
(TextNode
happy_var_2 TextNode -> [TextNode] -> [TextNode]
forall k1. k1 -> [k1] -> [k1]
: [TextNode]
happy_var_1
)}}
happyReduce_17 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_17 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
7# HappyAbsSyn -> HappyAbsSyn
happyReduction_17
happyReduction_17 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_17 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn13
(TextNode
happy_var_1
)}
happyReduce_18 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_18 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
7# HappyAbsSyn -> HappyAbsSyn
happyReduction_18
happyReduction_18 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_18 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn13
(TextNode
happy_var_1
)}
happyReduce_19 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_19 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
7# HappyAbsSyn -> HappyAbsSyn
happyReduction_19
happyReduction_19 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_19 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn13
(TextNode
happy_var_1
)}
happyReduce_20 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_20 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
7# HappyAbsSyn -> HappyAbsSyn
happyReduction_20
happyReduction_20 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_20 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn13
(TextNode
happy_var_1
)}
happyReduce_21 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_21 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
8# HappyAbsSyn -> HappyAbsSyn
happyReduction_21
happyReduction_21 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_21 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> HappyWrap15
happyOut15 HappyAbsSyn
happy_x_1 of { (HappyWrap15 [TextNode]
happy_var_1) ->
[TextNode] -> HappyAbsSyn
happyIn14
([TextNode] -> [TextNode]
forall a. [a] -> [a]
reverse [TextNode]
happy_var_1
)}
happyReduce_22 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_22 = Int#
-> HappyAbsSyn
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_0 Int#
9# HappyAbsSyn
happyReduction_22
happyReduction_22 :: HappyAbsSyn
happyReduction_22 = [TextNode] -> HappyAbsSyn
happyIn15
([]
)
happyReduce_23 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_23 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_2 Int#
9# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_23
happyReduction_23 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_23 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> HappyWrap15
happyOut15 HappyAbsSyn
happy_x_1 of { (HappyWrap15 [TextNode]
happy_var_1) ->
case HappyAbsSyn -> HappyWrap16
happyOut16 HappyAbsSyn
happy_x_2 of { (HappyWrap16 TextNode
happy_var_2) ->
[TextNode] -> HappyAbsSyn
happyIn15
(TextNode
happy_var_2 TextNode -> [TextNode] -> [TextNode]
forall k1. k1 -> [k1] -> [k1]
: [TextNode]
happy_var_1
)}}
happyReduce_24 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_24 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
10# HappyAbsSyn -> HappyAbsSyn
happyReduction_24
happyReduction_24 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_24 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn16
(TextNode
happy_var_1
)}
happyReduce_25 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_25 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
10# HappyAbsSyn -> HappyAbsSyn
happyReduction_25
happyReduction_25 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_25 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn16
(TextNode
happy_var_1
)}
happyReduce_26 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_26 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
10# HappyAbsSyn -> HappyAbsSyn
happyReduction_26
happyReduction_26 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_26 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> HappyWrap17
happyOut17 HappyAbsSyn
happy_x_1 of { (HappyWrap17 TextNode
happy_var_1) ->
TextNode -> HappyAbsSyn
happyIn16
(TextNode
happy_var_1
)}
happyReduce_27 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_27 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_2 Int#
10# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_27
happyReduction_27 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_27 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
case HappyAbsSyn -> HappyWrap17
happyOut17 HappyAbsSyn
happy_x_2 of { (HappyWrap17 TextNode
happy_var_2) ->
TextNode -> HappyAbsSyn
happyIn16
(NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> NodeF TextLexeme TextNode -> TextNode
forall a b. (a -> b) -> a -> b
$ TextNode -> TextNode -> NodeF TextLexeme TextNode
forall lexeme a. a -> a -> NodeF lexeme a
Commented TextNode
happy_var_1 TextNode
happy_var_2
)}}
happyReduce_28 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_28 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_28
happyReduction_28 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_28 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_29 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_29 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_29
happyReduction_29 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_29 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_30 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_30 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_30
happyReduction_30 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_30 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_31 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_31 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_31
happyReduction_31 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_31 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_32 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_32 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_32
happyReduction_32 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_32 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_33 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_33 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_33
happyReduction_33 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_33 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_34 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_34 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_34
happyReduction_34 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_34 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_35 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_35 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_35
happyReduction_35 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_35 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_36 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_36 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_36
happyReduction_36 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_36 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_37 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_37 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_37
happyReduction_37 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_37 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_38 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_38 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyMonadReduce Int#
1# Int#
11# HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_38
happyReduction_38 :: HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_38 (HappyAbsSyn
happy_x_1 `HappyStk`
HappyStk HappyAbsSyn
happyRest) TextNode
tk
= TreeParser TextNode
-> (TextNode -> TreeParser HappyAbsSyn) -> TreeParser HappyAbsSyn
forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen ((case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
( ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
parseDecls TextNode
happy_var_1)})
) (\TextNode
r -> HappyAbsSyn -> TreeParser HappyAbsSyn
forall a. a -> TreeParser a
happyReturn (TextNode -> HappyAbsSyn
happyIn17 TextNode
r))
happyReduce_39 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_39 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_39
happyReduction_39 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_39 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_40 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_40 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_40
happyReduction_40 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_40 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_41 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_41 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_41
happyReduction_41 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_41 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_42 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_42 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyMonadReduce Int#
1# Int#
11# HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_42
happyReduction_42 :: HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_42 (HappyAbsSyn
happy_x_1 `HappyStk`
HappyStk HappyAbsSyn
happyRest) TextNode
tk
= TreeParser TextNode
-> (TextNode -> TreeParser HappyAbsSyn) -> TreeParser HappyAbsSyn
forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen ((case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
( ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
parseDecls TextNode
happy_var_1)})
) (\TextNode
r -> HappyAbsSyn -> TreeParser HappyAbsSyn
forall a. a -> TreeParser a
happyReturn (TextNode -> HappyAbsSyn
happyIn17 TextNode
r))
happyReduce_43 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_43 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyMonadReduce Int#
1# Int#
11# HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_43
happyReduction_43 :: HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_43 (HappyAbsSyn
happy_x_1 `HappyStk`
HappyStk HappyAbsSyn
happyRest) TextNode
tk
= TreeParser TextNode
-> (TextNode -> TreeParser HappyAbsSyn) -> TreeParser HappyAbsSyn
forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen ((case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
( ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
parseDecls TextNode
happy_var_1)})
) (\TextNode
r -> HappyAbsSyn -> TreeParser HappyAbsSyn
forall a. a -> TreeParser a
happyReturn (TextNode -> HappyAbsSyn
happyIn17 TextNode
r))
happyReduce_44 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_44 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyMonadReduce Int#
1# Int#
11# HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_44
happyReduction_44 :: HappyStk HappyAbsSyn -> TextNode -> TreeParser HappyAbsSyn
happyReduction_44 (HappyAbsSyn
happy_x_1 `HappyStk`
HappyStk HappyAbsSyn
happyRest) TextNode
tk
= TreeParser TextNode
-> (TextNode -> TreeParser HappyAbsSyn) -> TreeParser HappyAbsSyn
forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen ((case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
( ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
parseDecls TextNode
happy_var_1)})
) (\TextNode
r -> HappyAbsSyn -> TreeParser HappyAbsSyn
forall a. a -> TreeParser a
happyReturn (TextNode -> HappyAbsSyn
happyIn17 TextNode
r))
happyReduce_45 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_45 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_45
happyReduction_45 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_45 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_46 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_46 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_46
happyReduction_46 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_46 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> TextNode
happyOutTok HappyAbsSyn
happy_x_1 of { TextNode
happy_var_1 ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyReduce_47 :: Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyReduce_47 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happySpecReduce_1 Int#
11# HappyAbsSyn -> HappyAbsSyn
happyReduction_47
happyReduction_47 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_47 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> HappyWrap11
happyOut11 HappyAbsSyn
happy_x_1 of { (HappyWrap11 TextNode
happy_var_1) ->
TextNode -> HappyAbsSyn
happyIn17
(TextNode
happy_var_1
)}
happyNewToken :: Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyNewToken Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk [] =
Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyDoAction Int#
87# TextNode
forall a. a
notHappyAtAll Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk []
happyNewToken Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk (TextNode
tk:[TextNode]
tks) =
let cont :: Int# -> TreeParser HappyAbsSyn
cont Int#
i = Int#
-> TextNode
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> [TextNode]
-> TreeParser HappyAbsSyn
happyDoAction Int#
i TextNode
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk [TextNode]
tks in
case TextNode
tk of {
Fix (PreprocIfndef TextLexeme
_ [TextNode]
body (Fix (PreprocElse []))) | [TextNode] -> Bool
isDefine [TextNode]
body -> Int# -> TreeParser HappyAbsSyn
cont Int#
1#;
Fix (PreprocIfdef TextLexeme
_ [TextNode]
body (Fix (PreprocElse []))) | [TextNode] -> Bool
isDefine [TextNode]
body -> Int# -> TreeParser HappyAbsSyn
cont Int#
2#;
Fix (PreprocIf TextNode
_ [TextNode]
body (Fix (PreprocElse []))) | [TextNode] -> Bool
isDefine [TextNode]
body -> Int# -> TreeParser HappyAbsSyn
cont Int#
3#;
Fix (PreprocIfndef{}) | TextNode -> Bool
isPreproc TextNode
tk Bool -> Bool -> Bool
&& TextNode -> Bool
hasInclude TextNode
tk -> Int# -> TreeParser HappyAbsSyn
cont Int#
4#;
Fix (PreprocIfdef{}) | TextNode -> Bool
isPreproc TextNode
tk Bool -> Bool -> Bool
&& TextNode -> Bool
hasInclude TextNode
tk -> Int# -> TreeParser HappyAbsSyn
cont Int#
5#;
Fix (PreprocIf{}) | TextNode -> Bool
isPreproc TextNode
tk Bool -> Bool -> Bool
&& TextNode -> Bool
hasInclude TextNode
tk -> Int# -> TreeParser HappyAbsSyn
cont Int#
6#;
Fix (Comment CommentStyle
Doxygen TextLexeme
_ [TextLexeme]
_ TextLexeme
_) -> Int# -> TreeParser HappyAbsSyn
cont Int#
7#;
Fix (PreprocInclude{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
8#;
Fix (PreprocDefine{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
9#;
Fix (PreprocDefineConst{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
10#;
Fix (PreprocDefineMacro{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
11#;
Fix (PreprocIf{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
12#;
Fix (PreprocIfdef{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
13#;
Fix (PreprocIfndef{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
14#;
Fix (PreprocElse{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
15#;
Fix (PreprocElif{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
16#;
Fix (PreprocUndef{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
17#;
Fix (PreprocDefined{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
18#;
Fix (PreprocScopedDefine{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
19#;
Fix (MacroBodyStmt{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
20#;
Fix (MacroBodyFunCall{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
21#;
Fix (MacroParam{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
22#;
Fix (StaticAssert{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
23#;
Fix (LicenseDecl{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
24#;
Fix (CopyrightDecl{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
25#;
Fix (Comment{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
26#;
Fix (CommentSectionEnd{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
27#;
Fix (Commented{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
28#;
Fix (ExternC{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
29#;
Fix (CompoundStmt{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
30#;
Fix (NodeF TextLexeme TextNode
Break) -> Int# -> TreeParser HappyAbsSyn
cont Int#
31#;
Fix (Goto{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
32#;
Fix (NodeF TextLexeme TextNode
Continue) -> Int# -> TreeParser HappyAbsSyn
cont Int#
33#;
Fix (Return{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
34#;
Fix (SwitchStmt{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
35#;
Fix (IfStmt{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
36#;
Fix (ForStmt{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
37#;
Fix (WhileStmt{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
38#;
Fix (DoWhileStmt{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
39#;
Fix (Case{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
40#;
Fix (Default{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
41#;
Fix (Label{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
42#;
Fix (ExprStmt{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
43#;
Fix (VLA{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
44#;
Fix (VarDecl{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
45#;
Fix (VarDecl{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
46#;
Fix (DeclSpecArray{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
47#;
Fix (InitialiserList{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
48#;
Fix (UnaryExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
49#;
Fix (BinaryExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
50#;
Fix (TernaryExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
51#;
Fix (AssignExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
52#;
Fix (ParenExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
53#;
Fix (CastExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
54#;
Fix (CompoundExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
55#;
Fix (SizeofExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
56#;
Fix (SizeofType{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
57#;
Fix (LiteralExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
58#;
Fix (VarExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
59#;
Fix (MemberAccess{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
60#;
Fix (PointerAccess{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
61#;
Fix (ArrayAccess{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
62#;
Fix (FunctionCall{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
63#;
Fix (CommentExpr{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
64#;
Fix (EnumConsts{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
65#;
Fix (EnumDecl{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
66#;
Fix (Enumerator{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
67#;
Fix (AggregateDecl{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
68#;
Fix (Typedef{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
69#;
Fix (TypedefFunction{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
70#;
Fix (Struct{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
71#;
Fix (Union{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
72#;
Fix (MemberDecl{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
73#;
Fix (TyConst{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
74#;
Fix (TyPointer{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
75#;
Fix (TyStruct{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
76#;
Fix (TyFunc{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
77#;
Fix (TyStd{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
78#;
Fix (TyUserDefined{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
79#;
Fix (FunctionDecl{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
80#;
Fix (FunctionDefn{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
81#;
Fix (FunctionPrototype{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
82#;
Fix (NodeF TextLexeme TextNode
Ellipsis) -> Int# -> TreeParser HappyAbsSyn
cont Int#
83#;
Fix (NonNull{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
84#;
Fix (ConstDecl{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
85#;
Fix (ConstDefn{}) -> Int# -> TreeParser HappyAbsSyn
cont Int#
86#;
TextNode
_ -> ([TextNode], [[Char]]) -> TreeParser HappyAbsSyn
forall a. ([TextNode], [[Char]]) -> TreeParser a
happyError' ((TextNode
tkTextNode -> [TextNode] -> [TextNode]
forall k1. k1 -> [k1] -> [k1]
:[TextNode]
tks), [])
}
happyError_ :: [[Char]] -> Int# -> TextNode -> [TextNode] -> TreeParser a
happyError_ [[Char]]
explist Int#
87# TextNode
tk [TextNode]
tks = ([TextNode], [[Char]]) -> TreeParser a
forall a. ([TextNode], [[Char]]) -> TreeParser a
happyError' ([TextNode]
tks, [[Char]]
explist)
happyError_ [[Char]]
explist Int#
_ TextNode
tk [TextNode]
tks = ([TextNode], [[Char]]) -> TreeParser a
forall a. ([TextNode], [[Char]]) -> TreeParser a
happyError' ((TextNode
tkTextNode -> [TextNode] -> [TextNode]
forall k1. k1 -> [k1] -> [k1]
:[TextNode]
tks), [[Char]]
explist)
happyThen :: () => TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen :: TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen = TreeParser a -> (a -> TreeParser b) -> TreeParser b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
(Prelude.>>=)
happyReturn :: () => a -> TreeParser a
happyReturn :: a -> TreeParser a
happyReturn = (a -> TreeParser a
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 = m t -> (t -> m b) -> m b
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 -> TreeParser a
happyReturn1 :: a -> b -> TreeParser a
happyReturn1 = \a
a b
tks -> (a -> TreeParser a
forall (m :: * -> *) a. Monad m => a -> m a
Prelude.return) a
a
happyError' :: () => ([(TextNode)], [Prelude.String]) -> TreeParser a
happyError' :: ([TextNode], [[Char]]) -> TreeParser a
happyError' = ([TextNode], [[Char]]) -> TreeParser a
forall a. ([TextNode], [[Char]]) -> TreeParser a
parseError
parseTranslationUnit :: [TextNode] -> TreeParser [TextNode]
parseTranslationUnit [TextNode]
tks = TreeParser [TextNode]
happySomeParser where
happySomeParser :: TreeParser [TextNode]
happySomeParser = TreeParser HappyAbsSyn
-> (HappyAbsSyn -> TreeParser [TextNode]) -> TreeParser [TextNode]
forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen (Int# -> [TextNode] -> TreeParser HappyAbsSyn
happyParse Int#
0# [TextNode]
tks) (\HappyAbsSyn
x -> [TextNode] -> TreeParser [TextNode]
forall a. a -> TreeParser a
happyReturn (let {(HappyWrap6 [TextNode]
x') = HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
x} in [TextNode]
x'))
parseDecls :: [TextNode] -> TreeParser [TextNode]
parseDecls [TextNode]
tks = TreeParser [TextNode]
happySomeParser where
happySomeParser :: TreeParser [TextNode]
happySomeParser = TreeParser HappyAbsSyn
-> (HappyAbsSyn -> TreeParser [TextNode]) -> TreeParser [TextNode]
forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen (Int# -> [TextNode] -> TreeParser HappyAbsSyn
happyParse Int#
1# [TextNode]
tks) (\HappyAbsSyn
x -> [TextNode] -> TreeParser [TextNode]
forall a. a -> TreeParser a
happyReturn (let {(HappyWrap14 [TextNode]
x') = HappyAbsSyn -> HappyWrap14
happyOut14 HappyAbsSyn
x} in [TextNode]
x'))
parseHeaderBody :: [TextNode] -> TreeParser [TextNode]
parseHeaderBody [TextNode]
tks = TreeParser [TextNode]
happySomeParser where
happySomeParser :: TreeParser [TextNode]
happySomeParser = TreeParser HappyAbsSyn
-> (HappyAbsSyn -> TreeParser [TextNode]) -> TreeParser [TextNode]
forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
happyThen (Int# -> [TextNode] -> TreeParser HappyAbsSyn
happyParse Int#
2# [TextNode]
tks) (\HappyAbsSyn
x -> [TextNode] -> TreeParser [TextNode]
forall a. a -> TreeParser a
happyReturn (let {(HappyWrap8 [TextNode]
x') = HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
x} in [TextNode]
x'))
happySeq :: a -> b -> b
happySeq = a -> b -> b
forall a b. a -> b -> b
happyDontSeq
type TextLexeme = Lexeme Text
type TextNode = Node TextLexeme
newtype TreeParser a = TreeParser { TreeParser a -> Either [Char] a
toEither :: Either String a }
deriving (a -> TreeParser b -> TreeParser a
(a -> b) -> TreeParser a -> TreeParser b
(forall a b. (a -> b) -> TreeParser a -> TreeParser b)
-> (forall a b. a -> TreeParser b -> TreeParser a)
-> Functor TreeParser
forall a b. a -> TreeParser b -> TreeParser a
forall a b. (a -> b) -> TreeParser a -> TreeParser b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> TreeParser b -> TreeParser a
$c<$ :: forall a b. a -> TreeParser b -> TreeParser a
fmap :: (a -> b) -> TreeParser a -> TreeParser b
$cfmap :: forall a b. (a -> b) -> TreeParser a -> TreeParser b
Functor, Functor TreeParser
a -> TreeParser a
Functor TreeParser
-> (forall a. a -> TreeParser a)
-> (forall a b.
TreeParser (a -> b) -> TreeParser a -> TreeParser b)
-> (forall a b c.
(a -> b -> c) -> TreeParser a -> TreeParser b -> TreeParser c)
-> (forall a b. TreeParser a -> TreeParser b -> TreeParser b)
-> (forall a b. TreeParser a -> TreeParser b -> TreeParser a)
-> Applicative TreeParser
TreeParser a -> TreeParser b -> TreeParser b
TreeParser a -> TreeParser b -> TreeParser a
TreeParser (a -> b) -> TreeParser a -> TreeParser b
(a -> b -> c) -> TreeParser a -> TreeParser b -> TreeParser c
forall a. a -> TreeParser a
forall a b. TreeParser a -> TreeParser b -> TreeParser a
forall a b. TreeParser a -> TreeParser b -> TreeParser b
forall a b. TreeParser (a -> b) -> TreeParser a -> TreeParser b
forall a b c.
(a -> b -> c) -> TreeParser a -> TreeParser b -> TreeParser c
forall (f :: * -> *).
Functor f
-> (forall a. a -> f a)
-> (forall a b. f (a -> b) -> f a -> f b)
-> (forall a b c. (a -> b -> c) -> f a -> f b -> f c)
-> (forall a b. f a -> f b -> f b)
-> (forall a b. f a -> f b -> f a)
-> Applicative f
<* :: TreeParser a -> TreeParser b -> TreeParser a
$c<* :: forall a b. TreeParser a -> TreeParser b -> TreeParser a
*> :: TreeParser a -> TreeParser b -> TreeParser b
$c*> :: forall a b. TreeParser a -> TreeParser b -> TreeParser b
liftA2 :: (a -> b -> c) -> TreeParser a -> TreeParser b -> TreeParser c
$cliftA2 :: forall a b c.
(a -> b -> c) -> TreeParser a -> TreeParser b -> TreeParser c
<*> :: TreeParser (a -> b) -> TreeParser a -> TreeParser b
$c<*> :: forall a b. TreeParser (a -> b) -> TreeParser a -> TreeParser b
pure :: a -> TreeParser a
$cpure :: forall a. a -> TreeParser a
$cp1Applicative :: Functor TreeParser
Applicative, Applicative TreeParser
a -> TreeParser a
Applicative TreeParser
-> (forall a b.
TreeParser a -> (a -> TreeParser b) -> TreeParser b)
-> (forall a b. TreeParser a -> TreeParser b -> TreeParser b)
-> (forall a. a -> TreeParser a)
-> Monad TreeParser
TreeParser a -> (a -> TreeParser b) -> TreeParser b
TreeParser a -> TreeParser b -> TreeParser b
forall a. a -> TreeParser a
forall a b. TreeParser a -> TreeParser b -> TreeParser b
forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
forall (m :: * -> *).
Applicative m
-> (forall a b. m a -> (a -> m b) -> m b)
-> (forall a b. m a -> m b -> m b)
-> (forall a. a -> m a)
-> Monad m
return :: a -> TreeParser a
$creturn :: forall a. a -> TreeParser a
>> :: TreeParser a -> TreeParser b -> TreeParser b
$c>> :: forall a b. TreeParser a -> TreeParser b -> TreeParser b
>>= :: TreeParser a -> (a -> TreeParser b) -> TreeParser b
$c>>= :: forall a b. TreeParser a -> (a -> TreeParser b) -> TreeParser b
$cp1Monad :: Applicative TreeParser
Monad)
instance MonadFail TreeParser where
fail :: [Char] -> TreeParser a
fail = Either [Char] a -> TreeParser a
forall a. Either [Char] a -> TreeParser a
TreeParser (Either [Char] a -> TreeParser a)
-> ([Char] -> Either [Char] a) -> [Char] -> TreeParser a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> Either [Char] a
forall a b. a -> Either a b
Left
mapHead :: (a -> a) -> [a] -> [a]
mapHead :: (a -> a) -> [a] -> [a]
mapHead a -> a
_ [] = []
mapHead a -> a
f (a
x:[a]
xs) = a -> a
f a
x a -> [a] -> [a]
forall k1. k1 -> [k1] -> [k1]
: [a]
xs
isDefine :: [TextNode] -> Bool
isDefine :: [TextNode] -> Bool
isDefine (Fix PreprocUndef{}:[TextNode]
d) = [TextNode] -> Bool
isDefine [TextNode]
d
isDefine [Fix PreprocDefine{}] = Bool
True
isDefine [Fix PreprocDefineConst{}] = Bool
True
isDefine [TextNode]
_ = Bool
False
isPreproc :: TextNode -> Bool
isPreproc :: TextNode -> Bool
isPreproc (Fix PreprocInclude{}) = Bool
True
isPreproc (Fix PreprocUndef{}) = Bool
True
isPreproc (Fix PreprocDefine{}) = Bool
True
isPreproc (Fix PreprocDefineConst{}) = Bool
True
isPreproc (Fix (PreprocIf TextNode
_ [TextNode]
td TextNode
ed)) = (TextNode -> Bool) -> [TextNode] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
all TextNode -> Bool
isPreproc [TextNode]
td Bool -> Bool -> Bool
&& TextNode -> Bool
isPreproc TextNode
ed
isPreproc (Fix (PreprocIfdef TextLexeme
_ [TextNode]
td TextNode
ed)) = (TextNode -> Bool) -> [TextNode] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
all TextNode -> Bool
isPreproc [TextNode]
td Bool -> Bool -> Bool
&& TextNode -> Bool
isPreproc TextNode
ed
isPreproc (Fix (PreprocIfndef TextLexeme
_ [TextNode]
td TextNode
ed)) = (TextNode -> Bool) -> [TextNode] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
all TextNode -> Bool
isPreproc [TextNode]
td Bool -> Bool -> Bool
&& TextNode -> Bool
isPreproc TextNode
ed
isPreproc (Fix (PreprocElse [TextNode]
ed)) = (TextNode -> Bool) -> [TextNode] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
all TextNode -> Bool
isPreproc [TextNode]
ed
isPreproc TextNode
_ = Bool
False
hasInclude :: TextNode -> Bool
hasInclude :: TextNode -> Bool
hasInclude (Fix PreprocInclude{}) = Bool
True
hasInclude (Fix (PreprocIf TextNode
_ [TextNode]
td TextNode
ed)) = (TextNode -> Bool) -> [TextNode] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
any TextNode -> Bool
hasInclude [TextNode]
td Bool -> Bool -> Bool
|| TextNode -> Bool
hasInclude TextNode
ed
hasInclude (Fix (PreprocIfdef TextLexeme
_ [TextNode]
td TextNode
ed)) = (TextNode -> Bool) -> [TextNode] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
any TextNode -> Bool
hasInclude [TextNode]
td Bool -> Bool -> Bool
|| TextNode -> Bool
hasInclude TextNode
ed
hasInclude (Fix (PreprocIfndef TextLexeme
_ [TextNode]
td TextNode
ed)) = (TextNode -> Bool) -> [TextNode] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
any TextNode -> Bool
hasInclude [TextNode]
td Bool -> Bool -> Bool
|| TextNode -> Bool
hasInclude TextNode
ed
hasInclude (Fix (PreprocElse [TextNode]
ed)) = (TextNode -> Bool) -> [TextNode] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
any TextNode -> Bool
hasInclude [TextNode]
ed
hasInclude TextNode
_ = Bool
False
recurse :: ([TextNode] -> TreeParser [TextNode]) -> TextNode -> TreeParser TextNode
recurse :: ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
f (Fix (ExternC [TextNode]
ds)) = NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> TreeParser (NodeF TextLexeme TextNode) -> TreeParser TextNode
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ([TextNode] -> NodeF TextLexeme TextNode
forall lexeme a. [a] -> NodeF lexeme a
ExternC ([TextNode] -> NodeF TextLexeme TextNode)
-> TreeParser [TextNode] -> TreeParser (NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [TextNode] -> TreeParser [TextNode]
f [TextNode]
ds)
recurse [TextNode] -> TreeParser [TextNode]
f (Fix (PreprocIf TextNode
c [TextNode]
t TextNode
e)) = NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> TreeParser (NodeF TextLexeme TextNode) -> TreeParser TextNode
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TextNode -> [TextNode] -> TextNode -> NodeF TextLexeme TextNode
forall lexeme a. a -> [a] -> a -> NodeF lexeme a
PreprocIf TextNode
c ([TextNode] -> TextNode -> NodeF TextLexeme TextNode)
-> TreeParser [TextNode]
-> TreeParser (TextNode -> NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [TextNode] -> TreeParser [TextNode]
f [TextNode]
t TreeParser (TextNode -> NodeF TextLexeme TextNode)
-> TreeParser TextNode -> TreeParser (NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
f TextNode
e)
recurse [TextNode] -> TreeParser [TextNode]
f (Fix (PreprocIfdef TextLexeme
c [TextNode]
t TextNode
e)) = NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> TreeParser (NodeF TextLexeme TextNode) -> TreeParser TextNode
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TextLexeme -> [TextNode] -> TextNode -> NodeF TextLexeme TextNode
forall lexeme a. lexeme -> [a] -> a -> NodeF lexeme a
PreprocIfdef TextLexeme
c ([TextNode] -> TextNode -> NodeF TextLexeme TextNode)
-> TreeParser [TextNode]
-> TreeParser (TextNode -> NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [TextNode] -> TreeParser [TextNode]
f [TextNode]
t TreeParser (TextNode -> NodeF TextLexeme TextNode)
-> TreeParser TextNode -> TreeParser (NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
f TextNode
e)
recurse [TextNode] -> TreeParser [TextNode]
f (Fix (PreprocIfndef TextLexeme
c [TextNode]
t TextNode
e)) = NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> TreeParser (NodeF TextLexeme TextNode) -> TreeParser TextNode
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TextLexeme -> [TextNode] -> TextNode -> NodeF TextLexeme TextNode
forall lexeme a. lexeme -> [a] -> a -> NodeF lexeme a
PreprocIfndef TextLexeme
c ([TextNode] -> TextNode -> NodeF TextLexeme TextNode)
-> TreeParser [TextNode]
-> TreeParser (TextNode -> NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [TextNode] -> TreeParser [TextNode]
f [TextNode]
t TreeParser (TextNode -> NodeF TextLexeme TextNode)
-> TreeParser TextNode -> TreeParser (NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
f TextNode
e)
recurse [TextNode] -> TreeParser [TextNode]
f (Fix (PreprocIfndef TextLexeme
c [TextNode]
t TextNode
e)) = NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> TreeParser (NodeF TextLexeme TextNode) -> TreeParser TextNode
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TextLexeme -> [TextNode] -> TextNode -> NodeF TextLexeme TextNode
forall lexeme a. lexeme -> [a] -> a -> NodeF lexeme a
PreprocIfndef TextLexeme
c ([TextNode] -> TextNode -> NodeF TextLexeme TextNode)
-> TreeParser [TextNode]
-> TreeParser (TextNode -> NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [TextNode] -> TreeParser [TextNode]
f [TextNode]
t TreeParser (TextNode -> NodeF TextLexeme TextNode)
-> TreeParser TextNode -> TreeParser (NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
f TextNode
e)
recurse [TextNode] -> TreeParser [TextNode]
f (Fix (PreprocElif TextNode
c [TextNode]
t TextNode
e)) = NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> TreeParser (NodeF TextLexeme TextNode) -> TreeParser TextNode
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TextNode -> [TextNode] -> TextNode -> NodeF TextLexeme TextNode
forall lexeme a. a -> [a] -> a -> NodeF lexeme a
PreprocElif TextNode
c ([TextNode] -> TextNode -> NodeF TextLexeme TextNode)
-> TreeParser [TextNode]
-> TreeParser (TextNode -> NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [TextNode] -> TreeParser [TextNode]
f [TextNode]
t TreeParser (TextNode -> NodeF TextLexeme TextNode)
-> TreeParser TextNode -> TreeParser (NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ([TextNode] -> TreeParser [TextNode])
-> TextNode -> TreeParser TextNode
recurse [TextNode] -> TreeParser [TextNode]
f TextNode
e)
recurse [TextNode] -> TreeParser [TextNode]
f (Fix (PreprocElse [])) = TextNode -> TreeParser TextNode
forall (m :: * -> *) a. Monad m => a -> m a
return (TextNode -> TreeParser TextNode)
-> TextNode -> TreeParser TextNode
forall a b. (a -> b) -> a -> b
$ NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> NodeF TextLexeme TextNode -> TextNode
forall a b. (a -> b) -> a -> b
$ [TextNode] -> NodeF TextLexeme TextNode
forall lexeme a. [a] -> NodeF lexeme a
PreprocElse []
recurse [TextNode] -> TreeParser [TextNode]
f (Fix (PreprocElse [TextNode]
e)) = NodeF TextLexeme TextNode -> TextNode
forall (f :: * -> *). f (Fix f) -> Fix f
Fix (NodeF TextLexeme TextNode -> TextNode)
-> TreeParser (NodeF TextLexeme TextNode) -> TreeParser TextNode
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ([TextNode] -> NodeF TextLexeme TextNode
forall lexeme a. [a] -> NodeF lexeme a
PreprocElse ([TextNode] -> NodeF TextLexeme TextNode)
-> TreeParser [TextNode] -> TreeParser (NodeF TextLexeme TextNode)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [TextNode] -> TreeParser [TextNode]
f [TextNode]
e)
recurse [TextNode] -> TreeParser [TextNode]
_ TextNode
ns = [Char] -> TreeParser TextNode
forall (m :: * -> *) a. MonadFail m => [Char] -> m a
fail ([Char] -> TreeParser TextNode) -> [Char] -> TreeParser TextNode
forall a b. (a -> b) -> a -> b
$ [Char]
"TreeParser.recurse: " [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> TextNode -> [Char]
forall a. Show a => a -> [Char]
show TextNode
ns
parseError :: ([TextNode], [String]) -> TreeParser a
parseError :: ([TextNode], [[Char]]) -> TreeParser a
parseError ([], [[Char]]
options) = [Char] -> TreeParser a
forall (m :: * -> *) a. MonadFail m => [Char] -> m a
fail ([Char] -> TreeParser a) -> [Char] -> TreeParser a
forall a b. (a -> b) -> a -> b
$ [Char]
"end of file; expected one of " [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> [[Char]] -> [Char]
forall a. Show a => a -> [Char]
show [[Char]]
options
parseError (TextNode
n:[TextNode]
_, []) = [Char] -> TreeParser a
forall (m :: * -> *) a. MonadFail m => [Char] -> m a
fail ([Char] -> TreeParser a) -> [Char] -> TreeParser a
forall a b. (a -> b) -> a -> b
$ TextNode -> [Char]
forall a. Show a => a -> [Char]
show TextNode
n [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> [Char]
"; expected end of file"
parseError (TextNode
n:[TextNode]
_, [[Char]]
options) = [Char] -> TreeParser a
forall (m :: * -> *) a. MonadFail m => [Char] -> m a
fail ([Char] -> TreeParser a) -> [Char] -> TreeParser a
forall a b. (a -> b) -> a -> b
$ TextNode -> [Char]
forall a. Show a => a -> [Char]
show TextNode
n [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> [Char]
"; expected one of " [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> [[Char]] -> [Char]
forall a. Show a => a -> [Char]
show [[Char]]
options
{-# LINE 1 "templates/GenericTemplate.hs" #-}
#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)
happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
happyReturn1 ans
happyAccept j tk st sts (HappyStk ans _) =
(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
happyDoAction i tk st
=
case action of
0# ->
happyFail (happyExpListPerState ((Happy_GHC_Exts.I# (st)) :: Prelude.Int)) i tk st
-1# ->
happyAccept i tk st
n | LT(n,(0# :: Happy_GHC_Exts.Int#)) ->
(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 ->
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#
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
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)
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
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
happyGoto nt j tk st =
happyDoAction j tk new_state
where off = happyAdjustOffset (indexShortOffAddr happyGotoOffsets st)
off_i = (off Happy_GHC_Exts.+# nt)
new_state = indexShortOffAddr happyTable off_i
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
happyError_ explist i tk
happyFail explist i tk (action) sts stk =
happyDoAction 0# tk action sts ((Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
notHappyAtAll :: a
notHappyAtAll = Prelude.error "Internal Happy error\n"
happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
happyTcHack x y = y
{-# INLINE happyTcHack #-}
happyDoSeq, happyDontSeq :: a -> b -> b
happyDoSeq a b = a `Prelude.seq` b
happyDontSeq a b = b
{-# 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 #-}