packages feed

incremental-parser 0.2.5.4 → 0.3

raw patch · 4 files changed

+31/−16 lines, 4 filesdep ~base

Dependency ranges changed: base

Files

Control/Applicative/Monoid.hs view
@@ -1,5 +1,5 @@ {--    Copyright 2011-2015 Mario Blazevic+    Copyright 2011-2018 Mario Blazevic      This file is part of the Streaming Component Combinators (SCC) project. @@ -25,6 +25,7 @@  import Control.Applicative (Applicative (pure, (<*>)), Alternative ((<|>), some, many), (<$>)) import Data.Monoid (Monoid, mempty, mappend, mconcat)+import Data.Semigroup (Semigroup, (<>))   class Applicative f => MonoidApplicative f where@@ -35,8 +36,8 @@     -- | Lifted and potentially optimized monoid `mappend` operation from the parameter type.    infixl 5 ><-   (><) :: Monoid a => f a -> f a -> f a-   a >< b = mappend <$> a +<*> b+   (><) :: Semigroup a => f a -> f a -> f a+   a >< b = (<>) <$> a +<*> b  class (Alternative f, MonoidApplicative f) => MonoidAlternative f where    -- | Like 'optional', but restricted to 'Monoid' results.
Test/TestIncrementalParser.hs view
@@ -1,5 +1,5 @@ {- -    Copyright 2011-2015 Mario Blazevic+    Copyright 2011-2018 Mario Blazevic      This file is part of the Streaming Component Combinators (SCC) project. @@ -24,6 +24,7 @@ import Control.Monad (MonadPlus, liftM, liftM2, mzero, mplus) import Data.List (find, minimumBy, nub, sort) import Data.Monoid (Monoid(..))+import Data.Semigroup (Semigroup(..)) import System.Environment (getArgs)  import Test.Tasty.QuickCheck (Arbitrary(..), Gen, Property, property, (==>), (.&&.), forAll, oneof, resize, sized, whenFail)@@ -57,13 +58,19 @@ instance (Arbitrary r, Monoid r, Show r) => Arbitrary (TestParser a r) where    arbitrary = fmap TestParser arbitrary +instance Semigroup a => Semigroup (Described a) where+   Described d1 p1 <> Described d2 p2 = Described (d1 ++ " <> " ++ d2) (p1 <> p2)+ instance Monoid a => Monoid (Described a) where    mempty = Described "mempty" mempty-   Described d1 p1 `mappend` Described d2 p2 = Described (d1 ++ " `mappend` " ++ d2) (mappend p1 p2)+   mappend = (<>) +instance Semigroup r => Semigroup (TestParser a r) where+   TestParser d1 <> TestParser d2 = TestParser (d1 <> d2)+ instance Monoid r => Monoid (TestParser a r) where    mempty = TestParser mempty-   TestParser d1 `mappend` TestParser d2 = TestParser (d1 `mappend` d2)+   mappend = (<>)  instance EqProp a => EqProp (Described a) where    Described _ x =-= Described _ y = x =-= y@@ -271,6 +278,9 @@  instance (Monoid r, Show r) => Show (Parser a [Bool] r) where    show p = showWith (showBoolFun show) show p++instance Semigroup Bool where+   (<>) = (||)  instance Monoid Bool where    mempty = False
Text/ParserCombinators/Incremental.hs view
@@ -1,5 +1,5 @@ {--    Copyright 2010-2015 Mario Blazevic+    Copyright 2010-2018 Mario Blazevic      This file is part of the Streaming Component Combinators (SCC) project. @@ -50,7 +50,8 @@ import Control.Applicative.Monoid(MonoidApplicative(..), MonoidAlternative(..)) import Control.Monad (ap) import Data.Maybe (fromMaybe)-import Data.Monoid (Monoid, mempty, mappend, (<>))+import Data.Semigroup (Semigroup(..))+import Data.Monoid (Monoid, mempty, mappend) import Data.Monoid.Cancellative (LeftReductiveMonoid (stripPrefix)) import Data.Monoid.Factorial (FactorialMonoid (splitPrimePrefix), span) import Data.Monoid.Null (MonoidNull(null))@@ -164,16 +165,19 @@    p1 >< p2 | isInfallible p2 = appendIncremental p1 p2             | otherwise       = append p1 p2 -appendIncremental :: (Monoid s, Monoid r) => Parser t s r -> Parser t s r -> Parser t s r-appendIncremental (Result s r) p = resultPart (mappend r) (feed s p)+appendIncremental :: (Monoid s, Semigroup r) => Parser t s r -> Parser t s r -> Parser t s r+appendIncremental (Result s r) p = resultPart (<> r) (feed s p) appendIncremental (ResultPart r e f) p2 = ResultPart r (appendIncremental e p2) (flip appendIncremental p2 . f) appendIncremental p1 p2 = apply (`appendIncremental` p2) p1 -append :: (Monoid s, Monoid r) => Parser t s r -> Parser t s r -> Parser t s r-append (Result s r) p2 = prepend (mappend r) (feed s p2)+append :: (Monoid s, Semigroup r) => Parser t s r -> Parser t s r -> Parser t s r+append (Result s r) p2 = prepend (<> r) (feed s p2) append p1 p2 = apply (`append` p2) p1  -- | Two parsers can be sequentially joined.+instance (Monoid s, Semigroup r) => Semigroup (Parser t s r) where+   (<>) = (><)+ instance (Monoid s, Monoid r) => Monoid (Parser t s r) where    mempty = return mempty    mappend = (><)
incremental-parser.cabal view
@@ -1,5 +1,5 @@ Name:                incremental-parser-Version:             0.2.5.4+Version:             0.3 Cabal-Version:       >= 1.10 Build-Type:          Simple Synopsis:            Generic parser library capable of providing partial results from partial input.@@ -28,7 +28,7 @@   Exposed-Modules:   Text.ParserCombinators.Incremental,                      Text.ParserCombinators.Incremental.LeftBiasedLocal, Text.ParserCombinators.Incremental.Symmetric,                      Control.Applicative.Monoid-  Build-Depends:     base < 4.11, monoid-subclasses < 0.5+  Build-Depends:     base < 5, monoid-subclasses < 0.5   if impl(ghc >= 7.0.0)      default-language: Haskell2010 @@ -36,7 +36,7 @@   Type:              exitcode-stdio-1.0   x-uses-tf:         true   Default-Language:  Haskell2010-  Build-Depends:     base < 4.11, monoid-subclasses < 0.5,+  Build-Depends:     base < 5, monoid-subclasses < 0.5,                      QuickCheck >= 2 && < 3, checkers >= 0.3.2 && < 0.5,                      tasty >= 0.7 && < 1.1, tasty-quickcheck >= 0.7 && < 1.0   Main-is:           Test/TestIncrementalParser.hs@@ -50,5 +50,5 @@   hs-source-dirs:    Benchmarks   ghc-options:       -O2 -Wall -rtsopts   main-is:           CSV.hs-  Build-Depends:     base < 4.11, monoid-subclasses < 0.5, incremental-parser,+  Build-Depends:     base < 5, monoid-subclasses < 0.5, incremental-parser,                      bytestring >= 0.10.4.0, criterion >= 1.0, deepseq >= 1.1, text >= 1.1.1.0