From 07912f5ab2217a22ecf586262464d249a9e76629 Mon Sep 17 00:00:00 2001 From: Calvin Rose Date: Sun, 17 Feb 2019 21:44:58 -0500 Subject: [PATCH] Update comments in strtod.c --- src/core/strtod.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/core/strtod.c b/src/core/strtod.c index 0c6dbbd5..d6aaa71c 100644 --- a/src/core/strtod.c +++ b/src/core/strtod.c @@ -26,23 +26,19 @@ * This version has been modified for much greater flexibility in parsing, such * as choosing the radix and supporting scientific notation with any radix. * - * Numbers are of the form [-+]R[rR]I.F[eE&][-+]X where R is the radix, I is - * the integer part, F is the fractional part, and X is the exponent. All - * signs, radix, decimal point, fractional part, and exponent can be omitted. - * The number will be considered and integer if the there is no decimal point - * and no exponent. Any number greater the 2^32-1 or less than -(2^32) will be - * coerced to a double. If there is an error, the function janet_scan_number will - * return a janet nil. The radix is assumed to be 10 if omitted, and the E + * Numbers are of the form [-+]R[rR]I.F[eE&][-+]X in pseudo-regex form, where R + * is the radix, I is the integer part, F is the fractional part, and X is the + * exponent. All signs, radix, decimal point, fractional part, and exponent can + * be omitted. The radix is assumed to be 10 if omitted, and the E or e * separator for the exponent can only be used when the radix is 10. This is - * because E is a valid digit in bases 15 or greater. For bases greater than 10, - * the letters are used as digits. A through Z correspond to the digits 10 + * because E is a valid digit in bases 15 or greater. For bases greater than + * 10, the letters are used as digits. A through Z correspond to the digits 10 * through 35, and the lowercase letters have the same values. The radix number * is always in base 10. For example, a hexidecimal number could be written * '16rdeadbeef'. janet_scan_number also supports some c style syntax for * hexidecimal literals. The previous number could also be written - * '0xdeadbeef'. Note that in this case, the number will actually be a double - * as it will not fit in the range for a signed 32 bit integer. The string - * '0xbeef' would parse to an integer as it is in the range of an int32_t. */ + * '0xdeadbeef'. + */ #include #include @@ -75,6 +71,7 @@ struct BigNat { uint32_t *digits; /* Each digit is base (2 ^ 31). Digits are least significant first. */ }; +/* Initialize a bignat to 0 */ static void bignat_zero(struct BigNat *x) { x->first_digit = 0; x->n = 0; @@ -197,7 +194,7 @@ static double bignat_extract(struct BigNat *mant, int32_t exponent2) { } /* Read in a mantissa and exponent of a certain base, and give - * back the double value. Should properly handle 0s, Infinities, and + * back the double value. Should properly handle 0s, infinities, and * denormalized numbers. (When the exponent values are too large) */ static double convert( int negative,