aboutsummaryrefslogtreecommitdiff
path: root/lparser.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2000-03-10 15:37:44 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2000-03-10 15:37:44 -0300
commit73aa465a8ed8dee6c6a27a6f8b2f51227b70789d (patch)
tree496a63ffffe0312f1d0b9882d97944fa38ed7801 /lparser.c
parent3d0577f4b98908be3f2d697ab75c5fbbd3f6999b (diff)
downloadlua-73aa465a8ed8dee6c6a27a6f8b2f51227b70789d.tar.gz
lua-73aa465a8ed8dee6c6a27a6f8b2f51227b70789d.tar.bz2
lua-73aa465a8ed8dee6c6a27a6f8b2f51227b70789d.zip
some name changes
Diffstat (limited to 'lparser.c')
-rw-r--r--lparser.c158
1 files changed, 79 insertions, 79 deletions
diff --git a/lparser.c b/lparser.c
index a8198190..c875f784 100644
--- a/lparser.c
+++ b/lparser.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lparser.c,v 1.64 2000/03/03 20:29:25 roberto Exp roberto $ 2** $Id: lparser.c,v 1.67 2000/03/09 13:57:37 roberto Exp roberto $
3** LL(1) Parser and code generator for Lua 3** LL(1) Parser and code generator for Lua
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -116,7 +116,7 @@ static void checklimit (LexState *ls, int val, int limit, const char *msg) {
116 116
117static void check_debugline (LexState *ls) { 117static void check_debugline (LexState *ls) {
118 if (ls->L->debug && ls->linenumber != ls->fs->lastsetline) { 118 if (ls->L->debug && ls->linenumber != ls->fs->lastsetline) {
119 luaK_U(ls, SETLINE, ls->linenumber, 0); 119 luaK_U(ls, OP_SETLINE, ls->linenumber, 0);
120 ls->fs->lastsetline = ls->linenumber; 120 ls->fs->lastsetline = ls->linenumber;
121 } 121 }
122} 122}
@@ -130,11 +130,11 @@ static void check_match (LexState *ls, int what, int who, int where) {
130} 130}
131 131
132 132
133static int string_constant (LexState *ls, FuncState *fs, TaggedString *s) { 133static int string_constant (LexState *ls, FuncState *fs, TString *s) {
134 TProtoFunc *f = fs->f; 134 Proto *f = fs->f;
135 int c = s->constindex; 135 int c = s->constindex;
136 if (c >= f->nkstr || f->kstr[c] != s) { 136 if (c >= f->nkstr || f->kstr[c] != s) {
137 luaM_growvector(ls->L, f->kstr, f->nkstr, 1, TaggedString *, 137 luaM_growvector(ls->L, f->kstr, f->nkstr, 1, TString *,
138 constantEM, MAXARG_U); 138 constantEM, MAXARG_U);
139 c = f->nkstr++; 139 c = f->nkstr++;
140 f->kstr[c] = s; 140 f->kstr[c] = s;
@@ -144,14 +144,14 @@ static int string_constant (LexState *ls, FuncState *fs, TaggedString *s) {
144} 144}
145 145
146 146
147static void code_string (LexState *ls, TaggedString *s) { 147static void code_string (LexState *ls, TString *s) {
148 luaK_kstr(ls, string_constant(ls, ls->fs, s)); 148 luaK_kstr(ls, string_constant(ls, ls->fs, s));
149} 149}
150 150
151 151
152static int checkname (LexState *ls) { 152static int checkname (LexState *ls) {
153 int sc; 153 int sc;
154 if (ls->token != NAME) 154 if (ls->token != TK_NAME)
155 luaK_error(ls, "<name> expected"); 155 luaK_error(ls, "<name> expected");
156 sc = string_constant(ls, ls->fs, ls->seminfo.ts); 156 sc = string_constant(ls, ls->fs, ls->seminfo.ts);
157 next(ls); 157 next(ls);
@@ -159,17 +159,17 @@ static int checkname (LexState *ls) {
159} 159}
160 160
161 161
162static TaggedString *str_checkname (LexState *ls) { 162static TString *str_checkname (LexState *ls) {
163 int i = checkname(ls); /* this call may realloc `f->consts' */ 163 int i = checkname(ls); /* this call may realloc `f->consts' */
164 return ls->fs->f->kstr[i]; 164 return ls->fs->f->kstr[i];
165} 165}
166 166
167 167
168static void luaI_registerlocalvar (LexState *ls, TaggedString *varname, 168static void luaI_registerlocalvar (LexState *ls, TString *varname,
169 int line) { 169 int line) {
170 FuncState *fs = ls->fs; 170 FuncState *fs = ls->fs;
171 if (fs->nvars != -1) { /* debug information? */ 171 if (fs->nvars != -1) { /* debug information? */
172 TProtoFunc *f = fs->f; 172 Proto *f = fs->f;
173 luaM_growvector(ls->L, f->locvars, fs->nvars, 1, LocVar, "", MAX_INT); 173 luaM_growvector(ls->L, f->locvars, fs->nvars, 1, LocVar, "", MAX_INT);
174 f->locvars[fs->nvars].varname = varname; 174 f->locvars[fs->nvars].varname = varname;
175 f->locvars[fs->nvars].line = line; 175 f->locvars[fs->nvars].line = line;
@@ -183,7 +183,7 @@ static void luaI_unregisterlocalvar (LexState *ls, int line) {
183} 183}
184 184
185 185
186static void store_localvar (LexState *ls, TaggedString *name, int n) { 186static void store_localvar (LexState *ls, TString *name, int n) {
187 FuncState *fs = ls->fs; 187 FuncState *fs = ls->fs;
188 checklimit(ls, fs->nlocalvar+n+1, MAXLOCALS, "local variables"); 188 checklimit(ls, fs->nlocalvar+n+1, MAXLOCALS, "local variables");
189 fs->localvar[fs->nlocalvar+n] = name; 189 fs->localvar[fs->nlocalvar+n] = name;
@@ -199,13 +199,13 @@ static void adjustlocalvars (LexState *ls, int nvars, int line) {
199} 199}
200 200
201 201
202static void add_localvar (LexState *ls, TaggedString *name) { 202static void add_localvar (LexState *ls, TString *name) {
203 store_localvar(ls, name, 0); 203 store_localvar(ls, name, 0);
204 adjustlocalvars(ls, 1, 0); 204 adjustlocalvars(ls, 1, 0);
205} 205}
206 206
207 207
208static int aux_localname (FuncState *fs, TaggedString *n) { 208static int aux_localname (FuncState *fs, TString *n) {
209 int i; 209 int i;
210 for (i=fs->nlocalvar-1; i >= 0; i--) 210 for (i=fs->nlocalvar-1; i >= 0; i--)
211 if (n == fs->localvar[i]) return i; /* local var index */ 211 if (n == fs->localvar[i]) return i; /* local var index */
@@ -213,7 +213,7 @@ static int aux_localname (FuncState *fs, TaggedString *n) {
213} 213}
214 214
215 215
216static void singlevar (LexState *ls, TaggedString *n, expdesc *var, int prev) { 216static void singlevar (LexState *ls, TString *n, expdesc *var, int prev) {
217 FuncState *fs = prev ? ls->fs->prev : ls->fs; 217 FuncState *fs = prev ? ls->fs->prev : ls->fs;
218 int i = aux_localname(fs, n); 218 int i = aux_localname(fs, n);
219 if (i >= 0) { /* local value? */ 219 if (i >= 0) { /* local value? */
@@ -231,7 +231,7 @@ static void singlevar (LexState *ls, TaggedString *n, expdesc *var, int prev) {
231} 231}
232 232
233 233
234static int indexupvalue (LexState *ls, TaggedString *n) { 234static int indexupvalue (LexState *ls, TString *n) {
235 FuncState *fs = ls->fs; 235 FuncState *fs = ls->fs;
236 expdesc v; 236 expdesc v;
237 int i; 237 int i;
@@ -248,12 +248,12 @@ static int indexupvalue (LexState *ls, TaggedString *n) {
248} 248}
249 249
250 250
251static void pushupvalue (LexState *ls, TaggedString *n) { 251static void pushupvalue (LexState *ls, TString *n) {
252 if (ls->fs->prev == NULL) 252 if (ls->fs->prev == NULL)
253 luaX_syntaxerror(ls, "cannot access upvalue in main", n->str); 253 luaX_syntaxerror(ls, "cannot access upvalue in main", n->str);
254 if (aux_localname(ls->fs, n) >= 0) 254 if (aux_localname(ls->fs, n) >= 0)
255 luaX_syntaxerror(ls, "cannot access an upvalue in current scope", n->str); 255 luaX_syntaxerror(ls, "cannot access an upvalue in current scope", n->str);
256 luaK_U(ls, PUSHUPVALUE, indexupvalue(ls, n), 1); 256 luaK_U(ls, OP_PUSHUPVALUE, indexupvalue(ls, n), 1);
257} 257}
258 258
259 259
@@ -308,21 +308,21 @@ static int getvarname (LexState *ls, expdesc *var) {
308 308
309 309
310static void func_onstack (LexState *ls, FuncState *func) { 310static void func_onstack (LexState *ls, FuncState *func) {
311 TProtoFunc *f = ls->fs->f; 311 Proto *f = ls->fs->f;
312 int i; 312 int i;
313 for (i=0; i<func->nupvalues; i++) 313 for (i=0; i<func->nupvalues; i++)
314 luaK_tostack(ls, &func->upvalues[i], 1); 314 luaK_tostack(ls, &func->upvalues[i], 1);
315 luaM_growvector(ls->L, f->kproto, f->nkproto, 1, TProtoFunc *, 315 luaM_growvector(ls->L, f->kproto, f->nkproto, 1, Proto *,
316 constantEM, MAXARG_A); 316 constantEM, MAXARG_A);
317 f->kproto[f->nkproto++] = func->f; 317 f->kproto[f->nkproto++] = func->f;
318 luaK_deltastack(ls, 1); /* CLOSURE puts one extra element before popping */ 318 luaK_deltastack(ls, 1); /* CLOSURE puts one extra element before popping */
319 luaK_AB(ls, CLOSURE, f->nkproto-1, func->nupvalues, -func->nupvalues); 319 luaK_AB(ls, OP_CLOSURE, f->nkproto-1, func->nupvalues, -func->nupvalues);
320} 320}
321 321
322 322
323static void init_state (LexState *ls, FuncState *fs, TaggedString *source) { 323static void init_state (LexState *ls, FuncState *fs, TString *source) {
324 lua_State *L = ls->L; 324 lua_State *L = ls->L;
325 TProtoFunc *f = luaF_newproto(ls->L); 325 Proto *f = luaF_newproto(ls->L);
326 fs->prev = ls->fs; /* linked list of funcstates */ 326 fs->prev = ls->fs; /* linked list of funcstates */
327 ls->fs = fs; 327 ls->fs = fs;
328 fs->stacksize = 0; 328 fs->stacksize = 0;
@@ -340,19 +340,19 @@ static void init_state (LexState *ls, FuncState *fs, TaggedString *source) {
340 fs->nvars = (L->debug) ? 0 : -1; /* flag no debug information? */ 340 fs->nvars = (L->debug) ? 0 : -1; /* flag no debug information? */
341 /* push function (to avoid GC) */ 341 /* push function (to avoid GC) */
342 tfvalue(L->top) = f; 342 tfvalue(L->top) = f;
343 ttype(L->top) = LUA_T_LPROTO; 343 ttype(L->top) = TAG_LPROTO;
344 incr_top; 344 incr_top;
345} 345}
346 346
347 347
348static void close_func (LexState *ls) { 348static void close_func (LexState *ls) {
349 FuncState *fs = ls->fs; 349 FuncState *fs = ls->fs;
350 TProtoFunc *f = fs->f; 350 Proto *f = fs->f;
351 luaK_0(ls, ENDCODE, 0); 351 luaK_0(ls, OP_END, 0);
352 luaM_reallocvector(ls->L, f->code, fs->pc, Instruction); 352 luaM_reallocvector(ls->L, f->code, fs->pc, Instruction);
353 luaM_reallocvector(ls->L, f->kstr, f->nkstr, TaggedString *); 353 luaM_reallocvector(ls->L, f->kstr, f->nkstr, TString *);
354 luaM_reallocvector(ls->L, f->knum, f->nknum, real); 354 luaM_reallocvector(ls->L, f->knum, f->nknum, Number);
355 luaM_reallocvector(ls->L, f->kproto, f->nkproto, TProtoFunc *); 355 luaM_reallocvector(ls->L, f->kproto, f->nkproto, Proto *);
356 if (fs->nvars != -1) { /* debug information? */ 356 if (fs->nvars != -1) { /* debug information? */
357 luaI_registerlocalvar(ls, NULL, -1); /* flag end of vector */ 357 luaI_registerlocalvar(ls, NULL, -1); /* flag end of vector */
358 luaM_reallocvector(ls->L, f->locvars, fs->nvars, LocVar); 358 luaM_reallocvector(ls->L, f->locvars, fs->nvars, LocVar);
@@ -362,14 +362,14 @@ static void close_func (LexState *ls) {
362} 362}
363 363
364 364
365TProtoFunc *luaY_parser (lua_State *L, ZIO *z) { 365Proto *luaY_parser (lua_State *L, ZIO *z) {
366 struct LexState lexstate; 366 struct LexState lexstate;
367 struct FuncState funcstate; 367 struct FuncState funcstate;
368 luaX_setinput(L, &lexstate, z); 368 luaX_setinput(L, &lexstate, z);
369 init_state(&lexstate, &funcstate, luaS_new(L, zname(z))); 369 init_state(&lexstate, &funcstate, luaS_new(L, zname(z)));
370 next(&lexstate); /* read first token */ 370 next(&lexstate); /* read first token */
371 chunk(&lexstate); 371 chunk(&lexstate);
372 if (lexstate.token != EOS) 372 if (lexstate.token != TK_EOS)
373 luaK_error(&lexstate, "<eof> expected"); 373 luaK_error(&lexstate, "<eof> expected");
374 close_func(&lexstate); 374 close_func(&lexstate);
375 return funcstate.f; 375 return funcstate.f;
@@ -401,8 +401,8 @@ static int explist1 (LexState *ls) {
401static int explist (LexState *ls) { 401static int explist (LexState *ls) {
402 /* explist -> [ explist1 ] */ 402 /* explist -> [ explist1 ] */
403 switch (ls->token) { 403 switch (ls->token) {
404 case ELSE: case ELSEIF: case END: case UNTIL: 404 case TK_ELSE: case TK_ELSEIF: case TK_END: case TK_UNTIL:
405 case EOS: case ';': case ')': 405 case TK_EOS: case ';': case ')':
406 return 0; /* empty list */ 406 return 0; /* empty list */
407 407
408 default: 408 default:
@@ -432,7 +432,7 @@ static void funcargs (LexState *ls, int slf) {
432 constructor(ls); 432 constructor(ls);
433 break; 433 break;
434 434
435 case STRING: /* funcargs -> STRING */ 435 case TK_STRING: /* funcargs -> STRING */
436 code_string(ls, ls->seminfo.ts); /* must use `seminfo' before `next' */ 436 code_string(ls, ls->seminfo.ts); /* must use `seminfo' before `next' */
437 next(ls); 437 next(ls);
438 break; 438 break;
@@ -442,7 +442,7 @@ static void funcargs (LexState *ls, int slf) {
442 break; 442 break;
443 } 443 }
444 fs->stacksize = slevel; /* call will remove function and arguments */ 444 fs->stacksize = slevel; /* call will remove function and arguments */
445 luaK_AB(ls, CALL, slevel, MULT_RET, 0); 445 luaK_AB(ls, OP_CALL, slevel, MULT_RET, 0);
446} 446}
447 447
448 448
@@ -469,14 +469,14 @@ static void var_or_func_tail (LexState *ls, expdesc *v) {
469 next(ls); 469 next(ls);
470 name = checkname(ls); 470 name = checkname(ls);
471 luaK_tostack(ls, v, 1); /* `v' must be on stack */ 471 luaK_tostack(ls, v, 1); /* `v' must be on stack */
472 luaK_U(ls, PUSHSELF, name, 1); 472 luaK_U(ls, OP_PUSHSELF, name, 1);
473 funcargs(ls, 1); 473 funcargs(ls, 1);
474 v->k = VEXP; 474 v->k = VEXP;
475 v->u.l.t = v->u.l.f = 0; 475 v->u.l.t = v->u.l.f = 0;
476 break; 476 break;
477 } 477 }
478 478
479 case '(': case STRING: case '{': /* var_or_func_tail -> funcargs */ 479 case '(': case TK_STRING: case '{': /* var_or_func_tail -> funcargs */
480 luaK_tostack(ls, v, 1); /* `v' must be on stack */ 480 luaK_tostack(ls, v, 1); /* `v' must be on stack */
481 funcargs(ls, 0); 481 funcargs(ls, 0);
482 v->k = VEXP; 482 v->k = VEXP;
@@ -513,7 +513,7 @@ static void var_or_func (LexState *ls, expdesc *v) {
513static void recfield (LexState *ls) { 513static void recfield (LexState *ls) {
514 /* recfield -> (NAME | '['exp1']') = exp1 */ 514 /* recfield -> (NAME | '['exp1']') = exp1 */
515 switch (ls->token) { 515 switch (ls->token) {
516 case NAME: 516 case TK_NAME:
517 luaK_kstr(ls, checkname(ls)); 517 luaK_kstr(ls, checkname(ls));
518 break; 518 break;
519 519
@@ -541,12 +541,12 @@ static int recfields (LexState *ls) {
541 recfield(ls); 541 recfield(ls);
542 n++; 542 n++;
543 if (++mod_n == RFIELDS_PER_FLUSH) { 543 if (++mod_n == RFIELDS_PER_FLUSH) {
544 luaK_U(ls, SETMAP, RFIELDS_PER_FLUSH-1, -2*RFIELDS_PER_FLUSH); 544 luaK_U(ls, OP_SETMAP, RFIELDS_PER_FLUSH-1, -2*RFIELDS_PER_FLUSH);
545 mod_n = 0; 545 mod_n = 0;
546 } 546 }
547 } 547 }
548 if (mod_n) 548 if (mod_n)
549 luaK_U(ls, SETMAP, mod_n-1, -2*mod_n); 549 luaK_U(ls, OP_SETMAP, mod_n-1, -2*mod_n);
550 return n; 550 return n;
551} 551}
552 552
@@ -564,13 +564,13 @@ static int listfields (LexState *ls) {
564 checklimit(ls, n, MAXARG_A*LFIELDS_PER_FLUSH, 564 checklimit(ls, n, MAXARG_A*LFIELDS_PER_FLUSH,
565 "items in a list initializer"); 565 "items in a list initializer");
566 if (++mod_n == LFIELDS_PER_FLUSH) { 566 if (++mod_n == LFIELDS_PER_FLUSH) {
567 luaK_AB(ls, SETLIST, n/LFIELDS_PER_FLUSH - 1, LFIELDS_PER_FLUSH-1, 567 luaK_AB(ls, OP_SETLIST, n/LFIELDS_PER_FLUSH - 1, LFIELDS_PER_FLUSH-1,
568 -LFIELDS_PER_FLUSH); 568 -LFIELDS_PER_FLUSH);
569 mod_n = 0; 569 mod_n = 0;
570 } 570 }
571 } 571 }
572 if (mod_n > 0) 572 if (mod_n > 0)
573 luaK_AB(ls, SETLIST, n/LFIELDS_PER_FLUSH, mod_n-1, -mod_n); 573 luaK_AB(ls, OP_SETLIST, n/LFIELDS_PER_FLUSH, mod_n-1, -mod_n);
574 return n; 574 return n;
575} 575}
576 576
@@ -583,7 +583,7 @@ static void constructor_part (LexState *ls, constdesc *cd) {
583 cd->k = ls->token; 583 cd->k = ls->token;
584 return; 584 return;
585 585
586 case NAME: { 586 case TK_NAME: {
587 expdesc v; 587 expdesc v;
588 expr(ls, &v); 588 expr(ls, &v);
589 if (ls->token == '=') { 589 if (ls->token == '=') {
@@ -619,7 +619,7 @@ static void constructor_part (LexState *ls, constdesc *cd) {
619static void constructor (LexState *ls) { 619static void constructor (LexState *ls) {
620 /* constructor -> '{' constructor_part [';' constructor_part] '}' */ 620 /* constructor -> '{' constructor_part [';' constructor_part] '}' */
621 int line = ls->linenumber; 621 int line = ls->linenumber;
622 int pc = luaK_U(ls, CREATETABLE, 0, 1); 622 int pc = luaK_U(ls, OP_CREATETABLE, 0, 1);
623 int nelems; 623 int nelems;
624 constdesc cd; 624 constdesc cd;
625 check(ls, '{'); 625 check(ls, '{');
@@ -653,19 +653,19 @@ static void constructor (LexState *ls) {
653static void simpleexp (LexState *ls, expdesc *v) { 653static void simpleexp (LexState *ls, expdesc *v) {
654 check_debugline(ls); 654 check_debugline(ls);
655 switch (ls->token) { 655 switch (ls->token) {
656 case NUMBER: { /* simpleexp -> NUMBER */ 656 case TK_NUMBER: { /* simpleexp -> NUMBER */
657 real r = ls->seminfo.r; 657 Number r = ls->seminfo.r;
658 next(ls); 658 next(ls);
659 luaK_number(ls, r); 659 luaK_number(ls, r);
660 break; 660 break;
661 } 661 }
662 662
663 case STRING: /* simpleexp -> STRING */ 663 case TK_STRING: /* simpleexp -> STRING */
664 code_string(ls, ls->seminfo.ts); /* must use `seminfo' before `next' */ 664 code_string(ls, ls->seminfo.ts); /* must use `seminfo' before `next' */
665 next(ls); 665 next(ls);
666 break; 666 break;
667 667
668 case NIL: /* simpleexp -> NIL */ 668 case TK_NIL: /* simpleexp -> NIL */
669 luaK_adjuststack(ls, -1); 669 luaK_adjuststack(ls, -1);
670 next(ls); 670 next(ls);
671 break; 671 break;
@@ -674,7 +674,7 @@ static void simpleexp (LexState *ls, expdesc *v) {
674 constructor(ls); 674 constructor(ls);
675 break; 675 break;
676 676
677 case FUNCTION: /* simpleexp -> FUNCTION body */ 677 case TK_FUNCTION: /* simpleexp -> FUNCTION body */
678 next(ls); 678 next(ls);
679 body(ls, 0, ls->linenumber); 679 body(ls, 0, ls->linenumber);
680 break; 680 break;
@@ -685,7 +685,7 @@ static void simpleexp (LexState *ls, expdesc *v) {
685 check(ls, ')'); 685 check(ls, ')');
686 return; 686 return;
687 687
688 case NAME: case '%': 688 case TK_NAME: case '%':
689 var_or_func(ls, v); 689 var_or_func(ls, v);
690 return; 690 return;
691 691
@@ -720,12 +720,12 @@ static int get_priority (int op, int *rp) {
720 720
721 case '+': case '-': *rp = 5; return 5; 721 case '+': case '-': *rp = 5; return 5;
722 722
723 case CONC: *rp = 3; return 4; /* right associative (?) */ 723 case TK_CONC: *rp = 3; return 4; /* right associative (?) */
724 724
725 case EQ: case NE: case '>': case '<': case LE: case GE: 725 case TK_EQ: case TK_NE: case '>': case '<': case TK_LE: case TK_GE:
726 *rp = 2; return 2; 726 *rp = 2; return 2;
727 727
728 case AND: case OR: *rp = 1; return 1; 728 case TK_AND: case TK_OR: *rp = 1; return 1;
729 729
730 default: *rp = -1; return -1; 730 default: *rp = -1; return -1;
731 } 731 }
@@ -738,7 +738,7 @@ static int get_priority (int op, int *rp) {
738*/ 738*/
739static void subexpr (LexState *ls, expdesc *v, int limit) { 739static void subexpr (LexState *ls, expdesc *v, int limit) {
740 int rp; 740 int rp;
741 if (ls->token == '-' || ls->token == NOT) { 741 if (ls->token == '-' || ls->token == TK_NOT) {
742 int op = ls->token; /* operator */ 742 int op = ls->token; /* operator */
743 next(ls); 743 next(ls);
744 subexpr(ls, v, UNARY_PRIORITY); 744 subexpr(ls, v, UNARY_PRIORITY);
@@ -806,7 +806,7 @@ static int assignment (LexState *ls, expdesc *v, int nvars) {
806 luaK_storevar(ls, v); 806 luaK_storevar(ls, v);
807 } 807 }
808 else { /* indexed var with values in between*/ 808 else { /* indexed var with values in between*/
809 luaK_U(ls, SETTABLE, left+(nvars-1), -1); 809 luaK_U(ls, OP_SETTABLE, left+(nvars-1), -1);
810 left += 2; /* table&index are not popped, because they aren't on top */ 810 left += 2; /* table&index are not popped, because they aren't on top */
811 } 811 }
812 return left; 812 return left;
@@ -838,11 +838,11 @@ static void whilestat (LexState *ls, int line) {
838 for (i=0; i<cond_size; i++) buffer[i] = fs->f->code[while_init+i]; 838 for (i=0; i<cond_size; i++) buffer[i] = fs->f->code[while_init+i];
839 /* go back to state prior condition */ 839 /* go back to state prior condition */
840 fs->pc = while_init; 840 fs->pc = while_init;
841 luaK_S(ls, JMP, 0, 0); /* initial jump to condition */ 841 luaK_S(ls, OP_JMP, 0, 0); /* initial jump to condition */
842 check(ls, DO); 842 check(ls, TK_DO);
843 loopentry = luaK_getlabel(ls); 843 loopentry = luaK_getlabel(ls);
844 block(ls); 844 block(ls);
845 check_match(ls, END, WHILE, line); 845 check_match(ls, TK_END, TK_WHILE, line);
846 cond_init = luaK_getlabel(ls); 846 cond_init = luaK_getlabel(ls);
847 luaK_fixjump(ls, while_init, cond_init); 847 luaK_fixjump(ls, while_init, cond_init);
848 /* correct `v' and copy condition to new position */ 848 /* correct `v' and copy condition to new position */
@@ -859,7 +859,7 @@ static void repeatstat (LexState *ls, int line) {
859 expdesc v; 859 expdesc v;
860 next(ls); 860 next(ls);
861 block(ls); 861 block(ls);
862 check_match(ls, UNTIL, REPEAT, line); 862 check_match(ls, TK_UNTIL, TK_REPEAT, line);
863 expr(ls, &v); 863 expr(ls, &v);
864 luaK_goiftrue(ls, &v, 0); 864 luaK_goiftrue(ls, &v, 0);
865 luaK_patchlist(ls, v.u.l.f, repeat_init); 865 luaK_patchlist(ls, v.u.l.f, repeat_init);
@@ -958,16 +958,16 @@ static void ifpart (LexState *ls, int line) {
958 next(ls); /* skip IF or ELSEIF */ 958 next(ls); /* skip IF or ELSEIF */
959 expr(ls, &v); /* cond */ 959 expr(ls, &v); /* cond */
960 luaK_goiftrue(ls, &v, 0); 960 luaK_goiftrue(ls, &v, 0);
961 check(ls, THEN); 961 check(ls, TK_THEN);
962 block(ls); /* `then' part */ 962 block(ls); /* `then' part */
963 luaK_S(ls, JMP, 0, 0); /* 2nd jump: over `else' part */ 963 luaK_S(ls, OP_JMP, 0, 0); /* 2nd jump: over `else' part */
964 elseinit = luaK_getlabel(ls); /* address of 2nd jump == elseinit-1 */ 964 elseinit = luaK_getlabel(ls); /* address of 2nd jump == elseinit-1 */
965 if (ls->token == ELSEIF) 965 if (ls->token == TK_ELSEIF)
966 ifpart(ls, line); 966 ifpart(ls, line);
967 else { 967 else {
968 if (optional(ls, ELSE)) 968 if (optional(ls, TK_ELSE))
969 block(ls); /* `else' part */ 969 block(ls); /* `else' part */
970 check_match(ls, END, IF, line); 970 check_match(ls, TK_END, TK_IF, line);
971 } 971 }
972 if (fs->pc > elseinit) { /* is there an `else' part? */ 972 if (fs->pc > elseinit) { /* is there an `else' part? */
973 luaK_fixjump(ls, elseinit-1, luaK_getlabel(ls)); /* fix 2nd jump */ 973 luaK_fixjump(ls, elseinit-1, luaK_getlabel(ls)); /* fix 2nd jump */
@@ -983,38 +983,38 @@ static void ifpart (LexState *ls, int line) {
983static int stat (LexState *ls) { 983static int stat (LexState *ls) {
984 int line = ls->linenumber; /* may be needed for error messages */ 984 int line = ls->linenumber; /* may be needed for error messages */
985 switch (ls->token) { 985 switch (ls->token) {
986 case IF: /* stat -> IF ifpart END */ 986 case TK_IF: /* stat -> IF ifpart END */
987 ifpart(ls, line); 987 ifpart(ls, line);
988 return 1; 988 return 1;
989 989
990 case WHILE: /* stat -> whilestat */ 990 case TK_WHILE: /* stat -> whilestat */
991 whilestat(ls, line); 991 whilestat(ls, line);
992 return 1; 992 return 1;
993 993
994 case DO: { /* stat -> DO block END */ 994 case TK_DO: { /* stat -> DO block END */
995 next(ls); 995 next(ls);
996 block(ls); 996 block(ls);
997 check_match(ls, END, DO, line); 997 check_match(ls, TK_END, TK_DO, line);
998 return 1; 998 return 1;
999 } 999 }
1000 1000
1001 case REPEAT: /* stat -> repeatstat */ 1001 case TK_REPEAT: /* stat -> repeatstat */
1002 repeatstat(ls, line); 1002 repeatstat(ls, line);
1003 return 1; 1003 return 1;
1004 1004
1005 case FUNCTION: /* stat -> funcstat */ 1005 case TK_FUNCTION: /* stat -> funcstat */
1006 return funcstat(ls, line); 1006 return funcstat(ls, line);
1007 1007
1008 case LOCAL: /* stat -> localstat */ 1008 case TK_LOCAL: /* stat -> localstat */
1009 localstat(ls); 1009 localstat(ls);
1010 return 1; 1010 return 1;
1011 1011
1012 case NAME: case '%': /* stat -> namestat */ 1012 case TK_NAME: case '%': /* stat -> namestat */
1013 namestat(ls); 1013 namestat(ls);
1014 return 1; 1014 return 1;
1015 1015
1016 case RETURN: case ';': case ELSE: case ELSEIF: 1016 case TK_RETURN: case ';': case TK_ELSE: case TK_ELSEIF:
1017 case END: case UNTIL: case EOS: /* `stat' follow */ 1017 case TK_END: case TK_UNTIL: case TK_EOS: /* `stat' follow */
1018 return 0; 1018 return 0;
1019 1019
1020 default: 1020 default:
@@ -1028,23 +1028,23 @@ static void parlist (LexState *ls) {
1028 int nparams = 0; 1028 int nparams = 0;
1029 int dots = 0; 1029 int dots = 0;
1030 switch (ls->token) { 1030 switch (ls->token) {
1031 case DOTS: /* parlist -> DOTS */ 1031 case TK_DOTS: /* parlist -> DOTS */
1032 next(ls); 1032 next(ls);
1033 dots = 1; 1033 dots = 1;
1034 break; 1034 break;
1035 1035
1036 case NAME: /* parlist, tailparlist -> NAME [',' tailparlist] */ 1036 case TK_NAME: /* parlist, tailparlist -> NAME [',' tailparlist] */
1037 init: 1037 init:
1038 store_localvar(ls, str_checkname(ls), nparams++); 1038 store_localvar(ls, str_checkname(ls), nparams++);
1039 if (ls->token == ',') { 1039 if (ls->token == ',') {
1040 next(ls); 1040 next(ls);
1041 switch (ls->token) { 1041 switch (ls->token) {
1042 case DOTS: /* tailparlist -> DOTS */ 1042 case TK_DOTS: /* tailparlist -> DOTS */
1043 next(ls); 1043 next(ls);
1044 dots = 1; 1044 dots = 1;
1045 break; 1045 break;
1046 1046
1047 case NAME: /* tailparlist -> NAME [',' tailparlist] */ 1047 case TK_NAME: /* tailparlist -> NAME [',' tailparlist] */
1048 goto init; 1048 goto init;
1049 1049
1050 default: luaK_error(ls, "<name> or `...' expected"); 1050 default: luaK_error(ls, "<name> or `...' expected");
@@ -1071,7 +1071,7 @@ static void body (LexState *ls, int needself, int line) {
1071 parlist(ls); 1071 parlist(ls);
1072 check(ls, ')'); 1072 check(ls, ')');
1073 chunk(ls); 1073 chunk(ls);
1074 check_match(ls, END, FUNCTION, line); 1074 check_match(ls, TK_END, TK_FUNCTION, line);
1075 close_func(ls); 1075 close_func(ls);
1076 func_onstack(ls, &new_fs); 1076 func_onstack(ls, &new_fs);
1077} 1077}
@@ -1079,7 +1079,7 @@ static void body (LexState *ls, int needself, int line) {
1079 1079
1080static void ret (LexState *ls) { 1080static void ret (LexState *ls) {
1081 /* ret -> [RETURN explist sc] */ 1081 /* ret -> [RETURN explist sc] */
1082 if (ls->token == RETURN) { 1082 if (ls->token == TK_RETURN) {
1083 int nexps; /* number of expressions returned */ 1083 int nexps; /* number of expressions returned */
1084 check_debugline(ls); 1084 check_debugline(ls);
1085 next(ls); 1085 next(ls);