Syntax should not allow numbers touching identifiers

Code like 'a = 1print()' should not be accepted.
This commit is contained in:
Roberto Ierusalimschy
2019-04-09 18:40:39 -03:00
parent 8004798b03
commit 65d1aa7a77
2 changed files with 11 additions and 0 deletions

2
llex.c
View File

@@ -228,6 +228,8 @@ static int read_numeral (LexState *ls, SemInfo *seminfo) {
save_and_next(ls);
else break;
}
if (lislalnum(ls->current)) /* is numeral touching an alpha num? */
save_and_next(ls); /* force an error */
save(ls, '\0');
if (luaO_str2num(luaZ_buffer(ls->buff), &obj) == 0) /* format error? */
lexerror(ls, "malformed number", TK_FLT);