📄 mfile1
字号:
# include "macdefs"# include "manifest"/* storage classes */# define SNULL 0# define AUTO 1# define EXTERN 2# define STATIC 3# define REGISTER 4# define EXTDEF 5# define LABEL 6# define ULABEL 7# define MOS 8# define PARAM 9# define STNAME 10# define MOU 11# define UNAME 12# define TYPEDEF 13# define FORTRAN 14# define ENAME 15# define MOE 16# define UFORTRAN 17# define USTATIC 18 /* field size is ORed in */# define FIELD 0100# define FLDSIZ 077extern char *scnames();/* location counters */# define PROG 0# define DATA 1# define ADATA 2# define STRNG 3# define ISTRNG 4# define STAB 5/* symbol table flags */# define SMOS 01# define SHIDDEN 02# define SHIDES 04# define SSET 010# define SREF 020# ifndef FIXDEF# define FIXDEF(p)#endif /* alignment of initialized quantities */# ifndef AL_INIT# define AL_INIT ALINT# endifstruct symtab { char sname[NCHNAM]; TWORD stype; /* type word */ char sclass; /* storage class */ char slevel; /* scope level */ char sflags; /* flags for set, use, hidden, mos, etc. */ int offset; /* offset or value */ short dimoff; /* offset into the dimension table */ short sizoff; /* offset into the size table */ short suse; /* line number of last use of the variable */ };# ifdef ONEPASS/* NOPREF must be defined for use in first pass tree machine */# define NOPREF 020000 /* no preference for register assignment */#elseunion ndu { struct { int op; TWORD type; int cdim, csiz; NODE *left; NODE * right; }; struct { /* this structure is the same as above, but is used when a value, rather than address, is kept in +left */ int op; TWORD type; int cdim, csiz; CONSZ lval; int rval; }; struct { /* this structure is used when a floating point constant is being computed */ int op; TWORD type; int cdim, csiz; double dval; }; };# endifstruct sw { CONSZ sval; int slab; };extern struct sw swtab[];extern struct sw *swp;extern int swx;extern int ftnno;extern int blevel;extern int instruct, stwart;extern int lineno, nerrors;typedef union { int intval; NODE * nodep; } YYSTYPE;extern YYSTYPE yylval;extern CONSZ lastcon;extern double dcon;extern char ftitle[];extern struct symtab stab[];extern int curftn;extern int curclass;extern int curdim;extern int dimtab[];extern int paramstk[];extern int paramno;extern int autooff, argoff, strucoff;extern int regvar;extern int minrvar;extern int brkflag;extern char yytext[];extern int strflg;extern OFFSZ inoff;extern int reached;/* tunnel to buildtree for name id's */extern int idname;extern NODE node[];extern NODE *lastfree;extern int cflag, hflag, pflag;/* various labels */extern int brklab;extern int contlab;extern int flostat;extern int retlab;extern int retstat;extern int asavbc[], *psavbc;/* flags used in structures/unions */# define SEENAME 01# define INSTRUCT 02# define INUNION 04# define FUNNYNAME 010/* flags used in the (elementary) flow analysis ... */# define FBRK 02# define FCONT 04# define FDEF 010# define FLOOP 020/* flags used for return status */# define RETVAL 1# define NRETVAL 2/* used to mark a constant with no name field */# define NONAME 040000 /* mark an offset which is undefined */# define NOOFFSET (-10201)/* declarations of various functions */extern NODE *buildtree(), *bdty(), *mkty(), *rstruct(), *dclstruct(), *getstr(), *tymerge(), *stref(), *offcon(), *bcon(), *bpsize(), *convert(), *pconvert(), *oconvert(), *ptmatch(), *tymatch(), *makety(), *block(), *doszof(), *talloc(), *optim(), *strargs(), *clocal();OFFSZ tsize(), psize();TWORD types();double atof();char *exname(), *exdcon();# define checkst(x)# ifndef CHARCAST/* to make character constants into character connstants *//* this is a macro to defend against cross-compilers, etc. */# define CHARCAST(x) (char)(x)# endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -