Copyright | (c) 2008 Benedikt Huber |
---|---|
License | BSD-style |
Maintainer | benedikt.huber@gmail.com |
Stability | experimental |
Portability | ghc |
Safe Haskell | None |
Language | Haskell98 |
Language.C parser
- 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