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