Annotation of 43BSDReno/libexec/pcc/mip/xdefs.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char *sccsid ="@(#)xdefs.c      4.3 (Berkeley) 3/19/85";
                      3: #endif lint
                      4: 
                      5: # include "pass1.h"
                      6: 
                      7: /*     communication between lexical routines  */
                      8: 
                      9: char   ftitle[100] = "";       /* title of the file */
                     10: char   ititle[100] = "";       /* title of initial file */
                     11: int    lineno;         /* line number of the input file */
                     12: 
                     13: CONSZ lastcon;  /* the last constant read by the lexical analyzer */
                     14: float fcon;   /* the last float read by the lexical analyzer */
                     15: double dcon;   /* the last double read by the lexical analyzer */
                     16: 
                     17: 
                     18: /*     symbol table maintainence */
                     19: 
                     20: struct symtab stab[SYMTSZ+1];  /* one extra slot for scratch */
                     21: 
                     22: int    curftn;  /* "current" function */
                     23: int    ftnno;  /* "current" function number */
                     24: 
                     25: int    curclass,         /* current storage class */
                     26:        instruct,       /* "in structure" flag */
                     27:        stwart,         /* for accessing names which are structure members or names */
                     28:        blevel,         /* block level: 0 for extern, 1 for ftn args, >=2 inside function */
                     29:        curdim;         /* current offset into the dimension table */
                     30:        
                     31: int    dimtab[ DIMTABSZ ];
                     32: 
                     33: int    paramstk[ PARAMSZ ];  /* used in the definition of function parameters */
                     34: int    paramno;          /* the number of parameters */
                     35: int    autooff,        /* the next unused automatic offset */
                     36:        argoff, /* the next unused argument offset */
                     37:        strucoff;       /*  the next structure offset position */
                     38: int    regvar;         /* the next free register for register variables */
                     39: int    minrvar;        /* the smallest that regvar gets witing a function */
                     40: OFFSZ  inoff;          /* offset of external element being initialized */
                     41: int    brkflag = 0;    /* complain about break statements not reached */
                     42: 
                     43: struct sw swtab[SWITSZ];  /* table for cases within a switch */
                     44: struct sw *swp;  /* pointer to next free entry in swtab */
                     45: int swx;  /* index of beginning of cases for current switch */
                     46: 
                     47: /* debugging flag */
                     48: int xdebug = 0;
                     49: 
                     50: int strflg;  /* if on, strings are to be treated as lists */
                     51: 
                     52: int reached;   /* true if statement can be reached... */
                     53: 
                     54: int idname;    /* tunnel to buildtree for name id's */
                     55: 
                     56: 
                     57: NODE node[TREESZ];
                     58: 
                     59: int cflag = 0;  /* do we check for funny casts */
                     60: int hflag = 0;  /* do we check for various heuristics which may indicate errors */
                     61: int pflag = 0;  /* do we check for portable constructions */
                     62: 
                     63: int brklab;
                     64: int contlab;
                     65: int flostat;
                     66: int retlab = NOLAB;
                     67: int retstat;
                     68: 
                     69: /* save array for break, continue labels, and flostat */
                     70: 
                     71: int asavbc[BCSZ];
                     72: int *psavbc = asavbc ;
                     73: 
                     74: # ifndef BUG1
                     75: static char *
                     76: ccnames[] = { /* names of storage classes */
                     77:        "SNULL",
                     78:        "AUTO",
                     79:        "EXTERN",
                     80:        "STATIC",
                     81:        "REGISTER",
                     82:        "EXTDEF",
                     83:        "LABEL",
                     84:        "ULABEL",
                     85:        "MOS",
                     86:        "PARAM",
                     87:        "STNAME",
                     88:        "MOU",
                     89:        "UNAME",
                     90:        "TYPEDEF",
                     91:        "FORTRAN",
                     92:        "ENAME",
                     93:        "MOE",
                     94:        "UFORTRAN",
                     95:        "USTATIC",
                     96:        };
                     97: 
                     98: char * scnames( c ) register c; {
                     99:        /* return the name for storage class c */
                    100:        static char buf[12];
                    101:        if( c&FIELD ){
                    102:                sprintf( buf, "FIELD[%d]", c&FLDSIZ );
                    103:                return( buf );
                    104:                }
                    105:        return( ccnames[c] );
                    106:        }
                    107: # endif

unix.superglobalmegacorp.com

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