diff options
| author | David Waern <unknown> | 2007-08-17 14:53:04 +0000 | 
|---|---|---|
| committer | David Waern <unknown> | 2007-08-17 14:53:04 +0000 | 
| commit | bedd431c75f7660655347d9210dc5043b83232e1 (patch) | |
| tree | d2089de29fb5b783cf5c3e9c4b055bc891afffcd /src/Haddock/Utils | |
| parent | 93d806105dd027f4d31a76e2bd2410001fe10b29 (diff) | |
Factor out typechecking phase into Haddock.Typecheck
Diffstat (limited to 'src/Haddock/Utils')
| -rw-r--r-- | src/Haddock/Utils/GHC.hs | 51 | 
1 files changed, 41 insertions, 10 deletions
| diff --git a/src/Haddock/Utils/GHC.hs b/src/Haddock/Utils/GHC.hs index 8393cbb2..3ac90d77 100644 --- a/src/Haddock/Utils/GHC.hs +++ b/src/Haddock/Utils/GHC.hs @@ -4,9 +4,12 @@  -- (c) Simon Marlow 2003  -- +  module Haddock.Utils.GHC where +  import Debug.Trace +import Data.Char  import GHC  import HsSyn @@ -17,6 +20,42 @@ import Packages  import UniqFM  import Name + +-- names + +nameOccString = occNameString . nameOccName  + + +nameSetMod n newMod =  +  mkExternalName (nameUnique n) newMod (nameOccName n) (nameSrcSpan n) + + +nameSetPkg pkgId n =  +  mkExternalName (nameUnique n) (mkModule pkgId (moduleName mod))  +	               (nameOccName n) (nameSrcSpan n) +  where mod = nameModule n + + +-- modules + + +moduleString :: Module -> String +moduleString = moduleNameString . moduleName  + + +mkModuleNoPkg :: String -> Module +mkModuleNoPkg str = mkModule (stringToPackageId "") (mkModuleName str) + + +-- misc + + +-- there should be a better way to check this using the GHC API +isConSym n = head (nameOccString n) == ':' +isVarSym n = fstChar /= '_' && not (isConSym n) && (not . isLetter) fstChar +  where fstChar = head (nameOccString n) + +  getMainDeclBinder :: HsDecl name -> Maybe name  getMainDeclBinder (TyClD d) = Just (tcdName d)  getMainDeclBinder (ValD d) @@ -28,18 +67,10 @@ getMainDeclBinder (ForD (ForeignImport name _ _)) = Just (unLoc name)  getMainDeclBinder (ForD (ForeignExport name _ _)) = Nothing  getMainDeclBinder _ = Nothing +  -- To keep if if minf_iface is re-introduced  --modInfoName = moduleName . mi_module . minf_iface  --modInfoMod  = mi_module . minf_iface  -trace_ppr x y = trace (showSDoc (ppr x)) y --- names - -nameSetMod n newMod =  -  mkExternalName (nameUnique n) newMod (nameOccName n) (nameSrcSpan n) - -nameSetPkg pkgId n =  -  mkExternalName (nameUnique n) (mkModule pkgId (moduleName mod))  -	               (nameOccName n) (nameSrcSpan n) -  where mod = nameModule n +trace_ppr x y = trace (showSDoc (ppr x)) y | 
