Home | History | Annotate | Download | only in Ruby
      1 === 1.8.5 / 10-21-10
      2 
      3 * 1 Bug Fix
      4   - fixed ANTLR3::InteractiveStringStream to work with Ruby 1.9. The lexer main script
      5     should function in interactive mode for Ruby 1.9 now.
      6 
      7 === 1.8.4 / 10-08-10
      8 
      9 * 1 Bug Fix
     10   - removed directory dependency from tasks created by ANTLR3::Task, which caused
     11     compilation to be performed twice in some situations
     12 
     13 === 1.8.3 / 10-08-10
     14 
     15 * 2 Bug Fixes
     16   - fixed typo in TokenRewriteStream#cast_range
     17   - added work-around code to handle the lack of support for StopIteration in Rubinius
     18 
     19 === 1.8.2 / 10-02-10
     20 
     21 * Bug Fix: removed references to Parser#token_stream
     22   - changed references to Parser#token_stream to Parser#input in `antlr3/profile.rb' to
     23     avoid "private method token_stream called" errors in profile mode
     24 
     25 * Minor Enhancement: new samples included with the distribution
     26   - added a newly developed `samples/JavaScript.g' file for parsing JavaScript.
     27     While not entirely complete and flawless, it does a pretty good job
     28     of parsing JavaScript up through Firefox's 1.6 version of the language.
     29   - included the `samples/standard' directory with the package distribution,
     30     which has been in the development repository for a while, but I never
     31     updated the package spec to include these files.
     32 
     33 === 1.8.0 / 07-03-10
     34 
     35 * Bug Fix / Major Enhancement: made antlr3 compatible with ruby 1.9
     36   - altered ANTLR3::StringStream to always have #peek return an integer in both
     37     Ruby 1.8 and 1.9. In 1.9, @data is now an array of code point values and
     38     the new instance variable @string contains the actual string. In Ruby 1.8,
     39     both @data and @string contain the string value.
     40   - lexer code is no longer generated using '?c' character syntax; characters
     41     are now represented as hexadecimal integers to make the code compatible
     42     with Ruby 1.9
     43 
     44 === 1.7.5 / 06-18-10
     45 
     46 * Minor Enhancements
     47   - added #compile! and #clobber! methods to directly invoke the 'compile'
     48     and 'clobber' tasks respectively
     49   
     50 * Bug Fixes
     51   - removed special ruby-stylistic formatting on syntactic predicate method names to
     52     fix a bad bug in code-generation that cropped up in more complex grammars
     53 
     54 === 1.7.2 / 05-16-10
     55 
     56 * Minor Enhancements
     57   - added new #hold convenience method to ANTLR3::CommonTokenStream
     58 
     59 * Bug Fixes
     60   - corrected a typo in ANTLR3::Error#FailedPredicate which caused a
     61     NoMethodError to raise instead of FailedPredicate when semantic
     62     predicates failed
     63 
     64 * Documentation
     65   - added more content to the ruby antlr3 guide
     66   - set up an official project website at
     67     http://antlr.ohboyohboyohboy.org
     68 
     69 === 1.7.0 / 04-20-10
     70 
     71 * Minor Enhancements
     72   - added new #each_on_channel and #walk convenience methods to ANTLR3::CommonTokenStream
     73 
     74 * Bug Fixes
     75   - discovered and fixed a rare but serious bug in the way the output code evaluates
     76     syntactic predicates
     77 
     78 * Documentation
     79   - began developing a more thorough usage guide for the package
     80   - the guide is currently available on GitHub at
     81     http://ohboyohboyohboy.github.com/antlr3
     82 
     83 === 1.6.3 / 02-12-10
     84 
     85 * 4 Minor Enhancements
     86   - added --help and --version options to antlr4ruby
     87   - documented the antlr4ruby source and added license information
     88   - prettied up the source code in all of the library files a little
     89   - added a hoe-based rakefile with the gem distribution of the source code
     90 
     91 === 1.6.0 / 01-27-10
     92 
     93 * 4 Minor Enhancements to runtime library
     94   - CommonTokenStream and subclasses can now also accept another CommonTokenStream
     95     object, serving sort of as a copy constructor. This provides a reasonable way
     96     to cast a CommonTokenStream into a TokenRewriteStream and vice-versa
     97   - CommonTreeNodeStream can take an options hash at the end of any of its various
     98     signatures to provide values for attributes like token_stream
     99   - If a parser is created with a CharacterStream object (i.e., StringStream), it
    100     will also try to cast it by checking for an associated lexer (like it currently
    101     does when created with String or IO objects).
    102   - Template-output mode parsers have a new class method "load_templates( path )"
    103     which will attempt to load the template group file at +path+ and, if successful,
    104     set it to the parser's default template library. (See the CMinus example set for
    105     an example of how this can be used)
    106 
    107 * 2 bug fixes / 1 change to templates
    108   - backtracking was broken in situations where recognition failed when
    109     a semantic predicate was encountered as the template code did not
    110     throw BacktrackingFailed when it was in backtracking mode instead of
    111     PredicateFailed
    112   - rule memoization also had a major bug in that rules that were memoized
    113     after failure did not throw BacktrackingFailed when it was needed
    114   - I changed `attribute scope' structures (not rule return scopes, but
    115     the groups of attributes you can assign to rules with the `scope' keyword),
    116     from being implemented as named constants in the class body to class
    117     variables belonging to the recognizer. As class variables do not need
    118     to follow naming conventions, this provides more freedom in naming without
    119     all of the ugly name mangling. These are generally used privately by parsers,
    120     so it shouldn't be too drastic of a change as to break end user's code.
    121 
    122 === 1.5.0 / 01-25-10
    123 
    124 * 2 minor enhancements
    125   - Added BaseTree#walk, which iterates in a top-down fashion across all notes in a tree.
    126   - Added BaseTree#prune, which stops decent into the current node during BaseTree#walk.
    127 
    128 * 1 optimization
    129   - changed `closure loops' ( uses of the `*' or `+' modifiers ) from using
    130     Kernel#loop to `while true ... end' style loops, which should be slightly
    131     faster
    132 
    133 * new test code
    134   - test/functiona/template-output/template-output.rb serves as a basic
    135     functional test implementation for the new template output mode
    136 
    137 === 1.4.0 / 01-17-10
    138 
    139 * 1 major new feature
    140   - finished basic implementation of a template output mode.
    141   - lib/antlr3/template.rb defines a number of classes for
    142     ERB-based template output translation
    143   - templates/ST.stg defines the Ruby target templates to
    144     generate template output mode recognizers
    145     
    146 * new test code
    147   - added template unit tests at test/unit/test-template.rb
    148   - test/functional/template-output/template-output.rb serves as a basic
    149     functional test implementation for the new template output mode
    150