Annotation of researchv10no/cmd/visi/vis.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *      vis.h 1.3
                      3:  *
                      4:  *     Header file for Spreadsheet Program `vis'
                      5:  *
                      6:  *      A. F. Gettier
                      7:  *      Bell Laboratories
                      8:  *      Update made 11/1/82 11:14:53
                      9:  *      Retrieved 11/15/82 13:22:55
                     10:  */
                     11: #define        HELPFILE        "/usr/lib/vis.help"
                     12: 
                     13: #define        DEFWIDTH        10
                     14: #define        DEFSCALE        2
                     15: 
                     16: #define loop   for(;;)
                     17: #define        copystr(x)      strcpy(malloc((unsigned)(strlen(x)+1)),x)
                     18: #define        NODE(x) (struct x *)malloc(sizeof(struct x))
                     19: #define multnode(type,num)      (struct type *)malloc((unsigned)(sizeof(struct type)*num))
                     20: 
                     21: char   *malloc(), *strcpy(), *getexp(), *foldup(), *realloc();
                     22: char   *dtoa(), *getfn(), *mktemp(), *getenv(), *collect();
                     23: char   *cannon(), *strcat(), *strchr(), *makevar(), *strncpy();
                     24: double atof();
                     25: void   pinit(), lexinit(), startlex(), scrinit(), prheading();
                     26: void   hashenter(), hashinit(), qadd(), qempty(), qinit();
                     27: struct node    *qread(), *newnode(), mathop();
                     28: struct node    *getnode();
                     29: struct qheader *qcopy();
                     30: 
                     31: #ifndef TRUE
                     32: #define        TRUE    (1)
                     33: #define        FALSE   0
                     34: #endif
                     35: #define BIG            123456789E35
                     36: /*
                     37:  *     Structures Needed for the Program
                     38:  */
                     39: enum rtntyp { UNDEF, UNRES, NUM, STRING };
                     40: 
                     41: /*
                     42:  *     Structures required for the hashing
                     43:  */
                     44: 
                     45: struct hashentry {
                     46:         char    *symbol;
                     47:        int     key;
                     48:        int     value;
                     49: };
                     50: 
                     51: struct hashhdr {
                     52:         int     size;
                     53:         int     entry;
                     54:         struct hashentry        *table;
                     55: };
                     56: 
                     57: struct reswd {
                     58:        char    *name;
                     59:        int     value;
                     60: };
                     61: 
                     62: /*
                     63:  *     Structures required for the queues
                     64:  */
                     65: 
                     66: struct qheader {
                     67:        struct  qentry  *first;
                     68:        struct  qentry  *last;
                     69: };
                     70: 
                     71: struct qentry {
                     72:        struct node     *nodeptr;
                     73:        struct qentry   *next;
                     74: };
                     75: 
                     76: /*
                     77:  *     Return structure from lexical analysis
                     78:  */
                     79: 
                     80: struct vdef {
                     81:        int     row, col;
                     82:        char    *tval;
                     83: };
                     84: 
                     85: /*
                     86:  *     Parsing Structures
                     87:  */
                     88: 
                     89: struct range {
                     90:        int     fromrow, fromcol;
                     91:        int     torow, tocol;
                     92: };
                     93: 
                     94: struct colstat {
                     95:        int     colnum;
                     96:        int     number
                     97: };
                     98: 
                     99: /*
                    100:  *     Structures required to keep track of the nodes
                    101:  */
                    102: 
                    103: struct rowhdr {
                    104:        int     size;
                    105:        struct rowlabel **table;
                    106: };
                    107: 
                    108: struct colhdr {
                    109:        int     size;
                    110:        struct collabel **table;
                    111: };
                    112: 
                    113: struct rowlabel {
                    114:        int     rownum;
                    115:        int     position;
                    116:        struct node     *next;
                    117: };
                    118: 
                    119: struct collabel {
                    120:        int     colnum;
                    121:        int     position;
                    122:        int     cell;
                    123:        int     width, scale;
                    124:        int     size;
                    125: };
                    126: 
                    127: /*
                    128:  *     NODE STRUCTURE
                    129:  */
                    130: struct node {
                    131:        int     row, col;
                    132:        enum rtntyp     type;
                    133:        double  value;
                    134:        char    *def;
                    135:        char    *svalue;
                    136:        struct node     *next;
                    137:        struct qheader  depend;
                    138: };

unix.superglobalmegacorp.com

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