date and time created 85/07/19 15:37:31 by jaap
authorJaap Akkerhuis <jaap@ucbvax.Berkeley.EDU>
Sat, 20 Jul 1985 06:37:31 +0000 (22:37 -0800)
committerJaap Akkerhuis <jaap@ucbvax.Berkeley.EDU>
Sat, 20 Jul 1985 06:37:31 +0000 (22:37 -0800)
SCCS-vsn: local/ditroff/ditroff.okeeffe/grap/grap.h 1.1

usr/src/local/ditroff/ditroff.okeeffe/grap/grap.h [new file with mode: 0644]

diff --git a/usr/src/local/ditroff/ditroff.okeeffe/grap/grap.h b/usr/src/local/ditroff/ditroff.okeeffe/grap/grap.h
new file mode 100644 (file)
index 0000000..2a9da59
--- /dev/null
@@ -0,0 +1,138 @@
+#define        dprintf if(dbg)printf
+
+#define        String  01
+#define        Macro   02
+#define        File    04
+#define        Char    010
+#define        Thru    020
+#define        Free    040
+
+#define        MARGIN  0.07    /* default margin around data */
+#define        SLOP    1.001   /* slop for limits of for loops */
+#define        FRAMEWID 3      /* default width for boxes and ellipses */
+#define        FRAMEHT 2       /* default height and line length */
+#define        TICKLEN 0.1
+
+#define        MAXNUM  200
+
+#define        XFLAG   01
+#define        YFLAG   02
+
+#define        INTICK  01
+#define        OUTICK  02
+
+#define        BOT     01
+#define        TOP     02
+#define        RIGHT   04
+#define        LEFT    010
+
+#define        RJUST   01
+#define        LJUST   02
+#define        ABOVE   04
+#define        BELOW   010
+
+typedef struct infile {
+       FILE    *fin;
+       char    *fname;
+       int     lineno;
+} Infile;
+
+typedef struct {       /* input source */
+       int     type;   /* Macro, String, File */
+       char    *sp;    /* if String or Macro */
+} Src;
+
+extern Src     src[], *srcp;   /* input source stack */
+
+#define        MAXARGS 20
+typedef struct {       /* argument stack */
+       char    *argstk[MAXARGS];       /* pointers to args */
+       char    *argval;        /* points to space containing args */
+} Arg;
+
+extern Infile  infile[10];
+extern Infile  *curfile;
+
+typedef struct {
+       struct obj *obj;
+       double  x, y;
+} Point;
+
+typedef struct attr {  /* e.g., DASH 1.1 or "..." rjust size *.5 */
+       short   type;
+       double  fval;
+       char    *sval;
+       short   just;   /* justification, for STRING type */
+       short   op;     /* optional operator, ditto */
+       struct attr *next;
+} Attr;
+
+typedef struct obj {   /* a name and its properties */
+       char    *name;
+       char    *val;   /* body of define, etc. */
+       double  fval;   /* if a numeric variable */
+       Point   pt;     /* usually for max and min */
+       Point   pt1;
+       short   type;   /* NAME, DEFNAME, ... */
+       short   first;  /* 1 after 1st item seen */
+       short   coord;  /* 1 if coord system specified for this name */
+       short   log;    /* x, y, or z (= x+y) */
+       Attr    *attr;  /* DASH, etc., for now */
+       struct obj *next;
+} Obj;
+
+typedef union {                /* the yacc stack type */
+       int     i;
+       char    *p;
+       double  f;
+       Point   pt;
+       Obj     *op;
+       Attr    *ap;
+} YYSTYPE;
+
+extern YYSTYPE yylval, yyval;
+
+extern int     dbg;
+
+extern int     ntext;
+extern double  num[MAXNUM];
+extern int     nnum;
+extern int     ntick, tside;
+
+extern char    *calloc(), *malloc(), *realloc(), *tostring(), *grow();
+extern char    *desc_str(), *ifstat(), *delimstr();
+extern char    *xyname(), *slprint();
+extern Obj     *lookup();
+extern Obj     *copythru();
+extern Obj     *objlist;
+extern Attr    *makeattr(), *makefattr(), *makesattr(), *addattr();
+extern Point   makepoint();
+extern double  setvar(), getvar();
+
+extern int     lineno;
+extern int     synerr;
+extern int     codegen;
+extern char    *tempfile;
+extern FILE    *tfd;
+
+extern Point   ptmin, ptmax;
+
+extern char    *dflt_coord;
+extern char    *curr_coord;
+extern int     ncoord;
+extern int     auto_x;
+extern double  margin;
+extern int     autoticks;
+extern int     pointsize, ps_set;
+
+extern char    *sizeit(), *juststr();
+extern double  log10(), log(), exp(), sin(), cos(), sqrt(), atof(), errcheck();
+extern double  fabs(), floor(), ceil(), moddouble(), modceil();
+
+#define        logit(x) (x) = log10(x)
+#define        Log10(x) errcheck(log10(x), "log")
+#define        Exp(x)  errcheck(exp(x), "exp")
+#define        Sqrt(x) errcheck(sqrt(x), "sqrt")
+
+#define        min(x,y)        (((x) <= (y)) ? (x) : (y))
+#define        max(x,y)        (((x) >= (y)) ? (x) : (y))