Copyright | (c) 2008 Benedikt Huber |
---|---|
License | BSD-style |
Maintainer | benedikt.huber@gmail.com |
Stability | experimental |
Portability | ghc |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Language.C parser
Synopsis
- parseC :: InputStream -> Position -> Either ParseError CTranslUnit
- data P a
- execParser :: P a -> InputStream -> Position -> [Ident] -> [Name] -> Either ParseError (a, [Name])
- execParser_ :: P a -> InputStream -> Position -> Either ParseError a
- builtinTypeNames :: [Ident]
- translUnitP :: P CTranslUnit
- extDeclP :: P CExtDecl
- statementP :: P CStat
- expressionP :: P CExpr
- newtype ParseError = ParseError ([String], Position)
Simple API
parseC :: InputStream -> Position -> Either ParseError CTranslUnit Source #
parseC input initialPos
parses the given preprocessed C-source input and returns the AST or a list of parse errors.
Parser Monad
execParser :: P a -> InputStream -> Position -> [Ident] -> [Name] -> Either ParseError (a, [Name]) Source #
execute the given parser on the supplied input stream.
returns ParseError
if the parser failed, and a pair of
result and remaining name supply otherwise
Synopsis: execParser parser inputStream initialPos predefinedTypedefs uniqNameSupply
execParser_ :: P a -> InputStream -> Position -> Either ParseError a Source #
run the given parser using a new name supply and builtin typedefs
see execParser
Synopsis: runParser parser inputStream initialPos
builtinTypeNames :: [Ident] Source #
Exposed Parsers
translUnitP :: P CTranslUnit Source #
translUnitP
provides a parser for a complete C translation unit, i.e. a list of external declarations.
statementP :: P CStat Source #
statementP
provides a parser for C statements
expressionP :: P CExpr Source #
expressionP
provides a parser for C expressions
Parser Monad
newtype ParseError Source #
ParseError ([String], Position) |
Instances
Show ParseError Source # | |
Defined in Language.C.Parser.ParserMonad showsPrec :: Int -> ParseError -> ShowS # show :: ParseError -> String # showList :: [ParseError] -> ShowS # |