License | BSD-3-Clause |
---|---|
Maintainer | Jamie Willis |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
This module contains the core types of components that make up the underlying machinery for compiled code.
Since: 1.4.0.0
Documentation
type family Func (rs :: [Type]) s o a x where ... Source #
A Func
is a Subroutine#
augmented with extra arguments with which to handle over
the required free-registers of the parser. These are registers that are not created
by the parser, but are used to execute it.
Since: 1.4.0.0
Func '[] s o a x = Subroutine# s o a x | |
Func (r ': rs) s o a x = STRef s r -> Func rs s o a x |
type Subroutine# s o a x Source #
= Cont# s o a x | What to do when this parser returns |
-> Rep o | The input on entry to the call |
-> Handler# s o a | How to handle failure within the call |
-> ST s (Maybe a) |
Subroutine#
represents top-level parsers, which require a return continuation,
input, an error handler in order to produce (or contribute to) a result of type a
.
Since: 1.4.0.0