static A jtmakename(J jt,C*s){A z;I m;NM*zv; m=strlen(s); GATV(z,NAME,m,1,0); zv=NAV(z); // Use GATV because GA doesn't support NAME type MC(zv->s,s,m); *(m+zv->s)=0; zv->m =(UC)m; zv->bucket=zv->bucketx=0; zv->flag=NMDOT; zv->hash=nmhash(m,s); ACX(z); R z; }
static B jtpdef(J jt,C id,I t,AF f1,AF f2,I m,I l,I r){A z;V*v; GA(z,t,1,0,0); ACX(z); v=VAV(z); v->f1=f1?f1:jtdomainerr1; /* monad C function */ v->f2=f2?f2:jtdomainerr2; /* dyad C function */ v->mr=m; /* monadic rank */ v->lr=l; /* left rank */ v->rr=r; /* right rank */ v->fdep=1; /* function depth */ v->id=id; /* spelling */ pst[(UC)id]=z; /* other fields are zeroed in ga() */ R 1; }
static A jtmakename(J jt,C*s){A z;I m;NM*zv; m=strlen(s); GA(z,NAME,m,1,0); zv=NAV(z); memcpy(zv->s,s,m); *(m+zv->s)=0; zv->m =(UC)m; zv->sn =0; zv->e =0; zv->flag=NMDOT; zv->hash=NMHASH(m,s); ACX(z); R z; }