Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4
 
5
enum charclass {
6
	OTHER, OLET, ILET, DIG, LPAR, RPAR, SLASH, PLUS, ILETF, ILETJ, VBAR,
7
	NONE, LAST
8
};
9
extern int class[LAST][LAST];
10
 
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))
14
 
15
extern	char	errbuf[200];
16
extern	char	*cmdname;
17
#define	ERROR	sprintf(errbuf,
18
#define	FATAL	), error(1, errbuf)
19
#define	WARNING	), error(0, errbuf)
20
#define	SYNTAX	), yyerror(errbuf)
21
 
22
#define	ROM	'1'
23
#define	ITAL	'2'
24
#define	BLD	'3'
25
#define	BDIT	'4'
26
 
27
#define	DEFGAP	-999	/* default gap in piles */
28
 
29
extern int	dbg;
30
extern int	ct;
31
extern int	lp[];
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 */
40
 
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: */
44
 
45
#define	DEVCAT	1
46
#define	DEV202	2
47
#define	DEVAPS	3
48
#define	DEVPOST	4
49
 
50
extern double	eht[];
51
extern double	ebase[];
52
extern int	lfont[];
53
extern int	rfont[];
54
extern int	lclass[];
55
extern int	rclass[];
56
extern int	yyval;
57
extern int	yylval;
58
extern int	eqnreg;
59
extern double	eqnht;
60
extern int	lefteq, righteq;
61
extern int	markline;	/* 1 if this EQ/EN contains mark or lineup */
62
 
63
#define	TBLSIZE	100
64
 
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 */
69
	struct s_tbl *next;
70
} tbl;
71
 
72
extern	char	*spaceval;	/* use in place of normal \x (for pic) */
73
 
74
#define	String	01
75
#define	Macro	02
76
#define	File	04
77
#define	Char	010
78
#define	Free	040
79
 
80
typedef struct infile {
81
	FILE	*fin;
82
	char	*fname;
83
	int	lineno;
84
} Infile;
85
 
86
typedef struct {	/* input source */
87
	int	type;	/* Macro, String, File */
88
	char	*sp;	/* if String or Macro */
89
} Src;
90
 
91
extern	Src	src[], *srcp;	/* input source stack */
92
 
93
#define	MAXARGS	20
94
typedef struct {	/* argument stack */
95
	char	*argstk[MAXARGS];	/* pointers to args */
96
	char	*argval;	/* points to space containing args */
97
} Arg;
98
 
99
typedef struct {	/* font number and name */
100
	int	ft;
101
	char	name[10];
102
} Font;
103
 
104
extern	Font	ftstack[];
105
extern	Font	*ftp;
106
 
107
extern	int	szstack[];
108
extern	int	nszstack;
109
 
110
extern	Infile	infile[10];
111
extern	Infile	*curfile;
112
 
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[];
116
 
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 *);
128
 
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 *);
134
 
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);
155
extern void sqrt(int);
156
extern void text(int, char *);
157
extern void boverb(int, int);
158
extern void lineup(int);
159
extern void mark(int);
160
extern void paren(int, int, int);
161
extern void move(int, int, int);
162
extern void pile(int);
163
extern int startcol(int);
164
extern void column(int, int);
165
extern void matrix(int);