|
|
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;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.