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