flexc++ (1.08.00)

  * Added the 'postCode' member to the interface of the class generated by
    flexc++

  * Added the strongly typed PostEnum__ enumeration to the scanner base class
    generated by flexc++

  * Added a chapter `Pre-loading input lines' to the manual

  * The single flexc++ man-page was split into several more specific
    man-pages: 
        flexc++      -- general description, and features of flexc++ itself
        flexc++input -- how to write flexc++'s input files
        flexc++api   -- description of the classes generated by flexc++
        
 -- Frank B. Brokken <f.b.brokken@rug.nl>  Sat, 28 Dec 2013 17:41:52 +0100

flexc++ (1.07.00)

  * --force-* options removed. Use 'rm ...' to remove files if necessary.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Sun, 11 Aug 2013 11:11:11 +0200

flexc++ (1.06.00)

  * Added images to the constructed manual 

  * When the `namespace' option/directive is used then the namespace
    identifier is also used to define the include guards of generated .h
    files.

  * Warnings are issued when options or directives are specified wchich are
    ignored because of an already existing target file (e.g., scanner.h,
    scanner.ih). These warnings are not issued for lex.cc and scannerbase.h,
    which are by default rewritten at each flexc++ run. These warnings are
    issued for the `baseclass-header', `class-name', `implementation-header',
    and `namespace'options/directives.

  * Changed the implementation of 'class Options': it now mimics the
    implementation used by bisonc++

  * This version repairs the `joren-bug' (Reported by Joren Heit on June 7,
    2013). Joren discovered that in some situations rules using the
    LA-operator failed to re-scan the tail part of a RE using the LA-operator.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Tue, 06 Aug 2013 13:46:47 +0200

flexc++ (1.05.00)

  * Removed the possibility to specify path names for the --baseclass-header,
    --class-header, --implementation-header, and --lex-source options
    (and corresponding directives). Alternative path names for generated files
    should be specified using the target-directory option or directive.

  * The man-page and manual have been updated accordingly.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Tue, 28 May 2013 15:43:33 +0200

flexc++ (1.04.00)

  * FBB::Errno calls are replaced by FBB::Exception calls.

  * Added a static cast to generator/inputimplementation.cc (line 74) to get
    rid of a compiler warning.

  * Added %filenames to the directives in the man-page.

  * Added a public member 'interactiveLine()' to the scannerbase's interface
    to refresh the current interactive line buffer with the contents of the
    next interactive line.

  * Repaired erroneous ``^' inside regex loses its special meaning' warnings
    occurring with single line min-scanner REs like this: 
        <mini>^regex

  * ScannerBase::d_more is initialized to false (removes a (harmless) valgrind
    warning).

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Fri, 15 Mar 2013 14:26:35 +0100

flexc++ (1.03.01)

  * Catching FBB::Errno exceptions is replaced by catching std::exception 
    exceptions

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Thu, 24 Jan 2013 21:09:23 +0100

flexc++ (1.03.00)

  * flexc++ returns 0 when called with the -h or -v flags 

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Tue, 27 Nov 2012 21:06:08 +0100

flexc++ (1.02.00)

  * White space may now follow a rule's mini-scanner specification. E.g.,
    <comment>
    {
        rules for the comment mini scanner
    }

  * Usage info now correctly mentions -T as option character with --own-tokens

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Sun, 25 Nov 2012 11:04:34 +0100

flexc++ (1.01.00)

  * Removed 'inline' from skeletons/flexc++.cc

  * Man-page and manual updated

  * The --interactive option was removed (the %interactive directive remains)

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Mon, 05 Nov 2012 11:05:32 +0100

flexc++ (1.00.01)

  * Adapted the INSTALL file to flexc++

  * Added the file 'build-depends' listing specific software and versions that
    are used during flexc++'s compilation and by the final program.

  * Several inconsistencies in the initial sections of flexc++'s user guide
    were repaired.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Sat, 27 Oct 2012 14:49:47 +0200

