Copyright | (c) Ogma Project 2016 |
---|---|
License | MIT |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
- newtype Generator c a x = Generator {}
- runGenerator :: Monoid a => Generator c a x -> a
- apply :: Monoid a => Template a -> Generator c a x -> Generator c a ()
- reset :: Generator c a ()
- raw :: Monoid a => a -> Generator c a ()
- atom :: forall c a. (Monoid a, GenConf c a) => Atom a -> Generator c a ()
- maybeAtom :: (Monoid a, GenConf c a) => Maybe (Atom a) -> Generator c a ()
- atoms :: (Monoid a, GenConf c a) => [Atom a] -> Generator c a ()
- format :: forall c a. (Monoid a, GenConf c a) => Format a -> Generator c a ()
- formats :: (Monoid a, GenConf c a) => [Format a] -> Generator c a ()
- reply :: forall c a. (Monoid a, GenConf c a) => Maybe (Atom a) -> Maybe (Atom a) -> Reply a -> Generator c a ()
- component :: forall c a. (Monoid a, GenConf c a) => Bool -> Bool -> Component a -> Generator c a ()
- paragraph :: forall c a. (Monoid a, GenConf c a) => Paragraph a -> Generator c a ()
- paragraphs :: (Monoid a, GenConf c a) => [Paragraph a] -> Generator c a ()
- section :: forall c a. (Monoid a, GenConf c a) => Section a -> Generator c a ()
- sections :: (Monoid a, GenConf c a) => [Section a] -> Generator c a ()
- document :: forall c a. (Monoid a, GenConf c a) => Document a -> Generator c a ()
The Generator
Monad
Low-level Generator
s
:: Monoid a | |
=> Template a | The |
-> Generator c a x | The |
-> Generator c a () |
Apply a template to the result of a given Generator
before appending it
to the previously generated output.
reset :: Generator c a () Source #
Forget about the past and consider the next Atom
as the
first to be processed.
Append a new sub-output to the generated output.
AST Processing Generator
s
atoms :: (Monoid a, GenConf c a) => [Atom a] -> Generator c a () Source #
Process a sequence of Atom
.
format :: forall c a. (Monoid a, GenConf c a) => Format a -> Generator c a () Source #
Process a Format
.
formats :: (Monoid a, GenConf c a) => [Format a] -> Generator c a () Source #
Process a sequence of Format
.
reply :: forall c a. (Monoid a, GenConf c a) => Maybe (Atom a) -> Maybe (Atom a) -> Reply a -> Generator c a () Source #
Process a Reply
.
:: (Monoid a, GenConf c a) | |
=> Bool | Was the last component a piece of dialog? |
-> Bool | Will the next component be a piece of dialog? |
-> Component a | The current component to process |
-> Generator c a () |
Process a Component
.
paragraphs :: (Monoid a, GenConf c a) => [Paragraph a] -> Generator c a () Source #
Process a sequence of Paragraph
.
section :: forall c a. (Monoid a, GenConf c a) => Section a -> Generator c a () Source #
Process a Section
.