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 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.
[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.4.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
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 && <2.3), pretty (>=1.1 && <1.2), process, semigroups, string-qq, time [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, Fabian Ruch, and Aarne Ranta 2002 - 2021. Free software under the BSD 3-clause license. |
Author | |
Maintainer | bnfc-dev@googlegroups.com |
Revised | Revision 1 made by AndreasAbel at 2023-07-26T22:25:42Z |
Category | Parsing |
Home page | http://bnfc.digitalgrammars.com/ |
Bug tracker | https://github.com/BNFC/bnfc/issues |
Source repo | head: git clone https://github.com/BNFC/bnfc.git(source) this: git clone https://github.com/BNFC/bnfc.git(tag v2.9.4)(source) |
Uploaded | by AndreasAbel at 2022-02-17T17:38:38Z |
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 | 26758 total (98 in the last 30 days) |
Rating | 2.25 (votes: 2) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |