USG_PG3/usr/source/lexgen2/nofree.c
# include "../lexgen1/ldefs.c"
nofree()
{
int i,k,l,lt,c, *p, *q;
int sbuff[NRULES], *bp, *tp;
for(i=1; i<=nstate; i++)
{
tp = unpack(slide(i,1,0), bp= sbuff);
while (bp <tp)
{
k = *bp++;
if (q= slide(k,1,0))
while (l = *++q)
tp = smore(sbuff, tp, l);
for (c=0; c<NCH; c++)
{
if (q=move(k,c,1,0))
while (l = *++q)
addmove(i,c,l);
}
ngo[i] =+ ngo[k];
if (q= stops(k,1))
while (l = *q++)
addstop(i,l);
}
slide(i, -1, 0);
}
}
unpack(p,q)
int *p, *q;
{
if (p==0) return(q);
while (*q++ = *++p);
return(q-1);
}
smore(b, t, l)
int *b, *t;
{
while (b<t)
if (*b++ ==l)
return (t);
*t++ = l;
return(t);
}