home *** CD-ROM | disk | FTP | other *** search
- #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
-