git.iko.soy/typeable/attoparsec
on master help sign in
Use Monoid in a few more spots
f844684Bryan O'Sullivan
Data/Attoparsec/ByteString/Internal.hs+3−2
@@ -71,6 +71,7 @@ import Data.Attoparsec.ByteString.FastSet (charClass, memberWord8)
71import Data.Attoparsec.Combinator
71import Data.Attoparsec.Combinator
72import Data.Attoparsec.Internal.Types
72import Data.Attoparsec.Internal.Types
73 hiding (Parser, Input, Added, Failure, Success)
73 hiding (Parser, Input, Added, Failure, Success)
74+import Data.Monoid (Monoid(..))
74import Data.Word (Word8)
75import Data.Word (Word8)
75import Foreign.ForeignPtr (withForeignPtr)
76import Foreign.ForeignPtr (withForeignPtr)
76import Foreign.Ptr (castPtr, minusPtr, plusPtr)
77import Foreign.Ptr (castPtr, minusPtr, plusPtr)
@@ -491,12 +492,12 @@ successK i0 _a0 _m0 a = Done (unI i0) a
491
492
492-- | Run a parser.
493-- | Run a parser.
493parse :: Parser a -> B.ByteString -> Result a
494parse :: 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
495{-# INLINE parse #-}
496{-# INLINE parse #-}
496
497
497-- | Run a parser that cannot be resupplied via a 'Partial' result.
498-- | Run a parser that cannot be resupplied via a 'Partial' result.
498parseOnly :: Parser a -> B.ByteString -> Either String a
499parseOnly :: 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
500 Fail _ _ err -> Left err
501 Fail _ _ err -> Left err
501 Done _ a -> Right a
502 Done _ a -> Right a
502 _ -> error "parseOnly: impossible error!"
503 _ -> error "parseOnly: impossible error!"
Data/Attoparsec/Internal/Types.hs+1−1
@@ -143,7 +143,7 @@ instance Monad (Parser t) where
143noAdds :: (Monoid t) =>
143noAdds :: (Monoid t) =>
144 Input t -> Added t -> More
144 Input t -> Added t -> More
145 -> (Input t -> Added t -> More -> r) -> r
145 -> (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
147{-# INLINE noAdds #-}
147{-# INLINE noAdds #-}
148
148
149plus :: (Monoid t) => Parser t a -> Parser t a -> Parser t a
149plus :: (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 ((<|>), (<$>))
68import Control.Monad (when)
68import Control.Monad (when)
69import Data.Attoparsec.Combinator
69import Data.Attoparsec.Combinator
70import Data.Attoparsec.Internal.Types hiding (Parser, Input, Added, Failure, Success)
70import Data.Attoparsec.Internal.Types hiding (Parser, Input, Added, Failure, Success)
71+import Data.Monoid (Monoid(..))
71import Data.String (IsString(..))
72import Data.String (IsString(..))
72import Data.Text (Text)
73import Data.Text (Text)
73import Prelude hiding (getChar, take, takeWhile)
74import Prelude hiding (getChar, take, takeWhile)
@@ -505,12 +506,12 @@ successK i0 _a0 _m0 a = Done (unI i0) a
505
506
506-- | Run a parser.
507-- | Run a parser.
507parse :: Parser a -> Text -> Result a
508parse :: 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
509{-# INLINE parse #-}
510{-# INLINE parse #-}
510
511
511-- | Run a parser that cannot be resupplied via a 'Partial' result.
512-- | Run a parser that cannot be resupplied via a 'Partial' result.
512parseOnly :: Parser a -> Text -> Either String a
513parseOnly :: 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
514 Fail _ _ err -> Left err
515 Fail _ _ err -> Left err
515 Done _ a -> Right a
516 Done _ a -> Right a
516 _ -> error "parseOnly: impossible error!"
517 _ -> error "parseOnly: impossible error!"