Copyright © 1996-1998, Compiler Resources, Inc.
Updating from Revision 2.0 to Revision 2.1

Yacc++ and the Language Objects Library

Revision 2.1 Release Notes

Windows NT/95 (32 bit compilers) -- July 1996

The latest release of Yacc++ and the Language Objects Library is Revision 2.1. It was prepared based on feedback we received on Revision 2.0. This version was system tested with Microsoft Visual C++ 4.1 on Windows NT 3.51.

Unix Platforms -- March 1997

The latest release of Yacc++ and the Language Objects Library for Unix Systems is Revision 2.1 March 1997. It was prepared based on feedback we received on Revision 2.0 and Revision 2.1 on Windows NT/95.

Please see HP-UX Upgrade FAQ for Revision 2.1 information specific to the HP-UX platform.

What's New at Revision 2.1

Improvements to the AST Implementation

Option -no_ast_dump is a new yxx command line option which gives you control of whether your generated AST classes include yy_dump() and validity checking member functions.

The generation of the AST destructor code by yxx was re-ordered so user supplied destructor code comes before cleanup code. This allows your code to access the tree before it is destroyed.

Improvements for Using Yacc++ with the Microsoft Foundation Classes

Tutorial PRECMFC -- Test Driving Yacc++ with Microsoft MFC Visual C++ is a new tutorial. It provides an example of integrating Yacc++ lexer and parser objects within windowed applications. It integrates expression parsing from Tutorial PREC into a Windows application built with Microsoft Foundation Classes.

Option -microsoft_precompiled_header is a new yxx command line option which generates source files which are usable with Microsoft Visual C++ pre-compiled headers via "stdafx.h".

\yxx\inc.mfc and \yxx\lib.mfc are new sub-directories which provide a version of the Language Objects Library specifically for use within MFC based windowed applications.

Bug Fixes

yxx: mutually recursive rules are fixed.

Language Objects Library: A memory leak was fixed when using nested input files (two copies of the buffer object were being made). Also, some fixes to error reporting and tracing.

Odds and Ends

Minor changes were made to keep current with the changes to ANSI C++ and for portability to new compiler revisions. Added clean targets to prog makefiles.

New Documentation

A major documentation upgrade to a newly revised Revision 2.0 documentation set was previously made available to 2.0 licensees. It contains the Installation Guide, Reference Guide, Tutorial Guide, and unified Index in one 3 ring binder.

Revision 2.1 Update Sheets are available to convert the new Revision 2.0 documentation to a fully updated and indexed Revision 2.1 version. They are 3 hole punched and easily inserted into the binder to complete the update.

If you have not already upgraded to the 3 ring binder documentation, order the complete Revision 2.1 Documentation Set, not the Revision 2.1 Update Sheets.

New Platforms

In 1995, we started shipping a Windows NT/95 (32 bit compilers) version of Yacc++ separately from the DOS/Windows (16 bit compilers) version. Current DOS/Windows customers have the option to change their license from DOS/Windows to NT/95 at this upgrade.

We also added native platform support for Yacc++ on DEC Alpha Unix and SGI Irix. These versions join the DOS/Windows, HP-UX, OS/2, SPARC/SunOS, and SPARC/Solaris versions of Yacc++ and the Language Objects Library.

Upgrading Revision 2.0 to Revision 2.1

The upgrade effort from Revision 2.0 to Revision 2.1 is minimal. No changes are needed to your grammars or code. If you are using automatic AST construction, you will have to re-generate tables and recompile because the AST base classes had their names changed. Re-generating tables and recompiling is recommended for all applications.


Last updated on October 8, 1998. To send email to Compiler Resources, Inc.

Return to Yacc++ Home Page