Safe Haskell | None |
---|---|
Language | Haskell2010 |
Everything in this module is unsafe and can lead to nondeterministic output or segfaults if used incorrectly.
Types
newtype Parser :: forall (r :: RuntimeRep). Type -> Type -> TYPE r -> Type where Source #
A non-resumable parser.
Parser | |
|
Instances
Functions
cursor :: Parser e s Int Source #
Get the current offset into the chunk. Using this makes
it possible to observe the internal difference between Bytes
that refer to equivalent slices. Be careful.
expose :: Parser e s ByteArray Source #
Return the byte array being parsed. This includes bytes that preceed the current offset and may include bytes that go beyond the length. This is somewhat dangerous, so only use this is you know what you're doing.
unconsume :: Int -> Parser e s () Source #
Move the cursor back by n
bytes. Precondition: you
must have previously consumed at least n
bytes.
jump :: Int -> Parser e s () Source #
Set the position to the given index. Precondition: the index
must be valid. It should be the result of an earlier call to
cursor
.
uneffectful :: (Bytes -> Result e a) -> Parser e s a Source #