antlr/CHANGES.txt

407 lines
12 KiB
Plaintext
Raw Normal View History

2012-09-19 02:01:52 +08:00
ANTLR v4 Honey Badger
2013-06-30 03:15:27 +08:00
June 30, 2013 -- 4.1 release
2013-06-25 05:22:36 +08:00
June 24, 2013
* Resize ANTLRInputStream.data after reading a file with fewer characters than
bytes
* Fix ATN created for non-greedy optional block with multiple alternatives
* Support Unicode escape sequences with indirection in JavaUnicodeInputStream
(fixes #287)
* Remove the ParserRuleContext.altNum field (fixes #288)
* PredictionContext no longer implements Iterable<SingletonPredictionContext>
* PredictionContext no longer implements Comparable<PredictionContext>
* Add the EPSILON_CLOSURE error and EPSILON_OPTIONAL warning
* Optimized usage of closureBusy set (fixes #282)
June 9, 2013
* Add regression test for #239 (already passes)
June 8, 2013
* Support list labels on a set of tokens (fixes #270)
* Fix associativity of XOR in Java LR grammar (fixes #280)
June 1, 2013
* DiagnosticErrorListener includes rule names for each decision in its reports
* Document ANTLRErrorListener and DiagnosticErrorListener (fixes #265)
* Support '\uFFFF' (fixes #267)
* Optimize serialized ATN
May 26, 2013
* Report errors that occur while lexing a grammar (fixes #262)
* Improved error message for unterminated string literals (fixes #243)
May 24, 2013
* Significantly improve performance of JavaUnicodeInputStream.LA(1)
May 20, 2013
* Generate Javadoc for generated visitor and listener interfaces and classes
* Fix unit tests
May 18, 2013
* Group terminals in Java grammars so ATN can collapse sets
* Improved Java 7 support in Java grammars (numeric literals)
* Updated error listener interfaces
* Support detailed statistics in TestPerformance
May 17, 2013
* Add JavaUnicodeInputStream to handle Unicode escapes in Java code
* Proper Unicode identifier handling in Java grammars
* Report file names with lexer errors in TestPerformance
May 14, 2013
* Use a called rule stack to prevent stack overflow in LL1Analyzer
* Use 0-based indexing for several arrays in the tool
* Code simplification, assertions, documentation
May 13, 2013
* Unit test updates to ensure exceptions are not hidden
May 12, 2013
* Updates to TestPerformance
May 5, 2013
* Updated several classes to use MurmurHash 3 hashing
May 1, 2013
* Added parse tree JTree to TreeViewer (Bart Kiers)
April 30, 2013
* Updated TestPerformance to support parallelization across passes
April 24, 2013
* Remove unused stub class ParserATNPathFinder
* Remove ParserInterpreter.predictATN
* Remove DFA.getATNStatesAlongPath
* Encapsulate implementation methods in LexerATNSimulator and ParserATNSimulator
* Updated documentation
* Simplify creation of new DFA edges
* Fix handling of previously cached error edges
* Fix DFA created during forced-SLL parsing (PredictionMode.SLL)
* Extract methods ParserATNSimulator.getExistingTargetState and
ParserATNSimulator.computeTargetState.
April 22, 2013
* Lazy initialization of ParserATNSimulator.mergeCache
* Improved hash code for DFAState
* Improved hash code with caching for ATNConfigSet
* Add new configuration parameters to TestPerformance
* Update Java LR and Java Std to support Java 7 syntax
April 21, 2013
* Add new configuration parameters to TestPerformance
April 18, 2013
* Must check rule transition follow states before eliminating states in
the ATN (fixes #224)
* Simplify ParserATNSimulator and improve performance by combining execDFA and
execATN and using DFA edges even after edge computation is required
April 15, 2013
* Fix code in TestPerformance that clears the DFA
April 12, 2013
* Improved initialization and concurrency control in DFA updates
* Fix EOF handling in edge case (fixes #218)
April 4, 2013
* Improved testing of error reporting
* Fix NPE revealed by updated testing method
* Strict handling of redefined rules - prevents code generation (fixes #210)
* Updated documentation in Tool
March 27, 2013
* Avoid creating empty action methods in lexer (fixes #202)
* Split serialized ATN when it exceeds Java's 65535 byte limit (fixes #76)
* Fix incorrect reports of label type conflicts across separated labeled outer
alternatives (fixes #195)
* Update Maven plugin site documentation
2013-03-27 07:13:11 +08:00
March 26, 2013
2013-06-25 05:22:36 +08:00
* Fix bugs with the closureBusy set in ParserATNSimulator.closure
* Fix handling of empty options{} block (fixes #194)
* Add error 149 INVALID_LEXER_COMMAND (fixes #190)
* Add error 150 MISSING_LEXER_COMMAND_ARGUMENT
* Add error 151 UNWANTED_LEXER_COMMAND_ARGUMENT
2013-03-27 07:54:45 +08:00
* Updated documentation in the Parser and RecognitionException classes
2013-03-27 07:45:59 +08:00
* Refactored and extensively documented the ANTLRErrorStrategy interface and
DefaultErrorStrategy default implementation
2013-03-27 07:23:47 +08:00
* Track the number of syntax errors in Parser.notifyErrorListeners instead of in
the error strategy
2013-03-27 07:13:11 +08:00
* Move primary implementation of getExpectedTokens to ATN, fixes #191
* Updated ATN documentation
* Use UUID instead of incremented integer for serialized ATN versioning
2013-03-27 07:13:00 +08:00
March 7, 2013
* Added export to PNG feature to the parse tree viewer
March 6, 2013
* Allow direct calls to left-recursive rules (fixes #161)
* Change error type 146 (EPSILON_TOKEN) to a warning (fixes #180)
* Specify locale for all format operations (fixes #158)
* Fix generation of invalid Unicode escape sequences in Java code (fixes #164)
* Do not require escape for $ in action when not followed by an ID start char
(fixes #176)
February 23, 2013
* Refactoring Target-related classes to improve support for additional language
targets
February 22, 2013
* Do not allow raw newline characters in literals
* Pair and Triple are immutable; Triple is not a Pair
February 5, 2013
* Fix IntervalSet.add when multiple merges are required (fixes #153)
January 29, 2013
* don't call process() if args aren't specified (Dave Parfitt)
2013-01-21 08:51:11 +08:00
January 21, 2013 -- Release 4.0
2013-01-22 03:15:53 +08:00
* Updated PredictionContext Javadocs
* Updated Maven site documentation
* Minor tweaks in Java.stg
2013-01-15 22:58:00 +08:00
January 15, 2013
* Tweak error messages
* (Tool) Make TokenVocabParser fields `protected final`
2013-01-15 23:19:10 +08:00
* Fix generated escape sequences for literals containing backslashes
2013-01-15 22:58:00 +08:00
2013-01-15 08:06:21 +08:00
January 14, 2013
* Relax parser in favor of errors during semantic analysis
* Add error 145: lexer mode must contain at least one non-fragment rule
* Add error 146: non-fragment lexer rule can match the empty string
2013-01-12 02:55:26 +08:00
January 11, 2013
* Updated error 72, 76; added 73-74 and 136-143: detailed errors about name
conflicts
* Report exact location for parameter/retval/local name conflicts
* Add error 144: multi-character literals are not allowed in lexer sets
* Error 134 now only applies to rule references in lexer sets
* Updated error messages (cleanup)
* Reduce size of _serializedATN by adding 2 to each element: new representation
avoids embedded values 0 and 0xFFFF which are common and have multi-byte
representations in Java's modified UTF-8
2013-01-12 02:55:26 +08:00
2013-01-11 05:00:16 +08:00
January 10, 2013
* Add error 135: cannot assign a value to list label: $label
(fixes antlr/antlr4#128)
January 2, 2013
2013-01-03 03:58:42 +08:00
* Fix EOF handling (antlr/antlr4#110)
* Remove TREE_PARSER reference
* Additional validation checks in ATN deserialization
* Fix potential NPE in parser predicate evaluation
* Fix termination condition detection in full-context parsing
2013-01-11 05:00:16 +08:00
January 1, 2013
2013-01-02 20:44:07 +08:00
* Updated documentation
* Minor code cleanup
* Added the `-XdbgSTWait` command line option for the Tool
* Removed method override since bug was fixed in V3 runtime
December 31, 2012
* I altered Target.getTargetStringLiteralFromANTLRStringLiteral() so that
it converts \uXXXX in an ANTLR string to \\uXXXX, thus, avoiding Java's
conversion to a single character before compilation.
2012-12-17 07:24:31 +08:00
December 16, 2012
* Encapsulate some fields in ANTLRMessage
* Remove ErrorType.INVALID
* Update error/warning messages, show all v3 compatibility messages
2012-12-12 23:39:01 +08:00
December 12, 2012
* Use arrays instead of HashSet to save memory in SemanticContext.AND/OR
* Use arrays instead of HashSet to save memory in cached DFA
* Reduce single-operand SemanticContext.and/or operations
December 11, 2012
* Add -long-messages option; only show exceptions with errors when set
* "warning treated as error" is a one-off error
* Listen for issues reported by StringTemplate, report them as warnings
2012-12-11 22:39:44 +08:00
* Fix template issues
* GrammarASTWithOptions.getOptions never returns null
2012-12-11 22:40:40 +08:00
* Use EnumSet instead of HashSet
* Use new STGroup.GROUP_FILE_EXTENSION value
December 2, 2012
* Remove -Xverbose-dfa option
* Create the ParseTreeVisitor interface for all visitors, rename previous base
visitor class to AbstractParseTreeVisitor
December 1, 2012
* escape [\n\r\t] in lexical error messages; e.g,:
line 2:3 token recognition error at: '\t'
line 2:4 token recognition error at: '\n'
* added error for bad sets in lexer; e.g.:
lexer set element A is invalid (either rule ref or literal with > 1 char)
some tests in TestSets appeared to allow ~('a'|B) but it was randomly working.
('a'|B) works, though doesn't collapse to a set.
* label+='foo' wasn't generating good code. It was generating token type as
variable name. Now, I gen "s<ttype>" for implicit labels on string literals.
* tokens now have token and char source to draw from.
* remove -Xsave-lexer option; log file as implicit lexer AST.
2012-12-01 02:34:54 +08:00
November 30, 2012
* Maven updates (cleanup, unification, and specify Java 6 bootstrap classpath)
November 28, 2012
* Maven updates (uber-jar, manifest details)
November 27, 2012
* Maven updates (prepare for deploying to Sonatype OSS)
* Use efficient bitset tests instead of long chains of operator ==
2012-11-27 04:36:16 +08:00
November 26, 2012
2012-12-01 02:34:54 +08:00
* Maven updates (include sources and javadocs, fix warnings)
2012-11-27 04:36:16 +08:00
* Don't generate action methods for lexer rules not containing an action
* Generated action and sempred methods are private
* Remove unused / problematic methods:
** (unused) TerminalNodeImpl.isErrorNode
** (unused) RuleContext.conflictsWith, RuleContext.suffix.
** (problematic) RuleContext.hashCode, RuleContext.equals.
November 23, 2012
* Updated Maven build (added master POM, cleaned up module POMs)
November 22, 2012
* make sure left-recur rule translation uses token stream from correct imported file.
* actions like @after in imported rules caused inf loop.
* This misidentified scope lexer/parser: @lexer::members { } @parser::members { }
November 18, 2012
* fixed: undefined rule refs caused exception
* cleanup, rm dead etypes, add check for ids that cause code gen issues
* added notion of one-off error
* added check for v3 backward incompatibilities:
** tree grammars
** labels in lexer rules
** tokens {A;B;} syntax
** tokens {A='C';} syntax
** {...}?=> gate semantic predicates
** (...)=> syntactic predicates
2012-11-19 06:24:18 +08:00
* Detect EOF in lexer rule
November 17, 2012
* .tokens files goes in output dir like parser file.
* added check: action in lexer rules must be last element of outermost alt
* properly check for grammar/filename difference
* if labels, don't allow set collapse for
a : A # X | B ;
* wasn't checking soon enough for rule redef; now it sets a dead flag in
AST so no more walking dup.
error(51): T.g:7:0: rule s redefinition (ignoring); previous at line 3
2012-11-12 02:41:04 +08:00
November 11, 2012
* Change version to 4.0b4 (btw, forgot to push 4.0b3 in build.properties when
I made git tag 4.0b3...ooops).
November 4, 2012
* Kill box in tree dialog box makes dialog dispose of itself
October 29, 2012
* Sam fixes nongreedy more.
* -Werror added.
2012-10-30 03:47:09 +08:00
* Sam made speed improvement re preds in lexer.
2012-02-19 08:50:12 +08:00
2012-10-21 03:15:43 +08:00
October 20, 2012
* Merged Sam's fix for nongreedy lexer/parser. lots of unit tests. A fix in
prediction ctx merge. https://github.com/parrt/antlr4/pull/99
2012-10-15 09:53:54 +08:00
October 14, 2012
* Rebuild how ANTLR detects SLL conflict and failover to full LL. LL is
a bit slower but correct now. Added ability to ask for exact ambiguity
detection.
2012-10-09 02:33:40 +08:00
October 8, 2012
* Fixed a bug where labeling the alternatives of the start rule caused
a null pointer exception.
2012-10-02 06:48:12 +08:00
October 1, 2012 -- 4.0b2 release
2012-09-30 03:53:44 +08:00
September 30, 2012
* Fixed the unbuffered streams, which actually buffered everything
up by mistake. tweaked a few comments.
* Added a getter to IntStream for the token factory
* Added -depend cmd-line option.
2012-09-30 03:53:44 +08:00
September 29, 2012
2012-09-29 07:39:36 +08:00
2012-09-30 03:36:41 +08:00
* no nongreedy or wildcard in parser.
September 28, 2012
2012-09-29 07:39:36 +08:00
* empty "tokens {}" is ok now.
September 22, 2012
* Rule exception handlers weren't passed to the generated code
* $ruleattribute.foo weren't handled properly
2012-09-23 08:36:59 +08:00
* Added -package option
2012-09-29 07:39:36 +08:00
September 18, 2012 -- 4.0b1 release