Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.Symantic.Grammar.Regular
Description
Symantics for regular grammars.
Type Reg
Left or right regular grammar.
Instances
Gram_Error err g => Gram_Error err (Reg lr g) Source # | |
Gram_State st g => Gram_State st (Reg lr g) Source # | |
Gram_Reader st g => Gram_Reader st (Reg lr g) Source # | |
ContextFreeOf (Reg lr) Source # | |
Functor g => Functor (Reg lr g) Source # | |
Gram_RuleEBNF g => Gram_RuleEBNF (Reg SideL g) Source # | |
Gram_RuleEBNF g => Gram_RuleEBNF (Reg SideR g) Source # | |
Gram_Rule g => Gram_Rule (Reg lr g) Source # | |
Gram_Terminal g => Gram_Terminal (Reg lr g) Source # | |
(Functor g, Gram_Alt g, Gram_RegL g) => Gram_RegL (Reg SideL g) Source # | |
(Functor g, Gram_Alt g, Gram_RegR g) => Gram_RegR (Reg SideR g) Source # | |
Gram_Try g => Gram_Try (Reg lr g) Source # | |
Gram_Alt g => Gram_Alt (Reg lr g) Source # | |
IsString (g a) => IsString (Reg lr g a) Source # | |
reg_of_Terminal :: Terminal g a -> Reg lr g a Source #
Class Gram_Alt
class Gram_Alt g where Source #
Like Alternative
but without the Applicative
super-class,
because a regular grammar is not closed under Applicative
.
Type Gram_Try
class Gram_Try g where Source #
Explicit backtracking.
To get more accurate error messages,
it is helpful to backtrack (put try
constructors)
only when the grammar actually has another alternative
that could match, instead of always backtracking
all previous alternatives, as in: try
a
<+>
b
Minimal complete definition
Class Gram_RegR
class (Functor g, Gram_Alt g) => Gram_RegR g where Source #
Symantics for right regular grammars.
Minimal complete definition