[antlr-interest] lexer: matching float vs int
Jim Idle
jimi at temporal-wave.com
Tue Sep 9 10:03:59 PDT 2008
On Wed, 2008-09-10 at 02:38 +1000, Thomas Brandon wrote:
> On Tue, Sep 9, 2008 at 2:01 PM, Olya Krachina <okrachin at purdue.edu> wrote:
> > Hello,
> > I am new to antlr and i seem to be stuck on this.
> > i need to have 2 datatypes defined: int and float, currently i have them defined
> > like this in my .g file:
> >
> > INT: ('0'..'9')+;
> > FLOAT: ('0'..'9')*('.')('0'..'9')+ ;
> >
> > So, this does not work, when it comes across an int i think it tries to match
> > the longest string, i.e. float but finds space instead of '.' (since its an int)
> > and bails out.
See:
http://www.antlr.org/wiki/display/ANTLR3/Lexer+grammar+for+floating
+point%2C+dot%2C+range%2C+time+specs
> >
> > ps: i know this is more a regexp question, but if someone could help out, I
> > would greatly appreciate it.
> >
> > thanks
> Those two rules work fine for me. I think either other rules are
> interfering or you are providing invalid input to the grammar. Try
> making a minimal grammar that reproduces the problem and post that
> along with the exact input that fails.
>
> Tom.
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20080909/1bf09e9e/attachment.html
More information about the antlr-interest
mailing list