| Copyright | (c) Ogma Project 2016 |
|---|---|
| License | MIT |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Text.Ogmarkup.Private.Generator
- 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 Generators
Arguments
| :: 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 Generators
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.
Arguments
| :: (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.