packages feed

FormalGrammars 0.2.1.0 → 0.2.1.1

raw patch · 2 files changed

+27/−15 lines, 2 filesdep ~ADPfusiondep ~PrimitiveArraydep ~lensPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: ADPfusion, PrimitiveArray, lens, mtl, text, vector

API changes (from Hackage documentation)

- FormalLanguage.CFG.Grammar.Types: _attr :: Rule -> [AttributeFunction]
- FormalLanguage.CFG.Grammar.Types: _getAttr :: AttributeFunction -> String
- FormalLanguage.CFG.Grammar.Types: _getIndexName :: IndexName -> String
- FormalLanguage.CFG.Grammar.Types: _getSteName :: SymbolName -> String
- FormalLanguage.CFG.Grammar.Types: _getSymbolList :: Symbol -> [SynTermEps]
- FormalLanguage.CFG.Grammar.Types: _getTape :: Tape -> Int
- FormalLanguage.CFG.Grammar.Types: _grammarName :: Grammar -> String
- FormalLanguage.CFG.Grammar.Types: _index :: SynTermEps -> [Index]
- FormalLanguage.CFG.Grammar.Types: _indexHere :: Index -> Integer
- FormalLanguage.CFG.Grammar.Types: _indexName :: Index -> IndexName
- FormalLanguage.CFG.Grammar.Types: _indexOp :: Index -> IOP
- FormalLanguage.CFG.Grammar.Types: _indexRange :: Index -> [Integer]
- FormalLanguage.CFG.Grammar.Types: _indexStep :: Index -> Integer
- FormalLanguage.CFG.Grammar.Types: _indices :: Grammar -> Map IndexName Index
- FormalLanguage.CFG.Grammar.Types: _lhs :: Rule -> Symbol
- FormalLanguage.CFG.Grammar.Types: _name :: SynTermEps -> SymbolName
- FormalLanguage.CFG.Grammar.Types: _outside :: Grammar -> DerivedGrammar
- FormalLanguage.CFG.Grammar.Types: _params :: Grammar -> Map IndexName Index
- FormalLanguage.CFG.Grammar.Types: _rhs :: Rule -> [Symbol]
- FormalLanguage.CFG.Grammar.Types: _rules :: Grammar -> Set Rule
- FormalLanguage.CFG.Grammar.Types: _splitK :: SynTermEps -> Integer
- FormalLanguage.CFG.Grammar.Types: _splitN :: SynTermEps -> Integer
- FormalLanguage.CFG.Grammar.Types: _start :: Grammar -> Symbol
- FormalLanguage.CFG.Grammar.Types: _synterms :: Grammar -> Map SymbolName SynTermEps
- FormalLanguage.CFG.Grammar.Types: _synvars :: Grammar -> Map SymbolName SynTermEps
- FormalLanguage.CFG.Grammar.Types: _termvars :: Grammar -> Map SymbolName SynTermEps
- FormalLanguage.CFG.Grammar.Types: _write :: Grammar -> Bool
- FormalLanguage.CFG.Grammar.Types: instance Data AttributeFunction
- FormalLanguage.CFG.Grammar.Types: instance Data DerivedGrammar
- FormalLanguage.CFG.Grammar.Types: instance Data Grammar
- FormalLanguage.CFG.Grammar.Types: instance Data IOP
- FormalLanguage.CFG.Grammar.Types: instance Data Index
- FormalLanguage.CFG.Grammar.Types: instance Data IndexName
- FormalLanguage.CFG.Grammar.Types: instance Data Rule
- FormalLanguage.CFG.Grammar.Types: instance Data Symbol
- FormalLanguage.CFG.Grammar.Types: instance Data SymbolName
- FormalLanguage.CFG.Grammar.Types: instance Data SynTermEps
- FormalLanguage.CFG.Grammar.Types: instance Data Tape
- FormalLanguage.CFG.Grammar.Types: instance Default DerivedGrammar
- FormalLanguage.CFG.Grammar.Types: instance Default Grammar
- FormalLanguage.CFG.Grammar.Types: instance Enum Tape
- FormalLanguage.CFG.Grammar.Types: instance Eq AttributeFunction
- FormalLanguage.CFG.Grammar.Types: instance Eq DerivedGrammar
- FormalLanguage.CFG.Grammar.Types: instance Eq IOP
- FormalLanguage.CFG.Grammar.Types: instance Eq Index
- FormalLanguage.CFG.Grammar.Types: instance Eq IndexName
- FormalLanguage.CFG.Grammar.Types: instance Eq Rule
- FormalLanguage.CFG.Grammar.Types: instance Eq Symbol
- FormalLanguage.CFG.Grammar.Types: instance Eq SymbolName
- FormalLanguage.CFG.Grammar.Types: instance Eq SynTermEps
- FormalLanguage.CFG.Grammar.Types: instance Eq Tape
- FormalLanguage.CFG.Grammar.Types: instance IsString AttributeFunction
- FormalLanguage.CFG.Grammar.Types: instance IsString IndexName
- FormalLanguage.CFG.Grammar.Types: instance IsString SymbolName
- FormalLanguage.CFG.Grammar.Types: instance Monoid Symbol
- FormalLanguage.CFG.Grammar.Types: instance Num Tape
- FormalLanguage.CFG.Grammar.Types: instance Ord AttributeFunction
- FormalLanguage.CFG.Grammar.Types: instance Ord IOP
- FormalLanguage.CFG.Grammar.Types: instance Ord Index
- FormalLanguage.CFG.Grammar.Types: instance Ord IndexName
- FormalLanguage.CFG.Grammar.Types: instance Ord Rule
- FormalLanguage.CFG.Grammar.Types: instance Ord Symbol
- FormalLanguage.CFG.Grammar.Types: instance Ord SymbolName
- FormalLanguage.CFG.Grammar.Types: instance Ord SynTermEps
- FormalLanguage.CFG.Grammar.Types: instance Ord Tape
- FormalLanguage.CFG.Grammar.Types: instance Semigroup Symbol
- FormalLanguage.CFG.Grammar.Types: instance Show AttributeFunction
- FormalLanguage.CFG.Grammar.Types: instance Show DerivedGrammar
- FormalLanguage.CFG.Grammar.Types: instance Show Grammar
- FormalLanguage.CFG.Grammar.Types: instance Show IOP
- FormalLanguage.CFG.Grammar.Types: instance Show Index
- FormalLanguage.CFG.Grammar.Types: instance Show IndexName
- FormalLanguage.CFG.Grammar.Types: instance Show Rule
- FormalLanguage.CFG.Grammar.Types: instance Show Symbol
- FormalLanguage.CFG.Grammar.Types: instance Show SymbolName
- FormalLanguage.CFG.Grammar.Types: instance Show SynTermEps
- FormalLanguage.CFG.Grammar.Types: instance Show Tape
- FormalLanguage.CFG.Grammar.Types: instance Typeable AttributeFunction
- FormalLanguage.CFG.Grammar.Types: instance Typeable DerivedGrammar
- FormalLanguage.CFG.Grammar.Types: instance Typeable Grammar
- FormalLanguage.CFG.Grammar.Types: instance Typeable IOP
- FormalLanguage.CFG.Grammar.Types: instance Typeable Index
- FormalLanguage.CFG.Grammar.Types: instance Typeable IndexName
- FormalLanguage.CFG.Grammar.Types: instance Typeable Rule
- FormalLanguage.CFG.Grammar.Types: instance Typeable Symbol
- FormalLanguage.CFG.Grammar.Types: instance Typeable SymbolName
- FormalLanguage.CFG.Grammar.Types: instance Typeable SynTermEps
- FormalLanguage.CFG.Grammar.Types: instance Typeable Tape
- FormalLanguage.CFG.Parser: _current :: GrammarEnv -> Grammar
- FormalLanguage.CFG.Parser: _emit :: GrammarEnv -> Seq Grammar
- FormalLanguage.CFG.Parser: _env :: GrammarEnv -> Map String Grammar
- FormalLanguage.CFG.Parser: _verbose :: GrammarEnv -> Bool
- FormalLanguage.CFG.Parser: instance (Functor m, MonadPlus m) => Alternative (GrammarParser m)
- FormalLanguage.CFG.Parser: instance (Monad m, Functor m) => Applicative (GrammarParser m)
- FormalLanguage.CFG.Parser: instance (MonadPlus m, CharParsing m) => CharParsing (GrammarParser m)
- FormalLanguage.CFG.Parser: instance (MonadPlus m, CharParsing m) => TokenParsing (GrammarParser m)
- FormalLanguage.CFG.Parser: instance (MonadPlus m, Parsing m) => Parsing (GrammarParser m)
- FormalLanguage.CFG.Parser: instance Default GrammarEnv
- FormalLanguage.CFG.Parser: instance Functor m => Functor (GrammarParser m)
- FormalLanguage.CFG.Parser: instance Monad m => Monad (GrammarParser m)
- FormalLanguage.CFG.Parser: instance Monad m => MonadState GrammarEnv (GrammarParser m)
- FormalLanguage.CFG.Parser: instance MonadPlus m => MonadPlus (GrammarParser m)
- FormalLanguage.CFG.Parser: instance MonadState GrammarEnv (Unlined (GrammarParser Parser))
- FormalLanguage.CFG.Parser: instance Show GrammarEnv
- FormalLanguage.CFG.Parser: runGrammarParser :: GrammarParser m a -> StateT GrammarEnv m a
- FormalLanguage.CFG.TH: instance Default CfgState
+ FormalLanguage.CFG.Grammar.Types: [_attr] :: Rule -> [AttributeFunction]
+ FormalLanguage.CFG.Grammar.Types: [_getAttr] :: AttributeFunction -> String
+ FormalLanguage.CFG.Grammar.Types: [_getIndexName] :: IndexName -> String
+ FormalLanguage.CFG.Grammar.Types: [_getSteName] :: SymbolName -> String
+ FormalLanguage.CFG.Grammar.Types: [_getSymbolList] :: Symbol -> [SynTermEps]
+ FormalLanguage.CFG.Grammar.Types: [_getTape] :: Tape -> Int
+ FormalLanguage.CFG.Grammar.Types: [_grammarName] :: Grammar -> String
+ FormalLanguage.CFG.Grammar.Types: [_indexHere] :: Index -> Integer
+ FormalLanguage.CFG.Grammar.Types: [_indexName] :: Index -> IndexName
+ FormalLanguage.CFG.Grammar.Types: [_indexOp] :: Index -> IOP
+ FormalLanguage.CFG.Grammar.Types: [_indexRange] :: Index -> [Integer]
+ FormalLanguage.CFG.Grammar.Types: [_indexStep] :: Index -> Integer
+ FormalLanguage.CFG.Grammar.Types: [_index] :: SynTermEps -> [Index]
+ FormalLanguage.CFG.Grammar.Types: [_indices] :: Grammar -> Map IndexName Index
+ FormalLanguage.CFG.Grammar.Types: [_lhs] :: Rule -> Symbol
+ FormalLanguage.CFG.Grammar.Types: [_name] :: SynTermEps -> SymbolName
+ FormalLanguage.CFG.Grammar.Types: [_outside] :: Grammar -> DerivedGrammar
+ FormalLanguage.CFG.Grammar.Types: [_params] :: Grammar -> Map IndexName Index
+ FormalLanguage.CFG.Grammar.Types: [_rhs] :: Rule -> [Symbol]
+ FormalLanguage.CFG.Grammar.Types: [_rules] :: Grammar -> Set Rule
+ FormalLanguage.CFG.Grammar.Types: [_splitK] :: SynTermEps -> Integer
+ FormalLanguage.CFG.Grammar.Types: [_splitN] :: SynTermEps -> Integer
+ FormalLanguage.CFG.Grammar.Types: [_start] :: Grammar -> Symbol
+ FormalLanguage.CFG.Grammar.Types: [_synterms] :: Grammar -> Map SymbolName SynTermEps
+ FormalLanguage.CFG.Grammar.Types: [_synvars] :: Grammar -> Map SymbolName SynTermEps
+ FormalLanguage.CFG.Grammar.Types: [_termvars] :: Grammar -> Map SymbolName SynTermEps
+ FormalLanguage.CFG.Grammar.Types: [_write] :: Grammar -> Bool
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.AttributeFunction
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.DerivedGrammar
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.Grammar
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.IOP
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.Index
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.IndexName
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.Rule
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.Symbol
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.SymbolName
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.SynTermEps
+ FormalLanguage.CFG.Grammar.Types: instance Data.Data.Data FormalLanguage.CFG.Grammar.Types.Tape
+ FormalLanguage.CFG.Grammar.Types: instance Data.Default.Class.Default FormalLanguage.CFG.Grammar.Types.DerivedGrammar
+ FormalLanguage.CFG.Grammar.Types: instance Data.Default.Class.Default FormalLanguage.CFG.Grammar.Types.Grammar
+ FormalLanguage.CFG.Grammar.Types: instance Data.Semigroup.Semigroup FormalLanguage.CFG.Grammar.Types.Symbol
+ FormalLanguage.CFG.Grammar.Types: instance Data.String.IsString FormalLanguage.CFG.Grammar.Types.AttributeFunction
+ FormalLanguage.CFG.Grammar.Types: instance Data.String.IsString FormalLanguage.CFG.Grammar.Types.IndexName
+ FormalLanguage.CFG.Grammar.Types: instance Data.String.IsString FormalLanguage.CFG.Grammar.Types.SymbolName
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Base.Monoid FormalLanguage.CFG.Grammar.Types.Symbol
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.AttributeFunction
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.DerivedGrammar
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.IOP
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.Index
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.IndexName
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.Rule
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.Symbol
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.SymbolName
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.SynTermEps
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Eq FormalLanguage.CFG.Grammar.Types.Tape
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Ord FormalLanguage.CFG.Grammar.Types.AttributeFunction
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Ord FormalLanguage.CFG.Grammar.Types.IOP
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Ord FormalLanguage.CFG.Grammar.Types.Index
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Ord FormalLanguage.CFG.Grammar.Types.IndexName
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Ord FormalLanguage.CFG.Grammar.Types.Rule
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Ord FormalLanguage.CFG.Grammar.Types.Symbol
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Ord FormalLanguage.CFG.Grammar.Types.SymbolName
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Ord FormalLanguage.CFG.Grammar.Types.SynTermEps
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Classes.Ord FormalLanguage.CFG.Grammar.Types.Tape
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Enum.Enum FormalLanguage.CFG.Grammar.Types.Tape
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Num.Num FormalLanguage.CFG.Grammar.Types.Tape
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.AttributeFunction
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.DerivedGrammar
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.Grammar
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.IOP
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.Index
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.IndexName
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.Rule
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.Symbol
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.SymbolName
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.SynTermEps
+ FormalLanguage.CFG.Grammar.Types: instance GHC.Show.Show FormalLanguage.CFG.Grammar.Types.Tape
+ FormalLanguage.CFG.Grammar.Util: isLinear :: Grammar -> Bool
+ FormalLanguage.CFG.Grammar.Util: isRightLinear :: Grammar -> Bool
+ FormalLanguage.CFG.Parser: [_current] :: GrammarEnv -> Grammar
+ FormalLanguage.CFG.Parser: [_emit] :: GrammarEnv -> Seq Grammar
+ FormalLanguage.CFG.Parser: [_env] :: GrammarEnv -> Map String Grammar
+ FormalLanguage.CFG.Parser: [_verbose] :: GrammarEnv -> Bool
+ FormalLanguage.CFG.Parser: [runGrammarParser] :: GrammarParser m a -> StateT GrammarEnv m a
+ FormalLanguage.CFG.Parser: instance (GHC.Base.MonadPlus m, Text.Parser.Char.CharParsing m) => Text.Parser.Char.CharParsing (FormalLanguage.CFG.Parser.GrammarParser m)
+ FormalLanguage.CFG.Parser: instance (GHC.Base.MonadPlus m, Text.Parser.Char.CharParsing m) => Text.Parser.Token.TokenParsing (FormalLanguage.CFG.Parser.GrammarParser m)
+ FormalLanguage.CFG.Parser: instance (GHC.Base.MonadPlus m, Text.Parser.Combinators.Parsing m) => Text.Parser.Combinators.Parsing (FormalLanguage.CFG.Parser.GrammarParser m)
+ FormalLanguage.CFG.Parser: instance Control.Monad.State.Class.MonadState FormalLanguage.CFG.Parser.GrammarEnv (Text.Parser.Token.Unlined (FormalLanguage.CFG.Parser.GrammarParser Text.Trifecta.Parser.Parser))
+ FormalLanguage.CFG.Parser: instance Data.Default.Class.Default FormalLanguage.CFG.Parser.GrammarEnv
+ FormalLanguage.CFG.Parser: instance GHC.Base.Functor m => GHC.Base.Functor (FormalLanguage.CFG.Parser.GrammarParser m)
+ FormalLanguage.CFG.Parser: instance GHC.Base.Monad m => Control.Monad.State.Class.MonadState FormalLanguage.CFG.Parser.GrammarEnv (FormalLanguage.CFG.Parser.GrammarParser m)
+ FormalLanguage.CFG.Parser: instance GHC.Base.Monad m => GHC.Base.Applicative (FormalLanguage.CFG.Parser.GrammarParser m)
+ FormalLanguage.CFG.Parser: instance GHC.Base.Monad m => GHC.Base.Monad (FormalLanguage.CFG.Parser.GrammarParser m)
+ FormalLanguage.CFG.Parser: instance GHC.Base.MonadPlus m => GHC.Base.Alternative (FormalLanguage.CFG.Parser.GrammarParser m)
+ FormalLanguage.CFG.Parser: instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (FormalLanguage.CFG.Parser.GrammarParser m)
+ FormalLanguage.CFG.Parser: instance GHC.Show.Show FormalLanguage.CFG.Parser.GrammarEnv
+ FormalLanguage.CFG.TH: instance Data.Default.Class.Default FormalLanguage.CFG.TH.CfgState

