Annotation of 43BSD/ucb/pascal/pdx/sym.h, revision 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.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 */

unix.superglobalmegacorp.com

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