28 #define getlocvar(fs, i) ((fs)->f->locvars[(fs)->actvar[i]])
31 #define enterlevel(ls) if (++(ls)->nestlevel > LUA_MAXPARSERLEVEL) \
32 luaX_syntaxerror(ls, "too many syntax levels");
33 #define leavelevel(ls) ((ls)->nestlevel--)
108 #define check_condition(ls,c,msg) { if (!(c)) luaX_syntaxerror(ls, msg); }
120 "`%s' expected (to close `%s' at line %d)",
187 for (; nvars; nvars--) {
222 for (i=0; i<f->
nups; i++) {
242 for (i=fs->
nactvar-1; i >= 0; i--) {
255 if (bl) bl->
upval = 1;
299 int extra = nvars - nexps;
302 if (extra <= 0) extra = 0;
367 f->
p[fs->
np++] = func->
f;
370 for (i=0; i<func->
f->
nups; i++) {
430 lexstate.
buff = buff;
572 if (ls->
t.
token ==
'}')
break;
616 }
while (!dots &&
testnext(ls,
','));
694 nparams = LUA_MULTRET;
698 nparams = fs->
freereg - (base+1);
733 #ifdef LUA_COMPATUPSYNTAX
875 static const struct {
879 {6, 6}, {6, 6}, {7, 7}, {7, 7},
882 {3, 3}, {3, 3}, {3, 3}, {3, 3},
886 #define UNARY_PRIORITY 8
987 for (; lh; lh = lh->
prev) {
1024 if (nexps != nvars) {
1060 #define MAXEXPWHILE 100
1078 int whileinit, blockinit, expinit;
1090 sizeexp = fs->
pc - expinit;
1093 for (i = 0; i < sizeexp; i++)
1094 codeexp[i] = fs->
f->
code[expinit + i];
1104 for (i=0; i<sizeexp; i++)
1184 forbody(ls, base, line, 3, 1);
1207 forbody(ls, base, line, nvars, 0);
1222 case '=':
fornum(ls, varname, line);
break;
1311 while (ls->
t.
token ==
'.')
1313 if (ls->
t.
token ==
':') {
1329 body(ls, &b, needself, line);