|
|
1.1 ! root 1: #define INTERDATA 2 ! 2: #define GCOS 3 ! 3: #define PDP11 4 ! 4: #define IBM 5 ! 5: #define CMACH 6 ! 6: #define VAX 7 ! 7: #define TAHOE 8 ! 8: ! 9: #define DMR 2 ! 10: #define PCC 3 ! 11: ! 12: #ifndef FAMILY ! 13: FAMILY NOT DEFINED !!! ! 14: Family = FAMILY ! 15: #endif ! 16: ! 17: #ifndef HERE ! 18: HERE NOT DEFINED !!!! ! 19: Here = HERE ! 20: #endif ! 21: ! 22: #define M(x) (1<<x) ! 23: #define ALLOC(x) (struct x *) ckalloc(sizeof(struct x)) ! 24: #define ALLOCN(n,x) (struct x *) ckalloc(n*sizeof(struct x)) ! 25: #define ALLEXPR (expptr) ckalloc( sizeof(union Expression) ) ! 26: typedef int *ptr; ! 27: typedef char *charptr; ! 28: typedef FILE *FILEP; ! 29: typedef short flag; ! 30: typedef char field; /* actually need only 4 bits */ ! 31: typedef long int ftnint; ! 32: #define LOCAL static ! 33: ! 34: #define NO 0 ! 35: #define YES 1 ! 36: ! 37: #define CNULL (char *) 0 ! 38: #define PNULL (ptr) 0 ! 39: #define CHNULL (chainp) 0 ! 40: #define ENULL (expptr) 0 ! 41: ! 42: ! 43: ! 44: /* block tag values */ ! 45: ! 46: #define TNAME 1 ! 47: #define TCONST 2 ! 48: #define TEXPR 3 ! 49: #define TADDR 4 ! 50: #define TPRIM 5 ! 51: #define TLIST 6 ! 52: #define TIMPLDO 7 ! 53: #define TERROR 8 ! 54: ! 55: ! 56: /* parser states */ ! 57: ! 58: #define OUTSIDE 0 ! 59: #define INSIDE 1 ! 60: #define INDCL 2 ! 61: #define INDATA 3 ! 62: #define INEXEC 4 ! 63: ! 64: /* procedure classes */ ! 65: ! 66: #define PROCMAIN 1 ! 67: #define PROCBLOCK 2 ! 68: #define PROCSUBR 3 ! 69: #define PROCFUNCT 4 ! 70: ! 71: ! 72: /* storage classes -- vstg values */ ! 73: ! 74: #define STGUNKNOWN 0 ! 75: #define STGARG 1 ! 76: #define STGAUTO 2 ! 77: #define STGBSS 3 ! 78: #define STGINIT 4 ! 79: #define STGCONST 5 ! 80: #define STGEXT 6 ! 81: #define STGINTR 7 ! 82: #define STGSTFUNCT 8 ! 83: #define STGCOMMON 9 ! 84: #define STGEQUIV 10 ! 85: #define STGREG 11 ! 86: #define STGLENG 12 ! 87: #define STGNULL 13 ! 88: ! 89: /* name classes -- vclass values */ ! 90: ! 91: #define CLUNKNOWN 0 ! 92: #define CLPARAM 1 ! 93: #define CLVAR 2 ! 94: #define CLENTRY 3 ! 95: #define CLMAIN 4 ! 96: #define CLBLOCK 5 ! 97: #define CLPROC 6 ! 98: #define CLNAMELIST 7 ! 99: ! 100: ! 101: /* vprocclass values */ ! 102: ! 103: #define PUNKNOWN 0 ! 104: #define PEXTERNAL 1 ! 105: #define PINTRINSIC 2 ! 106: #define PSTFUNCT 3 ! 107: #define PTHISPROC 4 ! 108: ! 109: /* control stack codes */ ! 110: ! 111: #define CTLDO 1 ! 112: #define CTLIF 2 ! 113: #define CTLELSE 3 ! 114: ! 115: ! 116: /* operators */ ! 117: ! 118: #define OPPLUS 1 ! 119: #define OPMINUS 2 ! 120: #define OPSTAR 3 ! 121: #define OPSLASH 4 ! 122: #define OPPOWER 5 ! 123: #define OPNEG 6 ! 124: #define OPOR 7 ! 125: #define OPAND 8 ! 126: #define OPEQV 9 ! 127: #define OPNEQV 10 ! 128: #define OPNOT 11 ! 129: #define OPCONCAT 12 ! 130: #define OPLT 13 ! 131: #define OPEQ 14 ! 132: #define OPGT 15 ! 133: #define OPLE 16 ! 134: #define OPNE 17 ! 135: #define OPGE 18 ! 136: #define OPCALL 19 ! 137: #define OPCCALL 20 ! 138: #define OPASSIGN 21 ! 139: #define OPPLUSEQ 22 ! 140: #define OPSTAREQ 23 ! 141: #define OPCONV 24 ! 142: #define OPLSHIFT 25 ! 143: #define OPMOD 26 ! 144: #define OPCOMMA 27 ! 145: #define OPQUEST 28 ! 146: #define OPCOLON 29 ! 147: #define OPABS 30 ! 148: #define OPMIN 31 ! 149: #define OPMAX 32 ! 150: #define OPADDR 33 ! 151: #define OPINDIRECT 34 ! 152: #define OPBITOR 35 ! 153: #define OPBITAND 36 ! 154: #define OPBITXOR 37 ! 155: #define OPBITNOT 38 ! 156: #define OPRSHIFT 39 ! 157: ! 158: ! 159: /* label type codes */ ! 160: ! 161: #define LABUNKNOWN 0 ! 162: #define LABEXEC 1 ! 163: #define LABFORMAT 2 ! 164: #define LABOTHER 3 ! 165: ! 166: ! 167: /* INTRINSIC function codes*/ ! 168: ! 169: #define INTREND 0 ! 170: #define INTRCONV 1 ! 171: #define INTRMIN 2 ! 172: #define INTRMAX 3 ! 173: #define INTRGEN 4 ! 174: #define INTRSPEC 5 ! 175: #define INTRBOOL 6 ! 176: #define INTRCNST 7 ! 177: ! 178: ! 179: /* I/O statement codes */ ! 180: ! 181: #define IOSTDIN ICON(5) ! 182: #define IOSTDOUT ICON(6) ! 183: #define IOSTDERR ICON(0) ! 184: ! 185: #define IOSBAD (-1) ! 186: #define IOSPOSITIONAL 0 ! 187: #define IOSUNIT 1 ! 188: #define IOSFMT 2 ! 189: ! 190: #define IOINQUIRE 1 ! 191: #define IOOPEN 2 ! 192: #define IOCLOSE 3 ! 193: #define IOREWIND 4 ! 194: #define IOBACKSPACE 5 ! 195: #define IOENDFILE 6 ! 196: #define IOREAD 7 ! 197: #define IOWRITE 8 ! 198: ! 199: ! 200: /* type masks */ ! 201: ! 202: #define MSKLOGICAL M(TYLOGICAL) ! 203: #define MSKADDR M(TYADDR) ! 204: #define MSKCHAR M(TYCHAR) ! 205: #define MSKINT M(TYSHORT)|M(TYLONG) ! 206: #define MSKREAL M(TYREAL)|M(TYDREAL) ! 207: #define MSKCOMPLEX M(TYCOMPLEX)|M(TYDCOMPLEX) ! 208: #define MSKSTATIC (M(STGINIT)|M(STGBSS)|M(STGCOMMON)|M(STGEQUIV)|M(STGCONST)) ! 209: ! 210: /* miscellaneous macros */ ! 211: ! 212: #define ONEOF(x,y) (M(x) & (y)) ! 213: #define ISCOMPLEX(z) ONEOF(z, MSKCOMPLEX) ! 214: #define ISREAL(z) ONEOF(z, MSKREAL) ! 215: #define ISNUMERIC(z) ONEOF(z, MSKINT|MSKREAL|MSKCOMPLEX) ! 216: #define ISICON(z) (z->tag==TCONST && ISINT(z->constblock.vtype)) ! 217: #define ISCHAR(z) (z->headblock.vtype==TYCHAR) ! 218: #define ISINT(z) ONEOF(z, MSKINT) ! 219: #define ISCONST(z) (z->tag==TCONST) ! 220: #define ISERROR(z) (z->tag==TERROR) ! 221: #define ISPLUSOP(z) (z->tag==TEXPR && z->exprblock.opcode==OPPLUS) ! 222: #define ISSTAROP(z) (z->tag==TEXPR && z->exprblock.opcode==OPSTAR) ! 223: #define ISONE(z) (ISICON(z) && z->constblock.const.ci==1) ! 224: #define INT(z) ONEOF(z, MSKINT|MSKCHAR) ! 225: #define ICON(z) mkintcon( (ftnint)(z) ) ! 226: ! 227: #define NO66(s) if(no66flag) err66(s) ! 228: #define NOEXT(s) if(noextflag) errext(s) ! 229: ! 230: /* round a up to a multiple of b */ ! 231: #define roundup(a,b) ( b * ( (a+b-1)/b) )
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.