[project @ 1996-07-25 20:43:49 by partain]
[ghc-hetmet.git] / ghc / compiler / utils / Util.lhs
index adc6e65..6d51f3a 100644 (file)
@@ -9,12 +9,16 @@
 # define IF_NOT_GHC(a) {--}
 #else
 # define panic error
 # define IF_NOT_GHC(a) {--}
 #else
 # define panic error
-# define TAG_ _CMP_TAG
-# define LT_ _LT
-# define EQ_ _EQ
-# define GT_ _GT
+# define TAG_ Ordering
+# define LT_ LT
+# define EQ_ EQ
+# define GT_ GT
+# define _LT LT
+# define _EQ EQ
+# define _GT GT
 # define GT__ _
 # define GT__ _
-# define tagCmp_ _tagCmp
+# define tagCmp_ compare
+# define _tagCmp compare
 # define FAST_STRING String
 # define ASSERT(x) {-nothing-}
 # define IF_NOT_GHC(a) a
 # define FAST_STRING String
 # define ASSERT(x) {-nothing-}
 # define IF_NOT_GHC(a) a
@@ -41,8 +45,8 @@ module Util (
         zipLazy,
        mapAndUnzip, mapAndUnzip3,
        nOfThem, lengthExceeds, isSingleton,
         zipLazy,
        mapAndUnzip, mapAndUnzip3,
        nOfThem, lengthExceeds, isSingleton,
-       startsWith, endsWith,
 #if defined(COMPILING_GHC)
 #if defined(COMPILING_GHC)
+       startsWith, endsWith,
        isIn, isn'tIn,
 #endif
 
        isIn, isn'tIn,
 #endif
 
@@ -65,9 +69,12 @@ module Util (
        mapAccumL, mapAccumR, mapAccumB,
 
        -- comparisons
        mapAccumL, mapAccumR, mapAccumB,
 
        -- comparisons
+#if defined(COMPILING_GHC)
        Ord3(..), thenCmp, cmpList,
        Ord3(..), thenCmp, cmpList,
-       IF_NOT_GHC(cmpString COMMA)
        cmpPString,
        cmpPString,
+#else
+       cmpString,
+#endif
 
        -- pairs
        IF_NOT_GHC(cfst COMMA applyToPair COMMA applyToFst COMMA)
 
        -- pairs
        IF_NOT_GHC(cfst COMMA applyToPair COMMA applyToFst COMMA)
@@ -88,6 +95,8 @@ CHK_Ubiq() -- debugging consistency check
 IMPORT_1_3(List(zipWith4))
 
 import Pretty
 IMPORT_1_3(List(zipWith4))
 
 import Pretty
+#else
+import List(zipWith4)
 #endif
 
 infixr 9 `thenCmp`
 #endif
 
 infixr 9 `thenCmp`
@@ -212,7 +221,7 @@ startsWith, endsWith :: String -> String -> Maybe String
 startsWith []     str = Just str
 startsWith (c:cs) (s:ss)
   = if c /= s then Nothing else startsWith cs ss
 startsWith []     str = Just str
 startsWith (c:cs) (s:ss)
   = if c /= s then Nothing else startsWith cs ss
-startWith  _     []  = Nothing
+startsWith  _    []  = Nothing
 
 endsWith cs ss
   = case (startsWith (reverse cs) (reverse ss)) of
 
 endsWith cs ss
   = case (startsWith (reverse cs) (reverse ss)) of
@@ -715,7 +724,11 @@ cmpString (x:xs) (y:ys) = if         x == y then cmpString xs ys
 cmpString []     ys    = LT_
 cmpString xs     []    = GT_
 
 cmpString []     ys    = LT_
 cmpString xs     []    = GT_
 
+#ifdef COMPILING_GHC
 cmpString _ _ = panic# "cmpString"
 cmpString _ _ = panic# "cmpString"
+#else
+cmpString _ _ = error "cmpString"
+#endif
 \end{code}
 
 \begin{code}
 \end{code}
 
 \begin{code}