Blame


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