# 2.11BSD#431 - /usr/src/ucb/PORT/pascal/pdx/sym.h

       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: 740 |