-- UUAGC 0.9.38.2 (ExecutionPlan2Hs.ag) module ExecutionPlan2Hs where {-# LINE 7 "ExecutionPlan2Hs.ag" #-} import ExecutionPlan import Pretty import PPUtil import Options import Data.Maybe import Debug.Trace import TokenDef import HsToken import qualified Data.Set as Set import qualified Data.Map as Map {-# LINE 20 "../src-derived/ExecutionPlan2Hs.hs" #-} {-# LINE 2 "./ExecutionPlan.ag" #-} -- VisitSyntax.ag imports import Patterns (Pattern(..),Patterns) import Expression (Expression(..)) import CommonTypes import qualified Data.Set as Set {-# LINE 30 "../src-derived/ExecutionPlan2Hs.hs" #-} {-# LINE 2 "./Patterns.ag" #-} -- Patterns.ag imports import UU.Scanner.Position(Pos) import CommonTypes (ConstructorIdent,Identifier) {-# LINE 37 "../src-derived/ExecutionPlan2Hs.hs" #-} {-# LINE 2 "./Expression.ag" #-} import UU.Scanner.Position(Pos) import HsToken {-# LINE 43 "../src-derived/ExecutionPlan2Hs.hs" #-} {-# LINE 2 "./HsToken.ag" #-} import CommonTypes import UU.Scanner.Position(Pos) {-# LINE 49 "../src-derived/ExecutionPlan2Hs.hs" #-} {-# LINE 393 "ExecutionPlan2Hs.ag" #-} uwSetUnion :: (Ord a, Ord b) => Map.Map a (Set.Set b) -> Map.Map a (Set.Set b) -> Map.Map a (Set.Set b) uwSetUnion = Map.unionWith Set.union {-# LINE 54 "../src-derived/ExecutionPlan2Hs.hs" #-} -- EChild ------------------------------------------------------ {- visit 0: inherited attribute: nt : NontermIdent synthesized attributes: argnames : PP_Doc argnamesw : PP_Doc argtps : PP_Doc childintros : Map.Map Identifier PP_Doc datatype : PP_Doc terminaldefs : Set.Set String alternatives: alternative EChild: child name : {Identifier} child tp : {Type} child virtual : {Maybe (Maybe Type)} visit 0: local argnames : _ -} -- cata sem_EChild :: EChild -> T_EChild sem_EChild (EChild _name _tp _virtual ) = (sem_EChild_EChild _name _tp _virtual ) -- semantic domain newtype T_EChild = T_EChild (NontermIdent -> ( ( PP_Doc ),( PP_Doc ),( PP_Doc ),(Map.Map Identifier PP_Doc),PP_Doc,(Set.Set String))) data Inh_EChild = Inh_EChild {nt_Inh_EChild :: NontermIdent} data Syn_EChild = Syn_EChild {argnames_Syn_EChild :: ( PP_Doc ),argnamesw_Syn_EChild :: ( PP_Doc ),argtps_Syn_EChild :: ( PP_Doc ),childintros_Syn_EChild :: (Map.Map Identifier PP_Doc),datatype_Syn_EChild :: PP_Doc,terminaldefs_Syn_EChild :: (Set.Set String)} wrap_EChild :: T_EChild -> Inh_EChild -> Syn_EChild wrap_EChild (T_EChild sem ) (Inh_EChild _lhsInt ) = (let ( _lhsOargnames,_lhsOargnamesw,_lhsOargtps,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs) = sem _lhsInt in (Syn_EChild _lhsOargnames _lhsOargnamesw _lhsOargtps _lhsOchildintros _lhsOdatatype _lhsOterminaldefs )) sem_EChild_EChild :: Identifier -> Type -> (Maybe (Maybe Type)) -> T_EChild sem_EChild_EChild name_ tp_ virtual_ = (T_EChild (\ _lhsInt -> (let _lhsOdatatype :: PP_Doc _lhsOargnamesw :: ( PP_Doc ) _lhsOargtps :: ( PP_Doc ) _lhsOchildintros :: (Map.Map Identifier PP_Doc) _lhsOterminaldefs :: (Set.Set String) _lhsOargnames :: ( PP_Doc ) -- "ExecutionPlan2Hs.ag"(line 90, column 12) _lhsOdatatype = ({-# LINE 90 "ExecutionPlan2Hs.ag" #-} if isJust virtual_ then empty else pp $ typeToHaskellString (Just _lhsInt) [] tp_ {-# LINE 109 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 112, column 12) _lhsOargnamesw = ({-# LINE 112 "ExecutionPlan2Hs.ag" #-} if isJust virtual_ then empty else if isNonterminal tp_ then "(" >#< "sem_" >|< extractNonterminal tp_ >#< "field_" >|< name_ >#< ")" else text $ locname name_ {-# LINE 119 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 256, column 12) _lhsOargtps = ({-# LINE 256 "ExecutionPlan2Hs.ag" #-} if isJust virtual_ then empty else if isNonterminal tp_ then ("T_" >|< extractNonterminal tp_) >#< "->" else (text $ show tp_) >#< "->" {-# LINE 129 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 261, column 12) _argnames = ({-# LINE 261 "ExecutionPlan2Hs.ag" #-} if isJust virtual_ then empty else if isNonterminal tp_ then "field_" >|< name_ else text $ locname name_ {-# LINE 139 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 327, column 12) _lhsOchildintros = ({-# LINE 327 "ExecutionPlan2Hs.ag" #-} Map.singleton name_ $ locname name_ >#< "<-" >#< "return" >#< "$" >#< if isJust virtual_ then "sem_" >|< extractNonterminal tp_ >#< instname name_ else "field_" >|< name_ {-# LINE 148 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 404, column 12) _lhsOterminaldefs = ({-# LINE 404 "ExecutionPlan2Hs.ag" #-} if isJust virtual_ || isNonterminal tp_ then Set.empty else Set.singleton $ locname name_ {-# LINE 156 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (from local) _lhsOargnames = ({-# LINE 251 "ExecutionPlan2Hs.ag" #-} _argnames {-# LINE 162 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOargnames,_lhsOargnamesw,_lhsOargtps,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))) ) -- EChildren --------------------------------------------------- {- visit 0: inherited attribute: nt : NontermIdent synthesized attributes: argnames : [PP_Doc] argnamesw : [PP_Doc] argtps : [PP_Doc] childintros : Map.Map Identifier PP_Doc datatype : [PP_Doc] terminaldefs : Set.Set String alternatives: alternative Cons: child hd : EChild child tl : EChildren alternative Nil: -} -- cata sem_EChildren :: EChildren -> T_EChildren sem_EChildren list = (Prelude.foldr sem_EChildren_Cons sem_EChildren_Nil (Prelude.map sem_EChild list) ) -- semantic domain newtype T_EChildren = T_EChildren (NontermIdent -> ( ( [PP_Doc] ),([PP_Doc]),( [PP_Doc] ),(Map.Map Identifier PP_Doc),([PP_Doc]),(Set.Set String))) data Inh_EChildren = Inh_EChildren {nt_Inh_EChildren :: NontermIdent} data Syn_EChildren = Syn_EChildren {argnames_Syn_EChildren :: ( [PP_Doc] ),argnamesw_Syn_EChildren :: ([PP_Doc]),argtps_Syn_EChildren :: ( [PP_Doc] ),childintros_Syn_EChildren :: (Map.Map Identifier PP_Doc),datatype_Syn_EChildren :: ([PP_Doc]),terminaldefs_Syn_EChildren :: (Set.Set String)} wrap_EChildren :: T_EChildren -> Inh_EChildren -> Syn_EChildren wrap_EChildren (T_EChildren sem ) (Inh_EChildren _lhsInt ) = (let ( _lhsOargnames,_lhsOargnamesw,_lhsOargtps,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs) = sem _lhsInt in (Syn_EChildren _lhsOargnames _lhsOargnamesw _lhsOargtps _lhsOchildintros _lhsOdatatype _lhsOterminaldefs )) sem_EChildren_Cons :: T_EChild -> T_EChildren -> T_EChildren sem_EChildren_Cons (T_EChild hd_ ) (T_EChildren tl_ ) = (T_EChildren (\ _lhsInt -> (let _lhsOargnames :: ( [PP_Doc] ) _lhsOargnamesw :: ([PP_Doc]) _lhsOargtps :: ( [PP_Doc] ) _lhsOchildintros :: (Map.Map Identifier PP_Doc) _lhsOdatatype :: ([PP_Doc]) _lhsOterminaldefs :: (Set.Set String) _hdOnt :: NontermIdent _tlOnt :: NontermIdent _hdIargnames :: ( PP_Doc ) _hdIargnamesw :: ( PP_Doc ) _hdIargtps :: ( PP_Doc ) _hdIchildintros :: (Map.Map Identifier PP_Doc) _hdIdatatype :: PP_Doc _hdIterminaldefs :: (Set.Set String) _tlIargnames :: ( [PP_Doc] ) _tlIargnamesw :: ([PP_Doc]) _tlIargtps :: ( [PP_Doc] ) _tlIchildintros :: (Map.Map Identifier PP_Doc) _tlIdatatype :: ([PP_Doc]) _tlIterminaldefs :: (Set.Set String) -- use rule "ExecutionPlan2Hs.ag"(line 253, column 31) _lhsOargnames = ({-# LINE 253 "ExecutionPlan2Hs.ag" #-} _hdIargnames : _tlIargnames {-# LINE 228 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 109, column 32) _lhsOargnamesw = ({-# LINE 109 "ExecutionPlan2Hs.ag" #-} _hdIargnamesw : _tlIargnamesw {-# LINE 234 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 252, column 31) _lhsOargtps = ({-# LINE 252 "ExecutionPlan2Hs.ag" #-} _hdIargtps : _tlIargtps {-# LINE 240 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 318, column 41) _lhsOchildintros = ({-# LINE 318 "ExecutionPlan2Hs.ag" #-} _hdIchildintros `Map.union` _tlIchildintros {-# LINE 246 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 87, column 51) _lhsOdatatype = ({-# LINE 87 "ExecutionPlan2Hs.ag" #-} _hdIdatatype : _tlIdatatype {-# LINE 252 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 401, column 42) _lhsOterminaldefs = ({-# LINE 401 "ExecutionPlan2Hs.ag" #-} _hdIterminaldefs `Set.union` _tlIterminaldefs {-# LINE 258 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOnt = ({-# LINE 86 "ExecutionPlan2Hs.ag" #-} _lhsInt {-# LINE 264 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOnt = ({-# LINE 87 "ExecutionPlan2Hs.ag" #-} _lhsInt {-# LINE 270 "ExecutionPlan2Hs.hs" #-} ) ( _hdIargnames,_hdIargnamesw,_hdIargtps,_hdIchildintros,_hdIdatatype,_hdIterminaldefs) = hd_ _hdOnt ( _tlIargnames,_tlIargnamesw,_tlIargtps,_tlIchildintros,_tlIdatatype,_tlIterminaldefs) = tl_ _tlOnt in ( _lhsOargnames,_lhsOargnamesw,_lhsOargtps,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))) ) sem_EChildren_Nil :: T_EChildren sem_EChildren_Nil = (T_EChildren (\ _lhsInt -> (let _lhsOargnames :: ( [PP_Doc] ) _lhsOargnamesw :: ([PP_Doc]) _lhsOargtps :: ( [PP_Doc] ) _lhsOchildintros :: (Map.Map Identifier PP_Doc) _lhsOdatatype :: ([PP_Doc]) _lhsOterminaldefs :: (Set.Set String) -- use rule "ExecutionPlan2Hs.ag"(line 253, column 31) _lhsOargnames = ({-# LINE 253 "ExecutionPlan2Hs.ag" #-} [] {-# LINE 290 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 109, column 32) _lhsOargnamesw = ({-# LINE 109 "ExecutionPlan2Hs.ag" #-} [] {-# LINE 296 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 252, column 31) _lhsOargtps = ({-# LINE 252 "ExecutionPlan2Hs.ag" #-} [] {-# LINE 302 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 318, column 41) _lhsOchildintros = ({-# LINE 318 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 308 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 87, column 51) _lhsOdatatype = ({-# LINE 87 "ExecutionPlan2Hs.ag" #-} [] {-# LINE 314 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 401, column 42) _lhsOterminaldefs = ({-# LINE 401 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 320 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOargnames,_lhsOargnamesw,_lhsOargtps,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))) ) -- ENonterminal ------------------------------------------------ {- visit 0: inherited attributes: allchildvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) avisitdefs : Map.Map VisitIdentifier (Set.Set Identifier) avisituses : Map.Map VisitIdentifier (Set.Set Identifier) inhmap : Map.Map NontermIdent Attributes options : Options synmap : Map.Map NontermIdent Attributes typeSyns : TypeSyns wrappers : Set.Set NontermIdent synthesized attributes: childvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) debugoutput : PP_Doc visitdefs : Map.Map VisitIdentifier (Set.Set Identifier) visituses : Map.Map VisitIdentifier (Set.Set Identifier) alternatives: alternative ENonterminal: child nt : {NontermIdent} child params : {[Identifier]} child initial : {StateIdentifier} child initialv : {Maybe VisitIdentifier} child prods : EProductions visit 0: local datatype : _ local sem_nt : _ local outedges : _ local inedges : _ local allstates : _ local t_init : _ local t_states : _ local k_states : _ local wr_inh : _ local wr_syn : _ local genwrap : _ local wr_inhs : _ local wr_syns : _ local inhlist : _ local synlist : _ local wrapper : _ -} -- cata sem_ENonterminal :: ENonterminal -> T_ENonterminal sem_ENonterminal (ENonterminal _nt _params _initial _initialv _prods ) = (sem_ENonterminal_ENonterminal _nt _params _initial _initialv (sem_EProductions _prods ) ) -- semantic domain newtype T_ENonterminal = T_ENonterminal ((Map.Map VisitIdentifier (Identifier -> PP_Doc)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map NontermIdent Attributes) -> Options -> (Map.Map NontermIdent Attributes) -> TypeSyns -> (Set.Set NontermIdent) -> ( (Map.Map VisitIdentifier (Identifier -> PP_Doc)),PP_Doc,(Map.Map VisitIdentifier (Set.Set Identifier)),(Map.Map VisitIdentifier (Set.Set Identifier)))) data Inh_ENonterminal = Inh_ENonterminal {allchildvisit_Inh_ENonterminal :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),avisitdefs_Inh_ENonterminal :: (Map.Map VisitIdentifier (Set.Set Identifier)),avisituses_Inh_ENonterminal :: (Map.Map VisitIdentifier (Set.Set Identifier)),inhmap_Inh_ENonterminal :: (Map.Map NontermIdent Attributes),options_Inh_ENonterminal :: Options,synmap_Inh_ENonterminal :: (Map.Map NontermIdent Attributes),typeSyns_Inh_ENonterminal :: TypeSyns,wrappers_Inh_ENonterminal :: (Set.Set NontermIdent)} data Syn_ENonterminal = Syn_ENonterminal {childvisit_Syn_ENonterminal :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),debugoutput_Syn_ENonterminal :: PP_Doc,visitdefs_Syn_ENonterminal :: (Map.Map VisitIdentifier (Set.Set Identifier)),visituses_Syn_ENonterminal :: (Map.Map VisitIdentifier (Set.Set Identifier))} wrap_ENonterminal :: T_ENonterminal -> Inh_ENonterminal -> Syn_ENonterminal wrap_ENonterminal (T_ENonterminal sem ) (Inh_ENonterminal _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers ) = (let ( _lhsOchildvisit,_lhsOdebugoutput,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers in (Syn_ENonterminal _lhsOchildvisit _lhsOdebugoutput _lhsOvisitdefs _lhsOvisituses )) sem_ENonterminal_ENonterminal :: NontermIdent -> ([Identifier]) -> StateIdentifier -> (Maybe VisitIdentifier) -> T_EProductions -> T_ENonterminal sem_ENonterminal_ENonterminal nt_ params_ initial_ initialv_ (T_EProductions prods_ ) = (T_ENonterminal (\ _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers -> (let _prodsOrename :: Bool _lhsOdebugoutput :: PP_Doc _prodsOinhmap :: Attributes _prodsOsynmap :: Attributes _prodsOnt :: NontermIdent _prodsOinitial :: StateIdentifier _prodsOallstates :: (Set.Set StateIdentifier) _lhsOchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _lhsOvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _prodsOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _prodsOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _prodsOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _prodsIallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _prodsIchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _prodsIdatatype :: ([PP_Doc]) _prodsIsem_nt :: PP_Doc _prodsIsem_prod :: PP_Doc _prodsIt_visits :: PP_Doc _prodsIvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _prodsIvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) -- "ExecutionPlan2Hs.ag"(line 34, column 18) _prodsOrename = ({-# LINE 34 "ExecutionPlan2Hs.ag" #-} rename _lhsIoptions {-# LINE 428 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 54, column 18) _lhsOdebugoutput = ({-# LINE 54 "ExecutionPlan2Hs.ag" #-} (if dataTypes _lhsIoptions then _datatype else empty) >-< (if nt_ `Set.member` _lhsIwrappers then _wr_inh >-< _wr_syn >-< _wrapper else empty) >-< _sem_nt >-< _t_init >-< _t_states >-< _k_states >-< _prodsIt_visits >-< _prodsIsem_prod {-# LINE 445 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 74, column 18) _datatype = ({-# LINE 74 "ExecutionPlan2Hs.ag" #-} case lookup nt_ _lhsItypeSyns of Nothing -> "data" >#< nt_ >#< (vlist $ ("=" >#< head _prodsIdatatype) : (map ("|" >#<) $ tail _prodsIdatatype)) Just (List t) -> "type" >#< nt_ >#< "=" >#< "[" >#< show t >#< "]" Just x -> error $ "Type " ++ show x ++ " is not supported yet" {-# LINE 455 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 96, column 18) _sem_nt = ({-# LINE 96 "ExecutionPlan2Hs.ag" #-} "sem_" >|< nt_ >#< "::" >#< nt_ >#< "->" >#< "T_" >|< nt_ >-< case lookup nt_ _lhsItypeSyns of Nothing -> _prodsIsem_nt Just (List t) -> "sem_" >|< nt_ >#< "list" >#< "=" >#< "Prelude.foldr sem_" >|< nt_ >|< "_Cons" >#< "sem_" >|< nt_ >|< "_Nil" >#< "(" >#< "Prelude.map sem_" >|< show t >#< "list" >#< ")" {-# LINE 466 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 132, column 19) (Just _prodsOinhmap ) = ({-# LINE 132 "ExecutionPlan2Hs.ag" #-} Map.lookup nt_ _lhsIinhmap {-# LINE 472 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 133, column 19) (Just _prodsOsynmap ) = ({-# LINE 133 "ExecutionPlan2Hs.ag" #-} Map.lookup nt_ _lhsIsynmap {-# LINE 478 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 149, column 18) _outedges = ({-# LINE 149 "ExecutionPlan2Hs.ag" #-} Set.fromList $ map (\(_,f,_) -> f) _prodsIallvisits {-# LINE 484 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 150, column 18) _inedges = ({-# LINE 150 "ExecutionPlan2Hs.ag" #-} Set.fromList $ map (\(_,_,t) -> t) _prodsIallvisits {-# LINE 490 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 151, column 18) _allstates = ({-# LINE 151 "ExecutionPlan2Hs.ag" #-} Set.insert initial_ $ _inedges `Set.union` _outedges {-# LINE 496 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 152, column 18) _t_init = ({-# LINE 152 "ExecutionPlan2Hs.ag" #-} "type" >#< "T_" >|< nt_ >#< "=" >#< "T_" >|< nt_ >|< "_s" >|< initial_ {-# LINE 502 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 153, column 18) _t_states = ({-# LINE 153 "ExecutionPlan2Hs.ag" #-} vlist $ map (\st -> let nt_st = nt_ >|< "_s" >|< st t_st = "T_" >|< nt_st k_st = "K_" >|< nt_st c_st = "C_" >|< nt_st inv_st = "inv_" >|< nt_st in "data" >#< t_st >#< "where" >#< c_st >#< "::" >#< "{" >#< inv_st >#< "::" >#< "forall t." >#< k_st >#< "t" >#< "->" >#< "t" >#< "}" >#< "->" >#< t_st ) $ Set.toList _allstates {-# LINE 517 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 166, column 18) _k_states = ({-# LINE 166 "ExecutionPlan2Hs.ag" #-} vlist $ map (\st -> let nt_st = nt_ >|< "_s" >|< st k_st = "K_" >|< nt_st outg = filter (\(v,f,t) -> f == st) _prodsIallvisits visitlist = vlist $ map (\(v,f,t) -> "K_" >|< nt_ >|< "_v" >|< v >#< "::" >#< k_st >#< "T_" >|< nt_ >|< "_v" >|< v ) outg in "data" >#< k_st >#< "k" >#< "where" >-< indent 3 visitlist) $ Set.toList _allstates {-# LINE 531 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 194, column 18) _prodsOnt = ({-# LINE 194 "ExecutionPlan2Hs.ag" #-} nt_ {-# LINE 537 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 210, column 18) _wr_inh = ({-# LINE 210 "ExecutionPlan2Hs.ag" #-} _genwrap "Inh" _wr_inhs {-# LINE 543 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 211, column 18) _wr_syn = ({-# LINE 211 "ExecutionPlan2Hs.ag" #-} _genwrap "Syn" _wr_syns {-# LINE 549 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 212, column 18) _genwrap = ({-# LINE 212 "ExecutionPlan2Hs.ag" #-} \nm attr -> "data" >#< nm >|< "_" >|< nt_ >#< "=" >#< nm >|< "_" >|< nt_ >#< "{" >#< (ppCommas $ map (\(i,t) -> i >|< "_" >|< nm >|< "_" >|< nt_ >#< "::" >#< typeToHaskellString (Just nt_) [] t) attr) >#< "}" {-# LINE 557 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 215, column 18) _wr_inhs = ({-# LINE 215 "ExecutionPlan2Hs.ag" #-} Map.toList $ fromJust $ Map.lookup nt_ _lhsIinhmap {-# LINE 563 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 216, column 18) _wr_syns = ({-# LINE 216 "ExecutionPlan2Hs.ag" #-} Map.toList $ fromJust $ Map.lookup nt_ _lhsIsynmap {-# LINE 569 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 217, column 18) _inhlist = ({-# LINE 217 "ExecutionPlan2Hs.ag" #-} map (lhsname True . fst) _wr_inhs {-# LINE 575 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 218, column 18) _synlist = ({-# LINE 218 "ExecutionPlan2Hs.ag" #-} map (lhsname False . fst) _wr_syns {-# LINE 581 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 219, column 18) _wrapper = ({-# LINE 219 "ExecutionPlan2Hs.ag" #-} ("wrap_" >|< nt_ >#< "::" >#< "T_" >|< nt_ >#< "->" >#< "Inh_" >|< nt_ >#< "->" >#< "Syn_" >|< nt_) >-< (("wrap_" >|< nt_ >#< "sem" >#< "(" >#< "Inh_" >|< nt_ >#< ppSpaced _inhlist >#< ")" >#< "=") >-< indent 3 ("let" >#< "(" >#< ppCommas _synlist >#< "," >#< "_" >#< ")" >#< "=" >#< "runIdentity" >#< "$" >#< "(" >#< "inv_" >|< nt_ >|< "_s" >|< initial_ >#< "sem" >#< "K_" >|< nt_ >|< "_v" >|< fromJust initialv_ >#< ")" >#< ppSpaced _inhlist >-< "in " >#< "(" >#< "Syn_" >|< nt_ >#< ppSpaced _synlist >#< ")") ) {-# LINE 599 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 247, column 33) _prodsOinitial = ({-# LINE 247 "ExecutionPlan2Hs.ag" #-} initial_ {-# LINE 605 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 248, column 33) _prodsOallstates = ({-# LINE 248 "ExecutionPlan2Hs.ag" #-} _allstates {-# LINE 611 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 379, column 36) _lhsOchildvisit = ({-# LINE 379 "ExecutionPlan2Hs.ag" #-} _prodsIchildvisit {-# LINE 617 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 436, column 36) _lhsOvisitdefs = ({-# LINE 436 "ExecutionPlan2Hs.ag" #-} _prodsIvisitdefs {-# LINE 623 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 437, column 36) _lhsOvisituses = ({-# LINE 437 "ExecutionPlan2Hs.ag" #-} _prodsIvisituses {-# LINE 629 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _prodsOallchildvisit = ({-# LINE 378 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 635 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _prodsOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 641 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _prodsOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 647 "ExecutionPlan2Hs.hs" #-} ) ( _prodsIallvisits,_prodsIchildvisit,_prodsIdatatype,_prodsIsem_nt,_prodsIsem_prod,_prodsIt_visits,_prodsIvisitdefs,_prodsIvisituses) = prods_ _prodsOallchildvisit _prodsOallstates _prodsOavisitdefs _prodsOavisituses _prodsOinhmap _prodsOinitial _prodsOnt _prodsOrename _prodsOsynmap in ( _lhsOchildvisit,_lhsOdebugoutput,_lhsOvisitdefs,_lhsOvisituses))) ) -- ENonterminals ----------------------------------------------- {- visit 0: inherited attributes: allchildvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) avisitdefs : Map.Map VisitIdentifier (Set.Set Identifier) avisituses : Map.Map VisitIdentifier (Set.Set Identifier) inhmap : Map.Map NontermIdent Attributes options : Options synmap : Map.Map NontermIdent Attributes typeSyns : TypeSyns wrappers : Set.Set NontermIdent synthesized attributes: childvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) debugoutput : PP_Doc visitdefs : Map.Map VisitIdentifier (Set.Set Identifier) visituses : Map.Map VisitIdentifier (Set.Set Identifier) alternatives: alternative Cons: child hd : ENonterminal child tl : ENonterminals alternative Nil: -} -- cata sem_ENonterminals :: ENonterminals -> T_ENonterminals sem_ENonterminals list = (Prelude.foldr sem_ENonterminals_Cons sem_ENonterminals_Nil (Prelude.map sem_ENonterminal list) ) -- semantic domain newtype T_ENonterminals = T_ENonterminals ((Map.Map VisitIdentifier (Identifier -> PP_Doc)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map NontermIdent Attributes) -> Options -> (Map.Map NontermIdent Attributes) -> TypeSyns -> (Set.Set NontermIdent) -> ( (Map.Map VisitIdentifier (Identifier -> PP_Doc)),PP_Doc,(Map.Map VisitIdentifier (Set.Set Identifier)),(Map.Map VisitIdentifier (Set.Set Identifier)))) data Inh_ENonterminals = Inh_ENonterminals {allchildvisit_Inh_ENonterminals :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),avisitdefs_Inh_ENonterminals :: (Map.Map VisitIdentifier (Set.Set Identifier)),avisituses_Inh_ENonterminals :: (Map.Map VisitIdentifier (Set.Set Identifier)),inhmap_Inh_ENonterminals :: (Map.Map NontermIdent Attributes),options_Inh_ENonterminals :: Options,synmap_Inh_ENonterminals :: (Map.Map NontermIdent Attributes),typeSyns_Inh_ENonterminals :: TypeSyns,wrappers_Inh_ENonterminals :: (Set.Set NontermIdent)} data Syn_ENonterminals = Syn_ENonterminals {childvisit_Syn_ENonterminals :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),debugoutput_Syn_ENonterminals :: PP_Doc,visitdefs_Syn_ENonterminals :: (Map.Map VisitIdentifier (Set.Set Identifier)),visituses_Syn_ENonterminals :: (Map.Map VisitIdentifier (Set.Set Identifier))} wrap_ENonterminals :: T_ENonterminals -> Inh_ENonterminals -> Syn_ENonterminals wrap_ENonterminals (T_ENonterminals sem ) (Inh_ENonterminals _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers ) = (let ( _lhsOchildvisit,_lhsOdebugoutput,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers in (Syn_ENonterminals _lhsOchildvisit _lhsOdebugoutput _lhsOvisitdefs _lhsOvisituses )) sem_ENonterminals_Cons :: T_ENonterminal -> T_ENonterminals -> T_ENonterminals sem_ENonterminals_Cons (T_ENonterminal hd_ ) (T_ENonterminals tl_ ) = (T_ENonterminals (\ _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers -> (let _lhsOchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _lhsOdebugoutput :: PP_Doc _lhsOvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _hdOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOinhmap :: (Map.Map NontermIdent Attributes) _hdOoptions :: Options _hdOsynmap :: (Map.Map NontermIdent Attributes) _hdOtypeSyns :: TypeSyns _hdOwrappers :: (Set.Set NontermIdent) _tlOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _tlOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlOinhmap :: (Map.Map NontermIdent Attributes) _tlOoptions :: Options _tlOsynmap :: (Map.Map NontermIdent Attributes) _tlOtypeSyns :: TypeSyns _tlOwrappers :: (Set.Set NontermIdent) _hdIchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _hdIdebugoutput :: PP_Doc _hdIvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdIvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlIchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _tlIdebugoutput :: PP_Doc _tlIvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlIvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) -- use rule "ExecutionPlan2Hs.ag"(line 379, column 36) _lhsOchildvisit = ({-# LINE 379 "ExecutionPlan2Hs.ag" #-} _hdIchildvisit `Map.union` _tlIchildvisit {-# LINE 742 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 48, column 85) _lhsOdebugoutput = ({-# LINE 48 "ExecutionPlan2Hs.ag" #-} _hdIdebugoutput >-< _tlIdebugoutput {-# LINE 748 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 436, column 36) _lhsOvisitdefs = ({-# LINE 436 "ExecutionPlan2Hs.ag" #-} _hdIvisitdefs `uwSetUnion` _tlIvisitdefs {-# LINE 754 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 437, column 36) _lhsOvisituses = ({-# LINE 437 "ExecutionPlan2Hs.ag" #-} _hdIvisituses `uwSetUnion` _tlIvisituses {-# LINE 760 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOallchildvisit = ({-# LINE 378 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 766 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 772 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 778 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOinhmap = ({-# LINE 122 "ExecutionPlan2Hs.ag" #-} _lhsIinhmap {-# LINE 784 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOoptions = ({-# LINE 30 "ExecutionPlan2Hs.ag" #-} _lhsIoptions {-# LINE 790 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOsynmap = ({-# LINE 123 "ExecutionPlan2Hs.ag" #-} _lhsIsynmap {-# LINE 796 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOtypeSyns = ({-# LINE 68 "ExecutionPlan2Hs.ag" #-} _lhsItypeSyns {-# LINE 802 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOwrappers = ({-# LINE 48 "ExecutionPlan2Hs.ag" #-} _lhsIwrappers {-# LINE 808 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOallchildvisit = ({-# LINE 378 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 814 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 820 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 826 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOinhmap = ({-# LINE 122 "ExecutionPlan2Hs.ag" #-} _lhsIinhmap {-# LINE 832 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOoptions = ({-# LINE 30 "ExecutionPlan2Hs.ag" #-} _lhsIoptions {-# LINE 838 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOsynmap = ({-# LINE 123 "ExecutionPlan2Hs.ag" #-} _lhsIsynmap {-# LINE 844 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOtypeSyns = ({-# LINE 68 "ExecutionPlan2Hs.ag" #-} _lhsItypeSyns {-# LINE 850 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOwrappers = ({-# LINE 48 "ExecutionPlan2Hs.ag" #-} _lhsIwrappers {-# LINE 856 "ExecutionPlan2Hs.hs" #-} ) ( _hdIchildvisit,_hdIdebugoutput,_hdIvisitdefs,_hdIvisituses) = hd_ _hdOallchildvisit _hdOavisitdefs _hdOavisituses _hdOinhmap _hdOoptions _hdOsynmap _hdOtypeSyns _hdOwrappers ( _tlIchildvisit,_tlIdebugoutput,_tlIvisitdefs,_tlIvisituses) = tl_ _tlOallchildvisit _tlOavisitdefs _tlOavisituses _tlOinhmap _tlOoptions _tlOsynmap _tlOtypeSyns _tlOwrappers in ( _lhsOchildvisit,_lhsOdebugoutput,_lhsOvisitdefs,_lhsOvisituses))) ) sem_ENonterminals_Nil :: T_ENonterminals sem_ENonterminals_Nil = (T_ENonterminals (\ _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers -> (let _lhsOchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _lhsOdebugoutput :: PP_Doc _lhsOvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) -- use rule "ExecutionPlan2Hs.ag"(line 379, column 36) _lhsOchildvisit = ({-# LINE 379 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 881 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 48, column 85) _lhsOdebugoutput = ({-# LINE 48 "ExecutionPlan2Hs.ag" #-} empty {-# LINE 887 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 436, column 36) _lhsOvisitdefs = ({-# LINE 436 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 893 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 437, column 36) _lhsOvisituses = ({-# LINE 437 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 899 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOchildvisit,_lhsOdebugoutput,_lhsOvisitdefs,_lhsOvisituses))) ) -- EProduction ------------------------------------------------- {- visit 0: inherited attributes: allchildvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) allstates : Set.Set StateIdentifier avisitdefs : Map.Map VisitIdentifier (Set.Set Identifier) avisituses : Map.Map VisitIdentifier (Set.Set Identifier) inhmap : Attributes initial : StateIdentifier nt : NontermIdent rename : Bool synmap : Attributes synthesized attributes: allvisits : [(VisitIdentifier,StateIdentifier, StateIdentifier)] childvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) datatype : PP_Doc sem_nt : PP_Doc sem_prod : PP_Doc t_visits : PP_Doc visitdefs : Map.Map VisitIdentifier (Set.Set Identifier) visituses : Map.Map VisitIdentifier (Set.Set Identifier) alternatives: alternative EProduction: child con : {ConstructorIdent} child rules : ERules child children : EChildren child visits : Visits visit 0: local args : _ local statefns : _ local stargs : _ local stks : _ local stvisits : _ local stvs : _ -} -- cata sem_EProduction :: EProduction -> T_EProduction sem_EProduction (EProduction _con _rules _children _visits ) = (sem_EProduction_EProduction _con (sem_ERules _rules ) (sem_EChildren _children ) (sem_Visits _visits ) ) -- semantic domain newtype T_EProduction = T_EProduction ((Map.Map VisitIdentifier (Identifier -> PP_Doc)) -> (Set.Set StateIdentifier) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> Attributes -> StateIdentifier -> NontermIdent -> Bool -> Attributes -> ( ([(VisitIdentifier,StateIdentifier, StateIdentifier)]),(Map.Map VisitIdentifier (Identifier -> PP_Doc)),PP_Doc,PP_Doc,PP_Doc,PP_Doc,(Map.Map VisitIdentifier (Set.Set Identifier)),(Map.Map VisitIdentifier (Set.Set Identifier)))) data Inh_EProduction = Inh_EProduction {allchildvisit_Inh_EProduction :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),allstates_Inh_EProduction :: (Set.Set StateIdentifier),avisitdefs_Inh_EProduction :: (Map.Map VisitIdentifier (Set.Set Identifier)),avisituses_Inh_EProduction :: (Map.Map VisitIdentifier (Set.Set Identifier)),inhmap_Inh_EProduction :: Attributes,initial_Inh_EProduction :: StateIdentifier,nt_Inh_EProduction :: NontermIdent,rename_Inh_EProduction :: Bool,synmap_Inh_EProduction :: Attributes} data Syn_EProduction = Syn_EProduction {allvisits_Syn_EProduction :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]),childvisit_Syn_EProduction :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),datatype_Syn_EProduction :: PP_Doc,sem_nt_Syn_EProduction :: PP_Doc,sem_prod_Syn_EProduction :: PP_Doc,t_visits_Syn_EProduction :: PP_Doc,visitdefs_Syn_EProduction :: (Map.Map VisitIdentifier (Set.Set Identifier)),visituses_Syn_EProduction :: (Map.Map VisitIdentifier (Set.Set Identifier))} wrap_EProduction :: T_EProduction -> Inh_EProduction -> Syn_EProduction wrap_EProduction (T_EProduction sem ) (Inh_EProduction _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsInt _lhsIrename _lhsIsynmap ) = (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOdatatype,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsInt _lhsIrename _lhsIsynmap in (Syn_EProduction _lhsOallvisits _lhsOchildvisit _lhsOdatatype _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitdefs _lhsOvisituses )) sem_EProduction_EProduction :: ConstructorIdent -> T_ERules -> T_EChildren -> T_Visits -> T_EProduction sem_EProduction_EProduction con_ (T_ERules rules_ ) (T_EChildren children_ ) (T_Visits visits_ ) = (T_EProduction (\ _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsInt _lhsIrename _lhsIsynmap -> (let _lhsOdatatype :: PP_Doc _lhsOsem_nt :: PP_Doc _rulesOusedrules :: (Set.Set Identifier) _lhsOsem_prod :: PP_Doc _visitsOmrules :: (Map.Map Identifier PP_Doc) _visitsOchildintros :: (Map.Map Identifier PP_Doc) _visitsOallintramap :: (Map.Map StateIdentifier (Set.Set String)) _visitsOterminaldefs :: (Set.Set String) _visitsOruledefs :: (Map.Map Identifier (Set.Set String)) _visitsOruleuses :: (Map.Map Identifier (Set.Set String)) _lhsOchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _lhsOt_visits :: PP_Doc _lhsOvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _childrenOnt :: NontermIdent _visitsOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _visitsOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _visitsOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _visitsOinhmap :: Attributes _visitsOnt :: NontermIdent _visitsOsynmap :: Attributes _rulesImrules :: (Map.Map Identifier PP_Doc) _rulesIruledefs :: (Map.Map Identifier (Set.Set String)) _rulesIruleuses :: (Map.Map Identifier (Set.Set String)) _rulesIsem_rules :: PP_Doc _childrenIargnames :: ( [PP_Doc] ) _childrenIargnamesw :: ([PP_Doc]) _childrenIargtps :: ( [PP_Doc] ) _childrenIchildintros :: (Map.Map Identifier PP_Doc) _childrenIdatatype :: ([PP_Doc]) _childrenIterminaldefs :: (Set.Set String) _visitsIallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _visitsIchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _visitsIintramap :: (Map.Map StateIdentifier (Set.Set String)) _visitsIsem_visit :: ( [(StateIdentifier,PP_Doc)] ) _visitsIt_visits :: PP_Doc _visitsIusedrules :: (Set.Set Identifier) _visitsIvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _visitsIvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) -- "ExecutionPlan2Hs.ag"(line 84, column 17) _lhsOdatatype = ({-# LINE 84 "ExecutionPlan2Hs.ag" #-} conname _lhsIrename _lhsInt con_ >#< ppSpaced _childrenIdatatype {-# LINE 1021 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 105, column 17) _lhsOsem_nt = ({-# LINE 105 "ExecutionPlan2Hs.ag" #-} "sem_" >|< _lhsInt >#< "(" >#< conname _lhsIrename _lhsInt con_ >#< ppSpaced _childrenIargnames >#< ")" >#< "=" >#< "sem_" >|< _lhsInt >|< "_" >|< con_ >#< ppSpaced _childrenIargnamesw {-# LINE 1028 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 182, column 17) _rulesOusedrules = ({-# LINE 182 "ExecutionPlan2Hs.ag" #-} _visitsIusedrules {-# LINE 1034 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 268, column 17) _args = ({-# LINE 268 "ExecutionPlan2Hs.ag" #-} _childrenIargnames {-# LINE 1040 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 269, column 17) _lhsOsem_prod = ({-# LINE 269 "ExecutionPlan2Hs.ag" #-} "sem_" >|< _lhsInt >|< "_" >|< con_ >#< "::" >#< ppSpaced _childrenIargtps >#< "T_" >|< _lhsInt >-< "sem_" >|< _lhsInt >|< "_" >|< con_ >#< ppSpaced _args >#< "=" >#< "st" >|< _lhsIinitial >#< "where" >-< (indent 3 $ vlist _statefns >-< _rulesIsem_rules) {-# LINE 1049 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 273, column 17) _statefns = ({-# LINE 273 "ExecutionPlan2Hs.ag" #-} map (\st -> "st" >|< st >#< _stargs st >#< "=" >#< "C_" >|< _lhsInt >|< "_s" >|< st >#< "k" >|< st >#< "where" >-< indent 3 (_stks st >-< _stvs st) ) $ Set.toList _lhsIallstates {-# LINE 1058 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 277, column 17) _stargs = ({-# LINE 277 "ExecutionPlan2Hs.ag" #-} \st -> ppSpaced $ Set.toList $ maybe Set.empty id $ Map.lookup st _visitsIintramap {-# LINE 1064 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 278, column 17) _stks = ({-# LINE 278 "ExecutionPlan2Hs.ag" #-} \st -> "k" >|< st >#< "::" >#< "K_" >|< _lhsInt >|< "_s" >|< st >#< "t" >#< "->" >#< "t" >-< vlist (map (\(v,f,t) -> "k" >|< st >#< "K_" >|< _lhsInt >|< "_v" >|< v >#< "=" >#< "v" >|< v) $ _stvisits st) >-< if null (_stvisits st) then "k" >|< st >#< "_" >#< "=" >#< "error \"unreachable\"" else empty {-# LINE 1075 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 284, column 17) _stvisits = ({-# LINE 284 "ExecutionPlan2Hs.ag" #-} \st -> filter (\(v,f,t) -> f == st) _visitsIallvisits {-# LINE 1081 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 285, column 17) _stvs = ({-# LINE 285 "ExecutionPlan2Hs.ag" #-} \st -> vlist $ map snd $ filter (\(f,pp) -> f == st) _visitsIsem_visit {-# LINE 1087 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 286, column 17) _visitsOmrules = ({-# LINE 286 "ExecutionPlan2Hs.ag" #-} _rulesImrules {-# LINE 1093 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 324, column 17) _visitsOchildintros = ({-# LINE 324 "ExecutionPlan2Hs.ag" #-} _childrenIchildintros {-# LINE 1099 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 409, column 17) _visitsOallintramap = ({-# LINE 409 "ExecutionPlan2Hs.ag" #-} _visitsIintramap {-# LINE 1105 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 410, column 17) _visitsOterminaldefs = ({-# LINE 410 "ExecutionPlan2Hs.ag" #-} _childrenIterminaldefs {-# LINE 1111 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 429, column 17) _visitsOruledefs = ({-# LINE 429 "ExecutionPlan2Hs.ag" #-} _rulesIruledefs {-# LINE 1117 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 430, column 17) _visitsOruleuses = ({-# LINE 430 "ExecutionPlan2Hs.ag" #-} _rulesIruleuses {-# LINE 1123 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 379, column 36) _lhsOchildvisit = ({-# LINE 379 "ExecutionPlan2Hs.ag" #-} _visitsIchildvisit {-# LINE 1129 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 188, column 54) _lhsOt_visits = ({-# LINE 188 "ExecutionPlan2Hs.ag" #-} _visitsIt_visits {-# LINE 1135 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 436, column 36) _lhsOvisitdefs = ({-# LINE 436 "ExecutionPlan2Hs.ag" #-} _visitsIvisitdefs {-# LINE 1141 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 437, column 36) _lhsOvisituses = ({-# LINE 437 "ExecutionPlan2Hs.ag" #-} _visitsIvisituses {-# LINE 1147 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (up) _lhsOallvisits = ({-# LINE 138 "ExecutionPlan2Hs.ag" #-} _visitsIallvisits {-# LINE 1153 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _childrenOnt = ({-# LINE 87 "ExecutionPlan2Hs.ag" #-} _lhsInt {-# LINE 1159 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _visitsOallchildvisit = ({-# LINE 378 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 1165 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _visitsOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 1171 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _visitsOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 1177 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _visitsOinhmap = ({-# LINE 128 "ExecutionPlan2Hs.ag" #-} _lhsIinhmap {-# LINE 1183 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _visitsOnt = ({-# LINE 188 "ExecutionPlan2Hs.ag" #-} _lhsInt {-# LINE 1189 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _visitsOsynmap = ({-# LINE 129 "ExecutionPlan2Hs.ag" #-} _lhsIsynmap {-# LINE 1195 "ExecutionPlan2Hs.hs" #-} ) ( _rulesImrules,_rulesIruledefs,_rulesIruleuses,_rulesIsem_rules) = rules_ _rulesOusedrules ( _childrenIargnames,_childrenIargnamesw,_childrenIargtps,_childrenIchildintros,_childrenIdatatype,_childrenIterminaldefs) = children_ _childrenOnt ( _visitsIallvisits,_visitsIchildvisit,_visitsIintramap,_visitsIsem_visit,_visitsIt_visits,_visitsIusedrules,_visitsIvisitdefs,_visitsIvisituses) = visits_ _visitsOallchildvisit _visitsOallintramap _visitsOavisitdefs _visitsOavisituses _visitsOchildintros _visitsOinhmap _visitsOmrules _visitsOnt _visitsOruledefs _visitsOruleuses _visitsOsynmap _visitsOterminaldefs in ( _lhsOallvisits,_lhsOchildvisit,_lhsOdatatype,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitdefs,_lhsOvisituses))) ) -- EProductions ------------------------------------------------ {- visit 0: inherited attributes: allchildvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) allstates : Set.Set StateIdentifier avisitdefs : Map.Map VisitIdentifier (Set.Set Identifier) avisituses : Map.Map VisitIdentifier (Set.Set Identifier) inhmap : Attributes initial : StateIdentifier nt : NontermIdent rename : Bool synmap : Attributes synthesized attributes: allvisits : [(VisitIdentifier,StateIdentifier, StateIdentifier)] childvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) datatype : [PP_Doc] sem_nt : PP_Doc sem_prod : PP_Doc t_visits : PP_Doc visitdefs : Map.Map VisitIdentifier (Set.Set Identifier) visituses : Map.Map VisitIdentifier (Set.Set Identifier) alternatives: alternative Cons: child hd : EProduction child tl : EProductions alternative Nil: -} -- cata sem_EProductions :: EProductions -> T_EProductions sem_EProductions list = (Prelude.foldr sem_EProductions_Cons sem_EProductions_Nil (Prelude.map sem_EProduction list) ) -- semantic domain newtype T_EProductions = T_EProductions ((Map.Map VisitIdentifier (Identifier -> PP_Doc)) -> (Set.Set StateIdentifier) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> Attributes -> StateIdentifier -> NontermIdent -> Bool -> Attributes -> ( ([(VisitIdentifier,StateIdentifier, StateIdentifier)]),(Map.Map VisitIdentifier (Identifier -> PP_Doc)),([PP_Doc]),PP_Doc,PP_Doc,PP_Doc,(Map.Map VisitIdentifier (Set.Set Identifier)),(Map.Map VisitIdentifier (Set.Set Identifier)))) data Inh_EProductions = Inh_EProductions {allchildvisit_Inh_EProductions :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),allstates_Inh_EProductions :: (Set.Set StateIdentifier),avisitdefs_Inh_EProductions :: (Map.Map VisitIdentifier (Set.Set Identifier)),avisituses_Inh_EProductions :: (Map.Map VisitIdentifier (Set.Set Identifier)),inhmap_Inh_EProductions :: Attributes,initial_Inh_EProductions :: StateIdentifier,nt_Inh_EProductions :: NontermIdent,rename_Inh_EProductions :: Bool,synmap_Inh_EProductions :: Attributes} data Syn_EProductions = Syn_EProductions {allvisits_Syn_EProductions :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]),childvisit_Syn_EProductions :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),datatype_Syn_EProductions :: ([PP_Doc]),sem_nt_Syn_EProductions :: PP_Doc,sem_prod_Syn_EProductions :: PP_Doc,t_visits_Syn_EProductions :: PP_Doc,visitdefs_Syn_EProductions :: (Map.Map VisitIdentifier (Set.Set Identifier)),visituses_Syn_EProductions :: (Map.Map VisitIdentifier (Set.Set Identifier))} wrap_EProductions :: T_EProductions -> Inh_EProductions -> Syn_EProductions wrap_EProductions (T_EProductions sem ) (Inh_EProductions _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsInt _lhsIrename _lhsIsynmap ) = (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOdatatype,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsInt _lhsIrename _lhsIsynmap in (Syn_EProductions _lhsOallvisits _lhsOchildvisit _lhsOdatatype _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitdefs _lhsOvisituses )) sem_EProductions_Cons :: T_EProduction -> T_EProductions -> T_EProductions sem_EProductions_Cons (T_EProduction hd_ ) (T_EProductions tl_ ) = (T_EProductions (\ _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsInt _lhsIrename _lhsIsynmap -> (let _lhsOallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _lhsOt_visits :: PP_Doc _lhsOchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _lhsOdatatype :: ([PP_Doc]) _lhsOsem_nt :: PP_Doc _lhsOsem_prod :: PP_Doc _lhsOvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _hdOallstates :: (Set.Set StateIdentifier) _hdOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOinhmap :: Attributes _hdOinitial :: StateIdentifier _hdOnt :: NontermIdent _hdOrename :: Bool _hdOsynmap :: Attributes _tlOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _tlOallstates :: (Set.Set StateIdentifier) _tlOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlOinhmap :: Attributes _tlOinitial :: StateIdentifier _tlOnt :: NontermIdent _tlOrename :: Bool _tlOsynmap :: Attributes _hdIallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _hdIchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _hdIdatatype :: PP_Doc _hdIsem_nt :: PP_Doc _hdIsem_prod :: PP_Doc _hdIt_visits :: PP_Doc _hdIvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdIvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlIallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _tlIchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _tlIdatatype :: ([PP_Doc]) _tlIsem_nt :: PP_Doc _tlIsem_prod :: PP_Doc _tlIt_visits :: PP_Doc _tlIvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlIvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) -- "ExecutionPlan2Hs.ag"(line 144, column 10) _lhsOallvisits = ({-# LINE 144 "ExecutionPlan2Hs.ag" #-} _hdIallvisits {-# LINE 1315 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 191, column 10) _lhsOt_visits = ({-# LINE 191 "ExecutionPlan2Hs.ag" #-} _hdIt_visits {-# LINE 1321 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 379, column 36) _lhsOchildvisit = ({-# LINE 379 "ExecutionPlan2Hs.ag" #-} _hdIchildvisit `Map.union` _tlIchildvisit {-# LINE 1327 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 81, column 34) _lhsOdatatype = ({-# LINE 81 "ExecutionPlan2Hs.ag" #-} _hdIdatatype : _tlIdatatype {-# LINE 1333 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 103, column 44) _lhsOsem_nt = ({-# LINE 103 "ExecutionPlan2Hs.ag" #-} _hdIsem_nt >-< _tlIsem_nt {-# LINE 1339 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 244, column 34) _lhsOsem_prod = ({-# LINE 244 "ExecutionPlan2Hs.ag" #-} _hdIsem_prod >-< _tlIsem_prod {-# LINE 1345 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 436, column 36) _lhsOvisitdefs = ({-# LINE 436 "ExecutionPlan2Hs.ag" #-} _hdIvisitdefs `uwSetUnion` _tlIvisitdefs {-# LINE 1351 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 437, column 36) _lhsOvisituses = ({-# LINE 437 "ExecutionPlan2Hs.ag" #-} _hdIvisituses `uwSetUnion` _tlIvisituses {-# LINE 1357 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOallchildvisit = ({-# LINE 378 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 1363 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOallstates = ({-# LINE 246 "ExecutionPlan2Hs.ag" #-} _lhsIallstates {-# LINE 1369 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 1375 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 1381 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOinhmap = ({-# LINE 128 "ExecutionPlan2Hs.ag" #-} _lhsIinhmap {-# LINE 1387 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOinitial = ({-# LINE 246 "ExecutionPlan2Hs.ag" #-} _lhsIinitial {-# LINE 1393 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOnt = ({-# LINE 188 "ExecutionPlan2Hs.ag" #-} _lhsInt {-# LINE 1399 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOrename = ({-# LINE 31 "ExecutionPlan2Hs.ag" #-} _lhsIrename {-# LINE 1405 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOsynmap = ({-# LINE 129 "ExecutionPlan2Hs.ag" #-} _lhsIsynmap {-# LINE 1411 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOallchildvisit = ({-# LINE 378 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 1417 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOallstates = ({-# LINE 246 "ExecutionPlan2Hs.ag" #-} _lhsIallstates {-# LINE 1423 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 1429 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 1435 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOinhmap = ({-# LINE 128 "ExecutionPlan2Hs.ag" #-} _lhsIinhmap {-# LINE 1441 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOinitial = ({-# LINE 246 "ExecutionPlan2Hs.ag" #-} _lhsIinitial {-# LINE 1447 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOnt = ({-# LINE 188 "ExecutionPlan2Hs.ag" #-} _lhsInt {-# LINE 1453 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOrename = ({-# LINE 31 "ExecutionPlan2Hs.ag" #-} _lhsIrename {-# LINE 1459 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOsynmap = ({-# LINE 129 "ExecutionPlan2Hs.ag" #-} _lhsIsynmap {-# LINE 1465 "ExecutionPlan2Hs.hs" #-} ) ( _hdIallvisits,_hdIchildvisit,_hdIdatatype,_hdIsem_nt,_hdIsem_prod,_hdIt_visits,_hdIvisitdefs,_hdIvisituses) = hd_ _hdOallchildvisit _hdOallstates _hdOavisitdefs _hdOavisituses _hdOinhmap _hdOinitial _hdOnt _hdOrename _hdOsynmap ( _tlIallvisits,_tlIchildvisit,_tlIdatatype,_tlIsem_nt,_tlIsem_prod,_tlIt_visits,_tlIvisitdefs,_tlIvisituses) = tl_ _tlOallchildvisit _tlOallstates _tlOavisitdefs _tlOavisituses _tlOinhmap _tlOinitial _tlOnt _tlOrename _tlOsynmap in ( _lhsOallvisits,_lhsOchildvisit,_lhsOdatatype,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitdefs,_lhsOvisituses))) ) sem_EProductions_Nil :: T_EProductions sem_EProductions_Nil = (T_EProductions (\ _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsInt _lhsIrename _lhsIsynmap -> (let _lhsOallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _lhsOchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _lhsOdatatype :: ([PP_Doc]) _lhsOsem_nt :: PP_Doc _lhsOsem_prod :: PP_Doc _lhsOt_visits :: PP_Doc _lhsOvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) -- "ExecutionPlan2Hs.ag"(line 145, column 10) _lhsOallvisits = ({-# LINE 145 "ExecutionPlan2Hs.ag" #-} error "Every nonterminal should have at least 1 production" {-# LINE 1495 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 379, column 36) _lhsOchildvisit = ({-# LINE 379 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 1501 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 81, column 34) _lhsOdatatype = ({-# LINE 81 "ExecutionPlan2Hs.ag" #-} [] {-# LINE 1507 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 103, column 44) _lhsOsem_nt = ({-# LINE 103 "ExecutionPlan2Hs.ag" #-} empty {-# LINE 1513 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 244, column 34) _lhsOsem_prod = ({-# LINE 244 "ExecutionPlan2Hs.ag" #-} empty {-# LINE 1519 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 188, column 54) _lhsOt_visits = ({-# LINE 188 "ExecutionPlan2Hs.ag" #-} empty {-# LINE 1525 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 436, column 36) _lhsOvisitdefs = ({-# LINE 436 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 1531 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 437, column 36) _lhsOvisituses = ({-# LINE 437 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 1537 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOallvisits,_lhsOchildvisit,_lhsOdatatype,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitdefs,_lhsOvisituses))) ) -- ERule ------------------------------------------------------- {- visit 0: inherited attribute: usedrules : Set.Set Identifier synthesized attributes: mrules : Map.Map Identifier PP_Doc ruledefs : Map.Map Identifier (Set.Set String) ruleuses : Map.Map Identifier (Set.Set String) sem_rules : PP_Doc alternatives: alternative ERule: child name : {Identifier} child pattern : Pattern child rhs : Expression child owrt : {Bool} child origin : {String} child explicit : {Bool} visit 0: local attrlst : _ -} -- cata sem_ERule :: ERule -> T_ERule sem_ERule (ERule _name _pattern _rhs _owrt _origin _explicit ) = (sem_ERule_ERule _name (sem_Pattern _pattern ) (sem_Expression _rhs ) _owrt _origin _explicit ) -- semantic domain newtype T_ERule = T_ERule ((Set.Set Identifier) -> ( (Map.Map Identifier PP_Doc),(Map.Map Identifier (Set.Set String)),(Map.Map Identifier (Set.Set String)),PP_Doc)) data Inh_ERule = Inh_ERule {usedrules_Inh_ERule :: (Set.Set Identifier)} data Syn_ERule = Syn_ERule {mrules_Syn_ERule :: (Map.Map Identifier PP_Doc),ruledefs_Syn_ERule :: (Map.Map Identifier (Set.Set String)),ruleuses_Syn_ERule :: (Map.Map Identifier (Set.Set String)),sem_rules_Syn_ERule :: PP_Doc} wrap_ERule :: T_ERule -> Inh_ERule -> Syn_ERule wrap_ERule (T_ERule sem ) (Inh_ERule _lhsIusedrules ) = (let ( _lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules) = sem _lhsIusedrules in (Syn_ERule _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules )) sem_ERule_ERule :: Identifier -> T_Pattern -> T_Expression -> Bool -> String -> Bool -> T_ERule sem_ERule_ERule name_ (T_Pattern pattern_ ) (T_Expression rhs_ ) owrt_ origin_ explicit_ = (T_ERule (\ _lhsIusedrules -> (let _lhsOsem_rules :: PP_Doc _lhsOmrules :: (Map.Map Identifier PP_Doc) _lhsOruledefs :: (Map.Map Identifier (Set.Set String)) _lhsOruleuses :: (Map.Map Identifier (Set.Set String)) _patternIattrs :: (Set.Set String) _patternIcopy :: Pattern _patternIsem_lhs :: PP_Doc _rhsIattrs :: (Set.Set String) _rhsIsemfunc :: PP_Doc -- "ExecutionPlan2Hs.ag"(line 337, column 11) _lhsOsem_rules = ({-# LINE 337 "ExecutionPlan2Hs.ag" #-} if Set.member name_ _lhsIusedrules then (name_ >#< "=" >#< (if Set.null _rhsIattrs then empty else "\\" >|< _attrlst >#< "->") >#< _rhsIsemfunc) else empty {-# LINE 1605 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 344, column 11) _attrlst = ({-# LINE 344 "ExecutionPlan2Hs.ag" #-} ppSpaced $ Set.toList _rhsIattrs {-# LINE 1611 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 345, column 11) _lhsOmrules = ({-# LINE 345 "ExecutionPlan2Hs.ag" #-} Map.singleton name_ $ _patternIsem_lhs >#< "<-" >#< "return" >#< "$" >#< name_ >#< _attrlst {-# LINE 1617 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 425, column 11) _lhsOruledefs = ({-# LINE 425 "ExecutionPlan2Hs.ag" #-} Map.singleton name_ _patternIattrs {-# LINE 1623 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 426, column 11) _lhsOruleuses = ({-# LINE 426 "ExecutionPlan2Hs.ag" #-} Map.singleton name_ _rhsIattrs {-# LINE 1629 "ExecutionPlan2Hs.hs" #-} ) ( _patternIattrs,_patternIcopy,_patternIsem_lhs) = pattern_ ( _rhsIattrs,_rhsIsemfunc) = rhs_ in ( _lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules))) ) -- ERules ------------------------------------------------------ {- visit 0: inherited attribute: usedrules : Set.Set Identifier synthesized attributes: mrules : Map.Map Identifier PP_Doc ruledefs : Map.Map Identifier (Set.Set String) ruleuses : Map.Map Identifier (Set.Set String) sem_rules : PP_Doc alternatives: alternative Cons: child hd : ERule child tl : ERules alternative Nil: -} -- cata sem_ERules :: ERules -> T_ERules sem_ERules list = (Prelude.foldr sem_ERules_Cons sem_ERules_Nil (Prelude.map sem_ERule list) ) -- semantic domain newtype T_ERules = T_ERules ((Set.Set Identifier) -> ( (Map.Map Identifier PP_Doc),(Map.Map Identifier (Set.Set String)),(Map.Map Identifier (Set.Set String)),PP_Doc)) data Inh_ERules = Inh_ERules {usedrules_Inh_ERules :: (Set.Set Identifier)} data Syn_ERules = Syn_ERules {mrules_Syn_ERules :: (Map.Map Identifier PP_Doc),ruledefs_Syn_ERules :: (Map.Map Identifier (Set.Set String)),ruleuses_Syn_ERules :: (Map.Map Identifier (Set.Set String)),sem_rules_Syn_ERules :: PP_Doc} wrap_ERules :: T_ERules -> Inh_ERules -> Syn_ERules wrap_ERules (T_ERules sem ) (Inh_ERules _lhsIusedrules ) = (let ( _lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules) = sem _lhsIusedrules in (Syn_ERules _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules )) sem_ERules_Cons :: T_ERule -> T_ERules -> T_ERules sem_ERules_Cons (T_ERule hd_ ) (T_ERules tl_ ) = (T_ERules (\ _lhsIusedrules -> (let _lhsOmrules :: (Map.Map Identifier PP_Doc) _lhsOruledefs :: (Map.Map Identifier (Set.Set String)) _lhsOruleuses :: (Map.Map Identifier (Set.Set String)) _lhsOsem_rules :: PP_Doc _hdOusedrules :: (Set.Set Identifier) _tlOusedrules :: (Set.Set Identifier) _hdImrules :: (Map.Map Identifier PP_Doc) _hdIruledefs :: (Map.Map Identifier (Set.Set String)) _hdIruleuses :: (Map.Map Identifier (Set.Set String)) _hdIsem_rules :: PP_Doc _tlImrules :: (Map.Map Identifier PP_Doc) _tlIruledefs :: (Map.Map Identifier (Set.Set String)) _tlIruleuses :: (Map.Map Identifier (Set.Set String)) _tlIsem_rules :: PP_Doc -- use rule "ExecutionPlan2Hs.ag"(line 334, column 32) _lhsOmrules = ({-# LINE 334 "ExecutionPlan2Hs.ag" #-} _hdImrules `Map.union` _tlImrules {-# LINE 1691 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 418, column 34) _lhsOruledefs = ({-# LINE 418 "ExecutionPlan2Hs.ag" #-} _hdIruledefs `uwSetUnion` _tlIruledefs {-# LINE 1697 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 419, column 34) _lhsOruleuses = ({-# LINE 419 "ExecutionPlan2Hs.ag" #-} _hdIruleuses `uwSetUnion` _tlIruleuses {-# LINE 1703 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 333, column 35) _lhsOsem_rules = ({-# LINE 333 "ExecutionPlan2Hs.ag" #-} _hdIsem_rules >-< _tlIsem_rules {-# LINE 1709 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOusedrules = ({-# LINE 176 "ExecutionPlan2Hs.ag" #-} _lhsIusedrules {-# LINE 1715 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOusedrules = ({-# LINE 176 "ExecutionPlan2Hs.ag" #-} _lhsIusedrules {-# LINE 1721 "ExecutionPlan2Hs.hs" #-} ) ( _hdImrules,_hdIruledefs,_hdIruleuses,_hdIsem_rules) = hd_ _hdOusedrules ( _tlImrules,_tlIruledefs,_tlIruleuses,_tlIsem_rules) = tl_ _tlOusedrules in ( _lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules))) ) sem_ERules_Nil :: T_ERules sem_ERules_Nil = (T_ERules (\ _lhsIusedrules -> (let _lhsOmrules :: (Map.Map Identifier PP_Doc) _lhsOruledefs :: (Map.Map Identifier (Set.Set String)) _lhsOruleuses :: (Map.Map Identifier (Set.Set String)) _lhsOsem_rules :: PP_Doc -- use rule "ExecutionPlan2Hs.ag"(line 334, column 32) _lhsOmrules = ({-# LINE 334 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 1739 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 418, column 34) _lhsOruledefs = ({-# LINE 418 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 1745 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 419, column 34) _lhsOruleuses = ({-# LINE 419 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 1751 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 333, column 35) _lhsOsem_rules = ({-# LINE 333 "ExecutionPlan2Hs.ag" #-} empty {-# LINE 1757 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules))) ) -- ExecutionPlan ----------------------------------------------- {- visit 0: inherited attributes: importBlocks : PP_Doc inhmap : Map.Map NontermIdent Attributes mainName : String moduleHeader : String -> String -> String -> Bool -> String options : Options pragmaBlocks : String synmap : Map.Map NontermIdent Attributes textBlocks : PP_Doc synthesized attribute: debugoutput : PP_Doc alternatives: alternative ExecutionPlan: child nonts : ENonterminals child typeSyns : {TypeSyns} child wrappers : {Set.Set NontermIdent} -} -- cata sem_ExecutionPlan :: ExecutionPlan -> T_ExecutionPlan sem_ExecutionPlan (ExecutionPlan _nonts _typeSyns _wrappers ) = (sem_ExecutionPlan_ExecutionPlan (sem_ENonterminals _nonts ) _typeSyns _wrappers ) -- semantic domain newtype T_ExecutionPlan = T_ExecutionPlan (PP_Doc -> (Map.Map NontermIdent Attributes) -> String -> (String -> String -> String -> Bool -> String) -> Options -> String -> (Map.Map NontermIdent Attributes) -> PP_Doc -> ( PP_Doc)) data Inh_ExecutionPlan = Inh_ExecutionPlan {importBlocks_Inh_ExecutionPlan :: PP_Doc,inhmap_Inh_ExecutionPlan :: (Map.Map NontermIdent Attributes),mainName_Inh_ExecutionPlan :: String,moduleHeader_Inh_ExecutionPlan :: (String -> String -> String -> Bool -> String),options_Inh_ExecutionPlan :: Options,pragmaBlocks_Inh_ExecutionPlan :: String,synmap_Inh_ExecutionPlan :: (Map.Map NontermIdent Attributes),textBlocks_Inh_ExecutionPlan :: PP_Doc} data Syn_ExecutionPlan = Syn_ExecutionPlan {debugoutput_Syn_ExecutionPlan :: PP_Doc} wrap_ExecutionPlan :: T_ExecutionPlan -> Inh_ExecutionPlan -> Syn_ExecutionPlan wrap_ExecutionPlan (T_ExecutionPlan sem ) (Inh_ExecutionPlan _lhsIimportBlocks _lhsIinhmap _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks ) = (let ( _lhsOdebugoutput) = sem _lhsIimportBlocks _lhsIinhmap _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks in (Syn_ExecutionPlan _lhsOdebugoutput )) sem_ExecutionPlan_ExecutionPlan :: T_ENonterminals -> TypeSyns -> (Set.Set NontermIdent) -> T_ExecutionPlan sem_ExecutionPlan_ExecutionPlan (T_ENonterminals nonts_ ) typeSyns_ wrappers_ = (T_ExecutionPlan (\ _lhsIimportBlocks _lhsIinhmap _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks -> (let _lhsOdebugoutput :: PP_Doc _nontsOwrappers :: (Set.Set NontermIdent) _nontsOtypeSyns :: TypeSyns _nontsOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _nontsOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _nontsOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _nontsOinhmap :: (Map.Map NontermIdent Attributes) _nontsOoptions :: Options _nontsOsynmap :: (Map.Map NontermIdent Attributes) _nontsIchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _nontsIdebugoutput :: PP_Doc _nontsIvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _nontsIvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) -- "ExecutionPlan2Hs.ag"(line 40, column 19) _lhsOdebugoutput = ({-# LINE 40 "ExecutionPlan2Hs.ag" #-} "{-# LANGUAGE Rank2Types, GADTs, EmptyDataDecls #-}" >-< _lhsIpragmaBlocks >-< _lhsImoduleHeader _lhsImainName "" "" False >-< "import Control.Monad.Identity" >-< _lhsIimportBlocks >-< _lhsItextBlocks >-< _nontsIdebugoutput {-# LINE 1839 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 51, column 19) _nontsOwrappers = ({-# LINE 51 "ExecutionPlan2Hs.ag" #-} wrappers_ {-# LINE 1845 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 71, column 19) _nontsOtypeSyns = ({-# LINE 71 "ExecutionPlan2Hs.ag" #-} typeSyns_ {-# LINE 1851 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 384, column 19) _nontsOallchildvisit = ({-# LINE 384 "ExecutionPlan2Hs.ag" #-} _nontsIchildvisit {-# LINE 1857 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 450, column 19) _nontsOavisitdefs = ({-# LINE 450 "ExecutionPlan2Hs.ag" #-} _nontsIvisitdefs {-# LINE 1863 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 451, column 19) _nontsOavisituses = ({-# LINE 451 "ExecutionPlan2Hs.ag" #-} _nontsIvisituses {-# LINE 1869 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _nontsOinhmap = ({-# LINE 122 "ExecutionPlan2Hs.ag" #-} _lhsIinhmap {-# LINE 1875 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _nontsOoptions = ({-# LINE 30 "ExecutionPlan2Hs.ag" #-} _lhsIoptions {-# LINE 1881 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _nontsOsynmap = ({-# LINE 123 "ExecutionPlan2Hs.ag" #-} _lhsIsynmap {-# LINE 1887 "ExecutionPlan2Hs.hs" #-} ) ( _nontsIchildvisit,_nontsIdebugoutput,_nontsIvisitdefs,_nontsIvisituses) = nonts_ _nontsOallchildvisit _nontsOavisitdefs _nontsOavisituses _nontsOinhmap _nontsOoptions _nontsOsynmap _nontsOtypeSyns _nontsOwrappers in ( _lhsOdebugoutput))) ) -- Expression -------------------------------------------------- {- visit 0: synthesized attributes: attrs : Set.Set String semfunc : PP_Doc alternatives: alternative Expression: child pos : {Pos} child tks : {[HsToken]} -} -- cata sem_Expression :: Expression -> T_Expression sem_Expression (Expression _pos _tks ) = (sem_Expression_Expression _pos _tks ) -- semantic domain newtype T_Expression = T_Expression (( (Set.Set String),PP_Doc)) data Inh_Expression = Inh_Expression {} data Syn_Expression = Syn_Expression {attrs_Syn_Expression :: (Set.Set String),semfunc_Syn_Expression :: PP_Doc} wrap_Expression :: T_Expression -> Inh_Expression -> Syn_Expression wrap_Expression (T_Expression sem ) (Inh_Expression ) = (let ( _lhsOattrs,_lhsOsemfunc) = sem in (Syn_Expression _lhsOattrs _lhsOsemfunc )) sem_Expression_Expression :: Pos -> ([HsToken]) -> T_Expression sem_Expression_Expression pos_ tks_ = (T_Expression (let _lhsOattrs :: (Set.Set String) _lhsOsemfunc :: PP_Doc -- "ExecutionPlan2Hs.ag"(line 368, column 16) _lhsOattrs = ({-# LINE 368 "ExecutionPlan2Hs.ag" #-} Set.unions $ map (\tok -> attrs_Syn_HsToken (wrap_HsToken (sem_HsToken tok) Inh_HsToken)) tks_ {-# LINE 1928 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 369, column 16) _lhsOsemfunc = ({-# LINE 369 "ExecutionPlan2Hs.ag" #-} vlist $ showTokens $ map (\tok -> tok_Syn_HsToken (wrap_HsToken (sem_HsToken tok) Inh_HsToken)) tks_ {-# LINE 1934 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOattrs,_lhsOsemfunc)) ) -- HsToken ----------------------------------------------------- {- visit 0: synthesized attributes: attrs : Set.Set String tok : (Pos,String) alternatives: alternative AGField: child field : {Identifier} child attr : {Identifier} child pos : {Pos} child rdesc : {Maybe String} visit 0: local addTrace : _ alternative AGLocal: child var : {Identifier} child pos : {Pos} child rdesc : {Maybe String} visit 0: local tok : _ alternative CharToken: child value : {String} child pos : {Pos} alternative Err: child mesg : {String} child pos : {Pos} alternative HsToken: child value : {String} child pos : {Pos} alternative StrToken: child value : {String} child pos : {Pos} -} -- cata sem_HsToken :: HsToken -> T_HsToken sem_HsToken (AGField _field _attr _pos _rdesc ) = (sem_HsToken_AGField _field _attr _pos _rdesc ) sem_HsToken (AGLocal _var _pos _rdesc ) = (sem_HsToken_AGLocal _var _pos _rdesc ) sem_HsToken (CharToken _value _pos ) = (sem_HsToken_CharToken _value _pos ) sem_HsToken (Err _mesg _pos ) = (sem_HsToken_Err _mesg _pos ) sem_HsToken (HsToken _value _pos ) = (sem_HsToken_HsToken _value _pos ) sem_HsToken (StrToken _value _pos ) = (sem_HsToken_StrToken _value _pos ) -- semantic domain newtype T_HsToken = T_HsToken (( (Set.Set String),((Pos,String)))) data Inh_HsToken = Inh_HsToken {} data Syn_HsToken = Syn_HsToken {attrs_Syn_HsToken :: (Set.Set String),tok_Syn_HsToken :: ((Pos,String))} wrap_HsToken :: T_HsToken -> Inh_HsToken -> Syn_HsToken wrap_HsToken (T_HsToken sem ) (Inh_HsToken ) = (let ( _lhsOattrs,_lhsOtok) = sem in (Syn_HsToken _lhsOattrs _lhsOtok )) sem_HsToken_AGField :: Identifier -> Identifier -> Pos -> (Maybe String) -> T_HsToken sem_HsToken_AGField field_ attr_ pos_ rdesc_ = (T_HsToken (let _lhsOattrs :: (Set.Set String) _lhsOtok :: ((Pos,String)) -- "ExecutionPlan2Hs.ag"(line 363, column 15) _lhsOattrs = ({-# LINE 363 "ExecutionPlan2Hs.ag" #-} Set.singleton $ attrname True field_ attr_ {-# LINE 2007 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 482, column 8) _addTrace = ({-# LINE 482 "ExecutionPlan2Hs.ag" #-} case rdesc_ of Just d -> \x -> "(trace " ++ show (d ++ " -> " ++ show field_ ++ "." ++ show attr_) ++ " (" ++ x ++ "))" Nothing -> id {-# LINE 2015 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 485, column 8) _lhsOtok = ({-# LINE 485 "ExecutionPlan2Hs.ag" #-} (pos_, _addTrace $ attrname True field_ attr_) {-# LINE 2021 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOattrs,_lhsOtok)) ) sem_HsToken_AGLocal :: Identifier -> Pos -> (Maybe String) -> T_HsToken sem_HsToken_AGLocal var_ pos_ rdesc_ = (T_HsToken (let _lhsOattrs :: (Set.Set String) _lhsOtok :: ((Pos,String)) -- "ExecutionPlan2Hs.ag"(line 362, column 15) _lhsOattrs = ({-# LINE 362 "ExecutionPlan2Hs.ag" #-} Set.singleton $ locname var_ {-# LINE 2035 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 477, column 15) _tok = ({-# LINE 477 "ExecutionPlan2Hs.ag" #-} (pos_,locname var_) {-# LINE 2041 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (from local) _lhsOtok = ({-# LINE 480 "ExecutionPlan2Hs.ag" #-} _tok {-# LINE 2047 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOattrs,_lhsOtok)) ) sem_HsToken_CharToken :: String -> Pos -> T_HsToken sem_HsToken_CharToken value_ pos_ = (T_HsToken (let _lhsOtok :: ((Pos,String)) _lhsOattrs :: (Set.Set String) -- "ExecutionPlan2Hs.ag"(line 489, column 16) _lhsOtok = ({-# LINE 489 "ExecutionPlan2Hs.ag" #-} (pos_, if null value_ then "" else showCharShort (head value_) ) {-# LINE 2063 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 360, column 37) _lhsOattrs = ({-# LINE 360 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 2069 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOattrs,_lhsOtok)) ) sem_HsToken_Err :: String -> Pos -> T_HsToken sem_HsToken_Err mesg_ pos_ = (T_HsToken (let _lhsOtok :: ((Pos,String)) _lhsOattrs :: (Set.Set String) -- "ExecutionPlan2Hs.ag"(line 495, column 16) _lhsOtok = ({-# LINE 495 "ExecutionPlan2Hs.ag" #-} (pos_, "") {-# LINE 2082 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 360, column 37) _lhsOattrs = ({-# LINE 360 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 2088 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOattrs,_lhsOtok)) ) sem_HsToken_HsToken :: String -> Pos -> T_HsToken sem_HsToken_HsToken value_ pos_ = (T_HsToken (let _lhsOtok :: ((Pos,String)) _lhsOattrs :: (Set.Set String) -- "ExecutionPlan2Hs.ag"(line 487, column 14) _lhsOtok = ({-# LINE 487 "ExecutionPlan2Hs.ag" #-} (pos_, value_) {-# LINE 2101 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 360, column 37) _lhsOattrs = ({-# LINE 360 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 2107 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOattrs,_lhsOtok)) ) sem_HsToken_StrToken :: String -> Pos -> T_HsToken sem_HsToken_StrToken value_ pos_ = (T_HsToken (let _lhsOtok :: ((Pos,String)) _lhsOattrs :: (Set.Set String) -- "ExecutionPlan2Hs.ag"(line 494, column 16) _lhsOtok = ({-# LINE 494 "ExecutionPlan2Hs.ag" #-} (pos_, showStrShort value_) {-# LINE 2120 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 360, column 37) _lhsOattrs = ({-# LINE 360 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 2126 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOattrs,_lhsOtok)) ) -- HsTokens ---------------------------------------------------- {- visit 0: synthesized attribute: tks : [(Pos,String)] alternatives: alternative Cons: child hd : HsToken child tl : HsTokens alternative Nil: -} -- cata sem_HsTokens :: HsTokens -> T_HsTokens sem_HsTokens list = (Prelude.foldr sem_HsTokens_Cons sem_HsTokens_Nil (Prelude.map sem_HsToken list) ) -- semantic domain newtype T_HsTokens = T_HsTokens (( ([(Pos,String)]))) data Inh_HsTokens = Inh_HsTokens {} data Syn_HsTokens = Syn_HsTokens {tks_Syn_HsTokens :: ([(Pos,String)])} wrap_HsTokens :: T_HsTokens -> Inh_HsTokens -> Syn_HsTokens wrap_HsTokens (T_HsTokens sem ) (Inh_HsTokens ) = (let ( _lhsOtks) = sem in (Syn_HsTokens _lhsOtks )) sem_HsTokens_Cons :: T_HsToken -> T_HsTokens -> T_HsTokens sem_HsTokens_Cons (T_HsToken hd_ ) (T_HsTokens tl_ ) = (T_HsTokens (let _lhsOtks :: ([(Pos,String)]) _hdIattrs :: (Set.Set String) _hdItok :: ((Pos,String)) _tlItks :: ([(Pos,String)]) -- "ExecutionPlan2Hs.ag"(line 472, column 10) _lhsOtks = ({-# LINE 472 "ExecutionPlan2Hs.ag" #-} _hdItok : _tlItks {-# LINE 2167 "ExecutionPlan2Hs.hs" #-} ) ( _hdIattrs,_hdItok) = hd_ ( _tlItks) = tl_ in ( _lhsOtks)) ) sem_HsTokens_Nil :: T_HsTokens sem_HsTokens_Nil = (T_HsTokens (let _lhsOtks :: ([(Pos,String)]) -- "ExecutionPlan2Hs.ag"(line 473, column 10) _lhsOtks = ({-# LINE 473 "ExecutionPlan2Hs.ag" #-} [] {-# LINE 2181 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOtks)) ) -- HsTokensRoot ------------------------------------------------ {- alternatives: alternative HsTokensRoot: child tokens : HsTokens -} -- cata sem_HsTokensRoot :: HsTokensRoot -> T_HsTokensRoot sem_HsTokensRoot (HsTokensRoot _tokens ) = (sem_HsTokensRoot_HsTokensRoot (sem_HsTokens _tokens ) ) -- semantic domain newtype T_HsTokensRoot = T_HsTokensRoot (( )) data Inh_HsTokensRoot = Inh_HsTokensRoot {} data Syn_HsTokensRoot = Syn_HsTokensRoot {} wrap_HsTokensRoot :: T_HsTokensRoot -> Inh_HsTokensRoot -> Syn_HsTokensRoot wrap_HsTokensRoot (T_HsTokensRoot sem ) (Inh_HsTokensRoot ) = (let ( ) = sem in (Syn_HsTokensRoot )) sem_HsTokensRoot_HsTokensRoot :: T_HsTokens -> T_HsTokensRoot sem_HsTokensRoot_HsTokensRoot (T_HsTokens tokens_ ) = (T_HsTokensRoot (let _tokensItks :: ([(Pos,String)]) ( _tokensItks) = tokens_ in ( )) ) -- Pattern ----------------------------------------------------- {- visit 0: synthesized attributes: attrs : Set.Set String copy : SELF sem_lhs : PP_Doc 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 (( (Set.Set String),Pattern ,PP_Doc)) data Inh_Pattern = Inh_Pattern {} data Syn_Pattern = Syn_Pattern {attrs_Syn_Pattern :: (Set.Set String),copy_Syn_Pattern :: Pattern ,sem_lhs_Syn_Pattern :: PP_Doc} wrap_Pattern :: T_Pattern -> Inh_Pattern -> Syn_Pattern wrap_Pattern (T_Pattern sem ) (Inh_Pattern ) = (let ( _lhsOattrs,_lhsOcopy,_lhsOsem_lhs) = sem in (Syn_Pattern _lhsOattrs _lhsOcopy _lhsOsem_lhs )) 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 _lhsOsem_lhs :: PP_Doc _lhsOattrs :: (Set.Set String) _lhsOcopy :: Pattern _patIattrs :: (Set.Set String) _patIcopy :: Pattern _patIsem_lhs :: PP_Doc _partsIattrs :: (Set.Set String) _partsIcopy :: Patterns _partsIsem_lhs :: ([PP_Doc]) -- "ExecutionPlan2Hs.ag"(line 353, column 17) _lhsOsem_lhs = ({-# LINE 353 "ExecutionPlan2Hs.ag" #-} text $ attrname False field_ attr_ {-# LINE 2288 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 354, column 17) _lhsOattrs = ({-# LINE 354 "ExecutionPlan2Hs.ag" #-} Set.singleton $ attrname False field_ attr_ {-# LINE 2294 "ExecutionPlan2Hs.hs" #-} ) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} Alias field_ attr_ _patIcopy _partsIcopy {-# LINE 2300 "ExecutionPlan2Hs.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 2306 "ExecutionPlan2Hs.hs" #-} ) ( _patIattrs,_patIcopy,_patIsem_lhs) = pat_ ( _partsIattrs,_partsIcopy,_partsIsem_lhs) = parts_ in ( _lhsOattrs,_lhsOcopy,_lhsOsem_lhs)) ) sem_Pattern_Constr :: ConstructorIdent -> T_Patterns -> T_Pattern sem_Pattern_Constr name_ (T_Patterns pats_ ) = (T_Pattern (let _lhsOsem_lhs :: PP_Doc _lhsOattrs :: (Set.Set String) _lhsOcopy :: Pattern _patsIattrs :: (Set.Set String) _patsIcopy :: Patterns _patsIsem_lhs :: ([PP_Doc]) -- "ExecutionPlan2Hs.ag"(line 356, column 17) _lhsOsem_lhs = ({-# LINE 356 "ExecutionPlan2Hs.ag" #-} pp_parens $ name_ >#< hv_sp _patsIsem_lhs {-# LINE 2327 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 347, column 27) _lhsOattrs = ({-# LINE 347 "ExecutionPlan2Hs.ag" #-} _patsIattrs {-# LINE 2333 "ExecutionPlan2Hs.hs" #-} ) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} Constr name_ _patsIcopy {-# LINE 2339 "ExecutionPlan2Hs.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 2345 "ExecutionPlan2Hs.hs" #-} ) ( _patsIattrs,_patsIcopy,_patsIsem_lhs) = pats_ in ( _lhsOattrs,_lhsOcopy,_lhsOsem_lhs)) ) sem_Pattern_Irrefutable :: T_Pattern -> T_Pattern sem_Pattern_Irrefutable (T_Pattern pat_ ) = (T_Pattern (let _lhsOsem_lhs :: PP_Doc _lhsOattrs :: (Set.Set String) _lhsOcopy :: Pattern _patIattrs :: (Set.Set String) _patIcopy :: Pattern _patIsem_lhs :: PP_Doc -- "ExecutionPlan2Hs.ag"(line 358, column 17) _lhsOsem_lhs = ({-# LINE 358 "ExecutionPlan2Hs.ag" #-} text "~" >|< pp_parens _patIsem_lhs {-# LINE 2363 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 347, column 27) _lhsOattrs = ({-# LINE 347 "ExecutionPlan2Hs.ag" #-} _patIattrs {-# LINE 2369 "ExecutionPlan2Hs.hs" #-} ) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} Irrefutable _patIcopy {-# LINE 2375 "ExecutionPlan2Hs.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 2381 "ExecutionPlan2Hs.hs" #-} ) ( _patIattrs,_patIcopy,_patIsem_lhs) = pat_ in ( _lhsOattrs,_lhsOcopy,_lhsOsem_lhs)) ) sem_Pattern_Product :: Pos -> T_Patterns -> T_Pattern sem_Pattern_Product pos_ (T_Patterns pats_ ) = (T_Pattern (let _lhsOsem_lhs :: PP_Doc _lhsOattrs :: (Set.Set String) _lhsOcopy :: Pattern _patsIattrs :: (Set.Set String) _patsIcopy :: Patterns _patsIsem_lhs :: ([PP_Doc]) -- "ExecutionPlan2Hs.ag"(line 355, column 17) _lhsOsem_lhs = ({-# LINE 355 "ExecutionPlan2Hs.ag" #-} pp_block "(" ")" "," _patsIsem_lhs {-# LINE 2400 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 347, column 27) _lhsOattrs = ({-# LINE 347 "ExecutionPlan2Hs.ag" #-} _patsIattrs {-# LINE 2406 "ExecutionPlan2Hs.hs" #-} ) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} Product pos_ _patsIcopy {-# LINE 2412 "ExecutionPlan2Hs.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 2418 "ExecutionPlan2Hs.hs" #-} ) ( _patsIattrs,_patsIcopy,_patsIsem_lhs) = pats_ in ( _lhsOattrs,_lhsOcopy,_lhsOsem_lhs)) ) sem_Pattern_Underscore :: Pos -> T_Pattern sem_Pattern_Underscore pos_ = (T_Pattern (let _lhsOsem_lhs :: PP_Doc _lhsOattrs :: (Set.Set String) _lhsOcopy :: Pattern -- "ExecutionPlan2Hs.ag"(line 357, column 17) _lhsOsem_lhs = ({-# LINE 357 "ExecutionPlan2Hs.ag" #-} text "_" {-# LINE 2433 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 347, column 27) _lhsOattrs = ({-# LINE 347 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 2439 "ExecutionPlan2Hs.hs" #-} ) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} Underscore pos_ {-# LINE 2445 "ExecutionPlan2Hs.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 2451 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOattrs,_lhsOcopy,_lhsOsem_lhs)) ) -- Patterns ---------------------------------------------------- {- visit 0: synthesized attributes: attrs : Set.Set String copy : SELF sem_lhs : [PP_Doc] 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 (( (Set.Set String),Patterns ,([PP_Doc]))) data Inh_Patterns = Inh_Patterns {} data Syn_Patterns = Syn_Patterns {attrs_Syn_Patterns :: (Set.Set String),copy_Syn_Patterns :: Patterns ,sem_lhs_Syn_Patterns :: ([PP_Doc])} wrap_Patterns :: T_Patterns -> Inh_Patterns -> Syn_Patterns wrap_Patterns (T_Patterns sem ) (Inh_Patterns ) = (let ( _lhsOattrs,_lhsOcopy,_lhsOsem_lhs) = sem in (Syn_Patterns _lhsOattrs _lhsOcopy _lhsOsem_lhs )) sem_Patterns_Cons :: T_Pattern -> T_Patterns -> T_Patterns sem_Patterns_Cons (T_Pattern hd_ ) (T_Patterns tl_ ) = (T_Patterns (let _lhsOattrs :: (Set.Set String) _lhsOsem_lhs :: ([PP_Doc]) _lhsOcopy :: Patterns _hdIattrs :: (Set.Set String) _hdIcopy :: Pattern _hdIsem_lhs :: PP_Doc _tlIattrs :: (Set.Set String) _tlIcopy :: Patterns _tlIsem_lhs :: ([PP_Doc]) -- use rule "ExecutionPlan2Hs.ag"(line 349, column 27) _lhsOattrs = ({-# LINE 349 "ExecutionPlan2Hs.ag" #-} _hdIattrs `Set.union` _tlIattrs {-# LINE 2503 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 350, column 29) _lhsOsem_lhs = ({-# LINE 350 "ExecutionPlan2Hs.ag" #-} _hdIsem_lhs : _tlIsem_lhs {-# LINE 2509 "ExecutionPlan2Hs.hs" #-} ) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} (:) _hdIcopy _tlIcopy {-# LINE 2515 "ExecutionPlan2Hs.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 2521 "ExecutionPlan2Hs.hs" #-} ) ( _hdIattrs,_hdIcopy,_hdIsem_lhs) = hd_ ( _tlIattrs,_tlIcopy,_tlIsem_lhs) = tl_ in ( _lhsOattrs,_lhsOcopy,_lhsOsem_lhs)) ) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil = (T_Patterns (let _lhsOattrs :: (Set.Set String) _lhsOsem_lhs :: ([PP_Doc]) _lhsOcopy :: Patterns -- use rule "ExecutionPlan2Hs.ag"(line 349, column 27) _lhsOattrs = ({-# LINE 349 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 2537 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 350, column 29) _lhsOsem_lhs = ({-# LINE 350 "ExecutionPlan2Hs.ag" #-} [] {-# LINE 2543 "ExecutionPlan2Hs.hs" #-} ) -- self rule _copy = ({-# LINE 23 "./Patterns.ag" #-} [] {-# LINE 2549 "ExecutionPlan2Hs.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 23 "./Patterns.ag" #-} _copy {-# LINE 2555 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOattrs,_lhsOcopy,_lhsOsem_lhs)) ) -- Visit ------------------------------------------------------- {- visit 0: inherited attributes: allchildvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) allintramap : Map.Map StateIdentifier (Set.Set String) avisitdefs : Map.Map VisitIdentifier (Set.Set Identifier) avisituses : Map.Map VisitIdentifier (Set.Set Identifier) childintros : Map.Map Identifier PP_Doc inhmap : Attributes mrules : Map.Map Identifier PP_Doc nt : NontermIdent ruledefs : Map.Map Identifier (Set.Set String) ruleuses : Map.Map Identifier (Set.Set String) synmap : Attributes terminaldefs : Set.Set String synthesized attributes: allvisits : (VisitIdentifier,StateIdentifier, StateIdentifier) childvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) intramap : Map.Map StateIdentifier (Set.Set String) sem_visit : (StateIdentifier,PP_Doc) t_visits : PP_Doc usedrules : Set.Set Identifier visitdefs : Map.Map VisitIdentifier (Set.Set Identifier) visituses : Map.Map VisitIdentifier (Set.Set Identifier) alternatives: alternative Visit: child ident : {VisitIdentifier} child from : {StateIdentifier} child to : {StateIdentifier} child inh : {Set.Set Identifier} child syn : {Set.Set Identifier} child steps : VisitSteps visit 0: local inhpart : _ local synpart : _ local inhargs : _ local synargs : _ local nextargs : _ local sem_steps : _ local nextintra : _ local uses : _ local defs : _ -} -- cata sem_Visit :: Visit -> T_Visit sem_Visit (Visit _ident _from _to _inh _syn _steps ) = (sem_Visit_Visit _ident _from _to _inh _syn (sem_VisitSteps _steps ) ) -- semantic domain newtype T_Visit = T_Visit ((Map.Map VisitIdentifier (Identifier -> PP_Doc)) -> (Map.Map StateIdentifier (Set.Set String)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map Identifier PP_Doc) -> Attributes -> (Map.Map Identifier PP_Doc) -> NontermIdent -> (Map.Map Identifier (Set.Set String)) -> (Map.Map Identifier (Set.Set String)) -> Attributes -> (Set.Set String) -> ( ((VisitIdentifier,StateIdentifier, StateIdentifier)),(Map.Map VisitIdentifier (Identifier -> PP_Doc)),(Map.Map StateIdentifier (Set.Set String)),( (StateIdentifier,PP_Doc) ),PP_Doc,(Set.Set Identifier),(Map.Map VisitIdentifier (Set.Set Identifier)),(Map.Map VisitIdentifier (Set.Set Identifier)))) data Inh_Visit = Inh_Visit {allchildvisit_Inh_Visit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),allintramap_Inh_Visit :: (Map.Map StateIdentifier (Set.Set String)),avisitdefs_Inh_Visit :: (Map.Map VisitIdentifier (Set.Set Identifier)),avisituses_Inh_Visit :: (Map.Map VisitIdentifier (Set.Set Identifier)),childintros_Inh_Visit :: (Map.Map Identifier PP_Doc),inhmap_Inh_Visit :: Attributes,mrules_Inh_Visit :: (Map.Map Identifier PP_Doc),nt_Inh_Visit :: NontermIdent,ruledefs_Inh_Visit :: (Map.Map Identifier (Set.Set String)),ruleuses_Inh_Visit :: (Map.Map Identifier (Set.Set String)),synmap_Inh_Visit :: Attributes,terminaldefs_Inh_Visit :: (Set.Set String)} data Syn_Visit = Syn_Visit {allvisits_Syn_Visit :: ((VisitIdentifier,StateIdentifier, StateIdentifier)),childvisit_Syn_Visit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),intramap_Syn_Visit :: (Map.Map StateIdentifier (Set.Set String)),sem_visit_Syn_Visit :: ( (StateIdentifier,PP_Doc) ),t_visits_Syn_Visit :: PP_Doc,usedrules_Syn_Visit :: (Set.Set Identifier),visitdefs_Syn_Visit :: (Map.Map VisitIdentifier (Set.Set Identifier)),visituses_Syn_Visit :: (Map.Map VisitIdentifier (Set.Set Identifier))} wrap_Visit :: T_Visit -> Inh_Visit -> Syn_Visit wrap_Visit (T_Visit sem ) (Inh_Visit _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsIinhmap _lhsImrules _lhsInt _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs ) = (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOintramap,_lhsOsem_visit,_lhsOt_visits,_lhsOusedrules,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsIinhmap _lhsImrules _lhsInt _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs in (Syn_Visit _lhsOallvisits _lhsOchildvisit _lhsOintramap _lhsOsem_visit _lhsOt_visits _lhsOusedrules _lhsOvisitdefs _lhsOvisituses )) sem_Visit_Visit :: VisitIdentifier -> StateIdentifier -> StateIdentifier -> (Set.Set Identifier) -> (Set.Set Identifier) -> T_VisitSteps -> T_Visit sem_Visit_Visit ident_ from_ to_ inh_ syn_ (T_VisitSteps steps_ ) = (T_Visit (\ _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsIinhmap _lhsImrules _lhsInt _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs -> (let _lhsOallvisits :: ((VisitIdentifier,StateIdentifier, StateIdentifier)) _lhsOt_visits :: PP_Doc _lhsOsem_visit :: ( (StateIdentifier,PP_Doc) ) _lhsOchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _lhsOintramap :: (Map.Map StateIdentifier (Set.Set String)) _lhsOvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOusedrules :: (Set.Set Identifier) _stepsOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _stepsOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _stepsOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _stepsOchildintros :: (Map.Map Identifier PP_Doc) _stepsOmrules :: (Map.Map Identifier PP_Doc) _stepsOruledefs :: (Map.Map Identifier (Set.Set String)) _stepsOruleuses :: (Map.Map Identifier (Set.Set String)) _stepsIdefs :: (Set.Set String) _stepsIsem_steps :: PP_Doc _stepsIusedrules :: (Set.Set Identifier) _stepsIuses :: (Set.Set String) -- "ExecutionPlan2Hs.ag"(line 141, column 11) _lhsOallvisits = ({-# LINE 141 "ExecutionPlan2Hs.ag" #-} (ident_, from_, to_) {-# LINE 2672 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 197, column 11) _lhsOt_visits = ({-# LINE 197 "ExecutionPlan2Hs.ag" #-} "type" >#< "T_" >|< _lhsInt >|< "_v" >|< ident_ >#< "=" >#< _inhpart >#< "Identity" >#< "(" >#< _synpart >#< "T_" >|< _lhsInt >|< "_s" >|< to_ >#< ")" {-# LINE 2679 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 199, column 11) _inhpart = ({-# LINE 199 "ExecutionPlan2Hs.ag" #-} if Set.null inh_ then empty else (ppSpaced $ map (\i -> (\x -> x >#< "->") $ typeToHaskellString (Just _lhsInt) [] $ fromJust $ Map.lookup i _lhsIinhmap) $ Set.toList inh_) {-# LINE 2688 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 203, column 11) _synpart = ({-# LINE 203 "ExecutionPlan2Hs.ag" #-} if Set.null syn_ then empty else (ppCommas $ map (\i -> typeToHaskellString (Just _lhsInt) [] $ fromJust $ Map.lookup i _lhsIsynmap) $ Set.toList syn_) >#< "," {-# LINE 2696 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 292, column 11) _lhsOsem_visit = ({-# LINE 292 "ExecutionPlan2Hs.ag" #-} (from_, "v" >|< ident_ >#< "::" >#< "T_" >|< _lhsInt >|< "_v" >|< ident_ >-< "v" >|< ident_ >#< (_inhargs _LHS True) >#< "=" >#< "do" >-< indent 3 _sem_steps ) {-# LINE 2704 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 295, column 11) _inhargs = ({-# LINE 295 "ExecutionPlan2Hs.ag" #-} \chn inh -> ppSpaced $ map (\arg -> attrname inh chn arg) $ Set.toList inh_ {-# LINE 2710 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 296, column 11) _synargs = ({-# LINE 296 "ExecutionPlan2Hs.ag" #-} ppSpaced $ map (\arg -> attrname False _LHS arg >#< ",") $ Set.toList syn_ {-# LINE 2716 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 297, column 11) _nextargs = ({-# LINE 297 "ExecutionPlan2Hs.ag" #-} ppSpaced $ Set.toList $ maybe Set.empty id $ Map.lookup to_ _lhsIallintramap {-# LINE 2722 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 298, column 11) _sem_steps = ({-# LINE 298 "ExecutionPlan2Hs.ag" #-} _stepsIsem_steps >-< "return" >#< "(" >#< _synargs >#< "st" >|< to_ >#< _nextargs >#< ")" {-# LINE 2729 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 387, column 11) _lhsOchildvisit = ({-# LINE 387 "ExecutionPlan2Hs.ag" #-} Map.singleton ident_ $ \chn -> "(" >#< ppSpaced ( map (\x -> attrname True chn x >#< ",") $ Set.toList syn_) >#< locname chn >#< ")" >#< "<-" >#< "inv_" >|< _lhsInt >|< "_s" >|< from_ >#< locname chn >#< "K_" >|< _lhsInt >|< "_v" >|< ident_ >#< _inhargs chn False {-# LINE 2738 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 413, column 11) _lhsOintramap = ({-# LINE 413 "ExecutionPlan2Hs.ag" #-} Map.singleton from_ $ (_uses `Set.union` _nextintra ) `Set.difference` _defs {-# LINE 2744 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 414, column 11) _nextintra = ({-# LINE 414 "ExecutionPlan2Hs.ag" #-} maybe Set.empty id $ Map.lookup to_ _lhsIallintramap {-# LINE 2750 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 415, column 11) _uses = ({-# LINE 415 "ExecutionPlan2Hs.ag" #-} _stepsIuses {-# LINE 2756 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 416, column 11) _defs = ({-# LINE 416 "ExecutionPlan2Hs.ag" #-} _stepsIdefs `Set.union` (Set.map (lhsname True) inh_) `Set.union` _lhsIterminaldefs {-# LINE 2762 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 440, column 11) _lhsOvisitdefs = ({-# LINE 440 "ExecutionPlan2Hs.ag" #-} Map.singleton ident_ syn_ {-# LINE 2768 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 441, column 11) _lhsOvisituses = ({-# LINE 441 "ExecutionPlan2Hs.ag" #-} Map.singleton ident_ inh_ {-# LINE 2774 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 175, column 56) _lhsOusedrules = ({-# LINE 175 "ExecutionPlan2Hs.ag" #-} _stepsIusedrules {-# LINE 2780 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOallchildvisit = ({-# LINE 381 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 2786 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 2792 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 2798 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOchildintros = ({-# LINE 321 "ExecutionPlan2Hs.ag" #-} _lhsIchildintros {-# LINE 2804 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOmrules = ({-# LINE 303 "ExecutionPlan2Hs.ag" #-} _lhsImrules {-# LINE 2810 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOruledefs = ({-# LINE 421 "ExecutionPlan2Hs.ag" #-} _lhsIruledefs {-# LINE 2816 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOruleuses = ({-# LINE 422 "ExecutionPlan2Hs.ag" #-} _lhsIruleuses {-# LINE 2822 "ExecutionPlan2Hs.hs" #-} ) ( _stepsIdefs,_stepsIsem_steps,_stepsIusedrules,_stepsIuses) = steps_ _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildintros _stepsOmrules _stepsOruledefs _stepsOruleuses in ( _lhsOallvisits,_lhsOchildvisit,_lhsOintramap,_lhsOsem_visit,_lhsOt_visits,_lhsOusedrules,_lhsOvisitdefs,_lhsOvisituses))) ) -- VisitStep --------------------------------------------------- {- visit 0: inherited attributes: allchildvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) avisitdefs : Map.Map VisitIdentifier (Set.Set Identifier) avisituses : Map.Map VisitIdentifier (Set.Set Identifier) childintros : Map.Map Identifier PP_Doc mrules : Map.Map Identifier PP_Doc ruledefs : Map.Map Identifier (Set.Set String) ruleuses : Map.Map Identifier (Set.Set String) synthesized attributes: defs : Set.Set String sem_steps : PP_Doc usedrules : Set.Set Identifier uses : Set.Set String alternatives: alternative ChildIntro: child child : {Identifier} alternative ChildVisit: child child : {Identifier} child nonterm : {NontermIdent} child visit : {VisitIdentifier} alternative Sem: child name : {Identifier} alternative Sim: child steps : VisitSteps -} -- cata sem_VisitStep :: VisitStep -> T_VisitStep sem_VisitStep (ChildIntro _child ) = (sem_VisitStep_ChildIntro _child ) sem_VisitStep (ChildVisit _child _nonterm _visit ) = (sem_VisitStep_ChildVisit _child _nonterm _visit ) sem_VisitStep (Sem _name ) = (sem_VisitStep_Sem _name ) sem_VisitStep (Sim _steps ) = (sem_VisitStep_Sim (sem_VisitSteps _steps ) ) -- semantic domain newtype T_VisitStep = T_VisitStep ((Map.Map VisitIdentifier (Identifier -> PP_Doc)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map Identifier PP_Doc) -> (Map.Map Identifier PP_Doc) -> (Map.Map Identifier (Set.Set String)) -> (Map.Map Identifier (Set.Set String)) -> ( (Set.Set String),PP_Doc,(Set.Set Identifier),(Set.Set String))) data Inh_VisitStep = Inh_VisitStep {allchildvisit_Inh_VisitStep :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),avisitdefs_Inh_VisitStep :: (Map.Map VisitIdentifier (Set.Set Identifier)),avisituses_Inh_VisitStep :: (Map.Map VisitIdentifier (Set.Set Identifier)),childintros_Inh_VisitStep :: (Map.Map Identifier PP_Doc),mrules_Inh_VisitStep :: (Map.Map Identifier PP_Doc),ruledefs_Inh_VisitStep :: (Map.Map Identifier (Set.Set String)),ruleuses_Inh_VisitStep :: (Map.Map Identifier (Set.Set String))} data Syn_VisitStep = Syn_VisitStep {defs_Syn_VisitStep :: (Set.Set String),sem_steps_Syn_VisitStep :: PP_Doc,usedrules_Syn_VisitStep :: (Set.Set Identifier),uses_Syn_VisitStep :: (Set.Set String)} wrap_VisitStep :: T_VisitStep -> Inh_VisitStep -> Syn_VisitStep wrap_VisitStep (T_VisitStep sem ) (Inh_VisitStep _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses ) = (let ( _lhsOdefs,_lhsOsem_steps,_lhsOusedrules,_lhsOuses) = sem _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses in (Syn_VisitStep _lhsOdefs _lhsOsem_steps _lhsOusedrules _lhsOuses )) sem_VisitStep_ChildIntro :: Identifier -> T_VisitStep sem_VisitStep_ChildIntro child_ = (T_VisitStep (\ _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses -> (let _lhsOsem_steps :: PP_Doc _lhsOdefs :: (Set.Set String) _lhsOusedrules :: (Set.Set Identifier) _lhsOuses :: (Set.Set String) -- "ExecutionPlan2Hs.ag"(line 307, column 16) _lhsOsem_steps = ({-# LINE 307 "ExecutionPlan2Hs.ag" #-} maybe (error $ "Child " ++ show child_ ++ " not found in: " ++ show _lhsIchildintros) id $ Map.lookup child_ _lhsIchildintros {-# LINE 2901 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 458, column 16) _lhsOdefs = ({-# LINE 458 "ExecutionPlan2Hs.ag" #-} Set.singleton $ locname child_ {-# LINE 2907 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 175, column 56) _lhsOusedrules = ({-# LINE 175 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 2913 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 454, column 38) _lhsOuses = ({-# LINE 454 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 2919 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOdefs,_lhsOsem_steps,_lhsOusedrules,_lhsOuses))) ) sem_VisitStep_ChildVisit :: Identifier -> NontermIdent -> VisitIdentifier -> T_VisitStep sem_VisitStep_ChildVisit child_ nonterm_ visit_ = (T_VisitStep (\ _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses -> (let _lhsOsem_steps :: PP_Doc _lhsOdefs :: (Set.Set String) _lhsOuses :: (Set.Set String) _lhsOusedrules :: (Set.Set Identifier) -- "ExecutionPlan2Hs.ag"(line 308, column 16) _lhsOsem_steps = ({-# LINE 308 "ExecutionPlan2Hs.ag" #-} (maybe (error "Visit not found") id $ Map.lookup visit_ _lhsIallchildvisit) $ child_ {-# LINE 2942 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 459, column 16) _lhsOdefs = ({-# LINE 459 "ExecutionPlan2Hs.ag" #-} maybe (error "Visit not found") (Set.map $ attrname True child_) $ Map.lookup visit_ _lhsIavisitdefs {-# LINE 2948 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 460, column 16) _lhsOuses = ({-# LINE 460 "ExecutionPlan2Hs.ag" #-} Set.insert (locname child_) $ maybe (error "Visit not found") (Set.map $ attrname False child_) $ Map.lookup visit_ _lhsIavisituses {-# LINE 2955 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 175, column 56) _lhsOusedrules = ({-# LINE 175 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 2961 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOdefs,_lhsOsem_steps,_lhsOusedrules,_lhsOuses))) ) sem_VisitStep_Sem :: Identifier -> T_VisitStep sem_VisitStep_Sem name_ = (T_VisitStep (\ _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses -> (let _lhsOusedrules :: (Set.Set Identifier) _lhsOsem_steps :: PP_Doc _lhsOdefs :: (Set.Set String) _lhsOuses :: (Set.Set String) -- "ExecutionPlan2Hs.ag"(line 179, column 9) _lhsOusedrules = ({-# LINE 179 "ExecutionPlan2Hs.ag" #-} Set.singleton name_ {-# LINE 2982 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 306, column 16) _lhsOsem_steps = ({-# LINE 306 "ExecutionPlan2Hs.ag" #-} maybe (error "Rule not found") id $ Map.lookup name_ _lhsImrules {-# LINE 2988 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 456, column 16) _lhsOdefs = ({-# LINE 456 "ExecutionPlan2Hs.ag" #-} maybe (error "Rule not found") id $ Map.lookup name_ _lhsIruledefs {-# LINE 2994 "ExecutionPlan2Hs.hs" #-} ) -- "ExecutionPlan2Hs.ag"(line 457, column 16) _lhsOuses = ({-# LINE 457 "ExecutionPlan2Hs.ag" #-} maybe (error "Rule not found") id $ Map.lookup name_ _lhsIruleuses {-# LINE 3000 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOdefs,_lhsOsem_steps,_lhsOusedrules,_lhsOuses))) ) sem_VisitStep_Sim :: T_VisitSteps -> T_VisitStep sem_VisitStep_Sim (T_VisitSteps steps_ ) = (T_VisitStep (\ _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses -> (let _lhsOdefs :: (Set.Set String) _lhsOsem_steps :: PP_Doc _lhsOusedrules :: (Set.Set Identifier) _lhsOuses :: (Set.Set String) _stepsOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _stepsOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _stepsOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _stepsOchildintros :: (Map.Map Identifier PP_Doc) _stepsOmrules :: (Map.Map Identifier PP_Doc) _stepsOruledefs :: (Map.Map Identifier (Set.Set String)) _stepsOruleuses :: (Map.Map Identifier (Set.Set String)) _stepsIdefs :: (Set.Set String) _stepsIsem_steps :: PP_Doc _stepsIusedrules :: (Set.Set Identifier) _stepsIuses :: (Set.Set String) -- use rule "ExecutionPlan2Hs.ag"(line 453, column 38) _lhsOdefs = ({-# LINE 453 "ExecutionPlan2Hs.ag" #-} _stepsIdefs {-# LINE 3032 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 304, column 43) _lhsOsem_steps = ({-# LINE 304 "ExecutionPlan2Hs.ag" #-} _stepsIsem_steps {-# LINE 3038 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 175, column 56) _lhsOusedrules = ({-# LINE 175 "ExecutionPlan2Hs.ag" #-} _stepsIusedrules {-# LINE 3044 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 454, column 38) _lhsOuses = ({-# LINE 454 "ExecutionPlan2Hs.ag" #-} _stepsIuses {-# LINE 3050 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOallchildvisit = ({-# LINE 381 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 3056 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 3062 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 3068 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOchildintros = ({-# LINE 321 "ExecutionPlan2Hs.ag" #-} _lhsIchildintros {-# LINE 3074 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOmrules = ({-# LINE 303 "ExecutionPlan2Hs.ag" #-} _lhsImrules {-# LINE 3080 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOruledefs = ({-# LINE 421 "ExecutionPlan2Hs.ag" #-} _lhsIruledefs {-# LINE 3086 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _stepsOruleuses = ({-# LINE 422 "ExecutionPlan2Hs.ag" #-} _lhsIruleuses {-# LINE 3092 "ExecutionPlan2Hs.hs" #-} ) ( _stepsIdefs,_stepsIsem_steps,_stepsIusedrules,_stepsIuses) = steps_ _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildintros _stepsOmrules _stepsOruledefs _stepsOruleuses in ( _lhsOdefs,_lhsOsem_steps,_lhsOusedrules,_lhsOuses))) ) -- VisitSteps -------------------------------------------------- {- visit 0: inherited attributes: allchildvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) avisitdefs : Map.Map VisitIdentifier (Set.Set Identifier) avisituses : Map.Map VisitIdentifier (Set.Set Identifier) childintros : Map.Map Identifier PP_Doc mrules : Map.Map Identifier PP_Doc ruledefs : Map.Map Identifier (Set.Set String) ruleuses : Map.Map Identifier (Set.Set String) synthesized attributes: defs : Set.Set String sem_steps : PP_Doc usedrules : Set.Set Identifier uses : Set.Set String alternatives: alternative Cons: child hd : VisitStep child tl : VisitSteps alternative Nil: -} -- cata sem_VisitSteps :: VisitSteps -> T_VisitSteps sem_VisitSteps list = (Prelude.foldr sem_VisitSteps_Cons sem_VisitSteps_Nil (Prelude.map sem_VisitStep list) ) -- semantic domain newtype T_VisitSteps = T_VisitSteps ((Map.Map VisitIdentifier (Identifier -> PP_Doc)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map Identifier PP_Doc) -> (Map.Map Identifier PP_Doc) -> (Map.Map Identifier (Set.Set String)) -> (Map.Map Identifier (Set.Set String)) -> ( (Set.Set String),PP_Doc,(Set.Set Identifier),(Set.Set String))) data Inh_VisitSteps = Inh_VisitSteps {allchildvisit_Inh_VisitSteps :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),avisitdefs_Inh_VisitSteps :: (Map.Map VisitIdentifier (Set.Set Identifier)),avisituses_Inh_VisitSteps :: (Map.Map VisitIdentifier (Set.Set Identifier)),childintros_Inh_VisitSteps :: (Map.Map Identifier PP_Doc),mrules_Inh_VisitSteps :: (Map.Map Identifier PP_Doc),ruledefs_Inh_VisitSteps :: (Map.Map Identifier (Set.Set String)),ruleuses_Inh_VisitSteps :: (Map.Map Identifier (Set.Set String))} data Syn_VisitSteps = Syn_VisitSteps {defs_Syn_VisitSteps :: (Set.Set String),sem_steps_Syn_VisitSteps :: PP_Doc,usedrules_Syn_VisitSteps :: (Set.Set Identifier),uses_Syn_VisitSteps :: (Set.Set String)} wrap_VisitSteps :: T_VisitSteps -> Inh_VisitSteps -> Syn_VisitSteps wrap_VisitSteps (T_VisitSteps sem ) (Inh_VisitSteps _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses ) = (let ( _lhsOdefs,_lhsOsem_steps,_lhsOusedrules,_lhsOuses) = sem _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses in (Syn_VisitSteps _lhsOdefs _lhsOsem_steps _lhsOusedrules _lhsOuses )) sem_VisitSteps_Cons :: T_VisitStep -> T_VisitSteps -> T_VisitSteps sem_VisitSteps_Cons (T_VisitStep hd_ ) (T_VisitSteps tl_ ) = (T_VisitSteps (\ _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses -> (let _lhsOdefs :: (Set.Set String) _lhsOsem_steps :: PP_Doc _lhsOusedrules :: (Set.Set Identifier) _lhsOuses :: (Set.Set String) _hdOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _hdOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOchildintros :: (Map.Map Identifier PP_Doc) _hdOmrules :: (Map.Map Identifier PP_Doc) _hdOruledefs :: (Map.Map Identifier (Set.Set String)) _hdOruleuses :: (Map.Map Identifier (Set.Set String)) _tlOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _tlOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlOchildintros :: (Map.Map Identifier PP_Doc) _tlOmrules :: (Map.Map Identifier PP_Doc) _tlOruledefs :: (Map.Map Identifier (Set.Set String)) _tlOruleuses :: (Map.Map Identifier (Set.Set String)) _hdIdefs :: (Set.Set String) _hdIsem_steps :: PP_Doc _hdIusedrules :: (Set.Set Identifier) _hdIuses :: (Set.Set String) _tlIdefs :: (Set.Set String) _tlIsem_steps :: PP_Doc _tlIusedrules :: (Set.Set Identifier) _tlIuses :: (Set.Set String) -- use rule "ExecutionPlan2Hs.ag"(line 453, column 38) _lhsOdefs = ({-# LINE 453 "ExecutionPlan2Hs.ag" #-} _hdIdefs `Set.union` _tlIdefs {-# LINE 3182 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 304, column 43) _lhsOsem_steps = ({-# LINE 304 "ExecutionPlan2Hs.ag" #-} _hdIsem_steps >-< _tlIsem_steps {-# LINE 3188 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 175, column 56) _lhsOusedrules = ({-# LINE 175 "ExecutionPlan2Hs.ag" #-} _hdIusedrules `Set.union` _tlIusedrules {-# LINE 3194 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 454, column 38) _lhsOuses = ({-# LINE 454 "ExecutionPlan2Hs.ag" #-} _hdIuses `Set.union` _tlIuses {-# LINE 3200 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOallchildvisit = ({-# LINE 381 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 3206 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 3212 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 3218 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOchildintros = ({-# LINE 321 "ExecutionPlan2Hs.ag" #-} _lhsIchildintros {-# LINE 3224 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOmrules = ({-# LINE 303 "ExecutionPlan2Hs.ag" #-} _lhsImrules {-# LINE 3230 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOruledefs = ({-# LINE 421 "ExecutionPlan2Hs.ag" #-} _lhsIruledefs {-# LINE 3236 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOruleuses = ({-# LINE 422 "ExecutionPlan2Hs.ag" #-} _lhsIruleuses {-# LINE 3242 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOallchildvisit = ({-# LINE 381 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 3248 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 3254 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 3260 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOchildintros = ({-# LINE 321 "ExecutionPlan2Hs.ag" #-} _lhsIchildintros {-# LINE 3266 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOmrules = ({-# LINE 303 "ExecutionPlan2Hs.ag" #-} _lhsImrules {-# LINE 3272 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOruledefs = ({-# LINE 421 "ExecutionPlan2Hs.ag" #-} _lhsIruledefs {-# LINE 3278 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOruleuses = ({-# LINE 422 "ExecutionPlan2Hs.ag" #-} _lhsIruleuses {-# LINE 3284 "ExecutionPlan2Hs.hs" #-} ) ( _hdIdefs,_hdIsem_steps,_hdIusedrules,_hdIuses) = hd_ _hdOallchildvisit _hdOavisitdefs _hdOavisituses _hdOchildintros _hdOmrules _hdOruledefs _hdOruleuses ( _tlIdefs,_tlIsem_steps,_tlIusedrules,_tlIuses) = tl_ _tlOallchildvisit _tlOavisitdefs _tlOavisituses _tlOchildintros _tlOmrules _tlOruledefs _tlOruleuses in ( _lhsOdefs,_lhsOsem_steps,_lhsOusedrules,_lhsOuses))) ) sem_VisitSteps_Nil :: T_VisitSteps sem_VisitSteps_Nil = (T_VisitSteps (\ _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsImrules _lhsIruledefs _lhsIruleuses -> (let _lhsOdefs :: (Set.Set String) _lhsOsem_steps :: PP_Doc _lhsOusedrules :: (Set.Set Identifier) _lhsOuses :: (Set.Set String) -- use rule "ExecutionPlan2Hs.ag"(line 453, column 38) _lhsOdefs = ({-# LINE 453 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 3308 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 304, column 43) _lhsOsem_steps = ({-# LINE 304 "ExecutionPlan2Hs.ag" #-} empty {-# LINE 3314 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 175, column 56) _lhsOusedrules = ({-# LINE 175 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 3320 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 454, column 38) _lhsOuses = ({-# LINE 454 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 3326 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOdefs,_lhsOsem_steps,_lhsOusedrules,_lhsOuses))) ) -- Visits ------------------------------------------------------ {- visit 0: inherited attributes: allchildvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) allintramap : Map.Map StateIdentifier (Set.Set String) avisitdefs : Map.Map VisitIdentifier (Set.Set Identifier) avisituses : Map.Map VisitIdentifier (Set.Set Identifier) childintros : Map.Map Identifier PP_Doc inhmap : Attributes mrules : Map.Map Identifier PP_Doc nt : NontermIdent ruledefs : Map.Map Identifier (Set.Set String) ruleuses : Map.Map Identifier (Set.Set String) synmap : Attributes terminaldefs : Set.Set String synthesized attributes: allvisits : [(VisitIdentifier,StateIdentifier, StateIdentifier)] childvisit : Map.Map VisitIdentifier (Identifier -> PP_Doc) intramap : Map.Map StateIdentifier (Set.Set String) sem_visit : [(StateIdentifier,PP_Doc)] t_visits : PP_Doc usedrules : Set.Set Identifier visitdefs : Map.Map VisitIdentifier (Set.Set Identifier) visituses : Map.Map VisitIdentifier (Set.Set Identifier) alternatives: alternative Cons: child hd : Visit child tl : Visits alternative Nil: -} -- cata sem_Visits :: Visits -> T_Visits sem_Visits list = (Prelude.foldr sem_Visits_Cons sem_Visits_Nil (Prelude.map sem_Visit list) ) -- semantic domain newtype T_Visits = T_Visits ((Map.Map VisitIdentifier (Identifier -> PP_Doc)) -> (Map.Map StateIdentifier (Set.Set String)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map VisitIdentifier (Set.Set Identifier)) -> (Map.Map Identifier PP_Doc) -> Attributes -> (Map.Map Identifier PP_Doc) -> NontermIdent -> (Map.Map Identifier (Set.Set String)) -> (Map.Map Identifier (Set.Set String)) -> Attributes -> (Set.Set String) -> ( ([(VisitIdentifier,StateIdentifier, StateIdentifier)]),(Map.Map VisitIdentifier (Identifier -> PP_Doc)),(Map.Map StateIdentifier (Set.Set String)),( [(StateIdentifier,PP_Doc)] ),PP_Doc,(Set.Set Identifier),(Map.Map VisitIdentifier (Set.Set Identifier)),(Map.Map VisitIdentifier (Set.Set Identifier)))) data Inh_Visits = Inh_Visits {allchildvisit_Inh_Visits :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),allintramap_Inh_Visits :: (Map.Map StateIdentifier (Set.Set String)),avisitdefs_Inh_Visits :: (Map.Map VisitIdentifier (Set.Set Identifier)),avisituses_Inh_Visits :: (Map.Map VisitIdentifier (Set.Set Identifier)),childintros_Inh_Visits :: (Map.Map Identifier PP_Doc),inhmap_Inh_Visits :: Attributes,mrules_Inh_Visits :: (Map.Map Identifier PP_Doc),nt_Inh_Visits :: NontermIdent,ruledefs_Inh_Visits :: (Map.Map Identifier (Set.Set String)),ruleuses_Inh_Visits :: (Map.Map Identifier (Set.Set String)),synmap_Inh_Visits :: Attributes,terminaldefs_Inh_Visits :: (Set.Set String)} data Syn_Visits = Syn_Visits {allvisits_Syn_Visits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]),childvisit_Syn_Visits :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)),intramap_Syn_Visits :: (Map.Map StateIdentifier (Set.Set String)),sem_visit_Syn_Visits :: ( [(StateIdentifier,PP_Doc)] ),t_visits_Syn_Visits :: PP_Doc,usedrules_Syn_Visits :: (Set.Set Identifier),visitdefs_Syn_Visits :: (Map.Map VisitIdentifier (Set.Set Identifier)),visituses_Syn_Visits :: (Map.Map VisitIdentifier (Set.Set Identifier))} wrap_Visits :: T_Visits -> Inh_Visits -> Syn_Visits wrap_Visits (T_Visits sem ) (Inh_Visits _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsIinhmap _lhsImrules _lhsInt _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs ) = (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOintramap,_lhsOsem_visit,_lhsOt_visits,_lhsOusedrules,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsIinhmap _lhsImrules _lhsInt _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs in (Syn_Visits _lhsOallvisits _lhsOchildvisit _lhsOintramap _lhsOsem_visit _lhsOt_visits _lhsOusedrules _lhsOvisitdefs _lhsOvisituses )) sem_Visits_Cons :: T_Visit -> T_Visits -> T_Visits sem_Visits_Cons (T_Visit hd_ ) (T_Visits tl_ ) = (T_Visits (\ _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsIinhmap _lhsImrules _lhsInt _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs -> (let _lhsOallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _lhsOchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _lhsOintramap :: (Map.Map StateIdentifier (Set.Set String)) _lhsOsem_visit :: ( [(StateIdentifier,PP_Doc)] ) _lhsOt_visits :: PP_Doc _lhsOusedrules :: (Set.Set Identifier) _lhsOvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _hdOallintramap :: (Map.Map StateIdentifier (Set.Set String)) _hdOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdOchildintros :: (Map.Map Identifier PP_Doc) _hdOinhmap :: Attributes _hdOmrules :: (Map.Map Identifier PP_Doc) _hdOnt :: NontermIdent _hdOruledefs :: (Map.Map Identifier (Set.Set String)) _hdOruleuses :: (Map.Map Identifier (Set.Set String)) _hdOsynmap :: Attributes _hdOterminaldefs :: (Set.Set String) _tlOallchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _tlOallintramap :: (Map.Map StateIdentifier (Set.Set String)) _tlOavisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlOavisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlOchildintros :: (Map.Map Identifier PP_Doc) _tlOinhmap :: Attributes _tlOmrules :: (Map.Map Identifier PP_Doc) _tlOnt :: NontermIdent _tlOruledefs :: (Map.Map Identifier (Set.Set String)) _tlOruleuses :: (Map.Map Identifier (Set.Set String)) _tlOsynmap :: Attributes _tlOterminaldefs :: (Set.Set String) _hdIallvisits :: ((VisitIdentifier,StateIdentifier, StateIdentifier)) _hdIchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _hdIintramap :: (Map.Map StateIdentifier (Set.Set String)) _hdIsem_visit :: ( (StateIdentifier,PP_Doc) ) _hdIt_visits :: PP_Doc _hdIusedrules :: (Set.Set Identifier) _hdIvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _hdIvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlIallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _tlIchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _tlIintramap :: (Map.Map StateIdentifier (Set.Set String)) _tlIsem_visit :: ( [(StateIdentifier,PP_Doc)] ) _tlIt_visits :: PP_Doc _tlIusedrules :: (Set.Set Identifier) _tlIvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _tlIvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) -- use rule "ExecutionPlan2Hs.ag"(line 137, column 29) _lhsOallvisits = ({-# LINE 137 "ExecutionPlan2Hs.ag" #-} _hdIallvisits : _tlIallvisits {-# LINE 3455 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 379, column 36) _lhsOchildvisit = ({-# LINE 379 "ExecutionPlan2Hs.ag" #-} _hdIchildvisit `Map.union` _tlIchildvisit {-# LINE 3461 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 398, column 30) _lhsOintramap = ({-# LINE 398 "ExecutionPlan2Hs.ag" #-} _hdIintramap `uwSetUnion` _tlIintramap {-# LINE 3467 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 289, column 29) _lhsOsem_visit = ({-# LINE 289 "ExecutionPlan2Hs.ag" #-} _hdIsem_visit : _tlIsem_visit {-# LINE 3473 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 188, column 54) _lhsOt_visits = ({-# LINE 188 "ExecutionPlan2Hs.ag" #-} _hdIt_visits >-< _tlIt_visits {-# LINE 3479 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 175, column 56) _lhsOusedrules = ({-# LINE 175 "ExecutionPlan2Hs.ag" #-} _hdIusedrules `Set.union` _tlIusedrules {-# LINE 3485 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 436, column 36) _lhsOvisitdefs = ({-# LINE 436 "ExecutionPlan2Hs.ag" #-} _hdIvisitdefs `uwSetUnion` _tlIvisitdefs {-# LINE 3491 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 437, column 36) _lhsOvisituses = ({-# LINE 437 "ExecutionPlan2Hs.ag" #-} _hdIvisituses `uwSetUnion` _tlIvisituses {-# LINE 3497 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOallchildvisit = ({-# LINE 378 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 3503 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOallintramap = ({-# LINE 397 "ExecutionPlan2Hs.ag" #-} _lhsIallintramap {-# LINE 3509 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 3515 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 3521 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOchildintros = ({-# LINE 321 "ExecutionPlan2Hs.ag" #-} _lhsIchildintros {-# LINE 3527 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOinhmap = ({-# LINE 128 "ExecutionPlan2Hs.ag" #-} _lhsIinhmap {-# LINE 3533 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOmrules = ({-# LINE 303 "ExecutionPlan2Hs.ag" #-} _lhsImrules {-# LINE 3539 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOnt = ({-# LINE 188 "ExecutionPlan2Hs.ag" #-} _lhsInt {-# LINE 3545 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOruledefs = ({-# LINE 421 "ExecutionPlan2Hs.ag" #-} _lhsIruledefs {-# LINE 3551 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOruleuses = ({-# LINE 422 "ExecutionPlan2Hs.ag" #-} _lhsIruleuses {-# LINE 3557 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOsynmap = ({-# LINE 129 "ExecutionPlan2Hs.ag" #-} _lhsIsynmap {-# LINE 3563 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _hdOterminaldefs = ({-# LINE 400 "ExecutionPlan2Hs.ag" #-} _lhsIterminaldefs {-# LINE 3569 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOallchildvisit = ({-# LINE 378 "ExecutionPlan2Hs.ag" #-} _lhsIallchildvisit {-# LINE 3575 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOallintramap = ({-# LINE 397 "ExecutionPlan2Hs.ag" #-} _lhsIallintramap {-# LINE 3581 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOavisitdefs = ({-# LINE 446 "ExecutionPlan2Hs.ag" #-} _lhsIavisitdefs {-# LINE 3587 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOavisituses = ({-# LINE 447 "ExecutionPlan2Hs.ag" #-} _lhsIavisituses {-# LINE 3593 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOchildintros = ({-# LINE 321 "ExecutionPlan2Hs.ag" #-} _lhsIchildintros {-# LINE 3599 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOinhmap = ({-# LINE 128 "ExecutionPlan2Hs.ag" #-} _lhsIinhmap {-# LINE 3605 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOmrules = ({-# LINE 303 "ExecutionPlan2Hs.ag" #-} _lhsImrules {-# LINE 3611 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOnt = ({-# LINE 188 "ExecutionPlan2Hs.ag" #-} _lhsInt {-# LINE 3617 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOruledefs = ({-# LINE 421 "ExecutionPlan2Hs.ag" #-} _lhsIruledefs {-# LINE 3623 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOruleuses = ({-# LINE 422 "ExecutionPlan2Hs.ag" #-} _lhsIruleuses {-# LINE 3629 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOsynmap = ({-# LINE 129 "ExecutionPlan2Hs.ag" #-} _lhsIsynmap {-# LINE 3635 "ExecutionPlan2Hs.hs" #-} ) -- copy rule (down) _tlOterminaldefs = ({-# LINE 400 "ExecutionPlan2Hs.ag" #-} _lhsIterminaldefs {-# LINE 3641 "ExecutionPlan2Hs.hs" #-} ) ( _hdIallvisits,_hdIchildvisit,_hdIintramap,_hdIsem_visit,_hdIt_visits,_hdIusedrules,_hdIvisitdefs,_hdIvisituses) = hd_ _hdOallchildvisit _hdOallintramap _hdOavisitdefs _hdOavisituses _hdOchildintros _hdOinhmap _hdOmrules _hdOnt _hdOruledefs _hdOruleuses _hdOsynmap _hdOterminaldefs ( _tlIallvisits,_tlIchildvisit,_tlIintramap,_tlIsem_visit,_tlIt_visits,_tlIusedrules,_tlIvisitdefs,_tlIvisituses) = tl_ _tlOallchildvisit _tlOallintramap _tlOavisitdefs _tlOavisituses _tlOchildintros _tlOinhmap _tlOmrules _tlOnt _tlOruledefs _tlOruleuses _tlOsynmap _tlOterminaldefs in ( _lhsOallvisits,_lhsOchildvisit,_lhsOintramap,_lhsOsem_visit,_lhsOt_visits,_lhsOusedrules,_lhsOvisitdefs,_lhsOvisituses))) ) sem_Visits_Nil :: T_Visits sem_Visits_Nil = (T_Visits (\ _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildintros _lhsIinhmap _lhsImrules _lhsInt _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs -> (let _lhsOallvisits :: ([(VisitIdentifier,StateIdentifier, StateIdentifier)]) _lhsOchildvisit :: (Map.Map VisitIdentifier (Identifier -> PP_Doc)) _lhsOintramap :: (Map.Map StateIdentifier (Set.Set String)) _lhsOsem_visit :: ( [(StateIdentifier,PP_Doc)] ) _lhsOt_visits :: PP_Doc _lhsOusedrules :: (Set.Set Identifier) _lhsOvisitdefs :: (Map.Map VisitIdentifier (Set.Set Identifier)) _lhsOvisituses :: (Map.Map VisitIdentifier (Set.Set Identifier)) -- use rule "ExecutionPlan2Hs.ag"(line 137, column 29) _lhsOallvisits = ({-# LINE 137 "ExecutionPlan2Hs.ag" #-} [] {-# LINE 3674 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 379, column 36) _lhsOchildvisit = ({-# LINE 379 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 3680 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 398, column 30) _lhsOintramap = ({-# LINE 398 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 3686 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 289, column 29) _lhsOsem_visit = ({-# LINE 289 "ExecutionPlan2Hs.ag" #-} [] {-# LINE 3692 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 188, column 54) _lhsOt_visits = ({-# LINE 188 "ExecutionPlan2Hs.ag" #-} empty {-# LINE 3698 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 175, column 56) _lhsOusedrules = ({-# LINE 175 "ExecutionPlan2Hs.ag" #-} Set.empty {-# LINE 3704 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 436, column 36) _lhsOvisitdefs = ({-# LINE 436 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 3710 "ExecutionPlan2Hs.hs" #-} ) -- use rule "ExecutionPlan2Hs.ag"(line 437, column 36) _lhsOvisituses = ({-# LINE 437 "ExecutionPlan2Hs.ag" #-} Map.empty {-# LINE 3716 "ExecutionPlan2Hs.hs" #-} ) in ( _lhsOallvisits,_lhsOchildvisit,_lhsOintramap,_lhsOsem_visit,_lhsOt_visits,_lhsOusedrules,_lhsOvisitdefs,_lhsOvisituses))) )