Annotation of 43BSDReno/pgrm/pascal/pdx/sym.h, revision 1.1.1.1

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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.