ghc-9.12.0.20241128: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.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 :: ParserOpts -> String -> P a -> ParseResult a
    runParser opts str parser = unP parser parseState
    where
      filename = "<interactive>"
      location = mkRealSrcLoc (mkFastString filename) 1 1
      buffer = stringToStringBuffer str
      parseState = initParserState opts buffer location
Synopsis

Documentation

parseModule :: P (Located (HsModule GhcPs)) Source #

Parse a Haskell module with Haddock comments. This is done in two steps:

This and the signature module parser are the only parser entry points that deal with Haddock comments. The other entry points (parseDeclaration, parseExpression, etc) do not insert them into the AST.

parseSignature :: P (Located (HsModule GhcPs)) Source #

Parse a Haskell signature module with Haddock comments. This is done in two steps:

  • parseSignatureNoHaddock to build the AST
  • addHaddockToModule to insert Haddock comments into it

This and the module parser are the only parser entry points that deal with Haddock comments. The other entry points (parseDeclaration, parseExpression, etc) do not insert them into the AST.