Blame


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