Cabal-1.22.0.0: A framework for packaging Haskell software

CopyrightIsaac Jones 2003-2005
LicenseBSD3
Maintainer[email protected]
Portabilityportable
Safe HaskellNone
LanguageHaskell98

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 GenericPackageDescription

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

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.

type LineNo = Int

Supplementary build information

testSuiteFieldDescrs :: [FieldDescr TestSuiteStanza]