Annotation of researchv9/cmd/grap/grap.h, revision 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.