[antlr-interest] ANTLR Optional statements
jg z
zjg1964 at yahoo.com
Fri Apr 5 07:30:58 PST 2002
The generated code is like this,
switch ( LA(1)) {
case ID:
{
match(ID);
{
switch ( LA(1)) {
case COLON:
{
base_clause();
break;
}
case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
{
break;
}
default:
{
throw
ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1),
getFilename());
}
}
}
break;
}
case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
{
break;
}
default:
{
throw
ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1),
getFilename());
}
}
The problem is, if there is no "ID", it would go into
default and throw an Exception. It shouldn't do like
this as an optional statement, should it?
--- mzukowski at bco.com wrote:
> What does it produce that's not right?
>
> > -----Original Message-----
> > From: jg z [mailto:zjg1964 at yahoo.com]
> > Sent: Friday, April 05, 2002 6:44 AM
> > To: antlr-interest at yahoogroups.com
> > Subject: [antlr-interest] ANTLR Optional
> statements
> >
> >
> > We are trying to convert a C++ Parser from PCCTS
> to
> > ANTLR, and becoming increasingly frustrated by the
> > differences between the two systems.
> >
> > For instance;
> >
> > In cplusplus.g we have,
> >
> > class_head
> > : ( STRUCT
> > | UNION
> > | CLASS
> > )
> > {ID { base_clause } }
> > ;
> >
> > which works fine in PCCTS.
> >
> > For ANTLR we have converted this to,
> >
> > class_head
> > :
> > ( STRUCT
> > | UNION
> > | CLASS
> > )
> > (ID ( base_clause)? )?
> > ;
> >
> > However, the optional statements shown at the end
> of
> > this production no longer produces a properly
> optional
> > construction in the generated .cpp file.
> >
> > What are we supposed to do?
> >
> > David.
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Tax Center - online filing with TurboTax
> > http://taxes.yahoo.com/
> >
> >
> >
> > Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
>
>
>
>
>
> Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
>
>
__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list