Annotation of researchv9/cmd/grap/grap.h, revision 1.1.1.1

1.1       root        1: #define        dprintf if(dbg)printf
                      2: 
                      3: #define        String  01
                      4: #define        Macro   02
                      5: #define        File    04
                      6: #define        Char    010
                      7: #define        Thru    020
                      8: #define        Free    040
                      9: 
                     10: #define        MARGIN  0.07    /* default margin around data */
                     11: #define        SLOP    1.001   /* slop for limits of for loops */
                     12: #define        FRAMEWID 3      /* default width for boxes and ellipses */
                     13: #define        FRAMEHT 2       /* default height and line length */
                     14: #define        TICKLEN 0.1
                     15: 
                     16: #define        MAXNUM  200
                     17: 
                     18: #define        XFLAG   01
                     19: #define        YFLAG   02
                     20: 
                     21: #define        INTICK  01
                     22: #define        OUTICK  02
                     23: 
                     24: #define        BOT     01
                     25: #define        TOP     02
                     26: #define        RIGHT   04
                     27: #define        LEFT    010
                     28: 
                     29: #define        RJUST   01
                     30: #define        LJUST   02
                     31: #define        ABOVE   04
                     32: #define        BELOW   010
                     33: 
                     34: typedef struct infile {
                     35:        FILE    *fin;
                     36:        char    *fname;
                     37:        int     lineno;
                     38: } Infile;
                     39: 
                     40: typedef struct {       /* input source */
                     41:        int     type;   /* Macro, String, File */
                     42:        char    *sp;    /* if String or Macro */
                     43: } Src;
                     44: 
                     45: extern Src     src[], *srcp;   /* input source stack */
                     46: 
                     47: #define        MAXARGS 20
                     48: typedef struct {       /* argument stack */
                     49:        char    *argstk[MAXARGS];       /* pointers to args */
                     50:        char    *argval;        /* points to space containing args */
                     51: } Arg;
                     52: 
                     53: extern Infile  infile[10];
                     54: extern Infile  *curfile;
                     55: 
                     56: typedef struct {
                     57:        struct obj *obj;
                     58:        double  x, y;
                     59: } Point;
                     60: 
                     61: typedef struct attr {  /* e.g., DASH 1.1 or "..." rjust size *.5 */
                     62:        short   type;
                     63:        double  fval;
                     64:        char    *sval;
                     65:        short   just;   /* justification, for STRING type */
                     66:        short   op;     /* optional operator, ditto */
                     67:        struct attr *next;
                     68: } Attr;
                     69: 
                     70: typedef struct obj {   /* a name and its properties */
                     71:        char    *name;
                     72:        char    *val;   /* body of define, etc. */
                     73:        double  fval;   /* if a numeric variable */
                     74:        Point   pt;     /* usually for max and min */
                     75:        Point   pt1;
                     76:        short   type;   /* NAME, DEFNAME, ... */
                     77:        short   first;  /* 1 after 1st item seen */
                     78:        short   coord;  /* 1 if coord system specified for this name */
                     79:        short   log;    /* x, y, or z (= x+y) */
                     80:        Attr    *attr;  /* DASH, etc., for now */
                     81:        struct obj *next;
                     82: } Obj;
                     83: 
                     84: typedef union {                /* the yacc stack type */
                     85:        int     i;
                     86:        char    *p;
                     87:        double  f;
                     88:        Point   pt;
                     89:        Obj     *op;
                     90:        Attr    *ap;
                     91: } YYSTYPE;
                     92: 
                     93: extern YYSTYPE yylval, yyval;
                     94: 
                     95: extern int     dbg;
                     96: 
                     97: extern int     ntext;
                     98: extern double  num[MAXNUM];
                     99: extern int     nnum;
                    100: extern int     ntick, tside;
                    101: 
                    102: extern char    *calloc(), *malloc(), *realloc(), *tostring(), *grow();
                    103: extern char    *desc_str(), *ifstat(), *delimstr();
                    104: extern char    *xyname(), *slprint();
                    105: extern Obj     *lookup();
                    106: extern Obj     *copythru();
                    107: extern Obj     *objlist;
                    108: extern Attr    *makeattr(), *makefattr(), *makesattr(), *addattr();
                    109: extern char    *sprntf(/* char *, Attr* */);
                    110: extern Point   makepoint();
                    111: extern double  setvar(), getvar();
                    112: 
                    113: extern int     lineno;
                    114: extern int     synerr;
                    115: extern int     codegen;
                    116: extern char    *tempfile;
                    117: extern FILE    *tfd;
                    118: 
                    119: extern Point   ptmin, ptmax;
                    120: 
                    121: extern char    *dflt_coord;
                    122: extern char    *curr_coord;
                    123: extern int     ncoord;
                    124: extern int     auto_x;
                    125: extern double  margin;
                    126: extern int     autoticks;
                    127: extern int     pointsize, ps_set;
                    128: 
                    129: extern char    *sizeit(), *juststr();
                    130: extern double  log10(), log(), exp(), sin(), cos(), sqrt(), atof(), errcheck();
                    131: extern double  fabs(), floor(), ceil(), moddouble(), modceil();
                    132: 
                    133: #define        logit(x) (x) = log10(x)
                    134: #define        Log10(x) errcheck(log10(x), "log")
                    135: #define        Exp(x)  errcheck(exp(x), "exp")
                    136: #define        Sqrt(x) errcheck(sqrt(x), "sqrt")
                    137: 
                    138: #define        min(x,y)        (((x) <= (y)) ? (x) : (y))
                    139: #define        max(x,y)        (((x) >= (y)) ? (x) : (y))

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.