ruler-0.4.0.0: src/AS1/Imports.cag
-------------------------------------------------------------------------
-- 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
%%]