Nov
03
2011

Flex++/Bison++ Downloads

flex++ and bison++ were created from flex and bison by A. Coetmeur in the 1990s. These two programs provided seamless integration with C++, allowing developers to code actions in C++ and call private member functions of a parent class. This makes it straightforward to embed a parser and scanner by private inheritance, creating a clean “compiler” class which need expose only the results of the parsing. For these and other reasons, flex++ and bison++ impressed me as being well-engineered when I first discovered them, and I still prefer their approach to C++ integration.

Releases of flex++ and bison++ ended in 1993 and they fell out of date as C++, gcc, flex,and bison all evolved. New releases of gcc would often reject the generated parser and lexer code because it no longer conformed to the evolving C++ standard. To keep two legacy programs that used flex++ and bison++ afloat, I was making hasty, on-the-fly patches whenever a new version of gcc arrived.

No pre-built flex++/bison++ packages are available for openSUSE (as of this post). So recently I loaded the 1993 releases into Google Project Hosting and updated them more carefully to build cleanly under gcc 4.5 and generate code that compiles and links cleanly under g++ 4.5. I also added a configure file to flex++, which was so old it didn’t have one.

If you’ve arrived here by following the Contact Page link from the Google Project page, leave a comment and I’ll get back to you.

posted in Software by Bozzie

2 Comments to "Flex++/Bison++ Downloads"

  1. Gerald Lindsly wrote:

    I am trying to build flex++-2.3.8-45 under Ubuntu 11.04 and getting some link errors on ‘flexscan’ and ‘set_input_file’. I am using byacc-20100610 for yacc and flex-2.5.35. What do I need to do to resolve these two undefined references?

    I would appreciate any guidance you can give me. In the meantime, I’ll dig into the source and see if I can figure out what to substitute.

    Sincere regards,
    Gerald.

  2. Bozzie wrote:

    Hi Gerald,

    Fixes to the issues you discovered have been checked in as rev 26.

    Thanks for your help tracking down the problems and testing the fixes.

 
Powered by Wordpress and MySQL. Theme by openark.org