|
|
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))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.