ANTLR 3.1.1 Release Notes

ANTLR v3.1.1

October 1, 2008

Terence Parr
ANTLR project lead and supreme dictator for life
University of San Francisco
Credits

ANTLR v3.1.1 is a bug fix release (and a few tweaks to the examples-v3 directory).

From bug tracking system

  • ANTLR-4 Imaginary ttoken rewrite requires 8 bit characters - needs STRING type
  • ANTLR-314 rule return aggregate type must be same for all += labels
  • ANTLR-320 FOLLOW of rule element not computed properly
  • ANTLR-326 Users sees small memory leak at the termination of tree producing parser
  • ANTLR-334 Check index 0 vs -1 changes

Also fixed a few minor bugs such as:

  • a missing attribute definition in error template.
  • pushFollow in BaseRecognizer was incorrect; it altered cache values instead of duplicating.
  • Made a REV static variable in Tool so that we can change the rev for daily builds.
  • Labels on tokens, rules carry into synpreds now so semantic predicates work. This didn't work since labels were stripped in the synpred and they weren't defined in the generated method.
      a : x=A z=a {$x.text.equals($z.text)}? A
        | y=A a A A
        ;
    
  • Made \uFFFF a valid character. Token types are 32-bit clean using -1 not 0x0000FFFF as -1 so it should be okay. Label.java:
        public static final int MIN_CHAR_VALUE = '\u0000';
        public static final int MAX_CHAR_VALUE = '\uFFFF';
    

Incompatibilities

The runtime library names changed from antlr-runtime-3.1 (old version) to antlr-3.1.1-runtime.