packages feed

FormalGrammars-0.4.0.0: FormalGrammars.cabal

cabal-version:  2.2
name:           FormalGrammars
version:        0.4.0.0
author:         Christian Hoener zu Siederdissen, 2013-2019
copyright:      Christian Hoener zu Siederdissen, 2013-2019
homepage:       https://github.com/choener/FormalGrammars
bug-reports:    https://github.com/choener/FormalGrammars/issues
maintainer:     choener@bioinf.uni-leipzig.de
category:       Formal Languages, Bioinformatics
license:        GPL-3.0-only
license-file:   LICENSE
build-type:     Simple
stability:      experimental
tested-with:    GHC == 8.6.4
synopsis:       (Context-free) grammars in formal language theory
description:
                <http://www.bioinf.uni-leipzig.de/Software/gADP/ generalized Algebraic Dynamic Programming>
                .
                Context-free grammars in formal language theory are sets of production rules,
                non-terminal and terminal symbols. This library provides basic data types and
                functions to manipulate such grammars.
                .
                Grammars can be defined in a small domain-specific language that is very close to
                typical CFG notation. The DSL parser can easily be extended. Grammar products, for
                example, are implemented as a single additional sub-parser.
                .
                This library also provides the machinery that transforms an Inside grammar into the
                corresponding Outside grammar.
                .
                Starting with version 0.2.1 it is possible to write multiple context-free grammars
                within this framework.
                .
                In addition, TemplateHaskell and QuasiQuoting functionality allow embedding thusly
                defined grammars in Haskell programs. ADPfusion then turns such a grammar into an
                efficient dynamic program. It is also possible to generate Haskell modules that
                contain the resulting grammar, signature and algebra product.
                .
                Alternatives are ansi- or LaTeX-based pretty-printing for users that want to
                implement their CFG in another language than Haskell.
                .
                Formal background can be found in a number of papers which are given in the README.
                .



Extra-Source-Files:
  README.md
  changelog.md
  tests/parsing.gra



flag examples
  description:  build the examples
  default:      False
  manual:       True

flag debugdump
  description:  dump intermediate Core files
  default:      False
  manual:       True

flag llvm
  description:  use llvm
  default:      False
  manual:       True



common deps
  build-depends: base                  >= 4.7     && < 5.0
               , ansi-wl-pprint        >= 0.6.7
               , bytestring            >= 0.10
               , containers
               , data-default          >= 0.5
--               , HaTeX                 >= 3.16
               , lens                  >= 4.0
               , mtl                   >= 2.0
               , parsers               >= 0.12.5
               , semigroups            >= 0.16
               , template-haskell
               , text                  >= 1.0
               , transformers          >= 0.3
-- trifecta switches from ansi-wl-pprint to pretty in v.2.1
               , trifecta              >= 1.7.1.1   && < 2.1
               , unordered-containers  >= 0.2
               , vector                >= 0.10
               --
               , ADPfusion             == 0.6.0.*
               , PrimitiveArray        == 0.10.0.*
  default-language:
    Haskell2010
  default-extensions: BangPatterns
                    , CPP
                    , DataKinds
                    , DeriveDataTypeable
                    , DerivingStrategies
                    , FlexibleContexts
                    , FlexibleInstances
                    , GeneralizedNewtypeDeriving
                    , LambdaCase
                    , MultiParamTypeClasses
                    , NamedFieldPuns
                    , NoMonomorphismRestriction
                    , PartialTypeSignatures
                    , PatternGuards
                    , PolyKinds
                    , QuasiQuotes
                    , RankNTypes
                    , RecordWildCards
                    , ScopedTypeVariables
                    , StandaloneDeriving
                    , TemplateHaskell
                    , TupleSections
                    , TypeApplications
                    , TypeFamilies
                    , TypeOperators
                    , UnicodeSyntax
                    , ViewPatterns
  ghc-options:
    -O2 -funbox-strict-fields



library
  import:
    deps
  exposed-modules:
    FormalLanguage
    FormalLanguage.CFG
    FormalLanguage.CFG.Grammar
    FormalLanguage.CFG.Grammar.Types
    FormalLanguage.CFG.Grammar.Util
    FormalLanguage.CFG.Outside
    FormalLanguage.CFG.Parser
    FormalLanguage.CFG.PrettyPrint
    FormalLanguage.CFG.PrettyPrint.ANSI
    FormalLanguage.CFG.PrettyPrint.Haskell
--    FormalLanguage.CFG.PrettyPrint.LaTeX
    FormalLanguage.CFG.QQ
    FormalLanguage.CFG.TH
    FormalLanguage.CFG.TH.Internal



--executable NeedlemanWunschFG
--  import:
--    deps
--  if flag(examples)
--    buildable:
--      True
--    build-depends: base
--                 --
--                 , FormalGrammars
--  else
--    buildable:
--      False
--  hs-source-dirs:
--    src
--  main-is:
--    NeedlemanWunsch.hs
--  ghc-options:
--    -funfolding-use-threshold1000
--    -funfolding-keeness-factor1000
--    -flate-dmd-anal
--    -fspec-constr-count=100
--  if flag(debugdump)
--    ghc-options:
--      -ddump-cmm
--      -ddump-simpl
--      -ddump-stg
--      -ddump-to-file
--      -dshow-passes
--      -dsuppress-all
--  if flag(llvm)
--    ghc-options:
--      -fllvm
--      -optlo-O3



test-suite properties
  import:
    deps
  type:
    exitcode-stdio-1.0
  main-is:
    properties.hs
  ghc-options:
    -threaded -rtsopts -with-rtsopts=-N
  hs-source-dirs:
    tests
  build-depends: base
               --
               , FormalGrammars



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