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.1 (Berkeley) 6/6/85
   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: evalindex();            /* evaluate a subscript index */
  51: unmkstring();           /* free a constant string type */
  52: chkboolean();           /* check if a tree is boolean-valued */
  53: printdecl();            /* print out a symbol's declaration */
  54: printparams();          /* print out values of a fn's parameters */
  55: printentry();           /* note entrance of a block */
  56: printexit();            /* note exiting from a block */
  57: printcall();            /* note call of a function */
  58: printval();         /* print an eval result */
  59: printv();           /* print the name and value of a variable */
  60: printwhich();           /* print the full "path" of an identifier */
  61: maketypes();            /* initialize basic types */
  62: make_keyword();         /* create a keyword in a given symbol table */
Last modified: 1985-06-07
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 794
Valid CSS Valid XHTML 1.0 Strict