iteratee-parsec-0.0.1: Package allowing parsec parser initerateeSource codeContentsIndex
Text.Parsec.Iteratee.LinkedList
Portabilityportable
Stabilitynone
Maintaineruzytkownik2@gmail.com
Description
Module providing simple implementation based on mutable linked list. It is optimised for longer parsers.
Synopsis
class Monad m => Reference r m where
newRef :: a -> m (r a)
readRef :: r a -> m a
writeRef :: r a -> a -> m ()
modifyRef :: r a -> (a -> m (a, b)) -> m b
data (Monad m, Reference r m, StreamChunk c el) => Cursor r m c el
data (Monad m, Reference r m, StreamChunk c el) => NextCursor r m c el
mkCursor :: (Monad m, Reference r m, StreamChunk c el) => m (Cursor r m c el)
parsecIteratee :: (Monad m, Reference r m, StreamChunk c el) => ParsecT (Cursor r m c el) u (IterateeG c el m) a -> u -> SourceName -> IterateeG c el m (Either ParseError a)
safeParsecIteratee :: (Monad m, Reference r m, StreamChunk c el) => ParsecT (Cursor r m c el) u (IterateeG c el m) a -> u -> SourceName -> IterateeG c el m (Either ParseError a)
Documentation
class Monad m => Reference r m whereSource
Class notifing a reference in monad. Probably should be in separate module.
Methods
newRefSource
::
=> aA new reference | Reads a reference
-> m (r a)
Create new reference
readRefSource
::
=> r aValue hold by reference | Write to reference
-> m a
writeRefSource
::
=> r aNew value
-> a
-> m ()
modifyRefSource
::
=> r aComputation
-> a -> m (a, b)Result of computation
-> m b
Modify the reference. Default implementation is provided but it MUST be overloaded if the reference is atomic to provide an atomic write
show/hide Instances
data (Monad m, Reference r m, StreamChunk c el) => Cursor r m c el Source
Cursor holds current value and reference to possible next cursor
show/hide Instances
(Monad m, Reference r m, StreamChunk c el) => Stream (Cursor r m c el) (IterateeG c el m) el
data (Monad m, Reference r m, StreamChunk c el) => NextCursor r m c el Source
Specify the 3 possible states of next cursor - existence, non-existence and not being evaluated
mkCursor :: (Monad m, Reference r m, StreamChunk c el) => m (Cursor r m c el)Source
Creates new cursor
parsecIterateeSource
:: (Monad m, Reference r m, StreamChunk c el)
=> ParsecT (Cursor r m c el) u (IterateeG c el m) aA user state
-> uSource name
-> SourceName
-> IterateeG c el m (Either ParseError a)
Runs parser. If it suceed the remaining part of stream stands in stream, however if it fails the stream is not in defined state.
safeParsecIterateeSource
:: (Monad m, Reference r m, StreamChunk c el)
=> ParsecT (Cursor r m c el) u (IterateeG c el m) aA user state
-> uSource name
-> SourceName
-> IterateeG c el m (Either ParseError a)
Runs parser. If it suceed the remaining part of stream stands in stream, however if it fails everything stands in stream.
Produced by Haddock version 2.6.0