langtools/src/share/classes/sun/tools/javap/Constants.java
changeset 10 06bc494ca11e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/sun/tools/javap/Constants.java	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,372 @@
+/*
+ * Copyright 2002 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+
+package sun.tools.javap;
+
+/**
+ * This interface defines constant that are used
+ * throughout the compiler. It inherits from RuntimeConstants,
+ * which is an autogenerated class that contains contstants
+ * defined in the interpreter.
+ */
+
+public
+interface Constants extends RuntimeConstants {
+
+     /**
+     * End of input
+     */
+    public static final int EOF = -1;
+
+   /*
+     * Flags
+     */
+    public static final int F_VERBOSE           = 1 << 0;
+    public static final int F_DUMP              = 1 << 1;
+    public static final int F_WARNINGS          = 1 << 2;
+    public static final int F_DEBUG             = 1 << 3;
+    public static final int F_OPTIMIZE          = 1 << 4;
+    public static final int F_DEPENDENCIES      = 1 << 5;
+
+    /*
+     * Type codes
+     */
+    public static final int TC_BOOLEAN   = 0;
+    public static final int TC_BYTE      = 1;
+    public static final int TC_CHAR      = 2;
+    public static final int TC_SHORT     = 3;
+    public static final int TC_INT       = 4;
+    public static final int TC_LONG      = 5;
+    public static final int TC_FLOAT     = 6;
+    public static final int TC_DOUBLE    = 7;
+    public static final int TC_NULL      = 8;
+    public static final int TC_ARRAY     = 9;
+    public static final int TC_CLASS     = 10;
+    public static final int TC_VOID      = 11;
+    public static final int TC_METHOD    = 12;
+    public static final int TC_ERROR     = 13;
+
+    /*
+     * Type Masks
+     */
+    public static final int TM_NULL      = 1 << TC_NULL;
+    public static final int TM_VOID      = 1 << TC_VOID;
+    public static final int TM_BOOLEAN   = 1 << TC_BOOLEAN;
+    public static final int TM_BYTE      = 1 << TC_BYTE;
+    public static final int TM_CHAR      = 1 << TC_CHAR;
+    public static final int TM_SHORT     = 1 << TC_SHORT;
+    public static final int TM_INT       = 1 << TC_INT;
+    public static final int TM_LONG      = 1 << TC_LONG;
+    public static final int TM_FLOAT     = 1 << TC_FLOAT;
+    public static final int TM_DOUBLE    = 1 << TC_DOUBLE;
+    public static final int TM_ARRAY     = 1 << TC_ARRAY;
+    public static final int TM_CLASS     = 1 << TC_CLASS;
+    public static final int TM_METHOD    = 1 << TC_METHOD;
+    public static final int TM_ERROR     = 1 << TC_ERROR;
+
+    public static final int TM_INT32     = TM_BYTE | TM_SHORT | TM_CHAR | TM_INT;
+    public static final int TM_NUM32     = TM_INT32 | TM_FLOAT;
+    public static final int TM_NUM64     = TM_LONG | TM_DOUBLE;
+    public static final int TM_INTEGER   = TM_INT32 | TM_LONG;
+    public static final int TM_REAL      = TM_FLOAT | TM_DOUBLE;
+    public static final int TM_NUMBER    = TM_INTEGER | TM_REAL;
+    public static final int TM_REFERENCE = TM_ARRAY | TM_CLASS | TM_NULL;
+
+    /*
+     * Class status
+     */
+    public static final int CS_UNDEFINED        = 0;
+    public static final int CS_UNDECIDED        = 1;
+    public static final int CS_BINARY           = 2;
+    public static final int CS_SOURCE           = 3;
+    public static final int CS_PARSED           = 4;
+    public static final int CS_COMPILED         = 5;
+    public static final int CS_NOTFOUND         = 6;
+
+    /*
+     * Attributes
+     */
+    public static final int ATT_ALL             = -1;
+    public static final int ATT_CODE            = 1;
+
+    /*
+     * Number of bits used in file offsets
+     */
+    public static final int OFFSETBITS          = 19;
+    public static final int MAXFILESIZE         = (1 << OFFSETBITS) - 1;
+    public static final int MAXLINENUMBER       = (1 << (32 - OFFSETBITS)) - 1;
+
+    /*
+     * Operators
+     */
+    public final int COMMA              = 0;
+    public final int ASSIGN             = 1;
+
+    public final int ASGMUL             = 2;
+    public final int ASGDIV             = 3;
+    public final int ASGREM             = 4;
+    public final int ASGADD             = 5;
+    public final int ASGSUB             = 6;
+    public final int ASGLSHIFT          = 7;
+    public final int ASGRSHIFT          = 8;
+    public final int ASGURSHIFT         = 9;
+    public final int ASGBITAND          = 10;
+    public final int ASGBITOR           = 11;
+    public final int ASGBITXOR          = 12;
+
+    public final int COND               = 13;
+    public final int OR                 = 14;
+    public final int AND                = 15;
+    public final int BITOR              = 16;
+    public final int BITXOR             = 17;
+    public final int BITAND             = 18;
+    public final int NE                 = 19;
+    public final int EQ                 = 20;
+    public final int GE                 = 21;
+    public final int GT                 = 22;
+    public final int LE                 = 23;
+    public final int LT                 = 24;
+    public final int INSTANCEOF         = 25;
+    public final int LSHIFT             = 26;
+    public final int RSHIFT             = 27;
+    public final int URSHIFT            = 28;
+    public final int ADD                = 29;
+    public final int SUB                = 30;
+    public final int DIV                = 31;
+    public final int REM                = 32;
+    public final int MUL                = 33;
+    public final int CAST               = 34;           // (x)y
+    public final int POS                = 35;           // +x
+    public final int NEG                = 36;           // -x
+    public final int NOT                = 37;
+    public final int BITNOT             = 38;
+    public final int PREINC             = 39;           // ++x
+    public final int PREDEC             = 40;           // --x
+    public final int NEWARRAY           = 41;
+    public final int NEWINSTANCE        = 42;
+    public final int NEWFROMNAME        = 43;
+    public final int POSTINC            = 44;           // x++
+    public final int POSTDEC            = 45;           // x--
+    public final int FIELD              = 46;
+    public final int METHOD             = 47;           // x(y)
+    public final int ARRAYACCESS        = 48;           // x[y]
+    public final int NEW                = 49;
+    public final int INC                = 50;
+    public final int DEC                = 51;
+
+    public final int CONVERT            = 55;           // implicit conversion
+    public final int EXPR               = 56;           // (x)
+    public final int ARRAY              = 57;           // {x, y, ...}
+    public final int GOTO               = 58;
+
+    /*
+     * Value tokens
+     */
+    public final int IDENT              = 60;
+    public final int BOOLEANVAL         = 61;
+    public final int BYTEVAL            = 62;
+    public final int CHARVAL            = 63;
+    public final int SHORTVAL           = 64;
+    public final int INTVAL                     = 65;
+    public final int LONGVAL            = 66;
+    public final int FLOATVAL           = 67;
+    public final int DOUBLEVAL          = 68;
+    public final int STRINGVAL          = 69;
+
+    /*
+     * Type keywords
+     */
+    public final int BYTE               = 70;
+    public final int CHAR               = 71;
+    public final int SHORT              = 72;
+    public final int INT                = 73;
+    public final int LONG               = 74;
+    public final int FLOAT              = 75;
+    public final int DOUBLE             = 76;
+    public final int VOID               = 77;
+    public final int BOOLEAN            = 78;
+
+    /*
+     * Expression keywords
+     */
+    public final int TRUE               = 80;
+    public final int FALSE              = 81;
+    public final int THIS               = 82;
+    public final int SUPER              = 83;
+    public final int NULL               = 84;
+
+    /*
+     * Statement keywords
+     */
+    public final int IF                 = 90;
+    public final int ELSE               = 91;
+    public final int FOR                = 92;
+    public final int WHILE              = 93;
+    public final int DO                 = 94;
+    public final int SWITCH             = 95;
+    public final int CASE               = 96;
+    public final int DEFAULT            = 97;
+    public final int BREAK              = 98;
+    public final int CONTINUE           = 99;
+    public final int RETURN             = 100;
+    public final int TRY                = 101;
+    public final int CATCH              = 102;
+    public final int FINALLY            = 103;
+    public final int THROW              = 104;
+    public final int STAT               = 105;
+    public final int EXPRESSION         = 106;
+    public final int DECLARATION        = 107;
+    public final int VARDECLARATION     = 108;
+
+    /*
+     * Declaration keywords
+     */
+    public final int IMPORT             = 110;
+    public final int CLASS              = 111;
+    public final int EXTENDS            = 112;
+    public final int IMPLEMENTS         = 113;
+    public final int INTERFACE          = 114;
+    public final int PACKAGE            = 115;
+
+    /*
+     * Modifier keywords
+     */
+    public final int PRIVATE    = 120;
+    public final int PUBLIC             = 121;
+    public final int PROTECTED  = 122;
+    public final int CONST              = 123;
+    public final int STATIC             = 124;
+    public final int TRANSIENT          = 125;
+    public final int SYNCHRONIZED       = 126;
+    public final int NATIVE             = 127;
+    public final int FINAL              = 128;
+    public final int VOLATILE   = 129;
+    public final int ABSTRACT   = 130;
+    public final int STRICT             = 165;
+
+    /*
+     * Punctuation
+     */
+    public final int SEMICOLON  = 135;
+    public final int COLON              = 136;
+    public final int QUESTIONMARK       = 137;
+    public final int LBRACE             = 138;
+    public final int RBRACE             = 139;
+    public final int LPAREN             = 140;
+    public final int RPAREN             = 141;
+    public final int LSQBRACKET = 142;
+    public final int RSQBRACKET = 143;
+    public final int THROWS     = 144;
+
+    /*
+     * Special tokens
+     */
+    public final int ERROR              = 145;          // an error
+    public final int COMMENT    = 146;          // not used anymore.
+    public final int TYPE               = 147;
+    public final int LENGTH             = 148;
+    public final int INLINERETURN       = 149;
+    public final int INLINEMETHOD       = 150;
+    public final int INLINENEWINSTANCE  = 151;
+
+    /*
+     * Added for jasm
+     */
+        public final int METHODREF      = 152;
+        public final int FIELDREF       = 153;
+    public final int STACK              = 154;
+    public final int LOCAL              = 155;
+    public final int CPINDEX    = 156;
+    public final int CPNAME             = 157;
+    public final int SIGN               = 158;
+    public final int BITS               = 159;
+    public final int INF                = 160;
+    public final int NAN                = 161;
+    public final int INNERCLASS = 162;
+    public final int OF         = 163;
+    public final int SYNTHETIC          = 164;
+// last used=165;
+
+   /*
+     * Operator precedence
+     */
+    public static final int opPrecedence[] = {
+        10,     11,     11,     11,     11,     11,     11,     11,     11,     11,
+        11,     11,     11,     12,     13,     14,     15,     16,     17,     18,
+        18,     19,     19,     19,     19,     19,     20,     20,     20,     21,
+        21,     22,     22,     22,     23,     24,     24,     24,     24,     24,
+        24,     25,     25,     26,     26,     26,     26,     26,     26
+    };
+
+    /*
+     * Operator names
+     */
+    public static final String opNames[] = {
+        ",",            "=",            "*=",           "/=",           "%=",
+        "+=",           "-=",           "<<=",          ">>=",          "<<<=",
+        "&=",           "|=",           "^=",           "?:",           "||",
+        "&&",           "|",            "^",            "&",            "!=",
+        "==",           ">=",           ">",            "<=",           "<",
+        "instanceof",   "<<",           ">>",           "<<<",          "+",
+        "-",            "/",            "%",            "*",            "cast",
+        "+",            "-",            "!",            "~",            "++",
+        "--",           "new",          "new",          "new",          "++",
+        "--",           "field",        "method",       "[]",           "new",
+        "++",           "--",           null,           null,           null,
+
+        "convert",      "expr",         "array",        "goto",         null,
+
+        "Identifier",   "Boolean",      "Byte",         "Char",         "Short",
+        "Integer",              "Long",         "Float",        "Double",       "String",
+
+        "byte",         "char",         "short",        "int",          "long",
+        "float",        "double",       "void",         "boolean",      null,
+
+        "true",         "false",        "this",         "super",        "null",
+        null,           null,           null,           null,           null,
+
+        "if",           "else",         "for",          "while",        "do",
+        "switch",       "case",         "default",      "break",        "continue",
+        "return",       "try",          "catch",        "finally",      "throw",
+        "stat",         "expression",   "declaration",  "declaration",  null,
+
+        "import",       "class",        "extends",      "implements",   "interface",
+        "package",      null,           null,           null,           null,
+
+        "private",      "public",       "protected",    "const",        "static",
+        "transient",    "synchronized", "native",       "final",        "volatile",
+        "abstract",     null,           null,           null,           null,
+
+        ";",            ":",            "?",            "{",            "}",
+        "(",            ")",            "[",            "]",            "throws",
+        "error",        "comment",      "type",         "length",       "inline-return",
+        "inline-method", "inline-new",
+        "method", "field", "stack", "locals", "CPINDEX", "CPName", "SIGN",
+        "bits", "INF", "NaN", "InnerClass", "of", "synthetic"
+    };
+
+}