|
|
1.1 ! root 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();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.