* 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)
Fixed. pushed. grab at http://antlr.org/depot/antlr3/main/tool/target/ please let me know if it works. Ter On Oct 24, 2011, at 7:49 AM, Terence Parr wrote: > > > Begin forwarded message: > >> From: Dieter Habelitz >> Subject: [antlr-interest] ANTLR v3.4 generates compiler errors (that v3.3 >> doesn't generate) >> Date: October 24, 2011 7:41:31 AM PDT >> To: antlr-interest@antlr.org >> >> Hi folks, >> >> When feeding ANTLR 3.4 with my Java grammars it doesn't generate valid >> Java sources (26 compiler errors) - with v3.3 everything is okay. >> >> Here's a snipped of the grammar that raises one of the problems: >> >> statement >> : block >> | assertStatement >> | ifStatement >> | forStatement >> | [... and so on ...] >> ; >> >> ifStatement >> : IF parenthesizedExpression ifStat=statement >> ( ELSE elseStat=statement -> ^(IF parenthesizedExpression $ifStat >> $elseStat) >> | -> ^(IF parenthesizedExpression $ifStat) >> ) >> ; >> >> Amongst other things v3.4 generates the following code for the 'ELSE' branch >> of the rule 'ifStatement' (have a look at the local 'variable >> declaration': void =null;): >> >> public final void synpred137_Java_fragment() throws RecognitionException { >> void =null; >> >> // [... some comments not relevant here ...] >> { >> match(input,ELSE,FOLLOW_ELSE_in_synpred137_Java9244); if >> (state.failed) return ; >> >> pushFollow(FOLLOW_statement_in_synpred137_Java9248); >> elseStat=statement(); >> >> state._fsp--; >> if (state.failed) return ; >> >> } >> >> } >> >> However, v3.3 generates the following code from the same grammar: >> >> public final void synpred137_Java_fragment() throws RecognitionException { >> >> JavaParser.statement_return elseStat = null; >> >> >> // [... some comments not relevant here ...] >> { >> match(input,ELSE,FOLLOW_ELSE_in_synpred137_Java9244); if >> (state.failed) return ; >> pushFollow(FOLLOW_statement_in_synpred137_Java9248); >> elseStat=statement(); >> >> state._fsp--; >> if (state.failed) return ; >> >> } >> } >> >> The complete grammars can be found at ... >> http://www.habelitz.com/index.php?option=com_content&task=view&id=12&Itemid=8 >> >> Any hints? A bug within v3.4? >> >> Ciao >> Dieter >> >> >> List: http://www.antlr.org/mailman/listinfo/antlr-interest >> Unsubscribe: >> http://www.antlr.org/mailman/options/antlr-interest/your-email-address > List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.