yi-core-0.14.0: Yi editor core library

Safe HaskellSafe
LanguageHaskell2010

Parser.Incremental

Synopsis

Documentation

type Process token result = Zip token (result :< ()) Source #

recoverWith :: Parser s a -> Parser s a Source #

Parse the same thing as the argument, but will be used only as backup. ie, it will be used only if disjuncted with a failing parser.

symbol :: forall s. (s -> Bool) -> Parser s s Source #

eof :: forall s. Parser s () Source #

testNext :: (Maybe s -> Bool) -> Parser s () Source #

run :: Process s a -> [s] -> (a, [String]) Source #

Run a process (in case you do not need the incremental interface)

mkProcess :: forall s a. Parser s a -> Process s a Source #

Make a parser into a process.

profile :: Steps s r -> Profile Source #

pushSyms :: forall s r. [s] -> Zip s r -> Zip s r Source #

Push some symbols.

pushEof :: forall s r. Zip s r -> Zip s r Source #

Push eof

evalL :: forall s output. Zip s output -> Zip s output Source #

evalR :: Zip token (a :< rest) -> (a, [String]) Source #

feedZ :: Maybe [s] -> Zip s r -> Zip s r Source #

data Parser s a where Source #

Parser specification

Constructors

Look :: Parser s a -> (s -> Parser s a) -> Parser s a 
Yuck :: Parser s a -> Parser s a 
Enter :: String -> Parser s a -> Parser s a 

Instances

Monad (Parser s) Source # 

Methods

(>>=) :: Parser s a -> (a -> Parser s b) -> Parser s b #

(>>) :: Parser s a -> Parser s b -> Parser s b #

return :: a -> Parser s a #

fail :: String -> Parser s a #

Functor (Parser s) Source # 

Methods

fmap :: (a -> b) -> Parser s a -> Parser s b #

(<$) :: a -> Parser s b -> Parser s a #

Applicative (Parser s) Source # 

Methods

pure :: a -> Parser s a #

(<*>) :: Parser s (a -> b) -> Parser s a -> Parser s b #

(*>) :: Parser s a -> Parser s b -> Parser s b #

(<*) :: Parser s a -> Parser s b -> Parser s a #

Alternative (Parser s) Source # 

Methods

empty :: Parser s a #

(<|>) :: Parser s a -> Parser s a -> Parser s a #

some :: Parser s a -> Parser s [a] #

many :: Parser s a -> Parser s [a] #

countWidth :: Zip s r -> Int Source #

fullLog :: Zip s output -> ([String], Tree LogEntry) Source #

evalL' :: Zip s output -> Zip s output Source #