{-# OPTIONS_GHC -w #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE PatternGuards #-}
{-# LANGUAGE NoStrictData #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# OPTIONS_GHC -w #-}
module Happy.Frontend.AttrGrammar.Parser (agParser) where
import Happy.Frontend.ParseMonad.Class
import Happy.Frontend.ParseMonad
import Happy.Frontend.AttrGrammar
import qualified Control.Monad as Happy_Prelude
import qualified Data.Bool as Happy_Prelude
import qualified Data.Function as Happy_Prelude
import qualified Data.Int as Happy_Prelude
import qualified Data.List as Happy_Prelude
import qualified Data.Maybe as Happy_Prelude
import qualified Data.String as Happy_Prelude
import qualified Data.Tuple as Happy_Prelude
import qualified GHC.Err as Happy_Prelude
import qualified GHC.Num as Happy_Prelude
import qualified Text.Show as Happy_Prelude
import qualified Data.Array as Happy_Data_Array
import qualified Data.Bits as Bits
import qualified GHC.Exts as Happy_GHC_Exts
import Control.Applicative(Applicative(..))
import Control.Monad (ap)
newtype HappyAbsSyn = HappyAbsSyn HappyAny
#if __GLASGOW_HASKELL__ >= 607
type HappyAny = Happy_GHC_Exts.Any
#else
type HappyAny = forall a . a
#endif
newtype HappyWrap5 = HappyWrap5 ([AgRule])
happyIn5 :: ([AgRule]) -> (HappyAbsSyn )
happyIn5 :: [AgRule] -> HappyAbsSyn
happyIn5 [AgRule]
x = HappyWrap5 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([AgRule] -> HappyWrap5
HappyWrap5 [AgRule]
x)
{-# INLINE happyIn5 #-}
happyOut5 :: (HappyAbsSyn ) -> HappyWrap5
happyOut5 :: HappyAbsSyn -> HappyWrap5
happyOut5 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap5
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut5 #-}
newtype HappyWrap6 = HappyWrap6 ([AgRule])
happyIn6 :: ([AgRule]) -> (HappyAbsSyn )
happyIn6 :: [AgRule] -> HappyAbsSyn
happyIn6 [AgRule]
x = HappyWrap6 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([AgRule] -> HappyWrap6
HappyWrap6 [AgRule]
x)
{-# INLINE happyIn6 #-}
happyOut6 :: (HappyAbsSyn ) -> HappyWrap6
happyOut6 :: HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap6
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut6 #-}
newtype HappyWrap7 = HappyWrap7 (AgRule)
happyIn7 :: (AgRule) -> (HappyAbsSyn )
happyIn7 :: AgRule -> HappyAbsSyn
happyIn7 AgRule
x = HappyWrap7 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# (AgRule -> HappyWrap7
HappyWrap7 AgRule
x)
{-# INLINE happyIn7 #-}
happyOut7 :: (HappyAbsSyn ) -> HappyWrap7
happyOut7 :: HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap7
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut7 #-}
newtype HappyWrap8 = HappyWrap8 ([AgToken])
happyIn8 :: ([AgToken]) -> (HappyAbsSyn )
happyIn8 :: [AgToken] -> HappyAbsSyn
happyIn8 [AgToken]
x = HappyWrap8 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([AgToken] -> HappyWrap8
HappyWrap8 [AgToken]
x)
{-# INLINE happyIn8 #-}
happyOut8 :: (HappyAbsSyn ) -> HappyWrap8
happyOut8 :: HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap8
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut8 #-}
newtype HappyWrap9 = HappyWrap9 ([AgToken])
happyIn9 :: ([AgToken]) -> (HappyAbsSyn )
happyIn9 :: [AgToken] -> HappyAbsSyn
happyIn9 [AgToken]
x = HappyWrap9 -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# ([AgToken] -> HappyWrap9
HappyWrap9 [AgToken]
x)
{-# INLINE happyIn9 #-}
happyOut9 :: (HappyAbsSyn ) -> HappyWrap9
happyOut9 :: HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
x = HappyAbsSyn -> HappyWrap9
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOut9 #-}
happyInTok :: (AgToken) -> (HappyAbsSyn )
happyInTok :: AgToken -> HappyAbsSyn
happyInTok AgToken
x = AgToken -> HappyAbsSyn
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# AgToken
x
{-# INLINE happyInTok #-}
happyOutTok :: (HappyAbsSyn ) -> (AgToken)
happyOutTok :: HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
x = HappyAbsSyn -> AgToken
forall a b. a -> b
Happy_GHC_Exts.unsafeCoerce# HappyAbsSyn
x
{-# INLINE happyOutTok #-}
{-# NOINLINE happyTokenStrings #-}
happyTokenStrings :: [String]
happyTokenStrings = [String
"\"{\"",String
"\"}\"",String
"\";\"",String
"\"=\"",String
"where",String
"selfRef",String
"subRef",String
"rightRef",String
"unknown",String
"%eof"]
happyActOffsets :: HappyAddr
happyActOffsets :: HappyAddr
happyActOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\x0d\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xfe\xff\xff\xff\x08\x00\x00\x00\x09\x00\x00\x00\x18\x00\x00\x00\x1a\x00\x00\x00\xfa\xff\xff\xff\x08\x00\x00\x00\x08\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x08\x00\x00\x00\x08\x00\x00\x00\x08\x00\x00\x00\x08\x00\x00\x00\x08\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x08\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"#
happyGotoOffsets :: HappyAddr
happyGotoOffsets :: HappyAddr
happyGotoOffsets = Addr# -> HappyAddr
HappyA# Addr#
"\x17\x00\x00\x00\x0a\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\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
happyDefActions :: HappyAddr
happyDefActions :: HappyAddr
happyDefActions = Addr# -> HappyAddr
HappyA# Addr#
"\xfb\xff\xff\xff\x00\x00\x00\x00\xfe\xff\xff\xff\xfc\xff\xff\xff\xf0\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\xff\xf0\xff\xff\xff\xf0\xff\xff\xff\xf7\xff\xff\xff\xe8\xff\xff\xff\xf0\xff\xff\xff\xf0\xff\xff\xff\xf0\xff\xff\xff\xf0\xff\xff\xff\xf0\xff\xff\xff\xfb\xff\xff\xff\xfd\xff\xff\xff\xf1\xff\xff\xff\xf2\xff\xff\xff\xf3\xff\xff\xff\xf4\xff\xff\xff\xf5\xff\xff\xff\x00\x00\x00\x00\xe8\xff\xff\xff\xe8\xff\xff\xff\xe8\xff\xff\xff\xe8\xff\xff\xff\xe8\xff\xff\xff\xf0\xff\xff\xff\xe8\xff\xff\xff\xfa\xff\xff\xff\xf9\xff\xff\xff\xf8\xff\xff\xff\xe9\xff\xff\xff\xea\xff\xff\xff\xeb\xff\xff\xff\xec\xff\xff\xff\xee\xff\xff\xff\xed\xff\xff\xff\x00\x00\x00\x00\xf0\xff\xff\xff\xf6\xff\xff\xff\xe8\xff\xff\xff\xef\xff\xff\xff"#
happyCheck :: HappyAddr
happyCheck :: HappyAddr
happyCheck = Addr# -> HappyAddr
HappyA# Addr#
"\xff\xff\xff\xff\x02\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0b\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x03\x00\x00\x00\x05\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x03\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
happyTable :: HappyAddr
happyTable :: HappyAddr
happyTable = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x00\x00\x1c\x00\x00\x00\x14\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\xff\xff\xff\xff\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x0e\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x0c\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x08\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x2d\x00\x00\x00\x0a\x00\x00\x00\x2f\x00\x00\x00\x0c\x00\x00\x00\x24\x00\x00\x00\x23\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x19\x00\x00\x00\x18\x00\x00\x00\x17\x00\x00\x00\x16\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x2a\x00\x00\x00\x29\x00\x00\x00\x28\x00\x00\x00\x27\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\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#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn)
happyReduceArr = (Int, Int)
-> [(Int,
Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn)]
-> Array
Int
(Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn)
forall i e. Ix i => (i, i) -> [(i, e)] -> Array i e
Happy_Data_Array.array (Int
1, Int
23) [
(Int
1 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_1),
(Int
2 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_2),
(Int
3 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_3),
(Int
4 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_4),
(Int
5 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_5),
(Int
6 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_6),
(Int
7 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_7),
(Int
8 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_8),
(Int
9 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_9),
(Int
10 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_10),
(Int
11 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_11),
(Int
12 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_12),
(Int
13 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_13),
(Int
14 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_14),
(Int
15 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_15),
(Int
16 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_16),
(Int
17 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_17),
(Int
18 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_18),
(Int
19 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_19),
(Int
20 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_20),
(Int
21 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_21),
(Int
22 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_22),
(Int
23 , Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_23)
]
happyRuleArr :: HappyAddr
happyRuleArr :: HappyAddr
happyRuleArr = Addr# -> HappyAddr
HappyA# Addr#
"\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00"#
happyCatchStates :: [Happy_Prelude.Int]
happyCatchStates :: [Int]
happyCatchStates = []
happy_n_terms :: Int
happy_n_terms = Int
12 :: Happy_Prelude.Int
happy_n_nonterms :: Int
happy_n_nonterms = Int
5 :: Happy_Prelude.Int
happy_n_starts :: Int
happy_n_starts = Int
1 :: Happy_Prelude.Int
happyReduce_1 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_1 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_1 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_1 Int#
0# HappyAbsSyn -> HappyAbsSyn
happyReduction_1
happyReduction_1 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_1 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
happy_x_1 of { (HappyWrap6 [AgRule]
happy_var_1) ->
[AgRule] -> HappyAbsSyn
happyIn5
([AgRule]
happy_var_1
)}
happyReduce_2 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_2 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_2 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_3 Int#
1# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_2
happyReduction_2 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_2 HappyAbsSyn
happy_x_3
p
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
happy_x_1 of { (HappyWrap7 AgRule
happy_var_1) ->
case HappyAbsSyn -> HappyWrap6
happyOut6 HappyAbsSyn
happy_x_3 of { (HappyWrap6 [AgRule]
happy_var_3) ->
[AgRule] -> HappyAbsSyn
happyIn6
(AgRule
happy_var_1 AgRule -> [AgRule] -> [AgRule]
forall a. a -> [a] -> [a]
: [AgRule]
happy_var_3
)}}
happyReduce_3 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_3 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_3 = Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_1 Int#
1# HappyAbsSyn -> HappyAbsSyn
happyReduction_3
happyReduction_3 :: HappyAbsSyn -> HappyAbsSyn
happyReduction_3 HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> HappyWrap7
happyOut7 HappyAbsSyn
happy_x_1 of { (HappyWrap7 AgRule
happy_var_1) ->
[AgRule] -> HappyAbsSyn
happyIn6
(AgRule
happy_var_1 AgRule -> [AgRule] -> [AgRule]
forall a. a -> [a] -> [a]
: []
)}
happyReduce_4 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_4 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_4 = Int#
-> HappyAbsSyn
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_0 Int#
1# HappyAbsSyn
happyReduction_4
happyReduction_4 :: HappyAbsSyn
happyReduction_4 = [AgRule] -> HappyAbsSyn
happyIn6
([]
)
happyReduce_5 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_5 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_5 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_3 Int#
2# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_5
happyReduction_5 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_5 HappyAbsSyn
happy_x_3
p
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_3 of { (HappyWrap8 [AgToken]
happy_var_3) ->
AgRule -> HappyAbsSyn
happyIn7
(AgSelfAssign -> AgRule
SelfAssign (AgSelfAssign -> AgRule) -> AgSelfAssign -> AgRule
forall a b. (a -> b) -> a -> b
$ String -> [AgToken] -> AgSelfAssign
MkAgSelfAssign (AgToken -> String
selfRefVal AgToken
happy_var_1) [AgToken]
happy_var_3
)}}
happyReduce_6 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_6 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_6 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_3 Int#
2# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_6
happyReduction_6 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_6 HappyAbsSyn
happy_x_3
p
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_3 of { (HappyWrap8 [AgToken]
happy_var_3) ->
AgRule -> HappyAbsSyn
happyIn7
(AgSubAssign -> AgRule
SubAssign (AgSubAssign -> AgRule) -> AgSubAssign -> AgRule
forall a b. (a -> b) -> a -> b
$ (Int, String) -> [AgToken] -> AgSubAssign
MkAgSubAssign (AgToken -> (Int, String)
subRefVal AgToken
happy_var_1) [AgToken]
happy_var_3
)}}
happyReduce_7 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_7 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_7 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_3 Int#
2# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_7
happyReduction_7 :: HappyAbsSyn -> p -> HappyAbsSyn -> HappyAbsSyn
happyReduction_7 HappyAbsSyn
happy_x_3
p
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_3 of { (HappyWrap8 [AgToken]
happy_var_3) ->
AgRule -> HappyAbsSyn
happyIn7
(String -> [AgToken] -> AgRule
RightmostAssign (AgToken -> String
rightRefVal AgToken
happy_var_1) [AgToken]
happy_var_3
)}}
happyReduce_8 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_8 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_8 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
2# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
forall {p}. HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_8
happyReduction_8 :: HappyAbsSyn -> p -> HappyAbsSyn
happyReduction_8 HappyAbsSyn
happy_x_2
p
happy_x_1
= case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_2 of { (HappyWrap8 [AgToken]
happy_var_2) ->
AgRule -> HappyAbsSyn
happyIn7
(AgConditional -> AgRule
Conditional (AgConditional -> AgRule) -> AgConditional -> AgRule
forall a b. (a -> b) -> a -> b
$ [AgToken] -> AgConditional
MkAgConditional [AgToken]
happy_var_2
)}
happyReduce_9 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_9 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_9 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
forall {p}.
Int#
-> Int#
-> (p -> HappyStk HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> p
-> P 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 -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_2 of { (HappyWrap9 [AgToken]
happy_var_2) ->
case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_3 of { AgToken
happy_var_3 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_4 of { (HappyWrap8 [AgToken]
happy_var_4) ->
[AgToken] -> HappyAbsSyn
happyIn8
([AgToken
happy_var_1] [AgToken] -> [AgToken] -> [AgToken]
forall a. [a] -> [a] -> [a]
++ [AgToken]
happy_var_2 [AgToken] -> [AgToken] -> [AgToken]
forall a. [a] -> [a] -> [a]
++ [AgToken
happy_var_3] [AgToken] -> [AgToken] -> [AgToken]
forall a. [a] -> [a] -> [a]
++ [AgToken]
happy_var_4
) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}}
happyReduce_10 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_10 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_10 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_10
happyReduction_10 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_10 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_2 of { (HappyWrap8 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn8
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_11 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_11 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_11 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_11
happyReduction_11 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_11 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_2 of { (HappyWrap8 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn8
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_12 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_12 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_12 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_12
happyReduction_12 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_12 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_2 of { (HappyWrap8 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn8
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_13 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_13 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_13 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_13
happyReduction_13 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_13 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_2 of { (HappyWrap8 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn8
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_14 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_14 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_14 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
3# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_14
happyReduction_14 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_14 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_2 of { (HappyWrap8 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn8
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_15 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_15 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_15 = Int#
-> HappyAbsSyn
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_0 Int#
3# HappyAbsSyn
happyReduction_15
happyReduction_15 :: HappyAbsSyn
happyReduction_15 = [AgToken] -> HappyAbsSyn
happyIn8
([]
)
happyReduce_16 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_16 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_16 = Int#
-> Int#
-> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
forall {p}.
Int#
-> Int#
-> (p -> HappyStk HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> p
-> P HappyAbsSyn
happyReduce Int#
4# Int#
4# HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_16
happyReduction_16 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
happyReduction_16 (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 -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_2 of { (HappyWrap9 [AgToken]
happy_var_2) ->
case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_3 of { AgToken
happy_var_3 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_4 of { (HappyWrap9 [AgToken]
happy_var_4) ->
[AgToken] -> HappyAbsSyn
happyIn9
([AgToken
happy_var_1] [AgToken] -> [AgToken] -> [AgToken]
forall a. [a] -> [a] -> [a]
++ [AgToken]
happy_var_2 [AgToken] -> [AgToken] -> [AgToken]
forall a. [a] -> [a] -> [a]
++ [AgToken
happy_var_3] [AgToken] -> [AgToken] -> [AgToken]
forall a. [a] -> [a] -> [a]
++ [AgToken]
happy_var_4
) HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
happyRest}}}}
happyReduce_17 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_17 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_17 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
4# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_17
happyReduction_17 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_17 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_2 of { (HappyWrap9 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn9
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_18 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_18 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_18 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
4# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_18
happyReduction_18 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_18 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_2 of { (HappyWrap9 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn9
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_19 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_19 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_19 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
4# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_19
happyReduction_19 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_19 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_2 of { (HappyWrap9 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn9
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_20 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_20 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_20 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
4# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_20
happyReduction_20 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_20 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_2 of { (HappyWrap9 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn9
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_21 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_21 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_21 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
4# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_21
happyReduction_21 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_21 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap8
happyOut8 HappyAbsSyn
happy_x_2 of { (HappyWrap8 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn9
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_22 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_22 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_22 = Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
4# HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_22
happyReduction_22 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
happyReduction_22 HappyAbsSyn
happy_x_2
HappyAbsSyn
happy_x_1
= case HappyAbsSyn -> AgToken
happyOutTok HappyAbsSyn
happy_x_1 of { AgToken
happy_var_1 ->
case HappyAbsSyn -> HappyWrap9
happyOut9 HappyAbsSyn
happy_x_2 of { (HappyWrap9 [AgToken]
happy_var_2) ->
[AgToken] -> HappyAbsSyn
happyIn9
(AgToken
happy_var_1 AgToken -> [AgToken] -> [AgToken]
forall a. a -> [a] -> [a]
: [AgToken]
happy_var_2
)}}
happyReduce_23 :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )
happyReduce_23 :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyReduce_23 = Int#
-> HappyAbsSyn
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_0 Int#
4# HappyAbsSyn
happyReduction_23
happyReduction_23 :: HappyAbsSyn
happyReduction_23 = [AgToken] -> HappyAbsSyn
happyIn9
([]
)
happyTerminalToTok :: AgToken -> Int#
happyTerminalToTok AgToken
term = case AgToken
term of {
AgToken
AgTok_EOF -> Int#
11#;
AgToken
AgTok_LBrace -> Int#
2#;
AgToken
AgTok_RBrace -> Int#
3#;
AgToken
AgTok_Semicolon -> Int#
4#;
AgToken
AgTok_Eq -> Int#
5#;
AgToken
AgTok_Where -> Int#
6#;
AgTok_SelfRef String
_ -> Int#
7#;
AgTok_SubRef (Int, String)
_ -> Int#
8#;
AgTok_RightmostRef String
_ -> Int#
9#;
AgTok_Unknown String
_ -> Int#
10#;
AgToken
_ -> Int#
-1#;
}
{-# NOINLINE happyTerminalToTok #-}
happyLex :: (AgToken -> P r) -> (Int# -> AgToken -> P r) -> P r
happyLex AgToken -> P r
kend Int# -> AgToken -> P r
kmore = (AgToken -> P r) -> P r
forall token r. HasLexer token => (token -> P r) -> P r
lexTokenP (\AgToken
tk -> case AgToken
tk of {
AgToken
AgTok_EOF -> AgToken -> P r
kend AgToken
tk;
AgToken
_ -> Int# -> AgToken -> P r
kmore (AgToken -> Int#
happyTerminalToTok AgToken
tk) AgToken
tk })
{-# INLINE happyLex #-}
happyNewToken :: Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
happyNewToken Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk = (AgToken -> P HappyAbsSyn)
-> (Int# -> AgToken -> P HappyAbsSyn) -> P HappyAbsSyn
forall {r}. (AgToken -> P r) -> (Int# -> AgToken -> P r) -> P r
happyLex (\AgToken
tk -> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyDoAction Int#
11# AgToken
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk) (\Int#
i AgToken
tk -> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyDoAction Int#
i AgToken
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk)
happyReport :: Int# -> AgToken -> [String] -> P a -> P a
happyReport Int#
11# = AgToken -> [String] -> P a -> P a
forall a. AgToken -> [String] -> P a -> P a
happyReport'
happyReport Int#
_ = AgToken -> [String] -> P a -> P a
forall a. AgToken -> [String] -> P a -> P a
happyReport'
happyThen :: () => (P a) -> (a -> (P b)) -> (P b)
happyThen :: forall a b. P a -> (a -> P b) -> P b
happyThen = ReaderT (String, Int) ParseResult a
-> (a -> ReaderT (String, Int) ParseResult b)
-> ReaderT (String, Int) ParseResult b
forall a b. P a -> (a -> P b) -> P b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
(Happy_Prelude.>>=)
happyReturn :: () => a -> (P a)
happyReturn :: forall a. a -> P a
happyReturn = (a -> ReaderT (String, Int) ParseResult a
forall a. a -> P a
forall (m :: * -> *) a. Monad m => a -> m a
Happy_Prelude.return)
happyParse :: () => Happy_GHC_Exts.Int# -> P (HappyAbsSyn )
happyNewToken :: () => Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> (P (HappyAbsSyn ))
happyDoAction :: () => Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> (P (HappyAbsSyn ))
happyReduceArr :: () => Happy_Data_Array.Array Happy_Prelude.Int (Happy_GHC_Exts.Int# -> AgToken -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> (P (HappyAbsSyn )))
happyThen1 :: () => P a -> (a -> P b) -> P b
happyThen1 :: forall a b. P a -> (a -> P b) -> P b
happyThen1 = P a -> (a -> P b) -> P b
forall a b. P a -> (a -> P b) -> P b
happyThen
happyFmap1 :: (t -> b) -> P t -> P b
happyFmap1 t -> b
f P t
m = P t -> (t -> P b) -> P b
forall a b. P a -> (a -> P b) -> P b
happyThen P t
m (\t
a -> b -> P b
forall a. a -> P a
happyReturn (t -> b
f t
a))
happyReturn1 :: () => a -> (P a)
happyReturn1 :: forall a. a -> P a
happyReturn1 = a -> P a
forall a. a -> P a
happyReturn
happyReport' :: () => (AgToken) -> [Happy_Prelude.String] -> (P a) -> (P a)
happyReport' :: forall a. AgToken -> [String] -> P a -> P a
happyReport' = (\AgToken
tokens [String]
expected P a
resume -> P a
forall a. P a
happyError)
happyAbort :: () => (P a)
happyAbort :: forall a. P a
happyAbort = String -> P a
forall a. HasCallStack => String -> a
Happy_Prelude.error String
"Called abort handler in non-resumptive parser"
agParser :: P [AgRule]
agParser = P [AgRule]
happySomeParser where
happySomeParser :: P [AgRule]
happySomeParser = P HappyAbsSyn -> (HappyAbsSyn -> P [AgRule]) -> P [AgRule]
forall a b. P a -> (a -> P b) -> P b
happyThen (Int# -> P HappyAbsSyn
happyParse Int#
0#) (\HappyAbsSyn
x -> [AgRule] -> P [AgRule]
forall a. a -> P a
happyReturn (let {(HappyWrap5 [AgRule]
x') = HappyAbsSyn -> HappyWrap5
happyOut5 HappyAbsSyn
x} in [AgRule]
x'))
happySeq :: a -> b -> b
happySeq = a -> b -> b
forall a b. a -> b -> b
happyDontSeq
happyError :: P a
happyError :: forall a. P a
happyError = (Int -> String) -> ReaderT (String, Int) ParseResult a
forall a. (Int -> String) -> ReaderT (String, Int) ParseResult a
forall (p :: * -> *) a. ParseMonad p => (Int -> String) -> p a
failP (\Int
l -> Int -> String
forall a. Show a => a -> String
show Int
l String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
": Parse error\n")
#define HAPPY_COERCE 1
#if !defined(__GLASGOW_HASKELL__)
# error This code isn't being built with GHC.
#endif
#include "MachDeps.h"
#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Happy_Prelude.Bool)
#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Happy_Prelude.Bool)
#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Happy_Prelude.Bool)
#define PLUS(n,m) (n Happy_GHC_Exts.+# m)
#define MINUS(n,m) (n Happy_GHC_Exts.-# m)
#define TIMES(n,m) (n Happy_GHC_Exts.*# m)
#define NEGATE(n) (Happy_GHC_Exts.negateInt# (n))
type Happy_Int = Happy_GHC_Exts.Int#
data Happy_IntList = HappyCons Happy_Int Happy_IntList
#define INVALID_TOK -1#
#define ERROR_TOK 0#
#define CATCH_TOK 1#
#if defined(HAPPY_COERCE)
# define GET_ERROR_TOKEN(x) (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# i) -> i })
# define MK_ERROR_TOKEN(i) (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# i))
# define MK_TOKEN(x) (happyInTok (x))
#else
# define GET_ERROR_TOKEN(x) (case x of { HappyErrorToken (Happy_GHC_Exts.I# i) -> i })
# define MK_ERROR_TOKEN(i) (HappyErrorToken (Happy_GHC_Exts.I# i))
# define MK_TOKEN(x) (HappyTerminal (x))
#endif
#if defined(HAPPY_DEBUG)
# define DEBUG_TRACE(s) (happyTrace (s)) Happy_Prelude.$
happyTrace string expr = Happy_System_IO_Unsafe.unsafePerformIO Happy_Prelude.$ do
Happy_System_IO.hPutStr Happy_System_IO.stderr string
Happy_Prelude.return expr
#else
# define DEBUG_TRACE(s) {- nothing -}
#endif
infixr 9 `HappyStk`
data HappyStk a = HappyStk a (HappyStk a)
happyParse :: Int# -> P HappyAbsSyn
happyParse Int#
start_state = Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
happyNewToken Int#
start_state Happy_IntList
forall a. a
notHappyAtAll HappyStk HappyAbsSyn
forall a. a
notHappyAtAll
happyAccept :: Int# -> p -> Int# -> p -> HappyStk a -> P a
happyAccept ERROR_TOK tk st sts (_ `HappyStk` ans `HappyStk` _) =
happyReturn1 ans
happyAccept Int#
j p
tk Int#
st p
sts (HappyStk a
ans HappyStk a
_) =
(Int# -> (P a -> P a) -> P a -> P a
forall a. Int# -> a -> a
happyTcHack Int#
j (Int# -> P a -> P a
forall a. Int# -> a -> a
happyTcHack Int#
st)) (a -> P a
forall a. a -> P a
happyReturn1 a
ans)
happyDoAction :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyDoAction Int#
i AgToken
tk Int#
st =
DEBUG_TRACE("state: " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++
",\ttoken: " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++
",\taction: ")
case Int# -> HappyAction
happyDecodeAction (Int# -> Int# -> Int#
happyNextAction Int#
i Int#
st) of
HappyAction
HappyFail -> DEBUG_TRACE("failing.\n")
Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyFail Int#
i AgToken
tk Int#
st
HappyAction
HappyAccept -> DEBUG_TRACE("accept.\n")
Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
forall {p} {p} {a}. Int# -> p -> Int# -> p -> HappyStk a -> P a
happyAccept Int#
i AgToken
tk Int#
st
HappyReduce Int#
rule -> DEBUG_TRACE("reduce (rule " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# rule) Happy_Prelude.++ ")")
(Array
Int
(Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn)
happyReduceArr Array
Int
(Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn)
-> Int
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
forall i e. Ix i => Array i e -> i -> e
Happy_Data_Array.! (Int# -> Int
Happy_GHC_Exts.I# Int#
rule)) Int#
i AgToken
tk Int#
st
HappyShift Int#
new_state -> DEBUG_TRACE("shift, enter state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# new_state) Happy_Prelude.++ "\n")
Int#
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyShift Int#
new_state Int#
i AgToken
tk Int#
st
{-# INLINE happyNextAction #-}
happyNextAction :: Int# -> Int# -> Int#
happyNextAction Int#
i Int#
st = case Int# -> Int# -> Maybe Int
happyIndexActionTable Int#
i Int#
st of
Happy_Prelude.Just (Happy_GHC_Exts.I# Int#
act) -> Int#
act
Maybe Int
Happy_Prelude.Nothing -> HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyDefActions Int#
st
{-# INLINE happyIndexActionTable #-}
happyIndexActionTable :: Int# -> Int# -> Maybe Int
happyIndexActionTable Int#
i Int#
st
| GTE(i, 0#), GTE(off, 0#), EQ(happyIndexOffAddr happyCheck off, i)
= Int -> Maybe Int
forall a. a -> Maybe a
Happy_Prelude.Just (Int# -> Int
Happy_GHC_Exts.I# (HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyTable Int#
off))
| Bool
Happy_Prelude.otherwise
= Maybe Int
forall a. Maybe a
Happy_Prelude.Nothing
where
off :: Int#
off = PLUS(happyIndexOffAddr happyActOffsets st, i)
data HappyAction
= HappyFail
| HappyAccept
| HappyReduce Happy_Int
| HappyShift Happy_Int
deriving Int -> HappyAction -> String -> String
[HappyAction] -> String -> String
HappyAction -> String
(Int -> HappyAction -> String -> String)
-> (HappyAction -> String)
-> ([HappyAction] -> String -> String)
-> Show HappyAction
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
$cshowsPrec :: Int -> HappyAction -> String -> String
showsPrec :: Int -> HappyAction -> String -> String
$cshow :: HappyAction -> String
show :: HappyAction -> String
$cshowList :: [HappyAction] -> String -> String
showList :: [HappyAction] -> String -> String
Happy_Prelude.Show
{-# INLINE happyDecodeAction #-}
happyDecodeAction :: Happy_Int -> HappyAction
happyDecodeAction :: Int# -> HappyAction
happyDecodeAction Int#
0# = HappyAction
HappyFail
happyDecodeAction Int#
-1# = HappyAction
HappyAccept
happyDecodeAction Int#
action | LT(action, 0#) = HappyReduce NEGATE(PLUS(action, 1#))
| Bool
Happy_Prelude.otherwise = Int# -> HappyAction
HappyShift MINUS(action, 1#)
{-# INLINE happyIndexGotoTable #-}
happyIndexGotoTable :: Int# -> Int# -> Int#
happyIndexGotoTable Int#
nt Int#
st = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyTable Int#
off
where
off :: Int#
off = PLUS(happyIndexOffAddr happyGotoOffsets st, nt)
{-# INLINE happyIndexOffAddr #-}
happyIndexOffAddr :: HappyAddr -> Happy_Int -> Happy_Int
happyIndexOffAddr :: HappyAddr -> Int# -> Int#
happyIndexOffAddr (HappyA# Addr#
arr) Int#
off =
#if __GLASGOW_HASKELL__ >= 901
Int32# -> Int#
Happy_GHC_Exts.int32ToInt#
#endif
#ifdef WORDS_BIGENDIAN
(Happy_GHC_Exts.word32ToInt32# (Happy_GHC_Exts.wordToWord32# (Happy_GHC_Exts.byteSwap32# (Happy_GHC_Exts.word32ToWord# (Happy_GHC_Exts.int32ToWord32#
#endif
(Addr# -> Int# -> Int32#
Happy_GHC_Exts.indexInt32OffAddr# Addr#
arr Int#
off)
#ifdef WORDS_BIGENDIAN
)))))
#endif
happyIndexRuleArr :: Happy_Int -> (# Happy_Int, Happy_Int #)
happyIndexRuleArr :: Int# -> (# Int#, Int# #)
happyIndexRuleArr Int#
r = (# Int#
nt, Int#
len #)
where
!(Happy_GHC_Exts.I# Int#
n_starts) = Int
happy_n_starts
offs :: Int#
offs = TIMES(MINUS(r,n_starts),2#)
nt :: Int#
nt = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyRuleArr Int#
offs
len :: Int#
len = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyRuleArr PLUS(offs,1#)
data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
happyShift :: Int#
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyShift Int#
new_state ERROR_TOK tk st sts stk@(x `HappyStk` _) =
let i = GET_ERROR_TOKEN(x) in
DEBUG_TRACE("shifting the error token")
happyDoAction i tk new_state (HappyCons st sts) stk
happyShift Int#
new_state Int#
i AgToken
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk =
Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
happyNewToken Int#
new_state (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts) (MK_TOKEN(tk) `HappyStk` stk)
happySpecReduce_0 :: Int#
-> HappyAbsSyn
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_0 Int#
nt HappyAbsSyn
fn Int#
j AgToken
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk
= HappyAbsSyn -> P HappyAbsSyn -> P HappyAbsSyn
forall a b. a -> b -> b
happySeq HappyAbsSyn
fn (Int#
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyGoto Int#
nt Int#
j AgToken
tk Int#
st (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts) (HappyAbsSyn
fn HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
stk))
happySpecReduce_1 :: Int#
-> (HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_1 Int#
nt HappyAbsSyn -> HappyAbsSyn
fn Int#
j AgToken
tk Int#
old_st sts :: Happy_IntList
sts@(HappyCons Int#
st Happy_IntList
_) (HappyAbsSyn
v1 `HappyStk` HappyStk HappyAbsSyn
stk')
= let r :: HappyAbsSyn
r = HappyAbsSyn -> HappyAbsSyn
fn HappyAbsSyn
v1 in
Int# -> P HappyAbsSyn -> P HappyAbsSyn
forall a. Int# -> a -> a
happyTcHack Int#
old_st (HappyAbsSyn -> P HappyAbsSyn -> P HappyAbsSyn
forall a b. a -> b -> b
happySeq HappyAbsSyn
r (Int#
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyGoto Int#
nt Int#
j AgToken
tk Int#
st Happy_IntList
sts (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
stk')))
happySpecReduce_2 :: Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_2 Int#
nt HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
fn Int#
j AgToken
tk Int#
old_st
(HappyCons Int#
_ sts :: Happy_IntList
sts@(HappyCons Int#
st Happy_IntList
_))
(HappyAbsSyn
v1 `HappyStk` HappyAbsSyn
v2 `HappyStk` HappyStk HappyAbsSyn
stk')
= let r :: HappyAbsSyn
r = HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
fn HappyAbsSyn
v1 HappyAbsSyn
v2 in
Int# -> P HappyAbsSyn -> P HappyAbsSyn
forall a. Int# -> a -> a
happyTcHack Int#
old_st (HappyAbsSyn -> P HappyAbsSyn -> P HappyAbsSyn
forall a b. a -> b -> b
happySeq HappyAbsSyn
r (Int#
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyGoto Int#
nt Int#
j AgToken
tk Int#
st Happy_IntList
sts (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
stk')))
happySpecReduce_3 :: Int#
-> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happySpecReduce_3 Int#
nt HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
fn Int#
j AgToken
tk Int#
old_st
(HappyCons Int#
_ (HappyCons Int#
_ sts :: Happy_IntList
sts@(HappyCons Int#
st Happy_IntList
_)))
(HappyAbsSyn
v1 `HappyStk` HappyAbsSyn
v2 `HappyStk` HappyAbsSyn
v3 `HappyStk` HappyStk HappyAbsSyn
stk')
= let r :: HappyAbsSyn
r = HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
fn HappyAbsSyn
v1 HappyAbsSyn
v2 HappyAbsSyn
v3 in
Int# -> P HappyAbsSyn -> P HappyAbsSyn
forall a. Int# -> a -> a
happyTcHack Int#
old_st (HappyAbsSyn -> P HappyAbsSyn -> P HappyAbsSyn
forall a b. a -> b -> b
happySeq HappyAbsSyn
r (Int#
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyGoto Int#
nt Int#
j AgToken
tk Int#
st Happy_IntList
sts (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
stk')))
happyReduce :: Int#
-> Int#
-> (p -> HappyStk HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> p
-> P HappyAbsSyn
happyReduce Int#
k Int#
nt p -> HappyStk HappyAbsSyn
fn Int#
j AgToken
tk Int#
st Happy_IntList
sts p
stk
= case Int# -> Happy_IntList -> Happy_IntList
happyDrop MINUS(k,(1# :: Happy_Int)) sts of
sts1 :: Happy_IntList
sts1@(HappyCons Int#
st1 Happy_IntList
_) ->
let r :: HappyStk HappyAbsSyn
r = p -> HappyStk HappyAbsSyn
fn p
stk in
Int#
st Int# -> P HappyAbsSyn -> P HappyAbsSyn
forall a. Int# -> a -> a
`happyTcHack` HappyStk HappyAbsSyn -> P HappyAbsSyn -> P HappyAbsSyn
forall a b. a -> b -> b
happyDoSeq HappyStk HappyAbsSyn
r (Int#
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyGoto Int#
nt Int#
j AgToken
tk Int#
st1 Happy_IntList
sts1 HappyStk HappyAbsSyn
r)
happyMonadReduce :: Int#
-> Int#
-> (HappyStk HappyAbsSyn -> AgToken -> P HappyAbsSyn)
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyMonadReduce Int#
k Int#
nt HappyStk HappyAbsSyn -> AgToken -> P HappyAbsSyn
fn Int#
j AgToken
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk =
case Int# -> Happy_IntList -> Happy_IntList
happyDrop Int#
k (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts) of
sts1 :: Happy_IntList
sts1@(HappyCons Int#
st1 Happy_IntList
_) ->
let drop_stk :: HappyStk HappyAbsSyn
drop_stk = Int# -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall {a}. Int# -> HappyStk a -> HappyStk a
happyDropStk Int#
k HappyStk HappyAbsSyn
stk in
Int#
j Int# -> P HappyAbsSyn -> P HappyAbsSyn
forall a. Int# -> a -> a
`happyTcHack` P HappyAbsSyn -> (HappyAbsSyn -> P HappyAbsSyn) -> P HappyAbsSyn
forall a b. P a -> (a -> P b) -> P b
happyThen1 (HappyStk HappyAbsSyn -> AgToken -> P HappyAbsSyn
fn HappyStk HappyAbsSyn
stk AgToken
tk)
(\HappyAbsSyn
r -> Int#
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyGoto Int#
nt Int#
j AgToken
tk Int#
st1 Happy_IntList
sts1 (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
drop_stk))
happyMonad2Reduce :: Int#
-> Int#
-> (HappyStk HappyAbsSyn -> t -> P HappyAbsSyn)
-> Int#
-> t
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyMonad2Reduce Int#
k Int#
nt HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
fn Int#
j t
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk =
case Int# -> Happy_IntList -> Happy_IntList
happyDrop Int#
k (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts) of
sts1 :: Happy_IntList
sts1@(HappyCons Int#
st1 Happy_IntList
_) ->
let drop_stk :: HappyStk HappyAbsSyn
drop_stk = Int# -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall {a}. Int# -> HappyStk a -> HappyStk a
happyDropStk Int#
k HappyStk HappyAbsSyn
stk
off :: Int#
off = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyGotoOffsets Int#
st1
off_i :: Int#
off_i = PLUS(off, nt)
new_state :: Int#
new_state = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyTable Int#
off_i
in
Int#
j Int# -> P HappyAbsSyn -> P HappyAbsSyn
forall a. Int# -> a -> a
`happyTcHack` P HappyAbsSyn -> (HappyAbsSyn -> P HappyAbsSyn) -> P HappyAbsSyn
forall a b. P a -> (a -> P b) -> P b
happyThen1 (HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
fn HappyStk HappyAbsSyn
stk t
tk)
(\HappyAbsSyn
r -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
happyNewToken Int#
new_state Happy_IntList
sts1 (HappyAbsSyn
r HappyAbsSyn -> HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
forall a. a -> HappyStk a -> HappyStk a
`HappyStk` HappyStk HappyAbsSyn
drop_stk))
happyDrop :: Int# -> Happy_IntList -> Happy_IntList
happyDrop Int#
0# Happy_IntList
l = Happy_IntList
l
happyDrop Int#
n (HappyCons Int#
_ Happy_IntList
t) = Int# -> Happy_IntList -> Happy_IntList
happyDrop MINUS(n,(1# :: Happy_Int)) t
happyDropStk :: Int# -> HappyStk a -> HappyStk a
happyDropStk Int#
0# HappyStk a
l = HappyStk a
l
happyDropStk Int#
n (a
x `HappyStk` HappyStk a
xs) = Int# -> HappyStk a -> HappyStk a
happyDropStk MINUS(n,(1#::Happy_Int)) xs
happyGoto :: Int#
-> Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyGoto Int#
nt Int#
j AgToken
tk Int#
st =
DEBUG_TRACE(", goto state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# new_state) Happy_Prelude.++ "\n")
Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyDoAction Int#
j AgToken
tk Int#
new_state
where new_state :: Int#
new_state = Int# -> Int# -> Int#
happyIndexGotoTable Int#
nt Int#
st
happyFail :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyFail ERROR_TOK = happyFixupFailed
happyFail Int#
i = Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyTryFixup Int#
i
happyTryFixup :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyTryFixup Int#
i AgToken
tk Int#
action Happy_IntList
sts HappyStk HappyAbsSyn
stk =
DEBUG_TRACE("entering `error` fixup.\n")
Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyDoAction ERROR_TOK tk action sts (MK_ERROR_TOKEN(i) `HappyStk` stk)
happyFixupFailed :: AgToken
-> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
happyFixupFailed AgToken
tk Int#
st Happy_IntList
sts (HappyAbsSyn
x `HappyStk` HappyStk HappyAbsSyn
stk) =
let i :: Int#
i = GET_ERROR_TOKEN(x) in
DEBUG_TRACE("`error` fixup failed.\n")
let resume :: P HappyAbsSyn
resume = Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyResume Int#
i AgToken
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk
expected :: [String]
expected = Int# -> Happy_IntList -> [String]
happyExpectedTokens Int#
st Happy_IntList
sts in
Int# -> AgToken -> [String] -> P HappyAbsSyn -> P HappyAbsSyn
forall {a}. Int# -> AgToken -> [String] -> P a -> P a
happyReport Int#
i AgToken
tk [String]
expected P HappyAbsSyn
resume
happyResume :: Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyResume Int#
i AgToken
tk Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk = [(Happy_IntList, HappyStk HappyAbsSyn)]
-> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
pop_items [] Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk
where
!(Happy_GHC_Exts.I# Int#
n_starts) = Int
happy_n_starts
!(Happy_GHC_Exts.I# Int#
eof_i) = Int
happy_n_terms Int -> Int -> Int
forall a. Num a => a -> a -> a
Happy_Prelude.- Int
1
happy_list_to_list :: Happy_IntList -> [Happy_Prelude.Int]
happy_list_to_list :: Happy_IntList -> [Int]
happy_list_to_list (HappyCons Int#
st Happy_IntList
sts)
| LT(st, n_starts)
= [(Int# -> Int
Happy_GHC_Exts.I# Int#
st)]
| Bool
Happy_Prelude.otherwise
= (Int# -> Int
Happy_GHC_Exts.I# Int#
st) Int -> [Int] -> [Int]
forall a. a -> [a] -> [a]
: Happy_IntList -> [Int]
happy_list_to_list Happy_IntList
sts
pop_items :: [(Happy_IntList, HappyStk HappyAbsSyn)]
-> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
pop_items [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames Int#
st Happy_IntList
sts HappyStk HappyAbsSyn
stk
| LT(st, n_starts)
= DEBUG_TRACE("reached start state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ ", ")
if [(Happy_IntList, HappyStk HappyAbsSyn)] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
Happy_Prelude.null [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames_new
then DEBUG_TRACE("no resumption.\n")
P HappyAbsSyn
forall a. P a
happyAbort
else DEBUG_TRACE("now discard input, trying to anchor in states " Happy_Prelude.++ Happy_Prelude.show (Happy_Prelude.map (happy_list_to_list . Happy_Prelude.fst) (Happy_Prelude.reverse catch_frames_new)) Happy_Prelude.++ ".\n")
Int#
-> AgToken
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> P HappyAbsSyn
discard_input_until_exp Int#
i AgToken
tk ([(Happy_IntList, HappyStk HappyAbsSyn)]
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
forall a. [a] -> [a]
Happy_Prelude.reverse [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames_new)
| (HappyCons Int#
st1 Happy_IntList
sts1) <- Happy_IntList
sts, HappyAbsSyn
_ `HappyStk` HappyStk HappyAbsSyn
stk1 <- HappyStk HappyAbsSyn
stk
= [(Happy_IntList, HappyStk HappyAbsSyn)]
-> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
pop_items [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames_new Int#
st1 Happy_IntList
sts1 HappyStk HappyAbsSyn
stk1
where
!catch_frames_new :: [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames_new
| HappyShift Int#
new_state <- Int# -> HappyAction
happyDecodeAction (Int# -> Int# -> Int#
happyNextAction CATCH_TOK st)
, DEBUG_TRACE("can shift catch token in state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ ", into state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# new_state) Happy_Prelude.++ "\n")
[(Happy_IntList, HappyStk HappyAbsSyn)] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
Happy_Prelude.null (((Happy_IntList, HappyStk HappyAbsSyn) -> Bool)
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
forall a. (a -> Bool) -> [a] -> [a]
Happy_Prelude.filter (\(HappyCons Int#
_ (HappyCons Int#
h Happy_IntList
_),HappyStk HappyAbsSyn
_) -> EQ(st,h)) catch_frames)
= (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
new_state (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts), MK_ERROR_TOKEN(i) `HappyStk` stk):catch_frames
| Bool
Happy_Prelude.otherwise
= DEBUG_TRACE("already shifted or can't shift catch in " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ "\n")
[(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames
discard_input_until_exp :: Int#
-> AgToken
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> P HappyAbsSyn
discard_input_until_exp Int#
i AgToken
tk [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames
| Happy_Prelude.Just (HappyCons Int#
st (HappyCons Int#
catch_st Happy_IntList
sts), HappyStk HappyAbsSyn
catch_frame) <- Int#
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> Maybe (Happy_IntList, HappyStk HappyAbsSyn)
forall {b}.
Int# -> [(Happy_IntList, b)] -> Maybe (Happy_IntList, b)
some_catch_state_shifts Int#
i [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames
= DEBUG_TRACE("found expected token in state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ " after shifting from " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# catch_st) Happy_Prelude.++ ": " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++ "\n")
Int#
-> AgToken
-> Int#
-> Happy_IntList
-> HappyStk HappyAbsSyn
-> P HappyAbsSyn
happyDoAction Int#
i AgToken
tk Int#
st (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
catch_st Happy_IntList
sts) HappyStk HappyAbsSyn
catch_frame
| EQ(i,eof_i)
= DEBUG_TRACE("reached EOF, cannot resume. abort parse :(\n")
P HappyAbsSyn
forall a. P a
happyAbort
| Bool
Happy_Prelude.otherwise
= DEBUG_TRACE("discard token " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++ "\n")
(AgToken -> P HappyAbsSyn)
-> (Int# -> AgToken -> P HappyAbsSyn) -> P HappyAbsSyn
forall {r}. (AgToken -> P r) -> (Int# -> AgToken -> P r) -> P r
happyLex (\AgToken
eof_tk -> Int#
-> AgToken
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> P HappyAbsSyn
discard_input_until_exp Int#
eof_i AgToken
eof_tk [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames)
(\Int#
i AgToken
tk -> Int#
-> AgToken
-> [(Happy_IntList, HappyStk HappyAbsSyn)]
-> P HappyAbsSyn
discard_input_until_exp Int#
i AgToken
tk [(Happy_IntList, HappyStk HappyAbsSyn)]
catch_frames)
some_catch_state_shifts :: Int# -> [(Happy_IntList, b)] -> Maybe (Happy_IntList, b)
some_catch_state_shifts Int#
_ [] = DEBUG_TRACE("no catch state could shift.\n") Happy_Prelude.Nothing
some_catch_state_shifts Int#
i catch_frames :: [(Happy_IntList, b)]
catch_frames@(((HappyCons Int#
st Happy_IntList
sts),b
_):[(Happy_IntList, b)]
_) = Int#
-> Int#
-> Happy_IntList
-> [(Happy_IntList, b)]
-> Maybe (Happy_IntList, b)
try_head Int#
i Int#
st Happy_IntList
sts [(Happy_IntList, b)]
catch_frames
where
try_head :: Int#
-> Int#
-> Happy_IntList
-> [(Happy_IntList, b)]
-> Maybe (Happy_IntList, b)
try_head Int#
i Int#
st Happy_IntList
sts [(Happy_IntList, b)]
catch_frames =
DEBUG_TRACE("trying token " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++ " in state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ ": ")
case Int# -> HappyAction
happyDecodeAction (Int# -> Int# -> Int#
happyNextAction Int#
i Int#
st) of
HappyAction
HappyFail -> DEBUG_TRACE("fail.\n") some_catch_state_shifts i (Happy_Prelude.tail catch_frames)
HappyAction
HappyAccept -> DEBUG_TRACE("accept.\n") Happy_Prelude.Just (Happy_Prelude.head catch_frames)
HappyShift Int#
_ -> DEBUG_TRACE("shift.\n") Happy_Prelude.Just (Happy_Prelude.head catch_frames)
HappyReduce Int#
r -> case Int# -> Int# -> Happy_IntList -> Happy_IntList
happySimulateReduce Int#
r Int#
st Happy_IntList
sts of
(HappyCons Int#
st1 Happy_IntList
sts1) -> Int#
-> Int#
-> Happy_IntList
-> [(Happy_IntList, b)]
-> Maybe (Happy_IntList, b)
try_head Int#
i Int#
st1 Happy_IntList
sts1 [(Happy_IntList, b)]
catch_frames
happySimulateReduce :: Int# -> Int# -> Happy_IntList -> Happy_IntList
happySimulateReduce Int#
r Int#
st Happy_IntList
sts =
DEBUG_TRACE("simulate reduction of rule " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# r) Happy_Prelude.++ ", ")
let (# Int#
nt, Int#
len #) = Int# -> (# Int#, Int# #)
happyIndexRuleArr Int#
r in
DEBUG_TRACE("nt " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# nt) Happy_Prelude.++ ", len: " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# len) Happy_Prelude.++ ", new_st ")
let !(sts1 :: Happy_IntList
sts1@(HappyCons Int#
st1 Happy_IntList
_)) = Int# -> Happy_IntList -> Happy_IntList
happyDrop Int#
len (Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
st Happy_IntList
sts)
new_st :: Int#
new_st = Int# -> Int# -> Int#
happyIndexGotoTable Int#
nt Int#
st1 in
DEBUG_TRACE(Happy_Prelude.show (Happy_GHC_Exts.I# new_st) Happy_Prelude.++ ".\n")
(Int# -> Happy_IntList -> Happy_IntList
HappyCons Int#
new_st Happy_IntList
sts1)
happyTokenToString :: Happy_Prelude.Int -> Happy_Prelude.String
happyTokenToString :: Int -> String
happyTokenToString Int
i = [String]
happyTokenStrings [String] -> Int -> String
forall a. HasCallStack => [a] -> Int -> a
Happy_Prelude.!! (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
Happy_Prelude.- Int
2)
happyExpectedTokens :: Happy_Int -> Happy_IntList -> [Happy_Prelude.String]
happyExpectedTokens :: Int# -> Happy_IntList -> [String]
happyExpectedTokens Int#
st Happy_IntList
sts =
DEBUG_TRACE("constructing expected tokens.\n")
(Int -> String) -> [Int] -> [String]
forall a b. (a -> b) -> [a] -> [b]
Happy_Prelude.map Int -> String
happyTokenToString (Int# -> Happy_IntList -> [Int] -> [Int]
search_shifts Int#
st Happy_IntList
sts [])
where
search_shifts :: Int# -> Happy_IntList -> [Int] -> [Int]
search_shifts Int#
st Happy_IntList
sts [Int]
shifts = ((Int, Int) -> [Int] -> [Int]) -> [Int] -> [(Int, Int)] -> [Int]
forall a b. (a -> b -> b) -> b -> [a] -> b
forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
Happy_Prelude.foldr (Int# -> Happy_IntList -> (Int, Int) -> [Int] -> [Int]
add_action Int#
st Happy_IntList
sts) [Int]
shifts (Int# -> [(Int, Int)]
distinct_actions Int#
st)
add_action :: Int# -> Happy_IntList -> (Int, Int) -> [Int] -> [Int]
add_action Int#
st Happy_IntList
sts (Happy_GHC_Exts.I# Int#
i, Happy_GHC_Exts.I# Int#
act) [Int]
shifts =
DEBUG_TRACE("found action in state " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# st) Happy_Prelude.++ ", input " Happy_Prelude.++ Happy_Prelude.show (Happy_GHC_Exts.I# i) Happy_Prelude.++ ", " Happy_Prelude.++ Happy_Prelude.show (happyDecodeAction act) Happy_Prelude.++ "\n")
case Int# -> HappyAction
happyDecodeAction Int#
act of
HappyAction
HappyFail -> [Int]
shifts
HappyAction
HappyAccept -> [Int]
shifts
HappyShift Int#
_ -> Int -> [Int] -> [Int]
forall a. Ord a => a -> [a] -> [a]
Happy_Prelude.insert (Int# -> Int
Happy_GHC_Exts.I# Int#
i) [Int]
shifts
HappyReduce Int#
r -> case Int# -> Int# -> Happy_IntList -> Happy_IntList
happySimulateReduce Int#
r Int#
st Happy_IntList
sts of
(HappyCons Int#
st1 Happy_IntList
sts1) -> Int# -> Happy_IntList -> [Int] -> [Int]
search_shifts Int#
st1 Happy_IntList
sts1 [Int]
shifts
distinct_actions :: Int# -> [(Int, Int)]
distinct_actions Int#
st
= ((-Int
1), (Int# -> Int
Happy_GHC_Exts.I# (HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyDefActions Int#
st)))
(Int, Int) -> [(Int, Int)] -> [(Int, Int)]
forall a. a -> [a] -> [a]
: [ (Int
i, Int
act) | Int
i <- [Int
begin_i..Int
happy_n_terms], Int
act <- Int# -> Int -> [Int]
get_act Int#
row_off Int
i ]
where
row_off :: Int#
row_off = HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyActOffsets Int#
st
begin_i :: Int
begin_i = Int
2
get_act :: Int# -> Int -> [Int]
get_act Int#
off (Happy_GHC_Exts.I# Int#
i)
| let off_i :: Int#
off_i = PLUS(off,i)
, GTE(off_i,0#)
, EQ(happyIndexOffAddr happyCheck off_i,i)
= [(Int# -> Int
Happy_GHC_Exts.I# (HappyAddr -> Int# -> Int#
happyIndexOffAddr HappyAddr
happyTable Int#
off_i))]
| Bool
Happy_Prelude.otherwise
= []
notHappyAtAll :: a
notHappyAtAll :: forall a. a
notHappyAtAll = String -> a
forall a. HasCallStack => String -> a
Happy_Prelude.error String
"Internal Happy parser panic. This is not supposed to happen! Please open a bug report at https://github.com/haskell/happy/issues.\n"
happyTcHack :: Happy_Int -> a -> a
happyTcHack :: forall a. Int# -> a -> a
happyTcHack Int#
x a
y = a
y
{-# INLINE happyTcHack #-}
happyDoSeq, happyDontSeq :: a -> b -> b
happyDoSeq :: forall a b. a -> b -> b
happyDoSeq a
a b
b = a
a a -> b -> b
forall a b. a -> b -> b
`Happy_GHC_Exts.seq` b
b
happyDontSeq :: forall a b. a -> b -> b
happyDontSeq a
a b
b = b
b
{-# 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 #-}