X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Text%2FRead.hs;h=5ba1fcb7fac853abba684f9b793e0568277126aa;hb=ae826792516f76f4a35d74c885653167f2045df9;hp=cc028b721a14dc7fa2c87b8bdeb1aa12f976b092;hpb=746ef6a7fd71bb1e9ebe3cd107c5f9f79f3b7a68;p=ghc-base.git diff --git a/Text/Read.hs b/Text/Read.hs index cc028b7..5ba1fcb 100644 --- a/Text/Read.hs +++ b/Text/Read.hs @@ -3,28 +3,55 @@ -- | -- Module : Text.Read -- Copyright : (c) The University of Glasgow 2001 --- License : BSD-style (see the file libraries/core/LICENSE) +-- License : BSD-style (see the file libraries/base/LICENSE) -- -- Maintainer : libraries@haskell.org -- Stability : provisional --- Portability : portable +-- Portability : non-portable (uses Text.ParserCombinators.ReadP) -- --- Exiting the program. +-- The "Text.Read" library is the canonical library to import for +-- 'Read'-class facilities. For GHC only, it offers an extended and much +-- improved 'Read' class, which constitutes a proposed alternative to the +-- Haskell 98 'Read'. In particular, writing parsers is easier, and +-- the parsers are much more efficient. -- ----------------------------------------------------------------------------- module Text.Read ( + -- * The 'Read' class + Read(..), -- The Read class ReadS, -- String -> Maybe (a,String) - Read( - readsPrec, -- :: Int -> ReadS a - readList -- :: ReadS [a] - ), + + -- * Haskell 98 functions reads, -- :: (Read a) => ReadS a read, -- :: (Read a) => String -> a readParen, -- :: Bool -> ReadS a -> ReadS a lex, -- :: ReadS String + +#if defined(__GLASGOW_HASKELL__) || defined(__HUGS__) + -- * New parsing functions + module Text.ParserCombinators.ReadPrec, + L.Lexeme(..), + lexP, -- :: ReadPrec Lexeme +#endif +#ifdef __GLASGOW_HASKELL__ + readListDefault, -- :: Read a => ReadS [a] + readListPrecDefault, -- :: Read a => ReadPrec [a] +#endif + ) where #ifdef __GLASGOW_HASKELL__ import GHC.Read #endif +#if defined(__GLASGOW_HASKELL__) || defined(__HUGS__) +import Text.ParserCombinators.ReadPrec +import qualified Text.Read.Lex as L +#endif + +#ifdef __HUGS__ +-- copied from GHC.Read + +lexP :: ReadPrec L.Lexeme +lexP = lift L.lex +#endif