On Thursday 01 October 2009 01:06:54 pm Gavin Lambert wrote:
> At 08:12 2/10/2009, Kaleb Pederson wrote:
> >INTEGER
> > : NUMBER+;
> >
> >DECIMAL
> > : INTEGER '.' INTEGER;
>
> You should have a look at the wiki and the mailing list
> archives. This is a fairly common problem with a fairly simple
> solution:
I've looked, read, and re-read, but apparently I don't know exactly what to
look for, so thanks for pointing it out. I'd be interested to any references
in the wiki or archives if you have them. My google-fu and not-so-random
searching didn't bring up anything useful.
> fragment INTEGER : NUMBER+ ;
>
> DECIMAL
> : INTEGER ('.' INTEGER | { $type = INTEGER; })
> ;
This did not work, nor did adding an options {k=2;} statement.
> If that doesn't work by itself, you can add a predicate to force a
> two-character lookahead:
>
> DECIMAL
> : INTEGER (('.' NUMBER) => '.' INTEGER | { $type = INTEGER; })
> ;
This worked great, thank you! I would not have thought to try something like
that. I was attempting to have the DECIMAL non-terminal avoided, rather than
allowing it to match the same thing as an INTEGER and changing the type on it.
Perhaps that caused some tunnel vision.
--Kaleb
http://twitter.com/kalebpederson
http://kalebpederson.com
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
-~----------~----~----~----~------~----~------~--~---