[antlr-interest] ANTLR v3.4 generates compiler errors (that v3.3 doesn't generate)

Ashutosh Chauhan hashutosh at apache.org
Mon Oct 24 16:15:29 PDT 2011


Ter is aware of it but is holding off on fixing the bugs for org.antlr.Tool
3.4.

Is there any timeline on when will be the next release. I will be eager to
try it out as we want to upgrade, which we can't because of the issue I
reported on a different thread.

On Mon, Oct 24, 2011 at 12:24, Eric <researcher0x00 at gmail.com> wrote:

> On Mon, Oct 24, 2011 at 10:41 AM, Dieter Habelitz <
> dieter.habelitz at 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
>


More information about the antlr-interest mailing list