Cabal-1.8.0.2: A framework for packaging Haskell softwareSource codeContentsIndex
Distribution.PackageDescription.Parse
Portabilityportable
Maintainercabal-devel@haskell.org
Contents
Package descriptions
Parsing
Supplementary build information
Description
This defined parsers and partial pretty printers for the .cabal format. Some of the complexity in this module is due to the fact that we have to be backwards compatible with old .cabal files, so there's code to translate into the newer structure.
Synopsis
readPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription
writePackageDescription :: FilePath -> PackageDescription -> IO ()
parsePackageDescription :: String -> ParseResult GenericPackageDescription
showPackageDescription :: PackageDescription -> String
data ParseResult a
= ParseFailed PError
| ParseOk [PWarning] a
data FieldDescr a = FieldDescr {
fieldName :: String
fieldGet :: a -> Doc
fieldSet :: LineNo -> String -> a -> ParseResult a
}
type LineNo = Int
readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfo
parseHookedBuildInfo :: String -> ParseResult HookedBuildInfo
writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> IO ()
showHookedBuildInfo :: HookedBuildInfo -> String
Package descriptions
readPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescriptionSource
Parse the given package file.
writePackageDescription :: FilePath -> PackageDescription -> IO ()Source
parsePackageDescription :: String -> ParseResult GenericPackageDescriptionSource

Parses the given file into a GenericPackageDescription.

In Cabal 1.2 the syntax for package descriptions was changed to a format with sections and possibly indented property descriptions.

showPackageDescription :: PackageDescription -> StringSource
Parsing
data ParseResult a Source
Constructors
ParseFailed PError
ParseOk [PWarning] a
show/hide Instances
data FieldDescr a Source
Field descriptor. The parameter a parameterizes over where the field's value is stored in.
Constructors
FieldDescr
fieldName :: String
fieldGet :: a -> Doc
fieldSet :: LineNo -> String -> a -> ParseResult afieldSet n str x Parses the field value from the given input string str and stores the result in x if the parse was successful. Otherwise, reports an error on line number n.
type LineNo = IntSource
Supplementary build information
readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfoSource
parseHookedBuildInfo :: String -> ParseResult HookedBuildInfoSource
writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> IO ()Source
showHookedBuildInfo :: HookedBuildInfo -> StringSource
Produced by Haddock version 2.6.0