License | BSD-3-Clause |
---|---|
Maintainer | Jamie Willis |
Stability | stable |
Safe Haskell | None |
Language | Haskell2010 |
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, String
s 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 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 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 # | |
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 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 |