|
|
1.1 ! root 1: extern char errbuf[200]; ! 2: #define ERROR sprintf(errbuf, ! 3: #define FATAL ), yyerror(errbuf), exit(1) ! 4: #define WARNING ), yyerror(errbuf) ! 5: ! 6: #define dprintf if(dbg)printf ! 7: ! 8: #define String 01 ! 9: #define Macro 02 ! 10: #define File 04 ! 11: #define Char 010 ! 12: #define Thru 020 ! 13: #define Free 040 ! 14: ! 15: #define MARGIN 0.07 /* default margin around data */ ! 16: #define SLOP 1.001 /* slop for limits of for loops */ ! 17: #define FRAMEWID 3 /* default width for boxes and ellipses */ ! 18: #define FRAMEHT 2 /* default height and line length */ ! 19: #define TICKLEN 0.1 ! 20: ! 21: #define MAXNUM 200 ! 22: ! 23: #define XFLAG 01 ! 24: #define YFLAG 02 ! 25: ! 26: #define INTICK 01 ! 27: #define OUTICK 02 ! 28: ! 29: #define BOT 01 ! 30: #define TOP 02 ! 31: #define RIGHT 04 ! 32: #define LEFT 010 ! 33: ! 34: #define RJUST 01 ! 35: #define LJUST 02 ! 36: #define ABOVE 04 ! 37: #define BELOW 010 ! 38: ! 39: typedef struct infile { ! 40: FILE *fin; ! 41: char *fname; ! 42: int lineno; ! 43: } Infile; ! 44: ! 45: typedef struct { /* input source */ ! 46: int type; /* Macro, String, File */ ! 47: char *sp; /* if String or Macro */ ! 48: } Src; ! 49: ! 50: extern Src src[], *srcp; /* input source stack */ ! 51: ! 52: #define MAXARGS 100 ! 53: typedef struct { /* argument stack */ ! 54: char *argstk[MAXARGS]; /* pointers to args */ ! 55: char *argval; /* points to space containing args */ ! 56: } Arg; ! 57: ! 58: extern Infile infile[10]; ! 59: extern Infile *curfile; ! 60: ! 61: typedef struct { ! 62: struct obj *obj; ! 63: double x, y; ! 64: } Point; ! 65: ! 66: typedef struct attr { /* e.g., DASH 1.1 or "..." rjust size *.5 */ ! 67: short type; ! 68: double fval; ! 69: char *sval; ! 70: short just; /* justification, for STRING type */ ! 71: short op; /* optional operator, ditto */ ! 72: struct attr *next; ! 73: } Attr; ! 74: ! 75: typedef struct obj { /* a name and its properties */ ! 76: char *name; ! 77: char *val; /* body of define, etc. */ ! 78: double fval; /* if a numeric variable */ ! 79: Point pt; /* usually for max and min */ ! 80: Point pt1; ! 81: short type; /* NAME, DEFNAME, ... */ ! 82: short first; /* 1 after 1st item seen */ ! 83: short coord; /* 1 if coord system specified for this name */ ! 84: short log; /* x, y, or z (= x+y) */ ! 85: Attr *attr; /* DASH, etc., for now */ ! 86: struct obj *next; ! 87: } Obj; ! 88: ! 89: typedef union { /* the yacc stack type */ ! 90: int i; ! 91: char *p; ! 92: double f; ! 93: Point pt; ! 94: Obj *op; ! 95: Attr *ap; ! 96: } YYSTYPE; ! 97: ! 98: extern YYSTYPE yylval, yyval; ! 99: ! 100: extern int dbg; ! 101: ! 102: extern int ntext; ! 103: extern double num[MAXNUM]; ! 104: extern int nnum; ! 105: extern int ntick, tside; ! 106: ! 107: extern char *tostring(char *); ! 108: extern char *grow(char *, char *, int, int); ! 109: ! 110: extern int lineno; ! 111: extern int synerr; ! 112: extern int codegen; ! 113: extern char tempfile[]; ! 114: extern FILE *tfd; ! 115: ! 116: extern Point ptmin, ptmax; ! 117: ! 118: extern char *dflt_coord; ! 119: extern char *curr_coord; ! 120: extern int ncoord; ! 121: extern int auto_x; ! 122: extern double margin; ! 123: extern int autoticks; ! 124: extern int pointsize, ps_set; ! 125: ! 126: ! 127: #define logit(x) (x) = log10(x) ! 128: #define Log10(x) errcheck(log10(x), "log") ! 129: #define Exp(x) errcheck(exp(x), "exp") ! 130: #define Sqrt(x) errcheck(sqrt(x), "sqrt") ! 131: ! 132: #define min(x,y) (((x) <= (y)) ? (x) : (y)) ! 133: #define max(x,y) (((x) >= (y)) ? (x) : (y)) ! 134: ! 135: extern void yyerror(char *); ! 136: extern void coord_x(Point); ! 137: extern void coord_y(Point); ! 138: extern void coordlog(int); ! 139: extern void coord(Obj *); ! 140: extern void resetcoord(Obj *); ! 141: extern void savenum(int, double); ! 142: extern void setjust(int); ! 143: extern void setsize(int, double); ! 144: extern void range(Point); ! 145: extern void halfrange(Obj *, int, double); ! 146: extern Obj *lookup(char *, int); ! 147: extern double getvar(Obj *); ! 148: extern double setvar(Obj *, double); ! 149: extern Point makepoint(Obj *, double, double); ! 150: extern Attr *makefattr(int, double); ! 151: extern Attr *makesattr(char *); ! 152: extern Attr *makeattr(int, double, char *, int, int); ! 153: extern Attr *addattr(Attr *, Attr *); ! 154: extern void freeattr(Attr *); ! 155: extern char *slprint(Attr *); ! 156: extern char *juststr(int); ! 157: extern char *sprntf(char *, Attr *); ! 158: extern void forloop(Obj *, double, double, int, double, char *); ! 159: extern void nextfor(void); ! 160: extern void endfor(void); ! 161: extern char *ifstat(double, char *, char *); ! 162: extern void frame(void); ! 163: extern void frameht(double); ! 164: extern void framewid(double); ! 165: extern void frameside(int, Attr *); ! 166: extern void pushsrc(int, char *); ! 167: extern void popsrc(void); ! 168: extern void definition(char *); ! 169: extern char *delimstr(char *); ! 170: extern int baldelim(int, char *); ! 171: extern void dodef(Obj *); ! 172: extern int getarg(char *); ! 173: extern int input(void); ! 174: extern int nextchar(void); ! 175: extern void do_thru(void); ! 176: extern int unput(int); ! 177: extern void pbstr(char *); ! 178: extern double errcheck(double, char *); ! 179: extern void yyerror(char *); ! 180: extern void eprint(void); ! 181: extern int yywrap(void); ! 182: extern void copyfile(char *); ! 183: extern void copydef(Obj *); ! 184: extern Obj *copythru(char *); ! 185: extern char *addnewline(char *); ! 186: extern void copyuntil(char *); ! 187: extern void copy(void); ! 188: extern void shell_init(void); ! 189: extern void shell_text(char *); ! 190: extern void shell_exec(void); ! 191: extern void labelwid(double); ! 192: extern void labelmove(int, double); ! 193: extern void label(int, Attr *); ! 194: extern void lab_adjust(void); ! 195: extern char *sizeit(Attr *); ! 196: extern void line(int, Point, Point, Attr *); ! 197: extern void circle(double, Point); ! 198: extern char *xyname(Point); ! 199: extern void pic(char *); ! 200: extern void numlist(void); ! 201: extern void plot(Attr *, Point); ! 202: extern void plotnum(double, char *, Point); ! 203: extern void drawdesc(int, Obj *, Attr *, char *); ! 204: extern void next(Obj *, Point, Attr *); ! 205: extern void print(void); ! 206: extern void endstat(void); ! 207: extern void graph(char *); ! 208: extern void setup(void); ! 209: extern void do_first(void); ! 210: extern void reset(void); ! 211: extern void opentemp(void); ! 212: extern void savetick(double, char *); ! 213: extern void dflt_tick(double); ! 214: extern void tickside(int); ! 215: extern void tickoff(int); ! 216: extern void gridtickoff(void); ! 217: extern void setlist(void); ! 218: extern void tickdir(int, double, int); ! 219: extern void ticks(void); ! 220: extern double modfloor(double, double); ! 221: extern double modceil(double, double); ! 222: extern void do_autoticks(Obj *); ! 223: extern void logtick(double, double, double); ! 224: extern Obj *setauto(void); ! 225: extern void autoside(Obj *, int); ! 226: extern void autolog(Obj *, int); ! 227: extern void iterator(double, double, int, double, char *); ! 228: extern void ticklist(Obj *, int); ! 229: extern void print_ticks(int, int, Obj *, char *, char *); ! 230: extern void maketick(int, char *, int, int, double, char *, char *, char *); ! 231: extern void griddesc(Attr *); ! 232: extern void gridlist(Obj *); ! 233: extern char *desc_str(Attr *); ! 234: extern int sidelog(int, int); ! 235: ! 236: extern Obj *objlist;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.