git.iko.soy/typeable/attoparsec
on master help sign in
Use Monoid in a few more spots
commitf844684bfd07a6f3b5148e779f4b43e52cede207 authorBryan O'Sullivan <bos@serpentine.com> dateWed 30 Jan 2013, 22:40 (14 years ago) parent525cb8c
3 files changed+7−5
Data/Attoparsec/ByteString/Internal.hs+3−2 Data/Attoparsec/Internal/Types.hs+1−1 Data/Attoparsec/Text/Internal.hs+3−2
Data/Attoparsec/ByteString/Internal.hs+3−2
@@ -71,6 +71,7 @@ import Data.Attoparsec.ByteString.FastSet (charClass, memberWord8)
7171import Data.Attoparsec.Combinator
7272import Data.Attoparsec.Internal.Types
7373 hiding (Parser, Input, Added, Failure, Success)
74+import Data.Monoid (Monoid(..))
7475import Data.Word (Word8)
7576import Foreign.ForeignPtr (withForeignPtr)
7677import Foreign.Ptr (castPtr, minusPtr, plusPtr)
@@ -491,12 +492,12 @@ successK i0 _a0 _m0 a = Done (unI i0) a
491492
492493-- | Run a parser.
493494parse :: Parser a -> B.ByteString -> Result a
494−parse m s = T.runParser m (I s) (A B.empty) Incomplete failK successK
495+parse m s = T.runParser m (I s) mempty Incomplete failK successK
495496{-# INLINE parse #-}
496497
497498-- | Run a parser that cannot be resupplied via a 'Partial' result.
498499parseOnly :: Parser a -> B.ByteString -> Either String a
499−parseOnly m s = case T.runParser m (I s) (A B.empty) Complete failK successK of
500+parseOnly m s = case T.runParser m (I s) mempty Complete failK successK of
500501 Fail _ _ err -> Left err
501502 Done _ a -> Right a
502503 _ -> error "parseOnly: impossible error!"
Data/Attoparsec/Internal/Types.hs+1−1
@@ -143,7 +143,7 @@ instance Monad (Parser t) where
143143noAdds :: (Monoid t) =>
144144 Input t -> Added t -> More
145145 -> (Input t -> Added t -> More -> r) -> r
146−noAdds i0 _a0 m0 f = f i0 (A mempty) m0
146+noAdds i0 _a0 m0 f = f i0 mempty m0
147147{-# INLINE noAdds #-}
148148
149149plus :: (Monoid t) => Parser t a -> Parser t a -> Parser t a
Data/Attoparsec/Text/Internal.hs+3−2
@@ -68,6 +68,7 @@ import Control.Applicative ((<|>), (<$>))
6868import Control.Monad (when)
6969import Data.Attoparsec.Combinator
7070import Data.Attoparsec.Internal.Types hiding (Parser, Input, Added, Failure, Success)
71+import Data.Monoid (Monoid(..))
7172import Data.String (IsString(..))
7273import Data.Text (Text)
7374import Prelude hiding (getChar, take, takeWhile)
@@ -505,12 +506,12 @@ successK i0 _a0 _m0 a = Done (unI i0) a
505506
506507-- | Run a parser.
507508parse :: Parser a -> Text -> Result a
508−parse m s = runParser m (I s) (A T.empty) Incomplete failK successK
509+parse m s = runParser m (I s) mempty Incomplete failK successK
509510{-# INLINE parse #-}
510511
511512-- | Run a parser that cannot be resupplied via a 'Partial' result.
512513parseOnly :: Parser a -> Text -> Either String a
513−parseOnly m s = case runParser m (I s) (A T.empty) Complete failK successK of
514+parseOnly m s = case runParser m (I s) mempty Complete failK successK of
514515 Fail _ _ err -> Left err
515516 Done _ a -> Right a
516517 _ -> error "parseOnly: impossible error!"