parsec-2.1.0.1: Monadic parser combinators

Portabilityportable
Stabilityprovisional
Maintainerdaan@cs.uu.nl

Text.ParserCombinators.Parsec.Prim

Description

The primitive parser combinators.

Synopsis

Documentation

(<?>) :: GenParser tok st a -> String -> GenParser tok st aSource

(<|>) :: GenParser tok st a -> GenParser tok st a -> GenParser tok st aSource

data GenParser tok st a Source

Instances

Monad (GenParser tok st) 
Functor (GenParser tok st) 
MonadPlus (GenParser tok st) 

runParser :: GenParser tok st a -> st -> SourceName -> [tok] -> Either ParseError aSource

parseTest :: Show a => GenParser tok () a -> [tok] -> IO ()Source

token :: (tok -> String) -> (tok -> SourcePos) -> (tok -> Maybe a) -> GenParser tok st aSource

tokens :: Eq tok => ([tok] -> String) -> (SourcePos -> [tok] -> SourcePos) -> [tok] -> GenParser tok st [tok]Source

tokenPrim :: (tok -> String) -> (SourcePos -> tok -> [tok] -> SourcePos) -> (tok -> Maybe a) -> GenParser tok st aSource

tokenPrimEx :: (tok -> String) -> (SourcePos -> tok -> [tok] -> SourcePos) -> Maybe (SourcePos -> tok -> [tok] -> st -> st) -> (tok -> Maybe a) -> GenParser tok st aSource

The most primitive token recogniser. The expression tokenPrimEx show nextpos mbnextstate test, recognises tokens when test returns Just x (and returns the value x). Tokens are shown in error messages using show. The position is calculated using nextpos, and finally, mbnextstate, can hold a function that updates the user state on every token recognised (nice to count tokens :-). The function is packed into a Maybe type for performance reasons.

try :: GenParser tok st a -> GenParser tok st aSource

label :: GenParser tok st a -> String -> GenParser tok st aSource

labels :: GenParser tok st a -> [String] -> GenParser tok st aSource

many :: GenParser tok st a -> GenParser tok st [a]Source

skipMany :: GenParser tok st a -> GenParser tok st ()Source

setState :: st -> GenParser tok st ()Source

updateState :: (st -> st) -> GenParser tok st ()Source

getInput :: GenParser tok st [tok]Source

setInput :: [tok] -> GenParser tok st ()Source

data State tok st Source

Constructors

State 

Fields

stateInput :: [tok]
 
statePos :: !SourcePos
 
stateUser :: !st
 

setParserState :: State tok st -> GenParser tok st (State tok st)Source