MCPcopy Create free account
hub / github.com/F-Stack/f-stack / parlist

Function parlist

app/redis-6.2.6/deps/lua/src/lparser.c:547–577  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

545
546
547static void parlist (LexState *ls) {
548 /* parlist -> [ param { `,' param } ] */
549 FuncState *fs = ls->fs;
550 Proto *f = fs->f;
551 int nparams = 0;
552 f->is_vararg = 0;
553 if (ls->t.token != ')') { /* is `parlist' not empty? */
554 do {
555 switch (ls->t.token) {
556 case TK_NAME: { /* param -> NAME */
557 new_localvar(ls, str_checkname(ls), nparams++);
558 break;
559 }
560 case TK_DOTS: { /* param -> `...' */
561 luaX_next(ls);
562#if defined(LUA_COMPAT_VARARG)
563 /* use `arg' as default name */
564 new_localvarliteral(ls, "arg", nparams++);
565 f->is_vararg = VARARG_HASARG | VARARG_NEEDSARG;
566#endif
567 f->is_vararg |= VARARG_ISVARARG;
568 break;
569 }
570 default: luaX_syntaxerror(ls, "<name> or " LUA_QL("...") " expected");
571 }
572 } while (!f->is_vararg && testnext(ls, ','));
573 }
574 adjustlocalvars(ls, nparams);
575 f->numparams = cast_byte(fs->nactvar - (f->is_vararg & VARARG_HASARG));
576 luaK_reserveregs(fs, fs->nactvar); /* reserve register for parameters */
577}
578
579
580static void body (LexState *ls, expdesc *e, int needself, int line) {

Callers 1

bodyFunction · 0.70

Calls 7

new_localvarFunction · 0.70
str_checknameFunction · 0.70
luaX_nextFunction · 0.70
luaX_syntaxerrorFunction · 0.70
testnextFunction · 0.70
adjustlocalvarsFunction · 0.70
luaK_reserveregsFunction · 0.70

Tested by

no test coverage detected