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
--
You received this message because you are subscribed to the Google Groups
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/il-antlr-interest?hl=en.