Copyright | Isaac Jones 2003-2005 |
---|---|
License | BSD3 |
Maintainer | cabal-devel@haskell.org |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
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
- readGenericPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription
- parseGenericPackageDescription :: String -> ParseResult GenericPackageDescription
- readPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription
- parsePackageDescription :: String -> ParseResult GenericPackageDescription
- data ParseResult a
- = ParseFailed PError
- | ParseOk [PWarning] a
- data FieldDescr a = FieldDescr {}
- type LineNo = Int
- data TestSuiteStanza = TestSuiteStanza {}
- data BenchmarkStanza = BenchmarkStanza {}
- readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfo
- parseHookedBuildInfo :: String -> ParseResult HookedBuildInfo
- pkgDescrFieldDescrs :: [FieldDescr PackageDescription]
- libFieldDescrs :: [FieldDescr Library]
- foreignLibFieldDescrs :: [FieldDescr ForeignLib]
- executableFieldDescrs :: [FieldDescr Executable]
- binfoFieldDescrs :: [FieldDescr BuildInfo]
- sourceRepoFieldDescrs :: [FieldDescr SourceRepo]
- testSuiteFieldDescrs :: [FieldDescr TestSuiteStanza]
- benchmarkFieldDescrs :: [FieldDescr BenchmarkStanza]
- flagFieldDescrs :: [FieldDescr Flag]
Package descriptions
readGenericPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription Source #
Parse the given package file.
parseGenericPackageDescription :: 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.
Deprecated names
readPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription Source #
Deprecated: Use readGenericPackageDescription, old name is misleading.
parsePackageDescription :: String -> ParseResult GenericPackageDescription Source #
Deprecated: Use parseGenericPackageDescription, old name is misleading
Parsing
data ParseResult a Source #
Constructors
ParseFailed PError | |
ParseOk [PWarning] a |
Instances
Monad ParseResult Source # | |
Methods (>>=) :: ParseResult a -> (a -> ParseResult b) -> ParseResult b # (>>) :: ParseResult a -> ParseResult b -> ParseResult b # return :: a -> ParseResult a # fail :: String -> ParseResult a # | |
Functor ParseResult Source # | |
Methods fmap :: (a -> b) -> ParseResult a -> ParseResult b # (<$) :: a -> ParseResult b -> ParseResult a # | |
MonadFail ParseResult Source # | |
Methods fail :: String -> ParseResult a # | |
Applicative ParseResult Source # | |
Methods pure :: a -> ParseResult a # (<*>) :: ParseResult (a -> b) -> ParseResult a -> ParseResult b # liftA2 :: (a -> b -> c) -> ParseResult a -> ParseResult b -> ParseResult c # (*>) :: ParseResult a -> ParseResult b -> ParseResult b # (<*) :: ParseResult a -> ParseResult b -> ParseResult a # | |
Show a => Show (ParseResult a) Source # | |
Methods showsPrec :: Int -> ParseResult a -> ShowS # show :: ParseResult a -> String # showList :: [ParseResult a] -> ShowS # |
data FieldDescr a Source #
Field descriptor. The parameter a
parameterizes over where the field's
value is stored in.
Constructors
FieldDescr | |
Private, but needed for pretty-printer
data TestSuiteStanza Source #
An intermediate type just used for parsing the test-suite stanza.
After validation it is converted into the proper TestSuite
type.
Constructors
TestSuiteStanza | |
data BenchmarkStanza Source #
An intermediate type just used for parsing the benchmark stanza.
After validation it is converted into the proper Benchmark
type.
Supplementary build information
readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfo Source #
flagFieldDescrs :: [FieldDescr Flag] Source #