ghc-7.10.3: The GHC API

Safe Haskell | None
Language | Haskell2010

Parser

Description

This module provides the generated Happy parser for Haskell. It exports a number of parsers which may be used in any library that uses the GHC API. A common usage pattern is to initialize the parser state with a given string and then parse that string:

        runParser :: DynFlags -> String -> P a -> ParseResult a
        runParser flags str parser = unP parser parseState
        where
          filename = "<interactive>"
          location = mkRealSrcLoc (mkFastString filename) 1 1
          buffer = stringToStringBuffer str
          parseState = mkPState flags buffer location in

# Documentation

parseModule :: P (Located (HsModule RdrName))

parseImport :: P (LImportDecl RdrName)

parseStatement :: P (LStmt RdrName (LHsExpr RdrName))

parseDeclaration :: P (OrdList (LHsDecl RdrName))

parseExpression :: P (LHsExpr RdrName)

parsePattern :: P (LPat RdrName)

parseTypeSignature :: P (Located (OrdList (LHsDecl RdrName)))

parseFullStmt :: P (LStmt RdrName (LHsExpr RdrName))

parseStmt :: P (Maybe (LStmt RdrName (LHsExpr RdrName)))

parseIdentifier :: P (Located RdrName)

parseType :: P (LHsType RdrName)

parseHeader :: P (Located (HsModule RdrName))