Cabal-1.12.0: A framework for packaging Haskell software

Portabilityportable
Maintainercabal-devel@haskell.org

Distribution.PackageDescription.Parse

Contents

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

Package descriptions

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.

Parsing

data FieldDescr a Source

Field descriptor. The parameter a parameterizes over where the field's value is stored in.

Constructors

FieldDescr 

Fields

fieldName :: String
 
fieldGet :: a -> Doc
 
fieldSet :: LineNo -> String -> a -> ParseResult a

fieldSet 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.

Supplementary build information