Annotation of 42BSD/usr.bin/f77/src/f77pass1/data.h, revision 1.1

1.1     ! root        1: 
        !             2: /*  Forms of data list elements  */
        !             3: 
        !             4: #define        SIMPLE  1
        !             5: #define NESTED 2
        !             6: 
        !             7: 
        !             8: /*  data expression block types  */
        !             9: 
        !            10: #define        DVALUE  1
        !            11: #define        DVAR    2
        !            12: #define        DNAME   3
        !            13: #define DEXPR  4
        !            14: #define        DERROR  5
        !            15: 
        !            16: 
        !            17: /*  status codes for integer values  */
        !            18: 
        !            19: #define        NORMAL   1
        !            20: #define MAXPLUS1 2
        !            21: #define MINLESS1 3
        !            22: #define        ERRVAL   4
        !            23: 
        !            24: 
        !            25: 
        !            26: /*  data types for data statements  */
        !            27: 
        !            28: 
        !            29: typedef
        !            30:   struct Dvalue
        !            31:     {
        !            32:       char     tag;
        !            33:       char     status;
        !            34:       ftnint   value;
        !            35:     }
        !            36:   dvalue;
        !            37: 
        !            38: 
        !            39: typedef
        !            40:   struct Dvar
        !            41:     {
        !            42:       char     tag;
        !            43:       struct Dvalue    *valp;
        !            44:     }
        !            45:   dvar;
        !            46: 
        !            47: 
        !            48: typedef
        !            49:   struct Dname
        !            50:     {
        !            51:       char     tag;
        !            52:       int      len;
        !            53:       char     *repr;
        !            54:     }
        !            55:   dname;
        !            56: 
        !            57: 
        !            58: typedef
        !            59:   struct Dexpr
        !            60:     {
        !            61:       char     tag;
        !            62:       char     opcode;
        !            63:       union Vexpr      *left;
        !            64:       union Vexpr      *right;
        !            65:     }
        !            66:   dexpr;
        !            67: 
        !            68: 
        !            69: typedef
        !            70:   struct Derror
        !            71:     {
        !            72:       char     tag;
        !            73:     }
        !            74:   derror;
        !            75: 
        !            76: 
        !            77: typedef
        !            78:   union Vexpr
        !            79:     {
        !            80:       char     tag;
        !            81:       struct Dvalue    dvalue;
        !            82:       struct Dvar      dvar;
        !            83:       struct Dname     dname;
        !            84:       struct Dexpr     dexpr;
        !            85:       struct Derror    derror;
        !            86:     }
        !            87:   vexpr;
        !            88: 
        !            89: 
        !            90: typedef
        !            91:   struct Elist
        !            92:     {
        !            93:       struct Elist     *next;
        !            94:       union Delt       *elt;
        !            95:     }
        !            96:   elist;
        !            97: 
        !            98: 
        !            99: typedef
        !           100:   struct Aelt
        !           101:     {
        !           102:       char     tag;
        !           103:       Namep    var;
        !           104:       struct Vlist     *subs;
        !           105:       struct Rpair     *range;
        !           106:     }
        !           107:   aelt;
        !           108: 
        !           109: 
        !           110: typedef
        !           111:   struct DoList
        !           112:     {
        !           113:       char     tag;
        !           114:       struct Elist     *elts;
        !           115:       union Vexpr      *dovar;
        !           116:       union Vexpr      *init;
        !           117:       union Vexpr      *limit;
        !           118:       union Vexpr      *step;
        !           119:     }
        !           120:   dolist;
        !           121: 
        !           122: 
        !           123: typedef
        !           124:   union Delt
        !           125:     {
        !           126:       char     tag;
        !           127:       struct Aelt      simple;
        !           128:       struct DoList    nested;
        !           129:     }
        !           130:   delt;
        !           131: 
        !           132: 
        !           133: typedef
        !           134:   struct Rpair
        !           135:     {
        !           136:       union Vexpr      *low;
        !           137:       union Vexpr      *high;
        !           138:     }
        !           139:   rpair;
        !           140: 
        !           141: 
        !           142: typedef
        !           143:   struct ValList
        !           144:     {
        !           145:       struct ValList   *next;
        !           146:       char     status;
        !           147:       int      repl;
        !           148:       Constp   value;
        !           149:     }
        !           150:   vallist;
        !           151: 
        !           152: 
        !           153: typedef
        !           154:   struct Vlist
        !           155:     {
        !           156:       struct Vlist     *next;
        !           157:       union Vexpr      *val;
        !           158:     }
        !           159:   vlist;
        !           160: 
        !           161: 
        !           162: typedef
        !           163:   struct DoVars
        !           164:     {
        !           165:       struct DoVars *next;
        !           166:       int len;
        !           167:       char *repr;
        !           168:       dvalue *valp;
        !           169:     }
        !           170:   dovars;
        !           171: 
        !           172: 
        !           173: 
        !           174: /*  Global variables  */
        !           175: 
        !           176: extern int badvalue;
        !           177: extern flag overlapflag;
        !           178: 
        !           179: 
        !           180: /*  Global procedures  */
        !           181: 
        !           182: extern frvexpr();
        !           183: extern frvlist();
        !           184: extern elist *revelist();
        !           185: extern vlist *revvlist();
        !           186: extern vlist *prepvexpr();
        !           187: extern elist *preplval();
        !           188: extern delt *mkdlval();
        !           189: extern delt *mkdatado();
        !           190: extern rpair *mkdrange();
        !           191: extern vallist *mkdrval();
        !           192: extern vexpr *evicon();
        !           193: extern vexpr *mkdname();
        !           194: extern expptr ivaltoicon();
        !           195: extern expptr evparam();
        !           196: extern vexpr *evaldname();
        !           197: extern vexpr *mkdexpr();
        !           198: extern vexpr *addivals();
        !           199: extern vexpr *subivals();
        !           200: extern vexpr *mulivals();
        !           201: extern vexpr *divivals();
        !           202: extern vexpr *powivals();
        !           203: extern vexpr *negival();
        !           204: extern expptr convconst();
        !           205: extern savedata();

unix.superglobalmegacorp.com

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