BNFC: A compiler front-end generator.
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.
[Skip to Readme]
Modules
[Index] [Quick Jump]
- BNFC
- BNFC.Abs
- Backend
- BNFC.Backend.Agda
- BNFC.Backend.Base
- BNFC.Backend.C
- CPP
- BNFC.Backend.Common
- BNFC.Backend.Haskell
- BNFC.Backend.HaskellGADT
- BNFC.Backend.Java
- BNFC.Backend.Java.CFtoAbstractVisitor
- BNFC.Backend.Java.CFtoAllVisitor
- BNFC.Backend.Java.CFtoAntlr4Lexer
- BNFC.Backend.Java.CFtoAntlr4Parser
- BNFC.Backend.Java.CFtoComposVisitor
- BNFC.Backend.Java.CFtoCup15
- BNFC.Backend.Java.CFtoFoldVisitor
- BNFC.Backend.Java.CFtoJLex15
- BNFC.Backend.Java.CFtoJavaAbs15
- BNFC.Backend.Java.CFtoJavaPrinter15
- BNFC.Backend.Java.CFtoVisitSkel15
- BNFC.Backend.Java.RegToAntlrLexer
- BNFC.Backend.Java.RegToJLex
- BNFC.Backend.Java.Utils
- BNFC.Backend.Latex
- BNFC.Backend.OCaml
- BNFC.Backend.Pygments
- BNFC.Backend.Txt2Tag
- BNFC.Backend.XML
- BNFC.CF
- Check
- BNFC.GetCF
- BNFC.Lex
- BNFC.Lexing
- BNFC.License
- BNFC.Options
- BNFC.Par
- BNFC.PrettyPrint
- BNFC.Print
- BNFC.Regex
- BNFC.TypeChecker
- BNFC.Utils
Downloads
- BNFC-2.9.5.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 2.4.1.1, 2.4.1.2, 2.4.2.0, 2.4.2.1, 2.5.0, 2.5.0.1, 2.6.0.0, 2.6.0.1, 2.6.0.2, 2.6.0.3, 2.7.0.0, 2.7.0.1, 2.7.0.2, 2.7.1, 2.8, 2.8.1, 2.8.2, 2.8.3, 2.8.3.1, 2.8.4, 2.9.0, 2.9.1, 2.9.2, 2.9.3, 2.9.4, 2.9.4.1, 2.9.5 (info) |
---|---|
Change log | CHANGELOG.md |
Dependencies | array, base (>=4.8 && <5), BNFC, containers, deepseq, directory, filepath, mtl (>=2.2.1), pretty (>=1.1 && <1.2), process, semigroups, string-qq, time, transformers [details] |
Tested with | ghc ==9.6.2, ghc ==9.4.5, 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 |
License | BSD-3-Clause |
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. |
Author | |
Maintainer | bnfc-dev@googlegroups.com |
Category | Parsing |
Home page | https://bnfc.digitalgrammars.com/ |
Bug tracker | https://github.com/BNFC/bnfc/issues |
Source repo | head: git clone https://github.com/BNFC/bnfc.git(source) |
Uploaded | by AndreasAbel at 2023-07-26T21:10:14Z |
Distributions | Arch:2.9.5, Debian:2.8.3, FreeBSD:2.8, LTSHaskell:2.9.5, NixOS:2.9.5, Stackage:2.9.5 |
Reverse Dependencies | 2 direct, 0 indirect [details] |
Executables | bnfc |
Downloads | 26739 total (155 in the last 30 days) |
Rating | 2.25 (votes: 2) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2023-07-26 [all 1 reports] |