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

Eric researcher0x00 at gmail.com
Mon Oct 24 12:24:38 PDT 2011


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
>


More information about the antlr-interest mailing list