114 lines
2.4 KiB
C
114 lines
2.4 KiB
C
/* Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
|
|
/* Copyright (c) 1988 AT&T */
|
|
/* All Rights Reserved */
|
|
|
|
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
|
|
/* UNIX System Laboratories, Inc. */
|
|
/* The copyright notice above does not evidence any */
|
|
/* actual or intended publication of such source code. */
|
|
|
|
#ident "@(#)m4:m4.h 1.6"
|
|
|
|
#include <ctype.h>
|
|
#include <string.h>
|
|
#include <malloc.h>
|
|
#include <stdio.h>
|
|
|
|
#define EOS '\0'
|
|
#define LOW7 0177
|
|
#define MAXSYM 5
|
|
#define PUSH 1
|
|
#define NOPUSH 0
|
|
#define OK 0
|
|
#define NOT_OK 1
|
|
|
|
#define putbak(c) (ip < ibuflm? (*ip++ = (c)): error2(pbmsg,bufsize))
|
|
#define stkchr(c) (op < obuflm? (*op++ = (c)): error2(aofmsg,bufsize))
|
|
#define sputchr(c,f) (putc(c,f)=='\n'? lnsync(f): 0)
|
|
#define putchr(c) (Cp?stkchr(c):cf?(sflag?sputchr(c,cf):putc(c,cf)):0)
|
|
|
|
struct bs {
|
|
int (*bfunc)();
|
|
char *bname;
|
|
};
|
|
|
|
struct call {
|
|
char **argp;
|
|
int plev;
|
|
};
|
|
|
|
struct nlist {
|
|
char *name;
|
|
char *def;
|
|
char tflag;
|
|
struct nlist *next;
|
|
};
|
|
|
|
struct wrap_info {
|
|
char *str;
|
|
struct wrap_info *previous;
|
|
};
|
|
|
|
extern FILE *cf;
|
|
extern FILE *ifile[];
|
|
extern FILE *ofile[];
|
|
extern FILE *xfopen();
|
|
extern char **Ap;
|
|
extern char **argstk;
|
|
extern struct wrap_info *Wrapstr;
|
|
extern struct wrap_info *Curr_str;
|
|
extern char *astklm;
|
|
extern char *inpmatch();
|
|
extern char *chkbltin();
|
|
extern char *xcalloc();
|
|
extern char *copy();
|
|
extern char *fname[];
|
|
extern char *ibuf;
|
|
extern char *ibuflm;
|
|
extern char *ip;
|
|
extern char *ipflr;
|
|
extern char *ipstk[10];
|
|
extern char *obuf;
|
|
extern char *obuflm;
|
|
extern char *op;
|
|
extern char *procnam;
|
|
extern char *tempfile;
|
|
extern char *token;
|
|
extern char *toklm;
|
|
extern int C;
|
|
extern int getchr();
|
|
extern char aofmsg[];
|
|
extern char astkof[];
|
|
extern char badfile[];
|
|
extern char fnbuf[];
|
|
extern char lcom[];
|
|
extern char lquote[];
|
|
extern char nocore[];
|
|
extern char nullstr[];
|
|
extern char pbmsg[];
|
|
extern char rcom[];
|
|
extern char rquote[];
|
|
extern char type[];
|
|
extern int bufsize;
|
|
extern void catchsig();
|
|
extern int fline[];
|
|
extern int hshsize;
|
|
extern int hshval;
|
|
extern int ifx;
|
|
extern int nflag;
|
|
extern int ofx;
|
|
extern int sflag;
|
|
extern int stksize;
|
|
extern int sysrval;
|
|
extern int toksize;
|
|
extern int trace;
|
|
extern long ctol();
|
|
extern struct bs barray[];
|
|
extern struct call *Cp;
|
|
extern struct call *callst;
|
|
extern struct nlist **hshtab;
|
|
extern struct nlist *install();
|
|
extern struct nlist *lookup();
|
|
extern int nincls;
|
|
extern char *incls[];
|