Annotation of researchv10no/cmd/ccom/common/mfile1.h, revision 1.1.1.1

1.1       root        1: /* @(#) mfile1.h: 1.1 12/22/83                         */
                      2: 
                      3: 
                      4: # include "macdefs.h"
                      5: # include "manifest.h"
                      6: 
                      7: /*     storage classes  */
                      8: # define SNULL 0
                      9: # define AUTO 1
                     10: # define EXTERN 2
                     11: # define STATIC 3
                     12: # define REGISTER 4
                     13: # define EXTDEF 5
                     14: # define LABEL 6
                     15: # define ULABEL 7
                     16: # define MOS 8
                     17: # define PARAM 9
                     18: # define STNAME 10
                     19: # define MOU 11
                     20: # define UNAME 12
                     21: # define TYPEDEF 13
                     22: # define FORTRAN 14
                     23: # define ENAME 15
                     24: # define MOE 16
                     25: # define UFORTRAN 17
                     26: # define USTATIC 18
                     27:        /* field size is ORed in */
                     28: # define FIELD 0100
                     29: # define FLDSIZ 077
                     30: # ifndef NODBG
                     31: extern char *scnames();
                     32: # endif
                     33: 
                     34: /*     location counters */
                     35: # define PROG 0
                     36: # define ADATA 1
                     37: # define DATA 2
                     38: # define ISTRNG 3
                     39: # define STRNG 4
                     40: 
                     41: /* symbol table flags */
                     42: # define SMOS 01
                     43: # define SHIDDEN 02
                     44: # define SHIDES 04
                     45: # define SSET 010
                     46: # define SREF 020
                     47: # define SNONUNIQ 040
                     48: # define STAG 0100
                     49: # define SBSS 0200
                     50: 
                     51: typedef long OFFSZ;
                     52: 
                     53: struct symtab {
                     54:        char *sname;
                     55:        TWORD stype;  /* type word */
                     56: 
                     57:        char sclass;  /* storage class */
                     58:        char slevel;  /* scope level */
                     59:        char sflags;  /* flags for set, use, hidden, mos, etc. */
                     60:        int offset;  /* offset or value */
                     61:        short dimoff; /* offset into the dimension table */
                     62:        short sizoff; /* offset into the size table */
                     63:        short suse;  /* line number of last use of the variable */
                     64:        struct symtab *scopelink;       /* chain of symbols at same level */
                     65: };
                     66: 
                     67: 
                     68: struct sw {
                     69:        CONSZ sval;
                     70:        int slab;
                     71: };
                     72: 
                     73: extern struct sw swtab[];
                     74: extern struct sw *swp;
                     75: extern int swx;
                     76: 
                     77: extern int ftnno;
                     78: extern int blevel;
                     79: extern int instruct, stwart;
                     80: 
                     81: extern int lineno, slineno, nerrors;
                     82: typedef struct {
                     83:                union {
                     84:                int u_intval;
                     85:                NODE *u_nodep;
                     86:        } YY_un;
                     87:        int lineno;
                     88: } YYSTYPE;
                     89: #define intval YY_un.u_intval
                     90: #define nodep YY_un.u_nodep
                     91: extern YYSTYPE yylval;
                     92: 
                     93: extern CONSZ lastcon;
                     94: extern CONSZ ccast();
                     95: extern double dcon;
                     96: 
                     97: extern char ftitle[];
                     98: extern struct symtab stab[];
                     99: extern int curftn;
                    100: extern int strftn;
                    101: extern char *locnames[];
                    102: extern int curloc;
                    103: extern int curclass;
                    104: extern int curdim;
                    105: extern int *dimtab;
                    106: extern int paramstk[];
                    107: extern int paramno;
                    108: extern int argstk[];
                    109: extern int argsoff[];
                    110: extern TWORD argty[];
                    111: extern int argno;
                    112: extern int autooff, argoff, strucoff;
                    113: extern int regvar;
                    114: extern int nextrvar;
                    115: extern int brkflag;
                    116: extern char yytext[];
                    117: 
                    118: extern int strflg;
                    119: 
                    120: extern OFFSZ inoff;
                    121: 
                    122: extern int reached;
                    123: 
                    124: /*     tunnel to buildtree for name id's */
                    125: 
                    126: extern int idname;
                    127: 
                    128: extern NODE node[];
                    129: extern NODE *lastfree;
                    130: 
                    131: extern int cflag, hflag, pflag;
                    132: 
                    133: /* various labels */
                    134: extern int brklab;
                    135: extern int contlab;
                    136: #ifdef M32B
                    137:        extern int swregno;
                    138: #endif
                    139: extern int flostat;
                    140: extern int retlab;
                    141: extern int retstat;
                    142: extern int asavbc[], *psavbc;
                    143: 
                    144: /*     flags used in structures/unions */
                    145: 
                    146: # define SEENAME 01
                    147: # define INSTRUCT 02
                    148: # define INUNION 04
                    149: # define FUNNYNAME 010
                    150: # define TAGNAME 020
                    151: 
                    152: /*     flags used in the (elementary) flow analysis ... */
                    153: 
                    154: # define FBRK 02
                    155: # define FCONT 04
                    156: # define FDEF 010
                    157: # define FLOOP 020
                    158: 
                    159: /*
                    160: * These defines control "while" and "for" loop code generation.
                    161: * wloop_level and floop_level each must be set to one of these values.
                    162: */
                    163: #define LL_TOP 0       /* test at loop top */
                    164: #define LL_BOT 1       /* test at loop bottom */
                    165: #define LL_DUP 2       /* duplicate loop test at top and bottom */
                    166: 
                    167: #ifdef M32B
                    168:        /* for register allocation optimization */
                    169:        extern int fordepth;
                    170:        extern int whdepth;
                    171:        extern int brdepth;
                    172: #   ifdef IMPREGAL
                    173:        extern void rainit(), radbl(), raname(), raua(), raftn();
                    174: #   endif
                    175: #endif
                    176: 
                    177: /*     flags used for return status */
                    178: 
                    179: # define RETVAL 1
                    180: # define NRETVAL 2
                    181: 
                    182: /*     used to mark a constant with no name field */
                    183: 
                    184: # define NONAME 040000
                    185: 
                    186:        /* mark an offset which is undefined */
                    187: 
                    188: # define NOOFFSET (-10201)
                    189: 
                    190: /*     declarations of various functions */
                    191: 
                    192: extern NODE
                    193:        *aadjust(),
                    194:        *bcon(),
                    195:        *bdty(),
                    196:        *block(),
                    197:        *bpsize(),
                    198:        *buildtree(),
                    199: #ifdef M32B
                    200:        *myand(),
                    201:        *setswreg(),
                    202: #endif
                    203:        *clocal(),
                    204:        *conval(),
                    205:        *convert(),
                    206:        *dclstruct(),
                    207:        *doszof(),
                    208:        *getstr(),
                    209:        *makety(),
                    210:        *mkty(),
                    211:        *oconvert(),
                    212:        *offcon(),
                    213:        *optim(),
                    214:        *pconvert(),
                    215:        *ptmatch(),
                    216:        *pvconvert(),
                    217:        *rstruct(),
                    218:        *sconvert(),
                    219:        *strargs(),
                    220:        *stref(),
                    221:        *talloc(),
                    222:        *tymatch(),
                    223:        *tymerge(),
                    224:        *unconvert(),
                    225:        *xicolon();
                    226: 
                    227: OFFSZ  tsize(),
                    228:        psize();
                    229: 
                    230: TWORD  types(),
                    231:        ctype();
                    232: 
                    233: char *exname(), *exdcon();
                    234: 
                    235: # define checkst(x)
                    236: 
                    237: /* type that is equivalent to pointers in size */
                    238: # ifndef PTRTYPE
                    239: # define PTRTYPE INT
                    240: # endif

unix.superglobalmegacorp.com

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