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