[antlr-interest] automatically generated syntatic predicates become semantic predicates (fragments) plus arguments generate parser which doesn't compile

Doucette, Charles cdoucette at vaultus.com
Tue Sep 16 07:30:20 PDT 2008


I've just read the book.
I do understand what backtracking means now (and memoize),
and that it means that it automatically inserts predicates before every rule production that it can't disambiguate.
It just so happens that at least one of them has an argument.

Chuck

> -----Original Message-----
> From: antlr-interest-bounces at antlr.org
> [mailto:antlr-interest-bounces at antlr.org] On Behalf Of
> Doucette, Charles
> Sent: Tuesday, September 16, 2008 10:22 AM
> To: Antlr
> Subject: Re: [antlr-interest] automatically generated
> syntatic predicates become semantic predicates (fragments)
> plus arguments generate parser which doesn't compile
>
> Sorry - that was sent prematurely:
>
> Here are my grammar options.
> I don't completely understand what they mean.
> I inherited them when I started with a Java grammar.
>
> options {
>         k=2;
>         backtrack=true;
>         memoize=true;
> //      output=AST;
> }
>
> When I tried to remove them and use the default options - I
> did get many errors and warnings.
> I guess I have to follow your suggested tutorial to remove
> backtracking?
>
> I didn't explicitly use arguments and predicates. ANTLR
> automatically generated the predicates for me; probably based
> on my grammar options above.
>
> >
> > > It's a user bug. Arguments and predicates don't mix. Use scopes
> > > instead like this.
> > >
> > > rule a
> > > scope {
> > > int i;
> > > }
> > >    : (pred)=> y {$a::i = 3;}
> > >    ;
>
> Thanks,
> Chuck
>
> 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