From 5cedca1b69d020c32466f70843a11767773d7e3b Mon Sep 17 00:00:00 2001 From: rsc Date: Sat, 15 May 2004 23:24:00 +0000 Subject: Let's try this. It's BUGGERED. --- src/cmd/eqn/e.h | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 src/cmd/eqn/e.h (limited to 'src/cmd/eqn/e.h') diff --git a/src/cmd/eqn/e.h b/src/cmd/eqn/e.h new file mode 100644 index 00000000..70c47023 --- /dev/null +++ b/src/cmd/eqn/e.h @@ -0,0 +1,166 @@ +#include +#include +#include + +enum charclass { + OTHER, OLET, ILET, DIG, LPAR, RPAR, SLASH, PLUS, ILETF, ILETJ, VBAR, + NONE, LAST +}; +extern int class[LAST][LAST]; + +#define dprintf if (dbg) printf +#define max(x,y) (((x) >= (y)) ? (x) : (y)) /* beware of side effects */ +#define min(x,y) (((x) <= (y)) ? (x) : (y)) + +extern char errbuf[200]; +extern char *cmdname; +#define ERROR sprintf(errbuf, +#define FATAL ), error(1, errbuf) +#define WARNING ), error(0, errbuf) +#define SYNTAX ), yyerror(errbuf) + +#define ROM '1' +#define ITAL '2' +#define BLD '3' +#define BDIT '4' + +#define DEFGAP -999 /* default gap in piles */ + +extern int dbg; +extern int ct; +extern int lp[]; +extern int used[]; /* available registers */ +extern int ps; /* dflt init pt size */ +extern int deltaps; /* default change in ps */ +extern int dps_set; /* 1 => -p option used */ +extern int gsize; /* global size */ +extern int ft; /* default font */ +extern int display; /* 1 => inline, 0 => .EQ/.EN */ +extern int synerr; /* 1 if syntax error in this eqn */ + +extern char *typesetter; /* typesetter name for -T... */ +extern int minsize; /* min size it can print */ +extern int ttype; /* actual type of typesetter: */ + +#define DEVCAT 1 +#define DEV202 2 +#define DEVAPS 3 +#define DEVPOST 4 + +extern double eht[]; +extern double ebase[]; +extern int lfont[]; +extern int rfont[]; +extern int lclass[]; +extern int rclass[]; +extern int yyval; +extern int yylval; +extern int eqnreg; +extern double eqnht; +extern int lefteq, righteq; +extern int markline; /* 1 if this EQ/EN contains mark or lineup */ + +#define TBLSIZE 100 + +typedef struct s_tbl { + char *name; /* e.g., "max" or "sum" */ + char *cval; /* e.g., "\\f1max\\fP" */ + int ival; /* or SUM */ + struct s_tbl *next; +} tbl; + +extern char *spaceval; /* use in place of normal \x (for pic) */ + +#define String 01 +#define Macro 02 +#define File 04 +#define Char 010 +#define Free 040 + +typedef struct infile { + FILE *fin; + char *fname; + int lineno; +} Infile; + +typedef struct { /* input source */ + int type; /* Macro, String, File */ + char *sp; /* if String or Macro */ +} Src; + +extern Src src[], *srcp; /* input source stack */ + +#define MAXARGS 20 +typedef struct { /* argument stack */ + char *argstk[MAXARGS]; /* pointers to args */ + char *argval; /* points to space containing args */ +} Arg; + +typedef struct { /* font number and name */ + int ft; + char name[10]; +} Font; + +extern Font ftstack[]; +extern Font *ftp; + +extern int szstack[]; +extern int nszstack; + +extern Infile infile[10]; +extern Infile *curfile; + +extern tbl *lookup(tbl **tblp, char *name); +extern void install(tbl **tblp, char *name, char *cval, int ival); +extern tbl *keytbl[], *deftbl[], *restbl[], *ftunetbl[]; + +extern int salloc(void); +extern void sfree(int); +extern void nrwid(int, int, int); +extern char *ABSPS(int); +extern char *DPS(int, int); +extern int EFFPS(int); +extern double EM(double, int); +extern double REL(double, int); +extern char *pad(int); +extern void getstr(char *, int); +extern char *strsave(char *); + +extern int input(void); +extern int unput(int); +extern void pbstr(char *); +extern void error(int, char *); +extern void yyerror(char *); + +extern void diacrit(int, int); +extern void eqnbox(int, int, int); +extern void setfont(char *); +extern void font(int, int); +extern void globfont(void); +extern void fatbox(int); +extern void fromto(int, int, int); +extern void funny(int); +extern void integral(int, int, int); +extern void setintegral(void); +extern void pushsrc(int, char *); +extern void popsrc(void); +extern void putout(int); +extern void text(int, char *); +extern void subsup(int, int, int); +extern void bshiftb(int, int, int); +extern void shift2(int, int, int); +extern void setsize(char *); +extern void size(int, int); +extern void globsize(void); +#define sqrt esqrt +extern void sqrt(int); +extern void text(int, char *); +extern void boverb(int, int); +extern void lineup(int); +extern void mark(int); +extern void paren(int, int, int); +extern void move(int, int, int); +extern void pile(int); +extern int startcol(int); +extern void column(int, int); +extern void matrix(int); -- cgit v1.2.3