1: 
   2: # include "macdefs"
   3: # include "manifest"
   4: 
   5: /*	storage classes  */
   6: # define SNULL 0
   7: # define AUTO 1
   8: # define EXTERN 2
   9: # define STATIC 3
  10: # define REGISTER 4
  11: # define EXTDEF 5
  12: # define LABEL 6
  13: # define ULABEL 7
  14: # define MOS 8
  15: # define PARAM 9
  16: # define STNAME 10
  17: # define MOU 11
  18: # define UNAME 12
  19: # define TYPEDEF 13
  20: # define FORTRAN 14
  21: # define ENAME 15
  22: # define MOE 16
  23: # define UFORTRAN 17
  24: # define USTATIC 18
  25:     /* field size is ORed in */
  26: # define FIELD 0100
  27: # define FLDSIZ 077
  28: extern char *scnames();
  29: 
  30: /*	location counters */
  31: # define PROG 0
  32: # define DATA 1
  33: # define ADATA 2
  34: # define STRNG 3
  35: # define ISTRNG 4
  36: # define STAB 5
  37: 
  38: 
  39: /* symbol table flags */
  40: # define SMOS 01
  41: # define SHIDDEN 02
  42: # define SHIDES 04
  43: # define SSET 010
  44: # define SREF 020
  45: 
  46: # ifndef FIXDEF
  47: # define FIXDEF(p)
  48: #endif
  49: 
  50:     /* alignment of initialized quantities */
  51: # ifndef AL_INIT
  52: #	define    AL_INIT ALINT
  53: # endif
  54: 
  55: struct symtab {
  56:     char sname[NCHNAM];
  57:     TWORD stype;  /* type word */
  58: 
  59:     char sclass;  /* storage class */
  60:     char slevel;  /* scope level */
  61:     char sflags;  /* flags for set, use, hidden, mos, etc. */
  62:     int offset;  /* offset or value */
  63:     short dimoff; /* offset into the dimension table */
  64:     short sizoff; /* offset into the size table */
  65:     short suse;  /* line number of last use of the variable */
  66:     };
  67: 
  68: 
  69: # ifdef ONEPASS
  70: /* NOPREF must be defined for use in first pass tree machine */
  71: # define NOPREF 020000  /* no preference for register assignment */
  72: #else
  73: 
  74: union ndu {
  75:     struct {
  76:         int op;
  77:         TWORD type;
  78:         int cdim, csiz;
  79:         NODE *left;
  80:         NODE * right;
  81:         };
  82: 
  83:     struct {
  84:         /* this structure is the same as above,
  85: 		   but is used when a value, rather than
  86: 		   address, is kept in +left */
  87:         int op;
  88:         TWORD type;
  89:         int cdim, csiz;
  90:         CONSZ lval;
  91:         int rval;
  92:         };
  93: 
  94:     struct {
  95:         /* this structure is used when a floating point constant
  96: 		   is being computed */
  97:         int op;
  98:         TWORD type;
  99:         int cdim, csiz;
 100:         double dval;
 101:         };
 102: 
 103:     };
 104: # endif
 105: 
 106: struct sw {
 107:     CONSZ sval;
 108:     int slab;
 109:     };
 110: 
 111: extern struct sw swtab[];
 112: extern struct sw *swp;
 113: extern int swx;
 114: 
 115: extern int ftnno;
 116: extern int blevel;
 117: extern int instruct, stwart;
 118: 
 119: extern int lineno, nerrors;
 120: typedef union {
 121:     int intval;
 122:     NODE * nodep;
 123:     } YYSTYPE;
 124: extern YYSTYPE yylval;
 125: 
 126: extern CONSZ lastcon;
 127: extern double dcon;
 128: 
 129: extern char ftitle[];
 130: extern struct symtab stab[];
 131: extern int curftn;
 132: extern int curclass;
 133: extern int curdim;
 134: extern int dimtab[];
 135: extern int paramstk[];
 136: extern int paramno;
 137: extern int autooff, argoff, strucoff;
 138: extern int regvar;
 139: extern int minrvar;
 140: extern int brkflag;
 141: extern char yytext[];
 142: 
 143: extern int strflg;
 144: 
 145: extern OFFSZ inoff;
 146: 
 147: extern int reached;
 148: 
 149: /*	tunnel to buildtree for name id's */
 150: 
 151: extern int idname;
 152: 
 153: extern NODE node[];
 154: extern NODE *lastfree;
 155: 
 156: extern int cflag, hflag, pflag;
 157: 
 158: /* various labels */
 159: extern int brklab;
 160: extern int contlab;
 161: extern int flostat;
 162: extern int retlab;
 163: extern int retstat;
 164: extern int asavbc[], *psavbc;
 165: 
 166: /*	flags used in structures/unions */
 167: 
 168: # define SEENAME 01
 169: # define INSTRUCT 02
 170: # define INUNION 04
 171: # define FUNNYNAME 010
 172: 
 173: /*	flags used in the (elementary) flow analysis ... */
 174: 
 175: # define FBRK 02
 176: # define FCONT 04
 177: # define FDEF 010
 178: # define FLOOP 020
 179: 
 180: /*	flags used for return status */
 181: 
 182: # define RETVAL 1
 183: # define NRETVAL 2
 184: 
 185: /*	used to mark a constant with no name field */
 186: 
 187: # define NONAME 040000
 188: 
 189:     /* mark an offset which is undefined */
 190: 
 191: # define NOOFFSET (-10201)
 192: 
 193: /*	declarations of various functions */
 194: 
 195: extern NODE
 196:     *buildtree(),
 197:     *bdty(),
 198:     *mkty(),
 199:     *rstruct(),
 200:     *dclstruct(),
 201:     *getstr(),
 202:     *tymerge(),
 203:     *stref(),
 204:     *offcon(),
 205:     *bcon(),
 206:     *bpsize(),
 207:     *convert(),
 208:     *pconvert(),
 209:     *oconvert(),
 210:     *ptmatch(),
 211:     *tymatch(),
 212:     *makety(),
 213:     *block(),
 214:     *doszof(),
 215:     *talloc(),
 216:     *optim(),
 217:     *strargs(),
 218:     *clocal();
 219: 
 220: OFFSZ   tsize(),
 221:     psize();
 222: 
 223: TWORD   types();
 224: 
 225: 
 226: double atof();
 227: 
 228: char *exname(), *exdcon();
 229: 
 230: # define checkst(x)
 231: 
 232: # ifndef CHARCAST
 233: /* to make character constants into character connstants */
 234: /* this is a macro to defend against cross-compilers, etc. */
 235: # define CHARCAST(x) (char)(x)
 236: # endif

