xref: /aosp_15_r20/external/antlr/runtime/Ruby/History.txt (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
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