You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
6.2 KiB
150 lines
6.2 KiB
4 months ago
|
=== 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
|