packages feed

BNFC-2.9.2: BNFC.cabal

Name: BNFC
Version: 2.9.2
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.2

-- 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
    , array
    , containers
    , deepseq
    , directory
    , filepath
    , mtl         >= 2.2.1
    , pretty      >= 1.1   && < 1.2
    , process
    , 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
    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
  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.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