|
|
1.1 ! root 1: /* Copyright (c) 1982 Regents of the University of California */ ! 2: ! 3: /* static char sccsid[] = "@(#)sym.h 1.3 2/17/82"; */ ! 4: ! 5: /* ! 6: * This header file declares the variables and routines that ! 7: * are defined within the "sym" subdirectory and that can be ! 8: * accessed from outside. ! 9: */ ! 10: ! 11: SYM *program; ! 12: ! 13: /* ! 14: * attributes ! 15: */ ! 16: ! 17: char *name(); /* symbol string name */ ! 18: char *classname(); /* class name of a symbol */ ! 19: int toknum(); /* token number of reserved word */ ! 20: int tokval(); /* associated token value */ ! 21: int size(); /* size in bytes of a type */ ! 22: SYM *rtype(); /* the reduced type, i.e. no type names */ ! 23: SYM *container(); /* symbol (block) that contains given symbol */ ! 24: ADDRESS codeloc(); /* address of the beginning of a function */ ! 25: ! 26: /* ! 27: * predicates ! 28: */ ! 29: ! 30: BOOLEAN isblock(); /* test if a symbol is a block name */ ! 31: BOOLEAN isbuiltin(); /* test if a symbol is a builtin type */ ! 32: BOOLEAN isparam(); /* test if a symbol is a parameter */ ! 33: BOOLEAN isvarparam(); /* test if a symbol is a var parameter */ ! 34: BOOLEAN isvariable(); /* test if a symbol is a variable */ ! 35: BOOLEAN isambiguous(); /* test if a symbol name is not unique */ ! 36: BOOLEAN compatible(); /* test to see if two types are compatible */ ! 37: BOOLEAN should_print(); /* test if a symbol should be printed */ ! 38: ! 39: SYM *readsym(); /* read in a symbol from object file */ ! 40: SYM *which(); /* find the appropriate symbol of given name */ ! 41: SYM *findsym(); /* find a symbol for a given block */ ! 42: SYM *findclass(); /* find symbol with given class */ ! 43: NODE *dot(); /* construct a tree for the dot operator */ ! 44: NODE *subscript(); /* construct a tree for subscripting */ ! 45: SYM *treetype(); /* return the type of a tree, checking also */ ! 46: evalindex(); /* evaluate a subscript index */ ! 47: unmkstring(); /* free a constant string type */ ! 48: chkboolean(); /* check if a tree is boolean-valued */ ! 49: printdecl(); /* print out a symbol's declaration */ ! 50: printparams(); /* print out values of a fn's parameters */ ! 51: printentry(); /* note entrance of a block */ ! 52: printexit(); /* note exiting from a block */ ! 53: printcall(); /* note call of a function */ ! 54: printval(); /* print an eval result */ ! 55: printv(); /* print the name and value of a variable */ ! 56: printwhich(); /* print the full "path" of an identifier */ ! 57: maketypes(); /* initialize basic types */ ! 58: make_keyword(); /* create a keyword in a given symbol table */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.