6 OTHER
, OLET
, ILET
, DIG
, LPAR
, RPAR
, SLASH
, PLUS
, ILETF
, ILETJ
, VBAR
, COMMA
,
9 extern int class[LAST
][LAST
];
11 #define dprintf if (dbg) printf
12 #define max(x,y) (((x) >= (y)) ? (x) : (y)) /* beware of side effects */
13 #define min(x,y) (((x) <= (y)) ? (x) : (y))
15 extern char errbuf
[200];
17 #define ERROR sprintf(errbuf,
18 #define FATAL ), error(1, errbuf)
19 #define WARNING ), error(0, errbuf)
20 #define SYNTAX ), yyerror(errbuf)
27 #define DEFGAP -999 /* default gap in piles */
32 extern int used
[]; /* available registers */
33 extern int ps
; /* dflt init pt size */
34 extern int deltaps
; /* default change in ps */
35 extern int dps_set
; /* 1 => -p option used */
36 extern int gsize
; /* global size */
37 extern int ft
; /* default font */
38 extern int display
; /* 1 => inline, 0 => .EQ/.EN */
39 extern int synerr
; /* 1 if syntax error in this eqn */
41 extern char *typesetter
; /* typesetter name for -T... */
42 extern int minsize
; /* min size it can print */
43 extern int ttype
; /* actual type of typesetter: */
51 extern double ebase
[];
60 extern int lefteq
, righteq
;
61 extern int markline
; /* 1 if this EQ/EN contains mark or lineup */
65 typedef struct s_tbl
{
66 char *name
; /* e.g., "max" or "sum" */
67 char *cval
; /* e.g., "\\f1max\\fP" */
68 int ival
; /* or SUM */
72 extern char *spaceval
; /* use in place of normal \x (for pic) */
80 typedef struct infile
{
86 typedef struct { /* input source */
87 int type
; /* Macro, String, File */
88 char *sp
; /* if String or Macro */
91 extern Src src
[], *srcp
; /* input source stack */
94 typedef struct { /* argument stack */
95 char *argstk
[MAXARGS
]; /* pointers to args */
96 char *argval
; /* points to space containing args */
99 typedef struct { /* font number and name */
104 extern Font ftstack
[];
107 extern int szstack
[];
110 extern Infile infile
[10];
111 extern Infile
*curfile
;
113 extern tbl
*lookup(tbl
**tblp
, char *name
);
114 extern void install(tbl
**tblp
, char *name
, char *cval
, int ival
);
115 extern tbl
*keytbl
[], *deftbl
[], *restbl
[], *ftunetbl
[];
117 extern int salloc(void);
118 extern void sfree(int);
119 extern void nrwid(int, int, int);
120 extern char *ABSPS(int);
121 extern char *DPS(int, int);
122 extern int EFFPS(int);
123 extern double EM(double, int);
124 extern double REL(double, int);
125 extern char *pad(int);
126 extern void getstr(char *, int);
127 extern char *strsave(char *);
129 extern int input(void);
130 extern int unput(int);
131 extern void pbstr(char *);
132 extern void error(int, char *);
133 extern void yyerror(char *);
135 extern void diacrit(int, int);
136 extern void eqnbox(int, int, int);
137 extern void setfont(char *);
138 extern void font(int, int);
139 extern void globfont(void);
140 extern void fatbox(int);
141 extern void fromto(int, int, int);
142 extern void funny(int);
143 extern void integral(int, int, int);
144 extern void setintegral(void);
145 extern void pushsrc(int, char *);
146 extern void popsrc(void);
147 extern void putout(int);
148 extern void text(int, char *);
149 extern void subsup(int, int, int);
150 extern void bshiftb(int, int, int);
151 extern void shift2(int, int, int);
152 extern void setsize(char *);
153 extern void size(int, int);
154 extern void globsize(void);
156 extern void sqrt(int);
157 extern void text(int, char *);
158 extern void boverb(int, int);
159 extern void lineup(int);
160 extern void mark(int);
161 extern void paren(int, int, int);
162 extern void move(int, int, int);
163 extern void pile(int);
164 extern int startcol(int);
165 extern void column(int, int);
166 extern void matrix(int);