URI:
       te.h - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       te.h (4283B)
       ---
            1 #include <stdio.h>
            2 #include <stdlib.h>
            3 #include <string.h>
            4 #include <errno.h>
            5 #include <inttypes.h>
            6 
            7 #undef sqrt
            8 #define sqrt p9_sqrt
            9 #define YYSTYPE uintptr_t  /* DEC v. GNU garbage */
           10 
           11 enum charclass {
           12         OTHER, OLET, ILET, DIG, LPAR, RPAR, SLASH, PLUS, ILETF, ILETJ, VBAR,
           13         NONE, LAST
           14 };
           15 extern int class[LAST][LAST];
           16 
           17 #define        dprintf                if (dbg) printf
           18 #define        max(x,y)        (((x) >= (y)) ? (x) : (y))        /* beware of side effects */
           19 #define        min(x,y)        (((x) <= (y)) ? (x) : (y))
           20 
           21 #undef        sprintf        /* Snow Leopard */
           22 
           23 extern        char        errbuf[2000];
           24 extern        char        *cmdname;
           25 #define        ERROR        sprintf(errbuf,
           26 #define        FATAL        ), error(1, errbuf)
           27 #define        WARNING        ), error(0, errbuf)
           28 #define        SYNTAX        ), yyerror(errbuf)
           29 
           30 #define        ROM        '1'
           31 #define        ITAL        '2'
           32 #define        BLD        '3'
           33 #define        BDIT        '4'
           34 
           35 #define        DEFGAP        -999        /* default gap in piles */
           36 
           37 extern int        dbg;
           38 extern int        ct;
           39 extern int        lp[];
           40 extern int        used[];                /* available registers */
           41 extern int        ps;                /* dflt init pt size */
           42 extern int        deltaps;        /* default change in ps */
           43 extern int        dps_set;        /* 1 => -p option used */
           44 extern int        gsize;                /* global size */
           45 extern int        ft;                /* default font */
           46 extern int        display;        /* 1 => inline, 0 => .EQ/.EN */
           47 extern int        synerr;                /* 1 if syntax error in this eqn */
           48 
           49 extern char        *typesetter;        /* typesetter name for -T... */
           50 extern int        minsize;        /* min size it can print */
           51 extern int        ttype;                /* actual type of typesetter: */
           52 
           53 #define        DEVCAT        1
           54 #define        DEV202        2
           55 #define        DEVAPS        3
           56 #define        DEVPOST        4
           57 
           58 extern double        eht[];
           59 extern double        ebase[];
           60 extern int        lfont[];
           61 extern int        rfont[];
           62 extern int        lclass[];
           63 extern int        rclass[];
           64 extern YYSTYPE        yyval;   /* DEC cc wants long */
           65 extern YYSTYPE  yylval;   /* DEC cc wants long */
           66 extern int        eqnreg;
           67 extern double        eqnht;
           68 extern int        lefteq, righteq;
           69 extern int        markline;        /* 1 if this EQ/EN contains mark or lineup */
           70 
           71 #define        TBLSIZE        100
           72 
           73 typedef struct s_tbl {
           74         char        *name;                /* e.g., "max" or "sum" */
           75         char        *cval;                /* e.g., "\\f1max\\fP" */
           76         int        ival;                /*    or SUM */
           77         struct s_tbl *next;
           78 } tbl;
           79 
           80 extern        char        *spaceval;        /* use in place of normal \x (for pic) */
           81 
           82 #define        String        01
           83 #define        Macro        02
           84 #define        File        04
           85 #define        Char        010
           86 #define        Free        040
           87 
           88 typedef struct infile {
           89         FILE        *fin;
           90         char        *fname;
           91         int        lineno;
           92 } Infile;
           93 
           94 typedef struct {        /* input source */
           95         int        type;        /* Macro, String, File */
           96         char        *sp;        /* if String or Macro */
           97 } Src;
           98 
           99 extern        Src        src[], *srcp;        /* input source stack */
          100 
          101 #define        MAXARGS        20
          102 typedef struct {        /* argument stack */
          103         char        *argstk[MAXARGS];        /* pointers to args */
          104         char        *argval;        /* points to space containing args */
          105 } Arg;
          106 
          107 typedef struct {        /* font number and name */
          108         int        ft;
          109         char        name[10];
          110 } Font;
          111 
          112 extern        Font        ftstack[];
          113 extern        Font        *ftp;
          114 
          115 extern        int        szstack[];
          116 extern        int        nszstack;
          117 
          118 extern        Infile        infile[10];
          119 extern        Infile        *curfile;
          120 
          121 extern        tbl        *lookup(tbl **tblp, char *name);
          122 extern        void        install(tbl **tblp, char *name, char *cval, int ival);
          123 extern        tbl        *keytbl[], *deftbl[], *restbl[], *ftunetbl[];
          124 
          125 extern        int        salloc(void);
          126 extern        void        sfree(int);
          127 extern        void        nrwid(int, int, int);
          128 extern        char        *ABSPS(int);
          129 extern        char        *DPS(int, int);
          130 extern        int        EFFPS(int);
          131 extern        double        EM(double, int);
          132 extern        double        REL(double, int);
          133 extern        char        *pad(int);
          134 extern        void        getstr(char *, int);
          135 extern        char        *strsave(char *);
          136 
          137 extern        int        input(void);
          138 extern        int        unput(int);
          139 extern        void        pbstr(char *);
          140 extern        void        error(int, char *);
          141 extern        void        yyerror(char *);
          142 
          143 extern        void        diacrit(int, int);
          144 extern        void        eqnbox(int, int, int);
          145 extern        void        setfont(char *);
          146 extern        void        font(int, int);
          147 extern        void        globfont(void);
          148 extern        void        fatbox(int);
          149 extern        void        fromto(int, int, int);
          150 extern        void        funny(int);
          151 extern        void        integral(int, int, int);
          152 extern        void        setintegral(void);
          153 extern        void        pushsrc(int, char *);
          154 extern        void        popsrc(void);
          155 extern        void        putout(int);
          156 extern        void        text(int, char *);
          157 extern void subsup(int, int, int);
          158 extern void bshiftb(int, int, int);
          159 extern void shift2(int, int, int);
          160 extern void setsize(char *);
          161 extern void size(int, int);
          162 extern void globsize(void);
          163 extern void sqrt(int);
          164 extern void text(int, char *);
          165 extern void boverb(int, int);
          166 extern void lineup(int);
          167 extern void mark(int);
          168 extern void paren(int, int, int);
          169 extern void move(int, int, int);
          170 extern void pile(int);
          171 extern int startcol(int);
          172 extern void column(int, int);
          173 extern void matrix(int);