[antlr-interest] java.g NUM_INT
Ernest Pasour
sasecp at wnt.sas.com
Thu Sep 25 04:28:13 PDT 2003
Ah, I didn't notice the extra "|". Thanks for posting this fix.
-----Original Message-----
From: Ray Waldin [mailto:ray at waldin.net]
Sent: Wednesday, September 24, 2003 5:17 PM
To: antlr-interest at yahoogroups.com
Subject: Re: [antlr-interest] java.g NUM_INT
Yes. There appears to be an extraneous '|' following 'FLOAT_SUFFIX' in the predicate causing it to return true in all cases. The corrected patch is:
--- old/java.g 2003-09-23 15:20:05.000000000 -0700
+++ java.g 2003-09-24 14:10:18.000000000 -0700
@@ -1234,6 +1234,7 @@
}
: HEX_DIGIT
)+
+ | (('0'..'9')+ ('.'|EXPONENT|FLOAT_SUFFIX)) => ('0'..'9')+ //float or double with leading zero
| ('0'..'7')+ // octal
)?
| ('1'..'9') ('0'..'9')* {isDecimal=true;} // non-zero decimal
Sorry for any confusion this may have caused.
-Ray
Ernest Pasour wrote:
When I tried sticking this fix in, it allowed a number like 083 to pass through as an Integer. I'm not sure exactly why no error is thrown though. Do you see that behavior?
-----Original Message-----
From: Ray Waldin [mailto:ray at waldin.net]
Sent: Tuesday, September 23, 2003 7:38 PM
To: antlr-interest at yahoogroups.com
Subject: [antlr-interest] java.g NUM_INT
I sent this earlier and it never showed up on the list, so here it is
again...
Hi everyone,
I'm new to this group, so apologies if this issue has been raised
before. I wasn't able to find any reference to it in the archives. In
java.g (Version 1.20) it seems that the NUM_INT rule is broken for cases
of floats and doubles which have leading zeros and contain the digits 8
or 9 in the decimal integer or mantissa part.
While the following cases work (by sheer luck, I believe):
07.0f
06d
07e0
these do not:
08.0f
09d
08e0
A quick fix can be found below.
-Ray
--- old/java.g 2003-09-23 15:20:05.000000000 -0700
+++ java.g 2003-09-23 15:21:28.000000000 -0700
@@ -1234,6 +1234,7 @@
}
: HEX_DIGIT
)+
+ | (('0'..'9')+
('.'|EXPONENT|FLOAT_SUFFIX|)) => ('0'..'9')+ // float or double with
leading zero
|
('0'..'7')+
// octal
)?
| ('1'..'9') ('0'..'9')*
{isDecimal=true;} // non-zero decimal
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/
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service <http://docs.yahoo.com/info/terms/> .
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20030925/4ed8932f/attachment.html
More information about the antlr-interest
mailing list