packages feed

GrammarProducts-0.2.0.0: GrammarProducts.cabal

name:           GrammarProducts
version:        0.2.0.0
author:         Christian Hoener zu Siederdissen, 2013-2019
copyright:      Christian Hoener zu Siederdissen, 2013-2019
homepage:       https://github.com/choener/GrammarProducts
bug-reports:    https://github.com/choener/GrammarProducts/issues
maintainer:     choener@bioinf.uni-leipzig.de
category:       Formal Languages, Bioinformatics
license:        GPL-3
license-file:   LICENSE
build-type:     Simple
stability:      experimental
cabal-version:  >= 1.10.0
tested-with:    GHC == 8.6.4
synopsis:       Grammar products and higher-dimensional grammars
description:
                <http://www.bioinf.uni-leipzig.de/Software/gADP/ generalized Algebraic Dynamic Programming>
                .
                An algebra of linear and context-free grammars.
                .
                This library provides the implementation of our theory of algebraic operations over
                linear and context-free grammars. Using algebraic operations, it is possible to
                construct complex dynamic programming algorithms from simpler "atomic" grammars.
                .
                Our most important contribution is the definition of a product of grammars which
                naturally leads to alignment-like algorithms on multiple tapes.
                .
                An efficient implementation of the resulting grammars is possible via the ADPfusion
                framework. The @FormalGrammars@ library provides the required "Template Haskell"
                machinery. GramarProducts can be integrated as a plugin into the existing
                transformation from DSL to ADPfusion. Haskell users can just use the QQ function
                provided in the .QQ module.
                .
                Alternatively, the resulting grammars can also be pretty-printed in various ways
                (ANSI, Haskell module with signature and grammar).
                .
                The formal background can be found in two papers given in the README. The gADP
                homepage has further details, tutorials, examples.
                .



Extra-Source-Files:
  changelog.md
  README.md



flag examples
  description:  build the examples (only Needleman-Wunsch for now)
  default:      False
  manual:       True



library
  build-depends: base               >= 4.7      && < 5.0
               , ansi-wl-pprint     >= 0.6
               , bytestring         >= 0.10
               , containers         >= 0.5
               , data-default       >= 0.5
               , lens               >= 4
               , newtype            >= 0.2
               , parsers            >= 0.12
               , semigroups         >= 0.15
               , template-haskell   >= 2
               , transformers       >= 0.4
-- due to we still using ansi-wl-pprint
               , trifecta           >= 1.7.1.1  && < 2.1
               --
               , ADPfusion          == 0.6.0.*
               , FormalGrammars     == 0.4.0.*
               , PrimitiveArray     == 0.10.0.*
  exposed-modules:
    FormalLanguage.GrammarProduct
    FormalLanguage.GrammarProduct.Op
    FormalLanguage.GrammarProduct.Op.Add
    FormalLanguage.GrammarProduct.Op.Chomsky
--    FormalLanguage.GrammarProduct.Op.Chomsky.Proof
    FormalLanguage.GrammarProduct.Op.Common
    FormalLanguage.GrammarProduct.Op.Greibach
--    FormalLanguage.GrammarProduct.Op.Greibach.Proof
    FormalLanguage.GrammarProduct.Op.Linear
    FormalLanguage.GrammarProduct.Op.Power
    FormalLanguage.GrammarProduct.Op.Subtract
    FormalLanguage.GrammarProduct.Parser
    FormalLanguage.GrammarProduct.QQ
  default-language:
    Haskell2010
  default-extensions: FlexibleContexts
                    , FlexibleInstances
                    , GeneralizedNewtypeDeriving
                    , LambdaCase
                    , NoMonomorphismRestriction
                    , OverloadedStrings
                    , PackageImports
                    , ParallelListComp
                    , PatternGuards
                    , RankNTypes
                    , ScopedTypeVariables
                    , StandaloneDeriving
                    , TemplateHaskell
                    , TypeApplications
                    , UnicodeSyntax
  ghc-options:
    -O2
    -funbox-strict-fields



executable AlignGlobal
  if flag(examples)
    build-depends: base               >= 4.7    && < 5.0
                 , containers
                 , template-haskell
                 , vector             >= 0.10
                 --
                 , ADPfusion
                 , FormalGrammars     >= 0.3
                 , GrammarProducts
                 , PrimitiveArray
    buildable: True
  else
    buildable: False
  hs-source-dirs:
    src
  main-is:
    AlignGlobal.hs
  default-language:
    Haskell2010
  default-extensions: BangPatterns
                    , DataKinds
                    , FlexibleContexts
                    , FlexibleInstances
                    , MultiParamTypeClasses
                    , QuasiQuotes
                    , TemplateHaskell
                    , TypeApplications
                    , TypeFamilies
                    , TypeOperators
  ghc-options:
    -O2
    -funbox-strict-fields
    -funfolding-use-threshold1000
    -funfolding-keeness-factor1000



test-suite properties
  type:
    exitcode-stdio-1.0
  main-is:
    properties.hs
  ghc-options:
    -threaded -rtsopts -with-rtsopts=-N
  hs-source-dirs:
    tests
  default-language:
    Haskell2010
  default-extensions: BangPatterns
--                    , CPP
--                    , FlexibleContexts
--                    , FlexibleInstances
--                    , MultiParamTypeClasses
--                    , ScopedTypeVariables
--                    , TemplateHaskell
--                    , TypeFamilies
--                    , TypeOperators
--                    , TypeSynonymInstances
  cpp-options:
    -DADPFUSION_TEST_SUITE_PROPERTIES
  build-depends: base
--               , ADPfusion
--               , bits
--               , OrderedBits
--               , PrimitiveArray
--               , QuickCheck
--               , strict
--               , tasty                        >= 0.11
--               , tasty-quickcheck             >= 0.8
--               , tasty-th                     >= 0.1
--               , vector



source-repository head
  type: git
  location: git://github.com/choener/GrammarProducts