[project @ 2003-08-30 12:26:56 by ross]
[ghc-base.git] / GHC / Read.lhs
index bfffb19..2b9c448 100644 (file)
@@ -3,7 +3,7 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  GHC.Read
--- Copyright   :  (c) The FFI Task Force, 1994-2002
+-- Copyright   :  (c) The University of Glasgow, 1994-2002
 -- License     :  see libraries/base/LICENSE
 -- 
 -- Maintainer  :  cvs-ghc@haskell.org
@@ -49,6 +49,7 @@ import qualified Text.ParserCombinators.ReadP as P
 
 import Text.ParserCombinators.ReadP
   ( ReadP
+  , ReadS
   , readP_to_S
   )
 
@@ -64,11 +65,14 @@ import Data.Maybe
 import Data.Either
 
 import {-# SOURCE #-} GHC.Err          ( error )
+#ifndef __HADDOCK__
+import {-# SOURCE #-} GHC.Unicode      ( isDigit )
+#endif
 import GHC.Num
 import GHC.Real
 import GHC.Float
 import GHC.List
-import GHC.Show                -- isAlpha etc
+import GHC.Show
 import GHC.Base
 import GHC.Arr
 \end{code}
@@ -89,19 +93,12 @@ readParen b g   =  if b then mandatory else optional
 
 %*********************************************************
 %*                                                     *
-\subsection{The @Read@ class and @ReadS@ type}
+\subsection{The @Read@ class}
 %*                                                     *
 %*********************************************************
 
 \begin{code}
 ------------------------------------------------------------------------
--- ReadS
-
--- | A parser for a type @a@, represented as a function that takes a
--- 'String' and returns a list of possible parses @(a,'String')@ pairs.
-type ReadS a = String -> [(a,String)]
-
-------------------------------------------------------------------------
 -- class Read
 
 class Read a where
@@ -158,12 +155,23 @@ read s = either error id (readEither s)
 lex :: ReadS String            -- As defined by H98
 lex s  = readP_to_S L.hsLex s
 
+-- | Read a string representation of a character, using Haskell
+-- source-language escape conventions.  For example:
+--
+-- > lexLitChar  "\\nHello"  =  [("\\n", "Hello")]
+--
 lexLitChar :: ReadS String     -- As defined by H98
 lexLitChar = readP_to_S (do { (s, _) <- P.gather L.lexChar ;
                              return s })
        -- There was a skipSpaces before the P.gather L.lexChar,
        -- but that seems inconsistent with readLitChar
 
+-- | Read a string representation of a character, using Haskell
+-- source-language escape conventions, and convert it to the character
+-- that it encodes.  For example:
+--
+-- > readLitChar "\\nHello"  =  [('\n', "Hello")]
+--
 readLitChar :: ReadS Char      -- As defined by H98
 readLitChar = readP_to_S L.lexChar