rendered paste bodycall_table(TbA, TbP, Dct):
{ tbA: TbA[TAB_TAB_idx];
tbP: TbP[TAB_TAB_idx];
siz: size(tbA);
if(siz = size(tbP),
{ iter(k):
if(not(k > siz),
{ arg: tbA[k];
par: tbP[k];
tag: par[TAG_idx];
cas: bind_case(tag);
Dct:= cas(arg, par, Dct);
iter(k+1) },
void);
iter(1) },
error('Illegal argument count'));
Dct };
call_variable(Tab, Var, Dct):
{ nam: Var[VAR_NAM_idx];
tab: Tab[TAB_TAB_idx];
siz: size(tab);
exp: if(siz > 0,
{ arg[siz]: 0;
iter(k):
if(not(k > siz),
{ arg[k]:= eval(tab[k]);
iter(k+1) },
TAB(arg));
iter(1) },
Empty);
add(nam, exp, Dct) };