X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Text%2FRead.hs;h=bcb2d0930ab395ab8f70bc0cfc99c723b5a906f9;hb=3575737d44687dd6011c7fe600f5ce6d130321c2;hp=a7b71b40ba691cc2ee0acaad42d4e316c43fb530;hpb=06bb288c8d7e2f46276f25c3ef16d091de8f3ded;p=haskell-directory.git diff --git a/Text/Read.hs b/Text/Read.hs index a7b71b4..bcb2d09 100644 --- a/Text/Read.hs +++ b/Text/Read.hs @@ -1,4 +1,4 @@ -{-# OPTIONS -fno-implicit-prelude #-} +{-# OPTIONS_GHC -fno-implicit-prelude #-} ----------------------------------------------------------------------------- -- | -- Module : Text.Read @@ -35,6 +35,7 @@ module Text.Read ( module Text.ParserCombinators.ReadPrec, L.Lexeme(..), lexP, -- :: ReadPrec Lexeme + parens, -- :: ReadPrec a -> ReadPrec a #endif #ifdef __GLASGOW_HASKELL__ readListDefault, -- :: Read a => ReadS [a] @@ -56,4 +57,14 @@ import qualified Text.Read.Lex as L 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