#ifndef _EXPRFAST_ # define _EXPRFAST_ 1 /* ---------------------------------------------------------------------- */ /* Copyright (C) 1991 by Natrlich! */ /* This file is copyrighted! */ /* Refer to the documentation for details. */ /* ---------------------------------------------------------------------- */ # if VERSION # if ! _EXPR_ extern exp_m huge *ex_h; extern ref huge *rp; extern expr huge *ep; extern lexpr huge *lp; extern buffer huge *bp; # endif #define refer( l, ex) \ (rp = ref_alloc(), rp->line = bp->line, rp->ref = ex, \ l->type |= L_REF, rp->next = l->refs, l->refs = rp, rp) #define ival_pl( value) (ep = exp_alloc(), ep->val = value, ep) #define lex_pl( s, ex) \ (lp = lex_alloc(), lp->string = s, lp->expr = ex, lp->next = 0, lp) #define lex_ch( l, r) (l->next = r, l) /* NOTE THAT this must not be the first exp_alloc call */ #define exp_alloc() \ (ex_h->free-- ? ex_h->tab++ : (ex_h->free++, sexp_alloc())) # else # define exp_alloc() sexp_alloc() # define lex_ch( x, y) slex_ch( x, y) # endif #endif