HaRe-0.6: tools/hs2html/ConvRefsTypes.hs
module ConvRefsTypes where
import RefsTypes
import SrcLoc1
import NameMaps
import TypedIds
import UniqueNames
import HsName
import HsIdent(getHSName)
import PrettyPrint
import MUtils(apFst)
--import NoEq
simplifyRefsTypes mrs = [(pp m,simplifyRefsTypes' rs)|(m,rs)<-mrs]
simplifyRefsTypes' refs = simprefs refs
where
simprefs rs = [(simpp p,(pp n,simpr dctx,simpsp sp,map (simpos.apFst getHSName) os))|
((dctx,sp),i,os)<-rs,
let PN n p=getHSName i]::Refs
simpr (Def TopLevel) = DT
simpr (Def Local) = DL
simpr (Def (ClassDef ())) = DC
simpr (Def (Instance ())) = DI
simpr (Def Pattern) = DP
simpr (Sig _) = U -- hmm
simpr Use = U
simpr Logic = U
simpr FieldLabel = U
simpr (ExpEnt _) = Ex
simpr (ImpEnt _ _) = Im
simpsp ValueNames = V
simpsp ClassOrTypeNames = T
simpp (S s) = simpSrcLoc s
simpes s = (simpf (srcPath s),simpSrcLoc s)
simpf ('.':'/':s) = s
simpf s = s
simpos (PN n o,t) = (simpt t,simpo o)
--simpo (G (Module m) n (N (Just s))) | s/=loc0 = Right (simpes s) -- Use m and n?
simpo (G m n ({-N-} _)) = Left (m,n)
simpo (S s) = Right (simpes s)
simpt Value = V
simpt Assertion = V -- !!
simpt Property = V -- !!
simpt (Type {}) = T
simpt (Class {}) = Cl
simpt (ConstrOf (PN n p) _) = Co n -- (simpo p)
simpt (FieldOf (PN n p) _) = Fi n --(simpo p)
simpt (MethodOf (PN n p) _ _) = Me n --(simpo p)
simpSrcLoc (SrcLoc f n r c) = Pos n r c