On Mon, Oct 24, 2011 at 10:41 AM, Dieter Habelitz < dieter.habel...@habelitz.com> wrote:
> 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? Switch back to org.antlr.Tool 3.3 > A bug within v3.4? Yes > Ter is aware of it but is holding off on fixing the bugs for org.antlr.Tool 3.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.