ANTLR 3.5 Release Notes

ANTLR 3.5 Release Notes

DOWNLOAD v3.5

Improvements

  • Add Gokulakannan Somasundaram's C++ target based upon C target. Use language=Cpp in options. It's a header-only library, runtime/Cpp/include,  so installation is not required.

  • Python 3.3 target added by Benjamin Wolf based upon Python 2 target https://github.com/antlr/antlr3/pull/23

  • GUnit improvements  https://github.com/antlr/antlr3/pull/27

  • ANTLR3 update of ObjC runtime to go with latest ST4-ObjC  https://github.com/antlr/antlr3/pull/17

  • Provide Lexer get end of file method so people can override it.

Bug Fixes

  • Improve error reporting and recovery for STRAY_BRACKET, fixes antlr/antlr3#42

  • Do not write output files if errors were reported, fixes antlr/antlr3#61

  • Fix AST operator on labeled set of terminals e.g. x=(A|B)^

  • Fix labeled set of terminals with rewrite e.g. x=(A|B) -> $x

  • Added error msg for .. in parser

  • LookaheadStream bug fixes;  https://github.com/antlr/antlr3/pull/21

  • Pulled "Fix Python handling of syntactic predicates"  https://github.com/antlr/antlr3/pull/33

  • stderr not test correctly in gunit examineExecResult

  • Dieter Habelitz reported bug in java code gen with synpreds. labels were being carried from grammar into synpreds but weren't typed properly (they were "void x=null;" for x=ruleref labels)

  • (Sam) Rule.setOption didn't do memoize option right.

  • (Sam) Fix labels in synpreds

  • (Sam) Fix input index for NoViableAltException during inline prediction

  • (Sam) Fix label aliasing errors in cases like (x=y|x=z)

  • (Sam) fix stack overflow in semantic context analysis

  • added range check to BaseTree.insertChild()