⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grap.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
extern	char	errbuf[200];#define	ERROR	sprintf(errbuf,#define	FATAL	), yyerror(errbuf), exit(1)#define	WARNING	), yyerror(errbuf)#define	dprintf	if(dbg)printf#define	String	01#define	Macro	02#define	File	04#define	Char	010#define	Thru	020#define	Free	040#define	MARGIN	0.07	/* default margin around data */#define	SLOP	1.001	/* slop for limits of for loops */#define	FRAMEWID 3	/* default width for boxes and ellipses */#define	FRAMEHT	2	/* default height and line length */#define	TICKLEN	0.1#define	MAXNUM	200#define	XFLAG	01#define	YFLAG	02#define	INTICK	01#define	OUTICK	02#define	BOT	01#define	TOP	02#define	RIGHT	04#define	LEFT	010#define	RJUST	01#define	LJUST	02#define	ABOVE	04#define	BELOW	010typedef struct infile {	FILE	*fin;	char	*fname;	int	lineno;} Infile;typedef struct {	/* input source */	int	type;	/* Macro, String, File */	char	*sp;	/* if String or Macro */} Src;extern	Src	src[], *srcp;	/* input source stack */#define	MAXARGS	100typedef struct {	/* argument stack */	char	*argstk[MAXARGS];	/* pointers to args */	char	*argval;	/* points to space containing args */} Arg;extern	Infile	infile[10];extern	Infile	*curfile;typedef struct {	struct obj *obj;	double	x, y;} Point;typedef struct attr {	/* e.g., DASH 1.1 or "..." rjust size *.5 */	int	type;	double	fval;	char	*sval;	int	just;	/* justification, for STRING type */	int	op;	/* optional operator, ditto */	struct attr *next;} Attr;typedef struct obj {	/* a name and its properties */	char	*name;	char	*val;	/* body of define, etc. */	double	fval;	/* if a numeric variable */	Point	pt;	/* usually for max and min */	Point	pt1;	int	type;	/* NAME, DEFNAME, ... */	int	first;	/* 1 after 1st item seen */	int	coord;	/* 1 if coord system specified for this name */	int	log;	/* x, y, or z (= x+y) */	Attr	*attr;	/* DASH, etc., for now */	struct obj *next;} Obj;typedef union {		/* the yacc stack type */	int	i;	char	*p;	double	f;	Point	pt;	Obj	*op;	Attr	*ap;} YYSTYPE;extern	YYSTYPE	yylval, yyval;extern	int	dbg;extern	int	ntext;extern	double	num[MAXNUM];extern	int	nnum;extern	int	ntick, tside;extern	char	*tostring(char *);extern char *grow(char *, char *, int, int);extern	int	lineno;extern	int	synerr;extern	int	codegen;extern	char	tempfile[];extern	FILE	*tfd;extern	Point	ptmin, ptmax;extern	char	*dflt_coord;extern	char	*curr_coord;extern	int	ncoord;extern	int	auto_x;extern	double	margin;extern	int	autoticks;extern	int	pointsize, ps_set;#define	logit(x) (x) = log10(x)#define	Log10(x) errcheck(log10(x), "log")#define	Exp(x)	errcheck(exp(x), "exp")#define	Sqrt(x)	errcheck(sqrt(x), "sqrt")#define	min(x,y)	(((x) <= (y)) ? (x) : (y))#define	max(x,y)	(((x) >= (y)) ? (x) : (y))extern	void	yyerror(char *);extern void coord_x(Point);extern void coord_y(Point);extern void coordlog(int);extern void coord(Obj *);extern void resetcoord(Obj *);extern void savenum(int, double);extern void setjust(int);extern void setsize(int, double);extern void range(Point);extern void halfrange(Obj *, int, double);extern Obj *lookup(char *, int);extern double getvar(Obj *);extern double setvar(Obj *, double);extern Point makepoint(Obj *, double, double);extern Attr *makefattr(int, double);extern Attr *makesattr(char *);extern Attr *makeattr(int, double, char *, int, int);extern Attr *addattr(Attr *, Attr *);extern void freeattr(Attr *);extern char *slprint(Attr *);extern char *juststr(int);extern char *sprntf(char *, Attr *);extern void forloop(Obj *, double, double, int, double, char *);extern void nextfor(void);extern void endfor(void);extern char *ifstat(double, char *, char *);extern void frame(void);extern void frameht(double);extern void framewid(double);extern void frameside(int, Attr *);extern void pushsrc(int, char *);extern void popsrc(void);extern void definition(char *);extern char *delimstr(char *);extern int baldelim(int, char *);extern void dodef(Obj *);extern int getarg(char *);extern int input(void);extern int nextchar(void);extern void do_thru(void);extern int unput(int);extern void pbstr(char *);extern double errcheck(double, char *);extern void yyerror(char *);extern void eprint(void);extern int yywrap(void);extern void copyfile(char *);extern void copydef(Obj *);extern Obj *copythru(char *);extern char *addnewline(char *);extern void copyuntil(char *);extern void copy(void);extern void shell_init(void);extern void shell_text(char *);extern void shell_exec(void);extern void labelwid(double);extern void labelmove(int, double);extern void label(int, Attr *);extern void lab_adjust(void);extern char *sizeit(Attr *);extern void line(int, Point, Point, Attr *);extern void circle(double, Point);extern char *xyname(Point);extern void pic(char *);extern void numlist(void);extern void plot(Attr *, Point);extern void plotnum(double, char *, Point);extern void drawdesc(int, Obj *, Attr *, char *);extern void next(Obj *, Point, Attr *);extern void print(void);extern void endstat(void);extern void graph(char *);extern void setup(void);extern void do_first(void);extern void reset(void);extern void opentemp(void);extern void savetick(double, char *);extern void dflt_tick(double);extern void tickside(int);extern void tickoff(int);extern void gridtickoff(void);extern void setlist(void);extern void tickdir(int, double, int);extern void ticks(void);extern double modfloor(double, double);extern double modceil(double, double);extern void do_autoticks(Obj *);extern void logtick(double, double, double);extern Obj *setauto(void);extern void autoside(Obj *, int);extern void autolog(Obj *, int);extern void iterator(double, double, int, double, char *);extern void ticklist(Obj *, int);extern void print_ticks(int, int, Obj *, char *, char *);extern void maketick(int, char *, int, int, double, char *, char *, char *);extern void griddesc(Attr *);extern void gridlist(Obj *);extern char *desc_str(Attr *);extern int sidelog(int, int);extern	Obj	*objlist;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -