Annotation of 43BSD/usr.bin/f77/include/defines.h, revision 1.1.1.1

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:  *     @(#)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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.