| Cabal-1.6.0.3: A framework for packaging Haskell software | Source code | Contents | Index
Distribution.PackageDescription.Parse |
Portability | portable
Maintainer | cabal-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 GenericPackageDescription | Source
Parse the given package file.
writePackageDescription :: FilePath -> PackageDescription -> IO () | Source
parsePackageDescription :: String -> ParseResult GenericPackageDescription | Source
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 -> String | Source
Parsing
data ParseResult a | Source
Constructors
ParseFailed PError |
ParseOk [PWarning] a |
Instances
Monad ParseResult
Show a => Show (ParseResult a)
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 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 | Source
Supplementary build information
readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfo | Source
parseHookedBuildInfo :: String -> ParseResult HookedBuildInfo | Source
writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> IO () | Source
showHookedBuildInfo :: HookedBuildInfo -> String | Source
Produced by Haddock version 2.4.2