X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fprelude%2FPrelMods.lhs;h=885685d7c414ed4cade478cb662187fe3dc0b06f;hb=940841711bb0c30326a5173d8107c2792919641c;hp=1973663de9a983bf827f29267e7dfb65411a9503;hpb=9dd6e1c216993624a2cd74b62ca0f0569c02c26b;p=ghc-hetmet.git diff --git a/ghc/compiler/prelude/PrelMods.lhs b/ghc/compiler/prelude/PrelMods.lhs index 1973663..885685d 100644 --- a/ghc/compiler/prelude/PrelMods.lhs +++ b/ghc/compiler/prelude/PrelMods.lhs @@ -1,5 +1,5 @@ % -% (c) The GRASP/AQUA Project, Glasgow University, 1992-1996 +% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998 % \section[PrelMods]{Definitions of prelude modules} @@ -12,48 +12,90 @@ defined here so as to avod \begin{code} module PrelMods ( - gHC__, pRELUDE, pREL_BASE, - pREL_READ , pREL_NUM, pREL_LIST, - pREL_TUP , pACKED_STRING, cONC_BASE, - iO_BASE , eRROR, mONAD, rATIO, iX, - sT_BASE , aRR_BASE, fOREIGN, mAIN, - gHC_MAIN , gHC_ERR, - cCALL , aDDR + mkTupNameStr, mkUbxTupNameStr, + + pREL_GHC, pREL_BASE, pREL_ADDR, pREL_STABLE, + pREL_IO_BASE, pREL_PACK, pREL_ERR, pREL_NUM, pREL_FLOAT, pREL_REAL, + + pREL_GHC_Name, pRELUDE_Name, + mAIN_Name, pREL_MAIN_Name, pREL_ERR_Name, + pREL_BASE_Name, pREL_NUM_Name, pREL_LIST_Name, + pREL_TUP_Name, pREL_ADDR_Name, pREL_READ_Name, + pREL_PACK_Name, pREL_CONC_Name, pREL_IO_BASE_Name, + pREL_ST_Name, pREL_ARR_Name, pREL_BYTEARR_Name, pREL_FOREIGN_Name, + pREL_STABLE_Name, pREL_SHOW_Name, pREL_ENUM_Name, iNT_Name, wORD_Name, + pREL_REAL_Name, pREL_FLOAT_Name ) where #include "HsVersions.h" -import BasicTypes( Module ) +import Module ( Module, ModuleName, mkPrelModule, mkSrcModule ) +import Util ( nOfThem ) +import Panic ( panic ) \end{code} \begin{code} -gHC__, pRELUDE, pREL_BASE, pREL_NUM, pREL_LIST, pREL_TUP :: Module -pACKED_STRING, cONC_BASE, iO_BASE, mONAD, rATIO, iX :: Module -sT_BASE, aRR_BASE, fOREIGN, mAIN, gHC_MAIN, gHC_ERR :: Module - -gHC__ = SLIT("GHC") -- Primitive types and values - -pRELUDE = SLIT("Prelude") -pREL_BASE = SLIT("PrelBase") -pREL_READ = SLIT("PrelRead") -pREL_NUM = SLIT("PrelNum") -pREL_LIST = SLIT("PrelList") -pREL_TUP = SLIT("PrelTup") -pACKED_STRING= SLIT("PackBase") -cONC_BASE = SLIT("ConcBase") -iO_BASE = SLIT("IOBase") -eRROR = SLIT("Error") -mONAD = SLIT("Monad") -rATIO = SLIT("Ratio") -iX = SLIT("Ix") -sT_BASE = SLIT("STBase") -aRR_BASE = SLIT("ArrBase") -fOREIGN = SLIT("Foreign") -cCALL = SLIT("CCall") -aDDR = SLIT("Addr") - -mAIN = SLIT("Main") -gHC_MAIN = SLIT("GHCmain") -gHC_ERR = SLIT("GHCerr") +pRELUDE_Name = mkSrcModule "Prelude" +pREL_GHC_Name = mkSrcModule "PrelGHC" -- Primitive types and values +pREL_BASE_Name = mkSrcModule "PrelBase" +pREL_ENUM_Name = mkSrcModule "PrelEnum" +pREL_SHOW_Name = mkSrcModule "PrelShow" +pREL_READ_Name = mkSrcModule "PrelRead" +pREL_NUM_Name = mkSrcModule "PrelNum" +pREL_LIST_Name = mkSrcModule "PrelList" +pREL_TUP_Name = mkSrcModule "PrelTup" +pREL_PACK_Name = mkSrcModule "PrelPack" +pREL_CONC_Name = mkSrcModule "PrelConc" +pREL_IO_BASE_Name = mkSrcModule "PrelIOBase" +pREL_ST_Name = mkSrcModule "PrelST" +pREL_ARR_Name = mkSrcModule "PrelArr" +pREL_BYTEARR_Name = mkSrcModule "PrelByteArr" +pREL_FOREIGN_Name = mkSrcModule "PrelForeign" +pREL_STABLE_Name = mkSrcModule "PrelStable" +pREL_ADDR_Name = mkSrcModule "PrelAddr" +pREL_ERR_Name = mkSrcModule "PrelErr" +pREL_REAL_Name = mkSrcModule "PrelReal" +pREL_FLOAT_Name = mkSrcModule "PrelFloat" + +pREL_MAIN_Name = mkSrcModule "PrelMain" +mAIN_Name = mkSrcModule "Main" +iNT_Name = mkSrcModule "Int" +wORD_Name = mkSrcModule "Word" +pREL_GHC = mkPrelModule pREL_GHC_Name +pREL_BASE = mkPrelModule pREL_BASE_Name +pREL_ADDR = mkPrelModule pREL_ADDR_Name +pREL_STABLE = mkPrelModule pREL_STABLE_Name +pREL_IO_BASE = mkPrelModule pREL_IO_BASE_Name +pREL_PACK = mkPrelModule pREL_PACK_Name +pREL_ERR = mkPrelModule pREL_ERR_Name +pREL_NUM = mkPrelModule pREL_NUM_Name +pREL_REAL = mkPrelModule pREL_REAL_Name +pREL_FLOAT = mkPrelModule pREL_FLOAT_Name \end{code} + +%************************************************************************ +%* * +\subsection{Constructing the names of tuples +%* * +%************************************************************************ + +\begin{code} +mkTupNameStr, mkUbxTupNameStr :: Int -> (ModuleName, FAST_STRING) + +mkTupNameStr 0 = (pREL_BASE_Name, SLIT("()")) +mkTupNameStr 1 = panic "Name.mkTupNameStr: 1 ???" +mkTupNameStr 2 = (pREL_TUP_Name, _PK_ "(,)") -- not strictly necessary +mkTupNameStr 3 = (pREL_TUP_Name, _PK_ "(,,)") -- ditto +mkTupNameStr 4 = (pREL_TUP_Name, _PK_ "(,,,)") -- ditto +mkTupNameStr n = (pREL_TUP_Name, _PK_ ("(" ++ nOfThem (n-1) ',' ++ ")")) + +mkUbxTupNameStr 0 = panic "Name.mkUbxTupNameStr: 0 ???" +mkUbxTupNameStr 1 = (pREL_GHC_Name, _PK_ "(# #)") -- 1 and 0 both make sense!!! +mkUbxTupNameStr 2 = (pREL_GHC_Name, _PK_ "(#,#)") +mkUbxTupNameStr 3 = (pREL_GHC_Name, _PK_ "(#,,#)") +mkUbxTupNameStr 4 = (pREL_GHC_Name, _PK_ "(#,,,#)") +mkUbxTupNameStr n = (pREL_GHC_Name, _PK_ ("(#" ++ nOfThem (n-1) ',' ++ "#)")) +\end{code} + +