projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2005-11-30 14:20:06 by simonpj]
[ghc-hetmet.git]
/
ghc
/
compiler
/
basicTypes
/
OccName.lhs
diff --git
a/ghc/compiler/basicTypes/OccName.lhs
b/ghc/compiler/basicTypes/OccName.lhs
index
00a46f0
..
756d6a9
100644
(file)
--- a/
ghc/compiler/basicTypes/OccName.lhs
+++ b/
ghc/compiler/basicTypes/OccName.lhs
@@
-35,7
+35,7
@@
module OccName (
mkDataConWrapperOcc, mkDataConWorkerOcc,
isVarOcc, isTvOcc, isTcOcc, isDataOcc, isDataSymOcc, isSymOcc, isValOcc,
mkDataConWrapperOcc, mkDataConWorkerOcc,
isVarOcc, isTvOcc, isTcOcc, isDataOcc, isDataSymOcc, isSymOcc, isValOcc,
- parenSymOcc, reportIfUnused,
+ parenSymOcc, reportIfUnused, isTcClsName, isVarName,
occNameFS, occNameString, occNameUserString, occNameSpace,
occNameFlavour, briefOccNameFlavour,
occNameFS, occNameString, occNameUserString, occNameSpace,
occNameFlavour, briefOccNameFlavour,
@@
-52,8
+52,8
@@
module OccName (
-- The basic form of names
isLexCon, isLexVar, isLexId, isLexSym,
isLexConId, isLexConSym, isLexVarId, isLexVarSym,
-- The basic form of names
isLexCon, isLexVar, isLexId, isLexSym,
isLexConId, isLexConSym, isLexVarId, isLexVarSym,
- isLowerISO, isUpperISO
-
+ isLowerISO, isUpperISO,
+ startsVarSym, startsVarId, startsConSym, startsConId
) where
#include "HsVersions.h"
) where
#include "HsVersions.h"
@@
-146,11
+146,21
@@
srcDataName = DataName -- Haskell-source data constructors should be
tvName = TvName
varName = VarName
tvName = TvName
varName = VarName
+isTcClsName :: NameSpace -> Bool
+isTcClsName TcClsName = True
+isTcClsName _ = False
+
+isVarName :: NameSpace -> Bool -- Variables or type variables, but not constructors
+isVarName TvName = True
+isVarName VarName = True
+isVarName other = False
+
+
nameSpaceString :: NameSpace -> String
nameSpaceString :: NameSpace -> String
-nameSpaceString DataName = "Data constructor"
-nameSpaceString VarName = "Variable"
-nameSpaceString TvName = "Type variable"
-nameSpaceString TcClsName = "Type constructor or class"
+nameSpaceString DataName = "data constructor"
+nameSpaceString VarName = "variable"
+nameSpaceString TvName = "type variable"
+nameSpaceString TcClsName = "type constructor or class"
\end{code}
\end{code}
@@
-162,9
+172,9
@@
nameSpaceString TcClsName = "Type constructor or class"
\begin{code}
data OccName = OccName
\begin{code}
data OccName = OccName
- NameSpace
- EncodedFS
- {-! derive : Binary !-}
+ { occNameSpace :: !NameSpace
+ , occNameFS :: !EncodedFS
+ }
\end{code}
\end{code}
@@
-346,18
+356,12
@@
intersectsOccSet s1 s2 = not (isEmptyOccSet (s1 `intersectOccSet` s2))
%************************************************************************
\begin{code}
%************************************************************************
\begin{code}
-occNameFS :: OccName -> EncodedFS
-occNameFS (OccName _ s) = s
-
occNameString :: OccName -> EncodedString
occNameString (OccName _ s) = unpackFS s
occNameUserString :: OccName -> UserString
occNameUserString occ = decode (occNameString occ)
occNameString :: OccName -> EncodedString
occNameString (OccName _ s) = unpackFS s
occNameUserString :: OccName -> UserString
occNameUserString occ = decode (occNameString occ)
-occNameSpace :: OccName -> NameSpace
-occNameSpace (OccName sp _) = sp
-
setOccNameSpace :: NameSpace -> OccName -> OccName
setOccNameSpace sp (OccName _ occ) = OccName sp occ
setOccNameSpace :: NameSpace -> OccName -> OccName
setOccNameSpace sp (OccName _ occ) = OccName sp occ