Name: BNFC
Version: 2.8
cabal-version: >= 1.8
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: 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,
  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 TODO changelog

Source-repository head
  type: git
  location: https://github.com/BNFC/bnfc.git
  subdir: source

Library
  hs-source-dirs: runtime, src
  Build-Depends: base>=4.4 && <5, array
  exposed-modules:
   Algebra.RingUtils
   Data.Pair
   Data.Matrix.Quad
   Data.Matrix.Class
   Parsing.Chart
   Parsing.TestProgram

Executable bnfc
  Build-Depends:
    base>=4.4 && <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/
  ghc-options:     -W
  extensions: OverloadedStrings RecordWildCards FlexibleContexts
  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.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.WarningM,
    Data.Pair,
    BNFC.Backend.Utils,
    BNFC.PrettyPrint,

    -- 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,
    BNFC.Backend.Haskell.Utils,
    -- Profile
    BNFC.Backend.HaskellProfile,
    BNFC.Backend.HaskellProfile.CFtoHappyProfile,
    -- 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.CPP.NoSTL.CFtoCVisitSkel,

    -- C++ backend
    BNFC.Backend.CPP.NoSTL,
    BNFC.Backend.CPP.PrettyPrinter,
    BNFC.Backend.CPP.NoSTL.RegToFlex,
    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,

    -- 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

    -- Pygments backend
    BNFC.Backend.Pygments

-- --- Testing --------------------------------------------------------------
Test-suite unit-tests
  Type: exitcode-stdio-1.0
  Build-Depends: base>=4 && <5, mtl, directory, array, process, filepath, pretty,
                 hspec, QuickCheck >= 2.5, HUnit,
                 temporary, containers, deepseq
  Main-is: unit-tests.hs
  HS-source-dirs: src test
  extensions: OverloadedStrings RecordWildCards FlexibleContexts
  Other-modules:
   BNFC.Backend.Common.MakefileSpec
   BNFC.Backend.Haskell.CFtoHappySpec
   BNFC.Backend.HaskellGADTSpec
   BNFC.Backend.HaskellSpec
   BNFC.OptionsSpec
   BNFC.WarningMSpec
   -- need to be there for alex to work
   LexBNF
   ParBNF

Test-suite bnfc-doctests
  type:           exitcode-stdio-1.0
  ghc-options:    -threaded
  main-is:        doctests.hs
  build-depends:  base, doctest >= 0.8
  HS-source-dirs: test
