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