X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FRead.lhs;h=2b9c4486195f2cb161b60be749b45a24a323e860;hb=1172e0e4b9640aa96095e31bcdc854cc55b54e34;hp=bfffb19f5cbcccc8b6da577166d3e56572929bb2;hpb=75ea0fa2485c169f0546d5d40477d2f6747efe29;p=ghc-base.git diff --git a/GHC/Read.lhs b/GHC/Read.lhs index bfffb19..2b9c448 100644 --- a/GHC/Read.lhs +++ b/GHC/Read.lhs @@ -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