parsec-2.0.0.1: Monadic parser combinators

Copyright(c) Daan Leijen 1999-2001
LicenseBSD-style (see the file libraries/parsec/LICENSE)
Maintainerdaan@cs.uu.nl
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Text.ParserCombinators.Parsec.Prim

Description

The primitive parser combinators.

Synopsis

Documentation

(<?>) :: GenParser tok st a -> String -> GenParser tok st a infix 0 Source

(<|>) :: GenParser tok st a -> GenParser tok st a -> GenParser tok st a infixr 1 Source

type Parser a = GenParser Char () a Source

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 a Source

parse :: GenParser tok () a -> SourceName -> [tok] -> Either ParseError a Source

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

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

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 a Source

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

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 a Source

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

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

pzero :: GenParser tok st a Source

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