better tokens for error messages

This commit is contained in:
Roberto Ierusalimschy 2002-10-22 13:45:52 -03:00
parent 313b2fe902
commit 6823a2f57f
1 changed files with 4 additions and 6 deletions

10
llex.c
View File

@ -1,5 +1,5 @@
/* /*
** $Id: llex.c,v 1.113 2002/10/08 18:46:08 roberto Exp roberto $ ** $Id: llex.c,v 1.114 2002/10/09 13:00:08 roberto Exp roberto $
** Lexical Analyzer ** Lexical Analyzer
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -73,10 +73,8 @@ void luaX_syntaxerror (LexState *ls, const char *msg) {
lasttoken = luaO_pushfstring(ls->L, "%s", getstr(ls->t.seminfo.ts)); lasttoken = luaO_pushfstring(ls->L, "%s", getstr(ls->t.seminfo.ts));
break; break;
case TK_STRING: case TK_STRING:
lasttoken = luaO_pushfstring(ls->L, "\"%s\"", getstr(ls->t.seminfo.ts));
break;
case TK_NUMBER: case TK_NUMBER:
lasttoken = luaO_pushfstring(ls->L, "%f", ls->t.seminfo.r); lasttoken = luaO_pushfstring(ls->L, "%s", luaZ_buffer(ls->buff));
break; break;
default: default:
lasttoken = luaX_token2str(ls, ls->t.token); lasttoken = luaX_token2str(ls, ls->t.token);
@ -149,7 +147,7 @@ void luaX_setinput (lua_State *L, LexState *LS, ZIO *z, TString *source) {
luaZ_openspace((LS)->L, (LS)->buff, (len)+EXTRABUFF) luaZ_openspace((LS)->L, (LS)->buff, (len)+EXTRABUFF)
#define save(LS, c, l) \ #define save(LS, c, l) \
(cast(char *, luaZ_buffer((LS)->buff))[l++] = cast(char, c)) (luaZ_buffer((LS)->buff)[l++] = cast(char, c))
#define save_and_next(LS, l) (save(LS, LS->current, l), next(LS)) #define save_and_next(LS, l) (save(LS, LS->current, l), next(LS))
@ -198,7 +196,7 @@ static void read_numeral (LexState *LS, int comma, SemInfo *seminfo) {
} }
} }
save(LS, '\0', l); save(LS, '\0', l);
if (!luaO_str2d(cast(char *, luaZ_buffer(LS->buff)), &seminfo->r)) if (!luaO_str2d(luaZ_buffer(LS->buff), &seminfo->r))
luaX_lexerror(LS, "malformed number", TK_NUMBER); luaX_lexerror(LS, "malformed number", TK_NUMBER);
} }