-- UUAGC 0.9.42.0 (src-ag/ExecutionPlan2Caml.ag) module ExecutionPlan2Caml where {-# LINE 32 "./src-ag/ExecutionPlan2Caml.ag" #-} import ExecutionPlan import Pretty import PPUtil import Options import Data.Monoid(mappend,mempty) import Data.Maybe import Data.Graph import Debug.Trace import System.IO import System.Directory import System.FilePath import UU.Scanner.Position import TokenDef import HsToken import ErrorMessages import Data.Set (Set) import qualified Data.Set as Set import Data.Map (Map) import qualified Data.Map as Map import Data.Sequence(Seq) import qualified Data.Sequence as Seq import Data.Foldable(toList) {-# LINE 32 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 2 "./src-ag/ExecutionPlan.ag" #-} -- VisitSyntax.ag imports import Patterns (Pattern(..),Patterns) import Expression (Expression(..)) import CommonTypes import ErrorMessages import qualified Data.Set as Set import Data.Set(Set) import qualified Data.Map as Map import Data.Map(Map) {-# LINE 46 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 2 "./src-ag/Patterns.ag" #-} -- Patterns.ag imports import UU.Scanner.Position(Pos) import CommonTypes (ConstructorIdent,Identifier) {-# LINE 53 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 2 "./src-ag/Expression.ag" #-} import UU.Scanner.Position(Pos) import HsToken {-# LINE 59 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 2 "./src-ag/HsToken.ag" #-} import CommonTypes import UU.Scanner.Position(Pos) {-# LINE 65 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 173 "./src-ag/ExecutionPlan2Caml.ag" #-} ppRecordTp :: PP a => [a] -> PP_Doc ppRecordTp es | null es = text "unit" | otherwise = pp_block "{" "}" "; " (map pp es) ppRecordVal :: PP a => [a] -> PP_Doc ppRecordVal es | null es = text "()" | otherwise = pp_block "{" "}" "; " (map pp es) ppFieldsVal :: Bool -> [(PP_Doc,PP_Doc,PP_Doc,PP_Doc)] -> PP_Doc ppFieldsVal record fields | null fields = text "()" | record = ppRecordVal [ r >#< "=" >#< x | (r,x,_,_) <- fields ] | otherwise = pp_block "(" ")" "," [ x | (_,x,_,_) <- fields ] ppFieldsType :: Bool -> Bool -> [(PP_Doc,PP_Doc,PP_Doc,PP_Doc)] -> PP_Doc ppFieldsType record defor fields | null fields = text "unit" | record = ppRecordTp [ r >#< ":" >#< (if defor then d else f) | (r,_,d,f) <- fields ] | otherwise = pp_block "(" ")" "*" [ if defor then d else f | (_,_,d,f) <- fields ] {-# LINE 89 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 285 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTp :: Type -> PP_Doc ppTp tp = case tp of Haskell t -> pp t -- ocaml type NT nt tps deforested | nt == _SELF -> pp "?SELF?" | null tps -> ppNontTp nt deforested | otherwise -> pp_parens (ppSpaced (map pp_parens tps) >#< ppNontTp nt deforested) Self -> pp "?SELF?" ppNontTp :: NontermIdent -> Bool -> PP_Doc ppNontTp nt True = pp "t_" >|< pp nt ppNontTp nt False = pp nt -- multiple type parameters go into a tuple ppTypeParams :: PP a => [a] -> PP_Doc ppTypeParams [] = empty ppTypeParams [x] = pp x ppTypeParams xs = pp_block "(" ")" "," (map pp xs) {-# LINE 111 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 357 "./src-ag/ExecutionPlan2Caml.ag" #-} -- convention for nonterminals to module names modName :: NontermIdent -> PP_Doc modName nt = pp "M_" >|< pp nt ppFunDecl :: Bool -> PP_Doc -> [(PP_Doc,PP_Doc)] -> PP_Doc -> PP_Doc -> PP_Doc ppFunDecl gensigs nm args resSig expr = body where body = nm >#< ppSpaced (map arg args) >#< ppRes >#< "=" >-< indent 2 expr arg (arg,tp) = ppArg gensigs arg tp ppRes | gensigs = ":" >#< resSig | otherwise = empty ppArg :: Bool -> PP_Doc -> PP_Doc -> PP_Doc ppArg gensigs arg tp | gensigs = pp_parens (arg >#< ":" >#< tp) | otherwise = arg {-# LINE 133 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 424 "./src-ag/ExecutionPlan2Caml.ag" #-} type VisitStateState = (VisitIdentifier,StateIdentifier, StateIdentifier) {-# LINE 137 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 460 "./src-ag/ExecutionPlan2Caml.ag" #-} -- -- conventions -- -- type of the state of a node: a closure containing the children states and attributes, -- with code of type 'type_nt_sem' that represents the subsequent visits to successor states. type_nt_state nt st = "s_" >|< nt >|< "_" >|< st -- type of a visit to a node (the initial, and when in a given state) -- an instance of this type is called the "semantics" type_nt_sem_top nt = "t_" >|< nt type_nt_sem nt st = type_nt_sem_top nt >|< "_s" >|< st -- type of a caller (contains visit selection + inputs + continuation) type_caller nt st = "c_" >|< nt >|< "_s" >|< st -- names of records nm_attach nt = "attach_">|< nt nm_invoke nt st = "inv_" >|< nt >|< "_s" >|< st -- name of the type variable representing the result type of the continuation cont_tvar = text "'cont__" -- order states in reverse topological order so that successor states are -- earlier in the resulting list. orderStates :: StateIdentifier -> [VisitStateState] -> [StateIdentifier] orderStates initial edges = res where source = Map.singleton initial Set.empty -- ensures that the initial state is in graph even when there are no edges targets = [ Map.singleton t Set.empty | (_,_,t) <- edges ] deps = [ Map.singleton f (Set.singleton t) | (_,f,t) <- edges ] mp = Map.unionsWith Set.union (source : (targets ++ deps)) es = [ (f,f,Set.toList ts) | (f,ts) <- Map.toList mp ] cps = stronglyConnComp es res = flattenSCCs cps {-# LINE 177 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 517 "./src-ag/ExecutionPlan2Caml.ag" #-} type_caller_visit nt v = "c_" >|< nt >|< "_v" >|< v con_visit nt v = "C_" >|< nt >|< "_v" >|< v -- field names nm_inh nt v = "inh_" >|< nt >|< "_v" >|< v nm_cont nt v = "cont_" >|< nt >|< "_v" >|< v {-# LINE 187 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 563 "./src-ag/ExecutionPlan2Caml.ag" #-} -- more naming conventions nm_inarg nm nt v = "i_" >|< nm >|< "_" >|< nt >|< "_v" >|< v nm_outarg nm nt v = "o_" >|< nm >|< "_" >|< nt >|< "_v" >|< v nm_outarg_cont = nm_outarg "_cont" conNmTVisit nt vId = "t_" >|< nt >|< "_v" >|< vId conNmTVisitIn nt vId = "t_" >|< nt >|< "_vIn" >|< vId conNmTVisitOut nt vId = "t_" >|< nt >|< "_vOut" >|< vId -- todo: remove ppMonadType ppMonadType :: Options -> PP_Doc ppMonadType opts | parallelInvoke opts = text "IO" | otherwise = text "Identity" {-# LINE 205 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 776 "./src-ag/ExecutionPlan2Caml.ag" #-} nm_visit v = "__v" >|< v nm_k st = "__k" >|< st nm_st st = "__st" >|< st mklets :: (PP b, PP c) => [b] -> c -> PP_Doc mklets defs body = res where ppLet def = "let" >#< def >#< "in" res = vlist (map ppLet defs) >-< body {-# LINE 217 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 818 "./src-ag/ExecutionPlan2Caml.ag" #-} resultValName :: String resultValName = "__result_" nextStName :: String nextStName = "__st_" {-# LINE 226 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 959 "./src-ag/ExecutionPlan2Caml.ag" #-} stname :: Identifier -> Int -> String stname child st = "_" ++ getName child ++ "X" ++ show st -- should actually return some conversion info compatibleAttach :: VisitKind -> NontermIdent -> Options -> Bool compatibleAttach _ _ _ = True {-# LINE 236 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 1026 "./src-ag/ExecutionPlan2Caml.ag" #-} dummyPat :: Options -> Bool -> PP_Doc dummyPat opts noArgs | not noArgs = empty | strictDummyToken opts = text "()" | otherwise = text "(_ : unit)" dummyArg :: Options -> Bool -> PP_Doc dummyArg opts noArgs | not noArgs = empty | otherwise = text "()" dummyType :: Options -> Bool -> PP_Doc dummyType opts noArgs | not noArgs = empty | otherwise = text "unit" {-# LINE 255 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 1102 "./src-ag/ExecutionPlan2Caml.ag" #-} data NonLocalAttr = AttrInh Identifier Identifier | AttrSyn Identifier Identifier deriving Show mkNonLocalAttr :: Bool -> Identifier -> Identifier -> NonLocalAttr mkNonLocalAttr True = AttrInh -- True: inherited attr mkNonLocalAttr False = AttrSyn lookupAttrType :: NonLocalAttr -> Map Identifier Attributes -> Map Identifier Attributes -> Map Identifier Type -> Maybe PP_Doc lookupAttrType (AttrInh child name) inhs _ = lookupType child name inhs lookupAttrType (AttrSyn child name) _ syns = lookupType child name syns -- Note: if the child takes type parameters, the type of an attribute of this child may refer to these parameters. This means that -- the actual type of the attribute needs to have its type parameters substituted with the actual type argument of the child. -- However, for now we simply decide to return Nothing in this case, which skips the type annotation. lookupType :: Identifier -> Identifier -> Map Identifier Attributes -> Map Identifier Type -> Maybe PP_Doc lookupType child name attrMp childMp | noParameters childTp = Just ppDoc | otherwise = Nothing where attrTp = Map.findWithDefault (error "lookupType: the attribute is not in the attrs of the child") name childAttrs childAttrs = Map.findWithDefault (error "lookupType: the attributes of the nonterm are not in the map") nonterm attrMp nonterm = extractNonterminal childTp childTp = Map.findWithDefault (error ("lookupType: the child " ++ show child ++ "is not in the appropriate map")) child childMp ppDoc = ppTp attrTp noParameters :: Type -> Bool noParameters (Haskell _) = True noParameters (NT _ args _) = null args {-# LINE 288 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 1199 "./src-ag/ExecutionPlan2Caml.ag" #-} contNm = text "__cont_" inpsNm = text "__inps_" -- a `compatibleKind` b means: can kind b be invoked from a compatibleKind :: VisitKind -> VisitKind -> Bool compatibleKind _ _ = True compatibleRule :: VisitKind -> Bool -> Bool compatibleRule (VisitPure _) False = False compatibleRule _ _ = True {-# LINE 302 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 1224 "./src-ag/ExecutionPlan2Caml.ag" #-} unionWithSum = Map.unionWith (+) {-# LINE 307 "dist/build/ExecutionPlan2Caml.hs" #-} {-# LINE 1247 "./src-ag/ExecutionPlan2Caml.ag" #-} uwSetUnion :: (Ord a, Ord b) => Map a (Set b) -> Map a (Set b) -> Map a (Set b) uwSetUnion = Map.unionWith Set.union uwMapUnion :: (Ord a, Ord b) => Map a (Map b c) -> Map a (Map b c) -> Map a (Map b c) uwMapUnion = Map.unionWith Map.union {-# LINE 316 "dist/build/ExecutionPlan2Caml.hs" #-} -- EChild ------------------------------------------------------ {- visit 0: inherited attributes: allInitStates : Map NontermIdent Int con : ConstructorIdent mainFile : String mainName : String nt : NontermIdent options : Options synthesized attributes: argnamesw : PP_Doc childTypes : Map Identifier Type childintros : Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))) sigs : [(PP_Doc,PP_Doc,PP_Doc,PP_Doc)] terminaldefs : Set String alternatives: alternative EChild: child name : {Identifier} child tp : {Type} child kind : {ChildKind} child hasAround : {Bool} child merges : {Maybe [Identifier]} child isMerged : {Bool} visit 0: local tpDocFor : _ local tpDocDefor : _ local fieldNm : _ local childNm : _ local field : _ local isDefor : _ local valcode : _ local aroundcode : _ local introcode : _ local nt : _ local initSt : _ alternative ETerm: child name : {Identifier} child tp : {Type} visit 0: local tpDocFor : _ local tpDocDefor : _ local fieldNm : _ local childNm : _ local field : _ -} -- cata sem_EChild :: EChild -> T_EChild sem_EChild (EChild _name _tp _kind _hasAround _merges _isMerged) = (sem_EChild_EChild _name _tp _kind _hasAround _merges _isMerged) sem_EChild (ETerm _name _tp) = (sem_EChild_ETerm _name _tp) -- semantic domain newtype T_EChild = T_EChild ((Map NontermIdent Int) -> ConstructorIdent -> String -> String -> NontermIdent -> Options -> ( ( PP_Doc ),(Map Identifier Type),(Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]),(Set String))) data Inh_EChild = Inh_EChild {allInitStates_Inh_EChild :: (Map NontermIdent Int),con_Inh_EChild :: ConstructorIdent,mainFile_Inh_EChild :: String,mainName_Inh_EChild :: String,nt_Inh_EChild :: NontermIdent,options_Inh_EChild :: Options} data Syn_EChild = Syn_EChild {argnamesw_Syn_EChild :: ( PP_Doc ),childTypes_Syn_EChild :: (Map Identifier Type),childintros_Syn_EChild :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),sigs_Syn_EChild :: ([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]),terminaldefs_Syn_EChild :: (Set String)} wrap_EChild :: T_EChild -> Inh_EChild -> Syn_EChild wrap_EChild (T_EChild sem) (Inh_EChild _lhsIallInitStates _lhsIcon _lhsImainFile _lhsImainName _lhsInt _lhsIoptions) = (let ( _lhsOargnamesw,_lhsOchildTypes,_lhsOchildintros,_lhsOsigs,_lhsOterminaldefs) = sem _lhsIallInitStates _lhsIcon _lhsImainFile _lhsImainName _lhsInt _lhsIoptions in (Syn_EChild _lhsOargnamesw _lhsOchildTypes _lhsOchildintros _lhsOsigs _lhsOterminaldefs)) sem_EChild_EChild :: Identifier -> Type -> ChildKind -> Bool -> (Maybe [Identifier]) -> Bool -> T_EChild sem_EChild_EChild name_ tp_ kind_ hasAround_ merges_ isMerged_ = (T_EChild (\ _lhsIallInitStates _lhsIcon _lhsImainFile _lhsImainName _lhsInt _lhsIoptions -> (let _lhsOsigs :: ([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]) _lhsOargnamesw :: ( PP_Doc ) _lhsOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _lhsOchildTypes :: (Map Identifier Type) _lhsOterminaldefs :: (Set String) -- "./src-ag/ExecutionPlan2Caml.ag"(line 275, column 7) _tpDocFor = ({-# LINE 275 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTp $ removeDeforested tp_ {-# LINE 409 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 276, column 7) _tpDocDefor = ({-# LINE 276 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTp $ forceDeforested tp_ {-# LINE 415 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 277, column 7) _fieldNm = ({-# LINE 277 "./src-ag/ExecutionPlan2Caml.ag" #-} text $ recordFieldname _lhsInt _lhsIcon name_ {-# LINE 421 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 278, column 7) _childNm = ({-# LINE 278 "./src-ag/ExecutionPlan2Caml.ag" #-} text (fieldname name_) {-# LINE 427 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 279, column 7) _field = ({-# LINE 279 "./src-ag/ExecutionPlan2Caml.ag" #-} (_fieldNm , _childNm , _tpDocDefor , _tpDocFor ) {-# LINE 433 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 280, column 13) _lhsOsigs = ({-# LINE 280 "./src-ag/ExecutionPlan2Caml.ag" #-} case kind_ of ChildAttr -> [] _ -> [_field ] {-# LINE 441 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 392, column 12) _lhsOargnamesw = ({-# LINE 392 "./src-ag/ExecutionPlan2Caml.ag" #-} case kind_ of ChildSyntax -> "(" >#< prefix _lhsIoptions >|< _nt >#< name_ >|< "_" >#< ")" ChildAttr -> empty ChildReplace tp -> "(" >#< prefix _lhsIoptions >|< extractNonterminal tp >#< name_ >|< "_" >#< ")" {-# LINE 450 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 919, column 12) _lhsOchildintros = ({-# LINE 919 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton name_ _introcode {-# LINE 456 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 920, column 12) _isDefor = ({-# LINE 920 "./src-ag/ExecutionPlan2Caml.ag" #-} case tp_ of NT _ _ defor -> defor _ -> False {-# LINE 464 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 923, column 12) _valcode = ({-# LINE 923 "./src-ag/ExecutionPlan2Caml.ag" #-} case kind_ of ChildSyntax -> name_ >|< "_" ChildAttr -> let head | not _isDefor = if lateHigherOrderBinding _lhsIoptions then lateSemNtLabel _nt >#< lhsname True idLateBindingAttr else prefix _lhsIoptions >|< _nt | otherwise = empty in pp_parens (head >#< instname name_) ChildReplace _ -> pp_parens (instname name_ >#< name_ >|< "_") {-# LINE 479 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 934, column 12) _aroundcode = ({-# LINE 934 "./src-ag/ExecutionPlan2Caml.ag" #-} if hasAround_ then locname name_ >|< "_around" else empty {-# LINE 487 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 937, column 12) _introcode = ({-# LINE 937 "./src-ag/ExecutionPlan2Caml.ag" #-} \kind -> let pat = text $ stname name_ _initSt attach = pp_parens (_aroundcode >#< _valcode ) >|< "." >|< nm_attach _nt >#< "()" decl = pat >#< "=" >#< attach in if compatibleAttach kind _nt _lhsIoptions then Right ( "let" >#< decl >#< "in" , Set.singleton (stname name_ _initSt ) , case kind_ of ChildAttr -> Map.insert (instname name_) Nothing $ ( if _isDefor || not (lateHigherOrderBinding _lhsIoptions) then id else Map.insert (lhsname True idLateBindingAttr) (Just $ AttrInh _LHS idLateBindingAttr) ) $ ( if hasAround_ then Map.insert (locname (name_) ++ "_around") Nothing else id ) $ Map.empty ChildReplace _ -> Map.singleton (instname name_) Nothing ChildSyntax -> Map.empty ) else Left $ IncompatibleAttachKind name_ kind {-# LINE 512 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 957, column 12) _nt = ({-# LINE 957 "./src-ag/ExecutionPlan2Caml.ag" #-} extractNonterminal tp_ {-# LINE 518 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1419, column 3) _lhsOchildTypes = ({-# LINE 1419 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton name_ tp_ {-# LINE 524 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1463, column 3) _initSt = ({-# LINE 1463 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault (error "nonterminal not in allInitStates map") _nt _lhsIallInitStates {-# LINE 530 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1258, column 42) _lhsOterminaldefs = ({-# LINE 1258 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 536 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOargnamesw,_lhsOchildTypes,_lhsOchildintros,_lhsOsigs,_lhsOterminaldefs)))) sem_EChild_ETerm :: Identifier -> Type -> T_EChild sem_EChild_ETerm name_ tp_ = (T_EChild (\ _lhsIallInitStates _lhsIcon _lhsImainFile _lhsImainName _lhsInt _lhsIoptions -> (let _lhsOsigs :: ([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]) _lhsOargnamesw :: ( PP_Doc ) _lhsOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _lhsOterminaldefs :: (Set String) _lhsOchildTypes :: (Map Identifier Type) -- "./src-ag/ExecutionPlan2Caml.ag"(line 275, column 7) _tpDocFor = ({-# LINE 275 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTp $ removeDeforested tp_ {-# LINE 558 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 276, column 7) _tpDocDefor = ({-# LINE 276 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTp $ forceDeforested tp_ {-# LINE 564 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 277, column 7) _fieldNm = ({-# LINE 277 "./src-ag/ExecutionPlan2Caml.ag" #-} text $ recordFieldname _lhsInt _lhsIcon name_ {-# LINE 570 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 278, column 7) _childNm = ({-# LINE 278 "./src-ag/ExecutionPlan2Caml.ag" #-} text (fieldname name_) {-# LINE 576 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 279, column 7) _field = ({-# LINE 279 "./src-ag/ExecutionPlan2Caml.ag" #-} (_fieldNm , _childNm , _tpDocDefor , _tpDocFor ) {-# LINE 582 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 283, column 13) _lhsOsigs = ({-# LINE 283 "./src-ag/ExecutionPlan2Caml.ag" #-} [_field ] {-# LINE 588 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 396, column 12) _lhsOargnamesw = ({-# LINE 396 "./src-ag/ExecutionPlan2Caml.ag" #-} text $ fieldname name_ {-# LINE 594 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 918, column 12) _lhsOchildintros = ({-# LINE 918 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton name_ (\_ -> Right (empty, Set.empty, Map.empty)) {-# LINE 600 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1261, column 3) _lhsOterminaldefs = ({-# LINE 1261 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.singleton $ fieldname name_ {-# LINE 606 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1419, column 3) _lhsOchildTypes = ({-# LINE 1419 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton name_ tp_ {-# LINE 612 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOargnamesw,_lhsOchildTypes,_lhsOchildintros,_lhsOsigs,_lhsOterminaldefs)))) -- EChildren --------------------------------------------------- {- visit 0: inherited attributes: allInitStates : Map NontermIdent Int con : ConstructorIdent mainFile : String mainName : String nt : NontermIdent options : Options synthesized attributes: argnamesw : [PP_Doc] childTypes : Map Identifier Type childintros : Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))) sigs : [(PP_Doc,PP_Doc,PP_Doc,PP_Doc)] terminaldefs : 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 ((Map NontermIdent Int) -> ConstructorIdent -> String -> String -> NontermIdent -> Options -> ( ([PP_Doc]),(Map Identifier Type),(Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]),(Set String))) data Inh_EChildren = Inh_EChildren {allInitStates_Inh_EChildren :: (Map NontermIdent Int),con_Inh_EChildren :: ConstructorIdent,mainFile_Inh_EChildren :: String,mainName_Inh_EChildren :: String,nt_Inh_EChildren :: NontermIdent,options_Inh_EChildren :: Options} data Syn_EChildren = Syn_EChildren {argnamesw_Syn_EChildren :: ([PP_Doc]),childTypes_Syn_EChildren :: (Map Identifier Type),childintros_Syn_EChildren :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),sigs_Syn_EChildren :: ([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]),terminaldefs_Syn_EChildren :: (Set String)} wrap_EChildren :: T_EChildren -> Inh_EChildren -> Syn_EChildren wrap_EChildren (T_EChildren sem) (Inh_EChildren _lhsIallInitStates _lhsIcon _lhsImainFile _lhsImainName _lhsInt _lhsIoptions) = (let ( _lhsOargnamesw,_lhsOchildTypes,_lhsOchildintros,_lhsOsigs,_lhsOterminaldefs) = sem _lhsIallInitStates _lhsIcon _lhsImainFile _lhsImainName _lhsInt _lhsIoptions in (Syn_EChildren _lhsOargnamesw _lhsOchildTypes _lhsOchildintros _lhsOsigs _lhsOterminaldefs)) sem_EChildren_Cons :: T_EChild -> T_EChildren -> T_EChildren sem_EChildren_Cons (T_EChild hd_) (T_EChildren tl_) = (T_EChildren (\ _lhsIallInitStates _lhsIcon _lhsImainFile _lhsImainName _lhsInt _lhsIoptions -> (let _lhsOargnamesw :: ([PP_Doc]) _lhsOchildTypes :: (Map Identifier Type) _lhsOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _lhsOsigs :: ([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]) _lhsOterminaldefs :: (Set String) _hdOallInitStates :: (Map NontermIdent Int) _hdOcon :: ConstructorIdent _hdOmainFile :: String _hdOmainName :: String _hdOnt :: NontermIdent _hdOoptions :: Options _tlOallInitStates :: (Map NontermIdent Int) _tlOcon :: ConstructorIdent _tlOmainFile :: String _tlOmainName :: String _tlOnt :: NontermIdent _tlOoptions :: Options _hdIargnamesw :: ( PP_Doc ) _hdIchildTypes :: (Map Identifier Type) _hdIchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _hdIsigs :: ([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]) _hdIterminaldefs :: (Set String) _tlIargnamesw :: ([PP_Doc]) _tlIchildTypes :: (Map Identifier Type) _tlIchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _tlIsigs :: ([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]) _tlIterminaldefs :: (Set String) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 389, column 32) _lhsOargnamesw = ({-# LINE 389 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIargnamesw : _tlIargnamesw {-# LINE 699 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1412, column 40) _lhsOchildTypes = ({-# LINE 1412 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIchildTypes `mappend` _tlIchildTypes {-# LINE 705 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 909, column 21) _lhsOchildintros = ({-# LINE 909 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIchildintros `Map.union` _tlIchildintros {-# LINE 711 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 271, column 34) _lhsOsigs = ({-# LINE 271 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsigs ++ _tlIsigs {-# LINE 717 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1258, column 42) _lhsOterminaldefs = ({-# LINE 1258 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIterminaldefs `Set.union` _tlIterminaldefs {-# LINE 723 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 729 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOcon = ({-# LINE 86 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIcon {-# LINE 735 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 741 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 747 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 753 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 759 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 765 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOcon = ({-# LINE 86 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIcon {-# LINE 771 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 777 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 783 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 789 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 795 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _hdIargnamesw,_hdIchildTypes,_hdIchildintros,_hdIsigs,_hdIterminaldefs) = hd_ _hdOallInitStates _hdOcon _hdOmainFile _hdOmainName _hdOnt _hdOoptions ( _tlIargnamesw,_tlIchildTypes,_tlIchildintros,_tlIsigs,_tlIterminaldefs) = tl_ _tlOallInitStates _tlOcon _tlOmainFile _tlOmainName _tlOnt _tlOoptions in ( _lhsOargnamesw,_lhsOchildTypes,_lhsOchildintros,_lhsOsigs,_lhsOterminaldefs)))) sem_EChildren_Nil :: T_EChildren sem_EChildren_Nil = (T_EChildren (\ _lhsIallInitStates _lhsIcon _lhsImainFile _lhsImainName _lhsInt _lhsIoptions -> (let _lhsOargnamesw :: ([PP_Doc]) _lhsOchildTypes :: (Map Identifier Type) _lhsOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _lhsOsigs :: ([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]) _lhsOterminaldefs :: (Set String) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 389, column 32) _lhsOargnamesw = ({-# LINE 389 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 819 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1412, column 40) _lhsOchildTypes = ({-# LINE 1412 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 825 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 909, column 21) _lhsOchildintros = ({-# LINE 909 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 831 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 271, column 34) _lhsOsigs = ({-# LINE 271 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 837 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1258, column 42) _lhsOterminaldefs = ({-# LINE 1258 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 843 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOargnamesw,_lhsOchildTypes,_lhsOchildintros,_lhsOsigs,_lhsOterminaldefs)))) -- ENonterminal ------------------------------------------------ {- visit 0: inherited attributes: allFromToStates : Map VisitIdentifier (Int,Int) allInitStates : Map NontermIdent Int allVisitKinds : Map VisitIdentifier VisitKind allchildvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) avisitdefs : Map VisitIdentifier (Set Identifier) avisituses : Map VisitIdentifier (Set Identifier) inhmap : Map NontermIdent Attributes localAttrTypes : Map NontermIdent (Map ConstructorIdent (Map Identifier Type)) mainFile : String mainName : String options : Options synmap : Map NontermIdent Attributes typeSyns : TypeSyns wrappers : Set NontermIdent synthesized attributes: childvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) code : PP_Doc datas : PP_Doc errors : Seq Error fromToStates : Map VisitIdentifier (Int,Int) initStates : Map NontermIdent Int modules : PP_Doc semFunBndDefs : Seq PP_Doc semFunBndTps : Seq PP_Doc visitKinds : Map VisitIdentifier VisitKind visitdefs : Map VisitIdentifier (Set Identifier) visituses : Map VisitIdentifier (Set Identifier) alternatives: alternative ENonterminal: child nt : {NontermIdent} child params : {[Identifier]} child classCtxs : {ClassContext} child initial : {StateIdentifier} child initialv : {Maybe VisitIdentifier} child nextVisits : {Map StateIdentifier StateCtx} child prevVisits : {Map StateIdentifier StateCtx} child prods : EProductions child recursive : {Bool} child hoInfo : {HigherOrderInfo} visit 0: local hasWrapper : _ local t_params : _ local aliasPre : _ local aliasMod : _ local datatypeNt : _ local datatypeCon : _ local moduleDecl : _ local datatypeProds : _ local fsemname : _ local semname : _ local frecarg : _ local sem_param_tp : _ local sem_res_tp : _ local sem_tp : _ local o_sigs : _ local sem_nt_body : _ local sem_nt : _ local allstates : _ local stvisits : _ local t_type : _ local t_c_params : _ local t_init : _ local t_states : _ local c_states : _ local wr_inh : _ local wr_syn : _ local genwrap : _ local inhAttrs : _ local wr_inhs : _ local wr_inhs1 : _ local wr_filter : _ local wr_syns : _ local wrapname : _ local inhname : _ local synname : _ local firstVisitInfo : _ local wrapArgSemTp : _ local wrapArgInhTp : _ local wrapArgPats : _ local wrapResTp : _ local wrapper : _ local wrapperPreamble : _ local wrapperBody : _ local semFunBndDef : _ local semFunBndTp : _ local semFunBndNm : _ local ntType : _ -} -- cata sem_ENonterminal :: ENonterminal -> T_ENonterminal sem_ENonterminal (ENonterminal _nt _params _classCtxs _initial _initialv _nextVisits _prevVisits _prods _recursive _hoInfo) = (sem_ENonterminal_ENonterminal _nt _params _classCtxs _initial _initialv _nextVisits _prevVisits (sem_EProductions _prods) _recursive _hoInfo) -- semantic domain newtype T_ENonterminal = T_ENonterminal ((Map VisitIdentifier (Int,Int)) -> (Map NontermIdent Int) -> (Map VisitIdentifier VisitKind) -> (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) -> (Map VisitIdentifier (Set Identifier)) -> (Map VisitIdentifier (Set Identifier)) -> (Map NontermIdent Attributes) -> (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) -> String -> String -> Options -> (Map NontermIdent Attributes) -> TypeSyns -> (Set NontermIdent) -> ( (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),PP_Doc,PP_Doc,(Seq Error),(Map VisitIdentifier (Int,Int)),(Map NontermIdent Int),PP_Doc,(Seq PP_Doc),(Seq PP_Doc),(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier)))) data Inh_ENonterminal = Inh_ENonterminal {allFromToStates_Inh_ENonterminal :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_ENonterminal :: (Map NontermIdent Int),allVisitKinds_Inh_ENonterminal :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_ENonterminal :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),avisitdefs_Inh_ENonterminal :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_ENonterminal :: (Map VisitIdentifier (Set Identifier)),inhmap_Inh_ENonterminal :: (Map NontermIdent Attributes),localAttrTypes_Inh_ENonterminal :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))),mainFile_Inh_ENonterminal :: String,mainName_Inh_ENonterminal :: String,options_Inh_ENonterminal :: Options,synmap_Inh_ENonterminal :: (Map NontermIdent Attributes),typeSyns_Inh_ENonterminal :: TypeSyns,wrappers_Inh_ENonterminal :: (Set NontermIdent)} data Syn_ENonterminal = Syn_ENonterminal {childvisit_Syn_ENonterminal :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),code_Syn_ENonterminal :: PP_Doc,datas_Syn_ENonterminal :: PP_Doc,errors_Syn_ENonterminal :: (Seq Error),fromToStates_Syn_ENonterminal :: (Map VisitIdentifier (Int,Int)),initStates_Syn_ENonterminal :: (Map NontermIdent Int),modules_Syn_ENonterminal :: PP_Doc,semFunBndDefs_Syn_ENonterminal :: (Seq PP_Doc),semFunBndTps_Syn_ENonterminal :: (Seq PP_Doc),visitKinds_Syn_ENonterminal :: (Map VisitIdentifier VisitKind),visitdefs_Syn_ENonterminal :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_ENonterminal :: (Map VisitIdentifier (Set Identifier))} wrap_ENonterminal :: T_ENonterminal -> Inh_ENonterminal -> Syn_ENonterminal wrap_ENonterminal (T_ENonterminal sem) (Inh_ENonterminal _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers) = (let ( _lhsOchildvisit,_lhsOcode,_lhsOdatas,_lhsOerrors,_lhsOfromToStates,_lhsOinitStates,_lhsOmodules,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers in (Syn_ENonterminal _lhsOchildvisit _lhsOcode _lhsOdatas _lhsOerrors _lhsOfromToStates _lhsOinitStates _lhsOmodules _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)) sem_ENonterminal_ENonterminal :: NontermIdent -> ([Identifier]) -> ClassContext -> StateIdentifier -> (Maybe VisitIdentifier) -> (Map StateIdentifier StateCtx) -> (Map StateIdentifier StateCtx) -> T_EProductions -> Bool -> HigherOrderInfo -> T_ENonterminal sem_ENonterminal_ENonterminal nt_ params_ classCtxs_ initial_ initialv_ nextVisits_ prevVisits_ (T_EProductions prods_) recursive_ hoInfo_ = (T_ENonterminal (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers -> (let _prodsOrename :: Bool _prodsOnt :: NontermIdent _prodsOparams :: ([Identifier]) _lhsOdatas :: PP_Doc _lhsOcode :: PP_Doc _lhsOmodules :: PP_Doc _prodsOinhmap :: Attributes _prodsOsynmap :: Attributes _prodsOallInhmap :: (Map NontermIdent Attributes) _prodsOallSynmap :: (Map NontermIdent Attributes) _lhsOsemFunBndDefs :: (Seq PP_Doc) _lhsOsemFunBndTps :: (Seq PP_Doc) _prodsOinitial :: StateIdentifier _prodsOallstates :: ([StateIdentifier]) _prodsOnextVisits :: (Map StateIdentifier StateCtx) _prodsOprevVisits :: (Map StateIdentifier StateCtx) _prodsOlocalAttrTypes :: (Map ConstructorIdent (Map Identifier Type)) _lhsOinitStates :: (Map NontermIdent Int) _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _lhsOerrors :: (Seq Error) _lhsOfromToStates :: (Map VisitIdentifier (Int,Int)) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier)) _lhsOvisituses :: (Map VisitIdentifier (Set Identifier)) _prodsOallFromToStates :: (Map VisitIdentifier (Int,Int)) _prodsOallInitStates :: (Map NontermIdent Int) _prodsOallVisitKinds :: (Map VisitIdentifier VisitKind) _prodsOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _prodsOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _prodsOavisituses :: (Map VisitIdentifier (Set Identifier)) _prodsOmainFile :: String _prodsOmainName :: String _prodsOntType :: Type _prodsOoptions :: Options _prodsIallvisits :: ([VisitStateState]) _prodsIchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _prodsIcount :: Int _prodsIdatatype :: ([PP_Doc]) _prodsIdatatype_call :: ([PP_Doc]) _prodsIdatatype_con :: ([PP_Doc]) _prodsIerrors :: (Seq Error) _prodsIfromToStates :: (Map VisitIdentifier (Int,Int)) _prodsIsemFunBndDefs :: (Seq PP_Doc) _prodsIsemFunBndTps :: (Seq PP_Doc) _prodsIsem_nt :: PP_Doc _prodsIsem_prod :: PP_Doc _prodsIt_visits :: PP_Doc _prodsIvisitKinds :: (Map VisitIdentifier VisitKind) _prodsIvisitdefs :: (Map VisitIdentifier (Set Identifier)) _prodsIvisituses :: (Map VisitIdentifier (Set Identifier)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 76, column 3) _prodsOrename = ({-# LINE 76 "./src-ag/ExecutionPlan2Caml.ag" #-} rename _lhsIoptions {-# LINE 1047 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 84, column 3) _prodsOnt = ({-# LINE 84 "./src-ag/ExecutionPlan2Caml.ag" #-} nt_ {-# LINE 1053 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 94, column 3) _prodsOparams = ({-# LINE 94 "./src-ag/ExecutionPlan2Caml.ag" #-} params_ {-# LINE 1059 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 113, column 3) _lhsOdatas = ({-# LINE 113 "./src-ag/ExecutionPlan2Caml.ag" #-} ( text "" >-< "(* *** " ++ getName nt_ ++ " *** [data] *)") >-< (if dataTypes _lhsIoptions then pp "(* data *)" >-< _datatypeNt >-< _datatypeProds >-< "" else empty) >-< (if _hasWrapper then pp "(* wrapper *)" >-< _wr_inh >-< _wr_syn >-< "" else empty) >-< (if semfuns _lhsIoptions then pp "(* semantic domain *)" >-< _t_init >-< _t_states >-< _c_states >-< _prodsIt_visits >-< "" else empty) {-# LINE 1086 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 136, column 3) _lhsOcode = ({-# LINE 136 "./src-ag/ExecutionPlan2Caml.ag" #-} ( text "" >-< "(* *** " ++ getName nt_ ++ " *** [code] *)") >-< (if dataTypes _lhsIoptions then pp "(* constructor functions *)" >-< _datatypeCon else empty) >-< (if _hasWrapper then pp "(* wrapper *)" >-< _wrapper >-< "" else empty) >-< (if folds _lhsIoptions then "(* cata *)" >-< _sem_nt >-< "" else empty) >-< (if semfuns _lhsIoptions then "(* semantic domain *)" >-< _prodsIsem_prod >-< "" else empty) {-# LINE 1112 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 161, column 3) _lhsOmodules = ({-# LINE 161 "./src-ag/ExecutionPlan2Caml.ag" #-} _moduleDecl {-# LINE 1118 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 163, column 3) _hasWrapper = ({-# LINE 163 "./src-ag/ExecutionPlan2Caml.ag" #-} nt_ `Set.member` _lhsIwrappers {-# LINE 1124 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 214, column 3) _t_params = ({-# LINE 214 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTypeParams params_ {-# LINE 1130 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 215, column 3) _aliasPre = ({-# LINE 215 "./src-ag/ExecutionPlan2Caml.ag" #-} "and" >#< _t_params >#< nt_ >#< "=" {-# LINE 1136 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 216, column 3) _aliasMod = ({-# LINE 216 "./src-ag/ExecutionPlan2Caml.ag" #-} _aliasPre >#< modName nt_ >|< ".t" {-# LINE 1142 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 217, column 3) _datatypeNt = ({-# LINE 217 "./src-ag/ExecutionPlan2Caml.ag" #-} case lookup nt_ _lhsItypeSyns of Just (List t) -> _aliasPre >#< ppTp t >#< "list" Just (Maybe t) -> _aliasPre >#< ppTp t >#< "option" Just (Tuple ts) -> _aliasPre >#< (pp_block "(" ")" " * " $ map (ppTp . snd) ts) Just (Map k v) -> _aliasMod Just (IntMap t) -> _aliasMod Just (OrdSet t) -> _aliasMod Just IntSet -> _aliasMod _ -> "and" >#< _t_params >#< nt_ >#< "=" >-< ( if null _prodsIdatatype then pp "unit" else indent 2 $ vlist _prodsIdatatype_call ) {-# LINE 1160 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 236, column 3) _datatypeCon = ({-# LINE 236 "./src-ag/ExecutionPlan2Caml.ag" #-} case lookup nt_ _lhsItypeSyns of Just _ -> empty Nothing -> vlist _prodsIdatatype_con {-# LINE 1168 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 241, column 3) _moduleDecl = ({-# LINE 241 "./src-ag/ExecutionPlan2Caml.ag" #-} let ppModule expr = "module" >#< modName nt_ >#< "=" in case lookup nt_ _lhsItypeSyns of Just (Map k _) -> ppModule ("Map.Make" >#< pp_parens (ppTp k)) Just (IntMap _) -> ppModule ("Map.Make ()") Just (OrdSet t) -> ppModule ("Set.Make" >#< pp_parens (ppTp t)) Just IntSet -> ppModule ("Set.Make (struct type t = int let compare = Pervasives.compare end)") _ -> empty {-# LINE 1180 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 250, column 3) _datatypeProds = ({-# LINE 250 "./src-ag/ExecutionPlan2Caml.ag" #-} vlist _prodsIdatatype {-# LINE 1186 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 310, column 3) _fsemname = ({-# LINE 310 "./src-ag/ExecutionPlan2Caml.ag" #-} \x -> prefix _lhsIoptions ++ show x {-# LINE 1192 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 311, column 3) _semname = ({-# LINE 311 "./src-ag/ExecutionPlan2Caml.ag" #-} _fsemname nt_ {-# LINE 1198 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 312, column 3) _frecarg = ({-# LINE 312 "./src-ag/ExecutionPlan2Caml.ag" #-} \t x -> case t of NT nt _ _ -> pp_parens (_fsemname nt >#< x) _ -> x {-# LINE 1206 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 316, column 3) _sem_param_tp = ({-# LINE 316 "./src-ag/ExecutionPlan2Caml.ag" #-} _t_params >#< nt_ {-# LINE 1212 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 317, column 3) _sem_res_tp = ({-# LINE 317 "./src-ag/ExecutionPlan2Caml.ag" #-} _t_params >#< _t_type {-# LINE 1218 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 318, column 3) _sem_tp = ({-# LINE 318 "./src-ag/ExecutionPlan2Caml.ag" #-} _sem_param_tp >#< "->" >#< _sem_res_tp {-# LINE 1224 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 320, column 3) _o_sigs = ({-# LINE 320 "./src-ag/ExecutionPlan2Caml.ag" #-} typeSigs _lhsIoptions {-# LINE 1230 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 321, column 3) _sem_nt_body = ({-# LINE 321 "./src-ag/ExecutionPlan2Caml.ag" #-} "match arg with" >-< (indent 2 $ _prodsIsem_nt) {-# LINE 1236 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 322, column 3) _sem_nt = ({-# LINE 322 "./src-ag/ExecutionPlan2Caml.ag" #-} let genSem nm body = "and" >#< ppFunDecl _o_sigs (pp _semname ) [(pp nm, _sem_param_tp )] _sem_res_tp body genAlias alts = genSem (pp "arg") (pp "match arg with" >-< (indent 2 $ vlist $ map (pp "|" >#<) alts)) genMap v = let body = modName nt_ >|< ".fold" >#< _semname >|< "_Entry" >#< _semname >|< "_Nil" >#< els els = case v of NT nt _ _ -> pp_parens (modName nt_ >|< ".map" >#< _fsemname nt >#< "m") _ -> pp "m" in genSem "m" body genSet mbNt = let body = "List.fold_right" >#< _semname >|< "_Entry" >#< els (pp_parens (modName nt_ >|< ".elements" >#< "s")) >#< _semname >|< "_Nil" els r = maybe r (\nt -> pp_parens ("List.map" >#< _fsemname nt >#< r)) mbNt in genSem "s" body in case lookup nt_ _lhsItypeSyns of Just (List t) -> let body = "List.fold_right" >#< _semname >|< "_Cons" >#< els >#< _semname >|< "_Nil" els = case t of NT nt _ _ -> pp_parens ("List.map" >#< _fsemname nt >#< "list") _ -> pp "list" in genSem "list" body Just (Tuple ts) -> let pat = pp_parens (ppCommas $ map fst ts) body = _semname >|< "_Tuple" >#< ppSpaced (map (\t -> _frecarg (snd t) (pp $ fst t)) ts) in genSem pat body Just (Map _ v) -> genMap v Just (IntMap v) -> genMap v Just (Maybe t) -> genAlias [ "None" >#< "->" >#< "=" >#< _semname >|< "_Nothing" , "Some" >#< "just" >#< "->" >#< _semname >|< "_Just" >#< _frecarg t (pp "just") ] Just (OrdSet t) -> genSet $ case t of NT nt _ _ -> Just nt _ -> Nothing Just (IntSet) -> genSet Nothing _ -> genSem "arg" _sem_nt_body {-# LINE 1272 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 416, column 19) (Just _prodsOinhmap) = ({-# LINE 416 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.lookup nt_ _lhsIinhmap {-# LINE 1278 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 417, column 19) (Just _prodsOsynmap) = ({-# LINE 417 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.lookup nt_ _lhsIsynmap {-# LINE 1284 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 418, column 18) _prodsOallInhmap = ({-# LINE 418 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 1290 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 419, column 18) _prodsOallSynmap = ({-# LINE 419 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 1296 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 440, column 3) _allstates = ({-# LINE 440 "./src-ag/ExecutionPlan2Caml.ag" #-} orderStates initial_ _prodsIallvisits {-# LINE 1302 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 441, column 3) _stvisits = ({-# LINE 441 "./src-ag/ExecutionPlan2Caml.ag" #-} \st -> filter (\(v,f,t) -> f == st) _prodsIallvisits {-# LINE 1308 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 442, column 3) _t_type = ({-# LINE 442 "./src-ag/ExecutionPlan2Caml.ag" #-} type_nt_sem_top nt_ {-# LINE 1314 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 443, column 3) _t_c_params = ({-# LINE 443 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTypeParams (cont_tvar : map pp params_) {-# LINE 1320 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 446, column 3) _t_init = ({-# LINE 446 "./src-ag/ExecutionPlan2Caml.ag" #-} "and" >#< _t_params >#< _t_type >#< "=" >#< pp_braces ( nm_attach nt_ >#< ":" >#< "unit" >#< "->" >#< _t_params >#< type_nt_sem nt_ initial_) {-# LINE 1326 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 449, column 3) _t_states = ({-# LINE 449 "./src-ag/ExecutionPlan2Caml.ag" #-} vlist $ map (\st -> let s_st = type_nt_state nt_ st t_st = type_nt_sem nt_ st c_st = type_caller nt_ st nextVisits = Map.findWithDefault ManyVis st nextVisits_ decl = "and" >#< _t_params >#< t_st >#< "=" in case nextVisits of NoneVis -> decl >#< "unit" _ -> decl >#< ppRecordVal [ nm_invoke nt_ st >#< ":" >#< cont_tvar >#< "." >#< _t_c_params >#< c_st >#< "->" >#< cont_tvar ] ) _allstates {-# LINE 1341 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 502, column 3) _c_states = ({-# LINE 502 "./src-ag/ExecutionPlan2Caml.ag" #-} vlist $ map (\st -> let nt_st = type_nt_state nt_ st c_st = type_caller nt_ st outg = filter (\(_,f,_) -> f == st) _prodsIallvisits nextVisits = Map.findWithDefault ManyVis st nextVisits_ declHead = "and" >#< _t_c_params >#< c_st >#< "=" visitcons = vlist $ map (\(v,_,_) -> "|" >#< con_visit nt_ v >#< "of" >#< _t_c_params >#< type_caller_visit nt_ v ) outg in case nextVisits of NoneVis -> empty OneVis v -> declHead >#< _t_c_params >#< type_caller_visit nt_ v ManyVis -> declHead >-< indent 3 visitcons ) _allstates {-# LINE 1360 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 584, column 3) _wr_inh = ({-# LINE 584 "./src-ag/ExecutionPlan2Caml.ag" #-} _genwrap "inh" _wr_inhs1 {-# LINE 1366 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 585, column 3) _wr_syn = ({-# LINE 585 "./src-ag/ExecutionPlan2Caml.ag" #-} _genwrap "syn" _wr_syns {-# LINE 1372 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 586, column 3) _genwrap = ({-# LINE 586 "./src-ag/ExecutionPlan2Caml.ag" #-} \nm attrs -> "and" >#< _t_params >#< nm >|< "_" >|< nt_ >#< "=" >#< ppRecordTp [ i >|< "_" >|< nm >|< "_" >|< nt_ >#< ":" >#< ppTp t | (i,t) <- attrs ] {-# LINE 1380 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 590, column 3) _inhAttrs = ({-# LINE 590 "./src-ag/ExecutionPlan2Caml.ag" #-} fromJust $ Map.lookup nt_ _lhsIinhmap {-# LINE 1386 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 591, column 3) _wr_inhs = ({-# LINE 591 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.toList $ _wr_filter $ _inhAttrs {-# LINE 1392 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 592, column 3) _wr_inhs1 = ({-# LINE 592 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.toList _inhAttrs {-# LINE 1398 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 593, column 3) _wr_filter = ({-# LINE 593 "./src-ag/ExecutionPlan2Caml.ag" #-} if kennedyWarren _lhsIoptions && lateHigherOrderBinding _lhsIoptions then Map.delete idLateBindingAttr else id {-# LINE 1406 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 596, column 3) _wr_syns = ({-# LINE 596 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.toList $ fromJust $ Map.lookup nt_ _lhsIsynmap {-# LINE 1412 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 598, column 3) _wrapname = ({-# LINE 598 "./src-ag/ExecutionPlan2Caml.ag" #-} text ("wrap_" ++ show nt_) {-# LINE 1418 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 599, column 3) _inhname = ({-# LINE 599 "./src-ag/ExecutionPlan2Caml.ag" #-} text ("inh_" ++ show nt_) {-# LINE 1424 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 600, column 3) _synname = ({-# LINE 600 "./src-ag/ExecutionPlan2Caml.ag" #-} text ("syn_" ++ show nt_) {-# LINE 1430 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 601, column 3) _firstVisitInfo = ({-# LINE 601 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault ManyVis initial_ nextVisits_ {-# LINE 1436 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 603, column 3) _wrapArgSemTp = ({-# LINE 603 "./src-ag/ExecutionPlan2Caml.ag" #-} _t_params >#< _t_type {-# LINE 1442 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 604, column 3) _wrapArgInhTp = ({-# LINE 604 "./src-ag/ExecutionPlan2Caml.ag" #-} _t_params >#< _inhname {-# LINE 1448 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 605, column 3) _wrapArgPats = ({-# LINE 605 "./src-ag/ExecutionPlan2Caml.ag" #-} ppRecordVal [ i >|< "_inh_" >|< nt_ >#< "=" >#< lhsname True i | (i,_) <- _wr_inhs1 ] {-# LINE 1454 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 606, column 3) _wrapResTp = ({-# LINE 606 "./src-ag/ExecutionPlan2Caml.ag" #-} _t_params >#< _synname {-# LINE 1460 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 607, column 3) _wrapper = ({-# LINE 607 "./src-ag/ExecutionPlan2Caml.ag" #-} "and" >#< ppFunDecl _o_sigs _wrapname [(pp "act", _wrapArgSemTp ), (_wrapArgPats , _wrapArgInhTp )] _wrapResTp _wrapperPreamble {-# LINE 1466 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 608, column 3) _wrapperPreamble = ({-# LINE 608 "./src-ag/ExecutionPlan2Caml.ag" #-} ( if lateHigherOrderBinding _lhsIoptions then "let" >#< lhsname True idLateBindingAttr >#< "=" >#< lateBindingFieldNm _lhsImainName >#< "in" else empty ) >-< _wrapperBody {-# LINE 1476 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 614, column 3) _wrapperBody = ({-# LINE 614 "./src-ag/ExecutionPlan2Caml.ag" #-} case initialv_ of Nothing -> text "{ }" Just initv -> let attach = "let" >#< "sem" >#< "=" >#< "act." >|< nm_attach nt_ >#< "()" >#< "in" pat = ppRecordVal [ nm_outarg i nt_ initv >#< "=" >#< lhsname False i | (i,_) <- _wr_syns ] bld = ppRecordVal [ i >|< "_syn_" >|< nt_ >#< "=" >#< lhsname False i | (i,_) <- _wr_syns ] res = "let res = function" >#< pat >#< "->" >#< bld >#< "in" inps = "let" >#< "inps" >#< "=" >#< ppRecordVal [ nm_inarg i nt_ initv >#< "=" >#< lhsname True i | (i,_) <- _wr_inhs ] >#< "in" arg = "let" >#< "arg" >#< "=" >#< argcon >#< argrec >#< "in" argcon = case _firstVisitInfo of ManyVis -> con_visit nt_ initv _ -> empty argrec = ppRecordVal [ nm_inh nt_ initv >#< "=" >#< "inps" , nm_cont nt_ initv >#< "=" >#< "res" ] invoke = "sem." >|< nm_invoke nt_ initial_ >#< "arg" in attach >-< res >-< inps >-< arg >-< invoke {-# LINE 1499 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 644, column 3) _lhsOsemFunBndDefs = ({-# LINE 644 "./src-ag/ExecutionPlan2Caml.ag" #-} _semFunBndDef Seq.<| _prodsIsemFunBndDefs {-# LINE 1505 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 645, column 3) _lhsOsemFunBndTps = ({-# LINE 645 "./src-ag/ExecutionPlan2Caml.ag" #-} _semFunBndTp Seq.<| _prodsIsemFunBndTps {-# LINE 1511 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 646, column 3) _semFunBndDef = ({-# LINE 646 "./src-ag/ExecutionPlan2Caml.ag" #-} _semFunBndNm >#< "=" >#< _semname {-# LINE 1517 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 647, column 3) _semFunBndTp = ({-# LINE 647 "./src-ag/ExecutionPlan2Caml.ag" #-} _semFunBndNm >#< ":" >#< _sem_tp {-# LINE 1523 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 648, column 3) _semFunBndNm = ({-# LINE 648 "./src-ag/ExecutionPlan2Caml.ag" #-} lateSemNtLabel nt_ {-# LINE 1529 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 678, column 3) _prodsOinitial = ({-# LINE 678 "./src-ag/ExecutionPlan2Caml.ag" #-} initial_ {-# LINE 1535 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 679, column 3) _prodsOallstates = ({-# LINE 679 "./src-ag/ExecutionPlan2Caml.ag" #-} _allstates {-# LINE 1541 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1385, column 3) _prodsOnextVisits = ({-# LINE 1385 "./src-ag/ExecutionPlan2Caml.ag" #-} nextVisits_ {-# LINE 1547 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1386, column 3) _prodsOprevVisits = ({-# LINE 1386 "./src-ag/ExecutionPlan2Caml.ag" #-} prevVisits_ {-# LINE 1553 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1430, column 3) _prodsOlocalAttrTypes = ({-# LINE 1430 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault Map.empty nt_ _lhsIlocalAttrTypes {-# LINE 1559 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1457, column 3) _lhsOinitStates = ({-# LINE 1457 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton nt_ initial_ {-# LINE 1565 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1471, column 3) _ntType = ({-# LINE 1471 "./src-ag/ExecutionPlan2Caml.ag" #-} NT nt_ (map show params_) False {-# LINE 1571 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1147, column 37) _lhsOchildvisit = ({-# LINE 1147 "./src-ag/ExecutionPlan2Caml.ag" #-} _prodsIchildvisit {-# LINE 1577 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _prodsIerrors {-# LINE 1583 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1393, column 22) _lhsOfromToStates = ({-# LINE 1393 "./src-ag/ExecutionPlan2Caml.ag" #-} _prodsIfromToStates {-# LINE 1589 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _prodsIvisitKinds {-# LINE 1595 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1296, column 36) _lhsOvisitdefs = ({-# LINE 1296 "./src-ag/ExecutionPlan2Caml.ag" #-} _prodsIvisitdefs {-# LINE 1601 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1297, column 36) _lhsOvisituses = ({-# LINE 1297 "./src-ag/ExecutionPlan2Caml.ag" #-} _prodsIvisituses {-# LINE 1607 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _prodsOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 1613 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _prodsOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 1619 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _prodsOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 1625 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _prodsOallchildvisit = ({-# LINE 1146 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 1631 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _prodsOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 1637 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _prodsOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 1643 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _prodsOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 1649 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _prodsOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 1655 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (from local) _prodsOntType = ({-# LINE 1469 "./src-ag/ExecutionPlan2Caml.ag" #-} _ntType {-# LINE 1661 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _prodsOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 1667 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _prodsIallvisits,_prodsIchildvisit,_prodsIcount,_prodsIdatatype,_prodsIdatatype_call,_prodsIdatatype_con,_prodsIerrors,_prodsIfromToStates,_prodsIsemFunBndDefs,_prodsIsemFunBndTps,_prodsIsem_nt,_prodsIsem_prod,_prodsIt_visits,_prodsIvisitKinds,_prodsIvisitdefs,_prodsIvisituses) = prods_ _prodsOallFromToStates _prodsOallInhmap _prodsOallInitStates _prodsOallSynmap _prodsOallVisitKinds _prodsOallchildvisit _prodsOallstates _prodsOavisitdefs _prodsOavisituses _prodsOinhmap _prodsOinitial _prodsOlocalAttrTypes _prodsOmainFile _prodsOmainName _prodsOnextVisits _prodsOnt _prodsOntType _prodsOoptions _prodsOparams _prodsOprevVisits _prodsOrename _prodsOsynmap in ( _lhsOchildvisit,_lhsOcode,_lhsOdatas,_lhsOerrors,_lhsOfromToStates,_lhsOinitStates,_lhsOmodules,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses)))) -- ENonterminals ----------------------------------------------- {- visit 0: inherited attributes: allFromToStates : Map VisitIdentifier (Int,Int) allInitStates : Map NontermIdent Int allVisitKinds : Map VisitIdentifier VisitKind allchildvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) avisitdefs : Map VisitIdentifier (Set Identifier) avisituses : Map VisitIdentifier (Set Identifier) inhmap : Map NontermIdent Attributes localAttrTypes : Map NontermIdent (Map ConstructorIdent (Map Identifier Type)) mainFile : String mainName : String options : Options synmap : Map NontermIdent Attributes typeSyns : TypeSyns wrappers : Set NontermIdent synthesized attributes: childvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) code : PP_Doc datas : PP_Doc errors : Seq Error fromToStates : Map VisitIdentifier (Int,Int) initStates : Map NontermIdent Int modules : PP_Doc semFunBndDefs : Seq PP_Doc semFunBndTps : Seq PP_Doc visitKinds : Map VisitIdentifier VisitKind visitdefs : Map VisitIdentifier (Set Identifier) visituses : Map VisitIdentifier (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 VisitIdentifier (Int,Int)) -> (Map NontermIdent Int) -> (Map VisitIdentifier VisitKind) -> (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) -> (Map VisitIdentifier (Set Identifier)) -> (Map VisitIdentifier (Set Identifier)) -> (Map NontermIdent Attributes) -> (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) -> String -> String -> Options -> (Map NontermIdent Attributes) -> TypeSyns -> (Set NontermIdent) -> ( (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),PP_Doc,PP_Doc,(Seq Error),(Map VisitIdentifier (Int,Int)),(Map NontermIdent Int),PP_Doc,(Seq PP_Doc),(Seq PP_Doc),(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier)))) data Inh_ENonterminals = Inh_ENonterminals {allFromToStates_Inh_ENonterminals :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_ENonterminals :: (Map NontermIdent Int),allVisitKinds_Inh_ENonterminals :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_ENonterminals :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),avisitdefs_Inh_ENonterminals :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_ENonterminals :: (Map VisitIdentifier (Set Identifier)),inhmap_Inh_ENonterminals :: (Map NontermIdent Attributes),localAttrTypes_Inh_ENonterminals :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))),mainFile_Inh_ENonterminals :: String,mainName_Inh_ENonterminals :: String,options_Inh_ENonterminals :: Options,synmap_Inh_ENonterminals :: (Map NontermIdent Attributes),typeSyns_Inh_ENonterminals :: TypeSyns,wrappers_Inh_ENonterminals :: (Set NontermIdent)} data Syn_ENonterminals = Syn_ENonterminals {childvisit_Syn_ENonterminals :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),code_Syn_ENonterminals :: PP_Doc,datas_Syn_ENonterminals :: PP_Doc,errors_Syn_ENonterminals :: (Seq Error),fromToStates_Syn_ENonterminals :: (Map VisitIdentifier (Int,Int)),initStates_Syn_ENonterminals :: (Map NontermIdent Int),modules_Syn_ENonterminals :: PP_Doc,semFunBndDefs_Syn_ENonterminals :: (Seq PP_Doc),semFunBndTps_Syn_ENonterminals :: (Seq PP_Doc),visitKinds_Syn_ENonterminals :: (Map VisitIdentifier VisitKind),visitdefs_Syn_ENonterminals :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_ENonterminals :: (Map VisitIdentifier (Set Identifier))} wrap_ENonterminals :: T_ENonterminals -> Inh_ENonterminals -> Syn_ENonterminals wrap_ENonterminals (T_ENonterminals sem) (Inh_ENonterminals _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers) = (let ( _lhsOchildvisit,_lhsOcode,_lhsOdatas,_lhsOerrors,_lhsOfromToStates,_lhsOinitStates,_lhsOmodules,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers in (Syn_ENonterminals _lhsOchildvisit _lhsOcode _lhsOdatas _lhsOerrors _lhsOfromToStates _lhsOinitStates _lhsOmodules _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)) sem_ENonterminals_Cons :: T_ENonterminal -> T_ENonterminals -> T_ENonterminals sem_ENonterminals_Cons (T_ENonterminal hd_) (T_ENonterminals tl_) = (T_ENonterminals (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers -> (let _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _lhsOcode :: PP_Doc _lhsOdatas :: PP_Doc _lhsOerrors :: (Seq Error) _lhsOfromToStates :: (Map VisitIdentifier (Int,Int)) _lhsOinitStates :: (Map NontermIdent Int) _lhsOmodules :: PP_Doc _lhsOsemFunBndDefs :: (Seq PP_Doc) _lhsOsemFunBndTps :: (Seq PP_Doc) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier)) _lhsOvisituses :: (Map VisitIdentifier (Set Identifier)) _hdOallFromToStates :: (Map VisitIdentifier (Int,Int)) _hdOallInitStates :: (Map NontermIdent Int) _hdOallVisitKinds :: (Map VisitIdentifier VisitKind) _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _hdOavisituses :: (Map VisitIdentifier (Set Identifier)) _hdOinhmap :: (Map NontermIdent Attributes) _hdOlocalAttrTypes :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) _hdOmainFile :: String _hdOmainName :: String _hdOoptions :: Options _hdOsynmap :: (Map NontermIdent Attributes) _hdOtypeSyns :: TypeSyns _hdOwrappers :: (Set NontermIdent) _tlOallFromToStates :: (Map VisitIdentifier (Int,Int)) _tlOallInitStates :: (Map NontermIdent Int) _tlOallVisitKinds :: (Map VisitIdentifier VisitKind) _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _tlOavisituses :: (Map VisitIdentifier (Set Identifier)) _tlOinhmap :: (Map NontermIdent Attributes) _tlOlocalAttrTypes :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) _tlOmainFile :: String _tlOmainName :: String _tlOoptions :: Options _tlOsynmap :: (Map NontermIdent Attributes) _tlOtypeSyns :: TypeSyns _tlOwrappers :: (Set NontermIdent) _hdIchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _hdIcode :: PP_Doc _hdIdatas :: PP_Doc _hdIerrors :: (Seq Error) _hdIfromToStates :: (Map VisitIdentifier (Int,Int)) _hdIinitStates :: (Map NontermIdent Int) _hdImodules :: PP_Doc _hdIsemFunBndDefs :: (Seq PP_Doc) _hdIsemFunBndTps :: (Seq PP_Doc) _hdIvisitKinds :: (Map VisitIdentifier VisitKind) _hdIvisitdefs :: (Map VisitIdentifier (Set Identifier)) _hdIvisituses :: (Map VisitIdentifier (Set Identifier)) _tlIchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _tlIcode :: PP_Doc _tlIdatas :: PP_Doc _tlIerrors :: (Seq Error) _tlIfromToStates :: (Map VisitIdentifier (Int,Int)) _tlIinitStates :: (Map NontermIdent Int) _tlImodules :: PP_Doc _tlIsemFunBndDefs :: (Seq PP_Doc) _tlIsemFunBndTps :: (Seq PP_Doc) _tlIvisitKinds :: (Map VisitIdentifier VisitKind) _tlIvisitdefs :: (Map VisitIdentifier (Set Identifier)) _tlIvisituses :: (Map VisitIdentifier (Set Identifier)) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1147, column 37) _lhsOchildvisit = ({-# LINE 1147 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIchildvisit `Map.union` _tlIchildvisit {-# LINE 1824 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 107, column 58) _lhsOcode = ({-# LINE 107 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIcode >-< _tlIcode {-# LINE 1830 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 107, column 58) _lhsOdatas = ({-# LINE 107 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIdatas >-< _tlIdatas {-# LINE 1836 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIerrors Seq.>< _tlIerrors {-# LINE 1842 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1393, column 22) _lhsOfromToStates = ({-# LINE 1393 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIfromToStates `mappend` _tlIfromToStates {-# LINE 1848 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1452, column 50) _lhsOinitStates = ({-# LINE 1452 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIinitStates `mappend` _tlIinitStates {-# LINE 1854 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 107, column 58) _lhsOmodules = ({-# LINE 107 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdImodules >-< _tlImodules {-# LINE 1860 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 642, column 92) _lhsOsemFunBndDefs = ({-# LINE 642 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsemFunBndDefs Seq.>< _tlIsemFunBndDefs {-# LINE 1866 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 642, column 92) _lhsOsemFunBndTps = ({-# LINE 642 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsemFunBndTps Seq.>< _tlIsemFunBndTps {-# LINE 1872 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisitKinds `mappend` _tlIvisitKinds {-# LINE 1878 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1296, column 36) _lhsOvisitdefs = ({-# LINE 1296 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisitdefs `uwSetUnion` _tlIvisitdefs {-# LINE 1884 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1297, column 36) _lhsOvisituses = ({-# LINE 1297 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisituses `uwSetUnion` _tlIvisituses {-# LINE 1890 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 1896 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 1902 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 1908 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallchildvisit = ({-# LINE 1146 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 1914 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 1920 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 1926 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOinhmap = ({-# LINE 403 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 1932 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOlocalAttrTypes = ({-# LINE 1425 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 1938 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 1944 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 1950 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 1956 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOsynmap = ({-# LINE 404 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 1962 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOtypeSyns = ({-# LINE 168 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsItypeSyns {-# LINE 1968 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOwrappers = ({-# LINE 107 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIwrappers {-# LINE 1974 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 1980 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 1986 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 1992 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallchildvisit = ({-# LINE 1146 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 1998 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 2004 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 2010 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOinhmap = ({-# LINE 403 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 2016 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOlocalAttrTypes = ({-# LINE 1425 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 2022 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 2028 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 2034 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 2040 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOsynmap = ({-# LINE 404 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 2046 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOtypeSyns = ({-# LINE 168 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsItypeSyns {-# LINE 2052 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOwrappers = ({-# LINE 107 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIwrappers {-# LINE 2058 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _hdIchildvisit,_hdIcode,_hdIdatas,_hdIerrors,_hdIfromToStates,_hdIinitStates,_hdImodules,_hdIsemFunBndDefs,_hdIsemFunBndTps,_hdIvisitKinds,_hdIvisitdefs,_hdIvisituses) = hd_ _hdOallFromToStates _hdOallInitStates _hdOallVisitKinds _hdOallchildvisit _hdOavisitdefs _hdOavisituses _hdOinhmap _hdOlocalAttrTypes _hdOmainFile _hdOmainName _hdOoptions _hdOsynmap _hdOtypeSyns _hdOwrappers ( _tlIchildvisit,_tlIcode,_tlIdatas,_tlIerrors,_tlIfromToStates,_tlIinitStates,_tlImodules,_tlIsemFunBndDefs,_tlIsemFunBndTps,_tlIvisitKinds,_tlIvisitdefs,_tlIvisituses) = tl_ _tlOallFromToStates _tlOallInitStates _tlOallVisitKinds _tlOallchildvisit _tlOavisitdefs _tlOavisituses _tlOinhmap _tlOlocalAttrTypes _tlOmainFile _tlOmainName _tlOoptions _tlOsynmap _tlOtypeSyns _tlOwrappers in ( _lhsOchildvisit,_lhsOcode,_lhsOdatas,_lhsOerrors,_lhsOfromToStates,_lhsOinitStates,_lhsOmodules,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses)))) sem_ENonterminals_Nil :: T_ENonterminals sem_ENonterminals_Nil = (T_ENonterminals (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap _lhsItypeSyns _lhsIwrappers -> (let _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _lhsOcode :: PP_Doc _lhsOdatas :: PP_Doc _lhsOerrors :: (Seq Error) _lhsOfromToStates :: (Map VisitIdentifier (Int,Int)) _lhsOinitStates :: (Map NontermIdent Int) _lhsOmodules :: PP_Doc _lhsOsemFunBndDefs :: (Seq PP_Doc) _lhsOsemFunBndTps :: (Seq PP_Doc) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier)) _lhsOvisituses :: (Map VisitIdentifier (Set Identifier)) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1147, column 37) _lhsOchildvisit = ({-# LINE 1147 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 2097 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 107, column 58) _lhsOcode = ({-# LINE 107 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 2103 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 107, column 58) _lhsOdatas = ({-# LINE 107 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 2109 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.empty {-# LINE 2115 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1393, column 22) _lhsOfromToStates = ({-# LINE 1393 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 2121 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1452, column 50) _lhsOinitStates = ({-# LINE 1452 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 2127 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 107, column 58) _lhsOmodules = ({-# LINE 107 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 2133 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 642, column 92) _lhsOsemFunBndDefs = ({-# LINE 642 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.empty {-# LINE 2139 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 642, column 92) _lhsOsemFunBndTps = ({-# LINE 642 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.empty {-# LINE 2145 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 2151 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1296, column 36) _lhsOvisitdefs = ({-# LINE 1296 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 2157 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1297, column 36) _lhsOvisituses = ({-# LINE 1297 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 2163 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOchildvisit,_lhsOcode,_lhsOdatas,_lhsOerrors,_lhsOfromToStates,_lhsOinitStates,_lhsOmodules,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses)))) -- EProduction ------------------------------------------------- {- visit 0: inherited attributes: allFromToStates : Map VisitIdentifier (Int,Int) allInhmap : Map NontermIdent Attributes allInitStates : Map NontermIdent Int allSynmap : Map NontermIdent Attributes allVisitKinds : Map VisitIdentifier VisitKind allchildvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) allstates : [StateIdentifier] avisitdefs : Map VisitIdentifier (Set Identifier) avisituses : Map VisitIdentifier (Set Identifier) inhmap : Attributes initial : StateIdentifier localAttrTypes : Map ConstructorIdent (Map Identifier Type) mainFile : String mainName : String nextVisits : Map StateIdentifier StateCtx nt : NontermIdent ntType : Type options : Options params : [Identifier] prevVisits : Map StateIdentifier StateCtx rename : Bool synmap : Attributes synthesized attributes: allvisits : [VisitStateState] childvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) count : Int datatype : PP_Doc datatype_call : PP_Doc datatype_con : PP_Doc errors : Seq Error fromToStates : Map VisitIdentifier (Int,Int) semFunBndDefs : Seq PP_Doc semFunBndTps : Seq PP_Doc sem_nt : PP_Doc sem_prod : PP_Doc t_visits : PP_Doc visitKinds : Map VisitIdentifier VisitKind visitdefs : Map VisitIdentifier (Set Identifier) visituses : Map VisitIdentifier (Set Identifier) alternatives: alternative EProduction: child con : {ConstructorIdent} child params : {[Identifier]} child constraints : {[Type]} child rules : ERules child children : EChildren child visits : Visits visit 0: local o_records : _ local t_params : _ local t_c_params : _ local conname : _ local recname : _ local semFunBndDef : _ local semFunBndTp : _ local semFunBndNm : _ local o_sigs : _ local t_type : _ local semname : _ local sem_res_tp : _ local sem_tp : _ local initializer : _ local sem_prod : _ local prod_body : _ local statefuns : _ local genstfn : _ local stargs : _ local stvisits : _ local stks : _ local stvs : _ local lazyIntras : _ local childTypes : _ local localAttrTypes : _ -} -- cata sem_EProduction :: EProduction -> T_EProduction sem_EProduction (EProduction _con _params _constraints _rules _children _visits) = (sem_EProduction_EProduction _con _params _constraints (sem_ERules _rules) (sem_EChildren _children) (sem_Visits _visits)) -- semantic domain newtype T_EProduction = T_EProduction ((Map VisitIdentifier (Int,Int)) -> (Map NontermIdent Attributes) -> (Map NontermIdent Int) -> (Map NontermIdent Attributes) -> (Map VisitIdentifier VisitKind) -> (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) -> ([StateIdentifier]) -> (Map VisitIdentifier (Set Identifier)) -> (Map VisitIdentifier (Set Identifier)) -> Attributes -> StateIdentifier -> (Map ConstructorIdent (Map Identifier Type)) -> String -> String -> (Map StateIdentifier StateCtx) -> NontermIdent -> Type -> Options -> ([Identifier]) -> (Map StateIdentifier StateCtx) -> Bool -> Attributes -> ( ([VisitStateState]),(Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),Int,PP_Doc,PP_Doc,PP_Doc,(Seq Error),(Map VisitIdentifier (Int,Int)),(Seq PP_Doc),(Seq PP_Doc),PP_Doc,PP_Doc,PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier)))) data Inh_EProduction = Inh_EProduction {allFromToStates_Inh_EProduction :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_EProduction :: (Map NontermIdent Attributes),allInitStates_Inh_EProduction :: (Map NontermIdent Int),allSynmap_Inh_EProduction :: (Map NontermIdent Attributes),allVisitKinds_Inh_EProduction :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_EProduction :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),allstates_Inh_EProduction :: ([StateIdentifier]),avisitdefs_Inh_EProduction :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_EProduction :: (Map VisitIdentifier (Set Identifier)),inhmap_Inh_EProduction :: Attributes,initial_Inh_EProduction :: StateIdentifier,localAttrTypes_Inh_EProduction :: (Map ConstructorIdent (Map Identifier Type)),mainFile_Inh_EProduction :: String,mainName_Inh_EProduction :: String,nextVisits_Inh_EProduction :: (Map StateIdentifier StateCtx),nt_Inh_EProduction :: NontermIdent,ntType_Inh_EProduction :: Type,options_Inh_EProduction :: Options,params_Inh_EProduction :: ([Identifier]),prevVisits_Inh_EProduction :: (Map StateIdentifier StateCtx),rename_Inh_EProduction :: Bool,synmap_Inh_EProduction :: Attributes} data Syn_EProduction = Syn_EProduction {allvisits_Syn_EProduction :: ([VisitStateState]),childvisit_Syn_EProduction :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),count_Syn_EProduction :: Int,datatype_Syn_EProduction :: PP_Doc,datatype_call_Syn_EProduction :: PP_Doc,datatype_con_Syn_EProduction :: PP_Doc,errors_Syn_EProduction :: (Seq Error),fromToStates_Syn_EProduction :: (Map VisitIdentifier (Int,Int)),semFunBndDefs_Syn_EProduction :: (Seq PP_Doc),semFunBndTps_Syn_EProduction :: (Seq PP_Doc),sem_nt_Syn_EProduction :: PP_Doc,sem_prod_Syn_EProduction :: PP_Doc,t_visits_Syn_EProduction :: PP_Doc,visitKinds_Syn_EProduction :: (Map VisitIdentifier VisitKind),visitdefs_Syn_EProduction :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_EProduction :: (Map VisitIdentifier (Set Identifier))} wrap_EProduction :: T_EProduction -> Inh_EProduction -> Syn_EProduction wrap_EProduction (T_EProduction sem) (Inh_EProduction _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIrename _lhsIsynmap) = (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOdatatype_call,_lhsOdatatype_con,_lhsOerrors,_lhsOfromToStates,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIrename _lhsIsynmap in (Syn_EProduction _lhsOallvisits _lhsOchildvisit _lhsOcount _lhsOdatatype _lhsOdatatype_call _lhsOdatatype_con _lhsOerrors _lhsOfromToStates _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)) sem_EProduction_EProduction :: ConstructorIdent -> ([Identifier]) -> ([Type]) -> T_ERules -> T_EChildren -> T_Visits -> T_EProduction sem_EProduction_EProduction con_ params_ constraints_ (T_ERules rules_) (T_EChildren children_) (T_Visits visits_) = (T_EProduction (\ _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIrename _lhsIsynmap -> (let _childrenOcon :: ConstructorIdent _rulesOcon :: ConstructorIdent _visitsOcon :: ConstructorIdent _lhsOdatatype :: PP_Doc _lhsOdatatype_call :: PP_Doc _lhsOdatatype_con :: PP_Doc _lhsOcount :: Int _lhsOsem_nt :: PP_Doc _lhsOsemFunBndDefs :: (Seq PP_Doc) _lhsOsemFunBndTps :: (Seq PP_Doc) _visitsOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _visitsOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _rulesOusageInfo :: (Map Identifier Int) _rulesOruleKinds :: (Map Identifier (Set VisitKind)) _visitsOallintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))) _visitsOterminaldefs :: (Set String) _visitsOruledefs :: (Map Identifier (Set String)) _visitsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _lhsOerrors :: (Seq Error) _lhsOfromToStates :: (Map VisitIdentifier (Int,Int)) _lhsOt_visits :: PP_Doc _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier)) _lhsOvisituses :: (Map VisitIdentifier (Set Identifier)) _lhsOallvisits :: ([VisitStateState]) _lhsOsem_prod :: PP_Doc _rulesOallInhmap :: (Map NontermIdent Attributes) _rulesOallSynmap :: (Map NontermIdent Attributes) _rulesOchildTypes :: (Map Identifier Type) _rulesOinhmap :: Attributes _rulesOlazyIntras :: (Set String) _rulesOlocalAttrTypes :: (Map Identifier Type) _rulesOmainFile :: String _rulesOmainName :: String _rulesOnt :: NontermIdent _rulesOoptions :: Options _rulesOsynmap :: Attributes _childrenOallInitStates :: (Map NontermIdent Int) _childrenOmainFile :: String _childrenOmainName :: String _childrenOnt :: NontermIdent _childrenOoptions :: Options _visitsOallFromToStates :: (Map VisitIdentifier (Int,Int)) _visitsOallInhmap :: (Map NontermIdent Attributes) _visitsOallInitStates :: (Map NontermIdent Int) _visitsOallSynmap :: (Map NontermIdent Attributes) _visitsOallVisitKinds :: (Map VisitIdentifier VisitKind) _visitsOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _visitsOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _visitsOavisituses :: (Map VisitIdentifier (Set Identifier)) _visitsOchildTypes :: (Map Identifier Type) _visitsOinhmap :: Attributes _visitsOnextVisits :: (Map StateIdentifier StateCtx) _visitsOnt :: NontermIdent _visitsOoptions :: Options _visitsOparams :: ([Identifier]) _visitsOprevVisits :: (Map StateIdentifier StateCtx) _visitsOsynmap :: Attributes _rulesIerrors :: (Seq Error) _rulesImrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _rulesIruledefs :: (Map Identifier (Set String)) _rulesIruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _rulesIsem_rules :: PP_Doc _childrenIargnamesw :: ([PP_Doc]) _childrenIchildTypes :: (Map Identifier Type) _childrenIchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _childrenIsigs :: ([(PP_Doc,PP_Doc,PP_Doc,PP_Doc)]) _childrenIterminaldefs :: (Set String) _visitsIallvisits :: ([VisitStateState]) _visitsIchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _visitsIerrors :: (Seq Error) _visitsIfromToStates :: (Map VisitIdentifier (Int,Int)) _visitsIintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))) _visitsIlazyIntras :: (Set String) _visitsIruleKinds :: (Map Identifier (Set VisitKind)) _visitsIruleUsage :: (Map Identifier Int) _visitsIsem_visit :: ( [(StateIdentifier,PP_Doc)] ) _visitsIt_visits :: PP_Doc _visitsIvisitKinds :: (Map VisitIdentifier VisitKind) _visitsIvisitdefs :: (Map VisitIdentifier (Set Identifier)) _visitsIvisituses :: (Map VisitIdentifier (Set Identifier)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 88, column 31) _childrenOcon = ({-# LINE 88 "./src-ag/ExecutionPlan2Caml.ag" #-} con_ {-# LINE 2397 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 89, column 3) _rulesOcon = ({-# LINE 89 "./src-ag/ExecutionPlan2Caml.ag" #-} con_ {-# LINE 2403 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 90, column 3) _visitsOcon = ({-# LINE 90 "./src-ag/ExecutionPlan2Caml.ag" #-} con_ {-# LINE 2409 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 256, column 3) _o_records = ({-# LINE 256 "./src-ag/ExecutionPlan2Caml.ag" #-} dataRecords _lhsIoptions {-# LINE 2415 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 257, column 3) _t_params = ({-# LINE 257 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTypeParams _lhsIparams {-# LINE 2421 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 258, column 3) _t_c_params = ({-# LINE 258 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTypeParams (cont_tvar : map pp params_) {-# LINE 2427 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 259, column 3) _conname = ({-# LINE 259 "./src-ag/ExecutionPlan2Caml.ag" #-} conname _lhsIrename _lhsInt con_ {-# LINE 2433 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 260, column 3) _recname = ({-# LINE 260 "./src-ag/ExecutionPlan2Caml.ag" #-} pp "fields_" >|< _conname {-# LINE 2439 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 261, column 3) _lhsOdatatype = ({-# LINE 261 "./src-ag/ExecutionPlan2Caml.ag" #-} "and" >#< _t_params >#< _recname >#< "=" >#< ppFieldsType _o_records False _childrenIsigs {-# LINE 2446 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 263, column 3) _lhsOdatatype_call = ({-# LINE 263 "./src-ag/ExecutionPlan2Caml.ag" #-} pp "|" >#< _conname >#< "of" >#< pp_parens (_t_params >#< _recname ) {-# LINE 2452 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 264, column 3) _lhsOdatatype_con = ({-# LINE 264 "./src-ag/ExecutionPlan2Caml.ag" #-} let funNm = _lhsInt >|< "_" >|< con_ decl = "and" >#< ppFunDecl _o_sigs funNm params (_t_params >#< _lhsInt) body params = [ (x, t) | (_,x,_,t) <- _childrenIsigs ] body = _conname >#< ppFieldsVal _o_records _childrenIsigs in decl {-# LINE 2462 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 380, column 32) _lhsOcount = ({-# LINE 380 "./src-ag/ExecutionPlan2Caml.ag" #-} 1 {-# LINE 2468 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 385, column 3) _lhsOsem_nt = ({-# LINE 385 "./src-ag/ExecutionPlan2Caml.ag" #-} "|" >#< conname _lhsIrename _lhsInt con_ >#< ppFieldsVal _o_records _childrenIsigs >#< "->" >#< prefix _lhsIoptions >|< _lhsInt >|< "_" >|< con_ >#< ppSpaced _childrenIargnamesw {-# LINE 2475 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 651, column 3) _lhsOsemFunBndDefs = ({-# LINE 651 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.singleton _semFunBndDef {-# LINE 2481 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 652, column 3) _lhsOsemFunBndTps = ({-# LINE 652 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.singleton _semFunBndTp {-# LINE 2487 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 653, column 3) _semFunBndDef = ({-# LINE 653 "./src-ag/ExecutionPlan2Caml.ag" #-} _semFunBndNm >#< "=" >#< _semname {-# LINE 2493 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 654, column 3) _semFunBndTp = ({-# LINE 654 "./src-ag/ExecutionPlan2Caml.ag" #-} _semFunBndNm >#< ":" >#< _sem_tp {-# LINE 2499 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 655, column 3) _semFunBndNm = ({-# LINE 655 "./src-ag/ExecutionPlan2Caml.ag" #-} lateSemConLabel _lhsInt con_ {-# LINE 2505 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 682, column 3) _o_sigs = ({-# LINE 682 "./src-ag/ExecutionPlan2Caml.ag" #-} typeSigs _lhsIoptions {-# LINE 2511 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 683, column 3) _t_type = ({-# LINE 683 "./src-ag/ExecutionPlan2Caml.ag" #-} type_nt_sem_top _lhsInt {-# LINE 2517 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 684, column 3) _semname = ({-# LINE 684 "./src-ag/ExecutionPlan2Caml.ag" #-} prefix _lhsIoptions >|< _lhsInt >|< "_" >|< con_ {-# LINE 2523 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 685, column 3) _sem_res_tp = ({-# LINE 685 "./src-ag/ExecutionPlan2Caml.ag" #-} _t_params >#< _t_type {-# LINE 2529 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 686, column 3) _sem_tp = ({-# LINE 686 "./src-ag/ExecutionPlan2Caml.ag" #-} pp_block "" "" "->" [ d | (_,_,d,_) <- _childrenIsigs ] >#< "->" >#< _sem_res_tp {-# LINE 2535 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 688, column 3) _initializer = ({-# LINE 688 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 2541 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 695, column 3) _sem_prod = ({-# LINE 695 "./src-ag/ExecutionPlan2Caml.ag" #-} "and" >#< ppFunDecl _o_sigs _semname [ (x,d) | (_,x,d,_) <- _childrenIsigs ] _sem_res_tp _prod_body {-# LINE 2547 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 696, column 3) _prod_body = ({-# LINE 696 "./src-ag/ExecutionPlan2Caml.ag" #-} _initializer >-< "{" >#< nm_attach _lhsInt >#< "=" >#< "function () ->" >-< indent 2 ( "(* rules of production" >#< con_ >#< "*)" >-< _rulesIsem_rules >-< "(* states of production" >#< con_ >#< "*)" >-< vlist _statefuns >-< nm_st _lhsIinitial ) >#< "}" {-# LINE 2562 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 713, column 3) _statefuns = ({-# LINE 713 "./src-ag/ExecutionPlan2Caml.ag" #-} map _genstfn _lhsIallstates {-# LINE 2568 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 714, column 3) _genstfn = ({-# LINE 714 "./src-ag/ExecutionPlan2Caml.ag" #-} \st -> let nextVisitInfo = Map.findWithDefault ManyVis st _lhsInextVisits stNm = nm_st st stDef body = "let" >#< stNm >#< (if st == _lhsIinitial then empty else _stargs st) >#< "=" >-< indent 2 body >#< "in" in case nextVisitInfo of NoneVis -> if st == _lhsIinitial then stDef (pp "unit") else empty _ -> stDef $ mklets (_stvs st ++ _stks st) $ ppRecordVal [ nm_invoke _lhsInt st >#< "=" >#< nm_k st ] {-# LINE 2584 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 734, column 3) _stargs = ({-# LINE 734 "./src-ag/ExecutionPlan2Caml.ag" #-} \st -> let attrs = maybe Map.empty id $ Map.lookup st _visitsIintramap in ppSpaced [ case mbAttr of Just (AttrSyn child nm) | child == _LOC && not (noPerStateTypeSigs _lhsIoptions) -> case Map.lookup nm _localAttrTypes of Just tp -> pp_parens (strNm >#< ":" >#< ppTp tp) Nothing -> pp strNm Just attr | not (noPerStateTypeSigs _lhsIoptions) -> case lookupAttrType attr _lhsIallInhmap _lhsIallSynmap _childTypes of Just tpDoc -> pp_parens (strNm >#< ":" >#< tpDoc) Nothing -> pp strNm _ -> pp strNm | (strNm, mbAttr) <- Map.assocs attrs ] >#< dummyPat _lhsIoptions (Map.null attrs) {-# LINE 2602 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 750, column 3) _stvisits = ({-# LINE 750 "./src-ag/ExecutionPlan2Caml.ag" #-} \st -> filter (\(_,f,_) -> f == st) _visitsIallvisits {-# LINE 2608 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 751, column 3) _stks = ({-# LINE 751 "./src-ag/ExecutionPlan2Caml.ag" #-} \st -> let stvisits = _stvisits st def = ppFunDecl False (pp $ nm_k st) [(pp "arg", _t_c_params >#< type_caller _lhsInt st)] (pp cont_tvar) body nextVisitInfo = Map.findWithDefault ManyVis st _lhsInextVisits body = case nextVisitInfo of NoneVis -> text "?no next visit?" OneVis v -> dispatch "arg" v ManyVis -> let alt (v,_,_) = "|" >#< con_visit _lhsInt v >#< "chosen" >#< "->" >-< indent 2 (dispatch "chosen" v) in "match arg with" >-< (indent 2 $ vlist $ map alt stvisits) dispatch nm v = "let" >#< ppRecordVal [ nm_inh _lhsInt v >#< "=" >#< "inp" , nm_cont _lhsInt v >#< "=" >#< "cont" ] >#< "=" >#< pp nm >-< "in" >#< "cont" >#< pp_parens (nm_visit v >#< "inp") in if null stvisits then [] else [ "(* k-function for production" >#< con_ >#< " *)" >-< def ] {-# LINE 2630 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 773, column 3) _stvs = ({-# LINE 773 "./src-ag/ExecutionPlan2Caml.ag" #-} \st -> [ppf | (f,ppf) <- _visitsIsem_visit, f == st] {-# LINE 2636 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 774, column 3) _visitsOmrules = ({-# LINE 774 "./src-ag/ExecutionPlan2Caml.ag" #-} _rulesImrules {-# LINE 2642 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 915, column 3) _visitsOchildintros = ({-# LINE 915 "./src-ag/ExecutionPlan2Caml.ag" #-} _childrenIchildintros {-# LINE 2648 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1220, column 32) _rulesOusageInfo = ({-# LINE 1220 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIruleUsage {-# LINE 2654 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1235, column 3) _rulesOruleKinds = ({-# LINE 1235 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIruleKinds {-# LINE 2660 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1264, column 3) _visitsOallintramap = ({-# LINE 1264 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIintramap {-# LINE 2666 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1265, column 3) _visitsOterminaldefs = ({-# LINE 1265 "./src-ag/ExecutionPlan2Caml.ag" #-} _childrenIterminaldefs {-# LINE 2672 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1289, column 17) _visitsOruledefs = ({-# LINE 1289 "./src-ag/ExecutionPlan2Caml.ag" #-} _rulesIruledefs {-# LINE 2678 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1290, column 17) _visitsOruleuses = ({-# LINE 1290 "./src-ag/ExecutionPlan2Caml.ag" #-} _rulesIruleuses {-# LINE 2684 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1344, column 3) _lazyIntras = ({-# LINE 1344 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIlazyIntras {-# LINE 2690 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1416, column 3) _childTypes = ({-# LINE 1416 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton _LHS _lhsIntType `Map.union` _childrenIchildTypes {-# LINE 2696 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1433, column 3) _localAttrTypes = ({-# LINE 1433 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault Map.empty con_ _lhsIlocalAttrTypes {-# LINE 2702 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1147, column 37) _lhsOchildvisit = ({-# LINE 1147 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIchildvisit {-# LINE 2708 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _rulesIerrors Seq.>< _visitsIerrors {-# LINE 2714 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1393, column 22) _lhsOfromToStates = ({-# LINE 1393 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIfromToStates {-# LINE 2720 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 527, column 59) _lhsOt_visits = ({-# LINE 527 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIt_visits {-# LINE 2726 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIvisitKinds {-# LINE 2732 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1296, column 36) _lhsOvisitdefs = ({-# LINE 1296 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIvisitdefs {-# LINE 2738 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1297, column 36) _lhsOvisituses = ({-# LINE 1297 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIvisituses {-# LINE 2744 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (up) _lhsOallvisits = ({-# LINE 429 "./src-ag/ExecutionPlan2Caml.ag" #-} _visitsIallvisits {-# LINE 2750 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (from local) _lhsOsem_prod = ({-# LINE 672 "./src-ag/ExecutionPlan2Caml.ag" #-} _sem_prod {-# LINE 2756 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _rulesOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 2762 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _rulesOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 2768 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (from local) _rulesOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _childTypes {-# LINE 2774 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _rulesOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 2780 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (from local) _rulesOlazyIntras = ({-# LINE 1330 "./src-ag/ExecutionPlan2Caml.ag" #-} _lazyIntras {-# LINE 2786 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (from local) _rulesOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _localAttrTypes {-# LINE 2792 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _rulesOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 2798 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _rulesOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 2804 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _rulesOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 2810 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _rulesOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 2816 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _rulesOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 2822 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _childrenOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 2828 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _childrenOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 2834 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _childrenOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 2840 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _childrenOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 2846 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _childrenOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 2852 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 2858 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 2864 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 2870 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 2876 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 2882 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOallchildvisit = ({-# LINE 1146 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 2888 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 2894 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 2900 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (from local) _visitsOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _childTypes {-# LINE 2906 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 2912 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOnextVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInextVisits {-# LINE 2918 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 2924 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 2930 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOparams = ({-# LINE 92 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIparams {-# LINE 2936 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOprevVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevVisits {-# LINE 2942 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _visitsOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 2948 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _rulesIerrors,_rulesImrules,_rulesIruledefs,_rulesIruleuses,_rulesIsem_rules) = rules_ _rulesOallInhmap _rulesOallSynmap _rulesOchildTypes _rulesOcon _rulesOinhmap _rulesOlazyIntras _rulesOlocalAttrTypes _rulesOmainFile _rulesOmainName _rulesOnt _rulesOoptions _rulesOruleKinds _rulesOsynmap _rulesOusageInfo ( _childrenIargnamesw,_childrenIchildTypes,_childrenIchildintros,_childrenIsigs,_childrenIterminaldefs) = children_ _childrenOallInitStates _childrenOcon _childrenOmainFile _childrenOmainName _childrenOnt _childrenOoptions ( _visitsIallvisits,_visitsIchildvisit,_visitsIerrors,_visitsIfromToStates,_visitsIintramap,_visitsIlazyIntras,_visitsIruleKinds,_visitsIruleUsage,_visitsIsem_visit,_visitsIt_visits,_visitsIvisitKinds,_visitsIvisitdefs,_visitsIvisituses) = visits_ _visitsOallFromToStates _visitsOallInhmap _visitsOallInitStates _visitsOallSynmap _visitsOallVisitKinds _visitsOallchildvisit _visitsOallintramap _visitsOavisitdefs _visitsOavisituses _visitsOchildTypes _visitsOchildintros _visitsOcon _visitsOinhmap _visitsOmrules _visitsOnextVisits _visitsOnt _visitsOoptions _visitsOparams _visitsOprevVisits _visitsOruledefs _visitsOruleuses _visitsOsynmap _visitsOterminaldefs in ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOdatatype_call,_lhsOdatatype_con,_lhsOerrors,_lhsOfromToStates,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses)))) -- EProductions ------------------------------------------------ {- visit 0: inherited attributes: allFromToStates : Map VisitIdentifier (Int,Int) allInhmap : Map NontermIdent Attributes allInitStates : Map NontermIdent Int allSynmap : Map NontermIdent Attributes allVisitKinds : Map VisitIdentifier VisitKind allchildvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) allstates : [StateIdentifier] avisitdefs : Map VisitIdentifier (Set Identifier) avisituses : Map VisitIdentifier (Set Identifier) inhmap : Attributes initial : StateIdentifier localAttrTypes : Map ConstructorIdent (Map Identifier Type) mainFile : String mainName : String nextVisits : Map StateIdentifier StateCtx nt : NontermIdent ntType : Type options : Options params : [Identifier] prevVisits : Map StateIdentifier StateCtx rename : Bool synmap : Attributes synthesized attributes: allvisits : [VisitStateState] childvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) count : Int datatype : [PP_Doc] datatype_call : [PP_Doc] datatype_con : [PP_Doc] errors : Seq Error fromToStates : Map VisitIdentifier (Int,Int) semFunBndDefs : Seq PP_Doc semFunBndTps : Seq PP_Doc sem_nt : PP_Doc sem_prod : PP_Doc t_visits : PP_Doc visitKinds : Map VisitIdentifier VisitKind visitdefs : Map VisitIdentifier (Set Identifier) visituses : Map VisitIdentifier (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 VisitIdentifier (Int,Int)) -> (Map NontermIdent Attributes) -> (Map NontermIdent Int) -> (Map NontermIdent Attributes) -> (Map VisitIdentifier VisitKind) -> (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) -> ([StateIdentifier]) -> (Map VisitIdentifier (Set Identifier)) -> (Map VisitIdentifier (Set Identifier)) -> Attributes -> StateIdentifier -> (Map ConstructorIdent (Map Identifier Type)) -> String -> String -> (Map StateIdentifier StateCtx) -> NontermIdent -> Type -> Options -> ([Identifier]) -> (Map StateIdentifier StateCtx) -> Bool -> Attributes -> ( ([VisitStateState]),(Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),Int,([PP_Doc]),([PP_Doc]),([PP_Doc]),(Seq Error),(Map VisitIdentifier (Int,Int)),(Seq PP_Doc),(Seq PP_Doc),PP_Doc,PP_Doc,PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier)))) data Inh_EProductions = Inh_EProductions {allFromToStates_Inh_EProductions :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_EProductions :: (Map NontermIdent Attributes),allInitStates_Inh_EProductions :: (Map NontermIdent Int),allSynmap_Inh_EProductions :: (Map NontermIdent Attributes),allVisitKinds_Inh_EProductions :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_EProductions :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),allstates_Inh_EProductions :: ([StateIdentifier]),avisitdefs_Inh_EProductions :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_EProductions :: (Map VisitIdentifier (Set Identifier)),inhmap_Inh_EProductions :: Attributes,initial_Inh_EProductions :: StateIdentifier,localAttrTypes_Inh_EProductions :: (Map ConstructorIdent (Map Identifier Type)),mainFile_Inh_EProductions :: String,mainName_Inh_EProductions :: String,nextVisits_Inh_EProductions :: (Map StateIdentifier StateCtx),nt_Inh_EProductions :: NontermIdent,ntType_Inh_EProductions :: Type,options_Inh_EProductions :: Options,params_Inh_EProductions :: ([Identifier]),prevVisits_Inh_EProductions :: (Map StateIdentifier StateCtx),rename_Inh_EProductions :: Bool,synmap_Inh_EProductions :: Attributes} data Syn_EProductions = Syn_EProductions {allvisits_Syn_EProductions :: ([VisitStateState]),childvisit_Syn_EProductions :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),count_Syn_EProductions :: Int,datatype_Syn_EProductions :: ([PP_Doc]),datatype_call_Syn_EProductions :: ([PP_Doc]),datatype_con_Syn_EProductions :: ([PP_Doc]),errors_Syn_EProductions :: (Seq Error),fromToStates_Syn_EProductions :: (Map VisitIdentifier (Int,Int)),semFunBndDefs_Syn_EProductions :: (Seq PP_Doc),semFunBndTps_Syn_EProductions :: (Seq PP_Doc),sem_nt_Syn_EProductions :: PP_Doc,sem_prod_Syn_EProductions :: PP_Doc,t_visits_Syn_EProductions :: PP_Doc,visitKinds_Syn_EProductions :: (Map VisitIdentifier VisitKind),visitdefs_Syn_EProductions :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_EProductions :: (Map VisitIdentifier (Set Identifier))} wrap_EProductions :: T_EProductions -> Inh_EProductions -> Syn_EProductions wrap_EProductions (T_EProductions sem) (Inh_EProductions _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIrename _lhsIsynmap) = (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOdatatype_call,_lhsOdatatype_con,_lhsOerrors,_lhsOfromToStates,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIrename _lhsIsynmap in (Syn_EProductions _lhsOallvisits _lhsOchildvisit _lhsOcount _lhsOdatatype _lhsOdatatype_call _lhsOdatatype_con _lhsOerrors _lhsOfromToStates _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)) sem_EProductions_Cons :: T_EProduction -> T_EProductions -> T_EProductions sem_EProductions_Cons (T_EProduction hd_) (T_EProductions tl_) = (T_EProductions (\ _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIrename _lhsIsynmap -> (let _lhsOallvisits :: ([VisitStateState]) _lhsOt_visits :: PP_Doc _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _lhsOcount :: Int _lhsOdatatype :: ([PP_Doc]) _lhsOdatatype_call :: ([PP_Doc]) _lhsOdatatype_con :: ([PP_Doc]) _lhsOerrors :: (Seq Error) _lhsOfromToStates :: (Map VisitIdentifier (Int,Int)) _lhsOsemFunBndDefs :: (Seq PP_Doc) _lhsOsemFunBndTps :: (Seq PP_Doc) _lhsOsem_nt :: PP_Doc _lhsOsem_prod :: PP_Doc _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier)) _lhsOvisituses :: (Map VisitIdentifier (Set Identifier)) _hdOallFromToStates :: (Map VisitIdentifier (Int,Int)) _hdOallInhmap :: (Map NontermIdent Attributes) _hdOallInitStates :: (Map NontermIdent Int) _hdOallSynmap :: (Map NontermIdent Attributes) _hdOallVisitKinds :: (Map VisitIdentifier VisitKind) _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _hdOallstates :: ([StateIdentifier]) _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _hdOavisituses :: (Map VisitIdentifier (Set Identifier)) _hdOinhmap :: Attributes _hdOinitial :: StateIdentifier _hdOlocalAttrTypes :: (Map ConstructorIdent (Map Identifier Type)) _hdOmainFile :: String _hdOmainName :: String _hdOnextVisits :: (Map StateIdentifier StateCtx) _hdOnt :: NontermIdent _hdOntType :: Type _hdOoptions :: Options _hdOparams :: ([Identifier]) _hdOprevVisits :: (Map StateIdentifier StateCtx) _hdOrename :: Bool _hdOsynmap :: Attributes _tlOallFromToStates :: (Map VisitIdentifier (Int,Int)) _tlOallInhmap :: (Map NontermIdent Attributes) _tlOallInitStates :: (Map NontermIdent Int) _tlOallSynmap :: (Map NontermIdent Attributes) _tlOallVisitKinds :: (Map VisitIdentifier VisitKind) _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _tlOallstates :: ([StateIdentifier]) _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _tlOavisituses :: (Map VisitIdentifier (Set Identifier)) _tlOinhmap :: Attributes _tlOinitial :: StateIdentifier _tlOlocalAttrTypes :: (Map ConstructorIdent (Map Identifier Type)) _tlOmainFile :: String _tlOmainName :: String _tlOnextVisits :: (Map StateIdentifier StateCtx) _tlOnt :: NontermIdent _tlOntType :: Type _tlOoptions :: Options _tlOparams :: ([Identifier]) _tlOprevVisits :: (Map StateIdentifier StateCtx) _tlOrename :: Bool _tlOsynmap :: Attributes _hdIallvisits :: ([VisitStateState]) _hdIchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _hdIcount :: Int _hdIdatatype :: PP_Doc _hdIdatatype_call :: PP_Doc _hdIdatatype_con :: PP_Doc _hdIerrors :: (Seq Error) _hdIfromToStates :: (Map VisitIdentifier (Int,Int)) _hdIsemFunBndDefs :: (Seq PP_Doc) _hdIsemFunBndTps :: (Seq PP_Doc) _hdIsem_nt :: PP_Doc _hdIsem_prod :: PP_Doc _hdIt_visits :: PP_Doc _hdIvisitKinds :: (Map VisitIdentifier VisitKind) _hdIvisitdefs :: (Map VisitIdentifier (Set Identifier)) _hdIvisituses :: (Map VisitIdentifier (Set Identifier)) _tlIallvisits :: ([VisitStateState]) _tlIchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _tlIcount :: Int _tlIdatatype :: ([PP_Doc]) _tlIdatatype_call :: ([PP_Doc]) _tlIdatatype_con :: ([PP_Doc]) _tlIerrors :: (Seq Error) _tlIfromToStates :: (Map VisitIdentifier (Int,Int)) _tlIsemFunBndDefs :: (Seq PP_Doc) _tlIsemFunBndTps :: (Seq PP_Doc) _tlIsem_nt :: PP_Doc _tlIsem_prod :: PP_Doc _tlIt_visits :: PP_Doc _tlIvisitKinds :: (Map VisitIdentifier VisitKind) _tlIvisitdefs :: (Map VisitIdentifier (Set Identifier)) _tlIvisituses :: (Map VisitIdentifier (Set Identifier)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 435, column 10) _lhsOallvisits = ({-# LINE 435 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIallvisits {-# LINE 3165 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 530, column 3) _lhsOt_visits = ({-# LINE 530 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIt_visits {-# LINE 3171 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1147, column 37) _lhsOchildvisit = ({-# LINE 1147 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIchildvisit `Map.union` _tlIchildvisit {-# LINE 3177 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 379, column 43) _lhsOcount = ({-# LINE 379 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIcount + _tlIcount {-# LINE 3183 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 253, column 63) _lhsOdatatype = ({-# LINE 253 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIdatatype : _tlIdatatype {-# LINE 3189 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 253, column 63) _lhsOdatatype_call = ({-# LINE 253 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIdatatype_call : _tlIdatatype_call {-# LINE 3195 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 253, column 63) _lhsOdatatype_con = ({-# LINE 253 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIdatatype_con : _tlIdatatype_con {-# LINE 3201 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIerrors Seq.>< _tlIerrors {-# LINE 3207 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1393, column 22) _lhsOfromToStates = ({-# LINE 1393 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIfromToStates `mappend` _tlIfromToStates {-# LINE 3213 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 642, column 92) _lhsOsemFunBndDefs = ({-# LINE 642 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsemFunBndDefs Seq.>< _tlIsemFunBndDefs {-# LINE 3219 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 642, column 92) _lhsOsemFunBndTps = ({-# LINE 642 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsemFunBndTps Seq.>< _tlIsemFunBndTps {-# LINE 3225 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 383, column 44) _lhsOsem_nt = ({-# LINE 383 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsem_nt >-< _tlIsem_nt {-# LINE 3231 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 673, column 34) _lhsOsem_prod = ({-# LINE 673 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsem_prod >-< _tlIsem_prod {-# LINE 3237 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisitKinds `mappend` _tlIvisitKinds {-# LINE 3243 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1296, column 36) _lhsOvisitdefs = ({-# LINE 1296 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisitdefs `uwSetUnion` _tlIvisitdefs {-# LINE 3249 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1297, column 36) _lhsOvisituses = ({-# LINE 1297 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisituses `uwSetUnion` _tlIvisituses {-# LINE 3255 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 3261 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 3267 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 3273 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 3279 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 3285 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallchildvisit = ({-# LINE 1146 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 3291 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallstates = ({-# LINE 676 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallstates {-# LINE 3297 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 3303 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 3309 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 3315 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOinitial = ({-# LINE 675 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinitial {-# LINE 3321 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOlocalAttrTypes = ({-# LINE 1426 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 3327 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 3333 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 3339 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOnextVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInextVisits {-# LINE 3345 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 3351 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOntType = ({-# LINE 1469 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIntType {-# LINE 3357 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 3363 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOparams = ({-# LINE 92 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIparams {-# LINE 3369 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOprevVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevVisits {-# LINE 3375 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOrename = ({-# LINE 73 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIrename {-# LINE 3381 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 3387 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 3393 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 3399 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 3405 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 3411 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 3417 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallchildvisit = ({-# LINE 1146 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 3423 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallstates = ({-# LINE 676 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallstates {-# LINE 3429 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 3435 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 3441 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 3447 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOinitial = ({-# LINE 675 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinitial {-# LINE 3453 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOlocalAttrTypes = ({-# LINE 1426 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 3459 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 3465 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 3471 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOnextVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInextVisits {-# LINE 3477 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 3483 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOntType = ({-# LINE 1469 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIntType {-# LINE 3489 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 3495 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOparams = ({-# LINE 92 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIparams {-# LINE 3501 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOprevVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevVisits {-# LINE 3507 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOrename = ({-# LINE 73 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIrename {-# LINE 3513 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 3519 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _hdIallvisits,_hdIchildvisit,_hdIcount,_hdIdatatype,_hdIdatatype_call,_hdIdatatype_con,_hdIerrors,_hdIfromToStates,_hdIsemFunBndDefs,_hdIsemFunBndTps,_hdIsem_nt,_hdIsem_prod,_hdIt_visits,_hdIvisitKinds,_hdIvisitdefs,_hdIvisituses) = hd_ _hdOallFromToStates _hdOallInhmap _hdOallInitStates _hdOallSynmap _hdOallVisitKinds _hdOallchildvisit _hdOallstates _hdOavisitdefs _hdOavisituses _hdOinhmap _hdOinitial _hdOlocalAttrTypes _hdOmainFile _hdOmainName _hdOnextVisits _hdOnt _hdOntType _hdOoptions _hdOparams _hdOprevVisits _hdOrename _hdOsynmap ( _tlIallvisits,_tlIchildvisit,_tlIcount,_tlIdatatype,_tlIdatatype_call,_tlIdatatype_con,_tlIerrors,_tlIfromToStates,_tlIsemFunBndDefs,_tlIsemFunBndTps,_tlIsem_nt,_tlIsem_prod,_tlIt_visits,_tlIvisitKinds,_tlIvisitdefs,_tlIvisituses) = tl_ _tlOallFromToStates _tlOallInhmap _tlOallInitStates _tlOallSynmap _tlOallVisitKinds _tlOallchildvisit _tlOallstates _tlOavisitdefs _tlOavisituses _tlOinhmap _tlOinitial _tlOlocalAttrTypes _tlOmainFile _tlOmainName _tlOnextVisits _tlOnt _tlOntType _tlOoptions _tlOparams _tlOprevVisits _tlOrename _tlOsynmap in ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOdatatype_call,_lhsOdatatype_con,_lhsOerrors,_lhsOfromToStates,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses)))) sem_EProductions_Nil :: T_EProductions sem_EProductions_Nil = (T_EProductions (\ _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIrename _lhsIsynmap -> (let _lhsOallvisits :: ([VisitStateState]) _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _lhsOcount :: Int _lhsOdatatype :: ([PP_Doc]) _lhsOdatatype_call :: ([PP_Doc]) _lhsOdatatype_con :: ([PP_Doc]) _lhsOerrors :: (Seq Error) _lhsOfromToStates :: (Map VisitIdentifier (Int,Int)) _lhsOsemFunBndDefs :: (Seq PP_Doc) _lhsOsemFunBndTps :: (Seq PP_Doc) _lhsOsem_nt :: PP_Doc _lhsOsem_prod :: PP_Doc _lhsOt_visits :: PP_Doc _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier)) _lhsOvisituses :: (Map VisitIdentifier (Set Identifier)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 436, column 10) _lhsOallvisits = ({-# LINE 436 "./src-ag/ExecutionPlan2Caml.ag" #-} error "Every nonterminal should have at least 1 production" {-# LINE 3570 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1147, column 37) _lhsOchildvisit = ({-# LINE 1147 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 3576 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 379, column 43) _lhsOcount = ({-# LINE 379 "./src-ag/ExecutionPlan2Caml.ag" #-} 0 {-# LINE 3582 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 253, column 63) _lhsOdatatype = ({-# LINE 253 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 3588 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 253, column 63) _lhsOdatatype_call = ({-# LINE 253 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 3594 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 253, column 63) _lhsOdatatype_con = ({-# LINE 253 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 3600 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.empty {-# LINE 3606 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1393, column 22) _lhsOfromToStates = ({-# LINE 1393 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 3612 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 642, column 92) _lhsOsemFunBndDefs = ({-# LINE 642 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.empty {-# LINE 3618 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 642, column 92) _lhsOsemFunBndTps = ({-# LINE 642 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.empty {-# LINE 3624 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 383, column 44) _lhsOsem_nt = ({-# LINE 383 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 3630 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 673, column 34) _lhsOsem_prod = ({-# LINE 673 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 3636 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 527, column 59) _lhsOt_visits = ({-# LINE 527 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 3642 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 3648 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1296, column 36) _lhsOvisitdefs = ({-# LINE 1296 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 3654 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1297, column 36) _lhsOvisituses = ({-# LINE 1297 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 3660 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOdatatype_call,_lhsOdatatype_con,_lhsOerrors,_lhsOfromToStates,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses)))) -- ERule ------------------------------------------------------- {- visit 0: inherited attributes: allInhmap : Map NontermIdent Attributes allSynmap : Map NontermIdent Attributes childTypes : Map Identifier Type con : ConstructorIdent inhmap : Attributes lazyIntras : Set String localAttrTypes : Map Identifier Type mainFile : String mainName : String nt : NontermIdent options : Options ruleKinds : Map Identifier (Set VisitKind) synmap : Attributes usageInfo : Map Identifier Int synthesized attributes: errors : Seq Error mrules : Map Identifier (VisitKind -> Either Error PP_Doc) ruledefs : Map Identifier (Set String) ruleuses : Map Identifier (Map String (Maybe NonLocalAttr)) 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} child pure : {Bool} child mbError : {Maybe Error} visit 0: local rulecode : _ local pragma : _ local endpragma : _ local genpragma : _ local haspos : _ local declHead : _ local argPats : _ local argExprs : _ local stepcode : _ local used : _ local kinds : _ local anyLazyKind : _ -} -- cata sem_ERule :: ERule -> T_ERule sem_ERule (ERule _name _pattern _rhs _owrt _origin _explicit _pure _mbError) = (sem_ERule_ERule _name (sem_Pattern _pattern) (sem_Expression _rhs) _owrt _origin _explicit _pure _mbError) -- semantic domain newtype T_ERule = T_ERule ((Map NontermIdent Attributes) -> (Map NontermIdent Attributes) -> (Map Identifier Type) -> ConstructorIdent -> Attributes -> (Set String) -> (Map Identifier Type) -> String -> String -> NontermIdent -> Options -> (Map Identifier (Set VisitKind)) -> Attributes -> (Map Identifier Int) -> ( (Seq Error),(Map Identifier (VisitKind -> Either Error PP_Doc)),(Map Identifier (Set String)),(Map Identifier (Map String (Maybe NonLocalAttr))),PP_Doc)) data Inh_ERule = Inh_ERule {allInhmap_Inh_ERule :: (Map NontermIdent Attributes),allSynmap_Inh_ERule :: (Map NontermIdent Attributes),childTypes_Inh_ERule :: (Map Identifier Type),con_Inh_ERule :: ConstructorIdent,inhmap_Inh_ERule :: Attributes,lazyIntras_Inh_ERule :: (Set String),localAttrTypes_Inh_ERule :: (Map Identifier Type),mainFile_Inh_ERule :: String,mainName_Inh_ERule :: String,nt_Inh_ERule :: NontermIdent,options_Inh_ERule :: Options,ruleKinds_Inh_ERule :: (Map Identifier (Set VisitKind)),synmap_Inh_ERule :: Attributes,usageInfo_Inh_ERule :: (Map Identifier Int)} data Syn_ERule = Syn_ERule {errors_Syn_ERule :: (Seq Error),mrules_Syn_ERule :: (Map Identifier (VisitKind -> Either Error PP_Doc)),ruledefs_Syn_ERule :: (Map Identifier (Set String)),ruleuses_Syn_ERule :: (Map Identifier (Map String (Maybe NonLocalAttr))),sem_rules_Syn_ERule :: PP_Doc} wrap_ERule :: T_ERule -> Inh_ERule -> Syn_ERule wrap_ERule (T_ERule sem) (Inh_ERule _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInt _lhsIoptions _lhsIruleKinds _lhsIsynmap _lhsIusageInfo) = (let ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules) = sem _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInt _lhsIoptions _lhsIruleKinds _lhsIsynmap _lhsIusageInfo in (Syn_ERule _lhsOerrors _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules)) sem_ERule_ERule :: Identifier -> T_Pattern -> T_Expression -> Bool -> String -> Bool -> Bool -> (Maybe Error) -> T_ERule sem_ERule_ERule name_ (T_Pattern pattern_) (T_Expression rhs_) owrt_ origin_ explicit_ pure_ mbError_ = (T_ERule (\ _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInt _lhsIoptions _lhsIruleKinds _lhsIsynmap _lhsIusageInfo -> (let _lhsOsem_rules :: PP_Doc _lhsOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _lhsOruledefs :: (Map Identifier (Set String)) _lhsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _lhsOerrors :: (Seq Error) _patternOallInhmap :: (Map NontermIdent Attributes) _patternOallSynmap :: (Map NontermIdent Attributes) _patternOanyLazyKind :: Bool _patternOinhmap :: Attributes _patternOlocalAttrTypes :: (Map Identifier Type) _patternOoptions :: Options _patternOsynmap :: Attributes _patternIattrTypes :: PP_Doc _patternIattrs :: (Set String) _patternIcopy :: Pattern _patternIextraDefs :: ([(PP_Doc,PP_Doc)]) _patternIisUnderscore :: Bool _patternIsem_lhs :: ( PP_Doc ) _rhsIattrs :: (Map String (Maybe NonLocalAttr)) _rhsIpos :: Pos _rhsIsemfunc :: PP_Doc _rhsItks :: ([HsToken]) -- "./src-ag/ExecutionPlan2Caml.ag"(line 973, column 6) _lhsOsem_rules = ({-# LINE 973 "./src-ag/ExecutionPlan2Caml.ag" #-} if _used == 0 then empty else _rulecode {-# LINE 3792 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 976, column 6) _rulecode = ({-# LINE 976 "./src-ag/ExecutionPlan2Caml.ag" #-} ( if _genpragma then _pragma else empty ) >-< _declHead >-< indent ((column _rhsIpos - 2) `max` 2) ( if _genpragma then _pragma >-< _rhsIsemfunc >-< _endpragma else _rhsIsemfunc ) >#< "in" {-# LINE 3808 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 989, column 7) _pragma = ({-# LINE 989 "./src-ag/ExecutionPlan2Caml.ag" #-} ppLinePragma _lhsIoptions (line _rhsIpos) (file _rhsIpos) {-# LINE 3814 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 990, column 7) _endpragma = ({-# LINE 990 "./src-ag/ExecutionPlan2Caml.ag" #-} ppWithLineNr (\ln -> ppLinePragma _lhsIoptions (ln+1) _lhsImainFile) {-# LINE 3820 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 991, column 7) _genpragma = ({-# LINE 991 "./src-ag/ExecutionPlan2Caml.ag" #-} genLinePragmas _lhsIoptions && explicit_ && _haspos {-# LINE 3826 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 992, column 7) _haspos = ({-# LINE 992 "./src-ag/ExecutionPlan2Caml.ag" #-} line _rhsIpos > 0 && column _rhsIpos >= 0 && not (null (file _rhsIpos)) {-# LINE 3832 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 996, column 7) _declHead = ({-# LINE 996 "./src-ag/ExecutionPlan2Caml.ag" #-} "let" >#< name_ >#< _argPats >#< dummyPat _lhsIoptions (Map.null _rhsIattrs) >#< "=" {-# LINE 3838 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 997, column 7) _argPats = ({-# LINE 997 "./src-ag/ExecutionPlan2Caml.ag" #-} ppSpaced [ case mbAttr of Just (AttrSyn child nm) | child == _LOC && not (noPerStateTypeSigs _lhsIoptions) -> case Map.lookup nm _lhsIlocalAttrTypes of Just tp -> pp_parens (strNm >#< ":" >#< ppTp tp) Nothing -> pp strNm Just attr | not (noPerStateTypeSigs _lhsIoptions) -> case lookupAttrType attr _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes of Just tpDoc -> pp_parens (strNm >#< ":" >#< tpDoc) Nothing -> pp strNm _ -> pp strNm | (strNm, mbAttr) <- Map.assocs _rhsIattrs ] {-# LINE 3856 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1012, column 7) _argExprs = ({-# LINE 1012 "./src-ag/ExecutionPlan2Caml.ag" #-} ppSpaced $ Map.keys _rhsIattrs {-# LINE 3862 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1013, column 7) _stepcode = ({-# LINE 1013 "./src-ag/ExecutionPlan2Caml.ag" #-} \kind -> let mkBind (pat,expr) = "let" >#< pat >#< "=" >#< expr >#< "in" in if kind `compatibleRule` pure_ then Right $ mkBind (_patternIsem_lhs, name_ >#< _argExprs >#< dummyArg _lhsIoptions (Map.null _rhsIattrs)) >-< vlist (map mkBind _patternIextraDefs) else Left $ IncompatibleRuleKind name_ kind {-# LINE 3873 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1020, column 7) _lhsOmrules = ({-# LINE 1020 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton name_ _stepcode {-# LINE 3879 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1222, column 32) _used = ({-# LINE 1222 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault 0 name_ _lhsIusageInfo {-# LINE 3885 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1238, column 3) _kinds = ({-# LINE 1238 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault Set.empty name_ _lhsIruleKinds {-# LINE 3891 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1239, column 3) _anyLazyKind = ({-# LINE 1239 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.fold (\k r -> isLazyKind k || r) False _kinds {-# LINE 3897 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1285, column 11) _lhsOruledefs = ({-# LINE 1285 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton name_ _patternIattrs {-# LINE 3903 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1286, column 11) _lhsOruleuses = ({-# LINE 1286 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton name_ _rhsIattrs {-# LINE 3909 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1480, column 3) _lhsOerrors = ({-# LINE 1480 "./src-ag/ExecutionPlan2Caml.ag" #-} case mbError_ of Just e | _used > 0 -> Seq.singleton e _ -> Seq.empty {-# LINE 3917 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patternOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 3923 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patternOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 3929 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (from local) _patternOanyLazyKind = ({-# LINE 1241 "./src-ag/ExecutionPlan2Caml.ag" #-} _anyLazyKind {-# LINE 3935 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patternOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 3941 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patternOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 3947 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patternOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 3953 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patternOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 3959 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _patternIattrTypes,_patternIattrs,_patternIcopy,_patternIextraDefs,_patternIisUnderscore,_patternIsem_lhs) = pattern_ _patternOallInhmap _patternOallSynmap _patternOanyLazyKind _patternOinhmap _patternOlocalAttrTypes _patternOoptions _patternOsynmap ( _rhsIattrs,_rhsIpos,_rhsIsemfunc,_rhsItks) = rhs_ in ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules)))) -- ERules ------------------------------------------------------ {- visit 0: inherited attributes: allInhmap : Map NontermIdent Attributes allSynmap : Map NontermIdent Attributes childTypes : Map Identifier Type con : ConstructorIdent inhmap : Attributes lazyIntras : Set String localAttrTypes : Map Identifier Type mainFile : String mainName : String nt : NontermIdent options : Options ruleKinds : Map Identifier (Set VisitKind) synmap : Attributes usageInfo : Map Identifier Int synthesized attributes: errors : Seq Error mrules : Map Identifier (VisitKind -> Either Error PP_Doc) ruledefs : Map Identifier (Set String) ruleuses : Map Identifier (Map String (Maybe NonLocalAttr)) 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 ((Map NontermIdent Attributes) -> (Map NontermIdent Attributes) -> (Map Identifier Type) -> ConstructorIdent -> Attributes -> (Set String) -> (Map Identifier Type) -> String -> String -> NontermIdent -> Options -> (Map Identifier (Set VisitKind)) -> Attributes -> (Map Identifier Int) -> ( (Seq Error),(Map Identifier (VisitKind -> Either Error PP_Doc)),(Map Identifier (Set String)),(Map Identifier (Map String (Maybe NonLocalAttr))),PP_Doc)) data Inh_ERules = Inh_ERules {allInhmap_Inh_ERules :: (Map NontermIdent Attributes),allSynmap_Inh_ERules :: (Map NontermIdent Attributes),childTypes_Inh_ERules :: (Map Identifier Type),con_Inh_ERules :: ConstructorIdent,inhmap_Inh_ERules :: Attributes,lazyIntras_Inh_ERules :: (Set String),localAttrTypes_Inh_ERules :: (Map Identifier Type),mainFile_Inh_ERules :: String,mainName_Inh_ERules :: String,nt_Inh_ERules :: NontermIdent,options_Inh_ERules :: Options,ruleKinds_Inh_ERules :: (Map Identifier (Set VisitKind)),synmap_Inh_ERules :: Attributes,usageInfo_Inh_ERules :: (Map Identifier Int)} data Syn_ERules = Syn_ERules {errors_Syn_ERules :: (Seq Error),mrules_Syn_ERules :: (Map Identifier (VisitKind -> Either Error PP_Doc)),ruledefs_Syn_ERules :: (Map Identifier (Set String)),ruleuses_Syn_ERules :: (Map Identifier (Map String (Maybe NonLocalAttr))),sem_rules_Syn_ERules :: PP_Doc} wrap_ERules :: T_ERules -> Inh_ERules -> Syn_ERules wrap_ERules (T_ERules sem) (Inh_ERules _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInt _lhsIoptions _lhsIruleKinds _lhsIsynmap _lhsIusageInfo) = (let ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules) = sem _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInt _lhsIoptions _lhsIruleKinds _lhsIsynmap _lhsIusageInfo in (Syn_ERules _lhsOerrors _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 (\ _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInt _lhsIoptions _lhsIruleKinds _lhsIsynmap _lhsIusageInfo -> (let _lhsOerrors :: (Seq Error) _lhsOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _lhsOruledefs :: (Map Identifier (Set String)) _lhsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _lhsOsem_rules :: PP_Doc _hdOallInhmap :: (Map NontermIdent Attributes) _hdOallSynmap :: (Map NontermIdent Attributes) _hdOchildTypes :: (Map Identifier Type) _hdOcon :: ConstructorIdent _hdOinhmap :: Attributes _hdOlazyIntras :: (Set String) _hdOlocalAttrTypes :: (Map Identifier Type) _hdOmainFile :: String _hdOmainName :: String _hdOnt :: NontermIdent _hdOoptions :: Options _hdOruleKinds :: (Map Identifier (Set VisitKind)) _hdOsynmap :: Attributes _hdOusageInfo :: (Map Identifier Int) _tlOallInhmap :: (Map NontermIdent Attributes) _tlOallSynmap :: (Map NontermIdent Attributes) _tlOchildTypes :: (Map Identifier Type) _tlOcon :: ConstructorIdent _tlOinhmap :: Attributes _tlOlazyIntras :: (Set String) _tlOlocalAttrTypes :: (Map Identifier Type) _tlOmainFile :: String _tlOmainName :: String _tlOnt :: NontermIdent _tlOoptions :: Options _tlOruleKinds :: (Map Identifier (Set VisitKind)) _tlOsynmap :: Attributes _tlOusageInfo :: (Map Identifier Int) _hdIerrors :: (Seq Error) _hdImrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _hdIruledefs :: (Map Identifier (Set String)) _hdIruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _hdIsem_rules :: PP_Doc _tlIerrors :: (Seq Error) _tlImrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _tlIruledefs :: (Map Identifier (Set String)) _tlIruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _tlIsem_rules :: PP_Doc -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIerrors Seq.>< _tlIerrors {-# LINE 4090 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 970, column 32) _lhsOmrules = ({-# LINE 970 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdImrules `Map.union` _tlImrules {-# LINE 4096 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1278, column 34) _lhsOruledefs = ({-# LINE 1278 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIruledefs `uwSetUnion` _tlIruledefs {-# LINE 4102 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1279, column 34) _lhsOruleuses = ({-# LINE 1279 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIruleuses `uwMapUnion` _tlIruleuses {-# LINE 4108 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 969, column 35) _lhsOsem_rules = ({-# LINE 969 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsem_rules >-< _tlIsem_rules {-# LINE 4114 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 4120 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 4126 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildTypes {-# LINE 4132 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOcon = ({-# LINE 86 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIcon {-# LINE 4138 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 4144 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOlazyIntras = ({-# LINE 1330 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlazyIntras {-# LINE 4150 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 4156 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 4162 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 4168 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 4174 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 4180 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOruleKinds = ({-# LINE 1233 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruleKinds {-# LINE 4186 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 4192 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOusageInfo = ({-# LINE 1218 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIusageInfo {-# LINE 4198 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 4204 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 4210 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildTypes {-# LINE 4216 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOcon = ({-# LINE 86 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIcon {-# LINE 4222 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 4228 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOlazyIntras = ({-# LINE 1330 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlazyIntras {-# LINE 4234 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 4240 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 4246 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 4252 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 4258 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 4264 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOruleKinds = ({-# LINE 1233 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruleKinds {-# LINE 4270 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 4276 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOusageInfo = ({-# LINE 1218 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIusageInfo {-# LINE 4282 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _hdIerrors,_hdImrules,_hdIruledefs,_hdIruleuses,_hdIsem_rules) = hd_ _hdOallInhmap _hdOallSynmap _hdOchildTypes _hdOcon _hdOinhmap _hdOlazyIntras _hdOlocalAttrTypes _hdOmainFile _hdOmainName _hdOnt _hdOoptions _hdOruleKinds _hdOsynmap _hdOusageInfo ( _tlIerrors,_tlImrules,_tlIruledefs,_tlIruleuses,_tlIsem_rules) = tl_ _tlOallInhmap _tlOallSynmap _tlOchildTypes _tlOcon _tlOinhmap _tlOlazyIntras _tlOlocalAttrTypes _tlOmainFile _tlOmainName _tlOnt _tlOoptions _tlOruleKinds _tlOsynmap _tlOusageInfo in ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules)))) sem_ERules_Nil :: T_ERules sem_ERules_Nil = (T_ERules (\ _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsInt _lhsIoptions _lhsIruleKinds _lhsIsynmap _lhsIusageInfo -> (let _lhsOerrors :: (Seq Error) _lhsOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _lhsOruledefs :: (Map Identifier (Set String)) _lhsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _lhsOsem_rules :: PP_Doc -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.empty {-# LINE 4314 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 970, column 32) _lhsOmrules = ({-# LINE 970 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 4320 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1278, column 34) _lhsOruledefs = ({-# LINE 1278 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 4326 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1279, column 34) _lhsOruleuses = ({-# LINE 1279 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 4332 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 969, column 35) _lhsOsem_rules = ({-# LINE 969 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 4338 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules)))) -- ExecutionPlan ----------------------------------------------- {- visit 0: inherited attributes: inhmap : Map NontermIdent Attributes localAttrTypes : Map NontermIdent (Map ConstructorIdent (Map Identifier Type)) mainFile : String mainName : String options : Options synmap : Map NontermIdent Attributes synthesized attributes: code : PP_Doc datas : PP_Doc errors : Seq Error modules : PP_Doc alternatives: alternative ExecutionPlan: child nonts : ENonterminals child typeSyns : {TypeSyns} child wrappers : {Set NontermIdent} child derivings : {Derivings} visit 0: local wrappersExtra : _ local commonExtra : _ local lateSemBndTp : _ local lateSemBndDef : _ -} -- cata sem_ExecutionPlan :: ExecutionPlan -> T_ExecutionPlan sem_ExecutionPlan (ExecutionPlan _nonts _typeSyns _wrappers _derivings) = (sem_ExecutionPlan_ExecutionPlan (sem_ENonterminals _nonts) _typeSyns _wrappers _derivings) -- semantic domain newtype T_ExecutionPlan = T_ExecutionPlan ((Map NontermIdent Attributes) -> (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) -> String -> String -> Options -> (Map NontermIdent Attributes) -> ( PP_Doc,PP_Doc,(Seq Error),PP_Doc)) data Inh_ExecutionPlan = Inh_ExecutionPlan {inhmap_Inh_ExecutionPlan :: (Map NontermIdent Attributes),localAttrTypes_Inh_ExecutionPlan :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))),mainFile_Inh_ExecutionPlan :: String,mainName_Inh_ExecutionPlan :: String,options_Inh_ExecutionPlan :: Options,synmap_Inh_ExecutionPlan :: (Map NontermIdent Attributes)} data Syn_ExecutionPlan = Syn_ExecutionPlan {code_Syn_ExecutionPlan :: PP_Doc,datas_Syn_ExecutionPlan :: PP_Doc,errors_Syn_ExecutionPlan :: (Seq Error),modules_Syn_ExecutionPlan :: PP_Doc} wrap_ExecutionPlan :: T_ExecutionPlan -> Inh_ExecutionPlan -> Syn_ExecutionPlan wrap_ExecutionPlan (T_ExecutionPlan sem) (Inh_ExecutionPlan _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap) = (let ( _lhsOcode,_lhsOdatas,_lhsOerrors,_lhsOmodules) = sem _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap in (Syn_ExecutionPlan _lhsOcode _lhsOdatas _lhsOerrors _lhsOmodules)) sem_ExecutionPlan_ExecutionPlan :: T_ENonterminals -> TypeSyns -> (Set NontermIdent) -> Derivings -> T_ExecutionPlan sem_ExecutionPlan_ExecutionPlan (T_ENonterminals nonts_) typeSyns_ wrappers_ derivings_ = (T_ExecutionPlan (\ _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsIoptions _lhsIsynmap -> (let _lhsOcode :: PP_Doc _lhsOdatas :: PP_Doc _nontsOwrappers :: (Set NontermIdent) _nontsOtypeSyns :: TypeSyns _nontsOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _nontsOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _nontsOavisituses :: (Map VisitIdentifier (Set Identifier)) _nontsOallFromToStates :: (Map VisitIdentifier (Int,Int)) _nontsOallVisitKinds :: (Map VisitIdentifier VisitKind) _nontsOallInitStates :: (Map NontermIdent Int) _lhsOerrors :: (Seq Error) _lhsOmodules :: PP_Doc _nontsOinhmap :: (Map NontermIdent Attributes) _nontsOlocalAttrTypes :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) _nontsOmainFile :: String _nontsOmainName :: String _nontsOoptions :: Options _nontsOsynmap :: (Map NontermIdent Attributes) _nontsIchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _nontsIcode :: PP_Doc _nontsIdatas :: PP_Doc _nontsIerrors :: (Seq Error) _nontsIfromToStates :: (Map VisitIdentifier (Int,Int)) _nontsIinitStates :: (Map NontermIdent Int) _nontsImodules :: PP_Doc _nontsIsemFunBndDefs :: (Seq PP_Doc) _nontsIsemFunBndTps :: (Seq PP_Doc) _nontsIvisitKinds :: (Map VisitIdentifier VisitKind) _nontsIvisitdefs :: (Map VisitIdentifier (Set Identifier)) _nontsIvisituses :: (Map VisitIdentifier (Set Identifier)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 103, column 3) _lhsOcode = ({-# LINE 103 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsIcode >-< _wrappersExtra {-# LINE 4435 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 104, column 3) _lhsOdatas = ({-# LINE 104 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsIdatas >-< _commonExtra {-# LINE 4441 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 110, column 3) _nontsOwrappers = ({-# LINE 110 "./src-ag/ExecutionPlan2Caml.ag" #-} wrappers_ {-# LINE 4447 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 171, column 3) _nontsOtypeSyns = ({-# LINE 171 "./src-ag/ExecutionPlan2Caml.ag" #-} typeSyns_ {-# LINE 4453 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 659, column 3) _wrappersExtra = ({-# LINE 659 "./src-ag/ExecutionPlan2Caml.ag" #-} if lateHigherOrderBinding _lhsIoptions then _lateSemBndDef else empty {-# LINE 4461 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 662, column 3) _commonExtra = ({-# LINE 662 "./src-ag/ExecutionPlan2Caml.ag" #-} if lateHigherOrderBinding _lhsIoptions then _lateSemBndTp else empty {-# LINE 4469 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 665, column 3) _lateSemBndTp = ({-# LINE 665 "./src-ag/ExecutionPlan2Caml.ag" #-} "and" >#< lateBindingTypeNm _lhsImainName >#< "=" >#< ppRecordTp (toList _nontsIsemFunBndTps) {-# LINE 4475 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 666, column 3) _lateSemBndDef = ({-# LINE 666 "./src-ag/ExecutionPlan2Caml.ag" #-} "and" >#< lateBindingFieldNm _lhsImainName >#< ":" >#< lateBindingTypeNm _lhsImainName >#< "=" >-< (indent 2 $ ppRecordVal $ toList _nontsIsemFunBndDefs) {-# LINE 4482 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1152, column 19) _nontsOallchildvisit = ({-# LINE 1152 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsIchildvisit {-# LINE 4488 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1310, column 19) _nontsOavisitdefs = ({-# LINE 1310 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsIvisitdefs {-# LINE 4494 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1311, column 19) _nontsOavisituses = ({-# LINE 1311 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsIvisituses {-# LINE 4500 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1402, column 3) _nontsOallFromToStates = ({-# LINE 1402 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsIfromToStates {-# LINE 4506 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1446, column 3) _nontsOallVisitKinds = ({-# LINE 1446 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsIvisitKinds {-# LINE 4512 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1460, column 3) _nontsOallInitStates = ({-# LINE 1460 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsIinitStates {-# LINE 4518 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsIerrors {-# LINE 4524 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (up) _lhsOmodules = ({-# LINE 100 "./src-ag/ExecutionPlan2Caml.ag" #-} _nontsImodules {-# LINE 4530 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _nontsOinhmap = ({-# LINE 403 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 4536 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _nontsOlocalAttrTypes = ({-# LINE 1425 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 4542 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _nontsOmainFile = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainFile {-# LINE 4548 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _nontsOmainName = ({-# LINE 60 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImainName {-# LINE 4554 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _nontsOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 4560 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _nontsOsynmap = ({-# LINE 404 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 4566 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _nontsIchildvisit,_nontsIcode,_nontsIdatas,_nontsIerrors,_nontsIfromToStates,_nontsIinitStates,_nontsImodules,_nontsIsemFunBndDefs,_nontsIsemFunBndTps,_nontsIvisitKinds,_nontsIvisitdefs,_nontsIvisituses) = nonts_ _nontsOallFromToStates _nontsOallInitStates _nontsOallVisitKinds _nontsOallchildvisit _nontsOavisitdefs _nontsOavisituses _nontsOinhmap _nontsOlocalAttrTypes _nontsOmainFile _nontsOmainName _nontsOoptions _nontsOsynmap _nontsOtypeSyns _nontsOwrappers in ( _lhsOcode,_lhsOdatas,_lhsOerrors,_lhsOmodules)))) -- Expression -------------------------------------------------- {- visit 0: synthesized attributes: attrs : Map String (Maybe NonLocalAttr) pos : Pos semfunc : PP_Doc tks : [HsToken] 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 (( (Map String (Maybe NonLocalAttr)),Pos,PP_Doc,([HsToken]))) data Inh_Expression = Inh_Expression {} data Syn_Expression = Syn_Expression {attrs_Syn_Expression :: (Map String (Maybe NonLocalAttr)),pos_Syn_Expression :: Pos,semfunc_Syn_Expression :: PP_Doc,tks_Syn_Expression :: ([HsToken])} wrap_Expression :: T_Expression -> Inh_Expression -> Syn_Expression wrap_Expression (T_Expression sem) (Inh_Expression) = (let ( _lhsOattrs,_lhsOpos,_lhsOsemfunc,_lhsOtks) = sem in (Syn_Expression _lhsOattrs _lhsOpos _lhsOsemfunc _lhsOtks)) sem_Expression_Expression :: Pos -> ([HsToken]) -> T_Expression sem_Expression_Expression pos_ tks_ = (T_Expression (let _lhsOtks :: ([HsToken]) _lhsOpos :: Pos _lhsOattrs :: (Map String (Maybe NonLocalAttr)) _lhsOsemfunc :: PP_Doc -- "./src-ag/ExecutionPlan2Caml.ag"(line 1024, column 16) _lhsOtks = ({-# LINE 1024 "./src-ag/ExecutionPlan2Caml.ag" #-} tks_ {-# LINE 4611 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1045, column 29) _lhsOpos = ({-# LINE 1045 "./src-ag/ExecutionPlan2Caml.ag" #-} pos_ {-# LINE 4617 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1137, column 16) _lhsOattrs = ({-# LINE 1137 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.unions $ map (\tok -> attrs_Syn_HsToken (wrap_HsToken (sem_HsToken tok) Inh_HsToken)) tks_ {-# LINE 4623 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1138, column 16) _lhsOsemfunc = ({-# LINE 1138 "./src-ag/ExecutionPlan2Caml.ag" #-} vlist $ showTokens $ map (\tok -> tok_Syn_HsToken (wrap_HsToken (sem_HsToken tok) Inh_HsToken)) tks_ {-# LINE 4629 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOattrs,_lhsOpos,_lhsOsemfunc,_lhsOtks))) -- HsToken ----------------------------------------------------- {- visit 0: synthesized attributes: attrs : Map String (Maybe NonLocalAttr) tok : (Pos,String) alternatives: alternative AGLocal: child var : {Identifier} child pos : {Pos} child rdesc : {Maybe String} visit 0: local tok : _ alternative AGField: child field : {Identifier} child attr : {Identifier} child pos : {Pos} child rdesc : {Maybe String} visit 0: local mbAttr : _ local addTrace : _ alternative HsToken: child value : {String} child pos : {Pos} alternative CharToken: child value : {String} child pos : {Pos} alternative StrToken: child value : {String} child pos : {Pos} alternative Err: child mesg : {String} child pos : {Pos} -} -- cata sem_HsToken :: HsToken -> T_HsToken sem_HsToken (AGLocal _var _pos _rdesc) = (sem_HsToken_AGLocal _var _pos _rdesc) sem_HsToken (AGField _field _attr _pos _rdesc) = (sem_HsToken_AGField _field _attr _pos _rdesc) sem_HsToken (HsToken _value _pos) = (sem_HsToken_HsToken _value _pos) sem_HsToken (CharToken _value _pos) = (sem_HsToken_CharToken _value _pos) sem_HsToken (StrToken _value _pos) = (sem_HsToken_StrToken _value _pos) sem_HsToken (Err _mesg _pos) = (sem_HsToken_Err _mesg _pos) -- semantic domain newtype T_HsToken = T_HsToken (( (Map String (Maybe NonLocalAttr)),((Pos,String)))) data Inh_HsToken = Inh_HsToken {} data Syn_HsToken = Syn_HsToken {attrs_Syn_HsToken :: (Map String (Maybe NonLocalAttr)),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_AGLocal :: Identifier -> Pos -> (Maybe String) -> T_HsToken sem_HsToken_AGLocal var_ pos_ rdesc_ = (T_HsToken (let _lhsOattrs :: (Map String (Maybe NonLocalAttr)) _lhsOtok :: ((Pos,String)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1096, column 15) _lhsOattrs = ({-# LINE 1096 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton (fieldname var_) Nothing {-# LINE 4702 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1358, column 15) _tok = ({-# LINE 1358 "./src-ag/ExecutionPlan2Caml.ag" #-} (pos_,fieldname var_) {-# LINE 4708 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (from local) _lhsOtok = ({-# LINE 1360 "./src-ag/ExecutionPlan2Caml.ag" #-} _tok {-# LINE 4714 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOattrs,_lhsOtok))) sem_HsToken_AGField :: Identifier -> Identifier -> Pos -> (Maybe String) -> T_HsToken sem_HsToken_AGField field_ attr_ pos_ rdesc_ = (T_HsToken (let _lhsOattrs :: (Map String (Maybe NonLocalAttr)) _lhsOtok :: ((Pos,String)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1097, column 15) _mbAttr = ({-# LINE 1097 "./src-ag/ExecutionPlan2Caml.ag" #-} if field_ == _INST || field_ == _FIELD || field_ == _INST' then Nothing else Just $ mkNonLocalAttr (field_ == _LHS) field_ attr_ {-# LINE 4731 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1100, column 15) _lhsOattrs = ({-# LINE 1100 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton (attrname True field_ attr_) _mbAttr {-# LINE 4737 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1362, column 8) _addTrace = ({-# LINE 1362 "./src-ag/ExecutionPlan2Caml.ag" #-} case rdesc_ of Just d -> \x -> "(prerr_endline " ++ show (d ++ " -> " ++ show field_ ++ "." ++ show attr_) ++ "; " ++ x ++ ")" Nothing -> id {-# LINE 4745 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1365, column 8) _lhsOtok = ({-# LINE 1365 "./src-ag/ExecutionPlan2Caml.ag" #-} (pos_, _addTrace $ attrname True field_ attr_) {-# LINE 4751 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOattrs,_lhsOtok))) sem_HsToken_HsToken :: String -> Pos -> T_HsToken sem_HsToken_HsToken value_ pos_ = (T_HsToken (let _lhsOtok :: ((Pos,String)) _lhsOattrs :: (Map String (Maybe NonLocalAttr)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1367, column 14) _lhsOtok = ({-# LINE 1367 "./src-ag/ExecutionPlan2Caml.ag" #-} (pos_, value_) {-# LINE 4764 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1094, column 37) _lhsOattrs = ({-# LINE 1094 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 4770 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOattrs,_lhsOtok))) sem_HsToken_CharToken :: String -> Pos -> T_HsToken sem_HsToken_CharToken value_ pos_ = (T_HsToken (let _lhsOtok :: ((Pos,String)) _lhsOattrs :: (Map String (Maybe NonLocalAttr)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1369, column 16) _lhsOtok = ({-# LINE 1369 "./src-ag/ExecutionPlan2Caml.ag" #-} (pos_, if null value_ then "" else showCharShort (head value_) ) {-# LINE 4786 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1094, column 37) _lhsOattrs = ({-# LINE 1094 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 4792 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOattrs,_lhsOtok))) sem_HsToken_StrToken :: String -> Pos -> T_HsToken sem_HsToken_StrToken value_ pos_ = (T_HsToken (let _lhsOtok :: ((Pos,String)) _lhsOattrs :: (Map String (Maybe NonLocalAttr)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1374, column 16) _lhsOtok = ({-# LINE 1374 "./src-ag/ExecutionPlan2Caml.ag" #-} (pos_, showStrShort value_) {-# LINE 4805 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1094, column 37) _lhsOattrs = ({-# LINE 1094 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 4811 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOattrs,_lhsOtok))) sem_HsToken_Err :: String -> Pos -> T_HsToken sem_HsToken_Err mesg_ pos_ = (T_HsToken (let _lhsOtok :: ((Pos,String)) _lhsOattrs :: (Map String (Maybe NonLocalAttr)) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1375, column 16) _lhsOtok = ({-# LINE 1375 "./src-ag/ExecutionPlan2Caml.ag" #-} (pos_, "") {-# LINE 4824 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1094, column 37) _lhsOattrs = ({-# LINE 1094 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 4830 "dist/build/ExecutionPlan2Caml.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 :: (Map String (Maybe NonLocalAttr)) _hdItok :: ((Pos,String)) _tlItks :: ([(Pos,String)]) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1354, column 10) _lhsOtks = ({-# LINE 1354 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdItok : _tlItks {-# LINE 4871 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _hdIattrs,_hdItok) = hd_ ( _tlItks) = tl_ in ( _lhsOtks))) sem_HsTokens_Nil :: T_HsTokens sem_HsTokens_Nil = (T_HsTokens (let _lhsOtks :: ([(Pos,String)]) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1355, column 10) _lhsOtks = ({-# LINE 1355 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 4885 "dist/build/ExecutionPlan2Caml.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: inherited attributes: allInhmap : Map NontermIdent Attributes allSynmap : Map NontermIdent Attributes anyLazyKind : Bool inhmap : Attributes localAttrTypes : Map Identifier Type options : Options synmap : Attributes synthesized attributes: attrTypes : PP_Doc attrs : Set String copy : Pattern extraDefs : [(PP_Doc,PP_Doc)] isUnderscore : Bool sem_lhs : PP_Doc alternatives: alternative Constr: child name : {ConstructorIdent} child pats : Patterns visit 0: local copy : _ alternative Product: child pos : {Pos} child pats : Patterns visit 0: local copy : _ alternative Alias: child field : {Identifier} child attr : {Identifier} child pat : Pattern visit 0: local var : _ local hasTp : _ local o_sigs : _ local mbTp : _ local copy : _ alternative Irrefutable: child pat : Pattern visit 0: local copy : _ alternative Underscore: child pos : {Pos} visit 0: local copy : _ -} -- cata sem_Pattern :: Pattern -> T_Pattern sem_Pattern (Constr _name _pats) = (sem_Pattern_Constr _name (sem_Patterns _pats)) sem_Pattern (Product _pos _pats) = (sem_Pattern_Product _pos (sem_Patterns _pats)) sem_Pattern (Alias _field _attr _pat) = (sem_Pattern_Alias _field _attr (sem_Pattern _pat)) sem_Pattern (Irrefutable _pat) = (sem_Pattern_Irrefutable (sem_Pattern _pat)) sem_Pattern (Underscore _pos) = (sem_Pattern_Underscore _pos) -- semantic domain newtype T_Pattern = T_Pattern ((Map NontermIdent Attributes) -> (Map NontermIdent Attributes) -> Bool -> Attributes -> (Map Identifier Type) -> Options -> Attributes -> ( PP_Doc,(Set String),Pattern,([(PP_Doc,PP_Doc)]),Bool,( PP_Doc ))) data Inh_Pattern = Inh_Pattern {allInhmap_Inh_Pattern :: (Map NontermIdent Attributes),allSynmap_Inh_Pattern :: (Map NontermIdent Attributes),anyLazyKind_Inh_Pattern :: Bool,inhmap_Inh_Pattern :: Attributes,localAttrTypes_Inh_Pattern :: (Map Identifier Type),options_Inh_Pattern :: Options,synmap_Inh_Pattern :: Attributes} data Syn_Pattern = Syn_Pattern {attrTypes_Syn_Pattern :: PP_Doc,attrs_Syn_Pattern :: (Set String),copy_Syn_Pattern :: Pattern,extraDefs_Syn_Pattern :: ([(PP_Doc,PP_Doc)]),isUnderscore_Syn_Pattern :: Bool,sem_lhs_Syn_Pattern :: ( PP_Doc )} wrap_Pattern :: T_Pattern -> Inh_Pattern -> Syn_Pattern wrap_Pattern (T_Pattern sem) (Inh_Pattern _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap) = (let ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOextraDefs,_lhsOisUnderscore,_lhsOsem_lhs) = sem _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap in (Syn_Pattern _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOextraDefs _lhsOisUnderscore _lhsOsem_lhs)) sem_Pattern_Constr :: ConstructorIdent -> T_Patterns -> T_Pattern sem_Pattern_Constr name_ (T_Patterns pats_) = (T_Pattern (\ _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap -> (let _lhsOsem_lhs :: ( PP_Doc ) _lhsOisUnderscore :: Bool _lhsOattrTypes :: PP_Doc _lhsOattrs :: (Set String) _lhsOextraDefs :: ([(PP_Doc,PP_Doc)]) _lhsOcopy :: Pattern _patsOallInhmap :: (Map NontermIdent Attributes) _patsOallSynmap :: (Map NontermIdent Attributes) _patsOanyLazyKind :: Bool _patsOinhmap :: Attributes _patsOlocalAttrTypes :: (Map Identifier Type) _patsOoptions :: Options _patsOsynmap :: Attributes _patsIattrTypes :: PP_Doc _patsIattrs :: (Set String) _patsIcopy :: Patterns _patsIextraDefs :: ([(PP_Doc,PP_Doc)]) _patsIsem_lhs :: ([PP_Doc]) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1062, column 17) _lhsOsem_lhs = ({-# LINE 1062 "./src-ag/ExecutionPlan2Caml.ag" #-} pp_parens $ name_ >#< pp_block "(" ")" "," _patsIsem_lhs {-# LINE 5027 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1071, column 16) _lhsOisUnderscore = ({-# LINE 1071 "./src-ag/ExecutionPlan2Caml.ag" #-} False {-# LINE 5033 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1083, column 40) _lhsOattrTypes = ({-# LINE 1083 "./src-ag/ExecutionPlan2Caml.ag" #-} _patsIattrTypes {-# LINE 5039 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1077, column 36) _lhsOattrs = ({-# LINE 1077 "./src-ag/ExecutionPlan2Caml.ag" #-} _patsIattrs {-# LINE 5045 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1050, column 39) _lhsOextraDefs = ({-# LINE 1050 "./src-ag/ExecutionPlan2Caml.ag" #-} _patsIextraDefs {-# LINE 5051 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _copy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} Constr name_ _patsIcopy {-# LINE 5057 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} _copy {-# LINE 5063 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 5069 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 5075 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOanyLazyKind = ({-# LINE 1241 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIanyLazyKind {-# LINE 5081 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 5087 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 5093 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 5099 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 5105 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _patsIattrTypes,_patsIattrs,_patsIcopy,_patsIextraDefs,_patsIsem_lhs) = pats_ _patsOallInhmap _patsOallSynmap _patsOanyLazyKind _patsOinhmap _patsOlocalAttrTypes _patsOoptions _patsOsynmap in ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOextraDefs,_lhsOisUnderscore,_lhsOsem_lhs)))) sem_Pattern_Product :: Pos -> T_Patterns -> T_Pattern sem_Pattern_Product pos_ (T_Patterns pats_) = (T_Pattern (\ _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap -> (let _lhsOsem_lhs :: ( PP_Doc ) _lhsOisUnderscore :: Bool _lhsOattrTypes :: PP_Doc _lhsOattrs :: (Set String) _lhsOextraDefs :: ([(PP_Doc,PP_Doc)]) _lhsOcopy :: Pattern _patsOallInhmap :: (Map NontermIdent Attributes) _patsOallSynmap :: (Map NontermIdent Attributes) _patsOanyLazyKind :: Bool _patsOinhmap :: Attributes _patsOlocalAttrTypes :: (Map Identifier Type) _patsOoptions :: Options _patsOsynmap :: Attributes _patsIattrTypes :: PP_Doc _patsIattrs :: (Set String) _patsIcopy :: Patterns _patsIextraDefs :: ([(PP_Doc,PP_Doc)]) _patsIsem_lhs :: ([PP_Doc]) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1061, column 17) _lhsOsem_lhs = ({-# LINE 1061 "./src-ag/ExecutionPlan2Caml.ag" #-} pp_block "(" ")" "," _patsIsem_lhs {-# LINE 5143 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1072, column 16) _lhsOisUnderscore = ({-# LINE 1072 "./src-ag/ExecutionPlan2Caml.ag" #-} False {-# LINE 5149 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1083, column 40) _lhsOattrTypes = ({-# LINE 1083 "./src-ag/ExecutionPlan2Caml.ag" #-} _patsIattrTypes {-# LINE 5155 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1077, column 36) _lhsOattrs = ({-# LINE 1077 "./src-ag/ExecutionPlan2Caml.ag" #-} _patsIattrs {-# LINE 5161 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1050, column 39) _lhsOextraDefs = ({-# LINE 1050 "./src-ag/ExecutionPlan2Caml.ag" #-} _patsIextraDefs {-# LINE 5167 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _copy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} Product pos_ _patsIcopy {-# LINE 5173 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} _copy {-# LINE 5179 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 5185 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 5191 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOanyLazyKind = ({-# LINE 1241 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIanyLazyKind {-# LINE 5197 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 5203 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 5209 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 5215 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patsOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 5221 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _patsIattrTypes,_patsIattrs,_patsIcopy,_patsIextraDefs,_patsIsem_lhs) = pats_ _patsOallInhmap _patsOallSynmap _patsOanyLazyKind _patsOinhmap _patsOlocalAttrTypes _patsOoptions _patsOsynmap in ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOextraDefs,_lhsOisUnderscore,_lhsOsem_lhs)))) sem_Pattern_Alias :: Identifier -> Identifier -> T_Pattern -> T_Pattern sem_Pattern_Alias field_ attr_ (T_Pattern pat_) = (T_Pattern (\ _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap -> (let _lhsOsem_lhs :: ( PP_Doc ) _lhsOextraDefs :: ([(PP_Doc,PP_Doc)]) _lhsOisUnderscore :: Bool _lhsOattrs :: (Set String) _lhsOattrTypes :: PP_Doc _lhsOcopy :: Pattern _patOallInhmap :: (Map NontermIdent Attributes) _patOallSynmap :: (Map NontermIdent Attributes) _patOanyLazyKind :: Bool _patOinhmap :: Attributes _patOlocalAttrTypes :: (Map Identifier Type) _patOoptions :: Options _patOsynmap :: Attributes _patIattrTypes :: PP_Doc _patIattrs :: (Set String) _patIcopy :: Pattern _patIextraDefs :: ([(PP_Doc,PP_Doc)]) _patIisUnderscore :: Bool _patIsem_lhs :: ( PP_Doc ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1053, column 17) _var = ({-# LINE 1053 "./src-ag/ExecutionPlan2Caml.ag" #-} text $ attrname False field_ attr_ {-# LINE 5261 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1054, column 17) _hasTp = ({-# LINE 1054 "./src-ag/ExecutionPlan2Caml.ag" #-} isJust _mbTp {-# LINE 5267 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1055, column 17) _o_sigs = ({-# LINE 1055 "./src-ag/ExecutionPlan2Caml.ag" #-} typeSigs _lhsIoptions {-# LINE 5273 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1057, column 17) _lhsOsem_lhs = ({-# LINE 1057 "./src-ag/ExecutionPlan2Caml.ag" #-} ppArg (_hasTp && _o_sigs ) _var (maybe (text "?no type?") ppTp _mbTp ) {-# LINE 5279 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1058, column 17) _lhsOextraDefs = ({-# LINE 1058 "./src-ag/ExecutionPlan2Caml.ag" #-} if _patIisUnderscore then [] else [ (_patIsem_lhs, _var ) ] {-# LINE 5287 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1073, column 16) _lhsOisUnderscore = ({-# LINE 1073 "./src-ag/ExecutionPlan2Caml.ag" #-} False {-# LINE 5293 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1079, column 3) _lhsOattrs = ({-# LINE 1079 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.insert (attrname False field_ attr_) _patIattrs {-# LINE 5299 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1085, column 3) _mbTp = ({-# LINE 1085 "./src-ag/ExecutionPlan2Caml.ag" #-} if field_ == _LHS then Map.lookup attr_ _lhsIsynmap else if field_ == _LOC then Map.lookup attr_ _lhsIlocalAttrTypes else Nothing {-# LINE 5309 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1090, column 3) _lhsOattrTypes = ({-# LINE 1090 "./src-ag/ExecutionPlan2Caml.ag" #-} maybe empty (\tp -> (attrname False field_ attr_) >#< "::" >#< ppTp tp) _mbTp >-< _patIattrTypes {-# LINE 5316 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _copy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} Alias field_ attr_ _patIcopy {-# LINE 5322 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} _copy {-# LINE 5328 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 5334 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 5340 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOanyLazyKind = ({-# LINE 1241 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIanyLazyKind {-# LINE 5346 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 5352 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 5358 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 5364 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 5370 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _patIattrTypes,_patIattrs,_patIcopy,_patIextraDefs,_patIisUnderscore,_patIsem_lhs) = pat_ _patOallInhmap _patOallSynmap _patOanyLazyKind _patOinhmap _patOlocalAttrTypes _patOoptions _patOsynmap in ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOextraDefs,_lhsOisUnderscore,_lhsOsem_lhs)))) sem_Pattern_Irrefutable :: T_Pattern -> T_Pattern sem_Pattern_Irrefutable (T_Pattern pat_) = (T_Pattern (\ _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap -> (let _lhsOsem_lhs :: ( PP_Doc ) _lhsOattrTypes :: PP_Doc _lhsOattrs :: (Set String) _lhsOextraDefs :: ([(PP_Doc,PP_Doc)]) _lhsOcopy :: Pattern _lhsOisUnderscore :: Bool _patOallInhmap :: (Map NontermIdent Attributes) _patOallSynmap :: (Map NontermIdent Attributes) _patOanyLazyKind :: Bool _patOinhmap :: Attributes _patOlocalAttrTypes :: (Map Identifier Type) _patOoptions :: Options _patOsynmap :: Attributes _patIattrTypes :: PP_Doc _patIattrs :: (Set String) _patIcopy :: Pattern _patIextraDefs :: ([(PP_Doc,PP_Doc)]) _patIisUnderscore :: Bool _patIsem_lhs :: ( PP_Doc ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1064, column 17) _lhsOsem_lhs = ({-# LINE 1064 "./src-ag/ExecutionPlan2Caml.ag" #-} pp_parens (text "lazy" >#< _patIsem_lhs) {-# LINE 5408 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1083, column 40) _lhsOattrTypes = ({-# LINE 1083 "./src-ag/ExecutionPlan2Caml.ag" #-} _patIattrTypes {-# LINE 5414 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1077, column 36) _lhsOattrs = ({-# LINE 1077 "./src-ag/ExecutionPlan2Caml.ag" #-} _patIattrs {-# LINE 5420 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1050, column 39) _lhsOextraDefs = ({-# LINE 1050 "./src-ag/ExecutionPlan2Caml.ag" #-} _patIextraDefs {-# LINE 5426 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _copy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} Irrefutable _patIcopy {-# LINE 5432 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} _copy {-# LINE 5438 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (up) _lhsOisUnderscore = ({-# LINE 1069 "./src-ag/ExecutionPlan2Caml.ag" #-} _patIisUnderscore {-# LINE 5444 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 5450 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 5456 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOanyLazyKind = ({-# LINE 1241 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIanyLazyKind {-# LINE 5462 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 5468 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 5474 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 5480 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _patOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 5486 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _patIattrTypes,_patIattrs,_patIcopy,_patIextraDefs,_patIisUnderscore,_patIsem_lhs) = pat_ _patOallInhmap _patOallSynmap _patOanyLazyKind _patOinhmap _patOlocalAttrTypes _patOoptions _patOsynmap in ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOextraDefs,_lhsOisUnderscore,_lhsOsem_lhs)))) sem_Pattern_Underscore :: Pos -> T_Pattern sem_Pattern_Underscore pos_ = (T_Pattern (\ _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap -> (let _lhsOsem_lhs :: ( PP_Doc ) _lhsOisUnderscore :: Bool _lhsOattrTypes :: PP_Doc _lhsOattrs :: (Set String) _lhsOextraDefs :: ([(PP_Doc,PP_Doc)]) _lhsOcopy :: Pattern -- "./src-ag/ExecutionPlan2Caml.ag"(line 1063, column 17) _lhsOsem_lhs = ({-# LINE 1063 "./src-ag/ExecutionPlan2Caml.ag" #-} text "_" {-# LINE 5511 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1074, column 16) _lhsOisUnderscore = ({-# LINE 1074 "./src-ag/ExecutionPlan2Caml.ag" #-} True {-# LINE 5517 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1083, column 40) _lhsOattrTypes = ({-# LINE 1083 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 5523 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1077, column 36) _lhsOattrs = ({-# LINE 1077 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 5529 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1050, column 39) _lhsOextraDefs = ({-# LINE 1050 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 5535 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _copy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} Underscore pos_ {-# LINE 5541 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} _copy {-# LINE 5547 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOextraDefs,_lhsOisUnderscore,_lhsOsem_lhs)))) -- Patterns ---------------------------------------------------- {- visit 0: inherited attributes: allInhmap : Map NontermIdent Attributes allSynmap : Map NontermIdent Attributes anyLazyKind : Bool inhmap : Attributes localAttrTypes : Map Identifier Type options : Options synmap : Attributes synthesized attributes: attrTypes : PP_Doc attrs : Set String copy : Patterns extraDefs : [(PP_Doc,PP_Doc)] 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 ((Map NontermIdent Attributes) -> (Map NontermIdent Attributes) -> Bool -> Attributes -> (Map Identifier Type) -> Options -> Attributes -> ( PP_Doc,(Set String),Patterns,([(PP_Doc,PP_Doc)]),([PP_Doc]))) data Inh_Patterns = Inh_Patterns {allInhmap_Inh_Patterns :: (Map NontermIdent Attributes),allSynmap_Inh_Patterns :: (Map NontermIdent Attributes),anyLazyKind_Inh_Patterns :: Bool,inhmap_Inh_Patterns :: Attributes,localAttrTypes_Inh_Patterns :: (Map Identifier Type),options_Inh_Patterns :: Options,synmap_Inh_Patterns :: Attributes} data Syn_Patterns = Syn_Patterns {attrTypes_Syn_Patterns :: PP_Doc,attrs_Syn_Patterns :: (Set String),copy_Syn_Patterns :: Patterns,extraDefs_Syn_Patterns :: ([(PP_Doc,PP_Doc)]),sem_lhs_Syn_Patterns :: ([PP_Doc])} wrap_Patterns :: T_Patterns -> Inh_Patterns -> Syn_Patterns wrap_Patterns (T_Patterns sem) (Inh_Patterns _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap) = (let ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOextraDefs,_lhsOsem_lhs) = sem _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap in (Syn_Patterns _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOextraDefs _lhsOsem_lhs)) sem_Patterns_Cons :: T_Pattern -> T_Patterns -> T_Patterns sem_Patterns_Cons (T_Pattern hd_) (T_Patterns tl_) = (T_Patterns (\ _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap -> (let _lhsOattrTypes :: PP_Doc _lhsOattrs :: (Set String) _lhsOextraDefs :: ([(PP_Doc,PP_Doc)]) _lhsOsem_lhs :: ([PP_Doc]) _lhsOcopy :: Patterns _hdOallInhmap :: (Map NontermIdent Attributes) _hdOallSynmap :: (Map NontermIdent Attributes) _hdOanyLazyKind :: Bool _hdOinhmap :: Attributes _hdOlocalAttrTypes :: (Map Identifier Type) _hdOoptions :: Options _hdOsynmap :: Attributes _tlOallInhmap :: (Map NontermIdent Attributes) _tlOallSynmap :: (Map NontermIdent Attributes) _tlOanyLazyKind :: Bool _tlOinhmap :: Attributes _tlOlocalAttrTypes :: (Map Identifier Type) _tlOoptions :: Options _tlOsynmap :: Attributes _hdIattrTypes :: PP_Doc _hdIattrs :: (Set String) _hdIcopy :: Pattern _hdIextraDefs :: ([(PP_Doc,PP_Doc)]) _hdIisUnderscore :: Bool _hdIsem_lhs :: ( PP_Doc ) _tlIattrTypes :: PP_Doc _tlIattrs :: (Set String) _tlIcopy :: Patterns _tlIextraDefs :: ([(PP_Doc,PP_Doc)]) _tlIsem_lhs :: ([PP_Doc]) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1083, column 40) _lhsOattrTypes = ({-# LINE 1083 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIattrTypes >-< _tlIattrTypes {-# LINE 5644 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1077, column 36) _lhsOattrs = ({-# LINE 1077 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIattrs `Set.union` _tlIattrs {-# LINE 5650 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1050, column 39) _lhsOextraDefs = ({-# LINE 1050 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIextraDefs ++ _tlIextraDefs {-# LINE 5656 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1049, column 29) _lhsOsem_lhs = ({-# LINE 1049 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsem_lhs : _tlIsem_lhs {-# LINE 5662 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _copy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} (:) _hdIcopy _tlIcopy {-# LINE 5668 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} _copy {-# LINE 5674 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 5680 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 5686 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOanyLazyKind = ({-# LINE 1241 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIanyLazyKind {-# LINE 5692 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 5698 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 5704 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 5710 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 5716 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 5722 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 5728 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOanyLazyKind = ({-# LINE 1241 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIanyLazyKind {-# LINE 5734 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 5740 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOlocalAttrTypes = ({-# LINE 1427 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIlocalAttrTypes {-# LINE 5746 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 5752 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 5758 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _hdIattrTypes,_hdIattrs,_hdIcopy,_hdIextraDefs,_hdIisUnderscore,_hdIsem_lhs) = hd_ _hdOallInhmap _hdOallSynmap _hdOanyLazyKind _hdOinhmap _hdOlocalAttrTypes _hdOoptions _hdOsynmap ( _tlIattrTypes,_tlIattrs,_tlIcopy,_tlIextraDefs,_tlIsem_lhs) = tl_ _tlOallInhmap _tlOallSynmap _tlOanyLazyKind _tlOinhmap _tlOlocalAttrTypes _tlOoptions _tlOsynmap in ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOextraDefs,_lhsOsem_lhs)))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil = (T_Patterns (\ _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap -> (let _lhsOattrTypes :: PP_Doc _lhsOattrs :: (Set String) _lhsOextraDefs :: ([(PP_Doc,PP_Doc)]) _lhsOsem_lhs :: ([PP_Doc]) _lhsOcopy :: Patterns -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1083, column 40) _lhsOattrTypes = ({-# LINE 1083 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 5783 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1077, column 36) _lhsOattrs = ({-# LINE 1077 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 5789 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1050, column 39) _lhsOextraDefs = ({-# LINE 1050 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 5795 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1049, column 29) _lhsOsem_lhs = ({-# LINE 1049 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 5801 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _copy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} [] {-# LINE 5807 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- self rule _lhsOcopy = ({-# LINE 22 "./src-ag/Patterns.ag" #-} _copy {-# LINE 5813 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOextraDefs,_lhsOsem_lhs)))) -- Visit ------------------------------------------------------- {- visit 0: inherited attributes: allFromToStates : Map VisitIdentifier (Int,Int) allInhmap : Map NontermIdent Attributes allInitStates : Map NontermIdent Int allSynmap : Map NontermIdent Attributes allVisitKinds : Map VisitIdentifier VisitKind allchildvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) allintramap : Map StateIdentifier (Map String (Maybe NonLocalAttr)) avisitdefs : Map VisitIdentifier (Set Identifier) avisituses : Map VisitIdentifier (Set Identifier) childTypes : Map Identifier Type childintros : Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))) con : ConstructorIdent inhmap : Attributes mrules : Map Identifier (VisitKind -> Either Error PP_Doc) nextVisits : Map StateIdentifier StateCtx nt : NontermIdent options : Options params : [Identifier] prevVisits : Map StateIdentifier StateCtx ruledefs : Map Identifier (Set String) ruleuses : Map Identifier (Map String (Maybe NonLocalAttr)) synmap : Attributes terminaldefs : Set String synthesized attributes: allvisits : VisitStateState childvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) errors : Seq Error fromToStates : Map VisitIdentifier (Int,Int) intramap : Map StateIdentifier (Map String (Maybe NonLocalAttr)) lazyIntras : Set String ruleKinds : Map Identifier (Set VisitKind) ruleUsage : Map Identifier Int sem_visit : (StateIdentifier,PP_Doc) t_visits : PP_Doc visitKinds : Map VisitIdentifier VisitKind visitdefs : Map VisitIdentifier (Set Identifier) visituses : Map VisitIdentifier (Set Identifier) alternatives: alternative Visit: child ident : {VisitIdentifier} child from : {StateIdentifier} child to : {StateIdentifier} child inh : {Set Identifier} child syn : {Set Identifier} child steps : VisitSteps child kind : {VisitKind} visit 0: local nameTIn_visit : _ local nameTOut_visit : _ local nameNextState : _ local nameCaller_visit : _ local nextVisitInfo : _ local t_params : _ local t_c_params : _ local contpart : _ local inhpart : _ local synpart : _ local ppTypeList : _ local o_sigs : _ local nextArgsMp : _ local nextArgs : _ local nextStExp : _ local resultval : _ local nextStBuild : _ local nextStRefExp : _ local prevVisitInfo : _ local invokecode : _ local thisintra : _ local nextintra : _ local uses : _ local inhVarNms : _ local defs : _ local defsAsMap : _ local lazyIntrasInh : _ -} -- cata sem_Visit :: Visit -> T_Visit sem_Visit (Visit _ident _from _to _inh _syn _steps _kind) = (sem_Visit_Visit _ident _from _to _inh _syn (sem_VisitSteps _steps) _kind) -- semantic domain newtype T_Visit = T_Visit ((Map VisitIdentifier (Int,Int)) -> (Map NontermIdent Attributes) -> (Map NontermIdent Int) -> (Map NontermIdent Attributes) -> (Map VisitIdentifier VisitKind) -> (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) -> (Map StateIdentifier (Map String (Maybe NonLocalAttr))) -> (Map VisitIdentifier (Set Identifier)) -> (Map VisitIdentifier (Set Identifier)) -> (Map Identifier Type) -> (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) -> ConstructorIdent -> Attributes -> (Map Identifier (VisitKind -> Either Error PP_Doc)) -> (Map StateIdentifier StateCtx) -> NontermIdent -> Options -> ([Identifier]) -> (Map StateIdentifier StateCtx) -> (Map Identifier (Set String)) -> (Map Identifier (Map String (Maybe NonLocalAttr))) -> Attributes -> (Set String) -> ( ( VisitStateState ),(Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),(Seq Error),(Map VisitIdentifier (Int,Int)),(Map StateIdentifier (Map String (Maybe NonLocalAttr))),(Set String),(Map Identifier (Set VisitKind)),(Map Identifier Int),( (StateIdentifier,PP_Doc) ),PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier)))) data Inh_Visit = Inh_Visit {allFromToStates_Inh_Visit :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_Visit :: (Map NontermIdent Attributes),allInitStates_Inh_Visit :: (Map NontermIdent Int),allSynmap_Inh_Visit :: (Map NontermIdent Attributes),allVisitKinds_Inh_Visit :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_Visit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),allintramap_Inh_Visit :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),avisitdefs_Inh_Visit :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_Visit :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_Visit :: (Map Identifier Type),childintros_Inh_Visit :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),con_Inh_Visit :: ConstructorIdent,inhmap_Inh_Visit :: Attributes,mrules_Inh_Visit :: (Map Identifier (VisitKind -> Either Error PP_Doc)),nextVisits_Inh_Visit :: (Map StateIdentifier StateCtx),nt_Inh_Visit :: NontermIdent,options_Inh_Visit :: Options,params_Inh_Visit :: ([Identifier]),prevVisits_Inh_Visit :: (Map StateIdentifier StateCtx),ruledefs_Inh_Visit :: (Map Identifier (Set String)),ruleuses_Inh_Visit :: (Map Identifier (Map String (Maybe NonLocalAttr))),synmap_Inh_Visit :: Attributes,terminaldefs_Inh_Visit :: (Set String)} data Syn_Visit = Syn_Visit {allvisits_Syn_Visit :: ( VisitStateState ),childvisit_Syn_Visit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),errors_Syn_Visit :: (Seq Error),fromToStates_Syn_Visit :: (Map VisitIdentifier (Int,Int)),intramap_Syn_Visit :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),lazyIntras_Syn_Visit :: (Set String),ruleKinds_Syn_Visit :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_Visit :: (Map Identifier Int),sem_visit_Syn_Visit :: ( (StateIdentifier,PP_Doc) ),t_visits_Syn_Visit :: PP_Doc,visitKinds_Syn_Visit :: (Map VisitIdentifier VisitKind),visitdefs_Syn_Visit :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_Visit :: (Map VisitIdentifier (Set Identifier))} wrap_Visit :: T_Visit -> Inh_Visit -> Syn_Visit wrap_Visit (T_Visit sem) (Inh_Visit _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs) = (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs in (Syn_Visit _lhsOallvisits _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOintramap _lhsOlazyIntras _lhsOruleKinds _lhsOruleUsage _lhsOsem_visit _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)) sem_Visit_Visit :: VisitIdentifier -> StateIdentifier -> StateIdentifier -> (Set Identifier) -> (Set Identifier) -> T_VisitSteps -> VisitKind -> T_Visit sem_Visit_Visit ident_ from_ to_ inh_ syn_ (T_VisitSteps steps_) kind_ = (T_Visit (\ _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs -> (let _lhsOallvisits :: ( VisitStateState ) _lhsOt_visits :: PP_Doc _lhsOsem_visit :: ( (StateIdentifier,PP_Doc) ) _stepsOfollow :: PP_Doc _stepsOkind :: VisitKind _stepsOindex :: Int _stepsOprevMaxSimRefs :: Int _stepsOuseParallel :: Bool _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _lhsOintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))) _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier)) _lhsOvisituses :: (Map VisitIdentifier (Set Identifier)) _lhsOlazyIntras :: (Set String) _lhsOfromToStates :: (Map VisitIdentifier (Int,Int)) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOerrors :: (Seq Error) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOruleUsage :: (Map Identifier Int) _stepsOallFromToStates :: (Map VisitIdentifier (Int,Int)) _stepsOallInitStates :: (Map NontermIdent Int) _stepsOallVisitKinds :: (Map VisitIdentifier VisitKind) _stepsOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _stepsOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _stepsOavisituses :: (Map VisitIdentifier (Set Identifier)) _stepsOchildTypes :: (Map Identifier Type) _stepsOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _stepsOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _stepsOoptions :: Options _stepsOruledefs :: (Map Identifier (Set String)) _stepsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _stepsIdefs :: (Set String) _stepsIerrors :: (Seq Error) _stepsIindex :: Int _stepsIisLast :: Bool _stepsIlazyIntras :: (Set String) _stepsIprevMaxSimRefs :: Int _stepsIruleKinds :: (Map Identifier (Set VisitKind)) _stepsIruleUsage :: (Map Identifier Int) _stepsIsem_steps :: PP_Doc _stepsIsize :: Int _stepsIuses :: (Map String (Maybe NonLocalAttr)) _stepsIvisitKinds :: (Map VisitIdentifier VisitKind) -- "./src-ag/ExecutionPlan2Caml.ag"(line 432, column 11) _lhsOallvisits = ({-# LINE 432 "./src-ag/ExecutionPlan2Caml.ag" #-} (ident_, from_, to_) {-# LINE 6011 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 535, column 3) _nameTIn_visit = ({-# LINE 535 "./src-ag/ExecutionPlan2Caml.ag" #-} conNmTVisitIn _lhsInt ident_ {-# LINE 6017 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 536, column 3) _nameTOut_visit = ({-# LINE 536 "./src-ag/ExecutionPlan2Caml.ag" #-} conNmTVisitOut _lhsInt ident_ {-# LINE 6023 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 537, column 3) _nameNextState = ({-# LINE 537 "./src-ag/ExecutionPlan2Caml.ag" #-} type_nt_sem _lhsInt to_ {-# LINE 6029 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 538, column 3) _nameCaller_visit = ({-# LINE 538 "./src-ag/ExecutionPlan2Caml.ag" #-} type_caller_visit _lhsInt ident_ {-# LINE 6035 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 540, column 3) _nextVisitInfo = ({-# LINE 540 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault ManyVis to_ _lhsInextVisits {-# LINE 6041 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 542, column 3) _t_params = ({-# LINE 542 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTypeParams _lhsIparams {-# LINE 6047 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 543, column 3) _t_c_params = ({-# LINE 543 "./src-ag/ExecutionPlan2Caml.ag" #-} ppTypeParams (cont_tvar : map pp _lhsIparams) {-# LINE 6053 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 547, column 3) _lhsOt_visits = ({-# LINE 547 "./src-ag/ExecutionPlan2Caml.ag" #-} "and" >#< _t_c_params >#< _nameCaller_visit >#< "=" >#< ppRecordTp [ nm_inh _lhsInt ident_ >#< ":" >#< _t_params >#< conNmTVisitIn _lhsInt ident_ , nm_cont _lhsInt ident_ >#< ":" >#< _t_params >#< conNmTVisitOut _lhsInt ident_ >#< "->" >#< cont_tvar ] >-< "and" >#< _t_params >#< _nameTIn_visit >#< "=" >#< ppRecordTp _inhpart >-< "and" >#< _t_params >#< _nameTOut_visit >#< "=" >#< ppRecordTp (_synpart ++ _contpart ) {-# LINE 6064 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 554, column 3) _contpart = ({-# LINE 554 "./src-ag/ExecutionPlan2Caml.ag" #-} case _nextVisitInfo of NoneVis -> [] _ -> [ nm_outarg_cont _lhsInt ident_ >#< ":" >#< _t_params >#< _nameNextState ] {-# LINE 6072 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 558, column 3) _inhpart = ({-# LINE 558 "./src-ag/ExecutionPlan2Caml.ag" #-} _ppTypeList nm_inarg inh_ _lhsIinhmap {-# LINE 6078 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 559, column 3) _synpart = ({-# LINE 559 "./src-ag/ExecutionPlan2Caml.ag" #-} _ppTypeList nm_outarg syn_ _lhsIsynmap {-# LINE 6084 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 560, column 3) _ppTypeList = ({-# LINE 560 "./src-ag/ExecutionPlan2Caml.ag" #-} \f s m -> map (\i -> case Map.lookup i m of Just tp -> f i _lhsInt ident_ >#< ":" >#< ppTp tp ) $ Set.toList s {-# LINE 6091 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 794, column 3) _o_sigs = ({-# LINE 794 "./src-ag/ExecutionPlan2Caml.ag" #-} typeSigs _lhsIoptions {-# LINE 6097 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 795, column 3) _lhsOsem_visit = ({-# LINE 795 "./src-ag/ExecutionPlan2Caml.ag" #-} ( from_ , let resTp = _t_params >#< _nameTOut_visit argTp = _t_params >#< _nameTIn_visit argMatch = ppRecordVal [ nm_inarg i _lhsInt ident_ >#< "=" >#< lhsname True i | i <- Set.toList inh_ ] in ppFunDecl _o_sigs (nm_visit ident_) [(argMatch, argTp)] resTp _stepsIsem_steps ) {-# LINE 6108 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 802, column 3) _stepsOfollow = ({-# LINE 802 "./src-ag/ExecutionPlan2Caml.ag" #-} _nextStBuild >-< _resultval {-# LINE 6114 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 804, column 3) _nextArgsMp = ({-# LINE 804 "./src-ag/ExecutionPlan2Caml.ag" #-} maybe Map.empty id $ Map.lookup to_ _lhsIallintramap {-# LINE 6120 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 805, column 3) _nextArgs = ({-# LINE 805 "./src-ag/ExecutionPlan2Caml.ag" #-} ppSpaced $ Map.keys $ _nextArgsMp {-# LINE 6126 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 806, column 3) _nextStExp = ({-# LINE 806 "./src-ag/ExecutionPlan2Caml.ag" #-} nm_st to_ >#< _nextArgs >#< dummyArg _lhsIoptions (Map.null _nextArgsMp ) {-# LINE 6132 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 808, column 3) _resultval = ({-# LINE 808 "./src-ag/ExecutionPlan2Caml.ag" #-} ppRecordVal ( [ nm_outarg i _lhsInt ident_ >#< "=" >#< lhsname False i | i <- Set.toList syn_ ] ++ [ _nextStRefExp ]) {-# LINE 6140 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 812, column 3) (_nextStBuild,_nextStRefExp) = ({-# LINE 812 "./src-ag/ExecutionPlan2Caml.ag" #-} case _nextVisitInfo of NoneVis -> (empty, empty) _ -> ( "let" >#< nextStName >#< "=" >#< _nextStExp >#< "in" , nm_outarg_cont _lhsInt ident_ >#< "=" >#< nextStName) {-# LINE 6149 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 828, column 20) _stepsOkind = ({-# LINE 828 "./src-ag/ExecutionPlan2Caml.ag" #-} kind_ {-# LINE 6155 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 880, column 22) _stepsOindex = ({-# LINE 880 "./src-ag/ExecutionPlan2Caml.ag" #-} 0 {-# LINE 6161 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 887, column 22) _stepsOprevMaxSimRefs = ({-# LINE 887 "./src-ag/ExecutionPlan2Caml.ag" #-} 0 {-# LINE 6167 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 904, column 22) _stepsOuseParallel = ({-# LINE 904 "./src-ag/ExecutionPlan2Caml.ag" #-} False {-# LINE 6173 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1160, column 3) _prevVisitInfo = ({-# LINE 1160 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault ManyVis from_ _lhsInextVisits {-# LINE 6179 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1161, column 3) _lhsOchildvisit = ({-# LINE 1161 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton ident_ _invokecode {-# LINE 6185 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1162, column 3) _invokecode = ({-# LINE 1162 "./src-ag/ExecutionPlan2Caml.ag" #-} \chld childTp kind follow -> let code = cont >-< inps >-< call childNmTo = text $ stname chld to_ childNmFrom = text $ stname chld from_ childTpArgs = case childTp of NT _ args _ -> args _ -> error "generate visit call: type of the child is not a nonterminal!" cont = "let" >#< contNm >#< ppArg _o_sigs (ppRecordVal cont_in) cont_in_tp >#< "=" >-< indent 2 follow >#< "in" cont_in = [ nm_outarg i _lhsInt ident_ >#< "=" >#< attrname True chld i | i <- Set.toList syn_ ] ++ case _nextVisitInfo of NoneVis -> [] _ -> [ nm_outarg_cont _lhsInt ident_ >#< "=" >#< childNmTo ] cont_in_tp = ppTypeParams childTpArgs >#< _nameTOut_visit inps = "let" >#< inpsNm >#< "=" >#< ppRecordVal [ nm_inh _lhsInt ident_ >#< "=" >#< ppRecordVal inps_in , nm_cont _lhsInt ident_ >#< "=" >#< contNm ] >#< "in" inps_in = [ nm_inarg i _lhsInt ident_ >#< "=" >#< attrname False chld i | i <- Set.toList inh_ ] call = childNmFrom >|< "." >|< nm_invoke _lhsInt from_ >#< arg arg = case _prevVisitInfo of NoneVis -> error "error: invocation of a visit from a state that has no next visits" OneVis _ -> pp inpsNm ManyVis -> pp_parens (con_visit _lhsInt ident_ >#< inpsNm) in if kind `compatibleKind` kind_ then Right code else Left $ IncompatibleVisitKind chld ident_ kind kind_ {-# LINE 6218 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1268, column 11) _thisintra = ({-# LINE 1268 "./src-ag/ExecutionPlan2Caml.ag" #-} (_uses `Map.union` _nextintra ) `Map.difference` _defsAsMap {-# LINE 6224 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1269, column 11) _lhsOintramap = ({-# LINE 1269 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton from_ _thisintra {-# LINE 6230 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1270, column 11) _nextintra = ({-# LINE 1270 "./src-ag/ExecutionPlan2Caml.ag" #-} maybe Map.empty id $ Map.lookup to_ _lhsIallintramap {-# LINE 6236 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1271, column 11) _uses = ({-# LINE 1271 "./src-ag/ExecutionPlan2Caml.ag" #-} let mp1 = _stepsIuses mp2 = Map.fromList [ (lhsname False i, Just (AttrSyn _LHS i)) | i <- Set.elems syn_ ] in mp1 `Map.union` mp2 {-# LINE 6244 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1274, column 11) _inhVarNms = ({-# LINE 1274 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.map (lhsname True) inh_ {-# LINE 6250 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1275, column 11) _defs = ({-# LINE 1275 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIdefs `Set.union` _inhVarNms `Set.union` _lhsIterminaldefs {-# LINE 6256 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1276, column 11) _defsAsMap = ({-# LINE 1276 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.fromList [ (a, Nothing) | a <- Set.elems _defs ] {-# LINE 6262 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1300, column 11) _lhsOvisitdefs = ({-# LINE 1300 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton ident_ syn_ {-# LINE 6268 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1301, column 11) _lhsOvisituses = ({-# LINE 1301 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton ident_ inh_ {-# LINE 6274 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1333, column 3) _lazyIntrasInh = ({-# LINE 1333 "./src-ag/ExecutionPlan2Caml.ag" #-} case kind_ of VisitPure False -> _inhVarNms `Set.union` _stepsIdefs _ -> Set.empty {-# LINE 6282 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1336, column 3) _lhsOlazyIntras = ({-# LINE 1336 "./src-ag/ExecutionPlan2Caml.ag" #-} _lazyIntrasInh `Set.union` _stepsIlazyIntras {-# LINE 6288 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1399, column 3) _lhsOfromToStates = ({-# LINE 1399 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton ident_ (from_, to_) {-# LINE 6294 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1443, column 3) _lhsOvisitKinds = ({-# LINE 1443 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton ident_ kind_ {-# LINE 6300 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIerrors {-# LINE 6306 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1229, column 56) _lhsOruleKinds = ({-# LINE 1229 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIruleKinds {-# LINE 6312 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1217, column 56) _lhsOruleUsage = ({-# LINE 1217 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIruleUsage {-# LINE 6318 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 6324 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 6330 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 6336 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallchildvisit = ({-# LINE 1149 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 6342 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 6348 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 6354 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildTypes {-# LINE 6360 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOchildintros = ({-# LINE 912 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildintros {-# LINE 6366 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOmrules = ({-# LINE 835 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImrules {-# LINE 6372 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 6378 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOruledefs = ({-# LINE 1281 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruledefs {-# LINE 6384 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOruleuses = ({-# LINE 1282 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruleuses {-# LINE 6390 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _stepsIdefs,_stepsIerrors,_stepsIindex,_stepsIisLast,_stepsIlazyIntras,_stepsIprevMaxSimRefs,_stepsIruleKinds,_stepsIruleUsage,_stepsIsem_steps,_stepsIsize,_stepsIuses,_stepsIvisitKinds) = steps_ _stepsOallFromToStates _stepsOallInitStates _stepsOallVisitKinds _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildTypes _stepsOchildintros _stepsOfollow _stepsOindex _stepsOkind _stepsOmrules _stepsOoptions _stepsOprevMaxSimRefs _stepsOruledefs _stepsOruleuses _stepsOuseParallel in ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses)))) -- VisitStep --------------------------------------------------- {- visit 0: inherited attributes: allFromToStates : Map VisitIdentifier (Int,Int) allInitStates : Map NontermIdent Int allVisitKinds : Map VisitIdentifier VisitKind allchildvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) avisitdefs : Map VisitIdentifier (Set Identifier) avisituses : Map VisitIdentifier (Set Identifier) childTypes : Map Identifier Type childintros : Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))) follow : PP_Doc kind : VisitKind mrules : Map Identifier (VisitKind -> Either Error PP_Doc) options : Options ruledefs : Map Identifier (Set String) ruleuses : Map Identifier (Map String (Maybe NonLocalAttr)) useParallel : Bool chained attributes: index : Int isLast : Bool prevMaxSimRefs : Int synthesized attributes: defs : Set String errors : Seq Error lazyIntras : Set String ruleKinds : Map Identifier (Set VisitKind) ruleUsage : Map Identifier Int sem_steps : PP_Doc uses : Map String (Maybe NonLocalAttr) visitKinds : Map VisitIdentifier VisitKind alternatives: alternative Sem: child name : {Identifier} visit 0: local ruleItf : _ local sem_steps : _ alternative ChildVisit: child child : {Identifier} child nonterm : {NontermIdent} child visit : {VisitIdentifier} visit 0: local visitItf : _ local childType : _ local from : _ local to : _ alternative PureGroup: child steps : VisitSteps child ordered : {Bool} alternative Sim: child steps : VisitSteps visit 0: local useParallel : _ alternative ChildIntro: child child : {Identifier} visit 0: local attachItf : _ local sem_steps : _ -} -- cata sem_VisitStep :: VisitStep -> T_VisitStep sem_VisitStep (Sem _name) = (sem_VisitStep_Sem _name) sem_VisitStep (ChildVisit _child _nonterm _visit) = (sem_VisitStep_ChildVisit _child _nonterm _visit) sem_VisitStep (PureGroup _steps _ordered) = (sem_VisitStep_PureGroup (sem_VisitSteps _steps) _ordered) sem_VisitStep (Sim _steps) = (sem_VisitStep_Sim (sem_VisitSteps _steps)) sem_VisitStep (ChildIntro _child) = (sem_VisitStep_ChildIntro _child) -- semantic domain newtype T_VisitStep = T_VisitStep ((Map VisitIdentifier (Int,Int)) -> (Map NontermIdent Int) -> (Map VisitIdentifier VisitKind) -> (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) -> (Map VisitIdentifier (Set Identifier)) -> (Map VisitIdentifier (Set Identifier)) -> (Map Identifier Type) -> (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) -> PP_Doc -> Int -> Bool -> VisitKind -> (Map Identifier (VisitKind -> Either Error PP_Doc)) -> Options -> Int -> (Map Identifier (Set String)) -> (Map Identifier (Map String (Maybe NonLocalAttr))) -> Bool -> ( (Set String),(Seq Error),Int,Bool,(Set String),Int,(Map Identifier (Set VisitKind)),(Map Identifier Int),PP_Doc,(Map String (Maybe NonLocalAttr)),(Map VisitIdentifier VisitKind))) data Inh_VisitStep = Inh_VisitStep {allFromToStates_Inh_VisitStep :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_VisitStep :: (Map NontermIdent Int),allVisitKinds_Inh_VisitStep :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_VisitStep :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),avisitdefs_Inh_VisitStep :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_VisitStep :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_VisitStep :: (Map Identifier Type),childintros_Inh_VisitStep :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),follow_Inh_VisitStep :: PP_Doc,index_Inh_VisitStep :: Int,isLast_Inh_VisitStep :: Bool,kind_Inh_VisitStep :: VisitKind,mrules_Inh_VisitStep :: (Map Identifier (VisitKind -> Either Error PP_Doc)),options_Inh_VisitStep :: Options,prevMaxSimRefs_Inh_VisitStep :: Int,ruledefs_Inh_VisitStep :: (Map Identifier (Set String)),ruleuses_Inh_VisitStep :: (Map Identifier (Map String (Maybe NonLocalAttr))),useParallel_Inh_VisitStep :: Bool} data Syn_VisitStep = Syn_VisitStep {defs_Syn_VisitStep :: (Set String),errors_Syn_VisitStep :: (Seq Error),index_Syn_VisitStep :: Int,isLast_Syn_VisitStep :: Bool,lazyIntras_Syn_VisitStep :: (Set String),prevMaxSimRefs_Syn_VisitStep :: Int,ruleKinds_Syn_VisitStep :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_VisitStep :: (Map Identifier Int),sem_steps_Syn_VisitStep :: PP_Doc,uses_Syn_VisitStep :: (Map String (Maybe NonLocalAttr)),visitKinds_Syn_VisitStep :: (Map VisitIdentifier VisitKind)} wrap_VisitStep :: T_VisitStep -> Inh_VisitStep -> Syn_VisitStep wrap_VisitStep (T_VisitStep sem) (Inh_VisitStep _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel) = (let ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOuses,_lhsOvisitKinds) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel in (Syn_VisitStep _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOuses _lhsOvisitKinds)) sem_VisitStep_Sem :: Identifier -> T_VisitStep sem_VisitStep_Sem name_ = (T_VisitStep (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel -> (let _lhsOerrors :: (Seq Error) _lhsOsem_steps :: PP_Doc _lhsOruleUsage :: (Map Identifier Int) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOdefs :: (Set String) _lhsOuses :: (Map String (Maybe NonLocalAttr)) _lhsOlazyIntras :: (Set String) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOindex :: Int _lhsOisLast :: Bool _lhsOprevMaxSimRefs :: Int -- "./src-ag/ExecutionPlan2Caml.ag"(line 845, column 16) _ruleItf = ({-# LINE 845 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault (error $ "Rule " ++ show name_ ++ " not found") name_ _lhsImrules {-# LINE 6532 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 846, column 16) (_lhsOerrors,_sem_steps) = ({-# LINE 846 "./src-ag/ExecutionPlan2Caml.ag" #-} case _ruleItf _lhsIkind of Left e -> (Seq.singleton e, empty) Right stmt -> (Seq.empty, stmt) {-# LINE 6540 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 849, column 16) _lhsOsem_steps = ({-# LINE 849 "./src-ag/ExecutionPlan2Caml.ag" #-} _sem_steps >-< _lhsIfollow {-# LINE 6546 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1221, column 32) _lhsOruleUsage = ({-# LINE 1221 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton name_ 1 {-# LINE 6552 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1231, column 3) _lhsOruleKinds = ({-# LINE 1231 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.singleton name_ (Set.singleton _lhsIkind) {-# LINE 6558 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1316, column 16) _lhsOdefs = ({-# LINE 1316 "./src-ag/ExecutionPlan2Caml.ag" #-} maybe (error "Rule not found") id $ Map.lookup name_ _lhsIruledefs {-# LINE 6564 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1317, column 16) _lhsOuses = ({-# LINE 1317 "./src-ag/ExecutionPlan2Caml.ag" #-} maybe (error "Rule not found") id $ Map.lookup name_ _lhsIruleuses {-# LINE 6570 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1329, column 57) _lhsOlazyIntras = ({-# LINE 1329 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 6576 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 6582 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOindex = ({-# LINE 875 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIindex {-# LINE 6588 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOisLast = ({-# LINE 894 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIisLast {-# LINE 6594 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevMaxSimRefs {-# LINE 6600 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOuses,_lhsOvisitKinds)))) sem_VisitStep_ChildVisit :: Identifier -> NontermIdent -> VisitIdentifier -> T_VisitStep sem_VisitStep_ChildVisit child_ nonterm_ visit_ = (T_VisitStep (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel -> (let _lhsOerrors :: (Seq Error) _lhsOsem_steps :: PP_Doc _lhsOdefs :: (Set String) _lhsOuses :: (Map String (Maybe NonLocalAttr)) _lhsOlazyIntras :: (Set String) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOruleUsage :: (Map Identifier Int) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOindex :: Int _lhsOisLast :: Bool _lhsOprevMaxSimRefs :: Int -- "./src-ag/ExecutionPlan2Caml.ag"(line 856, column 16) _visitItf = ({-# LINE 856 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault (error $ "Visit " ++ show visit_ ++ " not found") visit_ _lhsIallchildvisit {-# LINE 6641 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 857, column 16) _childType = ({-# LINE 857 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault (error ("type of child " ++ show child_ ++ " is not in the childTypes map! " ++ show _lhsIchildTypes)) child_ _lhsIchildTypes {-# LINE 6647 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 858, column 16) (_lhsOerrors,_lhsOsem_steps) = ({-# LINE 858 "./src-ag/ExecutionPlan2Caml.ag" #-} case _visitItf child_ _childType _lhsIkind _lhsIfollow of Left e -> (Seq.singleton e, empty) Right steps -> (Seq.empty, steps) {-# LINE 6655 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1318, column 16) _lhsOdefs = ({-# LINE 1318 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.insert (stname child_ _to) $ maybe (error "Visit not found") (Set.map $ attrname True child_) $ Map.lookup visit_ _lhsIavisitdefs {-# LINE 6661 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1319, column 16) _lhsOuses = ({-# LINE 1319 "./src-ag/ExecutionPlan2Caml.ag" #-} let convert attrs = Map.fromList [ (attrname False child_ attr, Just $ mkNonLocalAttr True child_ attr) | attr <- Set.elems attrs ] in Map.insert (stname child_ _from) Nothing $ convert $ maybe (error "Visit not found") id $ Map.lookup visit_ _lhsIavisituses {-# LINE 6669 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1405, column 3) (_from,_to) = ({-# LINE 1405 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault (error "visit not in allFromToStates") visit_ _lhsIallFromToStates {-# LINE 6675 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1329, column 57) _lhsOlazyIntras = ({-# LINE 1329 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 6681 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1229, column 56) _lhsOruleKinds = ({-# LINE 1229 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 6687 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1217, column 56) _lhsOruleUsage = ({-# LINE 1217 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 6693 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 6699 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOindex = ({-# LINE 875 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIindex {-# LINE 6705 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOisLast = ({-# LINE 894 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIisLast {-# LINE 6711 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevMaxSimRefs {-# LINE 6717 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOuses,_lhsOvisitKinds)))) sem_VisitStep_PureGroup :: T_VisitSteps -> Bool -> T_VisitStep sem_VisitStep_PureGroup (T_VisitSteps steps_) ordered_ = (T_VisitStep (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel -> (let _stepsOkind :: VisitKind _lhsOlazyIntras :: (Set String) _lhsOdefs :: (Set String) _lhsOerrors :: (Seq Error) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOruleUsage :: (Map Identifier Int) _lhsOsem_steps :: PP_Doc _lhsOuses :: (Map String (Maybe NonLocalAttr)) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOindex :: Int _lhsOisLast :: Bool _lhsOprevMaxSimRefs :: Int _stepsOallFromToStates :: (Map VisitIdentifier (Int,Int)) _stepsOallInitStates :: (Map NontermIdent Int) _stepsOallVisitKinds :: (Map VisitIdentifier VisitKind) _stepsOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _stepsOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _stepsOavisituses :: (Map VisitIdentifier (Set Identifier)) _stepsOchildTypes :: (Map Identifier Type) _stepsOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _stepsOfollow :: PP_Doc _stepsOindex :: Int _stepsOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _stepsOoptions :: Options _stepsOprevMaxSimRefs :: Int _stepsOruledefs :: (Map Identifier (Set String)) _stepsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _stepsOuseParallel :: Bool _stepsIdefs :: (Set String) _stepsIerrors :: (Seq Error) _stepsIindex :: Int _stepsIisLast :: Bool _stepsIlazyIntras :: (Set String) _stepsIprevMaxSimRefs :: Int _stepsIruleKinds :: (Map Identifier (Set VisitKind)) _stepsIruleUsage :: (Map Identifier Int) _stepsIsem_steps :: PP_Doc _stepsIsize :: Int _stepsIuses :: (Map String (Maybe NonLocalAttr)) _stepsIvisitKinds :: (Map VisitIdentifier VisitKind) -- "./src-ag/ExecutionPlan2Caml.ag"(line 832, column 3) _stepsOkind = ({-# LINE 832 "./src-ag/ExecutionPlan2Caml.ag" #-} VisitPure ordered_ {-# LINE 6786 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 1339, column 3) _lhsOlazyIntras = ({-# LINE 1339 "./src-ag/ExecutionPlan2Caml.ag" #-} if ordered_ then _stepsIlazyIntras else _stepsIdefs {-# LINE 6794 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1313, column 38) _lhsOdefs = ({-# LINE 1313 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIdefs {-# LINE 6800 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIerrors {-# LINE 6806 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1229, column 56) _lhsOruleKinds = ({-# LINE 1229 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIruleKinds {-# LINE 6812 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1217, column 56) _lhsOruleUsage = ({-# LINE 1217 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIruleUsage {-# LINE 6818 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 836, column 59) _lhsOsem_steps = ({-# LINE 836 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIsem_steps {-# LINE 6824 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1314, column 38) _lhsOuses = ({-# LINE 1314 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIuses {-# LINE 6830 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIvisitKinds {-# LINE 6836 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (up) _lhsOindex = ({-# LINE 875 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIindex {-# LINE 6842 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (up) _lhsOisLast = ({-# LINE 894 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIisLast {-# LINE 6848 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (up) _lhsOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIprevMaxSimRefs {-# LINE 6854 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 6860 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 6866 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 6872 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallchildvisit = ({-# LINE 1149 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 6878 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 6884 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 6890 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildTypes {-# LINE 6896 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOchildintros = ({-# LINE 912 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildintros {-# LINE 6902 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOfollow = ({-# LINE 836 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIfollow {-# LINE 6908 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOindex = ({-# LINE 875 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIindex {-# LINE 6914 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOmrules = ({-# LINE 835 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImrules {-# LINE 6920 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 6926 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevMaxSimRefs {-# LINE 6932 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOruledefs = ({-# LINE 1281 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruledefs {-# LINE 6938 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOruleuses = ({-# LINE 1282 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruleuses {-# LINE 6944 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOuseParallel = ({-# LINE 903 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIuseParallel {-# LINE 6950 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _stepsIdefs,_stepsIerrors,_stepsIindex,_stepsIisLast,_stepsIlazyIntras,_stepsIprevMaxSimRefs,_stepsIruleKinds,_stepsIruleUsage,_stepsIsem_steps,_stepsIsize,_stepsIuses,_stepsIvisitKinds) = steps_ _stepsOallFromToStates _stepsOallInitStates _stepsOallVisitKinds _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildTypes _stepsOchildintros _stepsOfollow _stepsOindex _stepsOkind _stepsOmrules _stepsOoptions _stepsOprevMaxSimRefs _stepsOruledefs _stepsOruleuses _stepsOuseParallel in ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOuses,_lhsOvisitKinds)))) sem_VisitStep_Sim :: T_VisitSteps -> T_VisitStep sem_VisitStep_Sim (T_VisitSteps steps_) = (T_VisitStep (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel -> (let _stepsOindex :: Int _lhsOindex :: Int _lhsOprevMaxSimRefs :: Int _lhsOdefs :: (Set String) _lhsOerrors :: (Seq Error) _lhsOlazyIntras :: (Set String) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOruleUsage :: (Map Identifier Int) _lhsOsem_steps :: PP_Doc _lhsOuses :: (Map String (Maybe NonLocalAttr)) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOisLast :: Bool _stepsOallFromToStates :: (Map VisitIdentifier (Int,Int)) _stepsOallInitStates :: (Map NontermIdent Int) _stepsOallVisitKinds :: (Map VisitIdentifier VisitKind) _stepsOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _stepsOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _stepsOavisituses :: (Map VisitIdentifier (Set Identifier)) _stepsOchildTypes :: (Map Identifier Type) _stepsOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _stepsOfollow :: PP_Doc _stepsOkind :: VisitKind _stepsOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _stepsOoptions :: Options _stepsOprevMaxSimRefs :: Int _stepsOruledefs :: (Map Identifier (Set String)) _stepsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _stepsOuseParallel :: Bool _stepsIdefs :: (Set String) _stepsIerrors :: (Seq Error) _stepsIindex :: Int _stepsIisLast :: Bool _stepsIlazyIntras :: (Set String) _stepsIprevMaxSimRefs :: Int _stepsIruleKinds :: (Map Identifier (Set VisitKind)) _stepsIruleUsage :: (Map Identifier Int) _stepsIsem_steps :: PP_Doc _stepsIsize :: Int _stepsIuses :: (Map String (Maybe NonLocalAttr)) _stepsIvisitKinds :: (Map VisitIdentifier VisitKind) -- "./src-ag/ExecutionPlan2Caml.ag"(line 881, column 22) _stepsOindex = ({-# LINE 881 "./src-ag/ExecutionPlan2Caml.ag" #-} 0 {-# LINE 7020 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 882, column 22) _lhsOindex = ({-# LINE 882 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIindex {-# LINE 7026 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 889, column 3) _lhsOprevMaxSimRefs = ({-# LINE 889 "./src-ag/ExecutionPlan2Caml.ag" #-} if _useParallel then _lhsIprevMaxSimRefs `max` (_stepsIindex - 1) else _lhsIprevMaxSimRefs {-# LINE 7034 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 905, column 22) _useParallel = ({-# LINE 905 "./src-ag/ExecutionPlan2Caml.ag" #-} parallelInvoke _lhsIoptions && _stepsIsize > 1 {-# LINE 7040 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1313, column 38) _lhsOdefs = ({-# LINE 1313 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIdefs {-# LINE 7046 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIerrors {-# LINE 7052 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1329, column 57) _lhsOlazyIntras = ({-# LINE 1329 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIlazyIntras {-# LINE 7058 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1229, column 56) _lhsOruleKinds = ({-# LINE 1229 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIruleKinds {-# LINE 7064 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1217, column 56) _lhsOruleUsage = ({-# LINE 1217 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIruleUsage {-# LINE 7070 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 836, column 59) _lhsOsem_steps = ({-# LINE 836 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIsem_steps {-# LINE 7076 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1314, column 38) _lhsOuses = ({-# LINE 1314 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIuses {-# LINE 7082 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIvisitKinds {-# LINE 7088 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (up) _lhsOisLast = ({-# LINE 894 "./src-ag/ExecutionPlan2Caml.ag" #-} _stepsIisLast {-# LINE 7094 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 7100 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 7106 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 7112 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOallchildvisit = ({-# LINE 1149 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 7118 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 7124 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 7130 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildTypes {-# LINE 7136 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOchildintros = ({-# LINE 912 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildintros {-# LINE 7142 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOfollow = ({-# LINE 836 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIfollow {-# LINE 7148 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOkind = ({-# LINE 827 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIkind {-# LINE 7154 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOmrules = ({-# LINE 835 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImrules {-# LINE 7160 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 7166 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevMaxSimRefs {-# LINE 7172 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOruledefs = ({-# LINE 1281 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruledefs {-# LINE 7178 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _stepsOruleuses = ({-# LINE 1282 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruleuses {-# LINE 7184 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (from local) _stepsOuseParallel = ({-# LINE 903 "./src-ag/ExecutionPlan2Caml.ag" #-} _useParallel {-# LINE 7190 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _stepsIdefs,_stepsIerrors,_stepsIindex,_stepsIisLast,_stepsIlazyIntras,_stepsIprevMaxSimRefs,_stepsIruleKinds,_stepsIruleUsage,_stepsIsem_steps,_stepsIsize,_stepsIuses,_stepsIvisitKinds) = steps_ _stepsOallFromToStates _stepsOallInitStates _stepsOallVisitKinds _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildTypes _stepsOchildintros _stepsOfollow _stepsOindex _stepsOkind _stepsOmrules _stepsOoptions _stepsOprevMaxSimRefs _stepsOruledefs _stepsOruleuses _stepsOuseParallel in ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOuses,_lhsOvisitKinds)))) sem_VisitStep_ChildIntro :: Identifier -> T_VisitStep sem_VisitStep_ChildIntro child_ = (T_VisitStep (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel -> (let _lhsOerrors :: (Seq Error) _lhsOdefs :: (Set String) _lhsOuses :: (Map String (Maybe NonLocalAttr)) _lhsOsem_steps :: PP_Doc _lhsOlazyIntras :: (Set String) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOruleUsage :: (Map Identifier Int) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOindex :: Int _lhsOisLast :: Bool _lhsOprevMaxSimRefs :: Int -- "./src-ag/ExecutionPlan2Caml.ag"(line 850, column 16) _attachItf = ({-# LINE 850 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.findWithDefault (error $ "Child " ++ show child_ ++ " not found") child_ _lhsIchildintros {-# LINE 7231 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 851, column 16) (_lhsOerrors,_sem_steps,_lhsOdefs,_lhsOuses) = ({-# LINE 851 "./src-ag/ExecutionPlan2Caml.ag" #-} case _attachItf _lhsIkind of Left e -> (Seq.singleton e, empty, Set.empty, Map.empty) Right (code, defs, uses) -> (Seq.empty, code, defs, uses) {-# LINE 7239 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 855, column 16) _lhsOsem_steps = ({-# LINE 855 "./src-ag/ExecutionPlan2Caml.ag" #-} _sem_steps >-< _lhsIfollow {-# LINE 7245 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1329, column 57) _lhsOlazyIntras = ({-# LINE 1329 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 7251 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1229, column 56) _lhsOruleKinds = ({-# LINE 1229 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 7257 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1217, column 56) _lhsOruleUsage = ({-# LINE 1217 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 7263 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 7269 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOindex = ({-# LINE 875 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIindex {-# LINE 7275 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOisLast = ({-# LINE 894 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIisLast {-# LINE 7281 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevMaxSimRefs {-# LINE 7287 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOuses,_lhsOvisitKinds)))) -- VisitSteps -------------------------------------------------- {- visit 0: inherited attributes: allFromToStates : Map VisitIdentifier (Int,Int) allInitStates : Map NontermIdent Int allVisitKinds : Map VisitIdentifier VisitKind allchildvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) avisitdefs : Map VisitIdentifier (Set Identifier) avisituses : Map VisitIdentifier (Set Identifier) childTypes : Map Identifier Type childintros : Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))) follow : PP_Doc kind : VisitKind mrules : Map Identifier (VisitKind -> Either Error PP_Doc) options : Options ruledefs : Map Identifier (Set String) ruleuses : Map Identifier (Map String (Maybe NonLocalAttr)) useParallel : Bool chained attributes: index : Int prevMaxSimRefs : Int synthesized attributes: defs : Set String errors : Seq Error isLast : Bool lazyIntras : Set String ruleKinds : Map Identifier (Set VisitKind) ruleUsage : Map Identifier Int sem_steps : PP_Doc size : Int uses : Map String (Maybe NonLocalAttr) visitKinds : Map VisitIdentifier VisitKind 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 VisitIdentifier (Int,Int)) -> (Map NontermIdent Int) -> (Map VisitIdentifier VisitKind) -> (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) -> (Map VisitIdentifier (Set Identifier)) -> (Map VisitIdentifier (Set Identifier)) -> (Map Identifier Type) -> (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) -> PP_Doc -> Int -> VisitKind -> (Map Identifier (VisitKind -> Either Error PP_Doc)) -> Options -> Int -> (Map Identifier (Set String)) -> (Map Identifier (Map String (Maybe NonLocalAttr))) -> Bool -> ( (Set String),(Seq Error),Int,Bool,(Set String),Int,(Map Identifier (Set VisitKind)),(Map Identifier Int),PP_Doc,Int,(Map String (Maybe NonLocalAttr)),(Map VisitIdentifier VisitKind))) data Inh_VisitSteps = Inh_VisitSteps {allFromToStates_Inh_VisitSteps :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_VisitSteps :: (Map NontermIdent Int),allVisitKinds_Inh_VisitSteps :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_VisitSteps :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),avisitdefs_Inh_VisitSteps :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_VisitSteps :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_VisitSteps :: (Map Identifier Type),childintros_Inh_VisitSteps :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),follow_Inh_VisitSteps :: PP_Doc,index_Inh_VisitSteps :: Int,kind_Inh_VisitSteps :: VisitKind,mrules_Inh_VisitSteps :: (Map Identifier (VisitKind -> Either Error PP_Doc)),options_Inh_VisitSteps :: Options,prevMaxSimRefs_Inh_VisitSteps :: Int,ruledefs_Inh_VisitSteps :: (Map Identifier (Set String)),ruleuses_Inh_VisitSteps :: (Map Identifier (Map String (Maybe NonLocalAttr))),useParallel_Inh_VisitSteps :: Bool} data Syn_VisitSteps = Syn_VisitSteps {defs_Syn_VisitSteps :: (Set String),errors_Syn_VisitSteps :: (Seq Error),index_Syn_VisitSteps :: Int,isLast_Syn_VisitSteps :: Bool,lazyIntras_Syn_VisitSteps :: (Set String),prevMaxSimRefs_Syn_VisitSteps :: Int,ruleKinds_Syn_VisitSteps :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_VisitSteps :: (Map Identifier Int),sem_steps_Syn_VisitSteps :: PP_Doc,size_Syn_VisitSteps :: Int,uses_Syn_VisitSteps :: (Map String (Maybe NonLocalAttr)),visitKinds_Syn_VisitSteps :: (Map VisitIdentifier VisitKind)} wrap_VisitSteps :: T_VisitSteps -> Inh_VisitSteps -> Syn_VisitSteps wrap_VisitSteps (T_VisitSteps sem) (Inh_VisitSteps _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel) = (let ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsize,_lhsOuses,_lhsOvisitKinds) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel in (Syn_VisitSteps _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsize _lhsOuses _lhsOvisitKinds)) sem_VisitSteps_Cons :: T_VisitStep -> T_VisitSteps -> T_VisitSteps sem_VisitSteps_Cons (T_VisitStep hd_) (T_VisitSteps tl_) = (T_VisitSteps (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel -> (let _hdOfollow :: PP_Doc _lhsOsem_steps :: PP_Doc _lhsOsize :: Int _hdOindex :: Int _tlOindex :: Int _lhsOindex :: Int _lhsOisLast :: Bool _hdOisLast :: Bool _lhsOdefs :: (Set String) _lhsOerrors :: (Seq Error) _lhsOlazyIntras :: (Set String) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOruleUsage :: (Map Identifier Int) _lhsOuses :: (Map String (Maybe NonLocalAttr)) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOprevMaxSimRefs :: Int _hdOallFromToStates :: (Map VisitIdentifier (Int,Int)) _hdOallInitStates :: (Map NontermIdent Int) _hdOallVisitKinds :: (Map VisitIdentifier VisitKind) _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _hdOavisituses :: (Map VisitIdentifier (Set Identifier)) _hdOchildTypes :: (Map Identifier Type) _hdOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _hdOkind :: VisitKind _hdOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _hdOoptions :: Options _hdOprevMaxSimRefs :: Int _hdOruledefs :: (Map Identifier (Set String)) _hdOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _hdOuseParallel :: Bool _tlOallFromToStates :: (Map VisitIdentifier (Int,Int)) _tlOallInitStates :: (Map NontermIdent Int) _tlOallVisitKinds :: (Map VisitIdentifier VisitKind) _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _tlOavisituses :: (Map VisitIdentifier (Set Identifier)) _tlOchildTypes :: (Map Identifier Type) _tlOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _tlOfollow :: PP_Doc _tlOkind :: VisitKind _tlOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _tlOoptions :: Options _tlOprevMaxSimRefs :: Int _tlOruledefs :: (Map Identifier (Set String)) _tlOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _tlOuseParallel :: Bool _hdIdefs :: (Set String) _hdIerrors :: (Seq Error) _hdIindex :: Int _hdIisLast :: Bool _hdIlazyIntras :: (Set String) _hdIprevMaxSimRefs :: Int _hdIruleKinds :: (Map Identifier (Set VisitKind)) _hdIruleUsage :: (Map Identifier Int) _hdIsem_steps :: PP_Doc _hdIuses :: (Map String (Maybe NonLocalAttr)) _hdIvisitKinds :: (Map VisitIdentifier VisitKind) _tlIdefs :: (Set String) _tlIerrors :: (Seq Error) _tlIindex :: Int _tlIisLast :: Bool _tlIlazyIntras :: (Set String) _tlIprevMaxSimRefs :: Int _tlIruleKinds :: (Map Identifier (Set VisitKind)) _tlIruleUsage :: (Map Identifier Int) _tlIsem_steps :: PP_Doc _tlIsize :: Int _tlIuses :: (Map String (Maybe NonLocalAttr)) _tlIvisitKinds :: (Map VisitIdentifier VisitKind) -- "./src-ag/ExecutionPlan2Caml.ag"(line 840, column 11) _hdOfollow = ({-# LINE 840 "./src-ag/ExecutionPlan2Caml.ag" #-} _tlIsem_steps {-# LINE 7456 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 841, column 11) _lhsOsem_steps = ({-# LINE 841 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsem_steps {-# LINE 7462 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 872, column 10) _lhsOsize = ({-# LINE 872 "./src-ag/ExecutionPlan2Caml.ag" #-} 1 + _tlIsize {-# LINE 7468 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 877, column 3) _hdOindex = ({-# LINE 877 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIindex {-# LINE 7474 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 878, column 3) _tlOindex = ({-# LINE 878 "./src-ag/ExecutionPlan2Caml.ag" #-} 1 + _lhsIindex {-# LINE 7480 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 879, column 3) _lhsOindex = ({-# LINE 879 "./src-ag/ExecutionPlan2Caml.ag" #-} _tlIindex {-# LINE 7486 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 898, column 11) _lhsOisLast = ({-# LINE 898 "./src-ag/ExecutionPlan2Caml.ag" #-} False {-# LINE 7492 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 899, column 11) _hdOisLast = ({-# LINE 899 "./src-ag/ExecutionPlan2Caml.ag" #-} _tlIisLast {-# LINE 7498 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1313, column 38) _lhsOdefs = ({-# LINE 1313 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIdefs `Set.union` _tlIdefs {-# LINE 7504 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIerrors Seq.>< _tlIerrors {-# LINE 7510 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1329, column 57) _lhsOlazyIntras = ({-# LINE 1329 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIlazyIntras `Set.union` _tlIlazyIntras {-# LINE 7516 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1229, column 56) _lhsOruleKinds = ({-# LINE 1229 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIruleKinds `unionWithMappend` _tlIruleKinds {-# LINE 7522 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1217, column 56) _lhsOruleUsage = ({-# LINE 1217 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIruleUsage `unionWithSum` _tlIruleUsage {-# LINE 7528 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1314, column 38) _lhsOuses = ({-# LINE 1314 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIuses `Map.union` _tlIuses {-# LINE 7534 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisitKinds `mappend` _tlIvisitKinds {-# LINE 7540 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (up) _lhsOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _tlIprevMaxSimRefs {-# LINE 7546 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 7552 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 7558 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 7564 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallchildvisit = ({-# LINE 1149 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 7570 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 7576 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 7582 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildTypes {-# LINE 7588 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOchildintros = ({-# LINE 912 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildintros {-# LINE 7594 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOkind = ({-# LINE 827 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIkind {-# LINE 7600 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmrules = ({-# LINE 835 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImrules {-# LINE 7606 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 7612 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevMaxSimRefs {-# LINE 7618 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOruledefs = ({-# LINE 1281 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruledefs {-# LINE 7624 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOruleuses = ({-# LINE 1282 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruleuses {-# LINE 7630 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOuseParallel = ({-# LINE 903 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIuseParallel {-# LINE 7636 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 7642 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 7648 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 7654 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallchildvisit = ({-# LINE 1149 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 7660 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 7666 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 7672 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildTypes {-# LINE 7678 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOchildintros = ({-# LINE 912 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildintros {-# LINE 7684 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOfollow = ({-# LINE 836 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIfollow {-# LINE 7690 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOkind = ({-# LINE 827 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIkind {-# LINE 7696 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmrules = ({-# LINE 835 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImrules {-# LINE 7702 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 7708 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _tlOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIprevMaxSimRefs {-# LINE 7714 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOruledefs = ({-# LINE 1281 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruledefs {-# LINE 7720 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOruleuses = ({-# LINE 1282 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruleuses {-# LINE 7726 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOuseParallel = ({-# LINE 903 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIuseParallel {-# LINE 7732 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _hdIdefs,_hdIerrors,_hdIindex,_hdIisLast,_hdIlazyIntras,_hdIprevMaxSimRefs,_hdIruleKinds,_hdIruleUsage,_hdIsem_steps,_hdIuses,_hdIvisitKinds) = hd_ _hdOallFromToStates _hdOallInitStates _hdOallVisitKinds _hdOallchildvisit _hdOavisitdefs _hdOavisituses _hdOchildTypes _hdOchildintros _hdOfollow _hdOindex _hdOisLast _hdOkind _hdOmrules _hdOoptions _hdOprevMaxSimRefs _hdOruledefs _hdOruleuses _hdOuseParallel ( _tlIdefs,_tlIerrors,_tlIindex,_tlIisLast,_tlIlazyIntras,_tlIprevMaxSimRefs,_tlIruleKinds,_tlIruleUsage,_tlIsem_steps,_tlIsize,_tlIuses,_tlIvisitKinds) = tl_ _tlOallFromToStates _tlOallInitStates _tlOallVisitKinds _tlOallchildvisit _tlOavisitdefs _tlOavisituses _tlOchildTypes _tlOchildintros _tlOfollow _tlOindex _tlOkind _tlOmrules _tlOoptions _tlOprevMaxSimRefs _tlOruledefs _tlOruleuses _tlOuseParallel in ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsize,_lhsOuses,_lhsOvisitKinds)))) sem_VisitSteps_Nil :: T_VisitSteps sem_VisitSteps_Nil = (T_VisitSteps (\ _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfollow _lhsIindex _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel -> (let _lhsOsem_steps :: PP_Doc _lhsOsize :: Int _lhsOisLast :: Bool _lhsOdefs :: (Set String) _lhsOerrors :: (Seq Error) _lhsOlazyIntras :: (Set String) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOruleUsage :: (Map Identifier Int) _lhsOuses :: (Map String (Maybe NonLocalAttr)) _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOindex :: Int _lhsOprevMaxSimRefs :: Int -- "./src-ag/ExecutionPlan2Caml.ag"(line 842, column 11) _lhsOsem_steps = ({-# LINE 842 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIfollow {-# LINE 7774 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 871, column 10) _lhsOsize = ({-# LINE 871 "./src-ag/ExecutionPlan2Caml.ag" #-} 0 {-# LINE 7780 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- "./src-ag/ExecutionPlan2Caml.ag"(line 897, column 11) _lhsOisLast = ({-# LINE 897 "./src-ag/ExecutionPlan2Caml.ag" #-} True {-# LINE 7786 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1313, column 38) _lhsOdefs = ({-# LINE 1313 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 7792 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.empty {-# LINE 7798 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1329, column 57) _lhsOlazyIntras = ({-# LINE 1329 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 7804 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1229, column 56) _lhsOruleKinds = ({-# LINE 1229 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 7810 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1217, column 56) _lhsOruleUsage = ({-# LINE 1217 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 7816 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1314, column 38) _lhsOuses = ({-# LINE 1314 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 7822 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 7828 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOindex = ({-# LINE 875 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIindex {-# LINE 7834 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (chain) _lhsOprevMaxSimRefs = ({-# LINE 886 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevMaxSimRefs {-# LINE 7840 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsize,_lhsOuses,_lhsOvisitKinds)))) -- Visits ------------------------------------------------------ {- visit 0: inherited attributes: allFromToStates : Map VisitIdentifier (Int,Int) allInhmap : Map NontermIdent Attributes allInitStates : Map NontermIdent Int allSynmap : Map NontermIdent Attributes allVisitKinds : Map VisitIdentifier VisitKind allchildvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) allintramap : Map StateIdentifier (Map String (Maybe NonLocalAttr)) avisitdefs : Map VisitIdentifier (Set Identifier) avisituses : Map VisitIdentifier (Set Identifier) childTypes : Map Identifier Type childintros : Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))) con : ConstructorIdent inhmap : Attributes mrules : Map Identifier (VisitKind -> Either Error PP_Doc) nextVisits : Map StateIdentifier StateCtx nt : NontermIdent options : Options params : [Identifier] prevVisits : Map StateIdentifier StateCtx ruledefs : Map Identifier (Set String) ruleuses : Map Identifier (Map String (Maybe NonLocalAttr)) synmap : Attributes terminaldefs : Set String synthesized attributes: allvisits : [VisitStateState] childvisit : Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc) errors : Seq Error fromToStates : Map VisitIdentifier (Int,Int) intramap : Map StateIdentifier (Map String (Maybe NonLocalAttr)) lazyIntras : Set String ruleKinds : Map Identifier (Set VisitKind) ruleUsage : Map Identifier Int sem_visit : [(StateIdentifier,PP_Doc)] t_visits : PP_Doc visitKinds : Map VisitIdentifier VisitKind visitdefs : Map VisitIdentifier (Set Identifier) visituses : Map VisitIdentifier (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 VisitIdentifier (Int,Int)) -> (Map NontermIdent Attributes) -> (Map NontermIdent Int) -> (Map NontermIdent Attributes) -> (Map VisitIdentifier VisitKind) -> (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) -> (Map StateIdentifier (Map String (Maybe NonLocalAttr))) -> (Map VisitIdentifier (Set Identifier)) -> (Map VisitIdentifier (Set Identifier)) -> (Map Identifier Type) -> (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) -> ConstructorIdent -> Attributes -> (Map Identifier (VisitKind -> Either Error PP_Doc)) -> (Map StateIdentifier StateCtx) -> NontermIdent -> Options -> ([Identifier]) -> (Map StateIdentifier StateCtx) -> (Map Identifier (Set String)) -> (Map Identifier (Map String (Maybe NonLocalAttr))) -> Attributes -> (Set String) -> ( ([VisitStateState]),(Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),(Seq Error),(Map VisitIdentifier (Int,Int)),(Map StateIdentifier (Map String (Maybe NonLocalAttr))),(Set String),(Map Identifier (Set VisitKind)),(Map Identifier Int),( [(StateIdentifier,PP_Doc)] ),PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier)))) data Inh_Visits = Inh_Visits {allFromToStates_Inh_Visits :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_Visits :: (Map NontermIdent Attributes),allInitStates_Inh_Visits :: (Map NontermIdent Int),allSynmap_Inh_Visits :: (Map NontermIdent Attributes),allVisitKinds_Inh_Visits :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_Visits :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),allintramap_Inh_Visits :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),avisitdefs_Inh_Visits :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_Visits :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_Visits :: (Map Identifier Type),childintros_Inh_Visits :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),con_Inh_Visits :: ConstructorIdent,inhmap_Inh_Visits :: Attributes,mrules_Inh_Visits :: (Map Identifier (VisitKind -> Either Error PP_Doc)),nextVisits_Inh_Visits :: (Map StateIdentifier StateCtx),nt_Inh_Visits :: NontermIdent,options_Inh_Visits :: Options,params_Inh_Visits :: ([Identifier]),prevVisits_Inh_Visits :: (Map StateIdentifier StateCtx),ruledefs_Inh_Visits :: (Map Identifier (Set String)),ruleuses_Inh_Visits :: (Map Identifier (Map String (Maybe NonLocalAttr))),synmap_Inh_Visits :: Attributes,terminaldefs_Inh_Visits :: (Set String)} data Syn_Visits = Syn_Visits {allvisits_Syn_Visits :: ([VisitStateState]),childvisit_Syn_Visits :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)),errors_Syn_Visits :: (Seq Error),fromToStates_Syn_Visits :: (Map VisitIdentifier (Int,Int)),intramap_Syn_Visits :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),lazyIntras_Syn_Visits :: (Set String),ruleKinds_Syn_Visits :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_Visits :: (Map Identifier Int),sem_visit_Syn_Visits :: ( [(StateIdentifier,PP_Doc)] ),t_visits_Syn_Visits :: PP_Doc,visitKinds_Syn_Visits :: (Map VisitIdentifier VisitKind),visitdefs_Syn_Visits :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_Visits :: (Map VisitIdentifier (Set Identifier))} wrap_Visits :: T_Visits -> Inh_Visits -> Syn_Visits wrap_Visits (T_Visits sem) (Inh_Visits _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs) = (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs in (Syn_Visits _lhsOallvisits _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOintramap _lhsOlazyIntras _lhsOruleKinds _lhsOruleUsage _lhsOsem_visit _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)) sem_Visits_Cons :: T_Visit -> T_Visits -> T_Visits sem_Visits_Cons (T_Visit hd_) (T_Visits tl_) = (T_Visits (\ _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs -> (let _lhsOallvisits :: ([VisitStateState]) _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _lhsOerrors :: (Seq Error) _lhsOfromToStates :: (Map VisitIdentifier (Int,Int)) _lhsOintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))) _lhsOlazyIntras :: (Set String) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOruleUsage :: (Map Identifier Int) _lhsOsem_visit :: ( [(StateIdentifier,PP_Doc)] ) _lhsOt_visits :: PP_Doc _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier)) _lhsOvisituses :: (Map VisitIdentifier (Set Identifier)) _hdOallFromToStates :: (Map VisitIdentifier (Int,Int)) _hdOallInhmap :: (Map NontermIdent Attributes) _hdOallInitStates :: (Map NontermIdent Int) _hdOallSynmap :: (Map NontermIdent Attributes) _hdOallVisitKinds :: (Map VisitIdentifier VisitKind) _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _hdOallintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))) _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _hdOavisituses :: (Map VisitIdentifier (Set Identifier)) _hdOchildTypes :: (Map Identifier Type) _hdOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _hdOcon :: ConstructorIdent _hdOinhmap :: Attributes _hdOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _hdOnextVisits :: (Map StateIdentifier StateCtx) _hdOnt :: NontermIdent _hdOoptions :: Options _hdOparams :: ([Identifier]) _hdOprevVisits :: (Map StateIdentifier StateCtx) _hdOruledefs :: (Map Identifier (Set String)) _hdOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _hdOsynmap :: Attributes _hdOterminaldefs :: (Set String) _tlOallFromToStates :: (Map VisitIdentifier (Int,Int)) _tlOallInhmap :: (Map NontermIdent Attributes) _tlOallInitStates :: (Map NontermIdent Int) _tlOallSynmap :: (Map NontermIdent Attributes) _tlOallVisitKinds :: (Map VisitIdentifier VisitKind) _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _tlOallintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))) _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier)) _tlOavisituses :: (Map VisitIdentifier (Set Identifier)) _tlOchildTypes :: (Map Identifier Type) _tlOchildintros :: (Map Identifier (VisitKind -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) _tlOcon :: ConstructorIdent _tlOinhmap :: Attributes _tlOmrules :: (Map Identifier (VisitKind -> Either Error PP_Doc)) _tlOnextVisits :: (Map StateIdentifier StateCtx) _tlOnt :: NontermIdent _tlOoptions :: Options _tlOparams :: ([Identifier]) _tlOprevVisits :: (Map StateIdentifier StateCtx) _tlOruledefs :: (Map Identifier (Set String)) _tlOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr))) _tlOsynmap :: Attributes _tlOterminaldefs :: (Set String) _hdIallvisits :: ( VisitStateState ) _hdIchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _hdIerrors :: (Seq Error) _hdIfromToStates :: (Map VisitIdentifier (Int,Int)) _hdIintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))) _hdIlazyIntras :: (Set String) _hdIruleKinds :: (Map Identifier (Set VisitKind)) _hdIruleUsage :: (Map Identifier Int) _hdIsem_visit :: ( (StateIdentifier,PP_Doc) ) _hdIt_visits :: PP_Doc _hdIvisitKinds :: (Map VisitIdentifier VisitKind) _hdIvisitdefs :: (Map VisitIdentifier (Set Identifier)) _hdIvisituses :: (Map VisitIdentifier (Set Identifier)) _tlIallvisits :: ([VisitStateState]) _tlIchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _tlIerrors :: (Seq Error) _tlIfromToStates :: (Map VisitIdentifier (Int,Int)) _tlIintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))) _tlIlazyIntras :: (Set String) _tlIruleKinds :: (Map Identifier (Set VisitKind)) _tlIruleUsage :: (Map Identifier Int) _tlIsem_visit :: ( [(StateIdentifier,PP_Doc)] ) _tlIt_visits :: PP_Doc _tlIvisitKinds :: (Map VisitIdentifier VisitKind) _tlIvisitdefs :: (Map VisitIdentifier (Set Identifier)) _tlIvisituses :: (Map VisitIdentifier (Set Identifier)) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 427, column 29) _lhsOallvisits = ({-# LINE 427 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIallvisits : _tlIallvisits {-# LINE 8044 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1147, column 37) _lhsOchildvisit = ({-# LINE 1147 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIchildvisit `Map.union` _tlIchildvisit {-# LINE 8050 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIerrors Seq.>< _tlIerrors {-# LINE 8056 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1393, column 22) _lhsOfromToStates = ({-# LINE 1393 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIfromToStates `mappend` _tlIfromToStates {-# LINE 8062 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1255, column 34) _lhsOintramap = ({-# LINE 1255 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIintramap `uwMapUnion` _tlIintramap {-# LINE 8068 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1329, column 57) _lhsOlazyIntras = ({-# LINE 1329 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIlazyIntras `Set.union` _tlIlazyIntras {-# LINE 8074 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1229, column 56) _lhsOruleKinds = ({-# LINE 1229 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIruleKinds `unionWithMappend` _tlIruleKinds {-# LINE 8080 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1217, column 56) _lhsOruleUsage = ({-# LINE 1217 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIruleUsage `unionWithSum` _tlIruleUsage {-# LINE 8086 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 791, column 29) _lhsOsem_visit = ({-# LINE 791 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIsem_visit : _tlIsem_visit {-# LINE 8092 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 527, column 59) _lhsOt_visits = ({-# LINE 527 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIt_visits >-< _tlIt_visits {-# LINE 8098 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisitKinds `mappend` _tlIvisitKinds {-# LINE 8104 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1296, column 36) _lhsOvisitdefs = ({-# LINE 1296 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisitdefs `uwSetUnion` _tlIvisitdefs {-# LINE 8110 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1297, column 36) _lhsOvisituses = ({-# LINE 1297 "./src-ag/ExecutionPlan2Caml.ag" #-} _hdIvisituses `uwSetUnion` _tlIvisituses {-# LINE 8116 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 8122 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 8128 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 8134 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 8140 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 8146 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallchildvisit = ({-# LINE 1146 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 8152 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOallintramap = ({-# LINE 1254 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallintramap {-# LINE 8158 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 8164 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 8170 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildTypes {-# LINE 8176 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOchildintros = ({-# LINE 912 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildintros {-# LINE 8182 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOcon = ({-# LINE 86 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIcon {-# LINE 8188 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 8194 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOmrules = ({-# LINE 835 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImrules {-# LINE 8200 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOnextVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInextVisits {-# LINE 8206 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 8212 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 8218 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOparams = ({-# LINE 92 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIparams {-# LINE 8224 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOprevVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevVisits {-# LINE 8230 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOruledefs = ({-# LINE 1281 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruledefs {-# LINE 8236 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOruleuses = ({-# LINE 1282 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruleuses {-# LINE 8242 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 8248 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _hdOterminaldefs = ({-# LINE 1257 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIterminaldefs {-# LINE 8254 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallFromToStates = ({-# LINE 1396 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallFromToStates {-# LINE 8260 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallInhmap = ({-# LINE 412 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInhmap {-# LINE 8266 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallInitStates = ({-# LINE 1454 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallInitStates {-# LINE 8272 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallSynmap = ({-# LINE 413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallSynmap {-# LINE 8278 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallVisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallVisitKinds {-# LINE 8284 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallchildvisit = ({-# LINE 1146 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallchildvisit {-# LINE 8290 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOallintramap = ({-# LINE 1254 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIallintramap {-# LINE 8296 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOavisitdefs = ({-# LINE 1306 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisitdefs {-# LINE 8302 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOavisituses = ({-# LINE 1307 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIavisituses {-# LINE 8308 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOchildTypes = ({-# LINE 1413 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildTypes {-# LINE 8314 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOchildintros = ({-# LINE 912 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIchildintros {-# LINE 8320 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOcon = ({-# LINE 86 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIcon {-# LINE 8326 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOinhmap = ({-# LINE 410 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIinhmap {-# LINE 8332 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOmrules = ({-# LINE 835 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsImrules {-# LINE 8338 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOnextVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInextVisits {-# LINE 8344 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOnt = ({-# LINE 82 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsInt {-# LINE 8350 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOoptions = ({-# LINE 72 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIoptions {-# LINE 8356 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOparams = ({-# LINE 92 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIparams {-# LINE 8362 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOprevVisits = ({-# LINE 1382 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIprevVisits {-# LINE 8368 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOruledefs = ({-# LINE 1281 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruledefs {-# LINE 8374 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOruleuses = ({-# LINE 1282 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIruleuses {-# LINE 8380 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOsynmap = ({-# LINE 411 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIsynmap {-# LINE 8386 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- copy rule (down) _tlOterminaldefs = ({-# LINE 1257 "./src-ag/ExecutionPlan2Caml.ag" #-} _lhsIterminaldefs {-# LINE 8392 "dist/build/ExecutionPlan2Caml.hs" #-} ) ( _hdIallvisits,_hdIchildvisit,_hdIerrors,_hdIfromToStates,_hdIintramap,_hdIlazyIntras,_hdIruleKinds,_hdIruleUsage,_hdIsem_visit,_hdIt_visits,_hdIvisitKinds,_hdIvisitdefs,_hdIvisituses) = hd_ _hdOallFromToStates _hdOallInhmap _hdOallInitStates _hdOallSynmap _hdOallVisitKinds _hdOallchildvisit _hdOallintramap _hdOavisitdefs _hdOavisituses _hdOchildTypes _hdOchildintros _hdOcon _hdOinhmap _hdOmrules _hdOnextVisits _hdOnt _hdOoptions _hdOparams _hdOprevVisits _hdOruledefs _hdOruleuses _hdOsynmap _hdOterminaldefs ( _tlIallvisits,_tlIchildvisit,_tlIerrors,_tlIfromToStates,_tlIintramap,_tlIlazyIntras,_tlIruleKinds,_tlIruleUsage,_tlIsem_visit,_tlIt_visits,_tlIvisitKinds,_tlIvisitdefs,_tlIvisituses) = tl_ _tlOallFromToStates _tlOallInhmap _tlOallInitStates _tlOallSynmap _tlOallVisitKinds _tlOallchildvisit _tlOallintramap _tlOavisitdefs _tlOavisituses _tlOchildTypes _tlOchildintros _tlOcon _tlOinhmap _tlOmrules _tlOnextVisits _tlOnt _tlOoptions _tlOparams _tlOprevVisits _tlOruledefs _tlOruleuses _tlOsynmap _tlOterminaldefs in ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses)))) sem_Visits_Nil :: T_Visits sem_Visits_Nil = (T_Visits (\ _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs -> (let _lhsOallvisits :: ([VisitStateState]) _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> Type -> VisitKind -> PP_Doc -> Either Error PP_Doc)) _lhsOerrors :: (Seq Error) _lhsOfromToStates :: (Map VisitIdentifier (Int,Int)) _lhsOintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))) _lhsOlazyIntras :: (Set String) _lhsOruleKinds :: (Map Identifier (Set VisitKind)) _lhsOruleUsage :: (Map Identifier Int) _lhsOsem_visit :: ( [(StateIdentifier,PP_Doc)] ) _lhsOt_visits :: PP_Doc _lhsOvisitKinds :: (Map VisitIdentifier VisitKind) _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier)) _lhsOvisituses :: (Map VisitIdentifier (Set Identifier)) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 427, column 29) _lhsOallvisits = ({-# LINE 427 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 8441 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1147, column 37) _lhsOchildvisit = ({-# LINE 1147 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 8447 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1478, column 132) _lhsOerrors = ({-# LINE 1478 "./src-ag/ExecutionPlan2Caml.ag" #-} Seq.empty {-# LINE 8453 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1393, column 22) _lhsOfromToStates = ({-# LINE 1393 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 8459 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1255, column 34) _lhsOintramap = ({-# LINE 1255 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 8465 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1329, column 57) _lhsOlazyIntras = ({-# LINE 1329 "./src-ag/ExecutionPlan2Caml.ag" #-} Set.empty {-# LINE 8471 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1229, column 56) _lhsOruleKinds = ({-# LINE 1229 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 8477 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1217, column 56) _lhsOruleUsage = ({-# LINE 1217 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 8483 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 791, column 29) _lhsOsem_visit = ({-# LINE 791 "./src-ag/ExecutionPlan2Caml.ag" #-} [] {-# LINE 8489 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 527, column 59) _lhsOt_visits = ({-# LINE 527 "./src-ag/ExecutionPlan2Caml.ag" #-} empty {-# LINE 8495 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1440, column 68) _lhsOvisitKinds = ({-# LINE 1440 "./src-ag/ExecutionPlan2Caml.ag" #-} mempty {-# LINE 8501 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1296, column 36) _lhsOvisitdefs = ({-# LINE 1296 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 8507 "dist/build/ExecutionPlan2Caml.hs" #-} ) -- use rule "./src-ag/ExecutionPlan2Caml.ag"(line 1297, column 36) _lhsOvisituses = ({-# LINE 1297 "./src-ag/ExecutionPlan2Caml.ag" #-} Map.empty {-# LINE 8513 "dist/build/ExecutionPlan2Caml.hs" #-} ) in ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))