Name: BNFC Version: 2.9.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 == 7.10.3 GHC == 8.0.2 GHC == 8.2.2 GHC == 8.4.4 GHC == 8.6.5 GHC == 8.8.4 GHC == 8.10.4 GHC == 9.0.1 Extra-source-files: README.md CHANGELOG.md -- LICENSE is automatically included Makefile src/BNFC.cf src/Makefile stack-9.0.1.yaml stack-8.10.4.yaml stack-8.10.3.yaml stack-8.10.2.yaml stack-8.8.4.yaml stack-8.8.3.yaml stack-8.8.2.yaml stack-8.6.5.yaml stack-8.6.4.yaml stack-8.4.4.yaml stack-8.2.2.yaml stack-8.0.2.yaml stack-7.10.3.yaml Source-repository head type: git location: git://github.com/BNFC/bnfc.git subdir: source Source-repository this type: git location: git://github.com/BNFC/bnfc.git subdir: source tag: v2.9.1 -- Setup using https://github.com/haskellari/cabal-doctest custom-setup setup-depends: base >= 4 && <5, Cabal >= 2.0, 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 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, mtl >= 2.2.1, directory, array, process, containers, pretty >=1.1 && <1.2, filepath, deepseq, string-qq, time if impl(ghc < 8.0) build-depends: semigroups build-tool-depends: alex:alex, happy:happy hs-source-dirs: src 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 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 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.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.PrettyPrinter BNFC.Backend.CPP.Makefile BNFC.Backend.CPP.Naming BNFC.Backend.CPP.NoSTL BNFC.Backend.CPP.NoSTL.CFtoFlex BNFC.Backend.CPP.NoSTL.CFtoBison 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 -- 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.0) 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 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