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