Defined struct's

sw defined in line 106; used 12 times
symtab defined in line 55; used 86 times

Defined union's

ndu defined in line 74; never used

Defined macros

ADATA defined in line 33; used 3 times
AL_INIT defined in line 52; used 2 times
CHARCAST defined in line 235; used 2 times
DATA defined in line 32; used 4 times
ENAME defined in line 21; used 3 times
FBRK defined in line 175; used 4 times
FCONT defined in line 176; used 4 times
FDEF defined in line 177; used 2 times
FIXDEF defined in line 47; used 2 times
FLDSIZ defined in line 27; used 6 times
FLOOP defined in line 178; used 5 times
FORTRAN defined in line 20; used 7 times
FUNNYNAME defined in line 171; used 3 times
INSTRUCT defined in line 169; used 16 times
INUNION defined in line 170; used 13 times
ISTRNG defined in line 35; used 1 times
LABEL defined in line 12; used 6 times
MOE defined in line 22; used 3 times
MOS defined in line 14; used 4 times
MOU defined in line 17; used 6 times
NOOFFSET defined in line 191; used 3 times
NOPREF defined in line 71; used 1 times
NRETVAL defined in line 183; used 3 times
PARAM defined in line 15; used 10 times
PROG defined in line 31; used 8 times
RETVAL defined in line 182; used 3 times
SEENAME defined in line 168; used 7 times
SHIDDEN defined in line 41; used 4 times
SHIDES defined in line 42; used 2 times
SNULL defined in line 6; used 18 times
SREF defined in line 44; used 4 times
SSET defined in line 43; used 8 times
STAB defined in line 36; never used
STNAME defined in line 16; used 3 times
STRNG defined in line 34; used 1 times
TYPEDEF defined in line 19; used 3 times
UFORTRAN defined in line 23; used 5 times
ULABEL defined in line 13; used 4 times
UNAME defined in line 18; used 4 times
USTATIC defined in line 24; used 3 times
checkst defined in line 230; used 3 times

Usage of this include

Last modified: 1979-01-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1015
Valid CSS Valid XHTML 1.0 Strict