📄 grap.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 + -