Bisonc++

From Free Software Directory
Revision as of 04:18, 21 December 2019 by Fbb (talk | contribs)
Jump to: navigation, search


[edit]

bisonc++

https://fbb-git.gitlab.io/bisoncpp/
LALR1 parser generator generating C++ code

Bisonc++ is a parser generator like bison, but it generates C++ code

Bisonc++ is a general-purpose parser generator that converts a grammar description for an LALR(1) context-free grammar into a C++ class to parse that grammar. Once you are proficient with bisonc++, you may use it to develop a wide range of language parsers, from those used in simple desk calculators to complex programming languages.

Bisonc++ is highly comparable to the program bison++, written by Alain Coetmeur: all properly-written bison++ grammars ought to be convertible to bisonc++ grammars after very little or no change. Anyone familiar with bison++ or its precursor, bison, should be able to use bisonc++ with little trouble. You need to be fluent in using the C++ programming in order to use bisonc++.

Bisonc++ expands the concepts initially implemented in bison and bison++, offering a cleaner setup of the generated parser class. The parser class is derived from a base-class, mainly containing the parser's token- and type-definitions as well as several member func- tions which should not be modified by the programmer.

To create the program from its sources, either descend into the bisonc++ directory, or unpack a created archive, cd into its top-level directory and follow the instructions provided in the INSTALL file found there.

Alternatively, binary ready-to-install versions of the Bisonc++ parser generator are available in verious GNU/Linux distributions, in particular Debian. See, e.g., https://packages.debian.org/search?keywords=bisonc%2B%2B&searchon=names&suite=all&section=all

Gitlab's web-pages for Bisonc++ are here: https://fbb-git.gitlab.io/bisoncpp/





Licensing

Leaders and contributors

Resources and communication

Software prerequisites




Entry









Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.