X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FHeaderInfo.hs;h=d79c3eec02dd9a33329baa5b29a70d63257dfd31;hb=5892af0e08fdb890b5a0b9a64346d9f7773a6ed8;hp=a88563c35506e37cd0ed5ec370f4454921afa440;hpb=eb0e20bd2c73df8c6e2eb05f6545ced2e9b91b75;p=ghc-hetmet.git diff --git a/compiler/main/HeaderInfo.hs b/compiler/main/HeaderInfo.hs index a88563c..d79c3ee 100644 --- a/compiler/main/HeaderInfo.hs +++ b/compiler/main/HeaderInfo.hs @@ -95,10 +95,12 @@ getImpMod (ImportDecl located_mod _ _ _ _ _) = located_mod -- Get options -------------------------------------------------------------- - +-- | Parse OPTIONS and LANGUAGE pragmas of the source file. +-- +-- Throws a 'SourceError' if flag parsing fails (including unsupported flags.) getOptionsFromFile :: DynFlags - -> FilePath -- input file - -> IO [Located String] -- options, if any + -> FilePath -- ^ Input file + -> IO [Located String] -- ^ Parsed options, if any. getOptionsFromFile dflags filename = Exception.bracket (openBinaryFile filename ReadMode) @@ -119,7 +121,13 @@ getOptionsFromFile dflags filename else do opts' <- loop handle newBuf return (opts++opts') -getOptions :: DynFlags -> StringBuffer -> FilePath -> [Located String] +-- | Parse OPTIONS and LANGUAGE pragmas of the source file. +-- +-- Throws a 'SourceError' if flag parsing fails (including unsupported flags.) +getOptions :: DynFlags + -> StringBuffer -- ^ Input Buffer + -> FilePath -- ^ Source filename. Used for location info. + -> [Located String] -- ^ Parsed options. getOptions dflags buf filename = case getOptions' dflags buf filename of (_,opts) -> opts @@ -193,8 +201,11 @@ getOptions' dflags buf filename _ -> [(buffer state,L (last_loc state) ITeof)] ----------------------------------------------------------------------------- --- Complain about non-dynamic flags in OPTIONS pragmas +-- | 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. checkProcessArgsResult :: MonadIO m => [Located String] -> m () checkProcessArgsResult flags = when (notNull flags) $