picoparsec 0.1.2.1 → 0.1.2.2
raw patch · 8 files changed
+45/−34 lines, 8 filesdep ~basedep ~bytestringdep ~textPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependency ranges changed: base, bytestring, text
API changes (from Hackage documentation)
+ Data.Picoparsec: satisfyCharInput :: TextualMonoid t => (Char -> Bool) -> Parser t t
Files
- Data/Picoparsec.hs +5/−2
- Data/Picoparsec/Combinator.hs +4/−5
- Data/Picoparsec/Internal.hs +4/−4
- Data/Picoparsec/Internal/Types.hs +4/−2
- Data/Picoparsec/Monoid/Internal.hs +21/−9
- Data/Picoparsec/Number.hs +3/−3
- Data/Picoparsec/State.hs +3/−1
- picoparsec.cabal +1/−8
Data/Picoparsec.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Haskell2010 #-} -- | -- Module : Data.Picoparsec--- Copyright : Bryan O'Sullivan 2007-2011, Mario Blažević 2014+-- Copyright : Bryan O'Sullivan 2007-2011, Mario Blažević 2014-2015 -- License : BSD3 -- -- Maintainer : Mario Blažević@@ -59,6 +59,7 @@ , I.peekChar , I.peekChar' , I.satisfyChar+ , I.satisfyCharInput -- * Efficient string handling , I.scan@@ -108,13 +109,15 @@ , I.atEnd ) where -import Data.Monoid (Monoid)+import Data.Monoid -- (Monoid) import Data.Picoparsec.Combinator import qualified Data.Picoparsec.Monoid.Internal as I import qualified Data.Picoparsec.Internal as I import Data.Picoparsec.Monoid.Internal (Result, parse) import qualified Data.Picoparsec.Internal.Types as T++import Prelude -- $parsec --
Data/Picoparsec/Combinator.hs view
@@ -36,17 +36,16 @@ , notFollowedBy ) where -import Prelude hiding (succ)--import Control.Applicative (Alternative(..), Applicative(..), empty, liftA2,- many, (<|>), (*>), (<$>))+import Control.Applicative -- (Alternative(..), Applicative(..), empty, liftA2, many, (<|>), (*>), (<$>)) import Control.Monad (MonadPlus(..))-import Data.Monoid (Monoid(mappend))+import Data.Monoid -- (Monoid(mappend)) import Data.Picoparsec.Internal.Types (Parser(..), IResult(..)) import Data.Picoparsec.Internal (atEnd, endOfInput, lookAhead, notFollowedBy) import Data.ByteString (ByteString) import Data.Text (Text) import qualified Data.Picoparsec.Zepto as Z++import Prelude hiding (succ) -- | Attempt a parse, and if it fails, rewind the input so that no -- input appears to have been consumed.
Data/Picoparsec/Internal.hs view
@@ -25,12 +25,12 @@ , notFollowedBy ) where -import Prelude hiding (null)--import Control.Applicative ((<$>))+import Data.Functor -- (<$>) import Data.Picoparsec.Internal.Types-import Data.Monoid (Monoid, mempty, (<>))+import Data.Monoid -- (Monoid, mempty, (<>)) import Data.Monoid.Null (MonoidNull(null))++import Prelude hiding (null) -- | Compare two 'IResult' values for equality. --
Data/Picoparsec/Internal/Types.hs view
@@ -23,10 +23,12 @@ , addS ) where -import Control.Applicative (Alternative(..), Applicative(..), (<$>))+import Control.Applicative -- (Alternative(..), Applicative(..), (<$>)) import Control.DeepSeq (NFData(rnf)) import Control.Monad (MonadPlus(..))-import Data.Monoid (Monoid(..), (<>))+import Data.Monoid -- (Monoid(..), (<>))++import Prelude -- | The result of a parse. This is parameterised over the type @t@ -- of string that was processed.
Data/Picoparsec/Monoid/Internal.hs view
@@ -40,6 +40,7 @@ , char , notChar , satisfyChar+ , satisfyCharInput , peekChar , peekChar' @@ -71,14 +72,12 @@ , ensureOne ) where -import Prelude hiding (getChar, null, span, take, takeWhile)--import Control.Applicative ((<|>), (<$>))+import Control.Applicative -- ((<|>), (<$>)) import Control.Monad (when) import Data.Picoparsec.Combinator import Data.Picoparsec.Internal.Types import Data.Picoparsec.Internal (demandInput, get, prompt, put, wantInput)-import Data.Monoid (Monoid(..), (<>))+import Data.Monoid -- (Monoid(..), (<>)) import Data.Monoid.Cancellative (LeftGCDMonoid(..)) import Data.Monoid.Null (MonoidNull(null)) import qualified Data.Monoid.Factorial as Factorial@@ -88,6 +87,8 @@ import Data.String (IsString(..)) import qualified Data.Picoparsec.Internal.Types as T +import Prelude hiding (getChar, null, span, take, takeWhile)+ type Result = IResult instance (IsString a, LeftGCDMonoid a, MonoidNull a, a ~ b) => IsString (Parser a b) where@@ -125,12 +126,11 @@ if p first then put rest >> return first else fail "satisfy" {-# INLINE satisfy #-} --- | The parser @satisfy p@ succeeds for any input character for--- which the predicate @p@ returns 'True'. Returns the character that --- is actually parsed.+-- | The parser @satisfyChar p@ succeeds for any input character for which the predicate @p@ returns 'True'. Returns the+-- character that is actually parsed. ----- >digit = satisfy isDigit--- > where isDigit w = w >= "0" && w <= "9"+-- >digit = satisfyChar isDigit+-- > where isDigit w = w >= '0' && w <= '9' satisfyChar :: TextualMonoid t => (Char -> Bool) -> Parser t Char satisfyChar p = do s <- ensureOne@@ -138,6 +138,18 @@ of Just (first, rest) | p first -> put rest >> return first _ -> fail "satisfy" {-# INLINE satisfyChar #-}++-- | The parser @satisfyCharInput p@ succeeds for any input character for which the predicate @p@ returns+-- 'True'. Returns the parsed input token representing the character. @satisfyCharInput p@ is a faster version of+-- @singleton <$> satisfyChar p@ and of @satisfy (fromMaybe False p . characterPrefix)@.+satisfyCharInput :: TextualMonoid t => (Char -> Bool) -> Parser t t+satisfyCharInput p = do+ s <- ensureOne+ let Just (first, rest) = Factorial.splitPrimePrefix s+ case Textual.characterPrefix first+ of Just c | p c -> put rest >> return first+ _ -> fail "satisfy"+{-# INLINE satisfyCharInput #-} -- | The parser @skip p@ succeeds for any prime input token for which -- the predicate @p@ returns 'True'.
Data/Picoparsec/Number.hs view
@@ -28,9 +28,7 @@ , scientific ) where -import Prelude hiding (length)--import Control.Applicative (pure, (*>), (<$>), (<|>))+import Control.Applicative -- (pure, (*>), (<$>), (<|>)) import Control.DeepSeq (NFData(rnf)) import Control.Monad (void, when) import Data.Monoid.Factorial (length)@@ -46,6 +44,8 @@ import Data.Picoparsec (Parser, string) import qualified Data.Picoparsec.Monoid.Internal as I++import Prelude hiding (length) -- | A numeric type that can represent integers accurately, and -- floating point numbers to the precision of a 'Double'.
Data/Picoparsec/State.hs view
@@ -18,11 +18,13 @@ module Data.Picoparsec.State (getState, putState, modifyState) where -import Data.Functor ((<$>))+import Data.Functor -- ((<$>)) import Data.Monoid.Instances.Stateful (Stateful) import qualified Data.Monoid.Instances.Stateful as Stateful import Data.Picoparsec (Parser) import qualified Data.Picoparsec.Internal as I++import Prelude -- | Returns the current user state. getState :: Parser (Stateful s t) s
picoparsec.cabal view
@@ -1,5 +1,5 @@ name: picoparsec-version: 0.1.2.1+version: 0.1.2.2 license: BSD3 license-file: LICENSE category: Text, Parsing@@ -60,7 +60,6 @@ if flag(developer) ghc-prof-options: -auto-all- ghc-options: -Werror test-suite tests type: exitcode-stdio-1.0@@ -75,9 +74,6 @@ ghc-options: -Wall -threaded -rtsopts - if flag(developer)- ghc-options: -Werror- build-depends: picoparsec, array,@@ -109,9 +105,6 @@ Numbers Warp ghc-options: -O2 -Wall-- if flag(developer)- ghc-options: -Werror build-depends: array,