Files

FormalGrammars.cabal view
@@ -1,5 +1,5 @@ name:           FormalGrammars-version:        0.2.1.0+version:        0.2.1.1 author:         Christian Hoener zu Siederdissen, 2013-2015 copyright:      Christian Hoener zu Siederdissen, 2013-2015 homepage:       https://github.com/choener/FormalGrammars@@ -11,7 +11,7 @@ build-type:     Simple stability:      experimental cabal-version:  >= 1.10.0-tested-with:    GHC == 7.8.4, GHC == 7.10.1+tested-with:    GHC == 7.8.4, GHC == 7.10.2 synopsis:       (Context-free) grammars in formal language theory description:                 <http://www.bioinf.uni-leipzig.de/Software/gADP/ generalized Algebraic Dynamic Programming>@@ -69,23 +69,23 @@  library   build-depends: base                  >= 4.7     && < 4.9-               , ADPfusion             >= 0.4.1   && < 0.4.2-               , ansi-wl-pprint        == 0.6.7.*-               , bytestring            == 0.10.*+               , ADPfusion             >= 0.4.1   && < 0.5.1+               , ansi-wl-pprint        >= 0.6.7   && < 0.6.8+               , bytestring            >= 0.10    && < 0.11                , containers-               , data-default          == 0.5.*-               , HaTeX                 == 3.16.*-               , lens                  == 4.*-               , mtl                   == 2.*+               , data-default          >= 0.5     && < 0.6+               , HaTeX                 >= 3.16    && < 3.17+               , lens                  >= 4.0     && < 5.0+               , mtl                   >= 2.0     && < 3.0                , parsers               >= 0.12    && < 0.13-               , PrimitiveArray        >= 0.6.0   && < 0.6.2+               , PrimitiveArray        >= 0.6.0   && < 0.7.1                , semigroups            >= 0.16    && < 0.17                , template-haskell-               , text                  == 1.*+               , text                  >= 1.0     && < 1.3                , transformers          >= 0.3     && < 0.5-               , trifecta              == 1.5.*-               , unordered-containers  == 0.2.*-               , vector                == 0.10.*+               , trifecta              >= 1.5     && < 1.6+               , unordered-containers  >= 0.2     && < 0.3+               , vector                >= 0.10    && < 0.12   exposed-modules:     FormalLanguage     FormalLanguage.CFG@@ -133,7 +133,7 @@ executable GrammarPP   build-depends: base                , ansi-wl-pprint-               , cmdargs          == 0.10.*+               , cmdargs          >= 0.10   && < 0.11                , FormalGrammars   hs-source-dirs:     src
FormalLanguage/CFG/Grammar/Util.hs view
@@ -134,3 +134,15 @@   isll (Rule l _ []) = isSyntactic l   isll (Rule l _ rs) = isSyntactic l && (allOf folded (not . isSyntactic) $ tail rs) -- at most one non-terminal +isRightLinear :: Grammar -> Bool+isRightLinear g = allOf folded isrl $ g^.rules where+  isrl :: Rule -> Bool+  isrl (Rule l _ []) = isSyntactic l+  isrl (Rule l _ rs) = isSyntactic l && (allOf folded (not . isSyntactic) $ init rs)++isLinear :: Grammar -> Bool+isLinear g = allOf folded isl $ g^.rules where+  isl :: Rule -> Bool+  isl (Rule l _ []) = isSyntactic l+  isl (Rule l _ rs) = isSyntactic l && (1 >= (length . filter isSyntactic $ rs))+