ParseHaskellProgram.hs

Plain Haskell source file: ParseHaskellProgram.hs

module ParseHaskellProgram where
import ParseProgram(parseProgram)
import HsParser(parse)
import DefinedNamesBase() -- instances
import ReAssocBase()      -- instances
import Syntax(HsModuleR,Module)
import WorkModule(WorkModule)

This is a function to parse a plain Haskell program. Given a list of files
containing the modules of a Haskell program, it returns a list of strongly
connected components of modules, and an association list giving information
for each module what is in scope and what is exported.
parseHaskellProgram:: [FilePath] -> IO ([[HsModuleR]], [(Module, WorkModule)])
parseHaskellProgram = parseProgram parse

The function is constructed
from the reusable function parseProgram, which takes a module parser as
an argument. This allows it to be used for variants of Haskell, e.g. where
there are new forms of declarations or expressions. For this to work, there
must be instances in some classes for the type of declarations.
See the module ParseProgram for details.

Index