+++ /dev/null
-{-# OPTIONS_GHC -fno-implicit-prelude #-}
------------------------------------------------------------------------------
--- |
--- Module : Text.Read
--- Copyright : (c) The University of Glasgow 2001
--- License : BSD-style (see the file libraries/base/LICENSE)
---
--- Maintainer : libraries@haskell.org
--- Stability : provisional
--- Portability : non-portable (uses Text.ParserCombinators.ReadP)
---
--- Converting strings to values.
---
--- 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)
-
- -- * 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
- parens, -- :: ReadPrec a -> ReadPrec a
-#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
-
-parens :: ReadPrec a -> ReadPrec a
-parens p = optional
- where
- optional = p +++ mandatory
- mandatory = do
- L.Punc "(" <- lexP
- x <- reset optional
- L.Punc ")" <- lexP
- return x
-#endif