flexc++ (1.00.00)

  * The following #defines in INSTALL.im can be overruled by defining
    identically named environment variables: 
        CXX      defines the name of the compiler to use. By default `g++'
        CXXFLAGS the options passed to the compiler. 
                 By default `-Wall --std=c++0x -O2 -g'
        LDFLAGS  the options passed to the linker. By default no options are
                 passed to the linker.
        SKEL     the directory where the skeletons are stored

  * Klaas Winter detected a bug in the skeletons/flexc++.cc file:
    switchOstream incorrectly changed the name of the *input* file to "-". 
    The assignment to d_filename was removed from the skeleton file.

  * Klaas Winter detected a bug in CharRange::predefined causing a setfault
    when requesting a negated set of characters (like [:^space:]. The bug was
    caused by removing from the set name all characters from ^ to the end of
    the set name, instead of removing just the ^. Consequently, no character
    selecting function (for [:) could of course be found.

  * By now we're well beyond the 1 year beta testing period, which included
    using flexc++ in bisonc++ and flexc++ itself, as well as the scanner
    generating tool of choice for Frank's C++ course. Considering this
    Jean-Paul and I decided to bump flexc++'s version from version 0.98.00 to
    1.00.00. Removed 
        d_filename = "-"; 
    from the skeleton file's implementation of switchOstream.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Sun, 16 Sep 2012 18:55:53 +0200

flexc++ (0.98.00)

  * Implemented the --case-insensitive option (and directive), generating a
    scanner ignoring letter casing.

  * Several cosmetic changes were implemented

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Fri, 11 May 2012 13:59:54 +0200

flexc++ (0.97.30)

  * This version depends on Bobcat >= 3.00.00

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Thu, 03 May 2012 21:35:05 +0200

flexc++ (0.97.20)

  * George Danchev noticed that flexc++ created files even though parsing
    failed. This flaw's repaired in this release

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Fri, 20 Apr 2012 16:33:01 +0200

flexc++ (0.97.10)

  * Added missing std:: prefixes to numeric_limits calls in skeletons/flexc++
    and generator/tailcount.cc.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Fri, 20 Apr 2012 14:04:55 +0200

flexc++ (0.97.00)

  * Added the --regex-calls option showing the order in which elements from
    regular expressions are processed.

  * Added the --matched-rules option showing the number of matched rules, just
    before their actions are executed.

  * Replaced '#include <climits>' by '#include <limits>' and '..._MAX'
    constants by 'numeric_limits<...>::max()' calls. The same holds true for
    flexc++'s skeletons. 

  * The files parser/parserbase.h and parser/parse.cc were added to the
    archive, and the check for changes in the parser's grammar was removed
    from 'build program' to remove the program's build process dependency on
    bisonc++. To recreate the program for a new parser use 'build parser'.

  * Skeletons can use fields (again) at $insert directives to specifiy
    subcases. This is documented in generator/insert.cc, and used to generate
    option specific code for --matched-rules (see skeletons/flexc++.cc at
    debug.R). 

  * Flexc++ itself now uses a parser defining and using polymorphic semantic
    values. To recreate the parser (but note that this is *not* required when
    compiling flexc++ from the source archive), bisonc++ > 4.00.00 is
    required. 

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Sat, 14 Apr 2012 13:44:00 +0200

flexc++ (0.96.00)

  * Harold Bruintje noticed that rules explicitly assigned to the INITIAL mini
    scanner are also used by other %s (inclusive) mini scanners. This is in
    violation of the description given in 

        http://pubs.opengroup.org/onlinepubs/7908799/xcu/lex.html

    stating

        `When the generated scanner is in a %s state, patterns with no state
        specified will be also active' 

    which excludes <INTIAL> regex rules.

    This release implements %s mini scanner handling as described in lex.html.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Thu, 29 Mar 2012 09:02:57 +0200

flexc++ (0.95.00)

  * Removed %max-depth again: should only be an option, not a directive 

  * Starting this release all release tags (using names that are identical to
    the version number, so for this release the tag is 0.95.00) are signed to
    allow authentication.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Mon, 27 Feb 2012 13:28:44 +0100

flexc++ (0.94.00)

  * Added the --max-depth option defining the maximum lexical scanner
    specification file depth (and %max-depth directive).

  * Using a vector rather than a a stack to store stacked streams, to allow
    the Scanner class (read) access to the number of stacked files and their
    names. 

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Thu, 23 Feb 2012 11:53:06 +0100

flexc++ (0.93.00)

  * Redesigned the interactive scanner: no additional protected data members,
    an additional member (interactiveLine__) now handles the line-refresh from
    the input stream.

  * In interactive mode, lineNr() increments at each next interactive line.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Mon, 20 Feb 2012 09:58:34 +0100

flexc++ (0.92.00)

  * Added 'leave(int retValue)' member that can be called from members called
    from the scanner specification's actions to end the action, returning
    'retValue' from 'lex()'

  * Sanitized switch- and pushStream members for interactive and
    non-interactive scanners

  * Added missing d_atBOL = true assignment in pushStream, detected by Jurjen
    Bokma.

  * All man-pages combined into one man-page: flexc++(1).

  * Implemented --filenames, --print-tokens and --own-tokens
    options/directives 

  * Manual and man-pages updated

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Fri, 17 Feb 2012 14:13:27 +0100

flexc++ (0.91.00)

  * Jurjen Bokma found a segfault in action blocks at the end of files not
    ending in '\n'. Caused by Input's d_in == 0 after an earlier EOF
    detection, and then calling d_in->get(). Repaired by testing for d_in == 0

  * Added --target-directory option (and directive) to define where the
    generated files should be written if not at the default (lexer) location.

  * The earlier minor versions should have been .9 rather than .09. Same for
    the 0.08 series of changes. Version now (properly) set to 0.9x.yy.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Sat, 11 Feb 2012 13:44:10 +0100

flexc++ (0.09.52)

  * The Scannner(std::string infile, std::string outfile) and 
    switchStreams(std::string infile, std::string outfile) members now also 
    accept outfile == "", in which case std::cerr is used as the scanner's
    output stream.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Wed, 08 Feb 2012 11:48:28 +0100

flexc++ (0.09.51)

  * Rebased release.yo in flexc++'s main directory, and no longer in its
    parent, where it would contaminate  Debian's area outside of flexc++'s
    build-area. 

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Mon, 06 Feb 2012 21:11:42 +0100

flexc++ (0.09.50)

  * At the beginning of its Debian life-cycle, flexc++'s changelog is
    maintained again. This changelog does not reflect changes beyond version
    0.08.04 and before 0.09.50. Logs for those versions can be obtained using
    git. Currently (and until further notice) the primary git archive location
    is http://www.icce.rug.nl/git/flexc++.git. Flexc++'s official web location
    is http://www.flexcpp.org (badly in need of an update, though).

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Mon, 06 Feb 2012 16:55:18 +0100

flexc++ (0.08.04)

  * Implemented the %interactive option and --interactive flag to generate an
    interactive scanner.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Sun, 15 Jan 2012 13:07:52 +0100

flexc++ (0.08.03)

  * Repaired Jean-Paul's segfault for a simple scanner:
        .*/b
        .*
  * Standardized the version to format v.mm.ss

  * This version after merging fbb-wip Sat Jan 14 11:48:38 2012 +0100
    (9ecf7b694c7e3f37a1e8f3d46b25e96c5d5e3d90) and master, a.k.a. tag
    0.7.1-pre

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Sat, 14 Jan 2012 13:43:22 +0100

flexc++ (0.8.2)

  * Added ScannerBase::switchStreams(istream &, ostream &) and updated the
    man-pages accordingly

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Fri, 30 Dec 2011 17:32:16 +0100

flexc++ (0.8.1)

  * Added missing ' ' and ':' characters to character-classes

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Thu, 29 Dec 2011 22:23:50 +0100

flexc++ (0.8.0)

  * Rebuilt of flexc++, see the git logs for details. Intermediate version
    updates not separately logged before this date.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Mon, 11 Jul 2011 12:58:12 +0200

flexc++ (0.0.0)

  * Project Start.

 -- Frank B. Brokken <f.b.brokken@rug.nl>  Fri, 18 Apr 2008 23:29:36 +0200

