yi-core-0.19.2: Yi editor core library
Safe HaskellSafe-Inferred
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

Instances details
Monad (Parser s) Source # 
Instance details

Defined in Parser.Incremental

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 #

Functor (Parser s) Source # 
Instance details

Defined in Parser.Incremental

Methods

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

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

MonadFail (Parser s) Source # 
Instance details

Defined in Parser.Incremental

Methods

fail :: String -> Parser s a #

Applicative (Parser s) Source # 
Instance details

Defined in Parser.Incremental

Methods

pure :: a -> Parser s a #

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

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

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

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

Alternative (Parser s) Source # 
Instance details

Defined in Parser.Incremental

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 #

data LogEntry Source #

Instances

Instances details
Show LogEntry Source # 
Instance details

Defined in Parser.Incremental

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