]> mj.ucw.cz Git - umpf.git/blobdiff - lex.c
NUM token is dead
[umpf.git] / lex.c
diff --git a/lex.c b/lex.c
index ae541d95701ad6d67ea7e56c1a5dd0ea26487ee3..8710763bd9417da6dbd4907b84a7ad335707d273 100644 (file)
--- a/lex.c
+++ b/lex.c
@@ -164,8 +164,20 @@ yylex(void)
 
        if (c >= '0' && c <= '9'){
                ungetc(c,stdin);
-               scanf("%d",&yylval.n);
-               return NUM;
+               int i = 0;
+               char buf[BUFSIZE];
+       
+               while ((c = getchar())>= '0' && c<= '9'){
+                       buf[i] = c;
+                       i++;
+                       if (i >= BUFSIZE-1)
+                               parse_err("Too long number");   
+               }
+               ungetc(c,stdin);
+               buf[i] = 0;
+               yylval.str = xstrdup(buf);
+
+               return CONST;
        }
 
        if (c == '$'){