home *** CD-ROM | disk | FTP | other *** search
-
- struct {
- int word;
- };
-
- struct { /*"put stack", currently gathering args*/
- int prev; /*previous frame ptr, self-relative*/
- int pan; /*argument number of arg being collected*/
- int pa0; /*self-relative ptr oo arg0*/
- #define pend 6
- };
-
- struct { /*"get stack", currently expanding macros*/
- int prev; /* prev frame ptr, self-realtive*/
- int mframe; /* ptr to macro definition frame*/
- int mchar; /* next char relative to def. frame*/
- int marg; /* 0 or ptr to next arg char reltive to gf*/
- int ga0; /* arg0 ptr self-rel*/
- };
-
- struct { /*"definition stack"*/
- int prev; /* prev frame ptr, self-relative*/
- int dswitch; /* builtin func code, neg for dead definition*/
- int dtext; /* definition text prt rel to df*/
- int dident; /* first char of identifier naming def*/
- #define dend 6
- };
-
- char metas[];
- #define lquote metas[0]
- #define rquote metas[1]
- #define sharp metas[2]
- #define colon metas[3]
- #define semi metas[4]
- #define comma metas[5]
- #define dollar metas[6]
- #define NMETA 7
-
- char one[];
- int rescan;
- int traceflag;
- int trashflag; /* nonzero when dead def'n exist*/
-
- int lp; /* arg collection level (out level)*/
- int lg; /*input level (get level) */
- int lq; /*quote level*/
- int l9; /*apparent call level within arg 9*/
-
- char c; /*current input character*/
-
- char *pf; /*put stack frame ptr*/
- char *pe; /*put stack end*/
- char *pmax; /*top of put stack*/
- char p0[]; /*put stack*/
-
- char *gf; /*get stack frame ptr*/
- char *ge; /*get stack end*/
- char *gmax; /*get stack limit*/
- char g0[]; /*get stack*/
-
- char *df; /*definition stack frame ptr*/
- char *de; /*def stack end*/
- char *dmax; /*def stack limit*/
- char d0[]; /*def stack*/
-
- char dummy[]; /*dummy empty macro*/
-