BNFC-2.7.0.2: BNFC.cabal
cabal-version: >= 1.10
Name: BNFC
Version: 2.7.0.2
build-type: Simple
category: Development
Copyright: (c) Krasimir Angelov, Jean-Philippe Bernardy, Bjorn Bringert, Johan Broberg, Paul Callaghan, Markus Forsberg, Ola Frid, Peter Gammie, Patrik Jansson, Kristofer Johannisson, Antti-Juhani Kaijanaho, Ulf Norell, Michael Pellauer and Aarne Ranta 2002 - 2012. Free software under GNU General Public License (GPL).
License: GPL-2
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,
but starting from Version 2.0, it can also be used for generating Java, C++, and C.
.
Given a Labelled BNF grammar the tool produces:
an abstract syntax as a Haskell/C++/C 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, or Bison parser generator file,
a pretty-printer as a Haskell/Java/C++/C module,
a Latex file containing a readable specification of the language.
Extra-source-files: src/BNF.cf CHANGELOG.md
tested-with:
GHC == 9.8.1
GHC == 9.6.3
GHC == 9.4.7
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
-- Build failures with older GHCs
Source-repository head
type: git
location: https://github.com/BNFC/bnfc.git
subdir: source
Library
hs-source-dirs: runtime, src
Build-Depends: base>=4.8 && <5, array
default-language: Haskell2010
exposed-modules:
Algebra.RingUtils
Data.Pair
Data.Matrix.Quad
Data.Matrix.Class
Parsing.Chart
Parsing.TestProgram
Executable bnfc
Build-Depends:
base>=4.8 && <5,
mtl,
directory,
array,
process,
containers,
pretty >=1.1 && <1.2,
filepath,
deepseq
build-tools: alex, happy
Main-is: Main.hs
HS-source-dirs: src/
default-language: Haskell2010
ghc-options: -fwarn-incomplete-patterns
Other-modules:
-- generated by cabal
Paths_BNFC,
-- Generated by bnfc
LexBNF,
ParBNF,
AbsBNF,
PrintBNF,
ErrM,
-- BNFC core
BNFC.Utils,
BNFC.CF,
BNFC.ToCNFCore,
BNFC.MultiView,
BNFC.TypeChecker,
BNFC.GetCF,
BNFC.Backend.Base
BNFC.Backend.Common.Makefile,
BNFC.Backend.Common.NamedVariables,
BNFC.Backend.Common.OOAbstract,
BNFC.Backend.Common.StrUtils,
BNFC.Options,
BNFC.WarningM,
Data.Pair,
-- Documentation backends
BNFC.Backend.Latex,
BNFC.Backend.Txt2Tag,
-- Haskell backend
BNFC.Backend.Haskell,
BNFC.Backend.Haskell.ToCNF,
BNFC.Backend.Haskell.RegToAlex,
BNFC.Backend.Haskell.CFtoTemplate,
BNFC.Backend.Haskell.CFtoAlex3,
BNFC.Backend.Haskell.CFtoAlex2,
BNFC.Backend.Haskell.CFtoAlex,
BNFC.Backend.Haskell.CFtoHappy,
BNFC.Backend.Haskell.CFtoPrinter,
BNFC.Backend.Haskell.CFtoAbstract,
BNFC.Backend.Haskell.CFtoLayout,
BNFC.Backend.Haskell.MkErrM,
BNFC.Backend.Haskell.MkSharedString,
BNFC.Backend.Haskell.HsOpts,
-- Profile
BNFC.Backend.HaskellProfile,
BNFC.Backend.HaskellProfile.CFtoHappyProfile,
-- Haskell GADT
BNFC.Backend.HaskellGADT,
BNFC.Backend.HaskellGADT.HaskellGADTCommon,
BNFC.Backend.HaskellGADT.CFtoPrinterGADT,
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.CFtoCPrinter,
BNFC.Backend.C.CFtoCSkel,
BNFC.Backend.C.CFtoBisonC,
BNFC.Backend.C.CFtoFlexC,
BNFC.Backend.C.CFtoCAbs,
BNFC.Backend.CPP.NoSTL.CFtoCVisitSkel,
-- C++ backend
BNFC.Backend.CPP.NoSTL,
BNFC.Backend.CPP.NoSTL.RegToFlex,
BNFC.Backend.CPP.NoSTL.CFtoFlex,
BNFC.Backend.CPP.NoSTL.CFtoBison,
BNFC.Backend.CPP.NoSTL.CFtoCPPPrinter,
BNFC.Backend.CPP.NoSTL.CFtoCPPAbs,
-- C++ STL backend
BNFC.Backend.CPP.STL,
BNFC.Backend.CPP.STL.CFtoBisonSTL,
BNFC.Backend.CPP.STL.CFtoSTLAbs,
BNFC.Backend.CPP.STL.STLUtils,
BNFC.Backend.CPP.STL.CFtoCVisitSkelSTL,
BNFC.Backend.CPP.STL.CFtoSTLPrinter,
-- C# backend
BNFC.Backend.CSharp,
BNFC.Backend.CSharp.RegToGPLEX,
BNFC.Backend.CSharp.CFtoGPLEX,
BNFC.Backend.CSharp.CSharpUtils,
BNFC.Backend.CSharp.CFtoCSharpPrinter,
BNFC.Backend.CSharp.CAbstoCSharpAbs,
BNFC.Backend.CSharp.CAbstoCSharpAbstractVisitSkeleton,
BNFC.Backend.CSharp.CAbstoCSharpVisitSkeleton,
BNFC.Backend.CSharp.CFtoGPPG,
-- Java backend
BNFC.Backend.Java
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
-- XML backend
BNFC.Backend.XML
-- --- Testing --------------------------------------------------------------
Test-suite unit-tests
Type: exitcode-stdio-1.0
Build-Depends: base>=4.8 && <5, mtl, directory, array, process, filepath, pretty,
hspec, QuickCheck >= 2.5, HUnit,
temporary, containers, deepseq
build-tools: alex, happy, hspec-discover
Main-is: unit-tests.hs
HS-source-dirs: src test/
default-language: Haskell2010
Other-modules:
BNFC.Backend.Common.MakefileSpec
BNFC.OptionsSpec
BNFC.WarningMSpec
-- need to be there for alex to work
LexBNF
ParBNF