X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FhsSyn%2FHsImpExp.lhs;h=220afb7499c6b72bb6d6a8f4d7222e10de39f5e0;hb=28a464a75e14cece5db40f2765a29348273ff2d2;hp=52ce08bb9e6f6ff2bdeade220c2aee5881123d49;hpb=9af77fa423926fbda946b31e174173d0ec5ebac8;p=ghc-hetmet.git diff --git a/ghc/compiler/hsSyn/HsImpExp.lhs b/ghc/compiler/hsSyn/HsImpExp.lhs index 52ce08b..220afb7 100644 --- a/ghc/compiler/hsSyn/HsImpExp.lhs +++ b/ghc/compiler/hsSyn/HsImpExp.lhs @@ -8,10 +8,10 @@ module HsImpExp where #include "HsVersions.h" -import Module ( ModuleName ) +import Module ( Module ) import Outputable import FastString -import SrcLoc ( SrcLoc ) +import SrcLoc ( Located(..) ) import Char ( isAlpha ) \end{code} @@ -23,18 +23,19 @@ import Char ( isAlpha ) One per \tr{import} declaration in a module. \begin{code} +type LImportDecl name = Located (ImportDecl name) + data ImportDecl name - = ImportDecl ModuleName -- module name + = ImportDecl (Located Module) -- module name Bool -- True <=> {-# SOURCE #-} import Bool -- True => qualified - (Maybe ModuleName) -- as Module - (Maybe (Bool, [IE name])) -- (True => hiding, names) - SrcLoc + (Maybe Module) -- as Module + (Maybe (Bool, [LIE name])) -- (True => hiding, names) \end{code} \begin{code} instance (Outputable name) => Outputable (ImportDecl name) where - ppr (ImportDecl mod from qual as spec _) + ppr (ImportDecl mod from qual as spec) = hang (hsep [ptext SLIT("import"), ppr_imp from, pp_qual qual, ppr mod, pp_as as]) 4 (pp_spec spec) @@ -54,7 +55,7 @@ instance (Outputable name) => Outputable (ImportDecl name) where pp_spec (Just (True, spec)) = ptext SLIT("hiding") <+> parens (interpp'SP spec) -ideclName (ImportDecl mod_nm _ _ _ _ _) = mod_nm +ideclName (ImportDecl mod_nm _ _ _ _) = mod_nm \end{code} %************************************************************************ @@ -64,12 +65,14 @@ ideclName (ImportDecl mod_nm _ _ _ _ _) = mod_nm %************************************************************************ \begin{code} +type LIE name = Located (IE name) + data IE name = IEVar name | IEThingAbs name -- Class/Type (can't tell) | IEThingAll name -- Class/Type plus all methods/constructors | IEThingWith name [name] -- Class/Type plus some methods/constructors - | IEModuleContents ModuleName -- (Export Only) + | IEModuleContents Module -- (Export Only) \end{code} \begin{code} @@ -112,6 +115,7 @@ isOperator ppr_v ('[':s) -> False -- [] ('$':c:s) -> not (isAlpha c) -- Don't treat $d as an operator (':':c:s) -> not (isAlpha c) -- Don't treat :T as an operator + ('_':s) -> False -- Not an operator (c:s) -> not (isAlpha c) -- Starts with non-alpha other -> False -- We use (showSDoc (ppr v)), rather than isSymOcc (getOccName v) simply so