-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Monadic parser combinators -- -- Parsec is designed from scratch as an industrial-strength parser -- library. It is simple, safe, well documented (on the package -- homepage), has extensive libraries and good error messages, and is -- also fast. @package parsec @version 2.0 -- | Textual source positions. module Text.ParserCombinators.Parsec.Pos type SourceName = String type Line = Int type Column = Int data SourcePos sourceLine :: SourcePos -> Line sourceColumn :: SourcePos -> Column sourceName :: SourcePos -> SourceName incSourceLine :: SourcePos -> Line -> SourcePos incSourceColumn :: SourcePos -> Column -> SourcePos setSourceLine :: SourcePos -> Line -> SourcePos setSourceColumn :: SourcePos -> Column -> SourcePos setSourceName :: SourcePos -> SourceName -> SourcePos newPos :: SourceName -> Line -> Column -> SourcePos initialPos :: SourceName -> SourcePos updatePosChar :: SourcePos -> Char -> SourcePos updatePosString :: SourcePos -> String -> SourcePos instance Eq SourcePos instance Ord SourcePos instance Show SourcePos -- | Parse errors module Text.ParserCombinators.Parsec.Error data Message SysUnExpect :: !String -> Message UnExpect :: !String -> Message Expect :: !String -> Message Message :: !String -> Message messageString :: Message -> String messageCompare :: Message -> Message -> Ordering messageEq :: Message -> Message -> Bool data ParseError errorPos :: ParseError -> SourcePos errorMessages :: ParseError -> [Message] errorIsUnknown :: ParseError -> Bool -- | Language independent show function showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String newErrorMessage :: Message -> SourcePos -> ParseError newErrorUnknown :: SourcePos -> ParseError addErrorMessage :: Message -> ParseError -> ParseError setErrorPos :: SourcePos -> ParseError -> ParseError setErrorMessage :: Message -> ParseError -> ParseError mergeError :: ParseError -> ParseError -> ParseError instance Show ParseError -- | The primitive parser combinators. module Text.ParserCombinators.Parsec.Prim (>) :: GenParser tok st a -> String -> GenParser tok st a (<|>) :: GenParser tok st a -> GenParser tok st a -> GenParser tok st a type Parser a = GenParser Char () a data GenParser tok st a runParser :: GenParser tok st a -> st -> SourceName -> [tok] -> Either ParseError a parse :: GenParser tok () a -> SourceName -> [tok] -> Either ParseError a parseFromFile :: Parser a -> SourceName -> IO (Either ParseError a) parseTest :: (Show a) => GenParser tok () a -> [tok] -> IO () token :: (tok -> String) -> (tok -> SourcePos) -> (tok -> Maybe a) -> GenParser tok st a tokens :: (Eq tok) => ([tok] -> String) -> (SourcePos -> [tok] -> SourcePos) -> [tok] -> GenParser tok st [tok] tokenPrim :: (tok -> String) -> (SourcePos -> tok -> [tok] -> SourcePos) -> (tok -> Maybe a) -> GenParser tok st a -- | 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. tokenPrimEx :: (tok -> String) -> (SourcePos -> tok -> [tok] -> SourcePos) -> Maybe (SourcePos -> tok -> [tok] -> st -> st) -> (tok -> Maybe a) -> GenParser tok st a try :: GenParser tok st a -> GenParser tok st a label :: GenParser tok st a -> String -> GenParser tok st a labels :: GenParser tok st a -> [String] -> GenParser tok st a unexpected :: String -> GenParser tok st a pzero :: GenParser tok st a many :: GenParser tok st a -> GenParser tok st [a] skipMany :: GenParser tok st a -> GenParser tok st () getState :: GenParser tok st st setState :: st -> GenParser tok st () updateState :: (st -> st) -> GenParser tok st () getPosition :: GenParser tok st SourcePos setPosition :: SourcePos -> GenParser tok st () getInput :: GenParser tok st [tok] setInput :: [tok] -> GenParser tok st () data State tok st State :: [tok] -> !SourcePos -> !st -> State tok st stateInput :: State tok st -> [tok] statePos :: State tok st -> !SourcePos stateUser :: State tok st -> !st getParserState :: GenParser tok st (State tok st) setParserState :: State tok st -> GenParser tok st (State tok st) instance MonadPlus (GenParser tok st) instance Monad (GenParser tok st) instance Functor (GenParser tok st) -- | Commonly used character parsers. module Text.ParserCombinators.Parsec.Char type CharParser st a = GenParser Char st a spaces :: CharParser st () space :: CharParser st Char newline :: CharParser st Char tab :: CharParser st Char upper :: CharParser st Char lower :: CharParser st Char alphaNum :: CharParser st Char letter :: CharParser st Char digit :: CharParser st Char hexDigit :: CharParser st Char octDigit :: CharParser st Char char :: Char -> CharParser st Char string :: String -> CharParser st String anyChar :: CharParser st Char oneOf :: [Char] -> CharParser st Char noneOf :: [Char] -> CharParser st Char satisfy :: (Char -> Bool) -> CharParser st Char -- | Commonly used generic combinators module Text.ParserCombinators.Parsec.Combinator choice :: [GenParser tok st a] -> GenParser tok st a count :: Int -> GenParser tok st a -> GenParser tok st [a] between :: GenParser tok st open -> GenParser tok st close -> GenParser tok st a -> GenParser tok st a option :: a -> GenParser tok st a -> GenParser tok st a optional :: GenParser tok st a -> GenParser tok st () skipMany1 :: GenParser tok st a -> GenParser tok st () many1 :: GenParser tok st a -> GenParser tok st [a] sepBy :: GenParser tok st a -> GenParser tok st sep -> GenParser tok st [a] sepBy1 :: GenParser tok st a -> GenParser tok st sep -> GenParser tok st [a] endBy :: GenParser tok st a -> GenParser tok st sep -> GenParser tok st [a] endBy1 :: GenParser tok st a -> GenParser tok st sep -> GenParser tok st [a] sepEndBy :: GenParser tok st a -> GenParser tok st sep -> GenParser tok st [a] sepEndBy1 :: GenParser tok st a -> GenParser tok st sep -> GenParser tok st [a] chainl :: GenParser tok st a -> GenParser tok st (a -> a -> a) -> a -> GenParser tok st a chainl1 :: GenParser tok st a -> GenParser tok st (a -> a -> a) -> GenParser tok st a chainr :: GenParser tok st a -> GenParser tok st (a -> a -> a) -> a -> GenParser tok st a chainr1 :: GenParser tok st a -> GenParser tok st (a -> a -> a) -> GenParser tok st a eof :: (Show tok) => GenParser tok st () notFollowedBy :: (Show tok) => GenParser tok st tok -> GenParser tok st () manyTill :: GenParser tok st a -> GenParser tok st end -> GenParser tok st [a] lookAhead :: GenParser tok st a -> GenParser tok st a anyToken :: (Show tok) => GenParser tok st tok -- | A helper module to parse "expressions". Builds a parser given a table -- of operators and associativities. module Text.ParserCombinators.Parsec.Expr data Assoc AssocNone :: Assoc AssocLeft :: Assoc AssocRight :: Assoc data Operator t st a Infix :: (GenParser t st (a -> a -> a)) -> Assoc -> Operator t st a Prefix :: (GenParser t st (a -> a)) -> Operator t st a Postfix :: (GenParser t st (a -> a)) -> Operator t st a type OperatorTable t st a = [[Operator t st a]] buildExpressionParser :: OperatorTable tok st a -> GenParser tok st a -> GenParser tok st a -- | Parsec, the Fast Monadic Parser combinator library, see -- http://www.cs.uu.nl/people/daan/parsec.html. -- -- Inspired by: -- --