aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2010-05-15 10:32:02 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2010-05-15 10:32:02 -0300
commit12c764ed1ed37179f123af6ab225ba38e6d405d7 (patch)
tree0fead6de46b4ffcda620059f055f15f2a44bfe13
parente99e9a94732dcb7407777b724fb61e548d51ba33 (diff)
downloadlua-12c764ed1ed37179f123af6ab225ba38e6d405d7.tar.gz
lua-12c764ed1ed37179f123af6ab225ba38e6d405d7.tar.bz2
lua-12c764ed1ed37179f123af6ab225ba38e6d405d7.zip
semicolons now represent the empty statement
-rw-r--r--lparser.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lparser.c b/lparser.c
index 2d477d64..58c8fb97 100644
--- a/lparser.c
+++ b/lparser.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lparser.c,v 2.84 2010/05/13 12:03:26 roberto Exp roberto $ 2** $Id: lparser.c,v 2.85 2010/05/14 15:03:43 roberto Exp roberto $
3** Lua Parser 3** Lua Parser
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -1346,7 +1346,8 @@ static void retstat (LexState *ls) {
1346static int statement (LexState *ls) { 1346static int statement (LexState *ls) {
1347 int line = ls->linenumber; /* may be needed for error messages */ 1347 int line = ls->linenumber; /* may be needed for error messages */
1348 switch (ls->t.token) { 1348 switch (ls->t.token) {
1349 case ';': { /* stat -> <empty statement> */ 1349 case ';': { /* stat -> ';' (empty statement) */
1350 luaX_next(ls); /* skip ';' */
1350 return 0; 1351 return 0;
1351 } 1352 }
1352 case TK_IF: { /* stat -> ifstat */ 1353 case TK_IF: { /* stat -> ifstat */
@@ -1407,7 +1408,8 @@ static void chunk (LexState *ls) {
1407 enterlevel(ls); 1408 enterlevel(ls);
1408 while (!islast && !block_follow(ls->t.token)) { 1409 while (!islast && !block_follow(ls->t.token)) {
1409 islast = statement(ls); 1410 islast = statement(ls);
1410 testnext(ls, ';'); 1411 if (islast)
1412 testnext(ls, ';');
1411 lua_assert(ls->fs->f->maxstacksize >= ls->fs->freereg && 1413 lua_assert(ls->fs->f->maxstacksize >= ls->fs->freereg &&
1412 ls->fs->freereg >= ls->fs->nactvar); 1414 ls->fs->freereg >= ls->fs->nactvar);
1413 ls->fs->freereg = ls->fs->nactvar; /* free registers */ 1415 ls->fs->freereg = ls->fs->nactvar; /* free registers */