ghc-9.4.0.20220721: The GHC API
Safe HaskellSafe-Inferred
LanguageHaskell2010

GHC.Parser.Header

Description

Parsing the top of a Haskell source file to get its module name, imports and options.

(c) Simon Marlow 2005 (c) Lemmih 2006

Synopsis

Documentation

getImports Source #

Arguments

:: ParserOpts

Parser options

-> Bool

Implicit Prelude?

-> StringBuffer

Parse this.

-> FilePath

Filename the buffer came from. Used for reporting parse error locations.

-> FilePath

The original source filename (used for locations in the function result)

-> IO (Either (Messages PsMessage) ([(RawPkgQual, Located ModuleName)], [(RawPkgQual, Located ModuleName)], Bool, Located ModuleName))

The source imports and normal imports (with optional package names from -XPackageImports), and the module name.

Parse the imports of a source file.

Throws a SourceError if parsing fails.

getOptionsFromFile Source #

Arguments

:: ParserOpts 
-> FilePath

Input file

-> IO (Messages PsMessage, [Located String])

Parsed options, if any.

Parse OPTIONS and LANGUAGE pragmas of the source file.

Throws a SourceError if flag parsing fails (including unsupported flags.)

getOptions Source #

Arguments

:: ParserOpts 
-> StringBuffer

Input Buffer

-> FilePath

Source filename. Used for location info.

-> (Messages PsMessage, [Located String])

warnings and parsed options.

Parse OPTIONS and LANGUAGE pragmas of the source file.

Throws a SourceError if flag parsing fails (including unsupported flags.)

checkProcessArgsResult :: MonadIO m => [Located String] -> m () Source #

Complain about non-dynamic flags in OPTIONS pragmas.

Throws a SourceError if the input list is non-empty claiming that the input flags are unknown.