Difference between revisions of "Flexc++"

From Free Software Directory
Jump to: navigation, search
(Created page with "{{Entry |Name=flexc++ |Short description=lexical scanner generator generating C++ sources |Full description=Flexc++ was designed after `flex'. Flexc++ offers as compared to fl...")
 
 
(One intermediate revision by one other user not shown)
Line 33: Line 33:
  
 
Alternatively, binary ready-to-install versions of flexc++ are
 
Alternatively, binary ready-to-install versions of flexc++ are
available in verious Linux distributions, in particular Debian. See, e.g.,
+
available in verious GNU/Linux distributions, in particular Debian. See, e.g.,
 
https://packages.debian.org/search?keywords=flexc%2B%2B&searchon=names&suite=all&section=all
 
https://packages.debian.org/search?keywords=flexc%2B%2B&searchon=names&suite=all&section=all
  
Line 46: Line 46:
 
|User level=advanced
 
|User level=advanced
 
|Accepts cryptocurrency donations=No
 
|Accepts cryptocurrency donations=No
 +
|OpenPGP public key=http://pgp.surfnet.nl/pks/lookup?op=get&search=0x7DB2A8BEEAE4D8AA
 
|Test entry=No
 
|Test entry=No
 
|Is GNU=No
 
|Is GNU=No

Latest revision as of 16:44, 24 June 2022


[edit]

flexc++

https://fbb-git.gitlab.io/flexcpp/
lexical scanner generator generating C++ sources

Flexc++ was designed after `flex'. Flexc++ offers as compared to flex's C++ option a cleaner class-design.

Flexc++ generates a scanner class that is ready for use, as well as a member function producing the lexical scanner tokens (lex()). The class can easily be provided with additional members without the need for polymorphic functions. Consequently, classes generated by flexc++ have no virtual members and actually have but one public member: lex(), replacing the old-style flex and flex++ yylex() function.

Flexc++ offers many options, among which an option to define classes generated by flexc++ in a separate namespace. This allows developers to define additional symbols, even outside of the class generated by flexc++, without encountering name-collision problems. With flexc++, artificial means to prevent name-collisions, like the yy-conventions used by flex and flex++ are no longer required. Flexc++ generates C++ code. If C code is required, flex should be used. Flexc++'s grammar requirements are highly compatible with flex's requirements, so converting a flex grammar into a flexc++ grammar should be fairly simple.

In addition to the flexc++ scanner generator itself and several skeleton files, the package contains an extensive man-page, as well as a full manual rewritten after the original flex manual, and several examples.


To create the program from its sources, either descend into the flexc++ 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 flexc++ are available in verious GNU/Linux distributions, in particular Debian. See, e.g., https://packages.debian.org/search?keywords=flexc%2B%2B&searchon=names&suite=all&section=all

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





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.