sexp-grammar 2.3.3 → 2.3.3.1
raw patch · 6 files changed
+41/−12 lines, 6 filesdep ~basedep ~bytestringdep ~semigroupsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, bytestring, semigroups, text, utf8-string
API changes (from Hackage documentation)
Files
- sexp-grammar.cabal +2/−2
- src/Language/Sexp/Encode.hs +3/−4
- src/Language/Sexp/Pretty.hs +10/−2
- src/Language/Sexp/Token.hs +5/−0
- src/Language/Sexp/Types.hs +11/−1
- test/Main.hs +10/−3
sexp-grammar.cabal view
@@ -1,5 +1,5 @@ name: sexp-grammar-version: 2.3.3+version: 2.3.3.1 license: BSD3 license-file: LICENSE author: Yevhen Smolanka, Sergey Vinokurov@@ -63,6 +63,7 @@ build-depends: QuickCheck , base+ , bytestring , containers , invertible-grammar , prettyprinter@@ -73,7 +74,6 @@ , tasty-hunit , tasty-quickcheck , text- , utf8-string main-is: Main.hs hs-source-dirs: test default-language: Haskell2010
src/Language/Sexp/Encode.hs view
@@ -14,12 +14,11 @@ import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy.Encoding as TL (encodeUtf8) import Data.ByteString.Lazy.Char8 (ByteString)-#if !MIN_VERSION_bytestring(0,11,0)-import Data.ByteString.Lazy.Builder.ASCII-#else+#if MIN_VERSION_bytestring(0,11,0) import Data.ByteString.Builder+#else+import Data.ByteString.Lazy.Builder.ASCII #endif- #if !MIN_VERSION_base(4,11,0) import Data.Semigroup
src/Language/Sexp/Pretty.hs view
@@ -1,6 +1,7 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-} {-# OPTIONS_GHC -fno-warn-orphans #-} @@ -13,9 +14,16 @@ import Data.Scientific import qualified Data.Text.Lazy as TL import Data.Text.Lazy.Encoding (encodeUtf8)++#if MIN_VERSION_prettyprinter(1,7,0)+import Prettyprinter+import Prettyprinter.Internal (unsafeTextWithoutNewlines)+import qualified Prettyprinter.Render.Text as Render+#else import Data.Text.Prettyprint.Doc import Data.Text.Prettyprint.Doc.Internal (unsafeTextWithoutNewlines) import qualified Data.Text.Prettyprint.Doc.Render.Text as Render+#endif import Language.Sexp.Types import Language.Sexp.Token (escape)
src/Language/Sexp/Token.hs view
@@ -15,7 +15,12 @@ #endif import Data.Text (Text) import qualified Data.Text.Lazy as TL++#if MIN_VERSION_prettyprinter(1,7,0)+import Prettyprinter+#else import Data.Text.Prettyprint.Doc+#endif import Language.Sexp.Types (Prefix(..))
src/Language/Sexp/Types.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-}@@ -30,7 +31,11 @@ import Data.Functor.Foldable (cata) import Data.Scientific (Scientific) import Data.Text (Text)+#if !MIN_VERSION_prettyprinter(1,7,0) import Data.Text.Prettyprint.Doc (Pretty (..), colon)+#else+import Prettyprinter (Pretty (..), colon)+#endif import GHC.Generics ----------------------------------------------------------------------@@ -65,6 +70,9 @@ instance (Eq p) => Eq1 (LocatedBy p) where liftEq eq (p :< a) (q :< b) = p == q && a `eq` b +instance NFData p => NFData1 (LocatedBy p) where+ liftRnf f (p :< a) = rnf p `seq` f a+ location :: LocatedBy a e -> a location (a :< _) = a @@ -129,5 +137,7 @@ BraceListF as -> liftRnf f as ModifiedF q a -> rnf q `seq` f a +#if !MIN_VERSION_deepseq(1,4,3) instance NFData1 (Compose (LocatedBy Position) SexpF) where- liftRnf f = liftRnf f . extract . getCompose+ liftRnf f (Compose (p :< a)) = rnf p `seq` liftRnf f a+#endif
test/Main.hs view
@@ -23,13 +23,20 @@ #endif import Control.Category-import Data.ByteString.Lazy.UTF8 (fromString)+import qualified Data.ByteString.Lazy.Char8 as B8 import Data.Char import Data.Scientific import Data.Semigroup import qualified Data.Set as S import qualified Data.Text as TS+import Data.Text.Encoding (encodeUtf8)++#if MIN_VERSION_prettyprinter(1,7,0)+import Prettyprinter (Pretty, pretty)+#else import Data.Text.Prettyprint.Doc (Pretty, pretty)+#endif+ import GHC.Generics import Test.QuickCheck () import Test.Tasty@@ -47,8 +54,8 @@ import Debug.Trace -parseSexp' :: String -> Either String Sexp-parseSexp' input = Sexp.decode (fromString input)+parseSexp' :: TS.Text -> Either String Sexp+parseSexp' input = Sexp.decode (B8.fromStrict (encodeUtf8 input)) instance Arbitrary Atom where arbitrary = oneof