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:  *	@(#)defines.h	5.2 (Berkeley) 8/28/85
   7:  */
   8: 
   9: /*
  10:  * defines.h
  11:  *
  12:  * Global definitions for the first pass of the f77 compiler, Unix 4.3 BSD.
  13:  *
  14:  * University of Utah CS Dept modification history:
  15:  *
  16:  * $Log:	defines.h,v $
  17:  * Revision 5.2  85/08/10  05:11:20  donn
  18:  * Added comment header; added Jerry Berkman's changes to delete INTRCNST
  19:  * and to ifdef 66 code.
  20:  *
  21:  */
  22: 
  23: #define INTERDATA 2
  24: #define GCOS 3
  25: #define PDP11 4
  26: #define IBM 5
  27: #define CMACH 6
  28: #define VAX 7
  29: 
  30: #define DMR 2
  31: #define PCC 3
  32: 
  33: #ifndef FAMILY
  34: FAMILY NOT DEFINED !!!
  35: Family = FAMILY
  36: #endif
  37: 
  38: #ifndef HERE
  39: HERE NOT DEFINED !!!!
  40: Here = HERE
  41: #endif
  42: 
  43: #define M(x) (1<<x)
  44: #define ALLOC(x)    (struct x *) ckalloc(sizeof(struct x))
  45: #define ALLOCN(n,x) (struct x *) ckalloc(n*sizeof(struct x))
  46: #define ALLEXPR     (expptr) ckalloc( sizeof(union Expression) )
  47: typedef int *ptr;
  48: typedef char *charptr;
  49: typedef FILE *FILEP;
  50: typedef short flag;
  51: typedef char field; /* actually need only 4 bits */
  52: typedef long int ftnint;
  53: #define LOCAL static
  54: 
  55: #define NO 0
  56: #define YES 1
  57: 
  58: #define CNULL (char *) 0
  59: #define PNULL (ptr) 0
  60: #define CHNULL (chainp) 0
  61: #define ENULL (expptr) 0
  62: 
  63: 
  64: 
  65: /* block tag values */
  66: 
  67: #define TNAME 1
  68: #define TCONST 2
  69: #define TEXPR 3
  70: #define TADDR 4
  71: #define TTEMP 5
  72: #define TPRIM 6
  73: #define TLIST 7
  74: #define TIMPLDO 8
  75: #define TERROR 9
  76: 
  77: 
  78: /* parser states */
  79: 
  80: #define OUTSIDE 0
  81: #define INSIDE 1
  82: #define INDCL 2
  83: #define INDATA 3
  84: #define INEXEC 4
  85: 
  86: /* procedure classes */
  87: 
  88: #define PROCMAIN 1
  89: #define PROCBLOCK 2
  90: #define PROCSUBR 3
  91: #define PROCFUNCT 4
  92: 
  93: 
  94: /* storage classes -- vstg values */
  95: 
  96: #define STGUNKNOWN 0
  97: #define STGARG 1
  98: #define STGAUTO 2
  99: #define STGBSS 3
 100: #define STGINIT 4
 101: #define STGCONST 5
 102: #define STGEXT 6
 103: #define STGINTR 7
 104: #define STGSTFUNCT 8
 105: #define STGCOMMON 9
 106: #define STGEQUIV 10
 107: #define STGREG 11
 108: #define STGLENG 12
 109: #define STGNULL 13
 110: #define STGPREG 14
 111: 
 112: /* name classes -- vclass values */
 113: 
 114: #define CLUNKNOWN 0
 115: #define CLPARAM 1
 116: #define CLVAR 2
 117: #define CLENTRY 3
 118: #define CLMAIN 4
 119: #define CLBLOCK 5
 120: #define CLPROC 6
 121: #define CLNAMELIST 7
 122: 
 123: 
 124: /* vprocclass values */
 125: 
 126: #define PUNKNOWN 0
 127: #define PEXTERNAL 1
 128: #define PINTRINSIC 2
 129: #define PSTFUNCT 3
 130: #define PTHISPROC 4
 131: 
 132: /* control stack codes */
 133: 
 134: #define CTLDO 1
 135: #define CTLIF 2
 136: #define CTLELSE 3
 137: 
 138: 
 139: /* operators -- see also arrays 'ops' and 'ops2' in put.c */
 140: 
 141: #define OPPLUS 1
 142: #define OPMINUS 2
 143: #define OPSTAR 3
 144: #define OPSLASH 4
 145: #define OPPOWER 5
 146: #define OPNEG 6
 147: #define OPOR 7
 148: #define OPAND 8
 149: #define OPEQV 9
 150: #define OPNEQV 10
 151: #define OPNOT 11
 152: #define OPCONCAT 12
 153: #define OPLT 13
 154: #define OPEQ 14
 155: #define OPGT 15
 156: #define OPLE 16
 157: #define OPNE 17
 158: #define OPGE 18
 159: #define OPCALL 19
 160: #define OPCCALL 20
 161: #define OPASSIGN 21
 162: #define OPPLUSEQ 22
 163: #define OPSTAREQ 23
 164: #define OPCONV 24
 165: #define OPLSHIFT 25
 166: #define OPMOD 26
 167: #define OPCOMMA 27
 168: #define OPQUEST 28
 169: #define OPCOLON 29
 170: #define OPABS 30
 171: #define OPMIN 31
 172: #define OPMAX 32
 173: #define OPADDR 33
 174: #define OPINDIRECT 34
 175: #define OPBITOR 35
 176: #define OPBITAND 36
 177: #define OPBITXOR 37
 178: #define OPBITNOT 38
 179: #define OPRSHIFT 39
 180: #define OPPAREN 40
 181: #define OPUNARYPLUS 41
 182: 
 183: 
 184: /* label type codes */
 185: 
 186: #define LABUNKNOWN 0
 187: #define LABEXEC 1
 188: #define LABFORMAT 2
 189: #define LABOTHER 3
 190: 
 191: 
 192: /* INTRINSIC function codes*/
 193: 
 194: #define INTREND 0
 195: #define INTRCONV 1
 196: #define INTRMIN 2
 197: #define INTRMAX 3
 198: #define INTRGEN 4
 199: #define INTRSPEC 5
 200: #define INTRBOOL 6
 201: 
 202: 
 203: /* I/O statement codes */
 204: 
 205: #define IOSTDIN ICON(5)
 206: #define IOSTDOUT ICON(6)
 207: #define IOSTDERR ICON(0)
 208: 
 209: #define IOSBAD (-1)
 210: #define IOSPOSITIONAL 0
 211: #define IOSUNIT 1
 212: #define IOSFMT 2
 213: 
 214: #define IOINQUIRE 1
 215: #define IOOPEN 2
 216: #define IOCLOSE 3
 217: #define IOREWIND 4
 218: #define IOBACKSPACE 5
 219: #define IOENDFILE 6
 220: #define IOREAD 7
 221: #define IOWRITE 8
 222: 
 223: 
 224: /* type masks */
 225: 
 226: #define MSKLOGICAL  M(TYLOGICAL)
 227: #define MSKADDR M(TYADDR)
 228: #define MSKCHAR M(TYCHAR)
 229: #define MSKINT  M(TYSHORT)|M(TYLONG)
 230: #define MSKREAL M(TYREAL)|M(TYDREAL)
 231: #define MSKCOMPLEX  M(TYCOMPLEX)|M(TYDCOMPLEX)
 232: #define MSKSTATIC (M(STGINIT)|M(STGBSS)|M(STGCOMMON)|M(STGEQUIV)|M(STGCONST))
 233: 
 234: /* miscellaneous macros */
 235: 
 236: #define ONEOF(x,y) (M(x) & (y))
 237: #define ISCOMPLEX(z) ONEOF(z, MSKCOMPLEX)
 238: #define ISREAL(z) ONEOF(z, MSKREAL)
 239: #define ISNUMERIC(z) ONEOF(z, MSKINT|MSKREAL|MSKCOMPLEX)
 240: #define ISICON(z) (z->tag==TCONST && ISINT(z->constblock.vtype))
 241: #define ISCHAR(z) (z->headblock.vtype==TYCHAR)
 242: #define ISINT(z)   ONEOF(z, MSKINT)
 243: #define ISCONST(z) (z->tag==TCONST)
 244: #define ISERROR(z) (z->tag==TERROR)
 245: #define ISPLUSOP(z) (z->tag==TEXPR && z->exprblock.opcode==OPPLUS)
 246: #define ISSTAROP(z) (z->tag==TEXPR && z->exprblock.opcode==OPSTAR)
 247: #define ISONE(z) (ISICON(z) && z->constblock.const.ci==1)
 248: #define INT(z) ONEOF(z, MSKINT|MSKCHAR)
 249: #define ICON(z) mkintcon( (ftnint)(z) )
 250: 
 251: #ifdef ONLY66
 252: #define NO66(s) if(no66flag) err66(s)
 253: #define NOEXT(s)    if(noextflag) errext(s)
 254: #else
 255: #define NO66(s)
 256: #define NOEXT(s)
 257: #endif
 258: 
 259: /* round a up to a multiple of b */
 260: #define roundup(a,b)    ( b * ( (a+b-1)/b) )
 261: 
 262: 
 263: /* optimization buffer slot types */
 264: 
 265: #define SKNULL      0
 266: #define SKIFN       1
 267: #define SKGOTO      2
 268: #define SKLABEL     3
 269: #define SKEQ        4
 270: #define SKCALL      5
 271: #define SKCMGOTO    6
 272: #define SKSTOP      7
 273: #define SKDOHEAD    8
 274: #define SKENDDO     9
 275: #define SKARIF      10
 276: #define SKRETURN    11
 277: #define SKASGOTO    12
 278: #define SKPAUSE     13
 279: #define SKASSIGN    14
 280: #define SKIOIFN     15
 281: #define SKFRTEMP    16

Defined typedef's

charptr defined in line 48; never used
field defined in line 51; never used
flag defined in line 50; never used
ftnint defined in line 52; used 1 times
ptr defined in line 47; used 1 times
  • in line 59

Defined macros

ALLEXPR defined in line 46; never used
ALLOC defined in line 44; never used
ALLOCN defined in line 45; never used
CHNULL defined in line 60; never used
CLBLOCK defined in line 119; never used
CLENTRY defined in line 117; never used
CLMAIN defined in line 118; never used
CLNAMELIST defined in line 121; never used
CLPARAM defined in line 115; never used
CLPROC defined in line 120; never used
CLUNKNOWN defined in line 114; never used
CLVAR defined in line 116; never used
CMACH defined in line 27; never used
CNULL defined in line 58; never used
CTLDO defined in line 134; never used
CTLELSE defined in line 136; never used
CTLIF defined in line 135; never used
DMR defined in line 30; never used
ENULL defined in line 61; never used
GCOS defined in line 24; never used
IBM defined in line 26; never used
ICON defined in line 249; used 3 times
INDATA defined in line 83; never used
INDCL defined in line 82; never used
INEXEC defined in line 84; never used
INSIDE defined in line 81; never used
INT defined in line 248; never used
INTERDATA defined in line 23; never used
INTRBOOL defined in line 200; never used
INTRCONV defined in line 195; never used
INTREND defined in line 194; never used
INTRGEN defined in line 198; never used
INTRMAX defined in line 197; never used
INTRMIN defined in line 196; never used
INTRSPEC defined in line 199; never used
IOBACKSPACE defined in line 218; never used
IOCLOSE defined in line 216; never used
IOENDFILE defined in line 219; never used
IOINQUIRE defined in line 214; never used
IOOPEN defined in line 215; never used
IOREAD defined in line 220; never used
IOREWIND defined in line 217; never used
IOSBAD defined in line 209; never used
IOSFMT defined in line 212; never used
IOSPOSITIONAL defined in line 210; never used
IOSTDERR defined in line 207; never used
IOSTDIN defined in line 205; never used
IOSTDOUT defined in line 206; never used
IOSUNIT defined in line 211; never used
IOWRITE defined in line 221; never used
ISCHAR defined in line 241; never used
ISCOMPLEX defined in line 237; never used
ISCONST defined in line 243; never used
ISERROR defined in line 244; never used
ISICON defined in line 240; used 1 times
ISINT defined in line 242; used 1 times
ISNUMERIC defined in line 239; never used
ISONE defined in line 247; never used
ISPLUSOP defined in line 245; never used
ISREAL defined in line 238; never used
ISSTAROP defined in line 246; never used
LABEXEC defined in line 187; never used
LABFORMAT defined in line 188; never used
LABOTHER defined in line 189; never used
LABUNKNOWN defined in line 186; never used
LOCAL defined in line 53; never used
M defined in line 43; used 15 times
MSKADDR defined in line 227; never used
MSKCHAR defined in line 228; used 1 times
MSKCOMPLEX defined in line 231; used 2 times
MSKINT defined in line 229; used 3 times
MSKLOGICAL defined in line 226; never used
MSKREAL defined in line 230; used 2 times
MSKSTATIC defined in line 232; never used
NO defined in line 55; never used
NO66 defined in line 255; never used
NOEXT defined in line 256; never used
ONEOF defined in line 236; used 5 times
OPABS defined in line 170; never used
OPADDR defined in line 173; never used
OPAND defined in line 148; never used
OPASSIGN defined in line 161; never used
OPBITAND defined in line 176; never used
OPBITNOT defined in line 178; never used
OPBITOR defined in line 175; never used
OPBITXOR defined in line 177; never used
OPCALL defined in line 159; never used
OPCCALL defined in line 160; never used
OPCOLON defined in line 169; never used
OPCOMMA defined in line 167; never used
OPCONCAT defined in line 152; never used
OPCONV defined in line 164; never used
OPEQ defined in line 154; never used
OPEQV defined in line 149; never used
OPGE defined in line 158; never used
OPGT defined in line 155; never used
OPINDIRECT defined in line 174; never used
OPLE defined in line 156; never used
OPLSHIFT defined in line 165; never used
OPLT defined in line 153; never used
OPMAX defined in line 172; never used
OPMIN defined in line 171; never used
OPMINUS defined in line 142; never used
OPMOD defined in line 166; never used
OPNE defined in line 157; never used
OPNEG defined in line 146; never used
OPNEQV defined in line 150; never used
OPNOT defined in line 151; never used
OPOR defined in line 147; never used
OPPAREN defined in line 180; never used
OPPLUS defined in line 141; used 1 times
OPPLUSEQ defined in line 162; never used
OPPOWER defined in line 145; never used
OPQUEST defined in line 168; never used
OPRSHIFT defined in line 179; never used
OPSLASH defined in line 144; never used
OPSTAR defined in line 143; used 1 times
OPSTAREQ defined in line 163; never used
OPUNARYPLUS defined in line 181; never used
OUTSIDE defined in line 80; never used
PCC defined in line 31; never used
PDP11 defined in line 25; never used
PEXTERNAL defined in line 127; never used
PINTRINSIC defined in line 128; never used
PNULL defined in line 59; never used
PROCBLOCK defined in line 89; never used
PROCFUNCT defined in line 91; never used
PROCMAIN defined in line 88; never used
PROCSUBR defined in line 90; never used
PSTFUNCT defined in line 129; never used
PTHISPROC defined in line 130; never used
PUNKNOWN defined in line 126; never used
SKARIF defined in line 275; never used
SKASGOTO defined in line 277; never used
SKASSIGN defined in line 279; never used
SKCALL defined in line 270; never used
SKCMGOTO defined in line 271; never used
SKDOHEAD defined in line 273; never used
SKENDDO defined in line 274; never used
SKEQ defined in line 269; never used
SKFRTEMP defined in line 281; never used
SKGOTO defined in line 267; never used
SKIFN defined in line 266; never used
SKIOIFN defined in line 280; never used
SKLABEL defined in line 268; never used
SKNULL defined in line 265; never used
SKPAUSE defined in line 278; never used
SKRETURN defined in line 276; never used
SKSTOP defined in line 272; never used
STGARG defined in line 97; never used
STGAUTO defined in line 98; never used
STGBSS defined in line 99; used 1 times
STGCOMMON defined in line 105; used 1 times
STGCONST defined in line 101; used 1 times
STGEQUIV defined in line 106; used 1 times
STGEXT defined in line 102; never used
STGINIT defined in line 100; used 1 times
STGINTR defined in line 103; never used
STGLENG defined in line 108; never used
STGNULL defined in line 109; never used
STGPREG defined in line 110; never used
STGREG defined in line 107; never used
STGSTFUNCT defined in line 104; never used
STGUNKNOWN defined in line 96; never used
TADDR defined in line 70; never used
TCONST defined in line 68; used 2 times
TERROR defined in line 75; used 1 times
TEXPR defined in line 69; used 2 times
TIMPLDO defined in line 74; never used
TLIST defined in line 73; never used
TNAME defined in line 67; never used
TPRIM defined in line 72; never used
TTEMP defined in line 71; never used
VAX defined in line 28; never used
YES defined in line 56; never used
roundup defined in line 260; never used
Last modified: 1985-08-29
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 801
Valid CSS Valid XHTML 1.0 Strict