Blob


1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <math.h>
4 #include <ctype.h>
5 #include <string.h>
7 // XXX: Apparently necessary for g++
8 #define typename tyname
10 extern char errbuf[];
11 extern char *progname;
12 extern int linenum;
13 extern int wantwarn;
15 // #define ERROR fflush(stdout), fprintf(stderr, "%s: ", progname), fprintf(stderr,
16 // #define FATAL ), exit(1)
17 // #define WARNING )
19 #define ERROR fprintf(stdout, "\n#MESSAGE TO USER: "), sprintf(errbuf,
20 #define FATAL ), fputs(errbuf, stdout), \
21 fprintf(stderr, "%s: ", progname), \
22 fputs(errbuf, stderr), \
23 fflush(stdout), \
24 exit(1)
25 #define WARNING ), fputs(errbuf, stdout), \
26 wantwarn ? \
27 fprintf(stderr, "%s: ", progname), \
28 fputs(errbuf, stderr) : 0, \
29 fflush(stdout)
31 #define eq(s,t) (strcmp(s,t) == 0)
33 inline int max(int x, int y) { return x > y ? x : y; }
34 inline int min(int x, int y) { return x > y ? y : x; }
35 inline int abs(int x) { return (x >= 0) ? x : -x; }
37 extern int dbg;
39 extern int pn, userpn; // actual and user-defined page numbers
40 extern int pagetop, pagebot; // printing margins
41 extern int physbot; // physical bottom of the page