diff options
Diffstat (limited to 'src/llex.c')
-rw-r--r-- | src/llex.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -1,5 +1,5 @@ /* -** $Id: llex.c,v 2.17 2005/12/22 16:19:56 roberto Exp $ +** $Id: llex.c,v 2.18 2006/01/23 20:06:19 roberto Exp $ ** Lexical Analyzer ** See Copyright Notice in lua.h */ @@ -193,12 +193,10 @@ static void read_numeral (LexState *ls, SemInfo *seminfo) { do { save_and_next(ls); } while (isdigit(ls->current) || ls->current == '.'); - if (check_next(ls, "Ee")) { /* `E'? */ + if (check_next(ls, "Ee")) /* `E'? */ check_next(ls, "+-"); /* optional exponent sign */ - while (isdigit(ls->current)) { - save_and_next(ls); - } - } + while (isalnum(ls->current) || ls->current == '_') + save_and_next(ls); save(ls, '\0'); buffreplace(ls, '.', ls->decpoint); /* follow locale for decimal point */ if (!luaO_str2d(luaZ_buffer(ls->buff), &seminfo->r)) /* format error? */ |