| License | BSD-3-Clause |
|---|---|
| Maintainer | Jamie Willis |
| Stability | stable |
| Safe Haskell | None |
| Language | Haskell2010 |
Parsley.InputExtras
Description
This module exports the Stream datatype, which can be used as an infinite input to a
parser. It also exports Text16 and CharList, which can be wrapped around
Text and String respectively to force them to be parsed faithfully to their
representation. By default, Strings are converted to character arrays for performance,
but CharList will be uncoverted. On the other hand, Text16 enables a faster, but
potentially less general processing of Text data by assuming all characters
are exactly 16-bits in width.
Since: 0.1.0.0
Documentation
An input type that represents an infinite stream of input characters.
Since: 0.1.0.0
Instances
| PositionOps Stream Source # | |
Defined in Parsley.Internal.Backend.Machine.InputOps | |
| InputPrep Stream Source # | |
| LogHandler Stream Source # | |
| RecBuilder Stream Source # | |
Defined in Parsley.Internal.Backend.Machine.Ops Methods buildIter :: ReturnOps Stream => Ctx s Stream a -> MVar Void -> Machine s Stream '[] One Void a -> (Code (Rep Stream) -> Code (Handler s Stream a)) -> Code (Rep Stream) -> Code (ST s (Maybe a)) Source # buildRec :: forall (rs :: [Type]) s a r. Regs rs -> Ctx s Stream a -> Machine s Stream '[] One r a -> Code (Func rs s Stream a r) Source # | |
| JoinBuilder Stream Source # | |
Defined in Parsley.Internal.Backend.Machine.Ops | |
| ReturnOps Stream Source # | |
| ContOps Stream Source # | |
| HandlerOps Stream Source # | |
| Input Stream Source # | |
Defined in Parsley.Internal.Backend.Machine | |
By wrapping a regular String with this newtype, Parsley will not preprocess it into
an array of characters, instead using regular pattern matching for the implementation.
Since: 0.1.0.0
Instances
| PositionOps CharList Source # | |
Defined in Parsley.Internal.Backend.Machine.InputOps | |
| InputPrep CharList Source # | |
| LogHandler CharList Source # | |
| RecBuilder CharList Source # | |
Defined in Parsley.Internal.Backend.Machine.Ops Methods buildIter :: ReturnOps CharList => Ctx s CharList a -> MVar Void -> Machine s CharList '[] One Void a -> (Code (Rep CharList) -> Code (Handler s CharList a)) -> Code (Rep CharList) -> Code (ST s (Maybe a)) Source # buildRec :: forall (rs :: [Type]) s a r. Regs rs -> Ctx s CharList a -> Machine s CharList '[] One r a -> Code (Func rs s CharList a r) Source # | |
| JoinBuilder CharList Source # | |
Defined in Parsley.Internal.Backend.Machine.Ops | |
| ReturnOps CharList Source # | |
| ContOps CharList Source # | |
| HandlerOps CharList Source # | |
Defined in Parsley.Internal.Backend.Machine.Ops | |
| Input CharList Source # | |
Defined in Parsley.Internal.Backend.Machine | |
By wrapping a regular Text input with this newtype, Parsley will assume that all
of the characters fit into exactly one 16-bit chunk. This allows the consumption of
characters in the datatype to be consumed much faster, but does not support multi-word
characters.
Since: 0.1.0.0
Instances
| PositionOps Text16 Source # | |
Defined in Parsley.Internal.Backend.Machine.InputOps | |
| InputPrep Text16 Source # | |
| LogHandler Text16 Source # | |
| RecBuilder Text16 Source # | |
Defined in Parsley.Internal.Backend.Machine.Ops Methods buildIter :: ReturnOps Text16 => Ctx s Text16 a -> MVar Void -> Machine s Text16 '[] One Void a -> (Code (Rep Text16) -> Code (Handler s Text16 a)) -> Code (Rep Text16) -> Code (ST s (Maybe a)) Source # buildRec :: forall (rs :: [Type]) s a r. Regs rs -> Ctx s Text16 a -> Machine s Text16 '[] One r a -> Code (Func rs s Text16 a r) Source # | |
| JoinBuilder Text16 Source # | |
Defined in Parsley.Internal.Backend.Machine.Ops | |
| ReturnOps Text16 Source # | |
| ContOps Text16 Source # | |
| HandlerOps Text16 Source # | |
| Input Text16 Source # | |
Defined in Parsley.Internal.Backend.Machine | |