/[gcl]/gcl/o/read.d
ViewVC logotype

Diff of /gcl/o/read.d

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.27 by camm, Tue Aug 17 16:26:44 2004 UTC revision 1.28 by camm, Tue Aug 17 18:03:46 2004 UTC
# Line 722  parse_number(char *s, int end, int *ep, Line 722  parse_number(char *s, int end, int *ep,
722    vs_push((object)integer_part);    vs_push((object)integer_part);
723    if (i >= end)    if (i >= end)
724      goto NO_NUMBER;      goto NO_NUMBER;
725      
726      j=i;
727    
728  #define MOST_POSITIVE_FIX (((unsigned int) (~0) ) /2)  #define MOST_POSITIVE_FIX (((unsigned int) (~0) ) /2)
729  #define TEN_EXPT_9 1000000000  #define TEN_EXPT_9 1000000000
730        
# Line 765  parse_number(char *s, int end, int *ep, Line 767  parse_number(char *s, int end, int *ep,
767    if (i >= end)    if (i >= end)
768      goto MAKE_INTEGER;      goto MAKE_INTEGER;
769    if (s[i] == '/') {    if (s[i] == '/') {
770      i++;      if (i==j || ++i >= end || (d = digitp(s[i], radix)) < 0)
771          goto NO_NUMBER;
772      goto DENOMINATOR;      goto DENOMINATOR;
773    }    }
774    
# Line 779  parse_number(char *s, int end, int *ep, Line 782  parse_number(char *s, int end, int *ep,
782    if (s[i] == '.') {    if (s[i] == '.') {
783      if (++i >= end)      if (++i >= end)
784        goto MAKE_INTEGER;        goto MAKE_INTEGER;
785      else if (digitp(s[i], radix) >= 0)      else if ((d=digitp(s[i], radix)) >= 0)
786        goto FRACTION;        goto FRACTION;
787      else if (is_exponent_marker(s[i])) {      else if (is_exponent_marker(s[i])) {
788        fraction        fraction
# Line 810  parse_number(char *s, int end, int *ep, Line 813  parse_number(char *s, int end, int *ep,
813   FRACTION:   FRACTION:
814    if (radix!=10)    if (radix!=10)
815      FEerror("Parse_number radix error", 0);      FEerror("Parse_number radix error", 0);
816    if ((d = digitp(s[i], radix)) < 0)  /*   if ((d = digitp(s[i], radix)) < 0) */
817      goto NO_NUMBER;  /*     goto NO_NUMBER; */
818    fraction = 0.0;    fraction = 0.0;
819    fraction_unit = 1000000000.0;    fraction_unit = 1000000000.0;
820    for (;;) {    for (;;) {
# Line 909  parse_number(char *s, int end, int *ep, Line 912  parse_number(char *s, int end, int *ep,
912      big_register_0 = new_bignum();      big_register_0 = new_bignum();
913    zero_big(big_register_0);    zero_big(big_register_0);
914        
915    if ((d = digitp(s[i], radix)) < 0)  /*   if ((d = digitp(s[i], radix)) < 0) */
916      goto NO_NUMBER;  /*     goto NO_NUMBER; */
917    integer_part = big_register_0;    integer_part = big_register_0;
918    /*    zero_big(integer_part); */    /*    zero_big(integer_part); */
919    do {    do {

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.28

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26