packages feed

GrammarProducts-0.1.1.3: GrammarProducts.cabal

name:           GrammarProducts
version:        0.1.1.3
author:         Christian Hoener zu Siederdissen, 2013-2017
copyright:      Christian Hoener zu Siederdissen, 2013-2017
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 == 7.10.3, GHC == 8.0.1
synopsis:       Grammar products and higher-dimensional grammars
description:
                <http://www.bioinf.uni-leipzig.de/Software/gADP/ generalized Algebraic Dynamic Programming>
                .
                An algebra of liner 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 (LaTeX, 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
               , trifecta           >= 1.6
               --
               , ADPfusion          == 0.5.2.*
               , FormalGrammars     == 0.3.1.*
               , PrimitiveArray     == 0.8.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
                    , ParallelListComp
                    , PatternGuards
                    , RankNTypes
                    , ScopedTypeVariables
                    , StandaloneDeriving
                    , TemplateHaskell
                    , UnicodeSyntax
  ghc-options:
    -O2
    -funbox-strict-fields



-- With grammar products, we need a refined way of turning input source files
-- into LaTeX and Haskell modules.

--executable GrammarProductPP
--  build-depends: base             >= 4.7    && < 4.9
--               , ansi-wl-pprint
--               , cmdargs          >= 0.10   && < 0.11
--               , data-default
--               , FormalGrammars
--               , GrammarProducts
--               , HaTeX            >= 3.16   && < 4
--               , lens
--               , semigroups
--               , transformers
--               , trifecta
--  hs-source-dirs:
--    src
--  main-is:
--    GramProd.hs
--  default-language:
--    Haskell2010
--  default-extensions:
--  ghc-options:
--    -O2

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
                    , FlexibleContexts
                    , FlexibleInstances
                    , MultiParamTypeClasses
                    , QuasiQuotes
                    , TemplateHaskell
                    , TypeFamilies
                    , TypeOperators
  ghc-options:
    -O2
    -fcpr-off
    -funbox-strict-fields
    -funfolding-use-threshold1000
    -funfolding-keeness-factor1000



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