symantic-grammar 0.3.0.20180213 → 0.3.1.20180831
raw patch · 11 files changed
+55/−7 lines, 11 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Language.Symantic.Grammar.BinTree: instance Data.Semigroup.Semigroup (Language.Symantic.Grammar.BinTree.BinTree a)
- Language.Symantic.Grammar.Source: instance (GHC.Classes.Eq a, GHC.Classes.Eq src) => GHC.Classes.Eq (Language.Symantic.Grammar.Source.At src a)
- Language.Symantic.Grammar.Source: instance (GHC.Classes.Ord a, GHC.Classes.Ord src) => GHC.Classes.Ord (Language.Symantic.Grammar.Source.At src a)
- Language.Symantic.Grammar.Source: instance (GHC.Show.Show a, GHC.Show.Show src) => GHC.Show.Show (Language.Symantic.Grammar.Source.At src a)
+ Language.Symantic.Grammar.BinTree: instance GHC.Base.Semigroup (Language.Symantic.Grammar.BinTree.BinTree a)
+ Language.Symantic.Grammar.Source: instance (GHC.Classes.Eq src, GHC.Classes.Eq a) => GHC.Classes.Eq (Language.Symantic.Grammar.Source.At src a)
+ Language.Symantic.Grammar.Source: instance (GHC.Classes.Ord src, GHC.Classes.Ord a) => GHC.Classes.Ord (Language.Symantic.Grammar.Source.At src a)
+ Language.Symantic.Grammar.Source: instance (GHC.Show.Show src, GHC.Show.Show a) => GHC.Show.Show (Language.Symantic.Grammar.Source.At src a)
- Language.Symantic.Grammar.EBNF: EBNF :: (RuleMode -> (Infix, Side) -> Text) -> EBNF a
+ Language.Symantic.Grammar.EBNF: EBNF :: RuleMode -> (Infix, Side) -> Text -> EBNF a
Files
- Language/Symantic/Grammar/BinTree.hs +8/−0
- Language/Symantic/Grammar/EBNF.hs +5/−1
- Language/Symantic/Grammar/Error.hs +2/−0
- Language/Symantic/Grammar/Fixity.hs +6/−0
- Language/Symantic/Grammar/Meta.hs +4/−0
- Language/Symantic/Grammar/Operators.hs +8/−0
- Language/Symantic/Grammar/Regular.hs +7/−2
- Language/Symantic/Grammar/Source.hs +3/−0
- Language/Symantic/Grammar/Terminal.hs +8/−1
- stack.yaml +1/−1
- symantic-grammar.cabal +3/−2
Language/Symantic/Grammar/BinTree.hs view
@@ -2,7 +2,15 @@ -- made of applications of tokens. module Language.Symantic.Grammar.BinTree where +import Control.Applicative (Applicative(..))+import Control.Monad (Monad(..))+import Data.Eq (Eq)+import Data.Foldable (Foldable(..))+import Data.Functor (Functor(..), (<$>))+import Data.Monoid (Monoid(..)) import Data.Semigroup (Semigroup(..))+import Data.Traversable (Traversable(..))+import Text.Show (Show) -- * Type 'BinTree' -- | /Binary Tree/.
Language/Symantic/Grammar/EBNF.hs view
@@ -1,8 +1,12 @@ module Language.Symantic.Grammar.EBNF where import Control.Applicative (Applicative(..))-import Data.Semigroup+import Data.Eq (Eq)+import Data.Function (($), (.), id)+import Data.Functor (Functor(..))+import Data.Semigroup (Semigroup(..)) import Data.Text (Text)+import Text.Show (Show(..)) import qualified Data.Text as Text import Language.Symantic.Grammar.Meta
Language/Symantic/Grammar/Error.hs view
@@ -1,6 +1,8 @@ {-# LANGUAGE TypeApplications #-} module Language.Symantic.Grammar.Error where +import Data.Either (Either(..))+import Data.Function (($), (.)) import Data.Proxy (Proxy) -- * Class 'ErrorInj'
Language/Symantic/Grammar/Fixity.hs view
@@ -1,8 +1,14 @@ module Language.Symantic.Grammar.Fixity where import Data.Bool as Bool+import Data.Eq (Eq(..))+import Data.Function ((.))+import Data.Int (Int)+import Data.Maybe (Maybe(..))+import Data.Ord (Ord(..)) import Data.Semigroup import Data.String (IsString(..))+import Text.Show (Show) -- * Type 'Fixity' data Fixity
Language/Symantic/Grammar/Meta.hs view
@@ -2,6 +2,10 @@ {-# LANGUAGE UndecidableInstances #-} module Language.Symantic.Grammar.Meta where +import Data.Either (Either)+import Data.Function (($), const)+import Data.Functor (Functor, (<$>))+ import Language.Symantic.Grammar.Source -- * Type 'Gram_Reader'
Language/Symantic/Grammar/Operators.hs view
@@ -4,7 +4,15 @@ import Control.Applicative (Applicative(..)) import Control.Monad (void)+import Data.Either (Either(..))+import Data.Eq (Eq) import Data.Foldable+import Data.Function (($), (.), flip, id)+import Data.Functor ((<$>))+import Data.Maybe (Maybe(..))+import Data.Ord (Ord(..), Ordering(..))+import Data.Tuple (curry)+import Text.Show (Show, showChar, showParen, showString, showsPrec) import Language.Symantic.Grammar.Fixity import Language.Symantic.Grammar.EBNF
Language/Symantic/Grammar/Regular.hs view
@@ -1,8 +1,13 @@ -- | Symantics for regular grammars. module Language.Symantic.Grammar.Regular where +import Control.Applicative (Applicative(..))+import Data.Foldable (foldr)+import Data.Function (($), flip, id)+import Data.Functor (Functor, (<$>)) import Data.Semigroup (Semigroup(..)) import Data.String (IsString(..))+import qualified Data.List as List import qualified Data.Text as Text import Language.Symantic.Grammar.Meta@@ -93,10 +98,10 @@ (<*.) :: RegL g (a -> b) -> Terminal g a -> RegL g b infixl 4 <*. manyL :: Terminal g a -> RegL g [a]- manyL g' = reverse <$> go g'+ manyL g' = List.reverse <$> go g' where go g = flip (:) <$> go g <*. g <+> empty someL :: Terminal g a -> RegL g [a]- someL g = (\cs c -> cs ++ [c]) <$> manyL g <*. g+ someL g = (\cs c -> cs <> [c]) <$> manyL g <*. g instance Gram_RegL EBNF where Reg f <*. Terminal x = Reg $ f <*> x manyL (Terminal (EBNF g)) = Reg $ EBNF $ \rm _po -> "{" <> g rm (op, SideL) <> "}" where op = infixN0
Language/Symantic/Grammar/Source.hs view
@@ -2,6 +2,9 @@ {-# LANGUAGE TypeFamilies #-} module Language.Symantic.Grammar.Source where +import Data.Eq (Eq)+import Data.Ord (Ord)+import Text.Show (Show) import Data.Functor (Functor) import Data.Typeable (Typeable)
Language/Symantic/Grammar/Terminal.hs view
@@ -2,8 +2,15 @@ -- | Symantics for terminal grammars. module Language.Symantic.Grammar.Terminal where +import Control.Applicative (Applicative(..))+import Data.Bool+import Data.Char (Char)+import Data.Eq (Eq(..))+import Data.Function (($), (.))+import Data.Functor (Functor(..), (<$>)) import Data.Semigroup (Semigroup(..))-import Data.String (IsString(..))+import Data.String (IsString(..), String)+import Text.Show (Show(..)) import qualified Data.Bool as Bool import qualified Data.Char as Char import qualified Data.List as List
stack.yaml view
@@ -1,3 +1,3 @@-resolver: lts-10.5+resolver: lts-12.8 packages: - '.'
symantic-grammar.cabal view
@@ -2,7 +2,7 @@ -- PVP: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.3.0.20180213+version: 0.3.1.20180831 category: Language synopsis: Library for symantic grammars. description: This library defines an embedded DSL for regular or context-free grammars,@@ -21,7 +21,7 @@ build-type: Simple cabal-version: >= 1.24-tested-with: GHC==8.2.2+tested-with: GHC==8.4.3 extra-source-files: stack.yaml extra-tmp-files:@@ -52,6 +52,7 @@ KindSignatures LambdaCase MultiParamTypeClasses+ NoImplicitPrelude OverloadedStrings ScopedTypeVariables StandaloneDeriving