|
|
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.