javap/src/main/java/org/apidesign/javap/Constants.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 12 Dec 2012 20:35:01 +0100
branchbenchmarks
changeset 313 398110b3eee6
parent 144 b06660b614db
permissions -rw-r--r--
Backed out changeset 5a053b8f40ad: Now when the test finally passed, we can increase the time out again.wq
jtulach@144
     1
/*
jtulach@144
     2
 * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
jtulach@144
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
jtulach@144
     4
 *
jtulach@144
     5
 * This code is free software; you can redistribute it and/or modify it
jtulach@144
     6
 * under the terms of the GNU General Public License version 2 only, as
jtulach@144
     7
 * published by the Free Software Foundation.  Oracle designates this
jtulach@144
     8
 * particular file as subject to the "Classpath" exception as provided
jtulach@144
     9
 * by Oracle in the LICENSE file that accompanied this code.
jtulach@144
    10
 *
jtulach@144
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
jtulach@144
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
jtulach@144
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
jtulach@144
    14
 * version 2 for more details (a copy is included in the LICENSE file that
jtulach@144
    15
 * accompanied this code).
jtulach@144
    16
 *
jtulach@144
    17
 * You should have received a copy of the GNU General Public License version
jtulach@144
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
jtulach@144
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
jtulach@144
    20
 *
jtulach@144
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
jtulach@144
    22
 * or visit www.oracle.com if you need additional information or have any
jtulach@144
    23
 * questions.
jtulach@144
    24
 */
jtulach@144
    25
jtulach@144
    26
jtulach@144
    27
jtulach@167
    28
package org.apidesign.javap;
jtulach@144
    29
jtulach@144
    30
/**
jtulach@144
    31
 * This interface defines constant that are used
jtulach@144
    32
 * throughout the compiler. It inherits from RuntimeConstants,
jtulach@144
    33
 * which is an autogenerated class that contains contstants
jtulach@144
    34
 * defined in the interpreter.
jtulach@144
    35
 */
jtulach@144
    36
jtulach@144
    37
public
jtulach@144
    38
