BNFC-2.9.3.1: BNFC.cabal
Name: BNFC
Version: 2.9.3.1
cabal-version: 2.0
-- >=1.24 for the custom-setup section
-- >=2.0 for the build-tools: hspec-discover
build-type: Custom
category: Parsing
Copyright: (c) Andreas Abel, Jonas Almström Duregård, Krasimir Angelov, Jean-Philippe Bernardy, Björn Bringert, Johan Broberg, Kyle Butt, Paul Callaghan, Grégoire Détrez, Markus Forsberg, Ola Frid, Peter Gammie, Thomas Hallgren, Pascal Hof, Simon Huber, Patrik Jansson, Kristofer Johannisson, Antti-Juhani Kaijanaho, Andreas Lööw, Justin Meiners, Kent Mein, Ulf Norell, Gabriele Paganelli, Michael Pellauer, Fabian Ruch, and Aarne Ranta 2002 - 2021. Free software under the BSD 3-clause license.
License: BSD3
License-File: LICENSE
Maintainer: bnfc-dev@googlegroups.com
Homepage: http://bnfc.digitalgrammars.com/
bug-reports: https://github.com/BNFC/bnfc/issues
Synopsis: A compiler front-end generator.
Description:
The BNF Converter is a compiler construction tool generating a compiler front-end
from a Labelled BNF grammar. It was originally written to generate Haskell code,
but can also be used for generating Agda, C, C++, Java, Ocaml and XML code.
.
Given a Labelled BNF grammar the tool produces:
an abstract syntax as a Haskell, Agda, C, C++, Ocaml module or Java directory,
a case skeleton for the abstract syntax in the same language,
an Alex, JLex, or Flex lexer generator file,
a Happy, CUP, Bison, or Antlr parser generator file,
a pretty-printer as a Haskell, Agda, C, C++, Java, or Ocaml module,
an XML representation,
a LaTeX file containing a readable specification of the language.
tested-with:
GHC == 9.12.2
GHC == 9.10.3
GHC == 9.8.4
GHC == 9.6.7
GHC == 9.4.8
GHC == 9.2.8
GHC == 9.0.2
GHC == 8.10.7
GHC == 8.8.4
GHC == 8.6.5
GHC == 8.4.4
GHC == 8.2.2
GHC == 8.0.2
-- GHC == 7.10.3
Extra-doc-files:
README.md
CHANGELOG.md
-- LICENSE is automatically included
Extra-source-files:
Makefile
src/BNFC.cf
src/Makefile
stack-9.12.yaml
stack-9.10.yaml
stack-9.8.yaml
stack-9.6.yaml
stack-9.4.yaml
stack-9.2.yaml
stack-9.0.yaml
stack-8.10.yaml
stack-8.8.yaml
stack-8.6.yaml
stack-8.4.yaml
stack-8.2.yaml
stack-8.0.2.yaml
stack-7.10.3.yaml
Source-repository head
type: git
location: https://github.com/BNFC/bnfc.git
subdir: source
Source-repository this
type: git
location: https://github.com/BNFC/bnfc.git
subdir: source
tag: v2.9.3.1
-- Setup using https://github.com/haskellari/cabal-doctest
custom-setup
setup-depends:
base >= 4 && < 5,
Cabal >= 2.0 && < 4,
cabal-doctest >= 1 && < 1.1
executable bnfc
default-language: Haskell2010
main-is: Main.hs
hs-source-dirs: main
build-depends:
BNFC
, base
other-modules:
-- Generated by cabal
Paths_BNFC
autogen-modules:
Paths_BNFC
default-extensions:
-- Keep in alphabetical order.
LambdaCase
-- The library goal is there for internal reasons:
-- It gives us a dependency BNFC which we can use to steer
-- the build order. For doctests, we need Build_doctests,
-- which is generated by Setup.lhs when building the library.
--
-- As added value, the bundling of the library saves us
-- from compiling every module twice:
-- once for the executable, and once for unit-tests.
-- Now, both can depend on the library.
library
default-language:
Haskell2010
build-depends:
base >= 4.8 && < 5
, array
, containers
, deepseq
, directory
, filepath
, mtl >= 2.2.1
, pretty >= 1.1 && < 1.2
, process
, string-qq
, time
if impl(ghc < 8)
build-depends:
semigroups
build-tool-depends:
alex:alex,
happy:happy
hs-source-dirs:
src
ghc-options:
-W
if impl(ghc >= 8.0)
ghc-options:
-Wcompat
default-extensions:
-- Keep the list of language extensions in sync with its other occurrences.
-- Keep in alphabetical order.
-- No CPP since doctests doesn't like it.
DefaultSignatures
DoAndIfThenElse
FlexibleContexts
FlexibleInstances
LambdaCase
MultiWayIf
NamedFieldPuns
OverloadedStrings
PatternGuards
RecordWildCards
ScopedTypeVariables
TupleSections
-- 2021-01-22 The following autogen section seems wrong, breaks Haskell CI:
-- E.g. https://github.com/BNFC/bnfc/runs/1750769442?check_suite_focus=true
-- autogen-modules:
-- -- Generated by cabal
-- Paths_BNFC
-- -- Generated by alex
-- BNFC.Lex
-- -- Generated by happy
-- BNFC.Par
other-modules:
-- Generated by cabal
Paths_BNFC
autogen-modules:
Paths_BNFC
exposed-modules:
-- Generated from LICENSE
BNFC.License
-- Generated by bnfc
BNFC.Abs
BNFC.Lex
BNFC.Par
BNFC.Print
-- BNFC core
BNFC.Utils
BNFC.CF
BNFC.Check.EmptyTypes
BNFC.Regex
BNFC.TypeChecker
BNFC.GetCF
BNFC.Lexing
BNFC.Backend.Base
BNFC.Backend.Common
BNFC.Backend.Common.Makefile
BNFC.Backend.Common.NamedVariables
BNFC.Backend.Common.OOAbstract
BNFC.Backend.Common.StrUtils
BNFC.Options
BNFC.PrettyPrint
-- Documentation backends
BNFC.Backend.Latex
BNFC.Backend.Txt2Tag
-- Haskell backend
BNFC.Backend.Haskell
BNFC.Backend.Haskell.CFtoTemplate
BNFC.Backend.Haskell.CFtoAlex3
BNFC.Backend.Haskell.CFtoHappy
BNFC.Backend.Haskell.CFtoPrinter
BNFC.Backend.Haskell.CFtoAbstract
BNFC.Backend.Haskell.CFtoLayout
BNFC.Backend.Haskell.MkErrM
BNFC.Backend.Haskell.HsOpts
BNFC.Backend.Haskell.Utils
-- Haskell GADT
BNFC.Backend.HaskellGADT
BNFC.Backend.HaskellGADT.HaskellGADTCommon
BNFC.Backend.HaskellGADT.CFtoTemplateGADT
BNFC.Backend.HaskellGADT.CFtoAbstractGADT
-- O'Caml backend
BNFC.Backend.OCaml
BNFC.Backend.OCaml.OCamlUtil
BNFC.Backend.OCaml.CFtoOCamlTest
BNFC.Backend.OCaml.CFtoOCamlShow
BNFC.Backend.OCaml.CFtoOCamlPrinter
BNFC.Backend.OCaml.CFtoOCamlTemplate
BNFC.Backend.OCaml.CFtoOCamlAbs
BNFC.Backend.OCaml.CFtoOCamlYacc
BNFC.Backend.OCaml.CFtoOCamlLex
-- C backend
BNFC.Backend.C
BNFC.Backend.C.Common
BNFC.Backend.C.CFtoCPrinter
BNFC.Backend.C.CFtoCSkel
BNFC.Backend.C.CFtoBisonC
BNFC.Backend.C.CFtoFlexC
BNFC.Backend.C.CFtoCAbs
BNFC.Backend.C.RegToFlex
-- C++ backend
BNFC.Backend.CPP.Common
BNFC.Backend.CPP.PrettyPrinter
BNFC.Backend.CPP.Makefile
BNFC.Backend.CPP.Naming
BNFC.Backend.CPP.NoSTL
BNFC.Backend.CPP.NoSTL.CFtoCPPAbs
-- C++ STL backend
BNFC.Backend.CPP.STL
BNFC.Backend.CPP.STL.CFtoSTLAbs
BNFC.Backend.CPP.STL.STLUtils
BNFC.Backend.CPP.STL.CFtoCVisitSkelSTL
-- Java backend
BNFC.Backend.Java
BNFC.Backend.Java.CFtoAntlr4Lexer
BNFC.Backend.Java.CFtoAntlr4Parser
BNFC.Backend.Java.CFtoJavaAbs15
BNFC.Backend.Java.CFtoAllVisitor
BNFC.Backend.Java.CFtoFoldVisitor
BNFC.Backend.Java.CFtoAbstractVisitor
BNFC.Backend.Java.CFtoComposVisitor
BNFC.Backend.Java.CFtoVisitSkel15
BNFC.Backend.Java.CFtoJavaPrinter15
BNFC.Backend.Java.CFtoJLex15
BNFC.Backend.Java.CFtoCup15
BNFC.Backend.Java.RegToJLex
BNFC.Backend.Java.RegToAntlrLexer
BNFC.Backend.Java.Utils
-- XML backend
BNFC.Backend.XML
-- Pygments backend
BNFC.Backend.Pygments
-- Agda backend
BNFC.Backend.Agda
----- Testing --------------------------------------------------------------
test-suite unit-tests
default-language:
Haskell2010
type:
exitcode-stdio-1.0
build-depends:
BNFC,
-- base-4.9 would be needed for Show1 needed for Show WriterT
base >= 4.8 && < 5,
mtl >= 2.2.1,
directory,
array,
process,
filepath,
pretty,
hspec,
QuickCheck >= 2.5,
HUnit,
temporary,
containers,
deepseq,
string-qq,
time
if impl(ghc < 8)
build-depends:
semigroups
build-tool-depends:
alex:alex,
happy:happy,
hspec-discover:hspec-discover
main-is:
unit-tests.hs
hs-source-dirs:
test
ghc-options:
-W
if impl(ghc >= 8.0)
ghc-options:
-Wcompat
default-extensions:
-- Keep in alphabetical order.
LambdaCase
OverloadedStrings
other-modules:
BNFC.CFSpec
BNFC.GetCFSpec
BNFC.OptionsSpec
BNFC.Hspec
BNFC.Backend.BaseSpec
BNFC.Backend.Common.MakefileSpec
BNFC.Backend.Common.NamedVariablesSpec
BNFC.Backend.CPP.NoSTLSpec
BNFC.Backend.CPP.STLSpec
BNFC.Backend.CSpec
BNFC.Backend.HaskellSpec
BNFC.Backend.HaskellGADTSpec
BNFC.Backend.Haskell.CFtoHappySpec
BNFC.Backend.JavaSpec
BNFC.Backend.LatexSpec
BNFC.Backend.OCamlSpec
-- Generated by cabal
Paths_BNFC
autogen-modules:
-- Generated by cabal
Paths_BNFC
test-suite doctests
default-language: Haskell2010
type: exitcode-stdio-1.0
ghc-options: -threaded
default-extensions: CPP
main-is: doctests.hs
build-depends: base, doctest >= 0.8, filepath, BNFC
-- The dependency BNFC ensures the build of the library first
-- and hence, the presence of Build_doctests.
-- See https://hackage.haskell.org/package/cabal-doctest
hs-source-dirs: test