FormalGrammars-0.2.0.0: FormalGrammars.cabal
name: FormalGrammars
version: 0.2.0.0
author: Christian Hoener zu Siederdissen, 2013-2015
copyright: Christian Hoener zu Siederdissen, 2013-2015
homepage: http://www.bioinf.uni-leipzig.de/Software/gADP/
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.8.4, GHC == 7.10.1
synopsis: (Context-free) grammars in formal language theory
description:
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.
.
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 these papers:
.
@
Christian Hoener zu Siederdissen
Sneaking Around ConcatMap: Efficient Combinators for Dynamic Programming
2012. Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
<http://doi.acm.org/10.1145/2364527.2364559> preprint: <http://www.tbi.univie.ac.at/newpapers/pdfs/TBI-p-2012-2.pdf>
@
.
@
Andrew Farmer, Christian Höner zu Siederdissen, and Andy Gill.
The HERMIT in the stream: fusing stream fusion’s concatMap.
2014. Proceedings of the ACM SIGPLAN 2014 workshop on Partial evaluation and program manipulation.
<http://dl.acm.org/citation.cfm?doid=2543728.2543736>
@
.
@
Christian Höner zu Siederdissen, Ivo L. Hofacker, and Peter F. Stadler.
Product Grammars for Alignment and Folding.
2014. IEEE/ACM Transactions on Computational Biology and Bioinformatics. 99.
<http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6819790>
@
.
@
Christian Höner zu Siederdissen, Sonja J. Prohaska, and Peter F. Stadler.
Algebraic Dynamic Programming over General Data Structures.
2015. submitted.
@
.
Extra-Source-Files:
README.md
changelog.md
tests/parsing.gra
flag examples
description: build the examples
default: False
manual: True
flag llvm
description: build using LLVM
default: False
manual: True
flag debug
description: dump intermediate Core files
default: False
manual: True
-- TODO relax parsers dependency once https://github.com/ekmett/parsers/issues/37 is dealt with
-- explicit dependency on PrimitiveArray to be able to load the examples
library
build-depends: base >= 4.7 && < 4.9
, ADPfusion == 0.4.0.*
, ansi-wl-pprint == 0.6.7.*
, bytestring == 0.10.*
, containers
, data-default == 0.5.*
, HaTeX == 3.16.*
, lens == 4.*
, mtl == 2.*
, parsers >= 0.12 && < 0.13
, PrimitiveArray == 0.6.0.*
, semigroups >= 0.16 && < 0.17
, template-haskell
, text == 1.*
, transformers >= 0.3 && < 0.5
, trifecta == 1.5.*
, unordered-containers == 0.2.*
, vector == 0.10.*
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.QuickCheck
FormalLanguage.CFG.TH
default-language:
Haskell2010
default-extensions: FlexibleContexts
, FlexibleInstances
, GeneralizedNewtypeDeriving
, LambdaCase
, MultiParamTypeClasses
, NamedFieldPuns
, NoMonomorphismRestriction
, PatternGuards
, RankNTypes
, RecordWildCards
, ScopedTypeVariables
, StandaloneDeriving
, TemplateHaskell
, TupleSections
, TypeFamilies
, TypeOperators
ghc-options:
-O2 -funbox-strict-fields
-- A Simple pretty-printer for formal grammars.
executable GrammarPP
build-depends: base
, ansi-wl-pprint
, cmdargs == 0.10.*
, FormalGrammars
hs-source-dirs:
src
default-language:
Haskell2010
default-extensions: DeriveDataTypeable
, RecordWildCards
main-is:
GrammarPP.hs
executable NussinovFG
if flag(examples)
buildable:
True
build-depends: base
, ADPfusion
, FormalGrammars
, PrimitiveArray
, template-haskell
, vector
else
buildable:
False
hs-source-dirs:
src
main-is:
Nussinov.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
if flag(debug)
ghc-options:
-ddump-to-file
-ddump-simpl
-ddump-stg
-dsuppress-all
if flag(llvm)
ghc-options:
-fllvm
-optlo-O3 -optlo-std-compile-opts
-fllvm-tbaa
executable NeedlemanWunschFG
if flag(examples)
buildable:
True
build-depends: base
, ADPfusion
, containers
, FormalGrammars
, PrimitiveArray
, template-haskell
, vector
else
buildable:
False
hs-source-dirs:
src
main-is:
NeedlemanWunsch.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
-rtsopts
if flag(debug)
ghc-options:
-ddump-to-file
-ddump-simpl
-ddump-stg
-dsuppress-all
if flag(llvm)
ghc-options:
-fllvm
-optlo-O3
-fllvm-tbaa
source-repository head
type: git
location: git://github.com/choener/FormalGrammars