1: /*
   2:  * Copyright (c) 1980 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)data.h	5.1 (Berkeley) 6/7/85
   7:  */
   8: 
   9: /*  Forms of data list elements  */
  10: 
  11: #define SIMPLE  1
  12: #define NESTED  2
  13: 
  14: 
  15: /*  data expression block types  */
  16: 
  17: #define DVALUE  1
  18: #define DVAR    2
  19: #define DNAME   3
  20: #define DEXPR   4
  21: #define DERROR  5
  22: 
  23: 
  24: /*  status codes for integer values  */
  25: 
  26: #define NORMAL   1
  27: #define MAXPLUS1 2
  28: #define MINLESS1 3
  29: #define ERRVAL   4
  30: 
  31: 
  32: 
  33: /*  data types for data statements  */
  34: 
  35: 
  36: typedef
  37:   struct Dvalue
  38:     {
  39:       char  tag;
  40:       char  status;
  41:       ftnint    value;
  42:     }
  43:   dvalue;
  44: 
  45: 
  46: typedef
  47:   struct Dvar
  48:     {
  49:       char  tag;
  50:       struct Dvalue *valp;
  51:     }
  52:   dvar;
  53: 
  54: 
  55: typedef
  56:   struct Dname
  57:     {
  58:       char  tag;
  59:       int   len;
  60:       char  *repr;
  61:     }
  62:   dname;
  63: 
  64: 
  65: typedef
  66:   struct Dexpr
  67:     {
  68:       char  tag;
  69:       char  opcode;
  70:       union Vexpr   *left;
  71:       union Vexpr   *right;
  72:     }
  73:   dexpr;
  74: 
  75: 
  76: typedef
  77:   struct Derror
  78:     {
  79:       char  tag;
  80:     }
  81:   derror;
  82: 
  83: 
  84: typedef
  85:   union Vexpr
  86:     {
  87:       char  tag;
  88:       struct Dvalue dvalue;
  89:       struct Dvar   dvar;
  90:       struct Dname  dname;
  91:       struct Dexpr  dexpr;
  92:       struct Derror derror;
  93:     }
  94:   vexpr;
  95: 
  96: 
  97: typedef
  98:   struct Elist
  99:     {
 100:       struct Elist  *next;
 101:       union Delt    *elt;
 102:     }
 103:   elist;
 104: 
 105: 
 106: typedef
 107:   struct Aelt
 108:     {
 109:       char  tag;
 110:       Namep var;
 111:       struct Vlist  *subs;
 112:       struct Rpair  *range;
 113:     }
 114:   aelt;
 115: 
 116: 
 117: typedef
 118:   struct DoList
 119:     {
 120:       char  tag;
 121:       struct Elist  *elts;
 122:       union Vexpr   *dovar;
 123:       union Vexpr   *init;
 124:       union Vexpr   *limit;
 125:       union Vexpr   *step;
 126:     }
 127:   dolist;
 128: 
 129: 
 130: typedef
 131:   union Delt
 132:     {
 133:       char  tag;
 134:       struct Aelt   simple;
 135:       struct DoList nested;
 136:     }
 137:   delt;
 138: 
 139: 
 140: typedef
 141:   struct Rpair
 142:     {
 143:       union Vexpr   *low;
 144:       union Vexpr   *high;
 145:     }
 146:   rpair;
 147: 
 148: 
 149: typedef
 150:   struct ValList
 151:     {
 152:       struct ValList    *next;
 153:       char  status;
 154:       int   repl;
 155:       Constp    value;
 156:     }
 157:   vallist;
 158: 
 159: 
 160: typedef
 161:   struct Vlist
 162:     {
 163:       struct Vlist  *next;
 164:       union Vexpr   *val;
 165:     }
 166:   vlist;
 167: 
 168: 
 169: typedef
 170:   struct DoVars
 171:     {
 172:       struct DoVars *next;
 173:       int len;
 174:       char *repr;
 175:       dvalue *valp;
 176:     }
 177:   dovars;
 178: 
 179: 
 180: 
 181: /*  Global variables  */
 182: 
 183: extern int badvalue;
 184: extern flag overlapflag;
 185: 
 186: 
 187: /*  Global procedures  */
 188: 
 189: extern frvexpr();
 190: extern frvlist();
 191: extern elist *revelist();
 192: extern vlist *revvlist();
 193: extern vlist *prepvexpr();
 194: extern elist *preplval();
 195: extern delt *mkdlval();
 196: extern delt *mkdatado();
 197: extern rpair *mkdrange();
 198: extern vallist *mkdrval();
 199: extern vexpr *evicon();
 200: extern vexpr *mkdname();
 201: extern expptr ivaltoicon();
 202: extern expptr evparam();
 203: extern vexpr *evaldname();
 204: extern vexpr *mkdexpr();
 205: extern vexpr *addivals();
 206: extern vexpr *subivals();
 207: extern vexpr *mulivals();
 208: extern vexpr *divivals();
 209: extern vexpr *powivals();
 210: extern vexpr *negival();
 211: extern expptr convconst();
 212: extern savedata();

Defined struct's

Aelt defined in line 107; used 2 times
  • in line 134(2)
Derror defined in line 77; used 2 times
  • in line 92(2)
Dexpr defined in line 66; used 2 times
  • in line 91(2)
Dname defined in line 56; used 2 times
  • in line 90(2)
DoList defined in line 118; used 2 times
  • in line 135(2)
DoVars defined in line 170; used 2 times
  • in line 172(2)
Dvalue defined in line 37; used 4 times
  • in line 50(2), 88(2)
Dvar defined in line 47; used 2 times
  • in line 89(2)
Elist defined in line 98; used 6 times
Rpair defined in line 141; used 3 times
ValList defined in line 150; used 4 times
Vlist defined in line 161; used 5 times

Defined union's

Delt defined in line 131; used 3 times
Vexpr defined in line 85; used 18 times

Defined typedef's

aelt defined in line 114; used 10 times
delt defined in line 137; used 7 times
derror defined in line 81; used 1 times
  • in line 92
dexpr defined in line 73; used 13 times
dname defined in line 62; used 15 times
dolist defined in line 127; used 7 times
dovars defined in line 177; used 4 times
dvalue defined in line 43; used 52 times
dvar defined in line 52; used 3 times
elist defined in line 103; used 20 times
rpair defined in line 146; used 5 times
vallist defined in line 157; used 15 times
vexpr defined in line 94; used 92 times
vlist defined in line 166; used 17 times

Defined macros

DERROR defined in line 21; used 9 times
DEXPR defined in line 20; used 2 times
DNAME defined in line 19; used 5 times
DVALUE defined in line 17; used 30 times
DVAR defined in line 18; used 1 times
ERRVAL defined in line 29; used 48 times
MAXPLUS1 defined in line 27; used 33 times
MINLESS1 defined in line 28; used 21 times
NESTED defined in line 12; used 1 times
NORMAL defined in line 26; used 84 times
SIMPLE defined in line 11; used 4 times

Usage of this include

Last modified: 1985-06-08
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1744
Valid CSS Valid XHTML 1.0 Strict