| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell98 |
Descriptive
Description
Descriptive parsers.
- data Description a
- = Unit !a
- | Bounded !Integer !Bound !(Description a)
- | And !(Description a) !(Description a)
- | Or !(Description a) !(Description a)
- | Sequence [Description a]
- | Wrap a (Description a)
- | None
- data Bound
- data Consumer s d a = Consumer {
- consumerDesc :: s -> (Description d, s)
- consumerParse :: s -> (Either (Description d) a, s)
- consumer :: (s -> (Description d, s)) -> (s -> (Either (Description d) a, s)) -> Consumer s d a
- wrap :: (s -> (t -> (Description d, t)) -> (Description d, s)) -> (s -> (t -> (Description d, t)) -> (t -> (Either (Description d) a, t)) -> (Either (Description d) b, s)) -> Consumer t d a -> Consumer s d b
- sequencing :: [Consumer d s a] -> Consumer d s [a]
- consume :: Consumer s d a -> s -> (Either (Description d) a, s)
- describe :: Consumer s d a -> s -> (Description d, s)
Documentation
data Description a Source
Description of a consumable thing.
Constructors
| Unit !a | |
| Bounded !Integer !Bound !(Description a) | |
| And !(Description a) !(Description a) | |
| Or !(Description a) !(Description a) | |
| Sequence [Description a] | |
| Wrap a (Description a) | |
| None |
Instances
| Show a => Show (Description a) | |
| Monoid (Description d) | |
| Monoid a => Monoid (Either (Description d) a) |
The bounds of a many-consumable thing.
Constructors
| NaturalBound !Integer | |
| UnlimitedBound |
A consumer.
Constructors
| Consumer | |
Fields
| |
Instances
| Alternative (Consumer s d) | |
| Functor (Consumer s d) | |
| Applicative (Consumer s d) | |
| Monoid a => Monoid (Consumer s d a) |
consumer :: (s -> (Description d, s)) -> (s -> (Either (Description d) a, s)) -> Consumer s d a Source
Make a consumer.
wrap :: (s -> (t -> (Description d, t)) -> (Description d, s)) -> (s -> (t -> (Description d, t)) -> (t -> (Either (Description d) a, t)) -> (Either (Description d) b, s)) -> Consumer t d a -> Consumer s d b Source
Wrap a consumer with another consumer.
sequencing :: [Consumer d s a] -> Consumer d s [a] Source
Compose contiguous items into one sequence.
consume :: Consumer s d a -> s -> (Either (Description d) a, s) Source
Run a consumer.
describe :: Consumer s d a -> s -> (Description d, s) Source
Describe a consumer.