------------------------------------------------------------------------- -- Imports of Ruler module ------------------------------------------------------------------------- %%[1 hs module (AS1.Imports) %%] %%[1 hs export (ImpModMp, as1Imports, as1JoinAGItfs) %%] %%[1 hs import (qualified Data.Map as Map, Common, AbsSyn.AbsSyn1) %%] ------------------------------------------------------------------------- -- Inclusion of split off parts ------------------------------------------------------------------------- %%[1 ag import ({AbsSyn/AbsSyn1AG}, {AbsSyn/CommonAG}, {Expr/AbsSynAG}) %%] ------------------------------------------------------------------------- -- Interfacing to AST ------------------------------------------------------------------------- %%[1 ag WRAPPER AGItf %%] %%[1 hs type ImpModMp = Map.Map Nm SPos as1Imports :: AGItf -> ImpModMp as1Imports r = (impModMp_Syn_AGItf r2) where r1 = sem_AGItf r r2 = wrap_AGItf r1 (Inh_AGItf ) as1JoinAGItfs :: [AGItf] -> AGItf as1JoinAGItfs ais = AGItf_AGItf $ concat $ [ ds | (AGItf_AGItf ds) <- ais ] %%] ------------------------------------------------------------------------- -- Imports ------------------------------------------------------------------------- %%[1 ag ATTR AllDecl AGItf [ | | impModMp USE {`Map.union`} {Map.empty}: {ImpModMp} ] SEM Decl | Include lhs . impModMp = Map.singleton @nm @pos %%]