[antlr-interest] Backtracking and labels

Kieran Simpson kierans777 at gmail.com
Fri Mar 9 02:30:25 PST 2012


For my rule:

rule
   : OPTION1
   | value=OPTION2 -> ($value)
   ;

with backtracking on (and memoize not that I think that's relevant) the 
synpredicate code generated has errors, both for the Java and C targets 
where the variable name is missing in the declaration

eg:

public final void synpred9_grammar_fragment() throws RecognitionException {
         Token =null;

and

static void synpred9_grammar_fragment(pCoreConfigurationParser ctx )
{
	pANTLR3_COMMON_TOKEN    ;

	       = NULL;

Interestingly this grammar runs in debug mode when used with Antlrworks 
even though I'm using version 3.4 of Antlr with my project and 3.4 is 
included with Antlrworks (1.4.3).

Just in case it's due to an out of date version, here are some md5sums

9638f9b7b1b823fcaba977f06f0dd761  ./antlr/3.4/antlrworks-1.4.3.jar

465472089d78cd80f926f5825a29ec7f  ./lib/antlr-3.4.jar
0e0318be407e51fdf7ba6777eabfdf73  ./lib/antlr-runtime-3.4.jar

Is something out of date here or is this a bug with the backtracking 
generation?

Cheers,


More information about the antlr-interest mailing list