plan9port

[fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port # fast
git clone https://src.adamsgaard.dk/plan9port.git # slow
Log | Files | Refs | README | LICENSE Back to index

grap.h (6179B)


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