packages feed

nanoparsec 0.1 → 0.1.1

raw patch · 3 files changed

+34/−2 lines, 3 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Data.Nanoparsec: (.*>) :: Monoid δ => Parser δ δ -> Parser δ a -> Parser δ a
+ Data.Nanoparsec: (<*.) :: Monoid δ => Parser δ a -> Parser δ δ -> Parser δ a

Files

Data/Nanoparsec.hs view
@@ -62,9 +62,15 @@     -- * State observation and manipulation functions   , I.endOfInput   , I.ensure++    -- * Applicative specializations+    -- $applicative+  , (<*.)+  , (.*>)   ) where +import Control.Applicative import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as LB import Data.Monoid@@ -219,3 +225,24 @@ eitherResult (Done _ r)     = Right r eitherResult (Fail _ _ msg) = Left msg eitherResult _              = Left "Result: incomplete input"++-- $applicative+--+-- We provide specializations of @\<*@ and @*\>@ as @\<*.@ and+-- @.*\>@, respectively.  Together with @IsString@ instance of+-- 'I.Parser', you may write parsers applicatively more easily.+-- For example:+--+-- > paren p = "(" .*> p <*. ")"+--+-- instead of the more verbose+--+-- > paren p = string "(" *> p <* string ")"++-- | Same as @Applicative@'s @\<*@ but specialized.+(<*.) :: Monoid δ ⇒ I.Parser δ a → I.Parser δ δ → I.Parser δ a+(<*.) = (<*)++-- | Same as @Applicative@'s @*\>@ but specialized.+(.*>) :: Monoid δ ⇒ I.Parser δ δ → I.Parser δ a → I.Parser δ a+(.*>) = (*>)
Data/Nanoparsec/Internal.hs view
@@ -1,5 +1,7 @@ {-# LANGUAGE BangPatterns #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE UnicodeSyntax #-} {-| Module      : Data.Nanoparsec.Internal@@ -54,6 +56,7 @@ import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as LB import Data.Monoid+import Data.String import qualified Data.ListLike as LL import Data.Word import Prelude hiding (take, takeWhile, elem, notElem)@@ -201,6 +204,8 @@     {-# SPECIALIZE mplus ∷ Parser B.ByteString a → Parser B.ByteString a → Parser B.ByteString a #-}     {-# SPECIALIZE mplus ∷ Parser LB.ByteString a → Parser LB.ByteString a → Parser LB.ByteString a #-} +instance (Eq δ, LL.ListLike δ ε, IsString δ) ⇒ IsString (Parser δ δ) where+    fromString = string . fromString      noAdds ∷ Monoid δ ⇒ S δ → S δ noAdds (S s _ c) = S s ø c
nanoparsec.cabal view
@@ -1,5 +1,5 @@ Name:                nanoparsec-Version:             0.1+Version:             0.1.1 Synopsis:            An implementation of attoparsec-like parser around list-like Description:         An implementation of attoparsec-like parser around list-like License:             BSD3@@ -15,7 +15,7 @@   Exposed-modules:   Data.Nanoparsec,                      Data.Nanoparsec.Combinator   Other-modules:     Data.Nanoparsec.Internal-  Build-depends:     base >= 4.3 && < 5,+  Build-depends:     base >= 4.0 && < 5,                      bytestring == 0.9.*,                      ListLike == 2.0.*   Ghc-options:       -Wall -O2