From: Jaap Akkerhuis Date: Sat, 20 Jul 1985 06:37:31 +0000 (-0800) Subject: date and time created 85/07/19 15:37:31 by jaap X-Git-Tag: BSD-4_3-Snapshot-Development~5213 X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/commitdiff_plain/0f216ee097c84691ced78c7adc08fa333fbb1c3a date and time created 85/07/19 15:37:31 by jaap SCCS-vsn: local/ditroff/ditroff.okeeffe/grap/grap.h 1.1 --- 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 index 0000000000..2a9da59b60 --- /dev/null +++ b/usr/src/local/ditroff/ditroff.okeeffe/grap/grap.h @@ -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))