Annotation of researchv10no/cmd/grap/grap.h, revision 1.1.1.1

1.1       root        1: extern char    errbuf[200];
                      2: #define        ERROR   sprintf(errbuf,
                      3: #define        FATAL   ), yyerror(errbuf), exit(1)
                      4: #define        WARNING ), yyerror(errbuf)
                      5: 
                      6: #define        dprintf if(dbg)printf
                      7: 
                      8: #define        String  01
                      9: #define        Macro   02
                     10: #define        File    04
                     11: #define        Char    010
                     12: #define        Thru    020
                     13: #define        Free    040
                     14: 
                     15: #define        MARGIN  0.07    /* default margin around data */
                     16: #define        SLOP    1.001   /* slop for limits of for loops */
                     17: #define        FRAMEWID 3      /* default width for boxes and ellipses */
                     18: #define        FRAMEHT 2       /* default height and line length */
                     19: #define        TICKLEN 0.1
                     20: 
                     21: #define        MAXNUM  200
                     22: 
                     23: #define        XFLAG   01
                     24: #define        YFLAG   02
                     25: 
                     26: #define        INTICK  01
                     27: #define        OUTICK  02
                     28: 
                     29: #define        BOT     01
                     30: #define        TOP     02
                     31: #define        RIGHT   04
                     32: #define        LEFT    010
                     33: 
                     34: #define        RJUST   01
                     35: #define        LJUST   02
                     36: #define        ABOVE   04
                     37: #define        BELOW   010
                     38: 
                     39: typedef struct infile {
                     40:        FILE    *fin;
                     41:        char    *fname;
                     42:        int     lineno;
                     43: } Infile;
                     44: 
                     45: typedef struct {       /* input source */
                     46:        int     type;   /* Macro, String, File */
                     47:        char    *sp;    /* if String or Macro */
                     48: } Src;
                     49: 
                     50: extern Src     src[], *srcp;   /* input source stack */
                     51: 
                     52: #define        MAXARGS 100
                     53: typedef struct {       /* argument stack */
                     54:        char    *argstk[MAXARGS];       /* pointers to args */
                     55:        char    *argval;        /* points to space containing args */
                     56: } Arg;
                     57: 
                     58: extern Infile  infile[10];
                     59: extern Infile  *curfile;
                     60: 
                     61: typedef struct {
                     62:        struct obj *obj;
                     63:        double  x, y;
                     64: } Point;
                     65: 
                     66: typedef struct attr {  /* e.g., DASH 1.1 or "..." rjust size *.5 */
                     67:        short   type;
                     68:        double  fval;
                     69:        char    *sval;
                     70:        short   just;   /* justification, for STRING type */
                     71:        short   op;     /* optional operator, ditto */
                     72:        struct attr *next;
                     73: } Attr;
                     74: 
                     75: typedef struct obj {   /* a name and its properties */
                     76:        char    *name;
                     77:        char    *val;   /* body of define, etc. */
                     78:        double  fval;   /* if a numeric variable */
                     79:        Point   pt;     /* usually for max and min */
                     80:        Point   pt1;
                     81:        short   type;   /* NAME, DEFNAME, ... */
                     82:        short   first;  /* 1 after 1st item seen */
                     83:        short   coord;  /* 1 if coord system specified for this name */
                     84:        short   log;    /* x, y, or z (= x+y) */
                     85:        Attr    *attr;  /* DASH, etc., for now */
                     86:        struct obj *next;
                     87: } Obj;
                     88: 
                     89: typedef union {                /* the yacc stack type */
                     90:        int     i;
                     91:        char    *p;
                     92:        double  f;
                     93:        Point   pt;
                     94:        Obj     *op;
                     95:        Attr    *ap;
                     96: } YYSTYPE;
                     97: 
                     98: extern YYSTYPE yylval, yyval;
                     99: 
                    100: extern int     dbg;
                    101: 
                    102: extern int     ntext;
                    103: extern double  num[MAXNUM];
                    104: extern int     nnum;
                    105: extern int     ntick, tside;
                    106: 
                    107: extern char    *tostring(char *);
                    108: extern char *grow(char *, char *, int, int);
                    109: 
                    110: extern int     lineno;
                    111: extern int     synerr;
                    112: extern int     codegen;
                    113: extern char    tempfile[];
                    114: extern FILE    *tfd;
                    115: 
                    116: extern Point   ptmin, ptmax;
                    117: 
                    118: extern char    *dflt_coord;
                    119: extern char    *curr_coord;
                    120: extern int     ncoord;
                    121: extern int     auto_x;
                    122: extern double  margin;
                    123: extern int     autoticks;
                    124: extern int     pointsize, ps_set;
                    125: 
                    126: 
                    127: #define        logit(x) (x) = log10(x)
                    128: #define        Log10(x) errcheck(log10(x), "log")
                    129: #define        Exp(x)  errcheck(exp(x), "exp")
                    130: #define        Sqrt(x) errcheck(sqrt(x), "sqrt")
                    131: 
                    132: #define        min(x,y)        (((x) <= (y)) ? (x) : (y))
                    133: #define        max(x,y)        (((x) >= (y)) ? (x) : (y))
                    134: 
                    135: extern void    yyerror(char *);
                    136: extern void coord_x(Point);
                    137: extern void coord_y(Point);
                    138: extern void coordlog(int);
                    139: extern void coord(Obj *);
                    140: extern void resetcoord(Obj *);
                    141: extern void savenum(int, double);
                    142: extern void setjust(int);
                    143: extern void setsize(int, double);
                    144: extern void range(Point);
                    145: extern void halfrange(Obj *, int, double);
                    146: extern Obj *lookup(char *, int);
                    147: extern double getvar(Obj *);
                    148: extern double setvar(Obj *, double);
                    149: extern Point makepoint(Obj *, double, double);
                    150: extern Attr *makefattr(int, double);
                    151: extern Attr *makesattr(char *);
                    152: extern Attr *makeattr(int, double, char *, int, int);
                    153: extern Attr *addattr(Attr *, Attr *);
                    154: extern void freeattr(Attr *);
                    155: extern char *slprint(Attr *);
                    156: extern char *juststr(int);
                    157: extern char *sprntf(char *, Attr *);
                    158: extern void forloop(Obj *, double, double, int, double, char *);
                    159: extern void nextfor(void);
                    160: extern void endfor(void);
                    161: extern char *ifstat(double, char *, char *);
                    162: extern void frame(void);
                    163: extern void frameht(double);
                    164: extern void framewid(double);
                    165: extern void frameside(int, Attr *);
                    166: extern void pushsrc(int, char *);
                    167: extern void popsrc(void);
                    168: extern void definition(char *);
                    169: extern char *delimstr(char *);
                    170: extern int baldelim(int, char *);
                    171: extern void dodef(Obj *);
                    172: extern int getarg(char *);
                    173: extern int input(void);
                    174: extern int nextchar(void);
                    175: extern void do_thru(void);
                    176: extern int unput(int);
                    177: extern void pbstr(char *);
                    178: extern double errcheck(double, char *);
                    179: extern void yyerror(char *);
                    180: extern void eprint(void);
                    181: extern int yywrap(void);
                    182: extern void copyfile(char *);
                    183: extern void copydef(Obj *);
                    184: extern Obj *copythru(char *);
                    185: extern char *addnewline(char *);
                    186: extern void copyuntil(char *);
                    187: extern void copy(void);
                    188: extern void shell_init(void);
                    189: extern void shell_text(char *);
                    190: extern void shell_exec(void);
                    191: extern void labelwid(double);
                    192: extern void labelmove(int, double);
                    193: extern void label(int, Attr *);
                    194: extern void lab_adjust(void);
                    195: extern char *sizeit(Attr *);
                    196: extern void line(int, Point, Point, Attr *);
                    197: extern void circle(double, Point);
                    198: extern char *xyname(Point);
                    199: extern void pic(char *);
                    200: extern void numlist(void);
                    201: extern void plot(Attr *, Point);
                    202: extern void plotnum(double, char *, Point);
                    203: extern void drawdesc(int, Obj *, Attr *, char *);
                    204: extern void next(Obj *, Point, Attr *);
                    205: extern void print(void);
                    206: extern void endstat(void);
                    207: extern void graph(char *);
                    208: extern void setup(void);
                    209: extern void do_first(void);
                    210: extern void reset(void);
                    211: extern void opentemp(void);
                    212: extern void savetick(double, char *);
                    213: extern void dflt_tick(double);
                    214: extern void tickside(int);
                    215: extern void tickoff(int);
                    216: extern void gridtickoff(void);
                    217: extern void setlist(void);
                    218: extern void tickdir(int, double, int);
                    219: extern void ticks(void);
                    220: extern double modfloor(double, double);
                    221: extern double modceil(double, double);
                    222: extern void do_autoticks(Obj *);
                    223: extern void logtick(double, double, double);
                    224: extern Obj *setauto(void);
                    225: extern void autoside(Obj *, int);
                    226: extern void autolog(Obj *, int);
                    227: extern void iterator(double, double, int, double, char *);
                    228: extern void ticklist(Obj *, int);
                    229: extern void print_ticks(int, int, Obj *, char *, char *);
                    230: extern void maketick(int, char *, int, int, double, char *, char *, char *);
                    231: extern void griddesc(Attr *);
                    232: extern void gridlist(Obj *);
                    233: extern char *desc_str(Attr *);
                    234: extern int sidelog(int, int);
                    235: 
                    236: extern Obj     *objlist;

unix.superglobalmegacorp.com

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