sexpresso 1.2.0.0 → 1.2.1.0
raw patch · 5 files changed
+29/−18 lines, 5 filesdep ~megaparsecnew-uploaderPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: megaparsec
API changes (from Hackage documentation)
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.Complex
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.Datum
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.Exactness
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.Precision
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.Radix
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.SExprType
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.SReal
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.SchemeNumber
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.SchemeToken
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.Sign
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.Suffix
+ Data.SExpresso.Language.SchemeR5RS: instance Data.Data.Data Data.SExpresso.Language.SchemeR5RS.UInteger
+ Data.SExpresso.SExpr: instance (Data.Data.Data b, Data.Data.Data a) => Data.Data.Data (Data.SExpresso.SExpr.SExpr b a)
Files
- ChangeLog.md +4/−0
- README.md +4/−0
- sexpresso.cabal +4/−4
- src/Data/SExpresso/Language/SchemeR5RS.hs +14/−12
- src/Data/SExpresso/SExpr.hs +3/−2
ChangeLog.md view
@@ -1,5 +1,9 @@ # Changelog for S-expresso +Version 1.2.1.0+---------------+* Add `Data` instances. [#12](https://github.com/archambaultv/sexpresso/pull/12).+ Version 1.2.0.0 --------------- * Update to stack lts 18.10
README.md view
@@ -1,6 +1,10 @@ [](https://opensource.org/licenses/0BSD) [](http://hackage.haskell.org/package/sexpresso) +# S-expresso is now in passive maintenance+I will try my best to fix new issues or merge new pull requests, but I do not work on this project anymore.+Expect some delay before I reply. If you wish to take over the project please contact me.+ # S-expresso S-expresso is a Haskell library designed to help you parse and print
sexpresso.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.4.+-- This file has been generated from package.yaml by hpack version 0.34.5. -- -- see: https://github.com/sol/hpack name: sexpresso-version: 1.2.0.0+version: 1.2.1.0 synopsis: A flexible library for parsing and printing S-expression description: Please see the README on GitHub at <https://github.com/archambaultv/sexpresso#readme> category: Data@@ -44,7 +44,7 @@ base >=4.7 && <5 , bifunctors ==5.5.* , containers >=0.5 && <0.7- , megaparsec >=7.0 && <9.1.0+ , megaparsec >=7.0 && <9.3.0 , recursion-schemes >=5.1 && <5.3 , text >=0.2 && <1.3 default-language: Haskell2010@@ -65,7 +65,7 @@ base >=4.7 && <5 , bifunctors ==5.5.* , containers >=0.5 && <0.7- , megaparsec >=7.0 && <9.1.0+ , megaparsec >=7.0 && <9.3.0 , recursion-schemes >=5.1 && <5.3 , sexpresso , smallcheck >=1.0
src/Data/SExpresso/Language/SchemeR5RS.hs view
@@ -13,6 +13,7 @@ -- R5RS datum (see 'Datum') by the function 'sexpr2Datum'. +{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ScopedTypeVariables #-}@@ -75,6 +76,7 @@ ) where import Control.Monad (mzero)+import Data.Data import Data.Maybe import Data.Proxy import Data.List@@ -115,7 +117,7 @@ | TCommaAt -- | The dot (.) symbol. | TDot- deriving (Eq, Show)+ deriving (Eq, Show, Data) -- | The 'tokenParser' parses a 'SchemeToken' tokenParser :: (MonadParsec e s m, Token s ~ Char) => m SchemeToken@@ -152,7 +154,7 @@ STList -- | A vector | STVector- deriving (Eq, Show)+ deriving (Eq, Show, Data) -- | The 'sexpr' defines a 'SExprParser' to parse a Scheme R5RS -- s-expression as an @'SExpr' 'SExprType' 'SchemeToken'@. If you also@@ -184,7 +186,7 @@ | DComma Datum | DCommaAt Datum | DVector [Datum]- deriving (Eq, Show)+ deriving (Eq, Show, Data) -- | The 'sexpr2Datum' function takes a list of 'SchemeToken' and -- returns a list of 'Datum'. In case of failure it will report an@@ -310,7 +312,7 @@ ------------------------- Numbers ------------------------- data Radix = R2 | R8 | R10 | R16- deriving (Eq, Show)+ deriving (Eq, Show, Data) -- | A Scheme R5RS number is either exact or inexact. The paragraph -- 6.4.2 from the R5RS report should clarify the meaning of exact and@@ -325,11 +327,11 @@ -- exponent, or a \“#\” character in the place of a digit, otherwise it -- is exact.\"\"\" data Exactness = Exact | Inexact- deriving (Eq, Show)+ deriving (Eq, Show, Data) -- | The 'Sign' datatype indicates if a number is positive ('Plus') or negative ('Minus') data Sign = Plus | Minus- deriving (Eq, Show)+ deriving (Eq, Show, Data) -- | A Scheme R5RS number can have many # signs at the end. This type alias -- indicates the number of # signs parsed.@@ -351,7 +353,7 @@ | UIntPounds Integer Pounds -- | Integer made only of #. It can only appear as the third argument in numbers of the form @'SDecimal' _ _ _ _@. | UPounds Pounds- deriving (Eq, Show)+ deriving (Eq, Show, Data) hasPounds :: UInteger -> Bool hasPounds (UInteger _) = False@@ -374,12 +376,12 @@ PDouble | -- | Suffix starting with l. PLong- deriving (Eq, Show)+ deriving (Eq, Show, Data) -- | The 'Suffix' data type represents the suffix for a Scheme R5RS -- decimal number. It is a based 10 exponent. data Suffix = Suffix Precision Sign Integer- deriving (Eq, Show)+ deriving (Eq, Show, Data) -- | The 'SReal' data type represents a Scheme R5RS real number. data SReal =@@ -391,7 +393,7 @@ -- | A signed decimal number. The first number appears before the -- dot, the second one after the dot. | SDecimal Sign UInteger UInteger (Maybe Suffix)- deriving (Eq, Show)+ deriving (Eq, Show, Data) isInexactR :: SReal -> Bool isInexactR (SInteger _ i) = isInexactI i@@ -406,7 +408,7 @@ | CAngle SReal SReal -- | A complex number in absolute notation. | CAbsolute SReal SReal- deriving (Eq, Show)+ deriving (Eq, Show, Data) isInexact :: Complex -> Bool isInexact (CReal s) = isInexactR s@@ -415,7 +417,7 @@ -- | A Scheme R5RS number is an exact or inexact complex number. data SchemeNumber = SchemeNumber Exactness Complex- deriving (Eq, Show)+ deriving (Eq, Show, Data) -- | The 'number' parser parses a Scheme R5RS number. number :: (MonadParsec e s m, Token s ~ Char) => m SchemeNumber
src/Data/SExpresso/SExpr.hs view
@@ -13,7 +13,7 @@ {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE DeriveFunctor, DeriveFoldable, DeriveTraversable #-}+{-# LANGUAGE DeriveFunctor, DeriveFoldable, DeriveTraversable, DeriveDataTypeable #-} module Data.SExpresso.SExpr@@ -33,6 +33,7 @@ where import Data.Bifunctor.TH+import Data.Data import Data.Functor.Foldable.TH -- | The datatype 'SExpr' is the definition of an S-expression for the@@ -43,7 +44,7 @@ -- like source position for example. data SExpr b a = SList b [SExpr b a] | SAtom a- deriving (Eq, Show, Functor, Traversable, Foldable)+ deriving (Eq, Show, Functor, Traversable, Foldable, Data) $(deriveBifunctor ''SExpr) $(deriveBifoldable ''SExpr)