packages feed

parsers 0.7.1 → 0.8

raw patch · 2 files changed

+12/−30 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Text.Parser.Token: identText :: (TokenParsing m, Monad m) => IdentifierStyle m -> m Text
- Text.Parser.Token: textLiteral :: TokenParsing m => m Text
- Text.Parser.Token: textLiteral' :: TokenParsing m => m Text
- Text.Parser.Token: ident :: (TokenParsing m, Monad m) => IdentifierStyle m -> m String
+ Text.Parser.Token: ident :: (TokenParsing m, Monad m, IsString s) => IdentifierStyle m -> m s
- Text.Parser.Token: stringLiteral :: TokenParsing m => m String
+ Text.Parser.Token: stringLiteral :: (TokenParsing m, IsString s) => m s
- Text.Parser.Token: stringLiteral' :: TokenParsing m => m String
+ Text.Parser.Token: stringLiteral' :: (TokenParsing m, IsString s) => m s

Files

parsers.cabal view
@@ -1,6 +1,6 @@ name:          parsers category:      Text, Parsing-version:       0.7.1+version:       0.8 license:       BSD3 cabal-version: >= 1.10 license-file:  LICENSE
src/Text/Parser/Token.hs view
@@ -23,10 +23,8 @@   -- * Token Parsing     whiteSpace      -- :: TokenParsing m => m ()   , charLiteral     -- :: TokenParsing m => m Char-  , stringLiteral   -- :: TokenParsing m => m String-  , stringLiteral'  -- :: TokenParsing m => m String-  , textLiteral     -- :: TokenParsing m => m Text-  , textLiteral'    -- :: TokenParsing m => m Text+  , stringLiteral   -- :: (TokenParsing m, IsString s) => m s+  , stringLiteral'  -- :: (TokenParsing m, IsString s) => m s   , natural         -- :: TokenParsing m => m Integer   , integer         -- :: TokenParsing m => m Integer   , double          -- :: TokenParsing m => m Double@@ -60,11 +58,9 @@   , integer'      -- :: TokenParsing m => m Integer   -- * Identifiers   , IdentifierStyle(..)-  , liftIdentifierStyle -- :: (MonadTrans t, Monad m) =>-                        --    IdentifierStyle m -> IdentifierStyle (t m)-  , ident           -- :: TokenParsing m => IdentifierStyle m -> m String+  , liftIdentifierStyle -- :: (MonadTrans t, Monad m) => IdentifierStyle m -> IdentifierStyle (t m)+  , ident           -- :: (TokenParsing m, IsString s) => IdentifierStyle m -> m s   , reserve         -- :: TokenParsing m => IdentifierStyle m -> String -> m ()-  , identText       -- :: TokenParsing m => IdentifierStyle m -> m Text   , reserveText     -- :: TokenParsing m => IdentifierStyle m -> Text -> m ()   -- ** Lenses and Traversals   , styleName@@ -94,6 +90,7 @@ import Data.HashSet (HashSet) import Data.List (foldl') import Data.Monoid+import Data.String import Data.Text hiding (empty,zip,foldl,foldl') import Text.Parser.Char import Text.Parser.Combinators@@ -121,8 +118,8 @@ -- gaps. The literal string is parsed according to the grammar rules -- defined in the Haskell report (which matches most programming -- languages quite closely).-stringLiteral :: TokenParsing m => m String-stringLiteral = token (highlight StringLiteral lit) where+stringLiteral :: (TokenParsing m, IsString s) => m s+stringLiteral = fromString <$> token (highlight StringLiteral lit) where   lit = Prelude.foldr (maybe id (:)) ""     <$> between (char '"') (char '"' <?> "end of string") (many stringChar)     <?> "string"@@ -139,15 +136,10 @@   escapeGap = skipSome space *> (char '\\' <?> "end of string gap") {-# INLINE stringLiteral #-} --- | A version of 'stringLiteral' that returns 'Text' instead.-textLiteral :: TokenParsing m => m Text-textLiteral = pack <$> stringLiteral-{-# INLINE textLiteral #-}- -- | This token parser behaves as 'stringLiteral', but for single-quoted -- strings.-stringLiteral' :: TokenParsing m => m String-stringLiteral' = token (highlight StringLiteral lit) where+stringLiteral' :: (TokenParsing m, IsString s) => m s+stringLiteral' = fromString <$> token (highlight StringLiteral lit) where   lit = Prelude.foldr (maybe id (:)) ""     <$> between (char '\'') (char '\'' <?> "end of string") (many stringChar)     <?> "string"@@ -164,11 +156,6 @@   escapeGap = skipSome space *> (char '\\' <?> "end of string gap") {-# INLINE stringLiteral' #-} --- | A version of 'stringLiteral'' that returns 'Text' instead.-textLiteral' :: TokenParsing m => m Text-textLiteral' = pack <$> stringLiteral'-{-# INLINE textLiteral' #-}- -- | This token parser parses a natural number (a positive whole -- number). Returns the value of the number. The number can be -- specified in 'decimal', 'hexadecimal' or@@ -518,18 +505,13 @@ {-# INLINE reserveText #-}  -- | Parse a non-reserved identifier or symbol-ident :: (TokenParsing m, Monad m) => IdentifierStyle m -> m String-ident s = token $ try $ do+ident :: (TokenParsing m, Monad m, IsString s) => IdentifierStyle m -> m s+ident s = fmap fromString $ token $ try $ do   name <- highlight (_styleHighlight s)           ((:) <$> _styleStart s <*> many (_styleLetter s) <?> _styleName s)   when (HashSet.member name (_styleReserved s)) $ unexpected $ "reserved " ++ _styleName s ++ " " ++ show name   return name {-# INLINE ident #-}---- | Parse a non-reserved identifier or symbol (as 'Text').-identText :: (TokenParsing m, Monad m) => IdentifierStyle m -> m Text-identText s = pack <$> ident s-{-# INLINE identText #-}  -- * Utilities