Annotation of 43BSD/usr.bin/f77/src/f77pass1/data.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:  *     @(#)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();

unix.superglobalmegacorp.com

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