Annotation of 43BSD/usr.bin/f77/include/defines.h, revision 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.