Sindbad~EG File Manager
// Beeson 6.26.06 added fourth line of BIND, but can't comment that line without
// causing compile errors.
#define BIND(i, c1, t2, c2, trp) { struct trail *tr; \
c1->terms[i] = t2; c1->contexts[i] = c2; \
tr = get_trail(); tr->varnum = i; tr->context = c1; \
if(t2->type == VARIABLE && Flags[LAMBDA_FLAG].val && c2) fix_forbidden(i,c1,t2->varnum,c2,tr); \
tr->next = *trp; *trp = tr; }
#define DEREFERENCE(t, c) { int i; \
while (t->type == VARIABLE && c->terms[i = t->varnum]) \
{ t = c->terms[i]; c = c->contexts[i]; } }
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists