-- UUAGC 0.9.14 (GenerateCode.ag) module GenerateCode where {-# LINE 9 "GenerateCode.ag" #-} import CommonTypes import SequentialTypes import Code hiding (Type) import qualified Code import Options import CodeSyntax import ErrorMessages import GrammarInfo import DeclBlocks import qualified Data.Map as Map import Data.Map(Map) import qualified Data.Set as Set import Data.Set(Set) import qualified Data.Sequence as Seq import Data.Sequence(Seq) import UU.Scanner.Position import TokenDef import HsToken import HsTokenScanner import Data.List(partition,intersperse,intersect,(\\)) import Maybe(fromJust,isJust) {-# LINE 31 "../src-derived/GenerateCode.hs" #-} {-# LINE 2 "./CodeSyntax.ag" #-} import Patterns import CommonTypes import Data.Map(Map) import Data.Set(Set) {-# LINE 39 "../src-derived/GenerateCode.hs" #-} {-# LINE 2 "./Patterns.ag" #-} -- Patterns.ag imports import UU.Scanner.Position(Pos) import CommonTypes (ConstructorIdent,Identifier) {-# LINE 46 "../src-derived/GenerateCode.hs" #-} {-# LINE 2 "./DeclBlocks.ag" #-} import Code (Decl,Expr) {-# LINE 51 "../src-derived/GenerateCode.hs" #-} {-# LINE 100 "GenerateCode.ag" #-} -- remove possible @v references in the types of a data type. cleanupArg :: String -> String cleanupArg s = case idEvalType (SimpleType s) of SimpleType s' -> s' {-# LINE 59 "../src-derived/GenerateCode.hs" #-} {-# LINE 114 "GenerateCode.ag" #-} appContext :: ContextMap -> NontermIdent -> Code.Type -> Code.Type appContext mp nt tp = maybe tp (\ctx -> CtxApp (map (\(n,ns) -> (getName n, ns)) ctx) tp) $ Map.lookup nt mp {-# LINE 66 "../src-derived/GenerateCode.hs" #-} {-# LINE 197 "GenerateCode.ag" #-} unwrapSem :: Bool -> NontermIdent -> Expr -> Expr unwrapSem False _ e = e unwrapSem True nm e = Case e alts where alts = [CaseAlt left right] left = Fun (typeName nm 0) [SimpleExpr "x"] right = SimpleExpr "x" {-# LINE 76 "../src-derived/GenerateCode.hs" #-} {-# LINE 345 "GenerateCode.ag" #-} substSelf nt tp = case tp of NT t tps | t == _SELF -> Haskell (getName nt ++ " " ++ unwords tps) _ -> tp {-# LINE 83 "../src-derived/GenerateCode.hs" #-} {-# LINE 447 "GenerateCode.ag" #-} mkLambdaArg :: String -> Maybe Code.Type -> Expr mkLambdaArg nm Nothing = SimpleExpr nm mkLambdaArg nm (Just tp) = TypedExpr (SimpleExpr nm) tp mkLambda :: Exprs -> Expr -> Expr mkLambda [] e = e mkLambda xs e = Lambda xs e typeAppStrs nm params = TypeApp (SimpleType nm) (map SimpleType params) {-# LINE 96 "../src-derived/GenerateCode.hs" #-} {-# LINE 516 "GenerateCode.ag" #-} -- dead code - replaced by mkPartitionedFunction {- localCpsToExpr :: Bool -> [Decl] -> DeclBlocks -> Expr localCpsToExpr o_case nextVisitDecl = r where r cps = case cps of DeclTerminator decls expr -> mkLet o_case (decls ++ nextVisitDecl) expr DeclBlock decls (Decl lhs rhs _ _) remainder -> let inDecls = [ PragmaDecl ("NOINLINE " ++ internalCpsName) , Decl (Fun internalCpsName [SimpleExpr internalCpsVarName]) (mkLet o_case [Decl lhs (SimpleExpr internalCpsVarName) Set.empty Set.empty] (rec remainder)) Set.empty Set.empty ] inBody = App "head" [App "(:)" [App internalCpsName [rhs], App "(:)" [App internalCpsName [rhs], SimpleExpr "[]"]]] outerBody = Let inDecls inBody block = mkLet o_case decls outerBody in block internalCpsName :: String internalCpsName = "internalCps_" internalCpsVarName :: String internalCpsVarName = "internalCps_var_" -} mkPartitionedFunction :: String -> Bool -> [Decl] -> [String] -> DeclBlocks -> ([Decl], Expr) mkPartitionedFunction prefix optCase nextVisitDecls lastExprVars cpsTree = let inh = Inh_DeclBlocksRoot { prefix_Inh_DeclBlocksRoot = prefix , optCase_Inh_DeclBlocksRoot = optCase , nextVisitDecls_Inh_DeclBlocksRoot = nextVisitDecls , lastExprVars_Inh_DeclBlocksRoot = lastExprVars } sem = sem_DeclBlocksRoot (DeclBlocksRoot cpsTree) syn = wrap_DeclBlocksRoot sem inh in (lambdas_Syn_DeclBlocksRoot syn, firstCall_Syn_DeclBlocksRoot syn) {-# LINE 138 "../src-derived/GenerateCode.hs" #-} {-# LINE 594 "GenerateCode.ag" #-} freevars :: [String] -> [Decl] -> [String] freevars additional decls = Set.toList (allused `Set.difference` alldefined) where allused = Set.unions (Set.fromList additional : map usedvars decls) alldefined = Set.unions (map definedvars decls) usedvars (Decl _ _ _ uses) = uses usedvars _ = Set.empty definedvars (Decl _ _ defs _) = defs definedvars _ = Set.empty mkBlockLambda :: Bool -> String -> [String] -> [Decl] -> Expr -> Decl mkBlockLambda optCase name args decls expr = Decl lhs rhs Set.empty Set.empty where lhs = Fun name (map SimpleExpr args) rhs = mkLet optCase decls expr {-# LINE 161 "../src-derived/GenerateCode.hs" #-} {-# LINE 657 "GenerateCode.ag" #-} evalType :: (String -> String) -> Code.Type -> Code.Type evalType replf t = chase t where chase t = case t of Arr l r -> Arr (chase l) (chase r) TypeApp f as -> TypeApp (chase f) (map chase as) TupleType tps -> TupleType (map chase tps) UnboxedTupleType tps -> UnboxedTupleType (map chase tps) Code.List tp -> Code.List (chase tp) SimpleType txt -> let tks = lexTokens (initPos txt) txt tks' = map replaceTok tks txt' = unlines . showTokens . tokensToStrings $ tks' in SimpleType txt' replaceTok t = case t of AGLocal v p _ -> HsToken (replf $ getName v) p _ -> t idEvalType :: Code.Type -> Code.Type idEvalType = evalType id {-# LINE 188 "../src-derived/GenerateCode.hs" #-} {-# LINE 797 "GenerateCode.ag" #-} makeLocalComment :: Int -> String -> Identifier -> Maybe Type -> String makeLocalComment width what name tp = let x = getName name y = maybe "_" (\t -> case t of (NT nt tps) -> getName nt ++ " " ++ unwords tps; Haskell t -> '{':t++"}") tp in ( what ++ " " ++ x ++ replicate ((width - length x) `max` 0) ' ' ++ " : " ++ y ) {-# LINE 197 "../src-derived/GenerateCode.hs" #-} {-# LINE 828 "GenerateCode.ag" #-} -- Lets or nested Cases? mkLet :: Bool -> Decls -> Expr -> Expr mkLet False decls body = Let decls body mkLet True decls body = foldr oneCase body decls oneCase :: Decl -> Expr -> Expr oneCase (Decl left rhs _ _) exp = Case rhs [CaseAlt left exp] oneCase _ exp = exp -- Gives the name of the visit function funname field 0 = show field ++ "_" funname field nr = show field ++ "_" ++ show nr -- Gives the name of a semantic function seqSemname :: String -> NontermIdent -> ConstructorIdent -> Int -> String seqSemname pre nt con 0 = semname pre nt con seqSemname pre nt con nr = semname pre nt con ++ "_" ++ show nr -- Gives the name of a type typeName :: NontermIdent -> Int -> String typeName nt 0 = "T_" ++ show nt typeName nt n = "T_" ++ show nt ++ "_" ++ show n ntOfVisit :: NontermIdent -> Int -> NontermIdent ntOfVisit nt 0 = nt ntOfVisit nt n = Ident (show nt ++ "_" ++ show n) (getPos nt) -- Gives the name of a visit function visitname :: String -> NontermIdent -> Int -> String visitname pre nt n = pre ++ getName nt ++ "_" ++ show n {-# LINE 231 "../src-derived/GenerateCode.hs" #-} -- CGrammar ---------------------------------------------------- {- visit 0: inherited attribute: options : Options synthesized attributes: errors : Seq Error output : Program alternatives: alternative CGrammar: child typeSyns : {TypeSyns} child derivings : {Derivings} child wrappers : {Set NontermIdent} child nonts : CNonterminals child pragmas : {PragmaMap} child paramMap : {ParamMap} child contextMap : {ContextMap} child aroundsMap : {Map NontermIdent (Map ConstructorIdent (Set Identifier))} visit 0: local aroundMap : _ local unfoldSemDom : _ -} -- cata sem_CGrammar :: CGrammar -> T_CGrammar sem_CGrammar (CGrammar _typeSyns _derivings _wrappers _nonts _pragmas _paramMap _contextMap _aroundsMap ) = (sem_CGrammar_CGrammar _typeSyns _derivings _wrappers (sem_CNonterminals _nonts ) _pragmas _paramMap _contextMap _aroundsMap ) -- semantic domain newtype T_CGrammar = T_CGrammar (Options -> ( (Seq Error),Program)) data Inh_CGrammar = Inh_CGrammar {options_Inh_CGrammar :: !(Options)} data Syn_CGrammar = Syn_CGrammar {errors_Syn_CGrammar :: !(Seq Error),output_Syn_CGrammar :: !(Program)} wrap_CGrammar :: T_CGrammar -> Inh_CGrammar -> Syn_CGrammar wrap_CGrammar (T_CGrammar sem ) (Inh_CGrammar _lhsIoptions ) = (let ( _lhsOerrors,_lhsOoutput) = (sem _lhsIoptions ) in (Syn_CGrammar _lhsOerrors _lhsOoutput )) sem_CGrammar_CGrammar :: TypeSyns -> Derivings -> (Set NontermIdent) -> T_CNonterminals -> PragmaMap -> ParamMap -> ContextMap -> (Map NontermIdent (Map ConstructorIdent (Set Identifier))) -> T_CGrammar sem_CGrammar_CGrammar typeSyns_ derivings_ wrappers_ (T_CNonterminals nonts_ ) pragmas_ paramMap_ contextMap_ aroundsMap_ = (T_CGrammar (\ _lhsIoptions -> (let _nontsOo_sig :: Bool _nontsOo_cata :: Bool _nontsOo_sem :: Bool _nontsOo_newtypes :: Bool _nontsOo_unbox :: Bool _nontsOo_case :: Bool _nontsOo_pretty :: Bool _nontsOo_rename :: Bool _nontsOo_strictwrap :: Bool _nontsOo_splitsems :: Bool _nontsOo_data :: (Maybe Bool) _nontsOprefix :: String _nontsOo_traces :: Bool _nontsOo_costcentre :: Bool _nontsOo_linePragmas :: Bool _nontsOallPragmas :: PragmaMap _nontsOparamMap :: ParamMap _nontsOcontextMap :: ContextMap _nontsOallNts :: (Set NontermIdent) _nontsOwith_sig :: Bool _nontsOerrors :: (Seq Error) _lhsOoutput :: Program _nontsOtypeSyns :: TypeSyns _nontsOderivings :: Derivings _nontsOwrappers :: (Set NontermIdent) _lhsOerrors :: (Seq Error) _nontsOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Set Identifier))) _nontsOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _nontsIallTpsFound :: Bool _nontsIchunks :: Chunks _nontsIerrors :: (Seq Error) _nontsIgathNts :: (Set NontermIdent) _nontsIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) -- "GenerateCode.ag"(line 50, column 17) _nontsOo_sig = {-# LINE 50 "GenerateCode.ag" #-} typeSigs _lhsIoptions {-# LINE 319 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_cata = {-# LINE 51 "GenerateCode.ag" #-} folds _lhsIoptions {-# LINE 324 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_sem = {-# LINE 52 "GenerateCode.ag" #-} semfuns _lhsIoptions {-# LINE 329 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_newtypes = {-# LINE 53 "GenerateCode.ag" #-} newtypes _lhsIoptions {-# LINE 334 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_unbox = {-# LINE 54 "GenerateCode.ag" #-} unbox _lhsIoptions {-# LINE 339 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_case = {-# LINE 55 "GenerateCode.ag" #-} cases _lhsIoptions {-# LINE 344 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_pretty = {-# LINE 56 "GenerateCode.ag" #-} attrInfo _lhsIoptions {-# LINE 349 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_rename = {-# LINE 57 "GenerateCode.ag" #-} rename _lhsIoptions {-# LINE 354 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_strictwrap = {-# LINE 58 "GenerateCode.ag" #-} strictWrap _lhsIoptions {-# LINE 359 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_splitsems = {-# LINE 59 "GenerateCode.ag" #-} splitSems _lhsIoptions {-# LINE 364 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_data = {-# LINE 60 "GenerateCode.ag" #-} if dataTypes _lhsIoptions then Just (strictData _lhsIoptions) else Nothing {-# LINE 369 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOprefix = {-# LINE 61 "GenerateCode.ag" #-} prefix _lhsIoptions {-# LINE 374 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_traces = {-# LINE 62 "GenerateCode.ag" #-} genTraces _lhsIoptions {-# LINE 379 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_costcentre = {-# LINE 63 "GenerateCode.ag" #-} genCostCentres _lhsIoptions {-# LINE 384 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 50, column 17) _nontsOo_linePragmas = {-# LINE 64 "GenerateCode.ag" #-} genLinePragmas _lhsIoptions {-# LINE 389 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 69, column 15) _nontsOallPragmas = {-# LINE 69 "GenerateCode.ag" #-} pragmas_ {-# LINE 394 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 91, column 14) _nontsOparamMap = {-# LINE 91 "GenerateCode.ag" #-} paramMap_ {-# LINE 399 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 112, column 7) _nontsOcontextMap = {-# LINE 112 "GenerateCode.ag" #-} contextMap_ {-# LINE 404 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 124, column 7) _nontsOallNts = {-# LINE 124 "GenerateCode.ag" #-} _nontsIgathNts {-# LINE 409 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 481, column 34) _aroundMap = {-# LINE 481 "GenerateCode.ag" #-} aroundsMap_ {-# LINE 414 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 650, column 7) _unfoldSemDom = {-# LINE 650 "GenerateCode.ag" #-} \nt nr repl -> let (params, tp) = Map.findWithDefault (error ("No such semantic domain: " ++ show nt)) (nt, nr) _nontsIsemDomUnfoldGath replMap = Map.fromList (zip params repl) replace k = Map.findWithDefault ('@':k) k replMap in evalType replace tp {-# LINE 423 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 743, column 14) _nontsOwith_sig = {-# LINE 743 "GenerateCode.ag" #-} typeSigs _lhsIoptions && _nontsIallTpsFound {-# LINE 428 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 750, column 15) _nontsOerrors = {-# LINE 750 "GenerateCode.ag" #-} Seq.empty {-# LINE 433 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 814, column 17) _lhsOoutput = {-# LINE 814 "GenerateCode.ag" #-} Program _nontsIchunks {-# LINE 438 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 867, column 14) _nontsOtypeSyns = {-# LINE 867 "GenerateCode.ag" #-} typeSyns_ {-# LINE 443 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 867, column 14) _nontsOderivings = {-# LINE 868 "GenerateCode.ag" #-} derivings_ {-# LINE 448 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 867, column 14) _nontsOwrappers = {-# LINE 869 "GenerateCode.ag" #-} wrappers_ {-# LINE 453 "GenerateCode.hs" #-} -- copy rule (up) _lhsOerrors = {-# LINE 749 "GenerateCode.ag" #-} _nontsIerrors {-# LINE 458 "GenerateCode.hs" #-} -- copy rule (from local) _nontsOaroundMap = {-# LINE 474 "GenerateCode.ag" #-} _aroundMap {-# LINE 463 "GenerateCode.hs" #-} -- copy rule (from local) _nontsOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _unfoldSemDom {-# LINE 468 "GenerateCode.hs" #-} ( _nontsIallTpsFound,_nontsIchunks,_nontsIerrors,_nontsIgathNts,_nontsIsemDomUnfoldGath) = (nonts_ _nontsOallNts _nontsOallPragmas _nontsOaroundMap _nontsOcontextMap _nontsOderivings _nontsOerrors _nontsOo_case _nontsOo_cata _nontsOo_costcentre _nontsOo_data _nontsOo_linePragmas _nontsOo_newtypes _nontsOo_pretty _nontsOo_rename _nontsOo_sem _nontsOo_sig _nontsOo_splitsems _nontsOo_strictwrap _nontsOo_traces _nontsOo_unbox _nontsOparamMap _nontsOprefix _nontsOtypeSyns _nontsOunfoldSemDom _nontsOwith_sig _nontsOwrappers ) in ( _lhsOerrors,_lhsOoutput))) ) -- CInterface -------------------------------------------------- {- visit 0: inherited attributes: inh : Attributes nt : NontermIdent o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramMap : ParamMap prefix : String syn : Attributes synthesized attributes: comments : [String] semDom : [Decl] semDomUnfoldGath : Map (NontermIdent, Int) ([String], Code.Type) wrapDecls : Decls alternatives: alternative CInterface: child seg : CSegments -} -- cata sem_CInterface :: CInterface -> T_CInterface sem_CInterface (CInterface _seg ) = (sem_CInterface_CInterface (sem_CSegments _seg ) ) -- semantic domain newtype T_CInterface = T_CInterface (Attributes -> NontermIdent -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ParamMap -> String -> Attributes -> ( ([String]),([Decl]),(Map (NontermIdent, Int) ([String], Code.Type)),Decls)) data Inh_CInterface = Inh_CInterface {inh_Inh_CInterface :: !(Attributes),nt_Inh_CInterface :: !(NontermIdent),o_case_Inh_CInterface :: !(Bool),o_cata_Inh_CInterface :: !(Bool),o_costcentre_Inh_CInterface :: !(Bool),o_data_Inh_CInterface :: !(Maybe Bool),o_linePragmas_Inh_CInterface :: !(Bool),o_newtypes_Inh_CInterface :: !(Bool),o_pretty_Inh_CInterface :: !(Bool),o_rename_Inh_CInterface :: !(Bool),o_sem_Inh_CInterface :: !(Bool),o_sig_Inh_CInterface :: !(Bool),o_splitsems_Inh_CInterface :: !(Bool),o_strictwrap_Inh_CInterface :: !(Bool),o_traces_Inh_CInterface :: !(Bool),o_unbox_Inh_CInterface :: !(Bool),paramMap_Inh_CInterface :: !(ParamMap),prefix_Inh_CInterface :: !(String),syn_Inh_CInterface :: !(Attributes)} data Syn_CInterface = Syn_CInterface {comments_Syn_CInterface :: !([String]),semDom_Syn_CInterface :: !([Decl]),semDomUnfoldGath_Syn_CInterface :: !(Map (NontermIdent, Int) ([String], Code.Type)),wrapDecls_Syn_CInterface :: !(Decls)} wrap_CInterface :: T_CInterface -> Inh_CInterface -> Syn_CInterface wrap_CInterface (T_CInterface sem ) (Inh_CInterface _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn ) = (let ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls) = (sem _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn ) in (Syn_CInterface _lhsOcomments _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls )) sem_CInterface_CInterface :: T_CSegments -> T_CInterface sem_CInterface_CInterface (T_CSegments seg_ ) = (T_CInterface (\ _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn -> (let _segOnr :: Int _lhsOsemDom :: ([Decl]) _lhsOcomments :: ([String]) _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _lhsOwrapDecls :: Decls _segOinh :: Attributes _segOnt :: NontermIdent _segOo_case :: Bool _segOo_cata :: Bool _segOo_costcentre :: Bool _segOo_data :: (Maybe Bool) _segOo_linePragmas :: Bool _segOo_newtypes :: Bool _segOo_pretty :: Bool _segOo_rename :: Bool _segOo_sem :: Bool _segOo_sig :: Bool _segOo_splitsems :: Bool _segOo_strictwrap :: Bool _segOo_traces :: Bool _segOo_unbox :: Bool _segOparamMap :: ParamMap _segOprefix :: String _segOsyn :: Attributes _segIcomments :: ([String]) _segIisNil :: Bool _segIsemDom :: ([Decl]) _segIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _segIwrapDecls :: Decls -- "GenerateCode.ag"(line 231, column 17) _segOnr = {-# LINE 231 "GenerateCode.ag" #-} 0 {-# LINE 594 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 623, column 18) _lhsOsemDom = {-# LINE 623 "GenerateCode.ag" #-} Comment "semantic domain" : _segIsemDom {-# LINE 599 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} _segIcomments {-# LINE 604 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 640, column 86) _lhsOsemDomUnfoldGath = {-# LINE 640 "GenerateCode.ag" #-} _segIsemDomUnfoldGath {-# LINE 609 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 716, column 52) _lhsOwrapDecls = {-# LINE 716 "GenerateCode.ag" #-} _segIwrapDecls {-# LINE 614 "GenerateCode.hs" #-} -- copy rule (down) _segOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 619 "GenerateCode.hs" #-} -- copy rule (down) _segOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 624 "GenerateCode.hs" #-} -- copy rule (down) _segOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 629 "GenerateCode.hs" #-} -- copy rule (down) _segOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 634 "GenerateCode.hs" #-} -- copy rule (down) _segOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 639 "GenerateCode.hs" #-} -- copy rule (down) _segOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 644 "GenerateCode.hs" #-} -- copy rule (down) _segOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 649 "GenerateCode.hs" #-} -- copy rule (down) _segOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 654 "GenerateCode.hs" #-} -- copy rule (down) _segOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 659 "GenerateCode.hs" #-} -- copy rule (down) _segOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 664 "GenerateCode.hs" #-} -- copy rule (down) _segOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 669 "GenerateCode.hs" #-} -- copy rule (down) _segOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 674 "GenerateCode.hs" #-} -- copy rule (down) _segOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 679 "GenerateCode.hs" #-} -- copy rule (down) _segOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 684 "GenerateCode.hs" #-} -- copy rule (down) _segOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 689 "GenerateCode.hs" #-} -- copy rule (down) _segOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 694 "GenerateCode.hs" #-} -- copy rule (down) _segOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 699 "GenerateCode.hs" #-} -- copy rule (down) _segOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 704 "GenerateCode.hs" #-} -- copy rule (down) _segOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 709 "GenerateCode.hs" #-} ( _segIcomments,_segIisNil,_segIsemDom,_segIsemDomUnfoldGath,_segIwrapDecls) = (seg_ _segOinh _segOnr _segOnt _segOo_case _segOo_cata _segOo_costcentre _segOo_data _segOo_linePragmas _segOo_newtypes _segOo_pretty _segOo_rename _segOo_sem _segOo_sig _segOo_splitsems _segOo_strictwrap _segOo_traces _segOo_unbox _segOparamMap _segOprefix _segOsyn ) in ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))) ) -- CNonterminal ------------------------------------------------ {- visit 0: inherited attributes: allNts : Set NontermIdent allPragmas : PragmaMap aroundMap : Map NontermIdent (Map ConstructorIdent (Set Identifier)) contextMap : ContextMap derivings : Derivings o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramMap : ParamMap prefix : String typeSyns : TypeSyns unfoldSemDom : NontermIdent -> Int -> [String] -> Code.Type with_sig : Bool wrappers : Set NontermIdent chained attribute: errors : Seq Error synthesized attributes: allTpsFound : Bool chunks : Chunks gathNts : Set NontermIdent semDomUnfoldGath : Map (NontermIdent, Int) ([String], Code.Type) alternatives: alternative CNonterminal: child nt : {NontermIdent} child params : {[Identifier]} child inh : {Attributes} child syn : {Attributes} child prods : CProductions child inter : CInterface visit 0: local _tup1 : {(Attributes,Attributes,NontermIdent)} local _tup2 : {(Attributes,Attributes,NontermIdent)} local aroundMap : _ local semWrapper : _ local comment : _ local dataDef : _ local cataFun : _ -} -- cata sem_CNonterminal :: CNonterminal -> T_CNonterminal sem_CNonterminal (CNonterminal _nt _params _inh _syn _prods _inter ) = (sem_CNonterminal_CNonterminal _nt _params _inh _syn (sem_CProductions _prods ) (sem_CInterface _inter ) ) -- semantic domain newtype T_CNonterminal = T_CNonterminal ((Set NontermIdent) -> PragmaMap -> (Map NontermIdent (Map ConstructorIdent (Set Identifier))) -> ContextMap -> Derivings -> (Seq Error) -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ParamMap -> String -> TypeSyns -> (NontermIdent -> Int -> [String] -> Code.Type) -> Bool -> (Set NontermIdent) -> ( Bool,Chunks,(Seq Error),(Set NontermIdent),(Map (NontermIdent, Int) ([String], Code.Type)))) data Inh_CNonterminal = Inh_CNonterminal {allNts_Inh_CNonterminal :: !(Set NontermIdent),allPragmas_Inh_CNonterminal :: !(PragmaMap),aroundMap_Inh_CNonterminal :: !(Map NontermIdent (Map ConstructorIdent (Set Identifier))),contextMap_Inh_CNonterminal :: !(ContextMap),derivings_Inh_CNonterminal :: !(Derivings),errors_Inh_CNonterminal :: !(Seq Error),o_case_Inh_CNonterminal :: !(Bool),o_cata_Inh_CNonterminal :: !(Bool),o_costcentre_Inh_CNonterminal :: !(Bool),o_data_Inh_CNonterminal :: !(Maybe Bool),o_linePragmas_Inh_CNonterminal :: !(Bool),o_newtypes_Inh_CNonterminal :: !(Bool),o_pretty_Inh_CNonterminal :: !(Bool),o_rename_Inh_CNonterminal :: !(Bool),o_sem_Inh_CNonterminal :: !(Bool),o_sig_Inh_CNonterminal :: !(Bool),o_splitsems_Inh_CNonterminal :: !(Bool),o_strictwrap_Inh_CNonterminal :: !(Bool),o_traces_Inh_CNonterminal :: !(Bool),o_unbox_Inh_CNonterminal :: !(Bool),paramMap_Inh_CNonterminal :: !(ParamMap),prefix_Inh_CNonterminal :: !(String),typeSyns_Inh_CNonterminal :: !(TypeSyns),unfoldSemDom_Inh_CNonterminal :: !(NontermIdent -> Int -> [String] -> Code.Type),with_sig_Inh_CNonterminal :: !(Bool),wrappers_Inh_CNonterminal :: !(Set NontermIdent)} data Syn_CNonterminal = Syn_CNonterminal {allTpsFound_Syn_CNonterminal :: !(Bool),chunks_Syn_CNonterminal :: !(Chunks),errors_Syn_CNonterminal :: !(Seq Error),gathNts_Syn_CNonterminal :: !(Set NontermIdent),semDomUnfoldGath_Syn_CNonterminal :: !(Map (NontermIdent, Int) ([String], Code.Type))} wrap_CNonterminal :: T_CNonterminal -> Inh_CNonterminal -> Syn_CNonterminal wrap_CNonterminal (T_CNonterminal sem ) (Inh_CNonterminal _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsIerrors _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers ) = (let ( _lhsOallTpsFound,_lhsOchunks,_lhsOerrors,_lhsOgathNts,_lhsOsemDomUnfoldGath) = (sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsIerrors _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers ) in (Syn_CNonterminal _lhsOallTpsFound _lhsOchunks _lhsOerrors _lhsOgathNts _lhsOsemDomUnfoldGath )) sem_CNonterminal_CNonterminal :: NontermIdent -> ([Identifier]) -> Attributes -> Attributes -> T_CProductions -> T_CInterface -> T_CNonterminal sem_CNonterminal_CNonterminal nt_ params_ inh_ syn_ (T_CProductions prods_ ) (T_CInterface inter_ ) = (T_CNonterminal (\ _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsIerrors _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers -> (let __tup1 :: ((Attributes,Attributes,NontermIdent)) _interOinh :: Attributes _interOsyn :: Attributes _interOnt :: NontermIdent __tup2 :: ((Attributes,Attributes,NontermIdent)) _prodsOinh :: Attributes _prodsOsyn :: Attributes _prodsOnt :: NontermIdent _lhsOgathNts :: (Set NontermIdent) _lhsOchunks :: Chunks _lhsOallTpsFound :: Bool _lhsOerrors :: (Seq Error) _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _prodsOallNts :: (Set NontermIdent) _prodsOallPragmas :: PragmaMap _prodsOaroundMap :: (Map ConstructorIdent (Set Identifier)) _prodsOcontextMap :: ContextMap _prodsOerrors :: (Seq Error) _prodsOo_case :: Bool _prodsOo_cata :: Bool _prodsOo_costcentre :: Bool _prodsOo_data :: (Maybe Bool) _prodsOo_linePragmas :: Bool _prodsOo_newtypes :: Bool _prodsOo_pretty :: Bool _prodsOo_rename :: Bool _prodsOo_sem :: Bool _prodsOo_sig :: Bool _prodsOo_splitsems :: Bool _prodsOo_strictwrap :: Bool _prodsOo_traces :: Bool _prodsOo_unbox :: Bool _prodsOparamMap :: ParamMap _prodsOprefix :: String _prodsOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _prodsOwith_sig :: Bool _interOo_case :: Bool _interOo_cata :: Bool _interOo_costcentre :: Bool _interOo_data :: (Maybe Bool) _interOo_linePragmas :: Bool _interOo_newtypes :: Bool _interOo_pretty :: Bool _interOo_rename :: Bool _interOo_sem :: Bool _interOo_sig :: Bool _interOo_splitsems :: Bool _interOo_strictwrap :: Bool _interOo_traces :: Bool _interOo_unbox :: Bool _interOparamMap :: ParamMap _interOprefix :: String _prodsIallTpsFound :: Bool _prodsIcataAlts :: Decls _prodsIcomments :: ([String]) _prodsIdataAlts :: DataAlts _prodsIdecls :: Decls _prodsIerrors :: (Seq Error) _prodsIsemNames :: ([String]) _interIcomments :: ([String]) _interIsemDom :: ([Decl]) _interIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _interIwrapDecls :: Decls -- "GenerateCode.ag"(line 79, column 26) __tup1 = {-# LINE 79 "GenerateCode.ag" #-} (inh_,syn_,nt_) {-# LINE 909 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 79, column 26) (_interOinh,_,_) = {-# LINE 79 "GenerateCode.ag" #-} __tup1 {-# LINE 914 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 79, column 26) (_,_interOsyn,_) = {-# LINE 79 "GenerateCode.ag" #-} __tup1 {-# LINE 919 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 79, column 26) (_,_,_interOnt) = {-# LINE 79 "GenerateCode.ag" #-} __tup1 {-# LINE 924 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 80, column 25) __tup2 = {-# LINE 80 "GenerateCode.ag" #-} (inh_,syn_,nt_) {-# LINE 929 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 80, column 25) (_prodsOinh,_,_) = {-# LINE 80 "GenerateCode.ag" #-} __tup2 {-# LINE 934 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 80, column 25) (_,_prodsOsyn,_) = {-# LINE 80 "GenerateCode.ag" #-} __tup2 {-# LINE 939 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 80, column 25) (_,_,_prodsOnt) = {-# LINE 80 "GenerateCode.ag" #-} __tup2 {-# LINE 944 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 130, column 7) _lhsOgathNts = {-# LINE 130 "GenerateCode.ag" #-} Set.singleton nt_ {-# LINE 949 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 482, column 34) _aroundMap = {-# LINE 482 "GenerateCode.ag" #-} Map.findWithDefault Map.empty nt_ _lhsIaroundMap {-# LINE 954 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 688, column 18) _semWrapper = {-# LINE 688 "GenerateCode.ag" #-} let params' = map getName params_ inhAttrs = Map.toList inh_ synAttrs = Map.toList syn_ inhVars = [ SimpleExpr (attrname True _LHS a) | (a,_) <- inhAttrs ] synVars = [ SimpleExpr (attrname False _LHS a) | (a,_) <- synAttrs ] var = "sem" wrapNT = "wrap" ++ "_" ++ getName nt_ inhNT = "Inh" ++ "_" ++ getName nt_ synNT = "Syn" ++ "_" ++ getName nt_ varPat = if _lhsIo_newtypes then App (sdtype nt_) [SimpleExpr var] else SimpleExpr var evalTp | null params' = id | otherwise = idEvalType evalTpCommon t | null params' = t | otherwise = case (evalTp (SimpleType t)) of SimpleType t' -> t' appParams nm = TypeApp (SimpleType nm) (map SimpleType params') typeSig = TSig wrapNT (evalTp $ appParams (sdtype nt_) `Arr` (appParams inhNT `Arr` appParams synNT)) mkstrict = if _lhsIo_strictwrap then (\x -> "!(" ++ x ++ ")") else id mkdata n attrs = Data n params' [Record n [(getName f++"_"++n,mkstrict $ evalTpCommon $ typeToHaskellString (Just nt_) params' t) | (f,t) <- attrs]] False [] datas = [mkdata inhNT inhAttrs, mkdata synNT synAttrs] in datas ++ [ typeSig , Decl (Fun wrapNT [varPat, App inhNT inhVars]) (Let _interIwrapDecls (App synNT synVars)) Set.empty Set.empty ] {-# LINE 984 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 763, column 18) _comment = {-# LINE 763 "GenerateCode.ag" #-} Comment . unlines . map ind $ ( _interIcomments ++ ("alternatives:" : map ind _prodsIcomments) ) {-# LINE 989 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 817, column 19) _lhsOchunks = {-# LINE 817 "GenerateCode.ag" #-} [ Chunk (getName nt_) (Comment (getName nt_ ++ " " ++ replicate (60 - length (getName nt_)) '-')) (if _lhsIo_pretty then [_comment ] else []) (if isJust _lhsIo_data then [_dataDef ] else []) (if _lhsIo_cata then _cataFun else []) (if _lhsIo_sig then _interIsemDom else []) (if nt_ `Set.member` _lhsIwrappers then _semWrapper else []) (if _lhsIo_sem then _prodsIdecls else []) (if _lhsIo_sem then _prodsIsemNames else []) ] {-# LINE 1003 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 872, column 18) _dataDef = {-# LINE 872 "GenerateCode.ag" #-} let params' = map getName params_ typeSyn tp = let theType = case tp of CommonTypes.Maybe t -> SimpleType ("Maybe (" ++ typeToHaskellString (Just nt_) params' t ++")") CommonTypes.Either t1 t2 -> SimpleType ("Either (" ++ typeToHaskellString (Just nt_) params' t1 ++") (" ++ typeToHaskellString (Just nt_) params' t2 ++")") CommonTypes.Map t1 t2 -> SimpleType ("Map (" ++ typeToHaskellString (Just nt_) params' t1 ++") (" ++ typeToHaskellString (Just nt_) params' t2 ++")") CommonTypes.IntMap t -> SimpleType ("IntMap (" ++ typeToHaskellString (Just nt_) params' t ++")") CommonTypes.List t -> Code.List $ SimpleType (typeToHaskellString (Just nt_) params' t) CommonTypes.Tuple ts -> Code.TupleType [SimpleType (typeToHaskellString (Just nt_) params' t) | (_,t) <- ts ] in Code.Type (getName nt_) params' (idEvalType theType) derivings = maybe [] (map getName . Set.toList) (Map.lookup nt_ _lhsIderivings) dataDef = Data (getName nt_) (map getName params_) _prodsIdataAlts (maybe False id _lhsIo_data) derivings in maybe dataDef typeSyn $ lookup nt_ _lhsItypeSyns {-# LINE 1024 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 906, column 18) _cataFun = {-# LINE 906 "GenerateCode.ag" #-} let appParams nm = TypeApp (SimpleType nm) (map SimpleType (map getName params_)) evalTp | null params_ = id | otherwise = idEvalType tSig = TSig (cataname _lhsIprefix nt_) (appContext _lhsIcontextMap nt_ $ evalTp $ appParams (getName nt_) `Arr` appParams (sdtype nt_)) special typ = case typ of CommonTypes.List tp -> let cons = SimpleExpr (semname _lhsIprefix nt_ (identifier "Cons")) nil = SimpleExpr (semname _lhsIprefix nt_ (identifier "Nil" )) arg = SimpleExpr "list" rarg = case tp of NT t _ -> let t' = maybe t id (deforestedNt t) in SimpleExpr ("(Prelude.map " ++ (cataname _lhsIprefix t') ++ " list)") _ -> arg lhs = Fun (cataname _lhsIprefix nt_) [arg] rhs = (App "Prelude.foldr" [cons,nil,rarg]) in [Decl lhs rhs Set.empty Set.empty] CommonTypes.Maybe tp -> let just = semname _lhsIprefix nt_ (identifier "Just") nothing = semname _lhsIprefix nt_ (identifier "Nothing" ) arg = SimpleExpr "x" rarg = case tp of NT t _ -> let t' = maybe t id (deforestedNt t) in App (cataname _lhsIprefix t') [arg] _ -> arg lhs a = Fun (cataname _lhsIprefix nt_) [a] in [Decl (lhs (App "Prelude.Just" [arg])) (App just [rarg]) Set.empty Set.empty ,Decl (lhs (SimpleExpr "Prelude.Nothing")) (SimpleExpr nothing) Set.empty Set.empty ] CommonTypes.Either tp1 tp2 -> let left = semname _lhsIprefix nt_ (identifier "Left") right = semname _lhsIprefix nt_ (identifier "Right" ) arg = SimpleExpr "x" rarg0 = case tp1 of NT t _ -> let t' = maybe t id (deforestedNt t) in App (cataname _lhsIprefix t') [arg] _ -> arg rarg1 = case tp2 of NT t _ -> let t' = maybe t id (deforestedNt t) in App (cataname _lhsIprefix t') [arg] _ -> arg lhs a = Fun (cataname _lhsIprefix nt_) [a] in [Decl (lhs (App "Prelude.Left" [arg])) (App left [rarg0]) Set.empty Set.empty ,Decl (lhs (App "Prelude.Right" [arg])) (App right [rarg1]) Set.empty Set.empty ] CommonTypes.Map _ tp -> let entry = SimpleExpr (semname _lhsIprefix nt_ (identifier "Entry")) nil = SimpleExpr (semname _lhsIprefix nt_ (identifier "Nil")) arg = SimpleExpr "m" rarg = case tp of NT t _ -> let t' = maybe t id (deforestedNt t) in App "Map.map" [SimpleExpr $ cataname _lhsIprefix t', arg] _ -> arg lhs = Fun (cataname _lhsIprefix nt_) [arg] rhs = App "Map.foldWithKey" [entry,nil,rarg] in [Decl lhs rhs Set.empty Set.empty] CommonTypes.IntMap tp -> let entry = SimpleExpr (semname _lhsIprefix nt_ (identifier "Entry")) nil = SimpleExpr (semname _lhsIprefix nt_ (identifier "Nil")) arg = SimpleExpr "m" rarg = case tp of NT t _ -> let t' = maybe t id (deforestedNt t) in App "IntMap.map" [SimpleExpr $ cataname _lhsIprefix t', arg] _ -> arg lhs = Fun (cataname _lhsIprefix nt_) [arg] rhs = App "IntMap.foldWithKey" [entry,nil,rarg] in [Decl lhs rhs Set.empty Set.empty] CommonTypes.Tuple tps -> let con = semname _lhsIprefix nt_ (identifier "Tuple") tps' = [ (SimpleExpr (getName x),y) | (x,y) <- tps] rargs = map rarg tps' rarg (n, tp) = case tp of NT t _ -> let t' = maybe t id (deforestedNt t) in App (cataname _lhsIprefix t') [n] _ -> n lhs = Fun (cataname _lhsIprefix nt_) [TupleExpr (map fst tps')] rhs = App con rargs in [Decl lhs rhs Set.empty Set.empty] in Comment "cata" : (if _lhsIo_sig then [tSig] else []) ++ maybe _prodsIcataAlts special (lookup nt_ _lhsItypeSyns) {-# LINE 1109 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 735, column 39) _lhsOallTpsFound = {-# LINE 735 "GenerateCode.ag" #-} _prodsIallTpsFound {-# LINE 1114 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} _prodsIerrors {-# LINE 1119 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 640, column 86) _lhsOsemDomUnfoldGath = {-# LINE 640 "GenerateCode.ag" #-} _interIsemDomUnfoldGath {-# LINE 1124 "GenerateCode.hs" #-} -- copy rule (down) _prodsOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 1129 "GenerateCode.hs" #-} -- copy rule (down) _prodsOallPragmas = {-# LINE 66 "GenerateCode.ag" #-} _lhsIallPragmas {-# LINE 1134 "GenerateCode.hs" #-} -- copy rule (from local) _prodsOaroundMap = {-# LINE 477 "GenerateCode.ag" #-} _aroundMap {-# LINE 1139 "GenerateCode.hs" #-} -- copy rule (down) _prodsOcontextMap = {-# LINE 108 "GenerateCode.ag" #-} _lhsIcontextMap {-# LINE 1144 "GenerateCode.hs" #-} -- copy rule (down) _prodsOerrors = {-# LINE 748 "GenerateCode.ag" #-} _lhsIerrors {-# LINE 1149 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 1154 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 1159 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 1164 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 1169 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 1174 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 1179 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 1184 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 1189 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 1194 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 1199 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 1204 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 1209 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 1214 "GenerateCode.hs" #-} -- copy rule (down) _prodsOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 1219 "GenerateCode.hs" #-} -- copy rule (down) _prodsOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 1224 "GenerateCode.hs" #-} -- copy rule (down) _prodsOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 1229 "GenerateCode.hs" #-} -- copy rule (down) _prodsOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 1234 "GenerateCode.hs" #-} -- copy rule (down) _prodsOwith_sig = {-# LINE 738 "GenerateCode.ag" #-} _lhsIwith_sig {-# LINE 1239 "GenerateCode.hs" #-} -- copy rule (down) _interOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 1244 "GenerateCode.hs" #-} -- copy rule (down) _interOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 1249 "GenerateCode.hs" #-} -- copy rule (down) _interOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 1254 "GenerateCode.hs" #-} -- copy rule (down) _interOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 1259 "GenerateCode.hs" #-} -- copy rule (down) _interOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 1264 "GenerateCode.hs" #-} -- copy rule (down) _interOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 1269 "GenerateCode.hs" #-} -- copy rule (down) _interOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 1274 "GenerateCode.hs" #-} -- copy rule (down) _interOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 1279 "GenerateCode.hs" #-} -- copy rule (down) _interOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 1284 "GenerateCode.hs" #-} -- copy rule (down) _interOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 1289 "GenerateCode.hs" #-} -- copy rule (down) _interOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 1294 "GenerateCode.hs" #-} -- copy rule (down) _interOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 1299 "GenerateCode.hs" #-} -- copy rule (down) _interOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 1304 "GenerateCode.hs" #-} -- copy rule (down) _interOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 1309 "GenerateCode.hs" #-} -- copy rule (down) _interOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 1314 "GenerateCode.hs" #-} -- copy rule (down) _interOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 1319 "GenerateCode.hs" #-} ( _prodsIallTpsFound,_prodsIcataAlts,_prodsIcomments,_prodsIdataAlts,_prodsIdecls,_prodsIerrors,_prodsIsemNames) = (prods_ _prodsOallNts _prodsOallPragmas _prodsOaroundMap _prodsOcontextMap _prodsOerrors _prodsOinh _prodsOnt _prodsOo_case _prodsOo_cata _prodsOo_costcentre _prodsOo_data _prodsOo_linePragmas _prodsOo_newtypes _prodsOo_pretty _prodsOo_rename _prodsOo_sem _prodsOo_sig _prodsOo_splitsems _prodsOo_strictwrap _prodsOo_traces _prodsOo_unbox _prodsOparamMap _prodsOprefix _prodsOsyn _prodsOunfoldSemDom _prodsOwith_sig ) ( _interIcomments,_interIsemDom,_interIsemDomUnfoldGath,_interIwrapDecls) = (inter_ _interOinh _interOnt _interOo_case _interOo_cata _interOo_costcentre _interOo_data _interOo_linePragmas _interOo_newtypes _interOo_pretty _interOo_rename _interOo_sem _interOo_sig _interOo_splitsems _interOo_strictwrap _interOo_traces _interOo_unbox _interOparamMap _interOprefix _interOsyn ) in ( _lhsOallTpsFound,_lhsOchunks,_lhsOerrors,_lhsOgathNts,_lhsOsemDomUnfoldGath))) ) -- CNonterminals ----------------------------------------------- {- visit 0: inherited attributes: allNts : Set NontermIdent allPragmas : PragmaMap aroundMap : Map NontermIdent (Map ConstructorIdent (Set Identifier)) contextMap : ContextMap derivings : Derivings o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramMap : ParamMap prefix : String typeSyns : TypeSyns unfoldSemDom : NontermIdent -> Int -> [String] -> Code.Type with_sig : Bool wrappers : Set NontermIdent chained attribute: errors : Seq Error synthesized attributes: allTpsFound : Bool chunks : Chunks gathNts : Set NontermIdent semDomUnfoldGath : Map (NontermIdent, Int) ([String], Code.Type) alternatives: alternative Cons: child hd : CNonterminal child tl : CNonterminals alternative Nil: -} -- cata sem_CNonterminals :: CNonterminals -> T_CNonterminals sem_CNonterminals list = (Prelude.foldr sem_CNonterminals_Cons sem_CNonterminals_Nil (Prelude.map sem_CNonterminal list) ) -- semantic domain newtype T_CNonterminals = T_CNonterminals ((Set NontermIdent) -> PragmaMap -> (Map NontermIdent (Map ConstructorIdent (Set Identifier))) -> ContextMap -> Derivings -> (Seq Error) -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ParamMap -> String -> TypeSyns -> (NontermIdent -> Int -> [String] -> Code.Type) -> Bool -> (Set NontermIdent) -> ( Bool,Chunks,(Seq Error),(Set NontermIdent),(Map (NontermIdent, Int) ([String], Code.Type)))) data Inh_CNonterminals = Inh_CNonterminals {allNts_Inh_CNonterminals :: !(Set NontermIdent),allPragmas_Inh_CNonterminals :: !(PragmaMap),aroundMap_Inh_CNonterminals :: !(Map NontermIdent (Map ConstructorIdent (Set Identifier))),contextMap_Inh_CNonterminals :: !(ContextMap),derivings_Inh_CNonterminals :: !(Derivings),errors_Inh_CNonterminals :: !(Seq Error),o_case_Inh_CNonterminals :: !(Bool),o_cata_Inh_CNonterminals :: !(Bool),o_costcentre_Inh_CNonterminals :: !(Bool),o_data_Inh_CNonterminals :: !(Maybe Bool),o_linePragmas_Inh_CNonterminals :: !(Bool),o_newtypes_Inh_CNonterminals :: !(Bool),o_pretty_Inh_CNonterminals :: !(Bool),o_rename_Inh_CNonterminals :: !(Bool),o_sem_Inh_CNonterminals :: !(Bool),o_sig_Inh_CNonterminals :: !(Bool),o_splitsems_Inh_CNonterminals :: !(Bool),o_strictwrap_Inh_CNonterminals :: !(Bool),o_traces_Inh_CNonterminals :: !(Bool),o_unbox_Inh_CNonterminals :: !(Bool),paramMap_Inh_CNonterminals :: !(ParamMap),prefix_Inh_CNonterminals :: !(String),typeSyns_Inh_CNonterminals :: !(TypeSyns),unfoldSemDom_Inh_CNonterminals :: !(NontermIdent -> Int -> [String] -> Code.Type),with_sig_Inh_CNonterminals :: !(Bool),wrappers_Inh_CNonterminals :: !(Set NontermIdent)} data Syn_CNonterminals = Syn_CNonterminals {allTpsFound_Syn_CNonterminals :: !(Bool),chunks_Syn_CNonterminals :: !(Chunks),errors_Syn_CNonterminals :: !(Seq Error),gathNts_Syn_CNonterminals :: !(Set NontermIdent),semDomUnfoldGath_Syn_CNonterminals :: !(Map (NontermIdent, Int) ([String], Code.Type))} wrap_CNonterminals :: T_CNonterminals -> Inh_CNonterminals -> Syn_CNonterminals wrap_CNonterminals (T_CNonterminals sem ) (Inh_CNonterminals _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsIerrors _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers ) = (let ( _lhsOallTpsFound,_lhsOchunks,_lhsOerrors,_lhsOgathNts,_lhsOsemDomUnfoldGath) = (sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsIerrors _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers ) in (Syn_CNonterminals _lhsOallTpsFound _lhsOchunks _lhsOerrors _lhsOgathNts _lhsOsemDomUnfoldGath )) sem_CNonterminals_Cons :: T_CNonterminal -> T_CNonterminals -> T_CNonterminals sem_CNonterminals_Cons (T_CNonterminal hd_ ) (T_CNonterminals tl_ ) = (T_CNonterminals (\ _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsIerrors _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers -> (let _lhsOallTpsFound :: Bool _lhsOchunks :: Chunks _lhsOerrors :: (Seq Error) _lhsOgathNts :: (Set NontermIdent) _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _hdOallNts :: (Set NontermIdent) _hdOallPragmas :: PragmaMap _hdOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Set Identifier))) _hdOcontextMap :: ContextMap _hdOderivings :: Derivings _hdOerrors :: (Seq Error) _hdOo_case :: Bool _hdOo_cata :: Bool _hdOo_costcentre :: Bool _hdOo_data :: (Maybe Bool) _hdOo_linePragmas :: Bool _hdOo_newtypes :: Bool _hdOo_pretty :: Bool _hdOo_rename :: Bool _hdOo_sem :: Bool _hdOo_sig :: Bool _hdOo_splitsems :: Bool _hdOo_strictwrap :: Bool _hdOo_traces :: Bool _hdOo_unbox :: Bool _hdOparamMap :: ParamMap _hdOprefix :: String _hdOtypeSyns :: TypeSyns _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _hdOwith_sig :: Bool _hdOwrappers :: (Set NontermIdent) _tlOallNts :: (Set NontermIdent) _tlOallPragmas :: PragmaMap _tlOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Set Identifier))) _tlOcontextMap :: ContextMap _tlOderivings :: Derivings _tlOerrors :: (Seq Error) _tlOo_case :: Bool _tlOo_cata :: Bool _tlOo_costcentre :: Bool _tlOo_data :: (Maybe Bool) _tlOo_linePragmas :: Bool _tlOo_newtypes :: Bool _tlOo_pretty :: Bool _tlOo_rename :: Bool _tlOo_sem :: Bool _tlOo_sig :: Bool _tlOo_splitsems :: Bool _tlOo_strictwrap :: Bool _tlOo_traces :: Bool _tlOo_unbox :: Bool _tlOparamMap :: ParamMap _tlOprefix :: String _tlOtypeSyns :: TypeSyns _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _tlOwith_sig :: Bool _tlOwrappers :: (Set NontermIdent) _hdIallTpsFound :: Bool _hdIchunks :: Chunks _hdIerrors :: (Seq Error) _hdIgathNts :: (Set NontermIdent) _hdIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _tlIallTpsFound :: Bool _tlIchunks :: Chunks _tlIerrors :: (Seq Error) _tlIgathNts :: (Set NontermIdent) _tlIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) -- use rule "GenerateCode.ag"(line 735, column 39) _lhsOallTpsFound = {-# LINE 735 "GenerateCode.ag" #-} _hdIallTpsFound && _tlIallTpsFound {-# LINE 1510 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 809, column 49) _lhsOchunks = {-# LINE 809 "GenerateCode.ag" #-} _hdIchunks ++ _tlIchunks {-# LINE 1515 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} _hdIerrors Seq.>< _tlIerrors {-# LINE 1520 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 126, column 47) _lhsOgathNts = {-# LINE 126 "GenerateCode.ag" #-} _hdIgathNts `Set.union` _tlIgathNts {-# LINE 1525 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 640, column 86) _lhsOsemDomUnfoldGath = {-# LINE 640 "GenerateCode.ag" #-} _hdIsemDomUnfoldGath `Map.union` _tlIsemDomUnfoldGath {-# LINE 1530 "GenerateCode.hs" #-} -- copy rule (down) _hdOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 1535 "GenerateCode.hs" #-} -- copy rule (down) _hdOallPragmas = {-# LINE 66 "GenerateCode.ag" #-} _lhsIallPragmas {-# LINE 1540 "GenerateCode.hs" #-} -- copy rule (down) _hdOaroundMap = {-# LINE 474 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 1545 "GenerateCode.hs" #-} -- copy rule (down) _hdOcontextMap = {-# LINE 108 "GenerateCode.ag" #-} _lhsIcontextMap {-# LINE 1550 "GenerateCode.hs" #-} -- copy rule (down) _hdOderivings = {-# LINE 865 "GenerateCode.ag" #-} _lhsIderivings {-# LINE 1555 "GenerateCode.hs" #-} -- copy rule (down) _hdOerrors = {-# LINE 748 "GenerateCode.ag" #-} _lhsIerrors {-# LINE 1560 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 1565 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 1570 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 1575 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 1580 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 1585 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 1590 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 1595 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 1600 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 1605 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 1610 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 1615 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 1620 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 1625 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 1630 "GenerateCode.hs" #-} -- copy rule (down) _hdOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 1635 "GenerateCode.hs" #-} -- copy rule (down) _hdOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 1640 "GenerateCode.hs" #-} -- copy rule (down) _hdOtypeSyns = {-# LINE 865 "GenerateCode.ag" #-} _lhsItypeSyns {-# LINE 1645 "GenerateCode.hs" #-} -- copy rule (down) _hdOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 1650 "GenerateCode.hs" #-} -- copy rule (down) _hdOwith_sig = {-# LINE 738 "GenerateCode.ag" #-} _lhsIwith_sig {-# LINE 1655 "GenerateCode.hs" #-} -- copy rule (down) _hdOwrappers = {-# LINE 865 "GenerateCode.ag" #-} _lhsIwrappers {-# LINE 1660 "GenerateCode.hs" #-} -- copy rule (down) _tlOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 1665 "GenerateCode.hs" #-} -- copy rule (down) _tlOallPragmas = {-# LINE 66 "GenerateCode.ag" #-} _lhsIallPragmas {-# LINE 1670 "GenerateCode.hs" #-} -- copy rule (down) _tlOaroundMap = {-# LINE 474 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 1675 "GenerateCode.hs" #-} -- copy rule (down) _tlOcontextMap = {-# LINE 108 "GenerateCode.ag" #-} _lhsIcontextMap {-# LINE 1680 "GenerateCode.hs" #-} -- copy rule (down) _tlOderivings = {-# LINE 865 "GenerateCode.ag" #-} _lhsIderivings {-# LINE 1685 "GenerateCode.hs" #-} -- copy rule (chain) _tlOerrors = {-# LINE 748 "GenerateCode.ag" #-} _hdIerrors {-# LINE 1690 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 1695 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 1700 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 1705 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 1710 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 1715 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 1720 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 1725 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 1730 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 1735 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 1740 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 1745 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 1750 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 1755 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 1760 "GenerateCode.hs" #-} -- copy rule (down) _tlOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 1765 "GenerateCode.hs" #-} -- copy rule (down) _tlOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 1770 "GenerateCode.hs" #-} -- copy rule (down) _tlOtypeSyns = {-# LINE 865 "GenerateCode.ag" #-} _lhsItypeSyns {-# LINE 1775 "GenerateCode.hs" #-} -- copy rule (down) _tlOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 1780 "GenerateCode.hs" #-} -- copy rule (down) _tlOwith_sig = {-# LINE 738 "GenerateCode.ag" #-} _lhsIwith_sig {-# LINE 1785 "GenerateCode.hs" #-} -- copy rule (down) _tlOwrappers = {-# LINE 865 "GenerateCode.ag" #-} _lhsIwrappers {-# LINE 1790 "GenerateCode.hs" #-} ( _hdIallTpsFound,_hdIchunks,_hdIerrors,_hdIgathNts,_hdIsemDomUnfoldGath) = (hd_ _hdOallNts _hdOallPragmas _hdOaroundMap _hdOcontextMap _hdOderivings _hdOerrors _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOparamMap _hdOprefix _hdOtypeSyns _hdOunfoldSemDom _hdOwith_sig _hdOwrappers ) ( _tlIallTpsFound,_tlIchunks,_tlIerrors,_tlIgathNts,_tlIsemDomUnfoldGath) = (tl_ _tlOallNts _tlOallPragmas _tlOaroundMap _tlOcontextMap _tlOderivings _tlOerrors _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOparamMap _tlOprefix _tlOtypeSyns _tlOunfoldSemDom _tlOwith_sig _tlOwrappers ) in ( _lhsOallTpsFound,_lhsOchunks,_lhsOerrors,_lhsOgathNts,_lhsOsemDomUnfoldGath))) ) sem_CNonterminals_Nil :: T_CNonterminals sem_CNonterminals_Nil = (T_CNonterminals (\ _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsIerrors _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers -> (let _lhsOallTpsFound :: Bool _lhsOchunks :: Chunks _lhsOerrors :: (Seq Error) _lhsOgathNts :: (Set NontermIdent) _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) -- use rule "GenerateCode.ag"(line 735, column 39) _lhsOallTpsFound = {-# LINE 735 "GenerateCode.ag" #-} True {-# LINE 1833 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 809, column 49) _lhsOchunks = {-# LINE 809 "GenerateCode.ag" #-} [] {-# LINE 1838 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} Seq.empty {-# LINE 1843 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 126, column 47) _lhsOgathNts = {-# LINE 126 "GenerateCode.ag" #-} Set.empty {-# LINE 1848 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 640, column 86) _lhsOsemDomUnfoldGath = {-# LINE 640 "GenerateCode.ag" #-} Map.empty {-# LINE 1853 "GenerateCode.hs" #-} in ( _lhsOallTpsFound,_lhsOchunks,_lhsOerrors,_lhsOgathNts,_lhsOsemDomUnfoldGath))) ) -- CProduction ------------------------------------------------- {- visit 0: inherited attributes: allNts : Set NontermIdent allPragmas : PragmaMap aroundMap : Map ConstructorIdent (Set Identifier) contextMap : ContextMap inh : Attributes nt : NontermIdent o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramMap : ParamMap prefix : String syn : Attributes unfoldSemDom : NontermIdent -> Int -> [String] -> Code.Type with_sig : Bool chained attribute: errors : Seq Error synthesized attributes: allTpsFound : Bool cataAlt : Decl comments : [String] dataAlt : DataAlt decls : Decls semNames : [String] alternatives: alternative CProduction: child con : {ConstructorIdent} child visits : CVisits child children : {[(Identifier,Type,Bool)]} child terminals : {[Identifier]} visit 0: local paramInstMap : _ local aroundMap : _ local firstOrderChildren : _ local params : _ -} -- cata sem_CProduction :: CProduction -> T_CProduction sem_CProduction (CProduction _con _visits _children _terminals ) = (sem_CProduction_CProduction _con (sem_CVisits _visits ) _children _terminals ) -- semantic domain newtype T_CProduction = T_CProduction ((Set NontermIdent) -> PragmaMap -> (Map ConstructorIdent (Set Identifier)) -> ContextMap -> (Seq Error) -> Attributes -> NontermIdent -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ParamMap -> String -> Attributes -> (NontermIdent -> Int -> [String] -> Code.Type) -> Bool -> ( Bool,Decl,([String]),DataAlt,Decls,(Seq Error),([String]))) data Inh_CProduction = Inh_CProduction {allNts_Inh_CProduction :: !(Set NontermIdent),allPragmas_Inh_CProduction :: !(PragmaMap),aroundMap_Inh_CProduction :: !(Map ConstructorIdent (Set Identifier)),contextMap_Inh_CProduction :: !(ContextMap),errors_Inh_CProduction :: !(Seq Error),inh_Inh_CProduction :: !(Attributes),nt_Inh_CProduction :: !(NontermIdent),o_case_Inh_CProduction :: !(Bool),o_cata_Inh_CProduction :: !(Bool),o_costcentre_Inh_CProduction :: !(Bool),o_data_Inh_CProduction :: !(Maybe Bool),o_linePragmas_Inh_CProduction :: !(Bool),o_newtypes_Inh_CProduction :: !(Bool),o_pretty_Inh_CProduction :: !(Bool),o_rename_Inh_CProduction :: !(Bool),o_sem_Inh_CProduction :: !(Bool),o_sig_Inh_CProduction :: !(Bool),o_splitsems_Inh_CProduction :: !(Bool),o_strictwrap_Inh_CProduction :: !(Bool),o_traces_Inh_CProduction :: !(Bool),o_unbox_Inh_CProduction :: !(Bool),paramMap_Inh_CProduction :: !(ParamMap),prefix_Inh_CProduction :: !(String),syn_Inh_CProduction :: !(Attributes),unfoldSemDom_Inh_CProduction :: !(NontermIdent -> Int -> [String] -> Code.Type),with_sig_Inh_CProduction :: !(Bool)} data Syn_CProduction = Syn_CProduction {allTpsFound_Syn_CProduction :: !(Bool),cataAlt_Syn_CProduction :: !(Decl),comments_Syn_CProduction :: !([String]),dataAlt_Syn_CProduction :: !(DataAlt),decls_Syn_CProduction :: !(Decls),errors_Syn_CProduction :: !(Seq Error),semNames_Syn_CProduction :: !([String])} wrap_CProduction :: T_CProduction -> Inh_CProduction -> Syn_CProduction wrap_CProduction (T_CProduction sem ) (Inh_CProduction _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIerrors _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig ) = (let ( _lhsOallTpsFound,_lhsOcataAlt,_lhsOcomments,_lhsOdataAlt,_lhsOdecls,_lhsOerrors,_lhsOsemNames) = (sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIerrors _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig ) in (Syn_CProduction _lhsOallTpsFound _lhsOcataAlt _lhsOcomments _lhsOdataAlt _lhsOdecls _lhsOerrors _lhsOsemNames )) sem_CProduction_CProduction :: ConstructorIdent -> T_CVisits -> ([(Identifier,Type,Bool)]) -> ([Identifier]) -> T_CProduction sem_CProduction_CProduction con_ (T_CVisits visits_ ) children_ terminals_ = (T_CProduction (\ _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIerrors _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig -> (let _visitsOcon :: ConstructorIdent _visitsOterminals :: ([Identifier]) _visitsOnr :: Int _visitsOchildren :: ([(Identifier,Type,Bool)]) _visitsOinstVisitNrs :: (Map Identifier Int) _lhsOcomments :: ([String]) _lhsOdataAlt :: DataAlt _lhsOcataAlt :: Decl _lhsOallTpsFound :: Bool _lhsOdecls :: Decls _lhsOerrors :: (Seq Error) _lhsOsemNames :: ([String]) _visitsOallNts :: (Set NontermIdent) _visitsOallPragmas :: PragmaMap _visitsOaroundMap :: (Set Identifier) _visitsOcontextMap :: ContextMap _visitsOerrors :: (Seq Error) _visitsOinh :: Attributes _visitsOnt :: NontermIdent _visitsOo_case :: Bool _visitsOo_cata :: Bool _visitsOo_costcentre :: Bool _visitsOo_data :: (Maybe Bool) _visitsOo_linePragmas :: Bool _visitsOo_newtypes :: Bool _visitsOo_pretty :: Bool _visitsOo_rename :: Bool _visitsOo_sem :: Bool _visitsOo_sig :: Bool _visitsOo_splitsems :: Bool _visitsOo_strictwrap :: Bool _visitsOo_traces :: Bool _visitsOo_unbox :: Bool _visitsOparamInstMap :: (Map Identifier (NontermIdent, [String])) _visitsOparamMap :: ParamMap _visitsOprefix :: String _visitsOsyn :: Attributes _visitsOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _visitsOwith_sig :: Bool _visitsIallTpsFound :: Bool _visitsIcomments :: ([String]) _visitsIdecls :: Decls _visitsIerrors :: (Seq Error) _visitsIgatherInstVisitNrs :: (Map Identifier Int) _visitsIintra :: Exprs _visitsIintraVars :: (Set String) _visitsIisNil :: Bool _visitsIsemNames :: ([String]) -- "GenerateCode.ag"(line 85, column 19) _visitsOcon = {-# LINE 85 "GenerateCode.ag" #-} con_ {-# LINE 2031 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 86, column 20) _visitsOterminals = {-# LINE 86 "GenerateCode.ag" #-} terminals_ {-# LINE 2036 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 98, column 7) _paramInstMap = {-# LINE 98 "GenerateCode.ag" #-} Map.fromList [(nm, (extractNonterminal tp, tps)) | (nm,tp,_) <- children_, let tps = map cleanupArg $ nontermArgs tp, not (null tps) ] {-# LINE 2041 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 227, column 18) _visitsOnr = {-# LINE 227 "GenerateCode.ag" #-} 0 {-# LINE 2046 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 353, column 18) _visitsOchildren = {-# LINE 353 "GenerateCode.ag" #-} children_ {-# LINE 2051 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 463, column 7) _visitsOinstVisitNrs = {-# LINE 463 "GenerateCode.ag" #-} _visitsIgatherInstVisitNrs {-# LINE 2056 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 483, column 34) _aroundMap = {-# LINE 483 "GenerateCode.ag" #-} Map.findWithDefault Set.empty con_ _lhsIaroundMap {-# LINE 2061 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 778, column 17) _firstOrderChildren = {-# LINE 778 "GenerateCode.ag" #-} filter (\(_,_,ho) -> not ho) children_ {-# LINE 2066 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 779, column 18) _lhsOcomments = {-# LINE 779 "GenerateCode.ag" #-} ("alternative " ++ getName con_ ++ ":") : map ind ( map (\(x,y,_) -> makeLocalComment 14 "child" x (Just y)) _firstOrderChildren ++ _visitsIcomments ) {-# LINE 2074 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 898, column 17) _params = {-# LINE 898 "GenerateCode.ag" #-} map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap {-# LINE 2079 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 899, column 17) _lhsOdataAlt = {-# LINE 899 "GenerateCode.ag" #-} DataAlt (conname _lhsIo_rename _lhsInt con_) (map (\(_,t,_) -> typeToHaskellString (Just _lhsInt) _params t) _firstOrderChildren ) {-# LINE 2084 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 998, column 17) _lhsOcataAlt = {-# LINE 998 "GenerateCode.ag" #-} let lhs = Fun (cataname _lhsIprefix _lhsInt) [lhs_pat] lhs_pat = App (conname _lhsIo_rename _lhsInt con_) (map (\(n,_,_) -> SimpleExpr $ locname $ n) _firstOrderChildren ) rhs = App (semname _lhsIprefix _lhsInt con_) (map argument _firstOrderChildren ) argument (nm,NT tp _,_) = let tp' = maybe tp id (deforestedNt tp) in App (cataname _lhsIprefix tp') [SimpleExpr (locname nm)] argument (nm, _,_) = SimpleExpr (locname nm) in Decl lhs rhs Set.empty Set.empty {-# LINE 2098 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 735, column 39) _lhsOallTpsFound = {-# LINE 735 "GenerateCode.ag" #-} _visitsIallTpsFound {-# LINE 2103 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 810, column 44) _lhsOdecls = {-# LINE 810 "GenerateCode.ag" #-} _visitsIdecls {-# LINE 2108 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} _visitsIerrors {-# LINE 2113 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 1014, column 61) _lhsOsemNames = {-# LINE 1014 "GenerateCode.ag" #-} _visitsIsemNames {-# LINE 2118 "GenerateCode.hs" #-} -- copy rule (down) _visitsOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 2123 "GenerateCode.hs" #-} -- copy rule (down) _visitsOallPragmas = {-# LINE 66 "GenerateCode.ag" #-} _lhsIallPragmas {-# LINE 2128 "GenerateCode.hs" #-} -- copy rule (from local) _visitsOaroundMap = {-# LINE 479 "GenerateCode.ag" #-} _aroundMap {-# LINE 2133 "GenerateCode.hs" #-} -- copy rule (down) _visitsOcontextMap = {-# LINE 108 "GenerateCode.ag" #-} _lhsIcontextMap {-# LINE 2138 "GenerateCode.hs" #-} -- copy rule (down) _visitsOerrors = {-# LINE 748 "GenerateCode.ag" #-} _lhsIerrors {-# LINE 2143 "GenerateCode.hs" #-} -- copy rule (down) _visitsOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 2148 "GenerateCode.hs" #-} -- copy rule (down) _visitsOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 2153 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 2158 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 2163 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 2168 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 2173 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 2178 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 2183 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 2188 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 2193 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 2198 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 2203 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 2208 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 2213 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 2218 "GenerateCode.hs" #-} -- copy rule (down) _visitsOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 2223 "GenerateCode.hs" #-} -- copy rule (from local) _visitsOparamInstMap = {-# LINE 94 "GenerateCode.ag" #-} _paramInstMap {-# LINE 2228 "GenerateCode.hs" #-} -- copy rule (down) _visitsOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 2233 "GenerateCode.hs" #-} -- copy rule (down) _visitsOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 2238 "GenerateCode.hs" #-} -- copy rule (down) _visitsOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 2243 "GenerateCode.hs" #-} -- copy rule (down) _visitsOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 2248 "GenerateCode.hs" #-} -- copy rule (down) _visitsOwith_sig = {-# LINE 738 "GenerateCode.ag" #-} _lhsIwith_sig {-# LINE 2253 "GenerateCode.hs" #-} ( _visitsIallTpsFound,_visitsIcomments,_visitsIdecls,_visitsIerrors,_visitsIgatherInstVisitNrs,_visitsIintra,_visitsIintraVars,_visitsIisNil,_visitsIsemNames) = (visits_ _visitsOallNts _visitsOallPragmas _visitsOaroundMap _visitsOchildren _visitsOcon _visitsOcontextMap _visitsOerrors _visitsOinh _visitsOinstVisitNrs _visitsOnr _visitsOnt _visitsOo_case _visitsOo_cata _visitsOo_costcentre _visitsOo_data _visitsOo_linePragmas _visitsOo_newtypes _visitsOo_pretty _visitsOo_rename _visitsOo_sem _visitsOo_sig _visitsOo_splitsems _visitsOo_strictwrap _visitsOo_traces _visitsOo_unbox _visitsOparamInstMap _visitsOparamMap _visitsOprefix _visitsOsyn _visitsOterminals _visitsOunfoldSemDom _visitsOwith_sig ) in ( _lhsOallTpsFound,_lhsOcataAlt,_lhsOcomments,_lhsOdataAlt,_lhsOdecls,_lhsOerrors,_lhsOsemNames))) ) -- CProductions ------------------------------------------------ {- visit 0: inherited attributes: allNts : Set NontermIdent allPragmas : PragmaMap aroundMap : Map ConstructorIdent (Set Identifier) contextMap : ContextMap inh : Attributes nt : NontermIdent o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramMap : ParamMap prefix : String syn : Attributes unfoldSemDom : NontermIdent -> Int -> [String] -> Code.Type with_sig : Bool chained attribute: errors : Seq Error synthesized attributes: allTpsFound : Bool cataAlts : Decls comments : [String] dataAlts : DataAlts decls : Decls semNames : [String] alternatives: alternative Cons: child hd : CProduction child tl : CProductions alternative Nil: -} -- cata sem_CProductions :: CProductions -> T_CProductions sem_CProductions list = (Prelude.foldr sem_CProductions_Cons sem_CProductions_Nil (Prelude.map sem_CProduction list) ) -- semantic domain newtype T_CProductions = T_CProductions ((Set NontermIdent) -> PragmaMap -> (Map ConstructorIdent (Set Identifier)) -> ContextMap -> (Seq Error) -> Attributes -> NontermIdent -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ParamMap -> String -> Attributes -> (NontermIdent -> Int -> [String] -> Code.Type) -> Bool -> ( Bool,Decls,([String]),DataAlts,Decls,(Seq Error),([String]))) data Inh_CProductions = Inh_CProductions {allNts_Inh_CProductions :: !(Set NontermIdent),allPragmas_Inh_CProductions :: !(PragmaMap),aroundMap_Inh_CProductions :: !(Map ConstructorIdent (Set Identifier)),contextMap_Inh_CProductions :: !(ContextMap),errors_Inh_CProductions :: !(Seq Error),inh_Inh_CProductions :: !(Attributes),nt_Inh_CProductions :: !(NontermIdent),o_case_Inh_CProductions :: !(Bool),o_cata_Inh_CProductions :: !(Bool),o_costcentre_Inh_CProductions :: !(Bool),o_data_Inh_CProductions :: !(Maybe Bool),o_linePragmas_Inh_CProductions :: !(Bool),o_newtypes_Inh_CProductions :: !(Bool),o_pretty_Inh_CProductions :: !(Bool),o_rename_Inh_CProductions :: !(Bool),o_sem_Inh_CProductions :: !(Bool),o_sig_Inh_CProductions :: !(Bool),o_splitsems_Inh_CProductions :: !(Bool),o_strictwrap_Inh_CProductions :: !(Bool),o_traces_Inh_CProductions :: !(Bool),o_unbox_Inh_CProductions :: !(Bool),paramMap_Inh_CProductions :: !(ParamMap),prefix_Inh_CProductions :: !(String),syn_Inh_CProductions :: !(Attributes),unfoldSemDom_Inh_CProductions :: !(NontermIdent -> Int -> [String] -> Code.Type),with_sig_Inh_CProductions :: !(Bool)} data Syn_CProductions = Syn_CProductions {allTpsFound_Syn_CProductions :: !(Bool),cataAlts_Syn_CProductions :: !(Decls),comments_Syn_CProductions :: !([String]),dataAlts_Syn_CProductions :: !(DataAlts),decls_Syn_CProductions :: !(Decls),errors_Syn_CProductions :: !(Seq Error),semNames_Syn_CProductions :: !([String])} wrap_CProductions :: T_CProductions -> Inh_CProductions -> Syn_CProductions wrap_CProductions (T_CProductions sem ) (Inh_CProductions _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIerrors _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig ) = (let ( _lhsOallTpsFound,_lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOerrors,_lhsOsemNames) = (sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIerrors _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig ) in (Syn_CProductions _lhsOallTpsFound _lhsOcataAlts _lhsOcomments _lhsOdataAlts _lhsOdecls _lhsOerrors _lhsOsemNames )) sem_CProductions_Cons :: T_CProduction -> T_CProductions -> T_CProductions sem_CProductions_Cons (T_CProduction hd_ ) (T_CProductions tl_ ) = (T_CProductions (\ _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIerrors _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig -> (let _lhsOdataAlts :: DataAlts _lhsOcataAlts :: Decls _lhsOallTpsFound :: Bool _lhsOcomments :: ([String]) _lhsOdecls :: Decls _lhsOerrors :: (Seq Error) _lhsOsemNames :: ([String]) _hdOallNts :: (Set NontermIdent) _hdOallPragmas :: PragmaMap _hdOaroundMap :: (Map ConstructorIdent (Set Identifier)) _hdOcontextMap :: ContextMap _hdOerrors :: (Seq Error) _hdOinh :: Attributes _hdOnt :: NontermIdent _hdOo_case :: Bool _hdOo_cata :: Bool _hdOo_costcentre :: Bool _hdOo_data :: (Maybe Bool) _hdOo_linePragmas :: Bool _hdOo_newtypes :: Bool _hdOo_pretty :: Bool _hdOo_rename :: Bool _hdOo_sem :: Bool _hdOo_sig :: Bool _hdOo_splitsems :: Bool _hdOo_strictwrap :: Bool _hdOo_traces :: Bool _hdOo_unbox :: Bool _hdOparamMap :: ParamMap _hdOprefix :: String _hdOsyn :: Attributes _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _hdOwith_sig :: Bool _tlOallNts :: (Set NontermIdent) _tlOallPragmas :: PragmaMap _tlOaroundMap :: (Map ConstructorIdent (Set Identifier)) _tlOcontextMap :: ContextMap _tlOerrors :: (Seq Error) _tlOinh :: Attributes _tlOnt :: NontermIdent _tlOo_case :: Bool _tlOo_cata :: Bool _tlOo_costcentre :: Bool _tlOo_data :: (Maybe Bool) _tlOo_linePragmas :: Bool _tlOo_newtypes :: Bool _tlOo_pretty :: Bool _tlOo_rename :: Bool _tlOo_sem :: Bool _tlOo_sig :: Bool _tlOo_splitsems :: Bool _tlOo_strictwrap :: Bool _tlOo_traces :: Bool _tlOo_unbox :: Bool _tlOparamMap :: ParamMap _tlOprefix :: String _tlOsyn :: Attributes _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _tlOwith_sig :: Bool _hdIallTpsFound :: Bool _hdIcataAlt :: Decl _hdIcomments :: ([String]) _hdIdataAlt :: DataAlt _hdIdecls :: Decls _hdIerrors :: (Seq Error) _hdIsemNames :: ([String]) _tlIallTpsFound :: Bool _tlIcataAlts :: Decls _tlIcomments :: ([String]) _tlIdataAlts :: DataAlts _tlIdecls :: Decls _tlIerrors :: (Seq Error) _tlIsemNames :: ([String]) -- "GenerateCode.ag"(line 894, column 17) _lhsOdataAlts = {-# LINE 894 "GenerateCode.ag" #-} _hdIdataAlt : _tlIdataAlts {-# LINE 2450 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 994, column 10) _lhsOcataAlts = {-# LINE 994 "GenerateCode.ag" #-} _hdIcataAlt : _tlIcataAlts {-# LINE 2455 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 735, column 39) _lhsOallTpsFound = {-# LINE 735 "GenerateCode.ag" #-} _hdIallTpsFound && _tlIallTpsFound {-# LINE 2460 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} _hdIcomments ++ _tlIcomments {-# LINE 2465 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 810, column 44) _lhsOdecls = {-# LINE 810 "GenerateCode.ag" #-} _hdIdecls ++ _tlIdecls {-# LINE 2470 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} _hdIerrors Seq.>< _tlIerrors {-# LINE 2475 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 1014, column 61) _lhsOsemNames = {-# LINE 1014 "GenerateCode.ag" #-} _hdIsemNames ++ _tlIsemNames {-# LINE 2480 "GenerateCode.hs" #-} -- copy rule (down) _hdOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 2485 "GenerateCode.hs" #-} -- copy rule (down) _hdOallPragmas = {-# LINE 66 "GenerateCode.ag" #-} _lhsIallPragmas {-# LINE 2490 "GenerateCode.hs" #-} -- copy rule (down) _hdOaroundMap = {-# LINE 477 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 2495 "GenerateCode.hs" #-} -- copy rule (down) _hdOcontextMap = {-# LINE 108 "GenerateCode.ag" #-} _lhsIcontextMap {-# LINE 2500 "GenerateCode.hs" #-} -- copy rule (down) _hdOerrors = {-# LINE 748 "GenerateCode.ag" #-} _lhsIerrors {-# LINE 2505 "GenerateCode.hs" #-} -- copy rule (down) _hdOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 2510 "GenerateCode.hs" #-} -- copy rule (down) _hdOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 2515 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 2520 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 2525 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 2530 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 2535 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 2540 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 2545 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 2550 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 2555 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 2560 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 2565 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 2570 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 2575 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 2580 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 2585 "GenerateCode.hs" #-} -- copy rule (down) _hdOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 2590 "GenerateCode.hs" #-} -- copy rule (down) _hdOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 2595 "GenerateCode.hs" #-} -- copy rule (down) _hdOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 2600 "GenerateCode.hs" #-} -- copy rule (down) _hdOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 2605 "GenerateCode.hs" #-} -- copy rule (down) _hdOwith_sig = {-# LINE 738 "GenerateCode.ag" #-} _lhsIwith_sig {-# LINE 2610 "GenerateCode.hs" #-} -- copy rule (down) _tlOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 2615 "GenerateCode.hs" #-} -- copy rule (down) _tlOallPragmas = {-# LINE 66 "GenerateCode.ag" #-} _lhsIallPragmas {-# LINE 2620 "GenerateCode.hs" #-} -- copy rule (down) _tlOaroundMap = {-# LINE 477 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 2625 "GenerateCode.hs" #-} -- copy rule (down) _tlOcontextMap = {-# LINE 108 "GenerateCode.ag" #-} _lhsIcontextMap {-# LINE 2630 "GenerateCode.hs" #-} -- copy rule (chain) _tlOerrors = {-# LINE 748 "GenerateCode.ag" #-} _hdIerrors {-# LINE 2635 "GenerateCode.hs" #-} -- copy rule (down) _tlOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 2640 "GenerateCode.hs" #-} -- copy rule (down) _tlOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 2645 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 2650 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 2655 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 2660 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 2665 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 2670 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 2675 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 2680 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 2685 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 2690 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 2695 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 2700 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 2705 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 2710 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 2715 "GenerateCode.hs" #-} -- copy rule (down) _tlOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 2720 "GenerateCode.hs" #-} -- copy rule (down) _tlOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 2725 "GenerateCode.hs" #-} -- copy rule (down) _tlOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 2730 "GenerateCode.hs" #-} -- copy rule (down) _tlOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 2735 "GenerateCode.hs" #-} -- copy rule (down) _tlOwith_sig = {-# LINE 738 "GenerateCode.ag" #-} _lhsIwith_sig {-# LINE 2740 "GenerateCode.hs" #-} ( _hdIallTpsFound,_hdIcataAlt,_hdIcomments,_hdIdataAlt,_hdIdecls,_hdIerrors,_hdIsemNames) = (hd_ _hdOallNts _hdOallPragmas _hdOaroundMap _hdOcontextMap _hdOerrors _hdOinh _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOparamMap _hdOprefix _hdOsyn _hdOunfoldSemDom _hdOwith_sig ) ( _tlIallTpsFound,_tlIcataAlts,_tlIcomments,_tlIdataAlts,_tlIdecls,_tlIerrors,_tlIsemNames) = (tl_ _tlOallNts _tlOallPragmas _tlOaroundMap _tlOcontextMap _tlOerrors _tlOinh _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOparamMap _tlOprefix _tlOsyn _tlOunfoldSemDom _tlOwith_sig ) in ( _lhsOallTpsFound,_lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOerrors,_lhsOsemNames))) ) sem_CProductions_Nil :: T_CProductions sem_CProductions_Nil = (T_CProductions (\ _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIerrors _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig -> (let _lhsOdataAlts :: DataAlts _lhsOcataAlts :: Decls _lhsOallTpsFound :: Bool _lhsOcomments :: ([String]) _lhsOdecls :: Decls _lhsOerrors :: (Seq Error) _lhsOsemNames :: ([String]) -- "GenerateCode.ag"(line 895, column 17) _lhsOdataAlts = {-# LINE 895 "GenerateCode.ag" #-} [] {-# LINE 2785 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 995, column 10) _lhsOcataAlts = {-# LINE 995 "GenerateCode.ag" #-} [] {-# LINE 2790 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 735, column 39) _lhsOallTpsFound = {-# LINE 735 "GenerateCode.ag" #-} True {-# LINE 2795 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} [] {-# LINE 2800 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 810, column 44) _lhsOdecls = {-# LINE 810 "GenerateCode.ag" #-} [] {-# LINE 2805 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} Seq.empty {-# LINE 2810 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 1014, column 61) _lhsOsemNames = {-# LINE 1014 "GenerateCode.ag" #-} [] {-# LINE 2815 "GenerateCode.hs" #-} in ( _lhsOallTpsFound,_lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOerrors,_lhsOsemNames))) ) -- CRule ------------------------------------------------------- {- visit 0: inherited attributes: allNts : Set NontermIdent aroundMap : Set Identifier children : [(Identifier,Type,Bool)] con : ConstructorIdent higherOrderChildren : [(Identifier,Type,Bool)] inh : Attributes instVisitNrs : Map Identifier Int nr : Int nt : NontermIdent o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramInstMap : Map Identifier (NontermIdent, [String]) paramMap : ParamMap prefix : String syn : Attributes terminals : [Identifier] unfoldSemDom : NontermIdent -> Int -> [String] -> Code.Type what : String chained attributes: declsAbove : [Decl] errors : Seq Error synthesized attributes: allTpsFound : Bool bldBlocksFun : DeclBlocks -> DeclBlocks comments : [String] decls : Decls definedInsts : [Identifier] exprs : Exprs tSigs : [Decl] tps : [Type] usedVars : Set String alternatives: alternative CChildVisit: child name : {Identifier} child nt : {NontermIdent} child nr : {Int} child inh : {Attributes} child syn : {Attributes} child isLast : {Bool} visit 0: local costCentreDescr : _ local addCostCentre : _ local decls : _ local isSuperfluousHigherOrderIntra : _ local names : _ local mkTp : _ local definedTps : _ local nextTp : _ local orgParams : _ local instParams : _ local replParamMap : _ local replace : _ local evalTp : _ alternative CRule: child name : {Identifier} child isIn : {Bool} child hasCode : {Bool} child nt : {NontermIdent} child con : {ConstructorIdent} child field : {Identifier} child childnt : {Maybe NontermIdent} child tp : {Maybe Type} child pattern : Pattern child rhs : {[String]} child defines : {Map Int (Identifier,Identifier,Maybe Type)} child owrt : {Bool} child origin : {String} child uses : {Set (Identifier, Identifier)} visit 0: local instTypes : _ local originComment : _ local instDecls : _ local patDescr : _ local traceDescr : _ local addTrace : _ local costCentreDescr : _ local addCostCentre : _ local addLinePragma : _ local decls : _ local definedInsts : _ local rulename : _ local mkTp : _ local orgParams : _ local evalTp : _ local _tup3 : {([Type],Bool)} -} -- cata sem_CRule :: CRule -> T_CRule sem_CRule (CChildVisit _name _nt _nr _inh _syn _isLast ) = (sem_CRule_CChildVisit _name _nt _nr _inh _syn _isLast ) sem_CRule (CRule _name _isIn _hasCode _nt _con _field _childnt _tp _pattern _rhs _defines _owrt _origin _uses ) = (sem_CRule_CRule _name _isIn _hasCode _nt _con _field _childnt _tp (sem_Pattern _pattern ) _rhs _defines _owrt _origin _uses ) -- semantic domain newtype T_CRule = T_CRule ((Set NontermIdent) -> (Set Identifier) -> ([(Identifier,Type,Bool)]) -> ConstructorIdent -> ([Decl]) -> (Seq Error) -> ([(Identifier,Type,Bool)]) -> Attributes -> (Map Identifier Int) -> Int -> NontermIdent -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> (Map Identifier (NontermIdent, [String])) -> ParamMap -> String -> Attributes -> ([Identifier]) -> (NontermIdent -> Int -> [String] -> Code.Type) -> String -> ( Bool,(DeclBlocks -> DeclBlocks),([String]),Decls,([Decl]),([Identifier]),(Seq Error),Exprs,([Decl]),([Type]),(Set String))) data Inh_CRule = Inh_CRule {allNts_Inh_CRule :: !(Set NontermIdent),aroundMap_Inh_CRule :: !(Set Identifier),children_Inh_CRule :: !([(Identifier,Type,Bool)]),con_Inh_CRule :: !(ConstructorIdent),declsAbove_Inh_CRule :: !([Decl]),errors_Inh_CRule :: !(Seq Error),higherOrderChildren_Inh_CRule :: !([(Identifier,Type,Bool)]),inh_Inh_CRule :: !(Attributes),instVisitNrs_Inh_CRule :: !(Map Identifier Int),nr_Inh_CRule :: !(Int),nt_Inh_CRule :: !(NontermIdent),o_case_Inh_CRule :: !(Bool),o_cata_Inh_CRule :: !(Bool),o_costcentre_Inh_CRule :: !(Bool),o_data_Inh_CRule :: !(Maybe Bool),o_linePragmas_Inh_CRule :: !(Bool),o_newtypes_Inh_CRule :: !(Bool),o_pretty_Inh_CRule :: !(Bool),o_rename_Inh_CRule :: !(Bool),o_sem_Inh_CRule :: !(Bool),o_sig_Inh_CRule :: !(Bool),o_splitsems_Inh_CRule :: !(Bool),o_strictwrap_Inh_CRule :: !(Bool),o_traces_Inh_CRule :: !(Bool),o_unbox_Inh_CRule :: !(Bool),paramInstMap_Inh_CRule :: !(Map Identifier (NontermIdent, [String])),paramMap_Inh_CRule :: !(ParamMap),prefix_Inh_CRule :: !(String),syn_Inh_CRule :: !(Attributes),terminals_Inh_CRule :: !([Identifier]),unfoldSemDom_Inh_CRule :: !(NontermIdent -> Int -> [String] -> Code.Type),what_Inh_CRule :: !(String)} data Syn_CRule = Syn_CRule {allTpsFound_Syn_CRule :: !(Bool),bldBlocksFun_Syn_CRule :: !(DeclBlocks -> DeclBlocks),comments_Syn_CRule :: !([String]),decls_Syn_CRule :: !(Decls),declsAbove_Syn_CRule :: !([Decl]),definedInsts_Syn_CRule :: !([Identifier]),errors_Syn_CRule :: !(Seq Error),exprs_Syn_CRule :: !(Exprs),tSigs_Syn_CRule :: !([Decl]),tps_Syn_CRule :: !([Type]),usedVars_Syn_CRule :: !(Set String)} wrap_CRule :: T_CRule -> Inh_CRule -> Syn_CRule wrap_CRule (T_CRule sem ) (Inh_CRule _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIerrors _lhsIhigherOrderChildren _lhsIinh _lhsIinstVisitNrs _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwhat ) = (let ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOerrors,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars) = (sem _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIerrors _lhsIhigherOrderChildren _lhsIinh _lhsIinstVisitNrs _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwhat ) in (Syn_CRule _lhsOallTpsFound _lhsObldBlocksFun _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOerrors _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars )) sem_CRule_CChildVisit :: Identifier -> NontermIdent -> Int -> Attributes -> Attributes -> Bool -> T_CRule sem_CRule_CChildVisit name_ nt_ nr_ inh_ syn_ isLast_ = (T_CRule (\ _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIerrors _lhsIhigherOrderChildren _lhsIinh _lhsIinstVisitNrs _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwhat -> (let _lhsOexprs :: Exprs _lhsOusedVars :: (Set String) _lhsOtSigs :: ([Decl]) _lhsOtps :: ([Type]) _lhsOdeclsAbove :: ([Decl]) _lhsObldBlocksFun :: (DeclBlocks -> DeclBlocks) _lhsOallTpsFound :: Bool _lhsOcomments :: ([String]) _lhsOdecls :: Decls _lhsOdefinedInsts :: ([Identifier]) _lhsOerrors :: (Seq Error) -- "GenerateCode.ag"(line 182, column 18) _costCentreDescr = {-# LINE 182 "GenerateCode.ag" #-} show _lhsInt ++ ":" ++ show _lhsIcon ++ ":" ++ show name_ ++ ":" ++ show nt_ ++ ":" ++ show nr_ {-# LINE 3024 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 183, column 18) _addCostCentre = {-# LINE 183 "GenerateCode.ag" #-} \v -> if _lhsIo_costcentre then PragmaExpr True False ("SCC \"" ++ _costCentreDescr ++ "\"") v else v {-# LINE 3031 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 186, column 18) _decls = {-# LINE 186 "GenerateCode.ag" #-} let lhsVars = map (attrname True name_) (Map.keys syn_) ++ if isLast_ then [] else [unwrap ++ funname name_ (nr_+1)] rhsVars = map (attrname False name_) (Map.keys inh_) unwrap = if _lhsIo_newtypes then typeName nt_ (nr_ + 1) ++ " " else "" tuple = mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars rhs = _addCostCentre $ App fun (map SimpleExpr rhsVars) fun | nr_ == 0 && Set.member name_ _lhsIaroundMap = locname name_ ++ "_around " ++ funname name_ 0 | otherwise = funname name_ nr_ in [Decl tuple rhs (Set.fromList lhsVars) (Set.fromList (funname name_ nr_ : rhsVars))] {-# LINE 3045 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 274, column 7) _isSuperfluousHigherOrderIntra = {-# LINE 274 "GenerateCode.ag" #-} _lhsInr <= Map.findWithDefault (-1) name_ _lhsIinstVisitNrs {-# LINE 3050 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 288, column 8) _names = {-# LINE 288 "GenerateCode.ag" #-} if _isSuperfluousHigherOrderIntra then [] else [funname name_ (nr_+1)] {-# LINE 3057 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 292, column 8) _lhsOexprs = {-# LINE 292 "GenerateCode.ag" #-} let wrap = if _lhsIo_newtypes then \x -> App (typeName nt_ (nr_ + 1)) [x] else id addType expr | null _instParams = expr | otherwise = TypedExpr expr (_lhsIunfoldSemDom nt_ (nr_+1) _instParams ) in map (wrap . addType . SimpleExpr) _names {-# LINE 3065 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 304, column 7) _lhsOusedVars = {-# LINE 304 "GenerateCode.ag" #-} Set.fromList _names {-# LINE 3070 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 328, column 19) _mkTp = {-# LINE 328 "GenerateCode.ag" #-} _evalTp . SimpleType . typeToHaskellString (Just nt_) _orgParams {-# LINE 3075 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 329, column 19) _definedTps = {-# LINE 329 "GenerateCode.ag" #-} [ TSig (attrname True name_ a) (_mkTp tp) | (a,tp) <- Map.toList syn_ ] {-# LINE 3080 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 330, column 19) _nextTp = {-# LINE 330 "GenerateCode.ag" #-} typeName nt_ (nr_+1) {-# LINE 3085 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 331, column 19) _lhsOtSigs = {-# LINE 331 "GenerateCode.ag" #-} (if isLast_ then id else (TSig (funname name_ (nr_+1)) (TypeApp (SimpleType _nextTp) (map SimpleType _instParams )) :)) _definedTps {-# LINE 3090 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 333, column 19) _orgParams = {-# LINE 333 "GenerateCode.ag" #-} map getName $ Map.findWithDefault [] nt_ _lhsIparamMap {-# LINE 3095 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 334, column 19) _instParams = {-# LINE 334 "GenerateCode.ag" #-} snd $ Map.findWithDefault (nt_,[]) name_ _lhsIparamInstMap {-# LINE 3100 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 335, column 19) _replParamMap = {-# LINE 335 "GenerateCode.ag" #-} Map.fromList (zip _orgParams _instParams ) {-# LINE 3105 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 336, column 19) _replace = {-# LINE 336 "GenerateCode.ag" #-} \k -> Map.findWithDefault k k _replParamMap {-# LINE 3110 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 337, column 19) _evalTp = {-# LINE 337 "GenerateCode.ag" #-} if null _orgParams then id else evalType _replace {-# LINE 3115 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 360, column 19) _lhsOtps = {-# LINE 360 "GenerateCode.ag" #-} if _isSuperfluousHigherOrderIntra then [] else [NT (ntOfVisit nt_ (nr_+1)) _instParams ] {-# LINE 3122 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 501, column 7) _lhsOdeclsAbove = {-# LINE 501 "GenerateCode.ag" #-} [] {-# LINE 3127 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 514, column 7) _lhsObldBlocksFun = {-# LINE 514 "GenerateCode.ag" #-} DeclBlock _lhsIdeclsAbove (head _decls ) {-# LINE 3132 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 357, column 39) _lhsOallTpsFound = {-# LINE 357 "GenerateCode.ag" #-} True {-# LINE 3137 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} [] {-# LINE 3142 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 138, column 34) _lhsOdecls = {-# LINE 138 "GenerateCode.ag" #-} _decls {-# LINE 3147 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} [] {-# LINE 3152 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} Seq.empty {-# LINE 3157 "GenerateCode.hs" #-} in ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOerrors,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars))) ) sem_CRule_CRule :: Identifier -> Bool -> Bool -> NontermIdent -> ConstructorIdent -> Identifier -> (Maybe NontermIdent) -> (Maybe Type) -> T_Pattern -> ([String]) -> (Map Int (Identifier,Identifier,Maybe Type)) -> Bool -> String -> (Set (Identifier, Identifier)) -> T_CRule sem_CRule_CRule name_ isIn_ hasCode_ nt_ con_ field_ childnt_ tp_ (T_Pattern pattern_ ) rhs_ defines_ owrt_ origin_ uses_ = (T_CRule (\ _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIerrors _lhsIhigherOrderChildren _lhsIinh _lhsIinstVisitNrs _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwhat -> (let _lhsOexprs :: Exprs _lhsOusedVars :: (Set String) _lhsOtSigs :: ([Decl]) __tup3 :: (([Type],Bool)) _lhsOtps :: ([Type]) _lhsOallTpsFound :: Bool _lhsOdeclsAbove :: ([Decl]) _lhsObldBlocksFun :: (DeclBlocks -> DeclBlocks) _lhsOerrors :: (Seq Error) _lhsOcomments :: ([String]) _lhsOdecls :: Decls _lhsOdefinedInsts :: ([Identifier]) _patternIcopy :: Pattern _patternIdefinedInsts :: ([Identifier]) _patternIpatternAttributes :: ([(Identifier, Identifier)]) -- "GenerateCode.ag"(line 140, column 12) _instTypes = {-# LINE 140 "GenerateCode.ag" #-} map (\(n,NT t _,_) -> (n,t)) _lhsIhigherOrderChildren {-# LINE 3226 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 141, column 12) _originComment = {-# LINE 141 "GenerateCode.ag" #-} if _lhsIo_pretty then (Comment origin_:) else id {-# LINE 3233 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 144, column 12) _instDecls = {-# LINE 144 "GenerateCode.ag" #-} [ Decl (Pattern3 (Alias _INST' inst (Underscore (getPos inst)) [])) ( let nm = fromJust $ inst `lookup` _instTypes in unwrapSem _lhsIo_newtypes (maybe nm id (deforestedNt nm)) $ case nm `Set.member` _lhsIallNts of True -> App (cataname _lhsIprefix nm) [SimpleExpr instLocFieldName] False -> SimpleExpr instLocFieldName ) (Set.singleton instSemFieldName) (Set.singleton instLocFieldName) | inst <- _definedInsts , let instLocFieldName = attrname True _INST inst , let instSemFieldName = attrname False _INST' inst ] {-# LINE 3250 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 157, column 12) _patDescr = {-# LINE 157 "GenerateCode.ag" #-} if isIn_ then "_" else concat $ intersperse "," (map (\(f,a) -> show f ++ "." ++ show a) _patternIpatternAttributes) {-# LINE 3257 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 160, column 12) _traceDescr = {-# LINE 160 "GenerateCode.ag" #-} show nt_ ++ " :: " ++ show con_ ++ " :: " ++ _patDescr {-# LINE 3262 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 162, column 12) _addTrace = {-# LINE 162 "GenerateCode.ag" #-} \v -> if _lhsIo_traces then Trace _traceDescr v else v {-# LINE 3269 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 165, column 12) _costCentreDescr = {-# LINE 165 "GenerateCode.ag" #-} show nt_ ++ ":" ++ show con_ ++ ":" ++ _patDescr {-# LINE 3274 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 166, column 12) _addCostCentre = {-# LINE 166 "GenerateCode.ag" #-} \v -> if _lhsIo_costcentre then PragmaExpr True False ("SCC \"" ++ _costCentreDescr ++ "\"") v else v {-# LINE 3281 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 169, column 12) _addLinePragma = {-# LINE 169 "GenerateCode.ag" #-} \v -> let p = getPos name_ hasPos = line p > 0 && column p >= 0 && not (null (file p)) in if _lhsIo_linePragmas && hasPos then PragmaExpr True True ("LINE " ++ show (line p) ++ " " ++ show (file p)) $ LineExpr $ v else v {-# LINE 3292 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 176, column 12) _decls = {-# LINE 176 "GenerateCode.ag" #-} if hasCode_ then _originComment ( Decl (Pattern3 _patternIcopy) (_addTrace $ _addCostCentre $ _addLinePragma $ (TextExpr rhs_)) (Set.fromList [attrname False fld nm | (fld,nm,_) <- Map.elems defines_]) (Set.fromList [attrname True fld nm | (fld,nm) <- Set.toList uses_]) : _instDecls ) else _instDecls {-# LINE 3302 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 213, column 12) _definedInsts = {-# LINE 213 "GenerateCode.ag" #-} if isIn_ then [] else _patternIdefinedInsts {-# LINE 3307 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 283, column 12) _rulename = {-# LINE 283 "GenerateCode.ag" #-} if field_ == _LOC && name_ `elem` _lhsIterminals then funname name_ 0 else attrname isIn_ field_ name_ {-# LINE 3314 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 286, column 12) _lhsOexprs = {-# LINE 286 "GenerateCode.ag" #-} [SimpleExpr _rulename ] {-# LINE 3319 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 302, column 7) _lhsOusedVars = {-# LINE 302 "GenerateCode.ag" #-} Set.singleton _rulename {-# LINE 3324 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 312, column 19) _mkTp = {-# LINE 312 "GenerateCode.ag" #-} SimpleType . typeToHaskellString (Just _lhsInt) _orgParams {-# LINE 3329 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 313, column 19) _lhsOtSigs = {-# LINE 313 "GenerateCode.ag" #-} [ TSig (attrname False field attr) (_evalTp field $ _mkTp (fromJust tp)) | (field,attr,tp) <- Map.elems defines_, isJust tp ] {-# LINE 3335 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 316, column 19) _orgParams = {-# LINE 316 "GenerateCode.ag" #-} map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap {-# LINE 3340 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 317, column 19) _evalTp = {-# LINE 317 "GenerateCode.ag" #-} \field tp -> let orgFldParams = map getName $ Map.findWithDefault [] childNt _lhsIparamMap (childNt,instParams) = Map.findWithDefault (_lhsInt,[]) field _lhsIparamInstMap replMap = Map.fromList (zip orgFldParams instParams) replace k = Map.findWithDefault ('@':k) k replMap in if null instParams then if null _orgParams then tp else idEvalType tp else evalType replace tp {-# LINE 3353 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 359, column 23) __tup3 = {-# LINE 359 "GenerateCode.ag" #-} maybe ([],False) (\tp -> ([substSelf (fromJust childnt_) tp],True)) tp_ {-# LINE 3358 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 359, column 23) (_lhsOtps,_) = {-# LINE 359 "GenerateCode.ag" #-} __tup3 {-# LINE 3363 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 359, column 23) (_,_lhsOallTpsFound) = {-# LINE 359 "GenerateCode.ag" #-} __tup3 {-# LINE 3368 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 499, column 7) _lhsOdeclsAbove = {-# LINE 499 "GenerateCode.ag" #-} _lhsIdeclsAbove ++ _decls {-# LINE 3373 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 512, column 7) _lhsObldBlocksFun = {-# LINE 512 "GenerateCode.ag" #-} id {-# LINE 3378 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 754, column 12) _lhsOerrors = {-# LINE 754 "GenerateCode.ag" #-} let nameOf (Alias _ _ _ pats@(_:_)) = Ident (show (map (\(Alias _ a _ _)->a) pats)) (getPos name_) nameOf _ = name_ in maybe (Seq.singleton (MissingTypeSig _lhsInt _lhsIcon (nameOf _patternIcopy))) (const Seq.empty) tp_ {-# LINE 3385 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 794, column 18) _lhsOcomments = {-# LINE 794 "GenerateCode.ag" #-} [ makeLocalComment 11 _lhsIwhat name tp | (field,name,tp) <- Map.elems defines_, field == _LOC ] ++ [ makeLocalComment 11 "inst " name tp | (field,name,tp) <- Map.elems defines_, field == _INST ] {-# LINE 3391 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 138, column 34) _lhsOdecls = {-# LINE 138 "GenerateCode.ag" #-} _decls {-# LINE 3396 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} _definedInsts {-# LINE 3401 "GenerateCode.hs" #-} ( _patternIcopy,_patternIdefinedInsts,_patternIpatternAttributes) = (pattern_ ) in ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOerrors,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars))) ) -- CSegment ---------------------------------------------------- {- visit 0: inherited attributes: inh : Attributes isLast : Bool nr : Int nt : NontermIdent o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramMap : ParamMap prefix : String syn : Attributes synthesized attributes: comments : [String] semDom : [Decl] semDomUnfoldGath : Map (NontermIdent, Int) ([String], Code.Type) wrapDecls : Decls alternatives: alternative CSegment: child inh : {Attributes} child syn : {Attributes} visit 0: local tp : _ local inhTps : _ local synTps : _ local continuation : _ local params : _ -} -- cata sem_CSegment :: CSegment -> T_CSegment sem_CSegment (CSegment _inh _syn ) = (sem_CSegment_CSegment _inh _syn ) -- semantic domain newtype T_CSegment = T_CSegment (Attributes -> Bool -> Int -> NontermIdent -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ParamMap -> String -> Attributes -> ( ([String]),([Decl]),(Map (NontermIdent, Int) ([String], Code.Type)),Decls)) data Inh_CSegment = Inh_CSegment {inh_Inh_CSegment :: !(Attributes),isLast_Inh_CSegment :: !(Bool),nr_Inh_CSegment :: !(Int),nt_Inh_CSegment :: !(NontermIdent),o_case_Inh_CSegment :: !(Bool),o_cata_Inh_CSegment :: !(Bool),o_costcentre_Inh_CSegment :: !(Bool),o_data_Inh_CSegment :: !(Maybe Bool),o_linePragmas_Inh_CSegment :: !(Bool),o_newtypes_Inh_CSegment :: !(Bool),o_pretty_Inh_CSegment :: !(Bool),o_rename_Inh_CSegment :: !(Bool),o_sem_Inh_CSegment :: !(Bool),o_sig_Inh_CSegment :: !(Bool),o_splitsems_Inh_CSegment :: !(Bool),o_strictwrap_Inh_CSegment :: !(Bool),o_traces_Inh_CSegment :: !(Bool),o_unbox_Inh_CSegment :: !(Bool),paramMap_Inh_CSegment :: !(ParamMap),prefix_Inh_CSegment :: !(String),syn_Inh_CSegment :: !(Attributes)} data Syn_CSegment = Syn_CSegment {comments_Syn_CSegment :: !([String]),semDom_Syn_CSegment :: !([Decl]),semDomUnfoldGath_Syn_CSegment :: !(Map (NontermIdent, Int) ([String], Code.Type)),wrapDecls_Syn_CSegment :: !(Decls)} wrap_CSegment :: T_CSegment -> Inh_CSegment -> Syn_CSegment wrap_CSegment (T_CSegment sem ) (Inh_CSegment _lhsIinh _lhsIisLast _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn ) = (let ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls) = (sem _lhsIinh _lhsIisLast _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn ) in (Syn_CSegment _lhsOcomments _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls )) sem_CSegment_CSegment :: Attributes -> Attributes -> T_CSegment sem_CSegment_CSegment inh_ syn_ = (T_CSegment (\ _lhsIinh _lhsIisLast _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn -> (let _lhsOsemDom :: ([Decl]) _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _lhsOwrapDecls :: Decls _lhsOcomments :: ([String]) -- "GenerateCode.ag"(line 626, column 15) _tp = {-# LINE 626 "GenerateCode.ag" #-} foldr Arr _synTps _inhTps {-# LINE 3516 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 627, column 15) _inhTps = {-# LINE 627 "GenerateCode.ag" #-} [SimpleType (typeToHaskellString (Just _lhsInt) _params tp) | tp <- Map.elems inh_] {-# LINE 3521 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 628, column 15) _synTps = {-# LINE 628 "GenerateCode.ag" #-} mkTupleType _lhsIo_unbox (null _inhTps ) ([SimpleType (typeToHaskellString (Just _lhsInt) _params tp) | tp <- Map.elems syn_] ++ _continuation ) {-# LINE 3526 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 629, column 15) _continuation = {-# LINE 629 "GenerateCode.ag" #-} if _lhsIisLast then [] else [TypeApp (SimpleType (typeName _lhsInt (_lhsInr + 1))) (map (SimpleType . ('@':)) _params )] {-# LINE 3533 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 632, column 15) _params = {-# LINE 632 "GenerateCode.ag" #-} map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap {-# LINE 3538 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 633, column 15) _lhsOsemDom = {-# LINE 633 "GenerateCode.ag" #-} let name = typeName _lhsInt _lhsInr evalTp | null _params = id | otherwise = idEvalType in if _lhsIo_newtypes then [ Code.NewType name _params name (evalTp _tp ) ] else [ Code.Type name _params (evalTp _tp ) ] {-# LINE 3548 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 644, column 7) _lhsOsemDomUnfoldGath = {-# LINE 644 "GenerateCode.ag" #-} Map.singleton (_lhsInt, _lhsInr) (_params , _tp ) {-# LINE 3553 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 718, column 15) _lhsOwrapDecls = {-# LINE 718 "GenerateCode.ag" #-} let lhsVars = map (lhsname False) (Map.keys syn_) ++ if _lhsIisLast then [] else [unwrap ++ sem (_lhsInr+1)] rhsVars = map (lhsname True) (Map.keys inh_) rhs = map SimpleExpr rhsVars unwrap = if _lhsIo_newtypes then typeName _lhsInt (_lhsInr + 1) ++ " " else "" var = "sem" sem 0 = var sem n = var ++ "_" ++ show n in [ Decl (mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars) (App (sem _lhsInr) rhs) (Set.fromList lhsVars) (Set.fromList rhsVars) ] {-# LINE 3566 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 772, column 18) _lhsOcomments = {-# LINE 772 "GenerateCode.ag" #-} let body = map ind (showsSegment (CSegment inh_ syn_)) in if null body then [] else ("visit " ++ show _lhsInr ++ ":") : body {-# LINE 3574 "GenerateCode.hs" #-} in ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))) ) -- CSegments --------------------------------------------------- {- visit 0: inherited attributes: inh : Attributes nr : Int nt : NontermIdent o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramMap : ParamMap prefix : String syn : Attributes synthesized attributes: comments : [String] isNil : Bool semDom : [Decl] semDomUnfoldGath : Map (NontermIdent, Int) ([String], Code.Type) wrapDecls : Decls alternatives: alternative Cons: child hd : CSegment child tl : CSegments alternative Nil: -} -- cata sem_CSegments :: CSegments -> T_CSegments sem_CSegments list = (Prelude.foldr sem_CSegments_Cons sem_CSegments_Nil (Prelude.map sem_CSegment list) ) -- semantic domain newtype T_CSegments = T_CSegments (Attributes -> Int -> NontermIdent -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ParamMap -> String -> Attributes -> ( ([String]),Bool,([Decl]),(Map (NontermIdent, Int) ([String], Code.Type)),Decls)) data Inh_CSegments = Inh_CSegments {inh_Inh_CSegments :: !(Attributes),nr_Inh_CSegments :: !(Int),nt_Inh_CSegments :: !(NontermIdent),o_case_Inh_CSegments :: !(Bool),o_cata_Inh_CSegments :: !(Bool),o_costcentre_Inh_CSegments :: !(Bool),o_data_Inh_CSegments :: !(Maybe Bool),o_linePragmas_Inh_CSegments :: !(Bool),o_newtypes_Inh_CSegments :: !(Bool),o_pretty_Inh_CSegments :: !(Bool),o_rename_Inh_CSegments :: !(Bool),o_sem_Inh_CSegments :: !(Bool),o_sig_Inh_CSegments :: !(Bool),o_splitsems_Inh_CSegments :: !(Bool),o_strictwrap_Inh_CSegments :: !(Bool),o_traces_Inh_CSegments :: !(Bool),o_unbox_Inh_CSegments :: !(Bool),paramMap_Inh_CSegments :: !(ParamMap),prefix_Inh_CSegments :: !(String),syn_Inh_CSegments :: !(Attributes)} data Syn_CSegments = Syn_CSegments {comments_Syn_CSegments :: !([String]),isNil_Syn_CSegments :: !(Bool),semDom_Syn_CSegments :: !([Decl]),semDomUnfoldGath_Syn_CSegments :: !(Map (NontermIdent, Int) ([String], Code.Type)),wrapDecls_Syn_CSegments :: !(Decls)} wrap_CSegments :: T_CSegments -> Inh_CSegments -> Syn_CSegments wrap_CSegments (T_CSegments sem ) (Inh_CSegments _lhsIinh _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn ) = (let ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls) = (sem _lhsIinh _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn ) in (Syn_CSegments _lhsOcomments _lhsOisNil _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls )) sem_CSegments_Cons :: T_CSegment -> T_CSegments -> T_CSegments sem_CSegments_Cons (T_CSegment hd_ ) (T_CSegments tl_ ) = (T_CSegments (\ _lhsIinh _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn -> (let _tlOnr :: Int _lhsOisNil :: Bool _hdOisLast :: Bool _lhsOcomments :: ([String]) _lhsOsemDom :: ([Decl]) _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _lhsOwrapDecls :: Decls _hdOinh :: Attributes _hdOnr :: Int _hdOnt :: NontermIdent _hdOo_case :: Bool _hdOo_cata :: Bool _hdOo_costcentre :: Bool _hdOo_data :: (Maybe Bool) _hdOo_linePragmas :: Bool _hdOo_newtypes :: Bool _hdOo_pretty :: Bool _hdOo_rename :: Bool _hdOo_sem :: Bool _hdOo_sig :: Bool _hdOo_splitsems :: Bool _hdOo_strictwrap :: Bool _hdOo_traces :: Bool _hdOo_unbox :: Bool _hdOparamMap :: ParamMap _hdOprefix :: String _hdOsyn :: Attributes _tlOinh :: Attributes _tlOnt :: NontermIdent _tlOo_case :: Bool _tlOo_cata :: Bool _tlOo_costcentre :: Bool _tlOo_data :: (Maybe Bool) _tlOo_linePragmas :: Bool _tlOo_newtypes :: Bool _tlOo_pretty :: Bool _tlOo_rename :: Bool _tlOo_sem :: Bool _tlOo_sig :: Bool _tlOo_splitsems :: Bool _tlOo_strictwrap :: Bool _tlOo_traces :: Bool _tlOo_unbox :: Bool _tlOparamMap :: ParamMap _tlOprefix :: String _tlOsyn :: Attributes _hdIcomments :: ([String]) _hdIsemDom :: ([Decl]) _hdIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _hdIwrapDecls :: Decls _tlIcomments :: ([String]) _tlIisNil :: Bool _tlIsemDom :: ([Decl]) _tlIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _tlIwrapDecls :: Decls -- "GenerateCode.ag"(line 233, column 11) _tlOnr = {-# LINE 233 "GenerateCode.ag" #-} _lhsInr + 1 {-# LINE 3731 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 246, column 12) _lhsOisNil = {-# LINE 246 "GenerateCode.ag" #-} False {-# LINE 3736 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 247, column 12) _hdOisLast = {-# LINE 247 "GenerateCode.ag" #-} _tlIisNil {-# LINE 3741 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} _hdIcomments ++ _tlIcomments {-# LINE 3746 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 621, column 50) _lhsOsemDom = {-# LINE 621 "GenerateCode.ag" #-} _hdIsemDom ++ _tlIsemDom {-# LINE 3751 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 640, column 86) _lhsOsemDomUnfoldGath = {-# LINE 640 "GenerateCode.ag" #-} _hdIsemDomUnfoldGath `Map.union` _tlIsemDomUnfoldGath {-# LINE 3756 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 716, column 52) _lhsOwrapDecls = {-# LINE 716 "GenerateCode.ag" #-} _hdIwrapDecls ++ _tlIwrapDecls {-# LINE 3761 "GenerateCode.hs" #-} -- copy rule (down) _hdOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 3766 "GenerateCode.hs" #-} -- copy rule (down) _hdOnr = {-# LINE 225 "GenerateCode.ag" #-} _lhsInr {-# LINE 3771 "GenerateCode.hs" #-} -- copy rule (down) _hdOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 3776 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 3781 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 3786 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 3791 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 3796 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 3801 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 3806 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 3811 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 3816 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 3821 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 3826 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 3831 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 3836 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 3841 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 3846 "GenerateCode.hs" #-} -- copy rule (down) _hdOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 3851 "GenerateCode.hs" #-} -- copy rule (down) _hdOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 3856 "GenerateCode.hs" #-} -- copy rule (down) _hdOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 3861 "GenerateCode.hs" #-} -- copy rule (down) _tlOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 3866 "GenerateCode.hs" #-} -- copy rule (down) _tlOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 3871 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 3876 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 3881 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 3886 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 3891 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 3896 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 3901 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 3906 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 3911 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 3916 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 3921 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 3926 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 3931 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 3936 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 3941 "GenerateCode.hs" #-} -- copy rule (down) _tlOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 3946 "GenerateCode.hs" #-} -- copy rule (down) _tlOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 3951 "GenerateCode.hs" #-} -- copy rule (down) _tlOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 3956 "GenerateCode.hs" #-} ( _hdIcomments,_hdIsemDom,_hdIsemDomUnfoldGath,_hdIwrapDecls) = (hd_ _hdOinh _hdOisLast _hdOnr _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOparamMap _hdOprefix _hdOsyn ) ( _tlIcomments,_tlIisNil,_tlIsemDom,_tlIsemDomUnfoldGath,_tlIwrapDecls) = (tl_ _tlOinh _tlOnr _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOparamMap _tlOprefix _tlOsyn ) in ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))) ) sem_CSegments_Nil :: T_CSegments sem_CSegments_Nil = (T_CSegments (\ _lhsIinh _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamMap _lhsIprefix _lhsIsyn -> (let _lhsOisNil :: Bool _lhsOcomments :: ([String]) _lhsOsemDom :: ([Decl]) _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type)) _lhsOwrapDecls :: Decls -- "GenerateCode.ag"(line 248, column 10) _lhsOisNil = {-# LINE 248 "GenerateCode.ag" #-} True {-# LINE 3993 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} [] {-# LINE 3998 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 621, column 50) _lhsOsemDom = {-# LINE 621 "GenerateCode.ag" #-} [] {-# LINE 4003 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 640, column 86) _lhsOsemDomUnfoldGath = {-# LINE 640 "GenerateCode.ag" #-} Map.empty {-# LINE 4008 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 716, column 52) _lhsOwrapDecls = {-# LINE 716 "GenerateCode.ag" #-} [] {-# LINE 4013 "GenerateCode.hs" #-} in ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))) ) -- CVisit ------------------------------------------------------ {- visit 0: inherited attributes: allNts : Set NontermIdent allPragmas : PragmaMap aroundMap : Set Identifier children : [(Identifier,Type,Bool)] con : ConstructorIdent contextMap : ContextMap inh : Attributes instVisitNrs : Map Identifier Int isLast : Bool nextIntra : Exprs nextIntraVars : Set String nr : Int nt : NontermIdent o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramInstMap : Map Identifier (NontermIdent, [String]) paramMap : ParamMap prefix : String syn : Attributes terminals : [Identifier] unfoldSemDom : NontermIdent -> Int -> [String] -> Code.Type with_sig : Bool chained attribute: errors : Seq Error synthesized attributes: allTpsFound : Bool comments : [String] decls : Decls gatherInstVisitNrs : Map Identifier Int intra : Exprs intraVars : Set String semNames : [String] alternatives: alternative CVisit: child inh : {Attributes} child syn : {Attributes} child vss : Sequence child intra : Sequence child ordered : {Bool} visit 0: local _tup4 : _ local higherOrderChildren : _ local firstOrderChildren : _ local funcname : _ local nextVisitName : _ local nextVisitDecl : _ local decls : _ local lastExprVars : _ local _tup5 : _ local blockFunDecls : _ local blockFirstFunCall : _ local costCentreDescr : _ local addCostCentre : _ local params : _ local semFun : _ local tsig : _ local semType : _ local typeSigs : _ local o_case : _ local o_splitsems : _ -} -- cata sem_CVisit :: CVisit -> T_CVisit sem_CVisit (CVisit _inh _syn _vss _intra _ordered ) = (sem_CVisit_CVisit _inh _syn (sem_Sequence _vss ) (sem_Sequence _intra ) _ordered ) -- semantic domain newtype T_CVisit = T_CVisit ((Set NontermIdent) -> PragmaMap -> (Set Identifier) -> ([(Identifier,Type,Bool)]) -> ConstructorIdent -> ContextMap -> (Seq Error) -> Attributes -> (Map Identifier Int) -> Bool -> Exprs -> (Set String) -> Int -> NontermIdent -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> (Map Identifier (NontermIdent, [String])) -> ParamMap -> String -> Attributes -> ([Identifier]) -> (NontermIdent -> Int -> [String] -> Code.Type) -> Bool -> ( Bool,([String]),Decls,(Seq Error),(Map Identifier Int),Exprs,(Set String),([String]))) data Inh_CVisit = Inh_CVisit {allNts_Inh_CVisit :: !(Set NontermIdent),allPragmas_Inh_CVisit :: !(PragmaMap),aroundMap_Inh_CVisit :: !(Set Identifier),children_Inh_CVisit :: !([(Identifier,Type,Bool)]),con_Inh_CVisit :: !(ConstructorIdent),contextMap_Inh_CVisit :: !(ContextMap),errors_Inh_CVisit :: !(Seq Error),inh_Inh_CVisit :: !(Attributes),instVisitNrs_Inh_CVisit :: !(Map Identifier Int),isLast_Inh_CVisit :: !(Bool),nextIntra_Inh_CVisit :: !(Exprs),nextIntraVars_Inh_CVisit :: !(Set String),nr_Inh_CVisit :: !(Int),nt_Inh_CVisit :: !(NontermIdent),o_case_Inh_CVisit :: !(Bool),o_cata_Inh_CVisit :: !(Bool),o_costcentre_Inh_CVisit :: !(Bool),o_data_Inh_CVisit :: !(Maybe Bool),o_linePragmas_Inh_CVisit :: !(Bool),o_newtypes_Inh_CVisit :: !(Bool),o_pretty_Inh_CVisit :: !(Bool),o_rename_Inh_CVisit :: !(Bool),o_sem_Inh_CVisit :: !(Bool),o_sig_Inh_CVisit :: !(Bool),o_splitsems_Inh_CVisit :: !(Bool),o_strictwrap_Inh_CVisit :: !(Bool),o_traces_Inh_CVisit :: !(Bool),o_unbox_Inh_CVisit :: !(Bool),paramInstMap_Inh_CVisit :: !(Map Identifier (NontermIdent, [String])),paramMap_Inh_CVisit :: !(ParamMap),prefix_Inh_CVisit :: !(String),syn_Inh_CVisit :: !(Attributes),terminals_Inh_CVisit :: !([Identifier]),unfoldSemDom_Inh_CVisit :: !(NontermIdent -> Int -> [String] -> Code.Type),with_sig_Inh_CVisit :: !(Bool)} data Syn_CVisit = Syn_CVisit {allTpsFound_Syn_CVisit :: !(Bool),comments_Syn_CVisit :: !([String]),decls_Syn_CVisit :: !(Decls),errors_Syn_CVisit :: !(Seq Error),gatherInstVisitNrs_Syn_CVisit :: !(Map Identifier Int),intra_Syn_CVisit :: !(Exprs),intraVars_Syn_CVisit :: !(Set String),semNames_Syn_CVisit :: !([String])} wrap_CVisit :: T_CVisit -> Inh_CVisit -> Syn_CVisit wrap_CVisit (T_CVisit sem ) (Inh_CVisit _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIerrors _lhsIinh _lhsIinstVisitNrs _lhsIisLast _lhsInextIntra _lhsInextIntraVars _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwith_sig ) = (let ( _lhsOallTpsFound,_lhsOcomments,_lhsOdecls,_lhsOerrors,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOsemNames) = (sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIerrors _lhsIinh _lhsIinstVisitNrs _lhsIisLast _lhsInextIntra _lhsInextIntraVars _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwith_sig ) in (Syn_CVisit _lhsOallTpsFound _lhsOcomments _lhsOdecls _lhsOerrors _lhsOgatherInstVisitNrs _lhsOintra _lhsOintraVars _lhsOsemNames )) sem_CVisit_CVisit :: Attributes -> Attributes -> T_Sequence -> T_Sequence -> Bool -> T_CVisit sem_CVisit_CVisit inh_ syn_ (T_Sequence vss_ ) (T_Sequence intra_ ) ordered_ = (T_CVisit (\ _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIerrors _lhsIinh _lhsIinstVisitNrs _lhsIisLast _lhsInextIntra _lhsInextIntraVars _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwith_sig -> (let _lhsOintra :: Exprs _lhsOintraVars :: (Set String) _vssOlastExpr :: Expr _intraOlastExpr :: Expr _lhsOdecls :: Decls _lhsOgatherInstVisitNrs :: (Map Identifier Int) _vssOdeclsAbove :: ([Decl]) _intraOdeclsAbove :: ([Decl]) _lhsOallTpsFound :: Bool _lhsOerrors :: (Seq Error) _lhsOcomments :: ([String]) _vssOwhat :: String _intraOwhat :: String _lhsOsemNames :: ([String]) _vssOallNts :: (Set NontermIdent) _vssOaroundMap :: (Set Identifier) _vssOchildren :: ([(Identifier,Type,Bool)]) _vssOcon :: ConstructorIdent _vssOerrors :: (Seq Error) _vssOhigherOrderChildren :: ([(Identifier,Type,Bool)]) _vssOinh :: Attributes _vssOinstVisitNrs :: (Map Identifier Int) _vssOnr :: Int _vssOnt :: NontermIdent _vssOo_case :: Bool _vssOo_cata :: Bool _vssOo_costcentre :: Bool _vssOo_data :: (Maybe Bool) _vssOo_linePragmas :: Bool _vssOo_newtypes :: Bool _vssOo_pretty :: Bool _vssOo_rename :: Bool _vssOo_sem :: Bool _vssOo_sig :: Bool _vssOo_splitsems :: Bool _vssOo_strictwrap :: Bool _vssOo_traces :: Bool _vssOo_unbox :: Bool _vssOparamInstMap :: (Map Identifier (NontermIdent, [String])) _vssOparamMap :: ParamMap _vssOprefix :: String _vssOsyn :: Attributes _vssOterminals :: ([Identifier]) _vssOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _intraOallNts :: (Set NontermIdent) _intraOaroundMap :: (Set Identifier) _intraOchildren :: ([(Identifier,Type,Bool)]) _intraOcon :: ConstructorIdent _intraOerrors :: (Seq Error) _intraOhigherOrderChildren :: ([(Identifier,Type,Bool)]) _intraOinh :: Attributes _intraOinstVisitNrs :: (Map Identifier Int) _intraOnr :: Int _intraOnt :: NontermIdent _intraOo_case :: Bool _intraOo_cata :: Bool _intraOo_costcentre :: Bool _intraOo_data :: (Maybe Bool) _intraOo_linePragmas :: Bool _intraOo_newtypes :: Bool _intraOo_pretty :: Bool _intraOo_rename :: Bool _intraOo_sem :: Bool _intraOo_sig :: Bool _intraOo_splitsems :: Bool _intraOo_strictwrap :: Bool _intraOo_traces :: Bool _intraOo_unbox :: Bool _intraOparamInstMap :: (Map Identifier (NontermIdent, [String])) _intraOparamMap :: ParamMap _intraOprefix :: String _intraOsyn :: Attributes _intraOterminals :: ([Identifier]) _intraOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _vssIallTpsFound :: Bool _vssIblockDecls :: DeclBlocks _vssIcomments :: ([String]) _vssIdecls :: Decls _vssIdeclsAbove :: ([Decl]) _vssIdefinedInsts :: ([Identifier]) _vssIerrors :: (Seq Error) _vssIexprs :: Exprs _vssItSigs :: ([Decl]) _vssItps :: ([Type]) _vssIusedVars :: (Set String) _intraIallTpsFound :: Bool _intraIblockDecls :: DeclBlocks _intraIcomments :: ([String]) _intraIdecls :: Decls _intraIdeclsAbove :: ([Decl]) _intraIdefinedInsts :: ([Identifier]) _intraIerrors :: (Seq Error) _intraIexprs :: Exprs _intraItSigs :: ([Decl]) _intraItps :: ([Type]) _intraIusedVars :: (Set String) -- "GenerateCode.ag"(line 257, column 13) _lhsOintra = {-# LINE 257 "GenerateCode.ag" #-} _intraIexprs {-# LINE 4285 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 258, column 13) _lhsOintraVars = {-# LINE 258 "GenerateCode.ag" #-} _intraIusedVars {-# LINE 4290 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 370, column 13) __tup4 = {-# LINE 370 "GenerateCode.ag" #-} partition (\(_,_,ho) -> ho) _lhsIchildren {-# LINE 4295 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 370, column 13) (_higherOrderChildren,_) = {-# LINE 370 "GenerateCode.ag" #-} __tup4 {-# LINE 4300 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 370, column 13) (_,_firstOrderChildren) = {-# LINE 370 "GenerateCode.ag" #-} __tup4 {-# LINE 4305 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 371, column 13) _funcname = {-# LINE 371 "GenerateCode.ag" #-} seqSemname _lhsIprefix _lhsInt _lhsIcon _lhsInr {-# LINE 4310 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 372, column 13) _nextVisitName = {-# LINE 372 "GenerateCode.ag" #-} if _lhsIisLast then [] else [visitname _lhsIprefix _lhsInt (_lhsInr+1)] {-# LINE 4315 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 373, column 13) _nextVisitDecl = {-# LINE 373 "GenerateCode.ag" #-} let lhs = TupleLhs _nextVisitName rhs = App fun _lhsInextIntra fun = seqSemname _lhsIprefix _lhsInt _lhsIcon (_lhsInr+1) in if _lhsIisLast then [] else [Decl lhs rhs (Set.fromList _nextVisitName) _lhsInextIntraVars] {-# LINE 4325 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 379, column 13) _decls = {-# LINE 379 "GenerateCode.ag" #-} _typeSigs ++ _vssIdecls ++ _nextVisitDecl {-# LINE 4330 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 380, column 13) _vssOlastExpr = {-# LINE 380 "GenerateCode.ag" #-} mkTupleExpr _lhsIo_unbox (null $ Map.keys inh_) $ map (SimpleExpr . lhsname False) (Map.keys syn_) ++ map SimpleExpr _nextVisitName {-# LINE 4335 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 381, column 13) _intraOlastExpr = {-# LINE 381 "GenerateCode.ag" #-} error "lastExpr: not used here" {-# LINE 4340 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 382, column 13) _lastExprVars = {-# LINE 382 "GenerateCode.ag" #-} map (lhsname False) (Map.keys syn_) ++ _nextVisitName {-# LINE 4345 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 383, column 13) __tup5 = {-# LINE 383 "GenerateCode.ag" #-} mkPartitionedFunction _funcname _o_case _nextVisitDecl _lastExprVars _vssIblockDecls {-# LINE 4350 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 383, column 13) (_blockFunDecls,_) = {-# LINE 383 "GenerateCode.ag" #-} __tup5 {-# LINE 4355 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 383, column 13) (_,_blockFirstFunCall) = {-# LINE 383 "GenerateCode.ag" #-} __tup5 {-# LINE 4360 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 385, column 13) _costCentreDescr = {-# LINE 385 "GenerateCode.ag" #-} "b" ++ ":" ++ show _lhsInt ++ ":" ++ show _lhsIcon ++ ":" ++ show _lhsInr {-# LINE 4365 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 386, column 13) _addCostCentre = {-# LINE 386 "GenerateCode.ag" #-} \v -> if _lhsIo_costcentre then PragmaExpr True False ("SCC \"" ++ _costCentreDescr ++ "\"") v else v {-# LINE 4372 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 390, column 13) _params = {-# LINE 390 "GenerateCode.ag" #-} map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap {-# LINE 4377 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 391, column 13) _semFun = {-# LINE 391 "GenerateCode.ag" #-} let lhs = Fun _funcname lhs_args lhs_args = if _lhsInr == 0 then map field _firstOrderChildren else _intraIexprs field (name,NT tp tps,_) = let unwrap | _lhsIo_newtypes = \x -> App (sdtype tp) [x] | otherwise = id addType expr | null tps = expr | otherwise = TypedExpr expr (_lhsIunfoldSemDom tp 0 tps) in unwrap $ addType $ SimpleExpr $ funname name 0 field (name,tp,_) = let expr = SimpleExpr (funname name 0) in if null _params then expr else TypedExpr expr (idEvalType $ SimpleType (typeToHaskellString (Just _lhsInt) _params tp)) mbEvalTp | null _params = const Nothing | otherwise = Just . idEvalType rhs = wrap . mkLambda [mkLambdaArg (lhsname True nm) (mbEvalTp $ SimpleType $ typeToHaskellString (Just _lhsInt) _params tp) | (nm,tp) <- Map.assocs inh_] $ _addCostCentre $ if ordered_ && _o_splitsems then _blockFirstFunCall else mkLet _o_case _decls . mkTupleExpr _lhsIo_unbox (null $ Map.keys inh_) $ map (SimpleExpr . lhsname False) (Map.keys syn_) ++ map SimpleExpr _nextVisitName wrap = if _lhsIo_newtypes then \x -> App (typeName _lhsInt _lhsInr) [x] else id in Decl lhs rhs Set.empty Set.empty {-# LINE 4406 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 421, column 13) _tsig = {-# LINE 421 "GenerateCode.ag" #-} TSig _funcname _semType {-# LINE 4411 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 422, column 13) _semType = {-# LINE 422 "GenerateCode.ag" #-} let argType (NT tp tps) r | tp /= _SELF = typeAppStrs (sdtype tp) tps `Arr` r | tp == _SELF = error "GenerateCode: found an intra-type with type SELF, which should have been prevented by CRule.tps" argType (Haskell tp) r = SimpleType tp `Arr` r evalTp | null _params = id | otherwise = idEvalType in appContext _lhsIcontextMap _lhsInt $ evalTp $ if _lhsInr == 0 then foldr argType (typeAppStrs (sdtype _lhsInt ) _params ) (map (\(_,t,_) -> t) _firstOrderChildren ) else foldr argType (typeAppStrs (typeName _lhsInt _lhsInr) _params ) _intraItps {-# LINE 4424 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 433, column 13) _lhsOdecls = {-# LINE 433 "GenerateCode.ag" #-} ( if _lhsIwith_sig then [_tsig, _semFun] else [_semFun] ) ++ ( if ordered_ && _o_splitsems then _blockFunDecls else [] ) {-# LINE 4436 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 441, column 13) _typeSigs = {-# LINE 441 "GenerateCode.ag" #-} if _lhsIo_sig && not _o_case then _vssItSigs else [] {-# LINE 4443 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 444, column 13) _o_case = {-# LINE 444 "GenerateCode.ag" #-} _lhsIo_case && ordered_ && not (hasPragma _lhsIallPragmas _lhsInt _lhsIcon _NOCASE) {-# LINE 4448 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 445, column 13) _o_splitsems = {-# LINE 445 "GenerateCode.ag" #-} ordered_ && _lhsIo_splitsems {-# LINE 4453 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 467, column 7) _lhsOgatherInstVisitNrs = {-# LINE 467 "GenerateCode.ag" #-} Map.fromList [(i,_lhsInr) | i <- _vssIdefinedInsts] {-# LINE 4458 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 494, column 7) _vssOdeclsAbove = {-# LINE 494 "GenerateCode.ag" #-} [] {-# LINE 4463 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 495, column 7) _intraOdeclsAbove = {-# LINE 495 "GenerateCode.ag" #-} error "declsAbove: not used here" {-# LINE 4468 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 741, column 13) _lhsOallTpsFound = {-# LINE 741 "GenerateCode.ag" #-} _intraIallTpsFound {-# LINE 4473 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 752, column 13) _lhsOerrors = {-# LINE 752 "GenerateCode.ag" #-} _intraIerrors {-# LINE 4478 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 785, column 18) _lhsOcomments = {-# LINE 785 "GenerateCode.ag" #-} let body = map ind (_vssIcomments ++ _intraIcomments) in if null body then [] else ("visit " ++ show _lhsInr ++ ":") : body {-# LINE 4486 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 789, column 18) _vssOwhat = {-# LINE 789 "GenerateCode.ag" #-} "local" {-# LINE 4491 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 790, column 18) _intraOwhat = {-# LINE 790 "GenerateCode.ag" #-} "intra" {-# LINE 4496 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 1024, column 7) _lhsOsemNames = {-# LINE 1024 "GenerateCode.ag" #-} [_funcname ] {-# LINE 4501 "GenerateCode.hs" #-} -- copy rule (down) _vssOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 4506 "GenerateCode.hs" #-} -- copy rule (down) _vssOaroundMap = {-# LINE 479 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 4511 "GenerateCode.hs" #-} -- copy rule (down) _vssOchildren = {-# LINE 351 "GenerateCode.ag" #-} _lhsIchildren {-# LINE 4516 "GenerateCode.hs" #-} -- copy rule (down) _vssOcon = {-# LINE 82 "GenerateCode.ag" #-} _lhsIcon {-# LINE 4521 "GenerateCode.hs" #-} -- copy rule (down) _vssOerrors = {-# LINE 748 "GenerateCode.ag" #-} _lhsIerrors {-# LINE 4526 "GenerateCode.hs" #-} -- copy rule (from local) _vssOhigherOrderChildren = {-# LINE 206 "GenerateCode.ag" #-} _higherOrderChildren {-# LINE 4531 "GenerateCode.hs" #-} -- copy rule (down) _vssOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 4536 "GenerateCode.hs" #-} -- copy rule (down) _vssOinstVisitNrs = {-# LINE 459 "GenerateCode.ag" #-} _lhsIinstVisitNrs {-# LINE 4541 "GenerateCode.hs" #-} -- copy rule (down) _vssOnr = {-# LINE 225 "GenerateCode.ag" #-} _lhsInr {-# LINE 4546 "GenerateCode.hs" #-} -- copy rule (down) _vssOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 4551 "GenerateCode.hs" #-} -- copy rule (from local) _vssOo_case = {-# LINE 45 "GenerateCode.ag" #-} _o_case {-# LINE 4556 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 4561 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 4566 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 4571 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 4576 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 4581 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 4586 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 4591 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 4596 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 4601 "GenerateCode.hs" #-} -- copy rule (from local) _vssOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _o_splitsems {-# LINE 4606 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 4611 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 4616 "GenerateCode.hs" #-} -- copy rule (down) _vssOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 4621 "GenerateCode.hs" #-} -- copy rule (down) _vssOparamInstMap = {-# LINE 94 "GenerateCode.ag" #-} _lhsIparamInstMap {-# LINE 4626 "GenerateCode.hs" #-} -- copy rule (down) _vssOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 4631 "GenerateCode.hs" #-} -- copy rule (down) _vssOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 4636 "GenerateCode.hs" #-} -- copy rule (down) _vssOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 4641 "GenerateCode.hs" #-} -- copy rule (down) _vssOterminals = {-# LINE 83 "GenerateCode.ag" #-} _lhsIterminals {-# LINE 4646 "GenerateCode.hs" #-} -- copy rule (down) _vssOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 4651 "GenerateCode.hs" #-} -- copy rule (down) _intraOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 4656 "GenerateCode.hs" #-} -- copy rule (down) _intraOaroundMap = {-# LINE 479 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 4661 "GenerateCode.hs" #-} -- copy rule (down) _intraOchildren = {-# LINE 351 "GenerateCode.ag" #-} _lhsIchildren {-# LINE 4666 "GenerateCode.hs" #-} -- copy rule (down) _intraOcon = {-# LINE 82 "GenerateCode.ag" #-} _lhsIcon {-# LINE 4671 "GenerateCode.hs" #-} -- copy rule (chain) _intraOerrors = {-# LINE 748 "GenerateCode.ag" #-} _vssIerrors {-# LINE 4676 "GenerateCode.hs" #-} -- copy rule (from local) _intraOhigherOrderChildren = {-# LINE 206 "GenerateCode.ag" #-} _higherOrderChildren {-# LINE 4681 "GenerateCode.hs" #-} -- copy rule (down) _intraOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 4686 "GenerateCode.hs" #-} -- copy rule (down) _intraOinstVisitNrs = {-# LINE 459 "GenerateCode.ag" #-} _lhsIinstVisitNrs {-# LINE 4691 "GenerateCode.hs" #-} -- copy rule (down) _intraOnr = {-# LINE 225 "GenerateCode.ag" #-} _lhsInr {-# LINE 4696 "GenerateCode.hs" #-} -- copy rule (down) _intraOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 4701 "GenerateCode.hs" #-} -- copy rule (from local) _intraOo_case = {-# LINE 45 "GenerateCode.ag" #-} _o_case {-# LINE 4706 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 4711 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 4716 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 4721 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 4726 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 4731 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 4736 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 4741 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 4746 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 4751 "GenerateCode.hs" #-} -- copy rule (from local) _intraOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _o_splitsems {-# LINE 4756 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 4761 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 4766 "GenerateCode.hs" #-} -- copy rule (down) _intraOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 4771 "GenerateCode.hs" #-} -- copy rule (down) _intraOparamInstMap = {-# LINE 94 "GenerateCode.ag" #-} _lhsIparamInstMap {-# LINE 4776 "GenerateCode.hs" #-} -- copy rule (down) _intraOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 4781 "GenerateCode.hs" #-} -- copy rule (down) _intraOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 4786 "GenerateCode.hs" #-} -- copy rule (down) _intraOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 4791 "GenerateCode.hs" #-} -- copy rule (down) _intraOterminals = {-# LINE 83 "GenerateCode.ag" #-} _lhsIterminals {-# LINE 4796 "GenerateCode.hs" #-} -- copy rule (down) _intraOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 4801 "GenerateCode.hs" #-} ( _vssIallTpsFound,_vssIblockDecls,_vssIcomments,_vssIdecls,_vssIdeclsAbove,_vssIdefinedInsts,_vssIerrors,_vssIexprs,_vssItSigs,_vssItps,_vssIusedVars) = (vss_ _vssOallNts _vssOaroundMap _vssOchildren _vssOcon _vssOdeclsAbove _vssOerrors _vssOhigherOrderChildren _vssOinh _vssOinstVisitNrs _vssOlastExpr _vssOnr _vssOnt _vssOo_case _vssOo_cata _vssOo_costcentre _vssOo_data _vssOo_linePragmas _vssOo_newtypes _vssOo_pretty _vssOo_rename _vssOo_sem _vssOo_sig _vssOo_splitsems _vssOo_strictwrap _vssOo_traces _vssOo_unbox _vssOparamInstMap _vssOparamMap _vssOprefix _vssOsyn _vssOterminals _vssOunfoldSemDom _vssOwhat ) ( _intraIallTpsFound,_intraIblockDecls,_intraIcomments,_intraIdecls,_intraIdeclsAbove,_intraIdefinedInsts,_intraIerrors,_intraIexprs,_intraItSigs,_intraItps,_intraIusedVars) = (intra_ _intraOallNts _intraOaroundMap _intraOchildren _intraOcon _intraOdeclsAbove _intraOerrors _intraOhigherOrderChildren _intraOinh _intraOinstVisitNrs _intraOlastExpr _intraOnr _intraOnt _intraOo_case _intraOo_cata _intraOo_costcentre _intraOo_data _intraOo_linePragmas _intraOo_newtypes _intraOo_pretty _intraOo_rename _intraOo_sem _intraOo_sig _intraOo_splitsems _intraOo_strictwrap _intraOo_traces _intraOo_unbox _intraOparamInstMap _intraOparamMap _intraOprefix _intraOsyn _intraOterminals _intraOunfoldSemDom _intraOwhat ) in ( _lhsOallTpsFound,_lhsOcomments,_lhsOdecls,_lhsOerrors,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOsemNames))) ) -- CVisits ----------------------------------------------------- {- visit 0: inherited attributes: allNts : Set NontermIdent allPragmas : PragmaMap aroundMap : Set Identifier children : [(Identifier,Type,Bool)] con : ConstructorIdent contextMap : ContextMap inh : Attributes instVisitNrs : Map Identifier Int nr : Int nt : NontermIdent o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramInstMap : Map Identifier (NontermIdent, [String]) paramMap : ParamMap prefix : String syn : Attributes terminals : [Identifier] unfoldSemDom : NontermIdent -> Int -> [String] -> Code.Type with_sig : Bool chained attribute: errors : Seq Error synthesized attributes: allTpsFound : Bool comments : [String] decls : Decls gatherInstVisitNrs : Map Identifier Int intra : Exprs intraVars : Set String isNil : Bool semNames : [String] alternatives: alternative Cons: child hd : CVisit child tl : CVisits alternative Nil: -} -- cata sem_CVisits :: CVisits -> T_CVisits sem_CVisits list = (Prelude.foldr sem_CVisits_Cons sem_CVisits_Nil (Prelude.map sem_CVisit list) ) -- semantic domain newtype T_CVisits = T_CVisits ((Set NontermIdent) -> PragmaMap -> (Set Identifier) -> ([(Identifier,Type,Bool)]) -> ConstructorIdent -> ContextMap -> (Seq Error) -> Attributes -> (Map Identifier Int) -> Int -> NontermIdent -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> (Map Identifier (NontermIdent, [String])) -> ParamMap -> String -> Attributes -> ([Identifier]) -> (NontermIdent -> Int -> [String] -> Code.Type) -> Bool -> ( Bool,([String]),Decls,(Seq Error),(Map Identifier Int),Exprs,(Set String),Bool,([String]))) data Inh_CVisits = Inh_CVisits {allNts_Inh_CVisits :: !(Set NontermIdent),allPragmas_Inh_CVisits :: !(PragmaMap),aroundMap_Inh_CVisits :: !(Set Identifier),children_Inh_CVisits :: !([(Identifier,Type,Bool)]),con_Inh_CVisits :: !(ConstructorIdent),contextMap_Inh_CVisits :: !(ContextMap),errors_Inh_CVisits :: !(Seq Error),inh_Inh_CVisits :: !(Attributes),instVisitNrs_Inh_CVisits :: !(Map Identifier Int),nr_Inh_CVisits :: !(Int),nt_Inh_CVisits :: !(NontermIdent),o_case_Inh_CVisits :: !(Bool),o_cata_Inh_CVisits :: !(Bool),o_costcentre_Inh_CVisits :: !(Bool),o_data_Inh_CVisits :: !(Maybe Bool),o_linePragmas_Inh_CVisits :: !(Bool),o_newtypes_Inh_CVisits :: !(Bool),o_pretty_Inh_CVisits :: !(Bool),o_rename_Inh_CVisits :: !(Bool),o_sem_Inh_CVisits :: !(Bool),o_sig_Inh_CVisits :: !(Bool),o_splitsems_Inh_CVisits :: !(Bool),o_strictwrap_Inh_CVisits :: !(Bool),o_traces_Inh_CVisits :: !(Bool),o_unbox_Inh_CVisits :: !(Bool),paramInstMap_Inh_CVisits :: !(Map Identifier (NontermIdent, [String])),paramMap_Inh_CVisits :: !(ParamMap),prefix_Inh_CVisits :: !(String),syn_Inh_CVisits :: !(Attributes),terminals_Inh_CVisits :: !([Identifier]),unfoldSemDom_Inh_CVisits :: !(NontermIdent -> Int -> [String] -> Code.Type),with_sig_Inh_CVisits :: !(Bool)} data Syn_CVisits = Syn_CVisits {allTpsFound_Syn_CVisits :: !(Bool),comments_Syn_CVisits :: !([String]),decls_Syn_CVisits :: !(Decls),errors_Syn_CVisits :: !(Seq Error),gatherInstVisitNrs_Syn_CVisits :: !(Map Identifier Int),intra_Syn_CVisits :: !(Exprs),intraVars_Syn_CVisits :: !(Set String),isNil_Syn_CVisits :: !(Bool),semNames_Syn_CVisits :: !([String])} wrap_CVisits :: T_CVisits -> Inh_CVisits -> Syn_CVisits wrap_CVisits (T_CVisits sem ) (Inh_CVisits _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIerrors _lhsIinh _lhsIinstVisitNrs _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwith_sig ) = (let ( _lhsOallTpsFound,_lhsOcomments,_lhsOdecls,_lhsOerrors,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames) = (sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIerrors _lhsIinh _lhsIinstVisitNrs _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwith_sig ) in (Syn_CVisits _lhsOallTpsFound _lhsOcomments _lhsOdecls _lhsOerrors _lhsOgatherInstVisitNrs _lhsOintra _lhsOintraVars _lhsOisNil _lhsOsemNames )) sem_CVisits_Cons :: T_CVisit -> T_CVisits -> T_CVisits sem_CVisits_Cons (T_CVisit hd_ ) (T_CVisits tl_ ) = (T_CVisits (\ _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIerrors _lhsIinh _lhsIinstVisitNrs _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwith_sig -> (let _tlOnr :: Int _lhsOisNil :: Bool _hdOisLast :: Bool _hdOnextIntra :: Exprs _hdOnextIntraVars :: (Set String) _lhsOintra :: Exprs _lhsOintraVars :: (Set String) _lhsOallTpsFound :: Bool _lhsOcomments :: ([String]) _lhsOdecls :: Decls _lhsOerrors :: (Seq Error) _lhsOgatherInstVisitNrs :: (Map Identifier Int) _lhsOsemNames :: ([String]) _hdOallNts :: (Set NontermIdent) _hdOallPragmas :: PragmaMap _hdOaroundMap :: (Set Identifier) _hdOchildren :: ([(Identifier,Type,Bool)]) _hdOcon :: ConstructorIdent _hdOcontextMap :: ContextMap _hdOerrors :: (Seq Error) _hdOinh :: Attributes _hdOinstVisitNrs :: (Map Identifier Int) _hdOnr :: Int _hdOnt :: NontermIdent _hdOo_case :: Bool _hdOo_cata :: Bool _hdOo_costcentre :: Bool _hdOo_data :: (Maybe Bool) _hdOo_linePragmas :: Bool _hdOo_newtypes :: Bool _hdOo_pretty :: Bool _hdOo_rename :: Bool _hdOo_sem :: Bool _hdOo_sig :: Bool _hdOo_splitsems :: Bool _hdOo_strictwrap :: Bool _hdOo_traces :: Bool _hdOo_unbox :: Bool _hdOparamInstMap :: (Map Identifier (NontermIdent, [String])) _hdOparamMap :: ParamMap _hdOprefix :: String _hdOsyn :: Attributes _hdOterminals :: ([Identifier]) _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _hdOwith_sig :: Bool _tlOallNts :: (Set NontermIdent) _tlOallPragmas :: PragmaMap _tlOaroundMap :: (Set Identifier) _tlOchildren :: ([(Identifier,Type,Bool)]) _tlOcon :: ConstructorIdent _tlOcontextMap :: ContextMap _tlOerrors :: (Seq Error) _tlOinh :: Attributes _tlOinstVisitNrs :: (Map Identifier Int) _tlOnt :: NontermIdent _tlOo_case :: Bool _tlOo_cata :: Bool _tlOo_costcentre :: Bool _tlOo_data :: (Maybe Bool) _tlOo_linePragmas :: Bool _tlOo_newtypes :: Bool _tlOo_pretty :: Bool _tlOo_rename :: Bool _tlOo_sem :: Bool _tlOo_sig :: Bool _tlOo_splitsems :: Bool _tlOo_strictwrap :: Bool _tlOo_traces :: Bool _tlOo_unbox :: Bool _tlOparamInstMap :: (Map Identifier (NontermIdent, [String])) _tlOparamMap :: ParamMap _tlOprefix :: String _tlOsyn :: Attributes _tlOterminals :: ([Identifier]) _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _tlOwith_sig :: Bool _hdIallTpsFound :: Bool _hdIcomments :: ([String]) _hdIdecls :: Decls _hdIerrors :: (Seq Error) _hdIgatherInstVisitNrs :: (Map Identifier Int) _hdIintra :: Exprs _hdIintraVars :: (Set String) _hdIsemNames :: ([String]) _tlIallTpsFound :: Bool _tlIcomments :: ([String]) _tlIdecls :: Decls _tlIerrors :: (Seq Error) _tlIgatherInstVisitNrs :: (Map Identifier Int) _tlIintra :: Exprs _tlIintraVars :: (Set String) _tlIisNil :: Bool _tlIsemNames :: ([String]) -- "GenerateCode.ag"(line 229, column 11) _tlOnr = {-# LINE 229 "GenerateCode.ag" #-} _lhsInr + 1 {-# LINE 5040 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 242, column 12) _lhsOisNil = {-# LINE 242 "GenerateCode.ag" #-} False {-# LINE 5045 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 243, column 12) _hdOisLast = {-# LINE 243 "GenerateCode.ag" #-} _tlIisNil {-# LINE 5050 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 260, column 12) _hdOnextIntra = {-# LINE 260 "GenerateCode.ag" #-} _tlIintra {-# LINE 5055 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 261, column 12) _hdOnextIntraVars = {-# LINE 261 "GenerateCode.ag" #-} _tlIintraVars {-# LINE 5060 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 262, column 12) _lhsOintra = {-# LINE 262 "GenerateCode.ag" #-} _hdIintra {-# LINE 5065 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 263, column 12) _lhsOintraVars = {-# LINE 263 "GenerateCode.ag" #-} _hdIintraVars {-# LINE 5070 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 735, column 39) _lhsOallTpsFound = {-# LINE 735 "GenerateCode.ag" #-} _hdIallTpsFound && _tlIallTpsFound {-# LINE 5075 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} _hdIcomments ++ _tlIcomments {-# LINE 5080 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 368, column 33) _lhsOdecls = {-# LINE 368 "GenerateCode.ag" #-} _hdIdecls ++ _tlIdecls {-# LINE 5085 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} _hdIerrors Seq.>< _tlIerrors {-# LINE 5090 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 460, column 44) _lhsOgatherInstVisitNrs = {-# LINE 460 "GenerateCode.ag" #-} _hdIgatherInstVisitNrs `Map.union` _tlIgatherInstVisitNrs {-# LINE 5095 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 1014, column 61) _lhsOsemNames = {-# LINE 1014 "GenerateCode.ag" #-} _hdIsemNames ++ _tlIsemNames {-# LINE 5100 "GenerateCode.hs" #-} -- copy rule (down) _hdOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 5105 "GenerateCode.hs" #-} -- copy rule (down) _hdOallPragmas = {-# LINE 66 "GenerateCode.ag" #-} _lhsIallPragmas {-# LINE 5110 "GenerateCode.hs" #-} -- copy rule (down) _hdOaroundMap = {-# LINE 479 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 5115 "GenerateCode.hs" #-} -- copy rule (down) _hdOchildren = {-# LINE 351 "GenerateCode.ag" #-} _lhsIchildren {-# LINE 5120 "GenerateCode.hs" #-} -- copy rule (down) _hdOcon = {-# LINE 82 "GenerateCode.ag" #-} _lhsIcon {-# LINE 5125 "GenerateCode.hs" #-} -- copy rule (down) _hdOcontextMap = {-# LINE 108 "GenerateCode.ag" #-} _lhsIcontextMap {-# LINE 5130 "GenerateCode.hs" #-} -- copy rule (down) _hdOerrors = {-# LINE 748 "GenerateCode.ag" #-} _lhsIerrors {-# LINE 5135 "GenerateCode.hs" #-} -- copy rule (down) _hdOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 5140 "GenerateCode.hs" #-} -- copy rule (down) _hdOinstVisitNrs = {-# LINE 459 "GenerateCode.ag" #-} _lhsIinstVisitNrs {-# LINE 5145 "GenerateCode.hs" #-} -- copy rule (down) _hdOnr = {-# LINE 225 "GenerateCode.ag" #-} _lhsInr {-# LINE 5150 "GenerateCode.hs" #-} -- copy rule (down) _hdOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 5155 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 5160 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 5165 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 5170 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 5175 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 5180 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 5185 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 5190 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 5195 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 5200 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 5205 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 5210 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 5215 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 5220 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 5225 "GenerateCode.hs" #-} -- copy rule (down) _hdOparamInstMap = {-# LINE 94 "GenerateCode.ag" #-} _lhsIparamInstMap {-# LINE 5230 "GenerateCode.hs" #-} -- copy rule (down) _hdOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 5235 "GenerateCode.hs" #-} -- copy rule (down) _hdOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 5240 "GenerateCode.hs" #-} -- copy rule (down) _hdOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 5245 "GenerateCode.hs" #-} -- copy rule (down) _hdOterminals = {-# LINE 83 "GenerateCode.ag" #-} _lhsIterminals {-# LINE 5250 "GenerateCode.hs" #-} -- copy rule (down) _hdOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 5255 "GenerateCode.hs" #-} -- copy rule (down) _hdOwith_sig = {-# LINE 738 "GenerateCode.ag" #-} _lhsIwith_sig {-# LINE 5260 "GenerateCode.hs" #-} -- copy rule (down) _tlOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 5265 "GenerateCode.hs" #-} -- copy rule (down) _tlOallPragmas = {-# LINE 66 "GenerateCode.ag" #-} _lhsIallPragmas {-# LINE 5270 "GenerateCode.hs" #-} -- copy rule (down) _tlOaroundMap = {-# LINE 479 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 5275 "GenerateCode.hs" #-} -- copy rule (down) _tlOchildren = {-# LINE 351 "GenerateCode.ag" #-} _lhsIchildren {-# LINE 5280 "GenerateCode.hs" #-} -- copy rule (down) _tlOcon = {-# LINE 82 "GenerateCode.ag" #-} _lhsIcon {-# LINE 5285 "GenerateCode.hs" #-} -- copy rule (down) _tlOcontextMap = {-# LINE 108 "GenerateCode.ag" #-} _lhsIcontextMap {-# LINE 5290 "GenerateCode.hs" #-} -- copy rule (chain) _tlOerrors = {-# LINE 748 "GenerateCode.ag" #-} _hdIerrors {-# LINE 5295 "GenerateCode.hs" #-} -- copy rule (down) _tlOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 5300 "GenerateCode.hs" #-} -- copy rule (down) _tlOinstVisitNrs = {-# LINE 459 "GenerateCode.ag" #-} _lhsIinstVisitNrs {-# LINE 5305 "GenerateCode.hs" #-} -- copy rule (down) _tlOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 5310 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 5315 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 5320 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 5325 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 5330 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 5335 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 5340 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 5345 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 5350 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 5355 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 5360 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 5365 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 5370 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 5375 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 5380 "GenerateCode.hs" #-} -- copy rule (down) _tlOparamInstMap = {-# LINE 94 "GenerateCode.ag" #-} _lhsIparamInstMap {-# LINE 5385 "GenerateCode.hs" #-} -- copy rule (down) _tlOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 5390 "GenerateCode.hs" #-} -- copy rule (down) _tlOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 5395 "GenerateCode.hs" #-} -- copy rule (down) _tlOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 5400 "GenerateCode.hs" #-} -- copy rule (down) _tlOterminals = {-# LINE 83 "GenerateCode.ag" #-} _lhsIterminals {-# LINE 5405 "GenerateCode.hs" #-} -- copy rule (down) _tlOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 5410 "GenerateCode.hs" #-} -- copy rule (down) _tlOwith_sig = {-# LINE 738 "GenerateCode.ag" #-} _lhsIwith_sig {-# LINE 5415 "GenerateCode.hs" #-} ( _hdIallTpsFound,_hdIcomments,_hdIdecls,_hdIerrors,_hdIgatherInstVisitNrs,_hdIintra,_hdIintraVars,_hdIsemNames) = (hd_ _hdOallNts _hdOallPragmas _hdOaroundMap _hdOchildren _hdOcon _hdOcontextMap _hdOerrors _hdOinh _hdOinstVisitNrs _hdOisLast _hdOnextIntra _hdOnextIntraVars _hdOnr _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOparamInstMap _hdOparamMap _hdOprefix _hdOsyn _hdOterminals _hdOunfoldSemDom _hdOwith_sig ) ( _tlIallTpsFound,_tlIcomments,_tlIdecls,_tlIerrors,_tlIgatherInstVisitNrs,_tlIintra,_tlIintraVars,_tlIisNil,_tlIsemNames) = (tl_ _tlOallNts _tlOallPragmas _tlOaroundMap _tlOchildren _tlOcon _tlOcontextMap _tlOerrors _tlOinh _tlOinstVisitNrs _tlOnr _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOparamInstMap _tlOparamMap _tlOprefix _tlOsyn _tlOterminals _tlOunfoldSemDom _tlOwith_sig ) in ( _lhsOallTpsFound,_lhsOcomments,_lhsOdecls,_lhsOerrors,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames))) ) sem_CVisits_Nil :: T_CVisits sem_CVisits_Nil = (T_CVisits (\ _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIerrors _lhsIinh _lhsIinstVisitNrs _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwith_sig -> (let _lhsOisNil :: Bool _lhsOintra :: Exprs _lhsOintraVars :: (Set String) _lhsOallTpsFound :: Bool _lhsOcomments :: ([String]) _lhsOdecls :: Decls _lhsOerrors :: (Seq Error) _lhsOgatherInstVisitNrs :: (Map Identifier Int) _lhsOsemNames :: ([String]) -- "GenerateCode.ag"(line 244, column 10) _lhsOisNil = {-# LINE 244 "GenerateCode.ag" #-} True {-# LINE 5468 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 264, column 10) _lhsOintra = {-# LINE 264 "GenerateCode.ag" #-} [] {-# LINE 5473 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 265, column 10) _lhsOintraVars = {-# LINE 265 "GenerateCode.ag" #-} Set.empty {-# LINE 5478 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 735, column 39) _lhsOallTpsFound = {-# LINE 735 "GenerateCode.ag" #-} True {-# LINE 5483 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} [] {-# LINE 5488 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 368, column 33) _lhsOdecls = {-# LINE 368 "GenerateCode.ag" #-} [] {-# LINE 5493 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} Seq.empty {-# LINE 5498 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 460, column 44) _lhsOgatherInstVisitNrs = {-# LINE 460 "GenerateCode.ag" #-} Map.empty {-# LINE 5503 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 1014, column 61) _lhsOsemNames = {-# LINE 1014 "GenerateCode.ag" #-} [] {-# LINE 5508 "GenerateCode.hs" #-} in ( _lhsOallTpsFound,_lhsOcomments,_lhsOdecls,_lhsOerrors,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames))) ) -- DeclBlocks -------------------------------------------------- {- visit 0: inherited attributes: blockNr : Int lastExprVars : [String] nextVisitDecls : [Decl] optCase : Bool prefix : String synthesized attributes: callExpr : Expr decls : [Decl] freeVars : [String] alternatives: alternative DeclBlock: child defs : {[Decl]} child visit : {Decl} child next : DeclBlocks visit 0: local lambdaName : _ local pragmaDecl : _ local freeVars : _ local decl : _ alternative DeclTerminator: child defs : {[Decl]} child result : {Expr} visit 0: local lambdaName : _ local pragmaDecl : _ local freeVars : _ -} -- cata sem_DeclBlocks :: DeclBlocks -> T_DeclBlocks sem_DeclBlocks (DeclBlock _defs _visit _next ) = (sem_DeclBlocks_DeclBlock _defs _visit (sem_DeclBlocks _next ) ) sem_DeclBlocks (DeclTerminator _defs _result ) = (sem_DeclBlocks_DeclTerminator _defs _result ) -- semantic domain newtype T_DeclBlocks = T_DeclBlocks (Int -> ([String]) -> ([Decl]) -> Bool -> String -> ( Expr,([Decl]),([String]))) data Inh_DeclBlocks = Inh_DeclBlocks {blockNr_Inh_DeclBlocks :: !(Int),lastExprVars_Inh_DeclBlocks :: !([String]),nextVisitDecls_Inh_DeclBlocks :: !([Decl]),optCase_Inh_DeclBlocks :: !(Bool),prefix_Inh_DeclBlocks :: !(String)} data Syn_DeclBlocks = Syn_DeclBlocks {callExpr_Syn_DeclBlocks :: !(Expr),decls_Syn_DeclBlocks :: !([Decl]),freeVars_Syn_DeclBlocks :: !([String])} wrap_DeclBlocks :: T_DeclBlocks -> Inh_DeclBlocks -> Syn_DeclBlocks wrap_DeclBlocks (T_DeclBlocks sem ) (Inh_DeclBlocks _lhsIblockNr _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix ) = (let ( _lhsOcallExpr,_lhsOdecls,_lhsOfreeVars) = (sem _lhsIblockNr _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix ) in (Syn_DeclBlocks _lhsOcallExpr _lhsOdecls _lhsOfreeVars )) sem_DeclBlocks_DeclBlock :: ([Decl]) -> Decl -> T_DeclBlocks -> T_DeclBlocks sem_DeclBlocks_DeclBlock defs_ visit_ (T_DeclBlocks next_ ) = (T_DeclBlocks (\ _lhsIblockNr _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix -> (let _nextOblockNr :: Int _lhsOcallExpr :: Expr _lhsOdecls :: ([Decl]) _lhsOfreeVars :: ([String]) _nextOlastExprVars :: ([String]) _nextOnextVisitDecls :: ([Decl]) _nextOoptCase :: Bool _nextOprefix :: String _nextIcallExpr :: Expr _nextIdecls :: ([Decl]) _nextIfreeVars :: ([String]) -- "GenerateCode.ag"(line 573, column 7) _nextOblockNr = {-# LINE 573 "GenerateCode.ag" #-} _lhsIblockNr + 1 {-# LINE 5589 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 578, column 7) _lambdaName = {-# LINE 578 "GenerateCode.ag" #-} _lhsIprefix ++ "_block" ++ show _lhsIblockNr {-# LINE 5594 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 579, column 7) _pragmaDecl = {-# LINE 579 "GenerateCode.ag" #-} PragmaDecl ("NOINLINE " ++ _lambdaName ) {-# LINE 5599 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 580, column 7) _lhsOcallExpr = {-# LINE 580 "GenerateCode.ag" #-} App _lambdaName (map SimpleExpr _freeVars ) {-# LINE 5604 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 584, column 7) _freeVars = {-# LINE 584 "GenerateCode.ag" #-} freevars _nextIfreeVars (visit_ : defs_) {-# LINE 5609 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 591, column 7) _decl = {-# LINE 591 "GenerateCode.ag" #-} mkBlockLambda _lhsIoptCase _lambdaName _freeVars (defs_ ++ [visit_]) _nextIcallExpr {-# LINE 5614 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 592, column 7) _lhsOdecls = {-# LINE 592 "GenerateCode.ag" #-} (if _lhsIblockNr > 1 then [_pragmaDecl ] else []) ++ [_decl ] ++ _nextIdecls {-# LINE 5619 "GenerateCode.hs" #-} -- copy rule (from local) _lhsOfreeVars = {-# LINE 575 "GenerateCode.ag" #-} _freeVars {-# LINE 5624 "GenerateCode.hs" #-} -- copy rule (down) _nextOlastExprVars = {-# LINE 559 "GenerateCode.ag" #-} _lhsIlastExprVars {-# LINE 5629 "GenerateCode.hs" #-} -- copy rule (down) _nextOnextVisitDecls = {-# LINE 559 "GenerateCode.ag" #-} _lhsInextVisitDecls {-# LINE 5634 "GenerateCode.hs" #-} -- copy rule (down) _nextOoptCase = {-# LINE 559 "GenerateCode.ag" #-} _lhsIoptCase {-# LINE 5639 "GenerateCode.hs" #-} -- copy rule (down) _nextOprefix = {-# LINE 559 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 5644 "GenerateCode.hs" #-} ( _nextIcallExpr,_nextIdecls,_nextIfreeVars) = (next_ _nextOblockNr _nextOlastExprVars _nextOnextVisitDecls _nextOoptCase _nextOprefix ) in ( _lhsOcallExpr,_lhsOdecls,_lhsOfreeVars))) ) sem_DeclBlocks_DeclTerminator :: ([Decl]) -> Expr -> T_DeclBlocks sem_DeclBlocks_DeclTerminator defs_ result_ = (T_DeclBlocks (\ _lhsIblockNr _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix -> (let _lhsOcallExpr :: Expr _lhsOdecls :: ([Decl]) _lhsOfreeVars :: ([String]) -- "GenerateCode.ag"(line 578, column 7) _lambdaName = {-# LINE 578 "GenerateCode.ag" #-} _lhsIprefix ++ "_block" ++ show _lhsIblockNr {-# LINE 5664 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 579, column 7) _pragmaDecl = {-# LINE 579 "GenerateCode.ag" #-} PragmaDecl ("NOINLINE " ++ _lambdaName ) {-# LINE 5669 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 580, column 7) _lhsOcallExpr = {-# LINE 580 "GenerateCode.ag" #-} App _lambdaName (map SimpleExpr _freeVars ) {-# LINE 5674 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 582, column 7) _freeVars = {-# LINE 582 "GenerateCode.ag" #-} freevars _lhsIlastExprVars (defs_ ++ _lhsInextVisitDecls) {-# LINE 5679 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 589, column 7) _lhsOdecls = {-# LINE 589 "GenerateCode.ag" #-} [ mkBlockLambda _lhsIoptCase _lambdaName _freeVars (defs_ ++ _lhsInextVisitDecls) result_ ] {-# LINE 5684 "GenerateCode.hs" #-} -- copy rule (from local) _lhsOfreeVars = {-# LINE 575 "GenerateCode.ag" #-} _freeVars {-# LINE 5689 "GenerateCode.hs" #-} in ( _lhsOcallExpr,_lhsOdecls,_lhsOfreeVars))) ) -- DeclBlocksRoot ---------------------------------------------- {- visit 0: inherited attributes: lastExprVars : [String] nextVisitDecls : [Decl] optCase : Bool prefix : String synthesized attributes: firstCall : Expr lambdas : [Decl] alternatives: alternative DeclBlocksRoot: child blocks : DeclBlocks -} -- cata sem_DeclBlocksRoot :: DeclBlocksRoot -> T_DeclBlocksRoot sem_DeclBlocksRoot (DeclBlocksRoot _blocks ) = (sem_DeclBlocksRoot_DeclBlocksRoot (sem_DeclBlocks _blocks ) ) -- semantic domain newtype T_DeclBlocksRoot = T_DeclBlocksRoot (([String]) -> ([Decl]) -> Bool -> String -> ( Expr,([Decl]))) data Inh_DeclBlocksRoot = Inh_DeclBlocksRoot {lastExprVars_Inh_DeclBlocksRoot :: !([String]),nextVisitDecls_Inh_DeclBlocksRoot :: !([Decl]),optCase_Inh_DeclBlocksRoot :: !(Bool),prefix_Inh_DeclBlocksRoot :: !(String)} data Syn_DeclBlocksRoot = Syn_DeclBlocksRoot {firstCall_Syn_DeclBlocksRoot :: !(Expr),lambdas_Syn_DeclBlocksRoot :: !([Decl])} wrap_DeclBlocksRoot :: T_DeclBlocksRoot -> Inh_DeclBlocksRoot -> Syn_DeclBlocksRoot wrap_DeclBlocksRoot (T_DeclBlocksRoot sem ) (Inh_DeclBlocksRoot _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix ) = (let ( _lhsOfirstCall,_lhsOlambdas) = (sem _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix ) in (Syn_DeclBlocksRoot _lhsOfirstCall _lhsOlambdas )) sem_DeclBlocksRoot_DeclBlocksRoot :: T_DeclBlocks -> T_DeclBlocksRoot sem_DeclBlocksRoot_DeclBlocksRoot (T_DeclBlocks blocks_ ) = (T_DeclBlocksRoot (\ _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix -> (let _lhsOlambdas :: ([Decl]) _lhsOfirstCall :: Expr _blocksOblockNr :: Int _blocksOlastExprVars :: ([String]) _blocksOnextVisitDecls :: ([Decl]) _blocksOoptCase :: Bool _blocksOprefix :: String _blocksIcallExpr :: Expr _blocksIdecls :: ([Decl]) _blocksIfreeVars :: ([String]) -- "GenerateCode.ag"(line 564, column 7) _lhsOlambdas = {-# LINE 564 "GenerateCode.ag" #-} _blocksIdecls {-# LINE 5747 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 565, column 7) _lhsOfirstCall = {-# LINE 565 "GenerateCode.ag" #-} _blocksIcallExpr {-# LINE 5752 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 570, column 7) _blocksOblockNr = {-# LINE 570 "GenerateCode.ag" #-} 1 {-# LINE 5757 "GenerateCode.hs" #-} -- copy rule (down) _blocksOlastExprVars = {-# LINE 559 "GenerateCode.ag" #-} _lhsIlastExprVars {-# LINE 5762 "GenerateCode.hs" #-} -- copy rule (down) _blocksOnextVisitDecls = {-# LINE 559 "GenerateCode.ag" #-} _lhsInextVisitDecls {-# LINE 5767 "GenerateCode.hs" #-} -- copy rule (down) _blocksOoptCase = {-# LINE 559 "GenerateCode.ag" #-} _lhsIoptCase {-# LINE 5772 "GenerateCode.hs" #-} -- copy rule (down) _blocksOprefix = {-# LINE 559 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 5777 "GenerateCode.hs" #-} ( _blocksIcallExpr,_blocksIdecls,_blocksIfreeVars) = (blocks_ _blocksOblockNr _blocksOlastExprVars _blocksOnextVisitDecls _blocksOoptCase _blocksOprefix ) in ( _lhsOfirstCall,_lhsOlambdas))) ) -- Pattern ----------------------------------------------------- {- visit 0: synthesized attributes: copy : SELF definedInsts : [Identifier] patternAttributes : [(Identifier, Identifier)] alternatives: alternative Alias: child field : {Identifier} child attr : {Identifier} child pat : Pattern child parts : Patterns visit 0: local copy : _ alternative Constr: child name : {ConstructorIdent} child pats : Patterns visit 0: local copy : _ alternative Irrefutable: child pat : Pattern visit 0: local copy : _ alternative Product: child pos : {Pos} child pats : Patterns visit 0: local copy : _ alternative Underscore: child pos : {Pos} visit 0: local copy : _ -} -- cata sem_Pattern :: Pattern -> T_Pattern sem_Pattern (Alias _field _attr _pat _parts ) = (sem_Pattern_Alias _field _attr (sem_Pattern _pat ) (sem_Patterns _parts ) ) sem_Pattern (Constr _name _pats ) = (sem_Pattern_Constr _name (sem_Patterns _pats ) ) sem_Pattern (Irrefutable _pat ) = (sem_Pattern_Irrefutable (sem_Pattern _pat ) ) sem_Pattern (Product _pos _pats ) = (sem_Pattern_Product _pos (sem_Patterns _pats ) ) sem_Pattern (Underscore _pos ) = (sem_Pattern_Underscore _pos ) -- semantic domain newtype T_Pattern = T_Pattern (( Pattern,([Identifier]),([(Identifier, Identifier)]))) data Inh_Pattern = Inh_Pattern {} data Syn_Pattern = Syn_Pattern {copy_Syn_Pattern :: !(Pattern),definedInsts_Syn_Pattern :: !([Identifier]),patternAttributes_Syn_Pattern :: !([(Identifier, Identifier)])} wrap_Pattern :: T_Pattern -> Inh_Pattern -> Syn_Pattern wrap_Pattern (T_Pattern sem ) (Inh_Pattern ) = (let ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes) = (sem ) in (Syn_Pattern _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes )) sem_Pattern_Alias :: Identifier -> Identifier -> T_Pattern -> T_Patterns -> T_Pattern sem_Pattern_Alias field_ attr_ (T_Pattern pat_ ) (T_Patterns parts_ ) = (T_Pattern (let _lhsOdefinedInsts :: ([Identifier]) _lhsOpatternAttributes :: ([(Identifier, Identifier)]) _lhsOcopy :: Pattern _patIcopy :: Pattern _patIdefinedInsts :: ([Identifier]) _patIpatternAttributes :: ([(Identifier, Identifier)]) _partsIcopy :: Patterns _partsIdefinedInsts :: ([Identifier]) _partsIpatternAttributes :: ([(Identifier, Identifier)]) -- "GenerateCode.ag"(line 210, column 11) _lhsOdefinedInsts = {-# LINE 210 "GenerateCode.ag" #-} (if field_ == _INST then [attr_] else []) ++ _patIdefinedInsts {-# LINE 5858 "GenerateCode.hs" #-} -- "GenerateCode.ag"(line 218, column 7) _lhsOpatternAttributes = {-# LINE 218 "GenerateCode.ag" #-} (field_,attr_) : (_patIpatternAttributes ++ _partsIpatternAttributes) {-# LINE 5863 "GenerateCode.hs" #-} -- self rule _copy = {-# LINE 23 "./Patterns.ag" #-} Alias field_ attr_ _patIcopy _partsIcopy {-# LINE 5868 "GenerateCode.hs" #-} -- self rule _lhsOcopy = {-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 5873 "GenerateCode.hs" #-} ( _patIcopy,_patIdefinedInsts,_patIpatternAttributes) = (pat_ ) ( _partsIcopy,_partsIdefinedInsts,_partsIpatternAttributes) = (parts_ ) in ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)) ) sem_Pattern_Constr :: ConstructorIdent -> T_Patterns -> T_Pattern sem_Pattern_Constr name_ (T_Patterns pats_ ) = (T_Pattern (let _lhsOdefinedInsts :: ([Identifier]) _lhsOpatternAttributes :: ([(Identifier, Identifier)]) _lhsOcopy :: Pattern _patsIcopy :: Patterns _patsIdefinedInsts :: ([Identifier]) _patsIpatternAttributes :: ([(Identifier, Identifier)]) -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} _patsIdefinedInsts {-# LINE 5893 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 215, column 47) _lhsOpatternAttributes = {-# LINE 215 "GenerateCode.ag" #-} _patsIpatternAttributes {-# LINE 5898 "GenerateCode.hs" #-} -- self rule _copy = {-# LINE 23 "./Patterns.ag" #-} Constr name_ _patsIcopy {-# LINE 5903 "GenerateCode.hs" #-} -- self rule _lhsOcopy = {-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 5908 "GenerateCode.hs" #-} ( _patsIcopy,_patsIdefinedInsts,_patsIpatternAttributes) = (pats_ ) in ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)) ) sem_Pattern_Irrefutable :: T_Pattern -> T_Pattern sem_Pattern_Irrefutable (T_Pattern pat_ ) = (T_Pattern (let _lhsOdefinedInsts :: ([Identifier]) _lhsOpatternAttributes :: ([(Identifier, Identifier)]) _lhsOcopy :: Pattern _patIcopy :: Pattern _patIdefinedInsts :: ([Identifier]) _patIpatternAttributes :: ([(Identifier, Identifier)]) -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} _patIdefinedInsts {-# LINE 5925 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 215, column 47) _lhsOpatternAttributes = {-# LINE 215 "GenerateCode.ag" #-} _patIpatternAttributes {-# LINE 5930 "GenerateCode.hs" #-} -- self rule _copy = {-# LINE 23 "./Patterns.ag" #-} Irrefutable _patIcopy {-# LINE 5935 "GenerateCode.hs" #-} -- self rule _lhsOcopy = {-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 5940 "GenerateCode.hs" #-} ( _patIcopy,_patIdefinedInsts,_patIpatternAttributes) = (pat_ ) in ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)) ) sem_Pattern_Product :: Pos -> T_Patterns -> T_Pattern sem_Pattern_Product pos_ (T_Patterns pats_ ) = (T_Pattern (let _lhsOdefinedInsts :: ([Identifier]) _lhsOpatternAttributes :: ([(Identifier, Identifier)]) _lhsOcopy :: Pattern _patsIcopy :: Patterns _patsIdefinedInsts :: ([Identifier]) _patsIpatternAttributes :: ([(Identifier, Identifier)]) -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} _patsIdefinedInsts {-# LINE 5958 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 215, column 47) _lhsOpatternAttributes = {-# LINE 215 "GenerateCode.ag" #-} _patsIpatternAttributes {-# LINE 5963 "GenerateCode.hs" #-} -- self rule _copy = {-# LINE 23 "./Patterns.ag" #-} Product pos_ _patsIcopy {-# LINE 5968 "GenerateCode.hs" #-} -- self rule _lhsOcopy = {-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 5973 "GenerateCode.hs" #-} ( _patsIcopy,_patsIdefinedInsts,_patsIpatternAttributes) = (pats_ ) in ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)) ) sem_Pattern_Underscore :: Pos -> T_Pattern sem_Pattern_Underscore pos_ = (T_Pattern (let _lhsOdefinedInsts :: ([Identifier]) _lhsOpatternAttributes :: ([(Identifier, Identifier)]) _lhsOcopy :: Pattern -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} [] {-# LINE 5987 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 215, column 47) _lhsOpatternAttributes = {-# LINE 215 "GenerateCode.ag" #-} [] {-# LINE 5992 "GenerateCode.hs" #-} -- self rule _copy = {-# LINE 23 "./Patterns.ag" #-} Underscore pos_ {-# LINE 5997 "GenerateCode.hs" #-} -- self rule _lhsOcopy = {-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 6002 "GenerateCode.hs" #-} in ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)) ) -- Patterns ---------------------------------------------------- {- visit 0: synthesized attributes: copy : SELF definedInsts : [Identifier] patternAttributes : [(Identifier, Identifier)] alternatives: alternative Cons: child hd : Pattern child tl : Patterns visit 0: local copy : _ alternative Nil: visit 0: local copy : _ -} -- cata sem_Patterns :: Patterns -> T_Patterns sem_Patterns list = (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list) ) -- semantic domain newtype T_Patterns = T_Patterns (( Patterns,([Identifier]),([(Identifier, Identifier)]))) data Inh_Patterns = Inh_Patterns {} data Syn_Patterns = Syn_Patterns {copy_Syn_Patterns :: !(Patterns),definedInsts_Syn_Patterns :: !([Identifier]),patternAttributes_Syn_Patterns :: !([(Identifier, Identifier)])} wrap_Patterns :: T_Patterns -> Inh_Patterns -> Syn_Patterns wrap_Patterns (T_Patterns sem ) (Inh_Patterns ) = (let ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes) = (sem ) in (Syn_Patterns _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes )) sem_Patterns_Cons :: T_Pattern -> T_Patterns -> T_Patterns sem_Patterns_Cons (T_Pattern hd_ ) (T_Patterns tl_ ) = (T_Patterns (let _lhsOdefinedInsts :: ([Identifier]) _lhsOpatternAttributes :: ([(Identifier, Identifier)]) _lhsOcopy :: Patterns _hdIcopy :: Pattern _hdIdefinedInsts :: ([Identifier]) _hdIpatternAttributes :: ([(Identifier, Identifier)]) _tlIcopy :: Patterns _tlIdefinedInsts :: ([Identifier]) _tlIpatternAttributes :: ([(Identifier, Identifier)]) -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} _hdIdefinedInsts ++ _tlIdefinedInsts {-# LINE 6054 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 215, column 47) _lhsOpatternAttributes = {-# LINE 215 "GenerateCode.ag" #-} _hdIpatternAttributes ++ _tlIpatternAttributes {-# LINE 6059 "GenerateCode.hs" #-} -- self rule _copy = {-# LINE 23 "./Patterns.ag" #-} (:) _hdIcopy _tlIcopy {-# LINE 6064 "GenerateCode.hs" #-} -- self rule _lhsOcopy = {-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 6069 "GenerateCode.hs" #-} ( _hdIcopy,_hdIdefinedInsts,_hdIpatternAttributes) = (hd_ ) ( _tlIcopy,_tlIdefinedInsts,_tlIpatternAttributes) = (tl_ ) in ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)) ) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil = (T_Patterns (let _lhsOdefinedInsts :: ([Identifier]) _lhsOpatternAttributes :: ([(Identifier, Identifier)]) _lhsOcopy :: Patterns -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} [] {-# LINE 6084 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 215, column 47) _lhsOpatternAttributes = {-# LINE 215 "GenerateCode.ag" #-} [] {-# LINE 6089 "GenerateCode.hs" #-} -- self rule _copy = {-# LINE 23 "./Patterns.ag" #-} [] {-# LINE 6094 "GenerateCode.hs" #-} -- self rule _lhsOcopy = {-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 6099 "GenerateCode.hs" #-} in ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)) ) -- Sequence ---------------------------------------------------- {- visit 0: inherited attributes: allNts : Set NontermIdent aroundMap : Set Identifier children : [(Identifier,Type,Bool)] con : ConstructorIdent higherOrderChildren : [(Identifier,Type,Bool)] inh : Attributes instVisitNrs : Map Identifier Int lastExpr : Expr nr : Int nt : NontermIdent o_case : Bool o_cata : Bool o_costcentre : Bool o_data : Maybe Bool o_linePragmas : Bool o_newtypes : Bool o_pretty : Bool o_rename : Bool o_sem : Bool o_sig : Bool o_splitsems : Bool o_strictwrap : Bool o_traces : Bool o_unbox : Bool paramInstMap : Map Identifier (NontermIdent, [String]) paramMap : ParamMap prefix : String syn : Attributes terminals : [Identifier] unfoldSemDom : NontermIdent -> Int -> [String] -> Code.Type what : String chained attributes: declsAbove : [Decl] errors : Seq Error synthesized attributes: allTpsFound : Bool blockDecls : DeclBlocks comments : [String] decls : Decls definedInsts : [Identifier] exprs : Exprs tSigs : [Decl] tps : [Type] usedVars : Set String alternatives: alternative Cons: child hd : CRule child tl : Sequence alternative Nil: -} -- cata sem_Sequence :: Sequence -> T_Sequence sem_Sequence list = (Prelude.foldr sem_Sequence_Cons sem_Sequence_Nil (Prelude.map sem_CRule list) ) -- semantic domain newtype T_Sequence = T_Sequence ((Set NontermIdent) -> (Set Identifier) -> ([(Identifier,Type,Bool)]) -> ConstructorIdent -> ([Decl]) -> (Seq Error) -> ([(Identifier,Type,Bool)]) -> Attributes -> (Map Identifier Int) -> Expr -> Int -> NontermIdent -> Bool -> Bool -> Bool -> (Maybe Bool) -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> (Map Identifier (NontermIdent, [String])) -> ParamMap -> String -> Attributes -> ([Identifier]) -> (NontermIdent -> Int -> [String] -> Code.Type) -> String -> ( Bool,DeclBlocks,([String]),Decls,([Decl]),([Identifier]),(Seq Error),Exprs,([Decl]),([Type]),(Set String))) data Inh_Sequence = Inh_Sequence {allNts_Inh_Sequence :: !(Set NontermIdent),aroundMap_Inh_Sequence :: !(Set Identifier),children_Inh_Sequence :: !([(Identifier,Type,Bool)]),con_Inh_Sequence :: !(ConstructorIdent),declsAbove_Inh_Sequence :: !([Decl]),errors_Inh_Sequence :: !(Seq Error),higherOrderChildren_Inh_Sequence :: !([(Identifier,Type,Bool)]),inh_Inh_Sequence :: !(Attributes),instVisitNrs_Inh_Sequence :: !(Map Identifier Int),lastExpr_Inh_Sequence :: !(Expr),nr_Inh_Sequence :: !(Int),nt_Inh_Sequence :: !(NontermIdent),o_case_Inh_Sequence :: !(Bool),o_cata_Inh_Sequence :: !(Bool),o_costcentre_Inh_Sequence :: !(Bool),o_data_Inh_Sequence :: !(Maybe Bool),o_linePragmas_Inh_Sequence :: !(Bool),o_newtypes_Inh_Sequence :: !(Bool),o_pretty_Inh_Sequence :: !(Bool),o_rename_Inh_Sequence :: !(Bool),o_sem_Inh_Sequence :: !(Bool),o_sig_Inh_Sequence :: !(Bool),o_splitsems_Inh_Sequence :: !(Bool),o_strictwrap_Inh_Sequence :: !(Bool),o_traces_Inh_Sequence :: !(Bool),o_unbox_Inh_Sequence :: !(Bool),paramInstMap_Inh_Sequence :: !(Map Identifier (NontermIdent, [String])),paramMap_Inh_Sequence :: !(ParamMap),prefix_Inh_Sequence :: !(String),syn_Inh_Sequence :: !(Attributes),terminals_Inh_Sequence :: !([Identifier]),unfoldSemDom_Inh_Sequence :: !(NontermIdent -> Int -> [String] -> Code.Type),what_Inh_Sequence :: !(String)} data Syn_Sequence = Syn_Sequence {allTpsFound_Syn_Sequence :: !(Bool),blockDecls_Syn_Sequence :: !(DeclBlocks),comments_Syn_Sequence :: !([String]),decls_Syn_Sequence :: !(Decls),declsAbove_Syn_Sequence :: !([Decl]),definedInsts_Syn_Sequence :: !([Identifier]),errors_Syn_Sequence :: !(Seq Error),exprs_Syn_Sequence :: !(Exprs),tSigs_Syn_Sequence :: !([Decl]),tps_Syn_Sequence :: !([Type]),usedVars_Syn_Sequence :: !(Set String)} wrap_Sequence :: T_Sequence -> Inh_Sequence -> Syn_Sequence wrap_Sequence (T_Sequence sem ) (Inh_Sequence _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIerrors _lhsIhigherOrderChildren _lhsIinh _lhsIinstVisitNrs _lhsIlastExpr _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwhat ) = (let ( _lhsOallTpsFound,_lhsOblockDecls,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOerrors,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars) = (sem _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIerrors _lhsIhigherOrderChildren _lhsIinh _lhsIinstVisitNrs _lhsIlastExpr _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwhat ) in (Syn_Sequence _lhsOallTpsFound _lhsOblockDecls _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOerrors _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars )) sem_Sequence_Cons :: T_CRule -> T_Sequence -> T_Sequence sem_Sequence_Cons (T_CRule hd_ ) (T_Sequence tl_ ) = (T_Sequence (\ _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIerrors _lhsIhigherOrderChildren _lhsIinh _lhsIinstVisitNrs _lhsIlastExpr _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwhat -> (let _lhsOblockDecls :: DeclBlocks _lhsOallTpsFound :: Bool _lhsOcomments :: ([String]) _lhsOdecls :: Decls _lhsOdefinedInsts :: ([Identifier]) _lhsOerrors :: (Seq Error) _lhsOexprs :: Exprs _lhsOtSigs :: ([Decl]) _lhsOtps :: ([Type]) _lhsOusedVars :: (Set String) _lhsOdeclsAbove :: ([Decl]) _hdOallNts :: (Set NontermIdent) _hdOaroundMap :: (Set Identifier) _hdOchildren :: ([(Identifier,Type,Bool)]) _hdOcon :: ConstructorIdent _hdOdeclsAbove :: ([Decl]) _hdOerrors :: (Seq Error) _hdOhigherOrderChildren :: ([(Identifier,Type,Bool)]) _hdOinh :: Attributes _hdOinstVisitNrs :: (Map Identifier Int) _hdOnr :: Int _hdOnt :: NontermIdent _hdOo_case :: Bool _hdOo_cata :: Bool _hdOo_costcentre :: Bool _hdOo_data :: (Maybe Bool) _hdOo_linePragmas :: Bool _hdOo_newtypes :: Bool _hdOo_pretty :: Bool _hdOo_rename :: Bool _hdOo_sem :: Bool _hdOo_sig :: Bool _hdOo_splitsems :: Bool _hdOo_strictwrap :: Bool _hdOo_traces :: Bool _hdOo_unbox :: Bool _hdOparamInstMap :: (Map Identifier (NontermIdent, [String])) _hdOparamMap :: ParamMap _hdOprefix :: String _hdOsyn :: Attributes _hdOterminals :: ([Identifier]) _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _hdOwhat :: String _tlOallNts :: (Set NontermIdent) _tlOaroundMap :: (Set Identifier) _tlOchildren :: ([(Identifier,Type,Bool)]) _tlOcon :: ConstructorIdent _tlOdeclsAbove :: ([Decl]) _tlOerrors :: (Seq Error) _tlOhigherOrderChildren :: ([(Identifier,Type,Bool)]) _tlOinh :: Attributes _tlOinstVisitNrs :: (Map Identifier Int) _tlOlastExpr :: Expr _tlOnr :: Int _tlOnt :: NontermIdent _tlOo_case :: Bool _tlOo_cata :: Bool _tlOo_costcentre :: Bool _tlOo_data :: (Maybe Bool) _tlOo_linePragmas :: Bool _tlOo_newtypes :: Bool _tlOo_pretty :: Bool _tlOo_rename :: Bool _tlOo_sem :: Bool _tlOo_sig :: Bool _tlOo_splitsems :: Bool _tlOo_strictwrap :: Bool _tlOo_traces :: Bool _tlOo_unbox :: Bool _tlOparamInstMap :: (Map Identifier (NontermIdent, [String])) _tlOparamMap :: ParamMap _tlOprefix :: String _tlOsyn :: Attributes _tlOterminals :: ([Identifier]) _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type) _tlOwhat :: String _hdIallTpsFound :: Bool _hdIbldBlocksFun :: (DeclBlocks -> DeclBlocks) _hdIcomments :: ([String]) _hdIdecls :: Decls _hdIdeclsAbove :: ([Decl]) _hdIdefinedInsts :: ([Identifier]) _hdIerrors :: (Seq Error) _hdIexprs :: Exprs _hdItSigs :: ([Decl]) _hdItps :: ([Type]) _hdIusedVars :: (Set String) _tlIallTpsFound :: Bool _tlIblockDecls :: DeclBlocks _tlIcomments :: ([String]) _tlIdecls :: Decls _tlIdeclsAbove :: ([Decl]) _tlIdefinedInsts :: ([Identifier]) _tlIerrors :: (Seq Error) _tlIexprs :: Exprs _tlItSigs :: ([Decl]) _tlItps :: ([Type]) _tlIusedVars :: (Set String) -- "GenerateCode.ag"(line 505, column 7) _lhsOblockDecls = {-# LINE 505 "GenerateCode.ag" #-} _hdIbldBlocksFun _tlIblockDecls {-# LINE 6343 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 357, column 39) _lhsOallTpsFound = {-# LINE 357 "GenerateCode.ag" #-} _hdIallTpsFound && _tlIallTpsFound {-# LINE 6348 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} _hdIcomments ++ _tlIcomments {-# LINE 6353 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 138, column 34) _lhsOdecls = {-# LINE 138 "GenerateCode.ag" #-} _hdIdecls ++ _tlIdecls {-# LINE 6358 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} _hdIdefinedInsts ++ _tlIdefinedInsts {-# LINE 6363 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} _hdIerrors Seq.>< _tlIerrors {-# LINE 6368 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 281, column 34) _lhsOexprs = {-# LINE 281 "GenerateCode.ag" #-} _hdIexprs ++ _tlIexprs {-# LINE 6373 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 310, column 33) _lhsOtSigs = {-# LINE 310 "GenerateCode.ag" #-} _hdItSigs ++ _tlItSigs {-# LINE 6378 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 356, column 31) _lhsOtps = {-# LINE 356 "GenerateCode.ag" #-} _hdItps ++ _tlItps {-# LINE 6383 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 299, column 37) _lhsOusedVars = {-# LINE 299 "GenerateCode.ag" #-} _hdIusedVars `Set.union` _tlIusedVars {-# LINE 6388 "GenerateCode.hs" #-} -- copy rule (up) _lhsOdeclsAbove = {-# LINE 491 "GenerateCode.ag" #-} _tlIdeclsAbove {-# LINE 6393 "GenerateCode.hs" #-} -- copy rule (down) _hdOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 6398 "GenerateCode.hs" #-} -- copy rule (down) _hdOaroundMap = {-# LINE 479 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 6403 "GenerateCode.hs" #-} -- copy rule (down) _hdOchildren = {-# LINE 351 "GenerateCode.ag" #-} _lhsIchildren {-# LINE 6408 "GenerateCode.hs" #-} -- copy rule (down) _hdOcon = {-# LINE 82 "GenerateCode.ag" #-} _lhsIcon {-# LINE 6413 "GenerateCode.hs" #-} -- copy rule (down) _hdOdeclsAbove = {-# LINE 491 "GenerateCode.ag" #-} _lhsIdeclsAbove {-# LINE 6418 "GenerateCode.hs" #-} -- copy rule (down) _hdOerrors = {-# LINE 748 "GenerateCode.ag" #-} _lhsIerrors {-# LINE 6423 "GenerateCode.hs" #-} -- copy rule (down) _hdOhigherOrderChildren = {-# LINE 206 "GenerateCode.ag" #-} _lhsIhigherOrderChildren {-# LINE 6428 "GenerateCode.hs" #-} -- copy rule (down) _hdOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 6433 "GenerateCode.hs" #-} -- copy rule (down) _hdOinstVisitNrs = {-# LINE 459 "GenerateCode.ag" #-} _lhsIinstVisitNrs {-# LINE 6438 "GenerateCode.hs" #-} -- copy rule (down) _hdOnr = {-# LINE 225 "GenerateCode.ag" #-} _lhsInr {-# LINE 6443 "GenerateCode.hs" #-} -- copy rule (down) _hdOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 6448 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 6453 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 6458 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 6463 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 6468 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 6473 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 6478 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 6483 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 6488 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 6493 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 6498 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 6503 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 6508 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 6513 "GenerateCode.hs" #-} -- copy rule (down) _hdOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 6518 "GenerateCode.hs" #-} -- copy rule (down) _hdOparamInstMap = {-# LINE 94 "GenerateCode.ag" #-} _lhsIparamInstMap {-# LINE 6523 "GenerateCode.hs" #-} -- copy rule (down) _hdOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 6528 "GenerateCode.hs" #-} -- copy rule (down) _hdOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 6533 "GenerateCode.hs" #-} -- copy rule (down) _hdOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 6538 "GenerateCode.hs" #-} -- copy rule (down) _hdOterminals = {-# LINE 83 "GenerateCode.ag" #-} _lhsIterminals {-# LINE 6543 "GenerateCode.hs" #-} -- copy rule (down) _hdOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 6548 "GenerateCode.hs" #-} -- copy rule (down) _hdOwhat = {-# LINE 769 "GenerateCode.ag" #-} _lhsIwhat {-# LINE 6553 "GenerateCode.hs" #-} -- copy rule (down) _tlOallNts = {-# LINE 120 "GenerateCode.ag" #-} _lhsIallNts {-# LINE 6558 "GenerateCode.hs" #-} -- copy rule (down) _tlOaroundMap = {-# LINE 479 "GenerateCode.ag" #-} _lhsIaroundMap {-# LINE 6563 "GenerateCode.hs" #-} -- copy rule (down) _tlOchildren = {-# LINE 351 "GenerateCode.ag" #-} _lhsIchildren {-# LINE 6568 "GenerateCode.hs" #-} -- copy rule (down) _tlOcon = {-# LINE 82 "GenerateCode.ag" #-} _lhsIcon {-# LINE 6573 "GenerateCode.hs" #-} -- copy rule (chain) _tlOdeclsAbove = {-# LINE 491 "GenerateCode.ag" #-} _hdIdeclsAbove {-# LINE 6578 "GenerateCode.hs" #-} -- copy rule (chain) _tlOerrors = {-# LINE 748 "GenerateCode.ag" #-} _hdIerrors {-# LINE 6583 "GenerateCode.hs" #-} -- copy rule (down) _tlOhigherOrderChildren = {-# LINE 206 "GenerateCode.ag" #-} _lhsIhigherOrderChildren {-# LINE 6588 "GenerateCode.hs" #-} -- copy rule (down) _tlOinh = {-# LINE 77 "GenerateCode.ag" #-} _lhsIinh {-# LINE 6593 "GenerateCode.hs" #-} -- copy rule (down) _tlOinstVisitNrs = {-# LINE 459 "GenerateCode.ag" #-} _lhsIinstVisitNrs {-# LINE 6598 "GenerateCode.hs" #-} -- copy rule (down) _tlOlastExpr = {-# LINE 489 "GenerateCode.ag" #-} _lhsIlastExpr {-# LINE 6603 "GenerateCode.hs" #-} -- copy rule (down) _tlOnr = {-# LINE 225 "GenerateCode.ag" #-} _lhsInr {-# LINE 6608 "GenerateCode.hs" #-} -- copy rule (down) _tlOnt = {-# LINE 77 "GenerateCode.ag" #-} _lhsInt {-# LINE 6613 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_case = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_case {-# LINE 6618 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_cata = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_cata {-# LINE 6623 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_costcentre = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_costcentre {-# LINE 6628 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_data = {-# LINE 46 "GenerateCode.ag" #-} _lhsIo_data {-# LINE 6633 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_linePragmas = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_linePragmas {-# LINE 6638 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_newtypes = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_newtypes {-# LINE 6643 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_pretty = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_pretty {-# LINE 6648 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_rename = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_rename {-# LINE 6653 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sem = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sem {-# LINE 6658 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_sig = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_sig {-# LINE 6663 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_splitsems = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_splitsems {-# LINE 6668 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_strictwrap = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_strictwrap {-# LINE 6673 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_traces = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_traces {-# LINE 6678 "GenerateCode.hs" #-} -- copy rule (down) _tlOo_unbox = {-# LINE 45 "GenerateCode.ag" #-} _lhsIo_unbox {-# LINE 6683 "GenerateCode.hs" #-} -- copy rule (down) _tlOparamInstMap = {-# LINE 94 "GenerateCode.ag" #-} _lhsIparamInstMap {-# LINE 6688 "GenerateCode.hs" #-} -- copy rule (down) _tlOparamMap = {-# LINE 88 "GenerateCode.ag" #-} _lhsIparamMap {-# LINE 6693 "GenerateCode.hs" #-} -- copy rule (down) _tlOprefix = {-# LINE 47 "GenerateCode.ag" #-} _lhsIprefix {-# LINE 6698 "GenerateCode.hs" #-} -- copy rule (down) _tlOsyn = {-# LINE 77 "GenerateCode.ag" #-} _lhsIsyn {-# LINE 6703 "GenerateCode.hs" #-} -- copy rule (down) _tlOterminals = {-# LINE 83 "GenerateCode.ag" #-} _lhsIterminals {-# LINE 6708 "GenerateCode.hs" #-} -- copy rule (down) _tlOunfoldSemDom = {-# LINE 646 "GenerateCode.ag" #-} _lhsIunfoldSemDom {-# LINE 6713 "GenerateCode.hs" #-} -- copy rule (down) _tlOwhat = {-# LINE 769 "GenerateCode.ag" #-} _lhsIwhat {-# LINE 6718 "GenerateCode.hs" #-} ( _hdIallTpsFound,_hdIbldBlocksFun,_hdIcomments,_hdIdecls,_hdIdeclsAbove,_hdIdefinedInsts,_hdIerrors,_hdIexprs,_hdItSigs,_hdItps,_hdIusedVars) = (hd_ _hdOallNts _hdOaroundMap _hdOchildren _hdOcon _hdOdeclsAbove _hdOerrors _hdOhigherOrderChildren _hdOinh _hdOinstVisitNrs _hdOnr _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOparamInstMap _hdOparamMap _hdOprefix _hdOsyn _hdOterminals _hdOunfoldSemDom _hdOwhat ) ( _tlIallTpsFound,_tlIblockDecls,_tlIcomments,_tlIdecls,_tlIdeclsAbove,_tlIdefinedInsts,_tlIerrors,_tlIexprs,_tlItSigs,_tlItps,_tlIusedVars) = (tl_ _tlOallNts _tlOaroundMap _tlOchildren _tlOcon _tlOdeclsAbove _tlOerrors _tlOhigherOrderChildren _tlOinh _tlOinstVisitNrs _tlOlastExpr _tlOnr _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOparamInstMap _tlOparamMap _tlOprefix _tlOsyn _tlOterminals _tlOunfoldSemDom _tlOwhat ) in ( _lhsOallTpsFound,_lhsOblockDecls,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOerrors,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars))) ) sem_Sequence_Nil :: T_Sequence sem_Sequence_Nil = (T_Sequence (\ _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIerrors _lhsIhigherOrderChildren _lhsIinh _lhsIinstVisitNrs _lhsIlastExpr _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIwhat -> (let _lhsOblockDecls :: DeclBlocks _lhsOallTpsFound :: Bool _lhsOcomments :: ([String]) _lhsOdecls :: Decls _lhsOdefinedInsts :: ([Identifier]) _lhsOerrors :: (Seq Error) _lhsOexprs :: Exprs _lhsOtSigs :: ([Decl]) _lhsOtps :: ([Type]) _lhsOusedVars :: (Set String) _lhsOdeclsAbove :: ([Decl]) -- "GenerateCode.ag"(line 507, column 7) _lhsOblockDecls = {-# LINE 507 "GenerateCode.ag" #-} DeclTerminator _lhsIdeclsAbove _lhsIlastExpr {-# LINE 6774 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 357, column 39) _lhsOallTpsFound = {-# LINE 357 "GenerateCode.ag" #-} True {-# LINE 6779 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 767, column 52) _lhsOcomments = {-# LINE 767 "GenerateCode.ag" #-} [] {-# LINE 6784 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 138, column 34) _lhsOdecls = {-# LINE 138 "GenerateCode.ag" #-} [] {-# LINE 6789 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 208, column 55) _lhsOdefinedInsts = {-# LINE 208 "GenerateCode.ag" #-} [] {-# LINE 6794 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 748, column 32) _lhsOerrors = {-# LINE 748 "GenerateCode.ag" #-} Seq.empty {-# LINE 6799 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 281, column 34) _lhsOexprs = {-# LINE 281 "GenerateCode.ag" #-} [] {-# LINE 6804 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 310, column 33) _lhsOtSigs = {-# LINE 310 "GenerateCode.ag" #-} [] {-# LINE 6809 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 356, column 31) _lhsOtps = {-# LINE 356 "GenerateCode.ag" #-} [] {-# LINE 6814 "GenerateCode.hs" #-} -- use rule "GenerateCode.ag"(line 299, column 37) _lhsOusedVars = {-# LINE 299 "GenerateCode.ag" #-} Set.empty {-# LINE 6819 "GenerateCode.hs" #-} -- copy rule (chain) _lhsOdeclsAbove = {-# LINE 491 "GenerateCode.ag" #-} _lhsIdeclsAbove {-# LINE 6824 "GenerateCode.hs" #-} in ( _lhsOallTpsFound,_lhsOblockDecls,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOerrors,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars))) )