ANTLR v4 Honey Badger January 21, 2013 -- Release 4.0 * Updated PredictionContext Javadocs * Updated Maven site documentation * Minor tweaks in Java.stg January 15, 2013 * Tweak error messages * (Tool) Make TokenVocabParser fields `protected final` * Fix generated escape sequences for literals containing backslashes 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 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 January 10, 2013 * Add error 135: cannot assign a value to list label: $label (fixes antlr/antlr4#128) January 2, 2013 * 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 January 1, 2013 * 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. December 16, 2012 * Encapsulate some fields in ANTLRMessage * Remove ErrorType.INVALID * Update error/warning messages, show all v3 compatibility messages 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 * Fix template issues * GrammarASTWithOptions.getOptions never returns null * 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" 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. 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 == November 26, 2012 * Maven updates (include sources and javadocs, fix warnings) * 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 * 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 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. * Sam made speed improvement re preds in lexer. 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 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. October 8, 2012 * Fixed a bug where labeling the alternatives of the start rule caused a null pointer exception. October 1, 2012 -- 4.0b2 release 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. September 29, 2012 * no nongreedy or wildcard in parser. September 28, 2012 * empty "tokens {}" is ok now. September 22, 2012 * Rule exception handlers weren't passed to the generated code * $ruleattribute.foo weren't handled properly * Added -package option September 18, 2012 -- 4.0b1 release