home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / m6 / m6.h next >
Encoding:
C/C++ Source or Header  |  1975-07-17  |  1.7 KB  |  67 lines

  1.  
  2. struct { 
  3.     int word; 
  4. };
  5.  
  6. struct {        /*"put stack", currently gathering args*/
  7.     int prev;    /*previous frame ptr, self-relative*/
  8.     int pan;    /*argument number of arg being collected*/
  9.     int pa0;    /*self-relative ptr oo arg0*/
  10. #define pend 6
  11. };
  12.  
  13. struct {        /*"get stack", currently expanding macros*/
  14.     int prev;    /* prev frame ptr, self-realtive*/
  15.     int mframe;    /* ptr to macro definition frame*/
  16.     int mchar;    /* next char relative to def. frame*/
  17.     int marg;    /* 0 or ptr to next arg char reltive to gf*/
  18.     int ga0;    /* arg0 ptr self-rel*/
  19. };
  20.  
  21. struct {        /*"definition stack"*/
  22.     int prev;    /* prev frame ptr, self-relative*/
  23.     int dswitch;    /* builtin func code, neg for dead definition*/
  24.     int dtext;    /* definition text prt rel to df*/
  25.     int dident;    /* first char of identifier naming def*/
  26. #define dend 6
  27. };
  28.  
  29. char metas[];
  30. #define lquote metas[0]
  31. #define rquote metas[1]
  32. #define sharp metas[2]
  33. #define colon metas[3]
  34. #define semi metas[4]
  35. #define comma metas[5]
  36. #define dollar metas[6]
  37. #define NMETA 7
  38.  
  39. char one[];
  40. int rescan;
  41. int traceflag;
  42. int trashflag;        /* nonzero when dead def'n exist*/
  43.  
  44. int lp;            /* arg collection level (out level)*/
  45. int lg;            /*input level (get level) */
  46. int lq;        /*quote level*/
  47. int l9;            /*apparent call level within arg 9*/
  48.  
  49. char c;            /*current input character*/
  50.  
  51. char *pf;        /*put stack frame ptr*/
  52. char *pe;        /*put stack end*/
  53. char *pmax;        /*top of put stack*/
  54. char p0[];        /*put stack*/
  55.  
  56. char *gf;        /*get stack frame ptr*/
  57. char *ge;        /*get stack end*/
  58. char *gmax;        /*get stack limit*/
  59. char g0[];        /*get stack*/
  60.  
  61. char *df;        /*definition stack frame ptr*/
  62. char *de;        /*def stack end*/
  63. char *dmax;        /*def stack limit*/
  64. char d0[];        /*def stack*/
  65.  
  66. char dummy[];        /*dummy empty macro*/
  67.