Annotation of coherent/d/bin/bc/bcsymtbl.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *     The typedef type is an enum used to store the type of a symbol.
                      3:  */
                      4: 
                      5: typedef enum {
                      6:        UNDEFINED,      SCALAR,         ARRAY,          FUNCTION
                      7: } type;
                      8: 
                      9: 
                     10: /*
                     11:  *     The typedef func is a struct used to hold all the information
                     12:  *     about a function definition.
                     13:  */
                     14: 
                     15: typedef struct {
                     16:        code    *body;          /* body of function */
                     17:        int     nparams;        /* number of parameters */
                     18:        int     nautos;         /* number of auto variables */
                     19:        int     fcsize;         /* size of function body */
                     20:        type    *types;         /* vector of parameter and auto types */
                     21: } func;
                     22: 
                     23: 
                     24: /*
                     25:  *     The typedef globalv is a union used to store the global value of
                     26:  *     a symbol.
                     27:  */
                     28: 
                     29: typedef union {
                     30:        array   arvalue;
                     31:        rvalue  rvalue;
                     32:        func    fvalue;
                     33: }      globalv;
                     34: 
                     35: 
                     36: /*
                     37:  *     The typedef dicent is a struct used to maintain a string table which
                     38:  *     contains all identifiers ever seen.
                     39:  */
                     40: 
                     41: typedef struct dicent {
                     42:        struct dicent *left, *right;
                     43:        type    globalt, localt;        /* global and local type */
                     44:        globalv globalv;
                     45:        int     localv;                 /* frame pointer offset */
                     46:        char    word[];
                     47: } dicent;

unix.superglobalmegacorp.com

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