duke@1: /* duke@1: * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. duke@1: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. duke@1: * duke@1: * This code is free software; you can redistribute it and/or modify it duke@1: * under the terms of the GNU General Public License version 2 only, as duke@1: * published by the Free Software Foundation. Sun designates this duke@1: * particular file as subject to the "Classpath" exception as provided duke@1: * by Sun in the LICENSE file that accompanied this code. duke@1: * duke@1: * This code is distributed in the hope that it will be useful, but WITHOUT duke@1: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or duke@1: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License duke@1: * version 2 for more details (a copy is included in the LICENSE file that duke@1: * accompanied this code). duke@1: * duke@1: * You should have received a copy of the GNU General Public License version duke@1: * 2 along with this work; if not, write to the Free Software Foundation, duke@1: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. duke@1: * duke@1: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, duke@1: * CA 95054 USA or visit www.sun.com if you need additional information or duke@1: * have any questions. duke@1: */ duke@1: duke@1: package com.sun.tools.javac.code; duke@1: duke@1: duke@1: /** Internal symbol kinds, which distinguish between elements of duke@1: * different subclasses of Symbol. Symbol kinds are organized so they can be duke@1: * or'ed to sets. duke@1: * duke@1: *

This is NOT part of any API supported by Sun Microsystems. If duke@1: * you write code that depends on this, you do so at your own risk. duke@1: * This code and its internal interfaces are subject to change or duke@1: * deletion without notice. duke@1: */ duke@1: public class Kinds { duke@1: duke@1: private Kinds() {} // uninstantiable duke@1: duke@1: /** The empty set of kinds. duke@1: */ duke@1: public final static int NIL = 0; duke@1: duke@1: /** The kind of package symbols. duke@1: */ duke@1: public final static int PCK = 1 << 0; duke@1: duke@1: /** The kind of type symbols (classes, interfaces and type variables). duke@1: */ duke@1: public final static int TYP = 1 << 1; duke@1: duke@1: /** The kind of variable symbols. duke@1: */ duke@1: public final static int VAR = 1 << 2; duke@1: duke@1: /** The kind of values (variables or non-variable expressions), includes VAR. duke@1: */ duke@1: public final static int VAL = (1 << 3) | VAR; duke@1: duke@1: /** The kind of methods. duke@1: */ duke@1: public final static int MTH = 1 << 4; duke@1: duke@1: /** The error kind, which includes all other kinds. duke@1: */ duke@1: public final static int ERR = (1 << 5) - 1; duke@1: duke@1: /** The set of all kinds. duke@1: */ duke@1: public final static int AllKinds = ERR; duke@1: duke@1: /** Kinds for erroneous symbols that complement the above duke@1: */ duke@1: public static final int ERRONEOUS = 1 << 6; duke@1: public static final int AMBIGUOUS = ERRONEOUS+1; // ambiguous reference duke@1: public static final int HIDDEN = ERRONEOUS+2; // hidden method or field duke@1: public static final int STATICERR = ERRONEOUS+3; // nonstatic member from static context duke@1: public static final int ABSENT_VAR = ERRONEOUS+4; // missing variable duke@1: public static final int WRONG_MTHS = ERRONEOUS+5; // methods with wrong arguments duke@1: public static final int WRONG_MTH = ERRONEOUS+6; // one method with wrong arguments duke@1: public static final int ABSENT_MTH = ERRONEOUS+7; // missing method duke@1: public static final int ABSENT_TYP = ERRONEOUS+8; // missing type duke@1: }