| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Kleene.Classes
Synopsis
- class (BoundedJoinSemiLattice k, Semigroup k, Monoid k) => Kleene c k | k -> c where
- oneof :: (Kleene c k, Foldable f) => f c -> k
- class Kleene c k => FiniteKleene c k | k -> c where
- class Derivate c k | k -> c where
- class Match c k | k -> c where
- class Match c k => Equivalent c k | k -> c where
- class Derivate c k => TransitionMap c k | k -> c where
- class Complement c k | k -> c where
Documentation
class (BoundedJoinSemiLattice k, Semigroup k, Monoid k) => Kleene c k | k -> c where #
Methods
Empty regex. Doesn't accept anything.
Empty string. Note: different than empty
Single character
Concatenation.
Union.
Kleene star
class Kleene c k => FiniteKleene c k | k -> c where #
Methods
everything :: k #
Everything. \(\Sigma^\star\).
.charRange a z = ^[a-z]$
Generalisation of charRange.
.$. Every character except new line \n@.
Any character. Note: different than dot!
class Derivate c k | k -> c where #
Methods
Does language contain an empty string?
Derivative of a language.
class Match c k | k -> c where #
An f can be used to match on the input.
Minimal complete definition
Instances
| (Ord c, Enum c) => Match c (ERE c) # | |
Defined in Kleene.ERE | |
| (Eq c, Enum c, Bounded c) => Match c (M c) # | |
Defined in Kleene.Monad | |
| (Ord c, Enum c, Bounded c) => Match c (RE c) # | |
| Ord c => Match c (DFA c) # | Run Because we have analysed a language, in some cases we can determine an input
without traversing all of the input.
That's not the cases with
Holds:
all (match (fromRE r)) $ take 10 $ RE.generate (curry QC.choose) 42 (r :: RE.RE Char) |
Defined in Kleene.DFA | |
| Match c (r c) => Match c (Equiv r c) # | |
Defined in Kleene.Equiv | |
class Match c k => Equivalent c k | k -> c where #
Minimal complete definition
Methods
equivalent :: k -> k -> Bool #
Instances
| (Ord c, Enum c, Bounded c) => Equivalent c (ERE c) # | |
Defined in Kleene.ERE Methods equivalent :: ERE c -> ERE c -> Bool # | |
| (Ord c, Enum c, Bounded c) => Equivalent c (RE c) # | |
| Equivalent c (r c) => Equivalent c (Equiv r c) # | |
Defined in Kleene.Equiv Methods equivalent :: Equiv r c -> Equiv r c -> Bool # | |
class Derivate c k => TransitionMap c k | k -> c where #
Transition map.
Minimal complete definition
Methods
transitionMap :: k -> Map k (SF c k) #
class Complement c k | k -> c where #
Minimal complete definition
Methods
complement :: k -> k #
Instances
| Complement c (ERE c) # | |
Defined in Kleene.ERE Methods complement :: ERE c -> ERE c # | |
| Complement c (DFA c) # | Complement DFA. Complement of
|
Defined in Kleene.DFA Methods complement :: DFA c -> DFA c # | |
| Complement c (r c) => Complement c (Equiv r c) # | |
Defined in Kleene.Equiv Methods complement :: Equiv r c -> Equiv r c # | |