ANTLR 3.5 Release Notes



  • 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
  • GUnit improvements
  • ANTLR3 update of ObjC runtime to go with latest ST4-ObjC
  • 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;
  • Pulled "Fix Python handling of syntactic predicates"
  • 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()