commit 1d9499172b7d0ebe1ecb9a35589bd8b02e99902c
parent 8e888618076474e7927563d0cbf14d17ce185e13
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date: Fri, 12 Feb 2016 14:23:57 -0500
cut code, use scanf a little more
Diffstat:
1 file changed, 3 insertions(+), 13 deletions(-)
diff --git a/lisc/parse.c b/lisc/parse.c
@@ -167,7 +167,7 @@ lex()
{ 0, TXXX }
};
static char tok[NString];
- int c, c1, i;
+ int c, i;
int t;
do
@@ -190,22 +190,12 @@ lex()
case '=':
return TEq;
case 's':
- c1 = fgetc(inf);
- if (c1 != '_') {
- ungetc(c1, inf);
+ if (fscanf(inf, "_%f", &tokval.flts) != 1)
break;
- }
- if (fscanf(inf, "%f", &tokval.flts) != 1)
- err("invalid floating point literal");
return TFlts;
case 'd':
- c1 = fgetc(inf);
- if (c1 != '_') {
- ungetc(c1, inf);
+ if (fscanf(inf, "_%lf", &tokval.fltd) != 1)
break;
- }
- if (fscanf(inf, "%lf", &tokval.fltd) != 1)
- err("invalid floating point literal");
return TFltd;
case '%':
t = TTmp;