Annotation of researchv10no/cmd/eqn/e.h, revision 1.1.1.1

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);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.