attoparsec-data 1.0.4.1 → 1.0.5
raw patch · 4 files changed
+129/−5 lines, 4 filesdep −base-preludedep ~basePVP ok
version bump matches the API change (PVP)
Dependencies removed: base-prelude
Dependency ranges changed: base
API changes (from Hackage documentation)
+ Attoparsec.Data: show :: Parser Text
Files
- attoparsec-data.cabal +3/−3
- library/Attoparsec/Data/Explicit.hs +2/−0
- library/Attoparsec/Data/Parsers.hs +57/−0
- library/Attoparsec/Data/Prelude.hs +67/−2
attoparsec-data.cabal view
@@ -1,5 +1,5 @@ name: attoparsec-data-version: 1.0.4.1+version: 1.0.5 category: Parsing synopsis: Parsers for the standard Haskell data types homepage: https://github.com/nikita-volkov/attoparsec-data@@ -21,12 +21,12 @@ other-modules: Attoparsec.Data.Explicit Attoparsec.Data.Implicit+ Attoparsec.Data.Parsers Attoparsec.Data.Prelude build-depends: attoparsec ==0.13.*, attoparsec-time >=1 && <1.1,- base <5,- base-prelude <2,+ base >=4.11 && <5, bytestring >=0.10 && <0.11, scientific >=0.2 && <0.4, text >=1 && <2,
library/Attoparsec/Data/Explicit.hs view
@@ -10,6 +10,7 @@ A.scientific, string, uuid,+ D.show, -- * Time B.timeOfDayInISO8601, B.dayInISO8601,@@ -24,6 +25,7 @@ import qualified Data.Attoparsec.Text as A import qualified Attoparsec.Time.Text as B import qualified Data.Text.Encoding as C+import qualified Attoparsec.Data.Parsers as D import qualified Data.UUID as Uuid
+ library/Attoparsec/Data/Parsers.hs view
@@ -0,0 +1,57 @@+{-|+Lower-level parsers, which avoid overriding the native Attoparsec names.+-}+module Attoparsec.Data.Parsers where++import Attoparsec.Data.Prelude hiding (bool)+import Data.Attoparsec.Text+import qualified GHC.Show+import qualified Data.Text as Text++{-|+Parse the output of the 'show' function applied to 'String' or 'Text'+into what was used for its input.+-}+show :: Parser Text+show =+ char '"' *> body <* char '"'+ where+ body =+ mconcat <$> many chunk+ where+ chunk =+ escaped <|> nonEscaped+ nonEscaped =+ takeWhile1 (\ a -> a /= '\\' && a /= '"')+ escaped =+ Text.singleton <$> escapedChar++-- https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Show.html#showLitChar+escapedChar :: Parser Char+escapedChar =+ char '\\' *> escapedCharBody++escapedCharBody :: Parser Char+escapedCharBody =+ char '\\' <|>+ char 'a' $> '\a' <|>+ char 'b' $> '\b' <|>+ char 'f' $> '\f' <|>+ char 'n' $> '\n' <|>+ char 'r' $> '\r' <|>+ char 't' $> '\t' <|>+ char 'v' $> '\v' <|>+ string "DEL" $> '\DEL' <|>+ ordEscapedCharBody <|>+ asciiTabEscapedCharBody++asciiTabEscapedCharBody :: Parser Char+asciiTabEscapedCharBody =+ zipWith asciiTabChar [0..] GHC.Show.asciiTab & asum+ where+ asciiTabChar index chars =+ string (fromString chars) $> chr index++ordEscapedCharBody :: Parser Char+ordEscapedCharBody =+ chr <$> decimal
library/Attoparsec/Data/Prelude.hs view
@@ -5,9 +5,74 @@ where --- base-prelude+-- base --------------------------import BasePrelude as Exports+import Control.Applicative as Exports+import Control.Arrow as Exports hiding (first, second)+import Control.Category as Exports+import Control.Concurrent as Exports+import Control.Exception as Exports+import Control.Monad as Exports hiding (fail, mapM_, sequence_, forM_, msum, mapM, sequence, forM)+import Control.Monad.IO.Class as Exports+import Control.Monad.Fail as Exports+import Control.Monad.Fix as Exports hiding (fix)+import Control.Monad.ST as Exports+import Data.Bifunctor as Exports+import Data.Bits as Exports+import Data.Bool as Exports+import Data.Char as Exports+import Data.Coerce as Exports+import Data.Complex as Exports+import Data.Data as Exports+import Data.Dynamic as Exports+import Data.Either as Exports+import Data.Fixed as Exports+import Data.Foldable as Exports hiding (toList)+import Data.Function as Exports hiding (id, (.))+import Data.Functor as Exports+import Data.Functor.Compose as Exports+import Data.Int as Exports+import Data.IORef as Exports+import Data.Ix as Exports+import Data.List as Exports hiding (sortOn, isSubsequenceOf, uncons, concat, foldr, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, find, maximumBy, minimumBy, mapAccumL, mapAccumR, foldl')+import Data.List.NonEmpty as Exports (NonEmpty(..))+import Data.Maybe as Exports+import Data.Monoid as Exports hiding (Alt)+import Data.Ord as Exports+import Data.Proxy as Exports+import Data.Ratio as Exports+import Data.STRef as Exports+import Data.String as Exports+import Data.Traversable as Exports+import Data.Tuple as Exports+import Data.Unique as Exports+import Data.Version as Exports+import Data.Void as Exports+import Data.Word as Exports+import Debug.Trace as Exports+import Foreign.ForeignPtr as Exports+import Foreign.Ptr as Exports+import Foreign.StablePtr as Exports+import Foreign.Storable as Exports+import GHC.Conc as Exports hiding (orElse, withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)+import GHC.Exts as Exports (IsList(..), lazy, inline, sortWith, groupWith)+import GHC.Generics as Exports (Generic)+import GHC.IO.Exception as Exports+import Numeric as Exports+import Prelude as Exports hiding (fail, concat, foldr, mapM_, sequence_, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, mapM, sequence, id, (.))+import System.Environment as Exports+import System.Exit as Exports+import System.IO as Exports (Handle, hClose)+import System.IO.Error as Exports+import System.IO.Unsafe as Exports+import System.Mem as Exports+import System.Mem.StableName as Exports+import System.Timeout as Exports+import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)+import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readPrec_to_P, readP_to_Prec, readPrec_to_S, readS_to_Prec)+import Text.Printf as Exports (printf, hPrintf)+import Text.Read as Exports (Read(..), readMaybe, readEither)+import Unsafe.Coerce as Exports -- text -------------------------