interface Constants extends RuntimeConstants {
jtulach@144
    39
jtulach@144
    40
     /**
jtulach@144
    41
     * End of input
jtulach@144
    42
     */
jtulach@144
    43
    public static final int EOF = -1;
jtulach@144
    44
jtulach@144
    45
   /*
jtulach@144
    46
     * Flags
jtulach@144
    47
     */
jtulach@144
    48
    public static final int F_VERBOSE           = 1 << 0;
jtulach@144
    49
    public static final int F_DUMP              = 1 << 1;
jtulach@144
    50
    public static final int F_WARNINGS          = 1 << 2;
jtulach@144
    51
    public static final int F_DEBUG             = 1 << 3;
jtulach@144
    52
    public static final int F_OPTIMIZE          = 1 << 4;
jtulach@144
    53
    public static final int F_DEPENDENCIES      = 1 << 5;
jtulach@144
    54
jtulach@144
    55
    /*
jtulach@144
    56
     * Type codes
jtulach@144
    57
     */
jtulach@144
    58
    public static final int TC_BOOLEAN   = 0;
jtulach@144
    59
    public static final int TC_BYTE      = 1;
jtulach@144
    60
    public static final int TC_CHAR      = 2;
jtulach@144
    61
    public static final int TC_SHORT     = 3;
jtulach@144
    62
    public static final int TC_INT       = 4;
jtulach@144
    63
    public static final int TC_LONG      = 5;
jtulach@144
    64
    public static final int TC_FLOAT     = 6;
jtulach@144
    65
    public static final int TC_DOUBLE    = 7;
jtulach@144
    66
    public static final int TC_NULL      = 8;
jtulach@144
    67
    public static final int TC_ARRAY     = 9;
jtulach@144
    68
    public static final int TC_CLASS     = 10;
jtulach@144
    69
    public static final int TC_VOID      = 11;
jtulach@144
    70
    public static final int TC_METHOD    = 12;
jtulach@144
    71
    public static final int TC_ERROR     = 13;
jtulach@144
    72
jtulach@144
    73
    /*
jtulach@144
    74
     * Type Masks
jtulach@144
    75
     */
jtulach@144
    76
    public static final int TM_NULL      = 1 << TC_NULL;
jtulach@144
    77
    public static final int TM_VOID      = 1 << TC_VOID;
jtulach@144
    78
    public static final int TM_BOOLEAN   = 1 << TC_BOOLEAN;
jtulach@144
    79
    public static final int TM_BYTE      = 1 << TC_BYTE;
jtulach@144
    80
    public static final int TM_CHAR      = 1 << TC_CHAR;
jtulach@144
    81
    public static final int TM_SHORT     = 1 << TC_SHORT;
jtulach@144
    82
    public static final int TM_INT       = 1 << TC_INT;
jtulach@144
    83
    public static final int TM_LONG      = 1 << TC_LONG;
jtulach@144
    84
    public static final int TM_FLOAT     = 1 << TC_FLOAT;
jtulach@144
    85
    public static final int TM_DOUBLE    = 1 << TC_DOUBLE;
jtulach@144
    86
    public static final int TM_ARRAY     = 1 << TC_ARRAY;
jtulach@144
    87
    public static final int TM_CLASS     = 1 << TC_CLASS;
jtulach@144
    88
    public static final int TM_METHOD    = 1 << TC_METHOD;
jtulach@144
    89
    public static final int TM_ERROR     = 1 << TC_ERROR;
jtulach@144
    90
jtulach@144
    91
    public static final int TM_INT32     = TM_BYTE | TM_SHORT | TM_CHAR | TM_INT;
jtulach@144
    92
    public static final int TM_NUM32     = TM_INT32 | TM_FLOAT;
jtulach@144
    93
    public static final int TM_NUM64     = TM_LONG | TM_DOUBLE;
jtulach@144
    94
    public static final int TM_INTEGER   = TM_INT32 | TM_LONG;
jtulach@144
    95
    public static final int TM_REAL      = TM_FLOAT | TM_DOUBLE;
jtulach@144
    96
    public static final int TM_NUMBER    = TM_INTEGER | TM_REAL;
jtulach@144
    97
    public static final int TM_REFERENCE = TM_ARRAY | TM_CLASS | TM_NULL;
jtulach@144
    98
jtulach@144
    99
    /*
jtulach@144
   100
     * Class status
jtulach@144
   101
     */
jtulach@144
   102
    public static final int CS_UNDEFINED        = 0;
jtulach@144
   103
    public static final int CS_UNDECIDED        = 1;
jtulach@144
   104
    public static final int CS_BINARY           = 2;
jtulach@144
   105
    public static final int CS_SOURCE           = 3;
jtulach@144
   106
    public static final int CS_PARSED           = 4;
jtulach@144
   107
    public static final int CS_COMPILED         = 5;
jtulach@144
   108
    public static final int CS_NOTFOUND         = 6;
jtulach@144
   109
jtulach@144
   110
    /*
jtulach@144
   111
     * Attributes
jtulach@144
   112
     */
jtulach@144
   113
    public static final int ATT_ALL             = -1;
jtulach@144
   114
    public static final int ATT_CODE            = 1;
jtulach@144
   115
jtulach@144
   116
    /*
jtulach@144
   117
     * Number of bits used in file offsets
jtulach@144
   118
     */
jtulach@144
   119
    public static final int OFFSETBITS          = 19;
jtulach@144
   120
    public static final int MAXFILESIZE         = (1 << OFFSETBITS) - 1;
jtulach@144
   121
    public static final int MAXLINENUMBER       = (1 << (32 - OFFSETBITS)) - 1;
jtulach@144
   122
jtulach@144
   123
    /*
jtulach@144
   124
     * Operators
jtulach@144
   125
     */
jtulach@144
   126
    public final int COMMA              = 0;
jtulach@144
   127
    public final int ASSIGN             = 1;
jtulach@144
   128
jtulach@144
   129
    public final int ASGMUL             = 2;
jtulach@144
   130
    public final int ASGDIV             = 3;
jtulach@144
   131
    public final int ASGREM             = 4;
jtulach@144
   132
    public final int ASGADD             = 5;
jtulach@144
   133
    public final int ASGSUB             = 6;
jtulach@144
   134
    public final int ASGLSHIFT          = 7;
jtulach@144
   135
    public final int ASGRSHIFT          = 8;
jtulach@144
   136
    public final int ASGURSHIFT         = 9;
jtulach@144
   137
    public final int ASGBITAND          = 10;
jtulach@144
   138
    public final int ASGBITOR           = 11;
jtulach@144
   139
    public final int ASGBITXOR          = 12;
jtulach@144
   140
jtulach@144
   141
    public final int COND               = 13;
jtulach@144
   142
    public final int OR                 = 14;
jtulach@144
   143
    public final int AND                = 15;
jtulach@144
   144
    public final int BITOR              = 16;
jtulach@144
   145
    public final int BITXOR             = 17;
jtulach@144
   146
    public final int BITAND             = 18;
jtulach@144
   147
    public final int NE                 = 19;
jtulach@144
   148
    public final int EQ                 = 20;
jtulach@144
   149
    public final int GE                 = 21;
jtulach@144
   150
    public final int GT                 = 22;
jtulach@144
   151
    public final int LE                 = 23;
jtulach@144
   152
    public final int LT                 = 24;
jtulach@144
   153
    public final int INSTANCEOF         = 25;
jtulach@144
   154
    public final int LSHIFT             = 26;
jtulach@144
   155
    public final int RSHIFT             = 27;
jtulach@144
   156
    public final int URSHIFT            = 28;
jtulach@144
   157
    public final int ADD                = 29;
jtulach@144
   158
    public final int SUB                = 30;
jtulach@144
   159
    public final int DIV                = 31;
jtulach@144
   160
    public final int REM                = 32;
jtulach@144
   161
    public final int MUL                = 33;
jtulach@144
   162
    public final int CAST               = 34;           // (x)y
jtulach@144
   163
    public final int POS                = 35;           // +x
jtulach@144
   164
    public final int NEG                = 36;           // -x
jtulach@144
   165
    public final int NOT                = 37;
jtulach@144
   166
    public final int BITNOT             = 38;
jtulach@144
   167
    public final int PREINC             = 39;           // ++x
jtulach@144
   168
    public final int PREDEC             = 40;           // --x
jtulach@144
   169
    public final int NEWARRAY           = 41;
jtulach@144
   170
    public final int NEWINSTANCE        = 42;
jtulach@144
   171
    public final int NEWFROMNAME        = 43;
jtulach@144
   172
    public final int POSTINC            = 44;           // x++
jtulach@144
   173
    public final int POSTDEC            = 45;           // x--
jtulach@144
   174
    public final int FIELD              = 46;
jtulach@144
   175
    public final int METHOD             = 47;           // x(y)
jtulach@144
   176
    public final int ARRAYACCESS        = 48;           // x[y]
jtulach@144
   177
    public final int NEW                = 49;
jtulach@144
   178
    public final int INC                = 50;
jtulach@144
   179
    public final int DEC                = 51;
jtulach@144
   180
jtulach@144
   181
    public final int CONVERT            = 55;           // implicit conversion
jtulach@144
   182
    public final int EXPR               = 56;           // (x)
jtulach@144
   183
    public final int ARRAY              = 57;           // {x, y, ...}
jtulach@144
   184
    public final int GOTO               = 58;
jtulach@144
   185
jtulach@144
   186
    /*
jtulach@144
   187
     * Value tokens
jtulach@144
   188
     */
jtulach@144
   189
    public final int IDENT              = 60;
jtulach@144
   190
    public final int BOOLEANVAL         = 61;
jtulach@144
   191
    public final int BYTEVAL            = 62;
jtulach@144
   192
    public final int CHARVAL            = 63;
jtulach@144
   193
    public final int SHORTVAL           = 64;
jtulach@144
   194
    public final int INTVAL                     = 65;
jtulach@144
   195
    public final int LONGVAL            = 66;
jtulach@144
   196
    public final int FLOATVAL           = 67;
jtulach@144
   197
    public final int DOUBLEVAL          = 68;
jtulach@144
   198
    public final int STRINGVAL          = 69;
jtulach@144
   199
jtulach@144
   200
    /*
jtulach@144
   201
     * Type keywords
jtulach@144
   202
     */
jtulach@144
   203
    public final int BYTE               = 70;
jtulach@144
   204
    public final int CHAR               = 71;
jtulach@144
   205
    public final int SHORT              = 72;
jtulach@144
   206
    public final int INT                = 73;
jtulach@144
   207
    public final int LONG               = 74;
jtulach@144
   208
    public final int FLOAT              = 75;
jtulach@144
   209
    public final int DOUBLE             = 76;
jtulach@144
   210
    public final int VOID               = 77;
jtulach@144
   211
    public final int BOOLEAN            = 78;
jtulach@144
   212
jtulach@144
   213
    /*
jtulach@144
   214
     * Expression keywords
jtulach@144
   215
     */
jtulach@144
   216
    public final int TRUE               = 80;
jtulach@144
   217
    public final int FALSE              = 81;
jtulach@144
   218
    public final int THIS               = 82;
jtulach@144
   219
    public final int SUPER              = 83;
jtulach@144
   220
    public final int NULL               = 84;
jtulach@144
   221
jtulach@144
   222
    /*
jtulach@144
   223
     * Statement keywords
jtulach@144
   224
     */
jtulach@144
   225
    public final int IF                 = 90;
jtulach@144
   226
    public final int ELSE               = 91;
jtulach@144
   227
    public final int FOR                = 92;
jtulach@144
   228
    public final int WHILE              = 93;
jtulach@144
   229
    public final int DO                 = 94;
jtulach@144
   230
    public final int SWITCH             = 95;
jtulach@144
   231
    public final int CASE               = 96;
jtulach@144
   232
    public final int DEFAULT            = 97;
jtulach@144
   233
    public final int BREAK              = 98;
jtulach@144
   234
    public final int CONTINUE           = 99;
jtulach@144
   235
    public final int RETURN             = 100;
jtulach@144
   236
    public final int TRY                = 101;
jtulach@144
   237
    public final int CATCH              = 102;
jtulach@144
   238
    public final int FINALLY            = 103;
jtulach@144
   239
    public final int THROW              = 104;
jtulach@144
   240
    public final int STAT               = 105;
jtulach@144
   241
    public final int EXPRESSION         = 106;
jtulach@144
   242
    public final int DECLARATION        = 107;
jtulach@144
   243
    public final int VARDECLARATION     = 108;
jtulach@144
   244
jtulach@144
   245
    /*
jtulach@144
   246
     * Declaration keywords
jtulach@144
   247
     */
jtulach@144
   248
    public final int IMPORT             = 110;
jtulach@144
   249
    public final int CLASS              = 111;
jtulach@144
   250
    public final int EXTENDS            = 112;
jtulach@144
   251
    public final int IMPLEMENTS         = 113;
jtulach@144
   252
    public final int INTERFACE          = 114;
jtulach@144
   253
    public final int PACKAGE            = 115;
jtulach@144
   254
jtulach@144
   255
    /*
jtulach@144
   256
     * Modifier keywords
jtulach@144
   257
     */
jtulach@144
   258
    public final int PRIVATE    = 120;
jtulach@144
   259
    public final int PUBLIC             = 121;
jtulach@144
   260
    public final int PROTECTED  = 122;
jtulach@144
   261
    public final int CONST              = 123;
jtulach@144
   262
    public final int STATIC             = 124;
jtulach@144
   263
    public final int TRANSIENT          = 125;
jtulach@144
   264
    public final int SYNCHRONIZED       = 126;
jtulach@144
   265
    public final int NATIVE             = 127;
jtulach@144
   266
    public final int FINAL              = 128;
jtulach@144
   267
    public final int VOLATILE   = 129;
jtulach@144
   268
    public final int ABSTRACT   = 130;
jtulach@144
   269
    public final int STRICT             = 165;
jtulach@144
   270
jtulach@144
   271
    /*
jtulach@144
   272
     * Punctuation
jtulach@144
   273
     */
jtulach@144
   274
    public final int SEMICOLON  = 135;
jtulach@144
   275
    public final int COLON              = 136;
jtulach@144
   276
    public final int QUESTIONMARK       = 137;
jtulach@144
   277
    public final int LBRACE             = 138;
jtulach@144
   278
    public final int RBRACE             = 139;
jtulach@144
   279
    public final int LPAREN             = 140;
jtulach@144
   280
    public final int RPAREN             = 141;
jtulach@144
   281
    public final int LSQBRACKET = 142;
jtulach@144
   282
    public final int RSQBRACKET = 143;
jtulach@144
   283
    public final int THROWS     = 144;
jtulach@144
   284
jtulach@144
   285
    /*
jtulach@144
   286
     * Special tokens
jtulach@144
   287
     */
jtulach@144
   288
    public final int ERROR              = 145;          // an error
jtulach@144
   289
    public final int COMMENT    = 146;          // not used anymore.
jtulach@144
   290
    public final int TYPE               = 147;
jtulach@144
   291
    public final int LENGTH             = 148;
jtulach@144
   292
    public final int INLINERETURN       = 149;
jtulach@144
   293
    public final int INLINEMETHOD       = 150;
jtulach@144
   294
    public final int INLINENEWINSTANCE  = 151;
jtulach@144
   295
jtulach@144
   296
    /*
jtulach@144
   297
     * Added for jasm
jtulach@144
   298
     */
jtulach@144
   299
        public final int METHODREF      = 152;
jtulach@144
   300
        public final int FIELDREF       = 153;
jtulach@144
   301
    public final int STACK              = 154;
jtulach@144
   302
    public final int LOCAL              = 155;
jtulach@144
   303
    public final int CPINDEX    = 156;
jtulach@144
   304
    public final int CPNAME             = 157;
jtulach@144
   305
    public final int SIGN               = 158;
jtulach@144
   306
    public final int BITS               = 159;
jtulach@144
   307
    public final int INF                = 160;
jtulach@144
   308
    public final int NAN                = 161;
jtulach@144
   309
    public final int INNERCLASS = 162;
jtulach@144
   310
    public final int OF         = 163;
jtulach@144
   311
    public final int SYNTHETIC          = 164;
jtulach@144
   312
// last used=165;
jtulach@144
   313
jtulach@144
   314
   /*
jtulach@144
   315
     * Operator precedence
jtulach@144
   316
     */
jtulach@144
   317
    public static final int opPrecedence[] = {
jtulach@144
   318
        10,     11,     11,     11,     11,     11,     11,     11,     11,     11,
jtulach@144
   319
        11,     11,     11,     12,     13,     14,     15,     16,     17,     18,
jtulach@144
   320
        18,     19,     19,     19,     19,     19,     20,     20,     20,     21,
jtulach@144
   321
        21,     22,     22,     22,     23,     24,     24,     24,     24,     24,
jtulach@144
   322
        24,     25,     25,     26,     26,     26,     26,     26,     26
jtulach@144
   323
    };
jtulach@144
   324
jtulach@144
   325
    /*
jtulach@144
   326
     * Operator names
jtulach@144
   327
     */
jtulach@144
   328
    public static final String opNames[] = {
jtulach@144
   329
        ",",            "=",            "*=",           "/=",           "%=",
jtulach@144
   330
        "+=",           "-=",           "<<=",          ">>=",          "<<<=",
jtulach@144
   331
        "&=",           "|=",           "^=",           "?:",           "||",
jtulach@144
   332
        "&&",           "|",            "^",            "&",            "!=",
jtulach@144
   333
        "==",           ">=",           ">",            "<=",           "<",
jtulach@144
   334
        "instanceof",   "<<",           ">>",           "<<<",          "+",
jtulach@144
   335
        "-",            "/",            "%",            "*",            "cast",
jtulach@144
   336
        "+",            "-",            "!",            "~",            "++",
jtulach@144
   337
        "--",           "new",          "new",          "new",          "++",
jtulach@144
   338
        "--",           "field",        "method",       "[]",           "new",
jtulach@144
   339
        "++",           "--",           null,           null,           null,
jtulach@144
   340
jtulach@144
   341
        "convert",      "expr",         "array",        "goto",         null,
jtulach@144
   342
jtulach@144
   343
        "Identifier",   "Boolean",      "Byte",         "Char",         "Short",
jtulach@144
   344
        "Integer",              "Long",         "Float",        "Double",       "String",
jtulach@144
   345
jtulach@144
   346
        "byte",         "char",         "short",        "int",          "long",
jtulach@144
   347
        "float",        "double",       "void",         "boolean",      null,
jtulach@144
   348
jtulach@144
   349
        "true",         "false",        "this",         "super",        "null",
jtulach@144
   350
        null,           null,           null,           null,           null,
jtulach@144
   351
jtulach@144
   352
        "if",           "else",         "for",          "while",        "do",
jtulach@144
   353
        "switch",       "case",         "default",      "break",        "continue",
jtulach@144
   354
        "return",       "try",          "catch",        "finally",      "throw",
jtulach@144
   355
        "stat",         "expression",   "declaration",  "declaration",  null,
jtulach@144
   356
jtulach@144
   357
        "import",       "class",        "extends",      "implements",   "interface",
jtulach@144
   358
        "package",      null,           null,           null,           null,
jtulach@144
   359
jtulach@144
   360
        "private",      "public",       "protected",    "const",        "static",
jtulach@144
   361
        "transient",    "synchronized", "native",       "final",        "volatile",
jtulach@144
   362
        "abstract",     null,           null,           null,           null,
jtulach@144
   363
jtulach@144
   364
        ";",            ":",            "?",            "{",            "}",
jtulach@144
   365
        "(",            ")",            "[",            "]",            "throws",
jtulach@144
   366
        "error",        "comment",      "type",         "length",       "inline-return",
jtulach@144
   367
        "inline-method", "inline-new",
jtulach@144
   368
        "method", "field", "stack", "locals", "CPINDEX", "CPName", "SIGN",
jtulach@144
   369
        "bits", "INF", "NaN", "InnerClass", "of", "synthetic"
jtulach@144
   370
    };
jtulach@144
   371
jtulach@144
   372
}