|
|
1.1 ! root 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);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.