BNFC-2.9.6.2: BNFC.cabal
Name: BNFC
Version: 2.9.6.2
cabal-version: 2.0
-- >=2.0 for build-tool-depends: hspec-discover
-- Andreas, 2022-12-16, issue #429:
-- Putting cabal-version: x.y could mean putting extra-deps: [Cabal-x.y]
-- into stack-a.b.c.yaml if that snapshot does not have Cabal at least x.y.
-- This will then require a Setup.[l]hs file with stack even for build-type: Simple.
-- Shunning this extra effort, we only support stack snapshot that have a sufficient Cabal.
build-type: Simple
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, Michał Radwański, Fabian Ruch, and Aarne Ranta 2002 - 2023. Free software under the BSD 3-clause license.
License: BSD3
License-File: LICENSE
Maintainer: bnfc-dev@googlegroups.com
Homepage: https://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 package,
a case skeleton for the abstract syntax in the same language,
an Alex, Flex, JLex, JFlex, or ocamllex lexer generator file,
a Happy, CUP, Bison, Antlr, ocamlyacc or menhir 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.
-- Support range when build with cabal
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
extra-doc-files:
README.md
CHANGELOG.md
-- LICENSE is automatically included
extra-source-files:
Makefile
src/BNFC.cf
src/Makefile
-- Support range when build with stack
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
source-repository head
type: git
location: https://github.com/BNFC/bnfc.git
subdir: source
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:
-- Generated by cabal
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.
-- 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.9 && < 5
, array
, containers
, deepseq
, directory
, filepath
, mtl >= 2.2.1
, pretty >= 1.1 && < 1.2
, string-qq
, time
build-tool-depends:
alex:alex,
happy:happy
hs-source-dirs:
src
ghc-options:
-Wall
-Wcompat
-Wno-dodgy-imports
-Wno-name-shadowing
-- for cabal repl -w doctest :
-- -Wno-type-defaults
if impl(ghc >= 9.2)
ghc-options:
-Wno-incomplete-uni-patterns
default-extensions:
-- Keep the list of language extensions in sync with its other occurrences.
-- Keep in alphabetical order.
-- No CPP since doctest doesn't like it.
DefaultSignatures
DoAndIfThenElse
FlexibleContexts
FlexibleInstances
LambdaCase
MultiWayIf
NamedFieldPuns
OverloadedStrings
PatternGuards
RecordWildCards
ScopedTypeVariables
TupleSections
TypeOperators
-- 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
-- 2023-11-03 We cannot add BNFC.{Lex,Par} as then the Lex.x and Par.y files
-- are not bundled by cabal dist.
-- Just make sure that there is no src/BNFC/{Lex,Par}.hs before running cabal sdist,
-- otherwise we will end up with both Lex.hs and Lex.x (resp. Par.{hs,y})
-- which will cause alex/happy to not be run, leading to build failures.
autogen-modules:
-- Generated by cabal
Paths_BNFC
other-modules:
-- Generated by cabal
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
-- Tree-sitter backend
BNFC.Backend.TreeSitter
BNFC.Backend.TreeSitter.CFtoTreeSitter
BNFC.Backend.TreeSitter.RegToJSReg
----- 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,
mtl,
directory,
filepath,
pretty,
hspec,
QuickCheck >= 2.5,
HUnit,
temporary
build-tool-depends:
alex:alex,
happy:happy,
hspec-discover:hspec-discover
main-is:
unit-tests.hs
hs-source-dirs:
test
ghc-options:
-W
-Wcompat
-- TODO: -Wall
-Wno-name-shadowing
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
BNFC.Backend.TreeSitterSpec
-- Generated by cabal
Paths_BNFC
autogen-modules:
-- Generated by cabal
Paths_BNFC