GroteTrap 0.5.1 → 0.5.2
raw patch · 3 files changed
+56/−6 lines, 3 filesdep +GroteTrapdep +test-frameworkdep +test-framework-quickcheck2dep ~QuickCheckdep ~sybPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: GroteTrap, test-framework, test-framework-quickcheck2
Dependency ranges changed: QuickCheck, syb
API changes (from Hackage documentation)
- Language.GroteTrap.Language: fnName :: Function a -> String
- Language.GroteTrap.Language: fnSem :: Function a -> [a] -> a
- Language.GroteTrap.Language: functions :: Language a -> [Function a]
- Language.GroteTrap.Language: instance Enum Fixity1
- Language.GroteTrap.Language: instance Enum Fixity2
- Language.GroteTrap.Language: instance Eq Fixity1
- Language.GroteTrap.Language: instance Eq Fixity2
- Language.GroteTrap.Language: instance Show Fixity1
- Language.GroteTrap.Language: instance Show Fixity2
- Language.GroteTrap.Language: number :: Language a -> Maybe (Int -> a)
- Language.GroteTrap.Language: opFixity1 :: Operator a -> Fixity1
- Language.GroteTrap.Language: opFixity2 :: Operator a -> Fixity2
- Language.GroteTrap.Language: opPrio :: Operator a -> Int
- Language.GroteTrap.Language: opSem1 :: Operator a -> a -> a
- Language.GroteTrap.Language: opSem2 :: Operator a -> a -> a -> a
- Language.GroteTrap.Language: opSemN :: Operator a -> [a] -> a
- Language.GroteTrap.Language: opToken :: Operator a -> String
- Language.GroteTrap.Language: operators :: Language a -> [Operator a]
- Language.GroteTrap.Language: variable :: Language a -> Maybe (String -> a)
- Language.GroteTrap.Lexer: instance Eq Token
- Language.GroteTrap.Lexer: instance Show Token
- Language.GroteTrap.Unparse: instance Unparse ParseTree
+ Language.GroteTrap.Language: [fnName] :: Function a -> String
+ Language.GroteTrap.Language: [fnSem] :: Function a -> [a] -> a
+ Language.GroteTrap.Language: [functions] :: Language a -> [Function a]
+ Language.GroteTrap.Language: [number] :: Language a -> Maybe (Int -> a)
+ Language.GroteTrap.Language: [opFixity1] :: Operator a -> Fixity1
+ Language.GroteTrap.Language: [opFixity2] :: Operator a -> Fixity2
+ Language.GroteTrap.Language: [opPrio] :: Operator a -> Int
+ Language.GroteTrap.Language: [opSem1] :: Operator a -> a -> a
+ Language.GroteTrap.Language: [opSem2] :: Operator a -> a -> a -> a
+ Language.GroteTrap.Language: [opSemN] :: Operator a -> [a] -> a
+ Language.GroteTrap.Language: [opToken] :: Operator a -> String
+ Language.GroteTrap.Language: [operators] :: Language a -> [Operator a]
+ Language.GroteTrap.Language: [variable] :: Language a -> Maybe (String -> a)
+ Language.GroteTrap.Language: instance GHC.Classes.Eq Language.GroteTrap.Language.Fixity1
+ Language.GroteTrap.Language: instance GHC.Classes.Eq Language.GroteTrap.Language.Fixity2
+ Language.GroteTrap.Language: instance GHC.Enum.Enum Language.GroteTrap.Language.Fixity1
+ Language.GroteTrap.Language: instance GHC.Enum.Enum Language.GroteTrap.Language.Fixity2
+ Language.GroteTrap.Language: instance GHC.Show.Show Language.GroteTrap.Language.Fixity1
+ Language.GroteTrap.Language: instance GHC.Show.Show Language.GroteTrap.Language.Fixity2
+ Language.GroteTrap.Lexer: instance GHC.Classes.Eq Language.GroteTrap.Lexer.Token
+ Language.GroteTrap.Lexer: instance GHC.Show.Show Language.GroteTrap.Lexer.Token
+ Language.GroteTrap.Unparse: instance Language.GroteTrap.Unparse.Unparse Language.GroteTrap.ParseTree.ParseTree
Files
- GroteTrap.cabal +15/−5
- LICENSE +1/−1
- Tests.hs +40/−0
GroteTrap.cabal view
@@ -1,14 +1,14 @@ Name: GroteTrap-Version: 0.5.1+Version: 0.5.2 Synopsis: Parser and selection library for expression languages. Description: Allows quick definition of expression languages. You get a parser for free, as well as conversion from text selection to tree selection and back. Homepage: http://www.haskell.org/haskellwiki/GroteTrap Author: Jeroen Leeuwestein, Martijn van Steenbergen Maintainer: martijn@van.steenbergen.nl-Copyright: Copyright (c) 2007-2015 Jeroen Leeuwestein and Martijn van Steenbergen+Copyright: Copyright (c) 2007-2016 Jeroen Leeuwestein and Martijn van Steenbergen -Cabal-Version: >= 1.6+Cabal-Version: >= 1.8 License: BSD3 License-file: LICENSE Category: Language@@ -21,10 +21,9 @@ Library Build-Depends: base < 5,- QuickCheck < 2.9, parsec < 3.2, mtl < 2.3,- syb < 0.5+ syb < 0.7 Exposed-Modules: Language.GroteTrap Language.GroteTrap.Language Language.GroteTrap.Lexer@@ -36,3 +35,14 @@ Language.GroteTrap.Util Other-Modules: Language.GroteTrap.ParseTree Language.GroteTrap.Parser++Test-Suite tests+ Type: exitcode-stdio-1.0+ Main-Is: Tests.hs+ Build-Depends: GroteTrap,+ base < 5,+ parsec < 3.2,+ mtl < 2.3,+ QuickCheck < 2.10,+ test-framework,+ test-framework-quickcheck2
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2008-2015, Jeroen Leeuwestein and Martijn van Steenbergen+Copyright (c) 2008-2016, Jeroen Leeuwestein and Martijn van Steenbergen All rights reserved. Redistribution and use in source and binary forms, with or without
+ Tests.hs view
@@ -0,0 +1,40 @@+module Main where++import Test.Framework (Test, defaultMain)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Test.QuickCheck ((==>))++import Language.GroteTrap.Range+ (validRange, includes, unionRange, distRange, size)+import Language.GroteTrap.Trees (up, down, left, right)++main :: IO ()+main = defaultMain tests++tests :: [Test]+tests =+ [ testProperty "range/propUnionRange" propUnionRange+ , testProperty "range/propDistRange" propDistRange+ , testProperty "range/propDistRangeComm" propDistRangeComm+ , testProperty "trees/propDownUp" propDownUp+ , testProperty "trees/propUpDown" propUpDown+ , testProperty "trees/propLeftRight" propLeftRight+ , testProperty "trees/propRightLeft" propRightLeft+ ]++-- ranges++propUnionRange r1 r2 = validRange r1 && validRange r2 ==> u `includes` r1 && u `includes` r2+ where u = unionRange r1 r2++propDistRange r1 r2 = validRange r1 && validRange r2 && r1 `includes` r2 ==>+ distRange r1 r2 <= size r1++propDistRangeComm r1 r2 = distRange r1 r2 == distRange r2 r1++-- tree paths++propDownUp path = up (down path) == path+propUpDown path = not (null path) ==> init (down (up path)) == init path+propLeftRight path = not (null path) && last path > 0 ==> right (left path) == path+propRightLeft path = not (null path) && last path >= 0 ==> left (right path) == path