On 03/02/14 10:05, Jeff King wrote:
> On Sun, Feb 02, 2014 at 09:21:56PM +1030, Adrian Johnson wrote:
>> - Fix bug in word regex for numbers
>> - "|[0-9][-+0-9#_.eE]"
>> + "|[-+0-9#_.eE]+"
>
> This makes "E" or "_" a number. Is that right?
>
> I think the intent of the original was "starts with a digit, and then
> has one or more of these other things after it". You do not describe the
> bug, but I guess it would be that it does not match obvious things like
> "5". Should it be "zero or more" instead, like:
>
> [0-9][-+0-9#_.eE]*
Yes, the original was missing the '*' at the end.
I changed it to be similar to the number regexes used by the other builtin
patterns which are of the form '[-+0-9#_.eE]+'.
>
> ? Also, should -/+ be hoisted to the front?
>
> [-+]?[0-9][0-9#_.eE]*
The other builtins don't do this. But it is probably better to have
[-+]?[0-9] at the front.
> Again, I am just guessing, as I am not familiar enough with Ada.
Ada numbers have the form:
- integers and reals eg 123, 1.23, 1e-2 ('.' can not be first)
- a '_' may be used between digits to improve readability eg 123_456
- base n (2 <= n <= 16) is of the form n#digits# eg 16#FFEF#
- base n numbers can include a radix point and/or an exponent
eg 16#FF12.8#e-2
- Ada is case insensitive
After having another look I noticed it was missing the hex characters.
The new number regex I am proposing is:
[-+]?[0-9][0-9#_.aAbBcCdDeEfF]*([eE][+-]?[0-9_]+)?
I kept exponents containing a +/- sign separate from the digits
to prevent things like '1+2' from matching. I'll send an updated patch.
>
> -Peff
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html