Annotation of 42BSD/usr.bin/f77/src/f77pass1/data.h, revision 1.1.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.