home *** CD-ROM | disk | FTP | other *** search
- /*
- * @(#)tree.h 1.20 95/04/06 James Gosling
- *
- * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
-
- /*
- * Definitions having to do with the program tree
- */
-
- #ifndef _TREE_H_
- #define _TREE_H_
-
- #include <oobj.h> /* for the definition of unicode */
- #include <typecodes.h>
-
- extern int SkipSourceChecks;
- extern char *progname;
- extern ClassClass **binclasses;
- extern long nbinclasses, sizebinclasses;
- extern int verbose;
- extern int verbosegc;
- extern int verifyclasses;
- extern int noasyncgc;
-
- extern int ImportAcceptable;
- extern int InhibitExecute;
- extern unsigned char **mainstktop;
-
- /* User specifiable attributes */
- #define ACC_PUBLIC 0x0001 /* visible to everyone */
- #define ACC_PRIVATE 0x0002 /* visible only to the defining class */
- #define ACC_PROTECTED 0x0004 /* visible to subclasses */
- #define ACC_STATIC 0x0008 /* instance variable is static */
- #define ACC_FINAL 0x0010 /* no further subclassing, overriding */
- #define ACC_SYNCHRONIZED 0x0020 /* wrap method call in monitor lock */
- #define ACC_THREADSAFE 0x0040 /* can cache in registers */
- #define ACC_TRANSIENT 0x0080 /* not persistant */
- #define ACC_NATIVE 0x0100 /* implemented in C */
- #define ACC_INTERFACE 0x0200 /* class is an interface */
- #define ACC_ABSTRACT 0x0400 /* no definition provided */
- #define ACC_XXUNUSED1 0x0800 /* */
-
- #define ACC_WRITTEN_FLAGS 0x0FFF /* flags actually put in .class file */
-
- /* Other attributes */
- #define ACC_VALKNOWN 0x1000 /* constant with known value */
- #define ACC_DOCED 0x2000 /* documentation generated */
- #define ACC_MACHINE_COMPILED 0x4000 /* compiled to machine code */
- #define ACC_XXUNUSED3 0x8000 /* */
-
- #define IsPrivate(access) (((access) & ACC_PRIVATE) != 0)
- #define IsPublic(access) (((access) & ACC_PUBLIC) != 0)
- #define IsProtected(access) (((access) & ACC_PROTECTED) != 0)
-
- char *addstr(char *s, char *buf, char *limit, char term);
- char *addhex(long n, char *buf, char *limit);
- char *adddec(long n, char *buf, char *limit);
-
- #ifdef TRIMMED
- # undef DEBUG
- # undef STATS
- # define NOLOG
- #endif
-
-
- #endif /* !_TREE_H_ */
-