=== 1.8.5 / 10-21-10

* 1 Bug Fix
  - fixed ANTLR3::InteractiveStringStream to work with Ruby 1.9. The lexer main script
    should function in interactive mode for Ruby 1.9 now.

=== 1.8.4 / 10-08-10

* 1 Bug Fix
  - removed directory dependency from tasks created by ANTLR3::Task, which caused
    compilation to be performed twice in some situations

=== 1.8.3 / 10-08-10

* 2 Bug Fixes
  - fixed typo in TokenRewriteStream#cast_range
  - added work-around code to handle the lack of support for StopIteration in Rubinius

=== 1.8.2 / 10-02-10

* Bug Fix: removed references to Parser#token_stream
  - changed references to Parser#token_stream to Parser#input in `antlr3/profile.rb' to
    avoid "private method token_stream called" errors in profile mode

* Minor Enhancement: new samples included with the distribution
  - added a newly developed `samples/JavaScript.g' file for parsing JavaScript.
    While not entirely complete and flawless, it does a pretty good job
    of parsing JavaScript up through Firefox's 1.6 version of the language.
  - included the `samples/standard' directory with the package distribution,
    which has been in the development repository for a while, but I never
    updated the package spec to include these files.

=== 1.8.0 / 07-03-10

* Bug Fix / Major Enhancement: made antlr3 compatible with ruby 1.9
  - altered ANTLR3::StringStream to always have #peek return an integer in both
    Ruby 1.8 and 1.9. In 1.9, @data is now an array of code point values and
    the new instance variable @string contains the actual string. In Ruby 1.8,
    both @data and @string contain the string value.
  - lexer code is no longer generated using '?c' character syntax; characters
    are now represented as hexadecimal integers to make the code compatible
    with Ruby 1.9

=== 1.7.5 / 06-18-10

* Minor Enhancements
  - added #compile! and #clobber! methods to directly invoke the 'compile'
    and 'clobber' tasks respectively
  
* Bug Fixes
  - removed special ruby-stylistic formatting on syntactic predicate method names to
    fix a bad bug in code-generation that cropped up in more complex grammars

=== 1.7.2 / 05-16-10

* Minor Enhancements
  - added new #hold convenience method to ANTLR3::CommonTokenStream

* Bug Fixes
  - corrected a typo in ANTLR3::Error#FailedPredicate which caused a
    NoMethodError to raise instead of FailedPredicate when semantic
    predicates failed

* Documentation
  - added more content to the ruby antlr3 guide
  - set up an official project website at
    http://antlr.ohboyohboyohboy.org

=== 1.7.0 / 04-20-10

* Minor Enhancements
  - added new #each_on_channel and #walk convenience methods to ANTLR3::CommonTokenStream

* Bug Fixes
  - discovered and fixed a rare but serious bug in the way the output code evaluates
    syntactic predicates

* Documentation
  - began developing a more thorough usage guide for the package
  - the guide is currently available on GitHub at
    http://ohboyohboyohboy.github.com/antlr3

=== 1.6.3 / 02-12-10

* 4 Minor Enhancements
  - added --help and --version options to antlr4ruby
  - documented the antlr4ruby source and added license information
  - prettied up the source code in all of the library files a little
  - added a hoe-based rakefile with the gem distribution of the source code

=== 1.6.0 / 01-27-10

* 4 Minor Enhancements to runtime library
  - CommonTokenStream and subclasses can now also accept another CommonTokenStream
    object, serving sort of as a copy constructor. This provides a reasonable way
    to cast a CommonTokenStream into a TokenRewriteStream and vice-versa
  - CommonTreeNodeStream can take an options hash at the end of any of its various
    signatures to provide values for attributes like token_stream
  - If a parser is created with a CharacterStream object (i.e., StringStream), it
    will also try to cast it by checking for an associated lexer (like it currently
    does when created with String or IO objects).
  - Template-output mode parsers have a new class method "load_templates( path )"
    which will attempt to load the template group file at +path+ and, if successful,
    set it to the parser's default template library. (See the CMinus example set for
    an example of how this can be used)

* 2 bug fixes / 1 change to templates
  - backtracking was broken in situations where recognition failed when
    a semantic predicate was encountered as the template code did not
    throw BacktrackingFailed when it was in backtracking mode instead of
    PredicateFailed
  - rule memoization also had a major bug in that rules that were memoized
    after failure did not throw BacktrackingFailed when it was needed
  - I changed `attribute scope' structures (not rule return scopes, but
    the groups of attributes you can assign to rules with the `scope' keyword),
    from being implemented as named constants in the class body to class
    variables belonging to the recognizer. As class variables do not need
    to follow naming conventions, this provides more freedom in naming without
    all of the ugly name mangling. These are generally used privately by parsers,
    so it shouldn't be too drastic of a change as to break end user's code.

=== 1.5.0 / 01-25-10

* 2 minor enhancements
  - Added BaseTree#walk, which iterates in a top-down fashion across all notes in a tree.
  - Added BaseTree#prune, which stops decent into the current node during BaseTree#walk.

* 1 optimization
  - changed `closure loops' ( uses of the `*' or `+' modifiers ) from using
    Kernel#loop to `while true ... end' style loops, which should be slightly
    faster

* new test code
  - test/functiona/template-output/template-output.rb serves as a basic
    functional test implementation for the new template output mode

=== 1.4.0 / 01-17-10

* 1 major new feature
  - finished basic implementation of a template output mode.
  - lib/antlr3/template.rb defines a number of classes for
    ERB-based template output translation
  - templates/ST.stg defines the Ruby target templates to
    generate template output mode recognizers
    
* new test code
  - added template unit tests at test/unit/test-template.rb
  - test/functional/template-output/template-output.rb serves as a basic
    functional test implementation for the new template output mode
