parsers 0.10.3 → 0.11
raw patch · 4 files changed
+24/−1 lines, 4 filesdep +attoparsec
Dependencies added: attoparsec
Files
- parsers.cabal +2/−1
- src/Text/Parser/Char.hs +8/−0
- src/Text/Parser/Combinators.hs +10/−0
- src/Text/Parser/Token.hs +4/−0
parsers.cabal view
@@ -1,6 +1,6 @@ name: parsers category: Text, Parsing-version: 0.10.3+version: 0.11 license: BSD3 cabal-version: >= 1.10 license-file: LICENSE@@ -51,6 +51,7 @@ charset >= 0.3 && < 1, containers >= 0.4 && < 0.6, parsec >= 3.1 && < 3.2,+ attoparsec >= 0.11.2 && < 0.12, text >= 0.10 && < 1.2, transformers >= 0.2 && < 0.4, unordered-containers >= 0.2 && < 0.3
src/Text/Parser/Char.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE ScopedTypeVariables #-} {-# OPTIONS_GHC -fspec-constr -fspec-constr-count=8 #-} #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 704@@ -65,6 +66,8 @@ import Data.Text import qualified Text.ParserCombinators.ReadP as ReadP import qualified Text.Parsec as Parsec+import qualified Data.Attoparsec.Types as Att+import qualified Data.Attoparsec.Combinator as Att import Text.Parser.Combinators -- | @oneOf cs@ succeeds if the current character is in the supplied@@ -338,6 +341,11 @@ notChar c = Parsec.satisfy (/= c) anyChar = Parsec.anyChar string = Parsec.string++instance Att.Chunk t => CharParsing (Att.Parser t) where+ satisfy p = fmap e2c $ Att.satisfyElem $ p . e2c+ where e2c = Att.chunkElemToChar (undefined :: t)+ {-# INLINE satisfy #-} instance CharParsing ReadP.ReadP where satisfy = ReadP.satisfy
src/Text/Parser/Combinators.hs view
@@ -75,6 +75,8 @@ import Data.Monoid import Data.Traversable (sequenceA) import qualified Text.Parsec as Parsec+import qualified Data.Attoparsec.Types as Att+import qualified Data.Attoparsec.Combinator as Att import qualified Text.ParserCombinators.ReadP as ReadP -- | @choice ps@ tries to apply the parsers in the list @ps@ in order,@@ -370,6 +372,14 @@ unexpected = Parsec.unexpected eof = Parsec.eof notFollowedBy = Parsec.notFollowedBy++instance Att.Chunk t => Parsing (Att.Parser t) where+ try = Att.try+ (<?>) = (Att.<?>)+ skipMany = Att.skipMany+ skipSome = Att.skipMany1+ unexpected = fail+ eof = Att.endOfInput instance Parsing ReadP.ReadP where try = id
src/Text/Parser/Token.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# OPTIONS_GHC -fspec-constr -fspec-constr-count=8 #-} {-# LANGUAGE CPP #-}@@ -99,6 +100,7 @@ import Data.Text hiding (empty,zip,foldl,foldl') import qualified Text.ParserCombinators.ReadP as ReadP import qualified Text.Parsec as Parsec+import qualified Data.Attoparsec.Types as Att import Text.Parser.Char import Text.Parser.Combinators import Text.Parser.Token.Highlight@@ -755,5 +757,7 @@ {-# INLINE highlight #-} instance Parsec.Stream s m Char => TokenParsing (Parsec.ParsecT s u m)++instance Att.Chunk t => TokenParsing (Att.Parser t) instance TokenParsing ReadP.ReadP