JavaDecompiler.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 30 Aug 2013 12:04:07 +0100
branchdevelopment
changeset 2694 73e08423c72b
parent 2429 ebece4dcaab9
child 2711 a00302fe5083
permissions -rw-r--r--
Fix in GroovyEvaluator: import all used classes when evaluating for inspector of debugger. This makes all classes accessed without fully qualified name (vast majority of code) accessible by the evaluator as well. Otherwise, Groovy won't be able to resolve classes used in the code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
     1
"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
     3
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
     5
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
     8
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
     9
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    10
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    12
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    13
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    14
 hereby transferred.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    15
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    18
     see the differences between this version and version stx:libjava
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    19
     as of 1.9.2010
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    20
"
701
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
    21
"{ Package: 'stx:libjava' }"
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
    22
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
    23
Object subclass:#JavaDecompiler
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    24
	instanceVariableNames:'code pc javaMethod outStream classToCompileFor isStaticMethod
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    25
		lastConstIndex lastConstant accessedInstvars modifiedInstvars
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    26
		accessedStaticVars modifiedStaticVars sentMessages'
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
    27
	classVariableNames:'DecoderTable'
b23a6474754f intitial checkin
cg
parents:
diff changeset
    28
	poolDictionaries:''
2108
ca8c4e7db2e8 category change
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
    29
	category:'Languages-Java-Support-Decompiling'
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
    30
!
b23a6474754f intitial checkin
cg
parents:
diff changeset
    31
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    32
!JavaDecompiler class methodsFor:'documentation'!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    33
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    34
copyright
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    35
"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    36
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    37
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    38
 New code and modifications done at SWING Research Group [1]:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    39
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    40
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    41
                            SWING Research Group, Czech Technical University in Prague
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    42
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    43
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    44
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    45
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    46
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    47
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    48
 hereby transferred.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    49
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    50
 [1] Code written at SWING Research Group contains a signature
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    51
     of one of the above copright owners. For exact set of such code,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    52
     see the differences between this version and version stx:libjava
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    53
     as of 1.9.2010
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
    54
2095
6773680aeb85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 749
diff changeset
    55
"
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    56
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    57
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    58
examples
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    59
"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    60
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    61
                                                                        [exBegin]
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    62
    |m|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    63
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    64
    m := JAVA::java::lang::Object compiledMethodAt:#'toString()Ljava/lang/String;'.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    65
    JavaDecompiler decompile:m to:Transcript.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    66
                                                                        [exEnd]
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    67
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    68
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    69
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    70
                                                                        [exBegin]
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    71
    |m|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    72
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    73
    m := JAVA::java::lang::Object compiledMethodAt:#'toString()Ljava/lang/String;'.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    74
    JavaDecompiler decompile:m to:nil.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    75
                                                                        [exEnd]
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    76
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    77
"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    78
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
    79
! !
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
    80
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
    81
129
f40775af59a5 checkin from browser
cg
parents: 126
diff changeset
    82
!JavaDecompiler class methodsFor:'initialization'!
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
    83
b23a6474754f intitial checkin
cg
parents:
diff changeset
    84
initialize
b23a6474754f intitial checkin
cg
parents:
diff changeset
    85
    DecoderTable := #(
b23a6474754f intitial checkin
cg
parents:
diff changeset
    86
        (nop)                                   "/ 0
b23a6474754f intitial checkin
cg
parents:
diff changeset
    87
        (aconst_null)                           "/ 1
b23a6474754f intitial checkin
cg
parents:
diff changeset
    88
        (iconst_m1)                             "/ 2
b23a6474754f intitial checkin
cg
parents:
diff changeset
    89
        (iconst_0)                              "/ 3
b23a6474754f intitial checkin
cg
parents:
diff changeset
    90
        (iconst_1)                              "/ 4
b23a6474754f intitial checkin
cg
parents:
diff changeset
    91
        (iconst_2)                              "/ 5
b23a6474754f intitial checkin
cg
parents:
diff changeset
    92
        (iconst_3)                              "/ 6
b23a6474754f intitial checkin
cg
parents:
diff changeset
    93
        (iconst_4)                              "/ 7
b23a6474754f intitial checkin
cg
parents:
diff changeset
    94
        (iconst_5)                              "/ 8
b23a6474754f intitial checkin
cg
parents:
diff changeset
    95
        (lconst_0)                              "/ 9
b23a6474754f intitial checkin
cg
parents:
diff changeset
    96
        
b23a6474754f intitial checkin
cg
parents:
diff changeset
    97
        (lconst_1)                              "/ 10
b23a6474754f intitial checkin
cg
parents:
diff changeset
    98
        (fconst_0)                              "/ 11
b23a6474754f intitial checkin
cg
parents:
diff changeset
    99
        (fconst_1)                              "/ 12
b23a6474754f intitial checkin
cg
parents:
diff changeset
   100
        (fconst_2)                              "/ 13
b23a6474754f intitial checkin
cg
parents:
diff changeset
   101
        (dconst_0)                              "/ 14
b23a6474754f intitial checkin
cg
parents:
diff changeset
   102
        (dconst_1)                              "/ 15
b23a6474754f intitial checkin
cg
parents:
diff changeset
   103
        (bipush signedByte)                     "/ 16
b23a6474754f intitial checkin
cg
parents:
diff changeset
   104
        (sipush signedShort)                    "/ 17
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   105
        (ldc1 constIndexByte remember_ldc1)              "/ 18
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   106
        (ldc2 constIndexShort remember_ldc2)             "/ 19
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   107
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   108
        (ldc2w constIndexShort remember_ldc2w)            "/ 20
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   109
        (iload localIndexByte)                  "/ 21
b23a6474754f intitial checkin
cg
parents:
diff changeset
   110
        (lload localIndexByte)                  "/ 22
b23a6474754f intitial checkin
cg
parents:
diff changeset
   111
        (fload localIndexByte)                  "/ 23
b23a6474754f intitial checkin
cg
parents:
diff changeset
   112
        (dload localIndexByte)                  "/ 24
b23a6474754f intitial checkin
cg
parents:
diff changeset
   113
        (aload localIndexByte)                  "/ 25
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
   114
        (iload_0)                               "/ 26
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   115
        (iload_1)                               "/ 27
b23a6474754f intitial checkin
cg
parents:
diff changeset
   116
        (iload_2)                               "/ 28
b23a6474754f intitial checkin
cg
parents:
diff changeset
   117
        (iload_3)                               "/ 29
b23a6474754f intitial checkin
cg
parents:
diff changeset
   118
b23a6474754f intitial checkin
cg
parents:
diff changeset
   119
        (lload_0)                               "/ 30
b23a6474754f intitial checkin
cg
parents:
diff changeset
   120
        (lload_1)                               "/ 31
b23a6474754f intitial checkin
cg
parents:
diff changeset
   121
        (lload_2)                               "/ 32
b23a6474754f intitial checkin
cg
parents:
diff changeset
   122
        (lload_3)                               "/ 33
b23a6474754f intitial checkin
cg
parents:
diff changeset
   123
        (fload_0)                               "/ 34
b23a6474754f intitial checkin
cg
parents:
diff changeset
   124
        (fload_1)                               "/ 35
b23a6474754f intitial checkin
cg
parents:
diff changeset
   125
        (fload_2)                               "/ 36
b23a6474754f intitial checkin
cg
parents:
diff changeset
   126
        (fload_3)                               "/ 37
b23a6474754f intitial checkin
cg
parents:
diff changeset
   127
        (dload_0)                               "/ 38
b23a6474754f intitial checkin
cg
parents:
diff changeset
   128
        (dload_1)                               "/ 39
b23a6474754f intitial checkin
cg
parents:
diff changeset
   129
b23a6474754f intitial checkin
cg
parents:
diff changeset
   130
        (dload_2)                               "/ 40
b23a6474754f intitial checkin
cg
parents:
diff changeset
   131
        (dload_3)                               "/ 41
b23a6474754f intitial checkin
cg
parents:
diff changeset
   132
        (aload_0)                               "/ 42
b23a6474754f intitial checkin
cg
parents:
diff changeset
   133
        (aload_1)                               "/ 43
b23a6474754f intitial checkin
cg
parents:
diff changeset
   134
        (aload_2)                               "/ 44
b23a6474754f intitial checkin
cg
parents:
diff changeset
   135
        (aload_3)                               "/ 45
b23a6474754f intitial checkin
cg
parents:
diff changeset
   136
        (iaload)                                "/ 46
b23a6474754f intitial checkin
cg
parents:
diff changeset
   137
        (laload)                                "/ 47
b23a6474754f intitial checkin
cg
parents:
diff changeset
   138
        (faload)                                "/ 48
b23a6474754f intitial checkin
cg
parents:
diff changeset
   139
        (daload)                                "/ 49
b23a6474754f intitial checkin
cg
parents:
diff changeset
   140
b23a6474754f intitial checkin
cg
parents:
diff changeset
   141
        (aaload)                                "/ 50
b23a6474754f intitial checkin
cg
parents:
diff changeset
   142
        (baload)                                "/ 51
b23a6474754f intitial checkin
cg
parents:
diff changeset
   143
        (caload)                                "/ 52
b23a6474754f intitial checkin
cg
parents:
diff changeset
   144
        (saload)                                "/ 53
b23a6474754f intitial checkin
cg
parents:
diff changeset
   145
        (istore localIndexByte)                 "/ 54
b23a6474754f intitial checkin
cg
parents:
diff changeset
   146
        (lstore localIndexByte)                 "/ 55
b23a6474754f intitial checkin
cg
parents:
diff changeset
   147
        (fstore localIndexByte)                 "/ 56
b23a6474754f intitial checkin
cg
parents:
diff changeset
   148
        (dstore localIndexByte)                 "/ 57
b23a6474754f intitial checkin
cg
parents:
diff changeset
   149
        (astore localIndexByte)                 "/ 58
b23a6474754f intitial checkin
cg
parents:
diff changeset
   150
        (istore_0)                              "/ 59
b23a6474754f intitial checkin
cg
parents:
diff changeset
   151
b23a6474754f intitial checkin
cg
parents:
diff changeset
   152
        (istore_1)                              "/ 60
b23a6474754f intitial checkin
cg
parents:
diff changeset
   153
        (istore_2)                              "/ 61
b23a6474754f intitial checkin
cg
parents:
diff changeset
   154
        (istore_3)                              "/ 62
b23a6474754f intitial checkin
cg
parents:
diff changeset
   155
        (lstore_0)                              "/ 63
b23a6474754f intitial checkin
cg
parents:
diff changeset
   156
        (lstore_1)                              "/ 64
b23a6474754f intitial checkin
cg
parents:
diff changeset
   157
        (lstore_2)                              "/ 65
b23a6474754f intitial checkin
cg
parents:
diff changeset
   158
        (lstore_3)                              "/ 66
b23a6474754f intitial checkin
cg
parents:
diff changeset
   159
        (fstore_0)                              "/ 67
b23a6474754f intitial checkin
cg
parents:
diff changeset
   160
        (fstore_1)                              "/ 68
b23a6474754f intitial checkin
cg
parents:
diff changeset
   161
        (fstore_2)                              "/ 69
b23a6474754f intitial checkin
cg
parents:
diff changeset
   162
b23a6474754f intitial checkin
cg
parents:
diff changeset
   163
        (fstore_3)                              "/ 70
b23a6474754f intitial checkin
cg
parents:
diff changeset
   164
        (dstore_0)                              "/ 71
b23a6474754f intitial checkin
cg
parents:
diff changeset
   165
        (dstore_1)                              "/ 72
b23a6474754f intitial checkin
cg
parents:
diff changeset
   166
        (dstore_2)                              "/ 73
b23a6474754f intitial checkin
cg
parents:
diff changeset
   167
        (dstore_3)                              "/ 74
b23a6474754f intitial checkin
cg
parents:
diff changeset
   168
        (astore_0)                              "/ 75
b23a6474754f intitial checkin
cg
parents:
diff changeset
   169
        (astore_1)                              "/ 76
b23a6474754f intitial checkin
cg
parents:
diff changeset
   170
        (astore_2)                              "/ 77
b23a6474754f intitial checkin
cg
parents:
diff changeset
   171
        (astore_3)                              "/ 78
b23a6474754f intitial checkin
cg
parents:
diff changeset
   172
        (iastore)                               "/ 79
b23a6474754f intitial checkin
cg
parents:
diff changeset
   173
b23a6474754f intitial checkin
cg
parents:
diff changeset
   174
        (lastore)                               "/ 80
b23a6474754f intitial checkin
cg
parents:
diff changeset
   175
        (fastore)                               "/ 81
b23a6474754f intitial checkin
cg
parents:
diff changeset
   176
        (dastore)                               "/ 82
b23a6474754f intitial checkin
cg
parents:
diff changeset
   177
        (aastore)                               "/ 83
b23a6474754f intitial checkin
cg
parents:
diff changeset
   178
        (bastore)                               "/ 84
b23a6474754f intitial checkin
cg
parents:
diff changeset
   179
        (castore)                               "/ 85
b23a6474754f intitial checkin
cg
parents:
diff changeset
   180
        (sastore)                               "/ 86
b23a6474754f intitial checkin
cg
parents:
diff changeset
   181
        (pop)                                   "/ 87
b23a6474754f intitial checkin
cg
parents:
diff changeset
   182
        (pop2)                                  "/ 88
b23a6474754f intitial checkin
cg
parents:
diff changeset
   183
        (dup)                                   "/ 89
b23a6474754f intitial checkin
cg
parents:
diff changeset
   184
b23a6474754f intitial checkin
cg
parents:
diff changeset
   185
        (dup_x1)                                "/ 90
b23a6474754f intitial checkin
cg
parents:
diff changeset
   186
        (dup_x2)                                "/ 91
b23a6474754f intitial checkin
cg
parents:
diff changeset
   187
        (dup2)                                  "/ 92
b23a6474754f intitial checkin
cg
parents:
diff changeset
   188
        (dup2_x1)                               "/ 93
b23a6474754f intitial checkin
cg
parents:
diff changeset
   189
        (dup2_x2)                               "/ 94
b23a6474754f intitial checkin
cg
parents:
diff changeset
   190
        (swap)                                  "/ 95
b23a6474754f intitial checkin
cg
parents:
diff changeset
   191
        (iadd)                                  "/ 96
b23a6474754f intitial checkin
cg
parents:
diff changeset
   192
        (ladd)                                  "/ 97
b23a6474754f intitial checkin
cg
parents:
diff changeset
   193
        (fadd)                                  "/ 98
b23a6474754f intitial checkin
cg
parents:
diff changeset
   194
        (dadd)                                  "/ 99
b23a6474754f intitial checkin
cg
parents:
diff changeset
   195
b23a6474754f intitial checkin
cg
parents:
diff changeset
   196
        (isub)                                  "/ 100
b23a6474754f intitial checkin
cg
parents:
diff changeset
   197
        (lsub)                                  "/ 101
b23a6474754f intitial checkin
cg
parents:
diff changeset
   198
        (fsub)                                  "/ 102
b23a6474754f intitial checkin
cg
parents:
diff changeset
   199
        (dsub)                                  "/ 103
b23a6474754f intitial checkin
cg
parents:
diff changeset
   200
        (imul)                                  "/ 104
b23a6474754f intitial checkin
cg
parents:
diff changeset
   201
        (lmul)                                  "/ 105
b23a6474754f intitial checkin
cg
parents:
diff changeset
   202
        (fmul)                                  "/ 106
b23a6474754f intitial checkin
cg
parents:
diff changeset
   203
        (dmul)                                  "/ 107
b23a6474754f intitial checkin
cg
parents:
diff changeset
   204
        (idiv)                                  "/ 108
b23a6474754f intitial checkin
cg
parents:
diff changeset
   205
        (ldiv)                                  "/ 109
b23a6474754f intitial checkin
cg
parents:
diff changeset
   206
b23a6474754f intitial checkin
cg
parents:
diff changeset
   207
        (fdiv)                                  "/ 110
b23a6474754f intitial checkin
cg
parents:
diff changeset
   208
        (ddiv)                                  "/ 111
91
9b325648aa77 resolve rewritten; interpreter fixes
cg
parents: 68
diff changeset
   209
"/        (imod)                                  "/ 112     "/ obsolete
9b325648aa77 resolve rewritten; interpreter fixes
cg
parents: 68
diff changeset
   210
        (irem)                                  "/ 112
9b325648aa77 resolve rewritten; interpreter fixes
cg
parents: 68
diff changeset
   211
"/        (lmod)                                  "/ 113     "/ obsolete
9b325648aa77 resolve rewritten; interpreter fixes
cg
parents: 68
diff changeset
   212
        (lrem)                                  "/ 113
9b325648aa77 resolve rewritten; interpreter fixes
cg
parents: 68
diff changeset
   213
"/        (fmod)                                  "/ 114     "/ obsolete
9b325648aa77 resolve rewritten; interpreter fixes
cg
parents: 68
diff changeset
   214
        (frem)                                  "/ 114
9b325648aa77 resolve rewritten; interpreter fixes
cg
parents: 68
diff changeset
   215
"/        (dmod)                                  "/ 115     "/ obsolete
9b325648aa77 resolve rewritten; interpreter fixes
cg
parents: 68
diff changeset
   216
        (drem)                                  "/ 115
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   217
        (ineg)                                  "/ 116
b23a6474754f intitial checkin
cg
parents:
diff changeset
   218
        (lneg)                                  "/ 117
b23a6474754f intitial checkin
cg
parents:
diff changeset
   219
        (fneg)                                  "/ 118
b23a6474754f intitial checkin
cg
parents:
diff changeset
   220
        (dneg)                                  "/ 119
b23a6474754f intitial checkin
cg
parents:
diff changeset
   221
b23a6474754f intitial checkin
cg
parents:
diff changeset
   222
        (ishl)                                  "/ 120
b23a6474754f intitial checkin
cg
parents:
diff changeset
   223
        (lshl)                                  "/ 121
b23a6474754f intitial checkin
cg
parents:
diff changeset
   224
        (ishr)                                  "/ 122
b23a6474754f intitial checkin
cg
parents:
diff changeset
   225
        (lshr)                                  "/ 123
b23a6474754f intitial checkin
cg
parents:
diff changeset
   226
        (iushr)                                 "/ 124
b23a6474754f intitial checkin
cg
parents:
diff changeset
   227
        (lushr)                                 "/ 125
b23a6474754f intitial checkin
cg
parents:
diff changeset
   228
        (iand)                                  "/ 126
b23a6474754f intitial checkin
cg
parents:
diff changeset
   229
        (land)                                  "/ 127
b23a6474754f intitial checkin
cg
parents:
diff changeset
   230
        (ior)                                   "/ 128
b23a6474754f intitial checkin
cg
parents:
diff changeset
   231
        (lor)                                   "/ 129
b23a6474754f intitial checkin
cg
parents:
diff changeset
   232
b23a6474754f intitial checkin
cg
parents:
diff changeset
   233
        (ixor)                                  "/ 130
b23a6474754f intitial checkin
cg
parents:
diff changeset
   234
        (lxor)                                  "/ 131
39
20fa5af3b873 checkin from browser
cg
parents: 36
diff changeset
   235
        (iinc localIndexByte signedByte)        "/ 132
68
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   236
        (i2l)                                   "/ 133
44
331e16746ad6 checkin from browser
cg
parents: 41
diff changeset
   237
        (i2f)                                   "/ 134
52
1dc41619b6f8 checkin from browser
cg
parents: 44
diff changeset
   238
        (i2d)                                   "/ 135
44
331e16746ad6 checkin from browser
cg
parents: 41
diff changeset
   239
        (l2i)                                   "/ 136    
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   240
        (l2f)                                   "/ 137
b23a6474754f intitial checkin
cg
parents:
diff changeset
   241
        (l2d)                                   "/ 138
44
331e16746ad6 checkin from browser
cg
parents: 41
diff changeset
   242
        (f2i)                                   "/ 139
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   243
b23a6474754f intitial checkin
cg
parents:
diff changeset
   244
        (f2l)                                   "/ 140
b23a6474754f intitial checkin
cg
parents:
diff changeset
   245
        (f2d)                                   "/ 141
b23a6474754f intitial checkin
cg
parents:
diff changeset
   246
        (d2i)                                   "/ 142
b23a6474754f intitial checkin
cg
parents:
diff changeset
   247
        (d2l)                                   "/ 143
b23a6474754f intitial checkin
cg
parents:
diff changeset
   248
        (d2f)                                   "/ 144
b23a6474754f intitial checkin
cg
parents:
diff changeset
   249
        (int2byte)                              "/ 145
b23a6474754f intitial checkin
cg
parents:
diff changeset
   250
        (int2char)                              "/ 146
b23a6474754f intitial checkin
cg
parents:
diff changeset
   251
        (int2short)                             "/ 147
b23a6474754f intitial checkin
cg
parents:
diff changeset
   252
        (lcmp)                                  "/ 148
b23a6474754f intitial checkin
cg
parents:
diff changeset
   253
        (fcmpl)                                 "/ 149
b23a6474754f intitial checkin
cg
parents:
diff changeset
   254
b23a6474754f intitial checkin
cg
parents:
diff changeset
   255
        (fcmpg)                                 "/ 150
b23a6474754f intitial checkin
cg
parents:
diff changeset
   256
        (dcmpl)                                 "/ 151
b23a6474754f intitial checkin
cg
parents:
diff changeset
   257
        (dcmpg)                                 "/ 152
b23a6474754f intitial checkin
cg
parents:
diff changeset
   258
        (ifeq signedBranchShort)                "/ 153
b23a6474754f intitial checkin
cg
parents:
diff changeset
   259
        (ifne signedBranchShort)                "/ 154
b23a6474754f intitial checkin
cg
parents:
diff changeset
   260
        (iflt signedBranchShort)                "/ 155
b23a6474754f intitial checkin
cg
parents:
diff changeset
   261
        (ifge signedBranchShort)                "/ 156
b23a6474754f intitial checkin
cg
parents:
diff changeset
   262
        (ifgt signedBranchShort)                "/ 157
b23a6474754f intitial checkin
cg
parents:
diff changeset
   263
        (ifle signedBranchShort)                "/ 158
b23a6474754f intitial checkin
cg
parents:
diff changeset
   264
        (if_icmpeq signedBranchShort)           "/ 159
b23a6474754f intitial checkin
cg
parents:
diff changeset
   265
b23a6474754f intitial checkin
cg
parents:
diff changeset
   266
        (if_icmpne signedBranchShort)           "/ 160
b23a6474754f intitial checkin
cg
parents:
diff changeset
   267
        (if_icmplt signedBranchShort)           "/ 161
b23a6474754f intitial checkin
cg
parents:
diff changeset
   268
        (if_icmpge signedBranchShort)           "/ 162
b23a6474754f intitial checkin
cg
parents:
diff changeset
   269
        (if_icmpgt signedBranchShort)           "/ 163
b23a6474754f intitial checkin
cg
parents:
diff changeset
   270
        (if_icmple signedBranchShort)           "/ 164
b23a6474754f intitial checkin
cg
parents:
diff changeset
   271
        (if_acmpeq signedBranchShort)           "/ 165
b23a6474754f intitial checkin
cg
parents:
diff changeset
   272
        (if_acmpne signedBranchShort)           "/ 166
b23a6474754f intitial checkin
cg
parents:
diff changeset
   273
        (goto signedBranchShort)                "/ 167
b23a6474754f intitial checkin
cg
parents:
diff changeset
   274
        (jsr signedBranchShort)                 "/ 168
b23a6474754f intitial checkin
cg
parents:
diff changeset
   275
        (ret localIndexByte)                    "/ 169
b23a6474754f intitial checkin
cg
parents:
diff changeset
   276
b23a6474754f intitial checkin
cg
parents:
diff changeset
   277
        (tableswitch tableSwitchBytes)          "/ 170
b23a6474754f intitial checkin
cg
parents:
diff changeset
   278
        (lookupswitch lookupSwitchBytes)        "/ 171
b23a6474754f intitial checkin
cg
parents:
diff changeset
   279
        (ireturn)                               "/ 172
b23a6474754f intitial checkin
cg
parents:
diff changeset
   280
        (lreturn)                               "/ 173
b23a6474754f intitial checkin
cg
parents:
diff changeset
   281
        (freturn)                               "/ 174
b23a6474754f intitial checkin
cg
parents:
diff changeset
   282
        (dreturn)                               "/ 175
b23a6474754f intitial checkin
cg
parents:
diff changeset
   283
        (areturn)                               "/ 176
b23a6474754f intitial checkin
cg
parents:
diff changeset
   284
        (return)                                "/ 177
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   285
        (getstatic constIndexShort remember_getstatic)               "/ 178
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   286
        (putstatic constIndexShort remember_putstatic)               "/ 179
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   287
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   288
        (getfield constIndexShort remember_getfield)                 "/ 180
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   289
        (putfield constIndexShort remember_putfield)                 "/ 181
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   290
        (invokevirtual constIndexShort remember_invokevirtual)       "/ 182
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   291
        (invokenonvirtual constIndexShort remember_invokenonvirtual) "/ 183
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   292
        (invokestatic constIndexShort remember_invokestatic)         "/ 184
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   293
        (invokeinterface constIndexShort nargsByte reservedByte remember_invokeinterface)          "/ 185
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   294
        (newfromname)                           "/ 186
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   295
        (new constIndexShort remember_new)      "/ 187
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   296
        (newarray arrayTypeByte)                "/ 188
b23a6474754f intitial checkin
cg
parents:
diff changeset
   297
        (anewarray constIndexShort)             "/ 189
b23a6474754f intitial checkin
cg
parents:
diff changeset
   298
b23a6474754f intitial checkin
cg
parents:
diff changeset
   299
        (arraylength)                           "/ 190
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   300
        (athrow remember_athrow)                "/ 191
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   301
        (checkcast constIndexShort)             "/ 192
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   302
        (instanceof constIndexShort)            "/ 193
b23a6474754f intitial checkin
cg
parents:
diff changeset
   303
        (monitorenter)                          "/ 194
b23a6474754f intitial checkin
cg
parents:
diff changeset
   304
        (monitorexit)                           "/ 195
68
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   305
"/        (verifystack)                           "/ 196 obsolete (Alpha release)
198
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   306
        (wide)                                  "/ 196
68
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   307
        (multianewarray constIndexShort dimensionsByte) "/ 197
41
eb7974d88088 checkin from browser
cg
parents: 40
diff changeset
   308
68
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   309
        (ifnull    signedBranchShort)           "/ 198
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   310
        (ifnonnull signedBranchShort)           "/ 199
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   311
68
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   312
        (#'goto_w' signedBranchLong)            "/ 200
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   313
        (#'jsr_w' signedBranchShort)            "/ 201
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   314
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   315
        (breakpoint)                            "/ 202
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   316
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   317
        nil                                     "/ 203
b23a6474754f intitial checkin
cg
parents:
diff changeset
   318
        nil                                     "/ 204
b23a6474754f intitial checkin
cg
parents:
diff changeset
   319
        nil                                     "/ 205
68
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   320
        nil                                     "/ 206
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   321
        nil                                     "/ 207
b23a6474754f intitial checkin
cg
parents:
diff changeset
   322
        nil                                     "/ 208
68
ae0e5262ad38 Beta changes (some insns changed opcodes)
cg
parents: 61
diff changeset
   323
        (#'ret_w' signedBranchShort)            "/ 209
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   324
                                         
b23a6474754f intitial checkin
cg
parents:
diff changeset
   325
        nil                                     "/ 210
b23a6474754f intitial checkin
cg
parents:
diff changeset
   326
        nil                                     "/ 211
b23a6474754f intitial checkin
cg
parents:
diff changeset
   327
        nil                                     "/ 212
b23a6474754f intitial checkin
cg
parents:
diff changeset
   328
        nil                                     "/ 213
b23a6474754f intitial checkin
cg
parents:
diff changeset
   329
        nil                                     "/ 214
b23a6474754f intitial checkin
cg
parents:
diff changeset
   330
        nil                                     "/ 215
b23a6474754f intitial checkin
cg
parents:
diff changeset
   331
        nil                                     "/ 216
b23a6474754f intitial checkin
cg
parents:
diff changeset
   332
        nil                                     "/ 217
b23a6474754f intitial checkin
cg
parents:
diff changeset
   333
        nil                                     "/ 218
b23a6474754f intitial checkin
cg
parents:
diff changeset
   334
        nil                                     "/ 219
b23a6474754f intitial checkin
cg
parents:
diff changeset
   335
b23a6474754f intitial checkin
cg
parents:
diff changeset
   336
        nil                                     "/ 220
b23a6474754f intitial checkin
cg
parents:
diff changeset
   337
        nil                                     "/ 221
b23a6474754f intitial checkin
cg
parents:
diff changeset
   338
        nil                                     "/ 222
b23a6474754f intitial checkin
cg
parents:
diff changeset
   339
        nil                                     "/ 223
b23a6474754f intitial checkin
cg
parents:
diff changeset
   340
        nil                                     "/ 224
b23a6474754f intitial checkin
cg
parents:
diff changeset
   341
        nil                                     "/ 225
b23a6474754f intitial checkin
cg
parents:
diff changeset
   342
        nil                                     "/ 226
b23a6474754f intitial checkin
cg
parents:
diff changeset
   343
        nil                                     "/ 227
b23a6474754f intitial checkin
cg
parents:
diff changeset
   344
        nil                                     "/ 228
b23a6474754f intitial checkin
cg
parents:
diff changeset
   345
        nil                                     "/ 229
b23a6474754f intitial checkin
cg
parents:
diff changeset
   346
                                    
b23a6474754f intitial checkin
cg
parents:
diff changeset
   347
        nil                                     "/ 230
b23a6474754f intitial checkin
cg
parents:
diff changeset
   348
        nil                                     "/ 231
b23a6474754f intitial checkin
cg
parents:
diff changeset
   349
        nil                                     "/ 232
b23a6474754f intitial checkin
cg
parents:
diff changeset
   350
        nil                                     "/ 233
b23a6474754f intitial checkin
cg
parents:
diff changeset
   351
        nil                                     "/ 234
b23a6474754f intitial checkin
cg
parents:
diff changeset
   352
        nil                                     "/ 235
b23a6474754f intitial checkin
cg
parents:
diff changeset
   353
        nil                                     "/ 236
b23a6474754f intitial checkin
cg
parents:
diff changeset
   354
        nil                                     "/ 237
b23a6474754f intitial checkin
cg
parents:
diff changeset
   355
        nil                                     "/ 238
b23a6474754f intitial checkin
cg
parents:
diff changeset
   356
        nil                                     "/ 239
b23a6474754f intitial checkin
cg
parents:
diff changeset
   357
b23a6474754f intitial checkin
cg
parents:
diff changeset
   358
        nil                                     "/ 240
b23a6474754f intitial checkin
cg
parents:
diff changeset
   359
        nil                                     "/ 241
b23a6474754f intitial checkin
cg
parents:
diff changeset
   360
        nil                                     "/ 242
b23a6474754f intitial checkin
cg
parents:
diff changeset
   361
        nil                                     "/ 243
b23a6474754f intitial checkin
cg
parents:
diff changeset
   362
        nil                                     "/ 244
b23a6474754f intitial checkin
cg
parents:
diff changeset
   363
        nil                                     "/ 245
b23a6474754f intitial checkin
cg
parents:
diff changeset
   364
        nil                                     "/ 246
b23a6474754f intitial checkin
cg
parents:
diff changeset
   365
        nil                                     "/ 247
b23a6474754f intitial checkin
cg
parents:
diff changeset
   366
        nil                                     "/ 248
b23a6474754f intitial checkin
cg
parents:
diff changeset
   367
        nil                                     "/ 249
b23a6474754f intitial checkin
cg
parents:
diff changeset
   368
                                              
b23a6474754f intitial checkin
cg
parents:
diff changeset
   369
        nil                                     "/ 250
b23a6474754f intitial checkin
cg
parents:
diff changeset
   370
        nil                                     "/ 251
b23a6474754f intitial checkin
cg
parents:
diff changeset
   371
        nil                                     "/ 252
b23a6474754f intitial checkin
cg
parents:
diff changeset
   372
        nil                                     "/ 253
b23a6474754f intitial checkin
cg
parents:
diff changeset
   373
        nil                                     "/ 254
124
e30646ab8a71 *** empty log message ***
cg
parents: 119
diff changeset
   374
        (invokenonvirtual_d constIndexShort)    "/ 255 special - dummy invokenonvirtual
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   375
    )
b23a6474754f intitial checkin
cg
parents:
diff changeset
   376
b23a6474754f intitial checkin
cg
parents:
diff changeset
   377
    "
b23a6474754f intitial checkin
cg
parents:
diff changeset
   378
     JavaDecompiler initialize
b23a6474754f intitial checkin
cg
parents:
diff changeset
   379
    "
b23a6474754f intitial checkin
cg
parents:
diff changeset
   380
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   381
    "Modified: / 16.11.1998 / 15:55:49 / cg"
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   382
! !
b23a6474754f intitial checkin
cg
parents:
diff changeset
   383
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   384
129
f40775af59a5 checkin from browser
cg
parents: 126
diff changeset
   385
!JavaDecompiler class methodsFor:'accessing'!
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   386
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   387
instructionTable
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   388
    ^ DecoderTable
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   389
! !
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   390
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   391
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   392
!JavaDecompiler class methodsFor:'class definition generation'!
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   393
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   394
definitionOf:aJavaClass on:s
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   395
    |pckgName needCR fields staticFields superClass
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   396
     interfaces staticMethods nonStaticMethods
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   397
     accessAttributeStyle codeStyle classNameStyle methodNameStyle|
89fec395f511 color printing
cg
parents: 175
diff changeset
   398
89fec395f511 color printing
cg
parents: 175
diff changeset
   399
    accessAttributeStyle := Java prettyPrintStyle at:#accessAttribute.
89fec395f511 color printing
cg
parents: 175
diff changeset
   400
    codeStyle := Java prettyPrintStyle at:#code.
89fec395f511 color printing
cg
parents: 175
diff changeset
   401
    classNameStyle := Java prettyPrintStyle at:#className.
89fec395f511 color printing
cg
parents: 175
diff changeset
   402
    methodNameStyle := Java prettyPrintStyle at:#className.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   403
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   404
    pckgName := aJavaClass package.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   405
    pckgName ~= 'java' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   406
        s nextPutAll:'package ' , ((pckgName copyFrom: 6) copyReplaceAll:$/ with:$.).
175
68da52e100ab *** empty log message ***
cg
parents: 165
diff changeset
   407
        s nextPutAll:';'; cr; cr.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   408
175
68da52e100ab *** empty log message ***
cg
parents: 165
diff changeset
   409
    ].
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   410
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   411
    needCR := false.
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   412
    s emphasis:accessAttributeStyle.
89fec395f511 color printing
cg
parents: 175
diff changeset
   413
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   414
    aJavaClass isPublic ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   415
       s nextPutAll:'public '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   416
       needCR := true.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   417
    ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   418
    aJavaClass isAbstract ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   419
       s nextPutAll:'abstract '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   420
       needCR := true.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   421
    ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   422
    aJavaClass isFinal ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   423
       s nextPutAll:'final '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   424
       needCR := true.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   425
    ].
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   426
    s emphasis:codeStyle.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   427
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   428
    needCR ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   429
        s cr
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   430
    ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   431
    aJavaClass isInterface ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   432
       s nextPutAll:'interface '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   433
    ] ifFalse:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   434
       s nextPutAll:'class '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   435
    ].
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   436
    s emphasis:classNameStyle; 
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 360
diff changeset
   437
      nextPutAll:aJavaClass lastName; 
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   438
      emphasis:codeStyle; 
89fec395f511 color printing
cg
parents: 175
diff changeset
   439
      space.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   440
    superClass := aJavaClass superclass.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   441
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   442
    (superClass ~~ (JavaVM classNamed:'java/lang/Object')
591
0a52b3e7c77f checkin from browser
cg
parents: 488
diff changeset
   443
    and:[superClass isJavaClass]) ifTrue:[
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   444
        s nextPutAll:'extends '.
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   445
        s emphasis:classNameStyle.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   446
        (superClass package ~= 'java/lang' 
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   447
        and:[superClass package ~= pckgName]) ifTrue:[
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   448
            s nextPutAll:(superClass displayString). 
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   449
        ] ifFalse:[
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 360
diff changeset
   450
            s nextPutAll:(superClass lastName).
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   451
        ].
89fec395f511 color printing
cg
parents: 175
diff changeset
   452
        s emphasis:codeStyle.
89fec395f511 color printing
cg
parents: 175
diff changeset
   453
        s space.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   454
    ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   455
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   456
    (interfaces := aJavaClass interfaces) size > 0 ifTrue:[
165
d524d23e045c checkin from browser
cg
parents: 161
diff changeset
   457
        (aJavaClass isInterface
d524d23e045c checkin from browser
cg
parents: 161
diff changeset
   458
        and:[interfaces size == 1]) ifTrue:[
d524d23e045c checkin from browser
cg
parents: 161
diff changeset
   459
            s nextPutAll:'extends '.
d524d23e045c checkin from browser
cg
parents: 161
diff changeset
   460
        ] ifFalse:[
d524d23e045c checkin from browser
cg
parents: 161
diff changeset
   461
            s nextPutAll:'implements '.
d524d23e045c checkin from browser
cg
parents: 161
diff changeset
   462
        ].
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   463
        interfaces keysAndValuesDo:[:nr :if |
443
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   464
            |nameString|
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   465
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   466
            nr ~~ 1 ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   467
                s nextPutAll:', '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   468
            ].
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   469
            s emphasis:classNameStyle.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   470
            (if package ~= 'java/lang' 
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   471
            and:[if package ~= pckgName]) ifTrue:[
443
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   472
                if isJavaClass ifFalse:[
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   473
                    "/ ought to be an unresolved class ...
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   474
                    nameString := if fullName copyReplaceAll:$/ with:$.
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   475
                ] ifTrue:[
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   476
                    nameString := if displayString
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   477
                ].
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   478
            ] ifFalse:[
443
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   479
                nameString := if lastName
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   480
            ].
443
f5c1f55d8bdb *** empty log message ***
cg
parents: 429
diff changeset
   481
            s nextPutAll:nameString.
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   482
            s emphasis:codeStyle.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   483
        ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   484
        s space.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   485
    ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   486
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   487
    s nextPutAll:'{'; cr.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   488
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   489
    needCR := false.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   490
    staticFields := aJavaClass staticFields.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   491
    staticFields size > 0 ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   492
        needCR := true.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   493
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   494
        staticFields do:[:aField |
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   495
            |type v|
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   496
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   497
            s nextPutAll:'    '.
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   498
            s emphasis:accessAttributeStyle.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   499
            aField isSynthetic ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   500
                s nextPutAll: '/*SYNTHETIC*/ '.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   501
            ].
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   502
            aField isPublic ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   503
                s nextPutAll:'public '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   504
            ] ifFalse:[
487
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   505
                aField isPrivate ifTrue:[
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   506
                    s nextPutAll:'private '.
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   507
                ] ifFalse:[
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   508
                    aField isProtected ifTrue:[
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   509
                        s nextPutAll:'protected '.
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   510
                    ]
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   511
                ]
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   512
            ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   513
            s nextPutAll:'static '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   514
            aField isFinal ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   515
                s nextPutAll:'final '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   516
            ].
488
a010f99aa6f6 *** empty log message ***
cg
parents: 487
diff changeset
   517
            aField isVolatile ifTrue:[
a010f99aa6f6 *** empty log message ***
cg
parents: 487
diff changeset
   518
                s nextPutAll:'volatile '.
a010f99aa6f6 *** empty log message ***
cg
parents: 487
diff changeset
   519
            ].
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   520
            s emphasis:codeStyle.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   521
594
0d5fea9542d3 checkin from browser
cg
parents: 593
diff changeset
   522
            (((type := aField type) startsWith:pckgName) 
0d5fea9542d3 checkin from browser
cg
parents: 593
diff changeset
   523
            or:[type startsWith:(pckgName copyReplaceAll:$/ with:$.)]) ifTrue:[
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   524
                type := type copyFrom:(pckgName size + 1 + 1).
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   525
            ] ifFalse:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   526
                (type startsWith:'java.lang.') ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   527
                    type := type copyFrom:(11).
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   528
                ]
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   529
            ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   530
            type := type copy replaceAll:$/ with:$..
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   531
            s nextPutAll:type; space;
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   532
              nextPutAll:aField name.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   533
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   534
            (v := aField constantValue) notNil ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   535
                s nextPutAll:' = '; nextPutAll:v displayString.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   536
            ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   537
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   538
            s nextPutAll:';'; cr.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   539
            needCR := true.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   540
        ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   541
    ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   542
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   543
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   544
    fields := aJavaClass fields.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   545
    fields size > 0 ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   546
        needCR ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   547
            s cr
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   548
        ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   549
        needCR := true.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   550
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   551
        fields do:[:aField |
593
8e713803c6e6 checkin from browser
cg
parents: 591
diff changeset
   552
            |type v|
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   553
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   554
            s nextPutAll:'    '.
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   555
            s emphasis:accessAttributeStyle.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   556
            aField isPublic ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   557
                s nextPutAll:'public '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   558
            ] ifFalse:[
487
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   559
                aField isPrivate ifTrue:[
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   560
                    s nextPutAll:'private '.
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   561
                ] ifFalse:[
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   562
                    aField isProtected ifTrue:[
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   563
                        s nextPutAll:'protected '.
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   564
                    ]
572b51e5f02c checkin from browser
cg
parents: 456
diff changeset
   565
                ]
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   566
            ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   567
            aField isFinal ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   568
                s nextPutAll:'final '.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   569
            ].
488
a010f99aa6f6 *** empty log message ***
cg
parents: 487
diff changeset
   570
            aField isTransient ifTrue:[
a010f99aa6f6 *** empty log message ***
cg
parents: 487
diff changeset
   571
                s nextPutAll:'transient '.
a010f99aa6f6 *** empty log message ***
cg
parents: 487
diff changeset
   572
            ].
a010f99aa6f6 *** empty log message ***
cg
parents: 487
diff changeset
   573
            aField isVolatile ifTrue:[
a010f99aa6f6 *** empty log message ***
cg
parents: 487
diff changeset
   574
                s nextPutAll:'volatile '.
a010f99aa6f6 *** empty log message ***
cg
parents: 487
diff changeset
   575
            ].
187
89fec395f511 color printing
cg
parents: 175
diff changeset
   576
            s emphasis:codeStyle.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   577
594
0d5fea9542d3 checkin from browser
cg
parents: 593
diff changeset
   578
            (((type := aField type) startsWith:pckgName) 
0d5fea9542d3 checkin from browser
cg
parents: 593
diff changeset
   579
            or:[type startsWith:(pckgName copyReplaceAll:$/ with:$.)]) ifTrue:[
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   580
                type := type copyFrom:(pckgName size + 1 + 1).
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   581
            ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   582
            type := type copy replaceAll:$/ with:$..
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   583
            s nextPutAll:type; space;
593
8e713803c6e6 checkin from browser
cg
parents: 591
diff changeset
   584
              nextPutAll:aField name.
8e713803c6e6 checkin from browser
cg
parents: 591
diff changeset
   585
8e713803c6e6 checkin from browser
cg
parents: 591
diff changeset
   586
            (v := aField constantValue) notNil ifTrue:[
8e713803c6e6 checkin from browser
cg
parents: 591
diff changeset
   587
                s nextPutAll:' = '; nextPutAll:v displayString.
8e713803c6e6 checkin from browser
cg
parents: 591
diff changeset
   588
            ].
8e713803c6e6 checkin from browser
cg
parents: 591
diff changeset
   589
            s nextPutAll:';'; cr.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   590
        ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   591
    ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   592
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   593
    aJavaClass methodDictionary size > 0 ifTrue:[
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   594
        needCR ifTrue:[
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   595
            s cr.
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   596
            needCR := false.
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   597
        ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   598
450
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   599
        staticMethods := OrderedCollection new.
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   600
        nonStaticMethods := OrderedCollection new.
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   601
        "/
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   602
        "/ static methods first ...
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   603
        "/
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   604
        aJavaClass methodDictionary do:[:aMethod |
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   605
            aMethod isJavaMethod ifTrue:[
450
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   606
            |m|
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   607
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   608
            m := aMethod.
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   609
            m isWrapped ifTrue:[
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   610
                m := m originalMethod
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   611
            ].
450
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   612
            m isStatic ifTrue:[
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   613
                staticMethods add:m.
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   614
            ] ifFalse:[
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   615
                nonStaticMethods add:m.
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   616
            ]
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   617
        ].
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   618
450
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   619
        staticMethods notEmpty ifTrue:[
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   620
            staticMethods sort:[:a :b | a name < b name].
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   621
            staticMethods do:[:aMethod |
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   622
                "JV@2011-12-14: method dictionary may contain non-Java methods
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   623
                (proxies, for instance)"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   624
                aMethod isJavaMethod ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   625
                    self methodDefinitionOf:aMethod inPackage:pckgName on:s.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   626
                ]
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   627
            ].
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   628
            s cr.
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   629
        ].
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   630
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   631
        "/
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   632
        "/ instance methods ...
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   633
        "/
450
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   634
        nonStaticMethods notEmpty ifTrue:[
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   635
            nonStaticMethods sort:[:a :b | a name < b name].
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   636
            nonStaticMethods do:[:aMethod |
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   637
                "JV@2011-12-14: method dictionary may contain non-Java methods
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   638
                 (proxies, for instance)"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   639
                aMethod isJavaMethod ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   640
                    self methodDefinitionOf:aMethod inPackage:pckgName on:s.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   641
                ]
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   642
            ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   643
        ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   644
        ]
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   645
    ].
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   646
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   647
    s nextPutAll:'}'; cr.
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   648
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   649
    "Created: / 22-03-1997 / 14:29:37 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   650
    "Modified: / 05-12-1998 / 15:58:37 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   651
    "Modified: / 21-10-2011 / 13:40:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   652
    "Modified: / 31-03-2012 / 00:36:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   653
!
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   654
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   655
methodDefinitionOf: m inPackage: pckgName on: s 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   656
    | aMethod nm  specComponents  accessAttributeStyle  codeStyle  methodNameStyle |
450
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   657
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   658
    aMethod := m.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   659
    m isWrapped ifTrue: [
450
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   660
        aMethod := m originalMethod
4f6899814521 checkin from browser
cg
parents: 445
diff changeset
   661
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   662
    accessAttributeStyle := Java prettyPrintStyle at: #accessAttribute.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   663
    codeStyle := Java prettyPrintStyle at: #code.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   664
    methodNameStyle := Java prettyPrintStyle at: #methodName.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   665
    s nextPutAll: '    '.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   666
    s emphasis: accessAttributeStyle.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   667
    aMethod isSynthetic ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   668
        s nextPutAll: '/*SYNTHETIC*/ '.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   669
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   670
    aMethod isPublic ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   671
        s nextPutAll: 'public '.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   672
    ] ifFalse: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   673
        aMethod isProtected ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   674
            s nextPutAll: 'protected '.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   675
        ] ifFalse: [ s nextPutAll: 'private '. ]
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   676
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   677
    aMethod isFinal ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   678
        s nextPutAll: 'final '.
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   679
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   680
    aMethod isStatic ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   681
        s nextPutAll: 'static '.
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   682
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   683
    aMethod isNative ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   684
        s nextPutAll: 'native '.
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   685
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   686
    aMethod isSynchronized ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   687
        s nextPutAll: 'synchronized '.
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   688
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   689
    s emphasis: codeStyle.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   690
    (nm := aMethod name) = '<init>' ifTrue: [
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 360
diff changeset
   691
        nm := aMethod javaClass lastName.
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   692
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   693
    specComponents := JavaMethod 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   694
                specComponentsWithArgsFromSignature: (aMethod instVarNamed:#descriptor)
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   695
                withName: nm
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   696
                in: (aMethod javaClass package).
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   697
    s nextPutAll: (specComponents at: 1).
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   698
    s space.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   699
    s emphasis: methodNameStyle.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   700
    s nextPutAll: (specComponents at: 2).
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   701
    s emphasis: codeStyle.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   702
    s nextPutAll: ' ('.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   703
    s nextPutAll: (specComponents at: 3).
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   704
    s nextPutAll: ')'.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   705
    aMethod exceptionTable size > 0 ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   706
        s nextPutAll: ' throws '.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   707
        aMethod exceptionTable 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   708
            keysAndValuesDo: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   709
                :index :aClassRef | 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   710
                | nm |
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   711
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   712
                nm := aClassRef name.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   713
                (nm startsWith: pckgName) ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   714
                    nm := nm copyFrom: pckgName size + 2
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   715
                ] ifFalse: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   716
                    (nm startsWith: 'java/lang') ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   717
                        nm := nm copyFrom: 'java/lang' size + 2.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   718
                    ].
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   719
                ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   720
                index ~~ 1 ifTrue: [ s nextPutAll: ', ' ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   721
                s nextPutAll: (nm copyReplaceAll: $/ with: $.)
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   722
            ]
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   723
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   724
    s
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   725
        nextPutAll: ';';
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   726
        cr.
190
9558f26c7a97 checkin from browser
cg
parents: 187
diff changeset
   727
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   728
    "Created: / 01-08-1997 / 12:24:11 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   729
    "Modified: / 14-11-1998 / 00:03:09 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   730
    "Modified: / 04-06-2011 / 17:18:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
   731
    "Modified (format): / 30-03-2012 / 19:52:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
161
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   732
! !
fe93b8ee561e classDef generator
cg
parents: 156
diff changeset
   733
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   734
129
f40775af59a5 checkin from browser
cg
parents: 126
diff changeset
   735
!JavaDecompiler class methodsFor:'decompiling'!
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   736
b23a6474754f intitial checkin
cg
parents:
diff changeset
   737
decompile:aJavaMethod
18
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   738
    self decompile:aJavaMethod to:Transcript
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   739
!
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   740
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   741
decompile:aJavaMethod to:aStream
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   742
    self new decompile:aJavaMethod to:aStream
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   743
! !
b23a6474754f intitial checkin
cg
parents:
diff changeset
   744
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   745
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   746
!JavaDecompiler methodsFor:'decompiling'!
b23a6474754f intitial checkin
cg
parents:
diff changeset
   747
18
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   748
decompile:aJavaMethod to:aStream
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   749
    |who endPC|
18
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   750
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   751
    outStream := aStream.
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   752
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   753
    isStaticMethod := aJavaMethod isStatic.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   754
18
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   755
    who := aJavaMethod who.
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   756
    who notNil ifTrue:[
129
f40775af59a5 checkin from browser
cg
parents: 126
diff changeset
   757
        classToCompileFor := who methodClass.
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   758
        outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   759
            outStream cr.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   760
"/            outStream showCR:'decompiling ' , classToCompileFor name , '>>' , (who methodSelector) , ':'.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   761
            outStream showCR:'decompiling ' , aJavaMethod displayString , ':'.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   762
            isStaticMethod ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   763
                outStream show:'static method'.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   764
            ].
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   765
            outStream cr.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   766
            outStream cr.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   767
        ]
18
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   768
    ].
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   769
b23a6474754f intitial checkin
cg
parents:
diff changeset
   770
    javaMethod := aJavaMethod.
b23a6474754f intitial checkin
cg
parents:
diff changeset
   771
    code := aJavaMethod javaByteCode.
b23a6474754f intitial checkin
cg
parents:
diff changeset
   772
    endPC := code size.
18
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   773
    endPC == 0 ifTrue:[
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   774
        outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   775
            javaMethod isNative ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   776
                outStream nextPutAll:'// native method'; cr
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   777
            ] ifFalse:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   778
                outStream nextPutAll:'{}  // no bytecode'; cr
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   779
            ].
18
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   780
        ].
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   781
        ^ self
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   782
    ].
6c07dc4b1118 checkin from browser
cg
parents: 6
diff changeset
   783
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   784
    self enumerateInstructions.
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   785
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   786
    "Modified: / 9.11.1999 / 15:33:20 / cg"
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   787
!
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   788
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   789
enumerateInstructions
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   790
    |who endPC insn spec op wide|
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   791
198
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   792
    wide := false.
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   793
    pc := 1.
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   794
    endPC := code size.
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   795
    [pc <= endPC] whileTrue:[
b23a6474754f intitial checkin
cg
parents:
diff changeset
   796
        insn := code at:pc.
b23a6474754f intitial checkin
cg
parents:
diff changeset
   797
        pc := pc + 1.
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   798
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   799
        spec := DecoderTable at:(insn + 1).
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   800
        spec isNil ifTrue:[
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   801
            op := '** invalid opcode: ', insn printString, ' **'
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   802
        ] ifFalse:[
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   803
            op := spec at:1
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   804
        ].
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   805
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   806
        outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   807
            outStream 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   808
                show:((pc - 1 - 1) printStringPaddedTo:4); 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   809
                show:' '.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   810
            outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   811
                show:(wide ifTrue:[op , '(w)'] ifFalse:[op]).
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   812
            outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   813
                show:' '.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   814
        ].
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   815
198
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   816
        op == #wide ifTrue:[
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   817
            wide := true.
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   818
        ] ifFalse:[
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   819
            self instructionHookPC:(pc-1) op:op spec:spec.
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   820
198
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   821
            spec notNil ifTrue:[
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   822
                spec from:2 to:spec size do:[:what |
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   823
                    wide ifTrue:[
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   824
                        self perform:(what , '_wide') asSymbol.
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   825
                    ] ifFalse:[
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   826
                        self perform:what
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   827
                    ]
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   828
                ].
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   829
            ].
198
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   830
            wide := false.
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   831
        ].
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   832
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   833
        outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   834
            outStream cr.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   835
        ]
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   836
    ]
b23a6474754f intitial checkin
cg
parents:
diff changeset
   837
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   838
    "Created: / 9.11.1999 / 15:32:49 / cg"
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   839
    "Modified: / 9.11.1999 / 15:36:22 / cg"
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   840
!
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   841
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   842
instructionHookPC:pc op:op spec:spec
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   843
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   844
    "Created: / 9.11.1999 / 15:35:19 / cg"
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   845
! !
b23a6474754f intitial checkin
cg
parents:
diff changeset
   846
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   847
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   848
!JavaDecompiler methodsFor:'operand decoding'!
b23a6474754f intitial checkin
cg
parents:
diff changeset
   849
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   850
arrayTypeByte
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   851
    |hi low index type|
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   852
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   853
    index := code at:pc.
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   854
    pc := pc + 1.
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   855
445
215b2b128be5 checkin from browser
cg
parents: 443
diff changeset
   856
    type := #('T_ARRAY' 'invalid2' 'invalid3' 'T_BOOLEAN'
215b2b128be5 checkin from browser
cg
parents: 443
diff changeset
   857
              'T_CHAR'  'T_FLOAT'  'T_DOUBLE'  'T_BYTE' 
215b2b128be5 checkin from browser
cg
parents: 443
diff changeset
   858
              'T_SHORT' 'T_INT'    'T_LONG' ) at:index ifAbsent:['invalid' , index printString].
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   859
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   860
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   861
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   862
            show:index; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   863
            show:' [';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   864
            show:type;
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   865
            show:']'
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   866
    ]
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   867
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   868
    "Created: / 16.11.1998 / 15:41:47 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   869
    "Modified: / 16.11.1998 / 15:43:27 / cg"
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   870
!
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   871
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   872
constIndexByte
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   873
    lastConstIndex := code at:pc.
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   874
    pc := pc + 1.
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   875
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   876
    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   877
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   878
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   879
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   880
            show:lastConstIndex; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   881
            show:' ['; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   882
            show:(lastConstant ? '??') displayString; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   883
            show:'] '
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   884
    ]
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   885
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   886
    "Created: / 16.11.1998 / 15:42:56 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   887
    "Modified: / 16.11.1998 / 15:58:52 / cg"
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   888
!
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   889
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   890
constIndexShort
701
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
   891
    |s|
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
   892
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   893
    lastConstIndex := code wordAt:pc MSB:true.
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
   894
    pc := pc + 2.
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
   895
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   896
    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   897
    outStream notNil ifTrue:[
701
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
   898
        s := (lastConstant ? '??') displayString.
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
   899
        s isString ifTrue:[
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
   900
            s bitsPerCharacter > 8 ifTrue:[
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
   901
                s := '...a 2-byte string...'
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
   902
            ]
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
   903
        ].
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   904
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   905
            show:lastConstIndex; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   906
            show:' ['; 
701
4d62047c1358 *** empty log message ***
cg
parents: 620
diff changeset
   907
            show:s; 
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   908
            show:'] '
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   909
    ]
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   910
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   911
    "Created: / 16.4.1996 / 15:00:04 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   912
    "Modified: / 16.11.1998 / 15:59:23 / cg"
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   913
!
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   914
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   915
dimensionsByte
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   916
    outStream notNil ifTrue:[
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   917
        outStream show:' dims= '. 
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   918
    ].
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   919
    self unsignedByte
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   920
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   921
    "Modified: / 9.11.1999 / 15:46:06 / cg"
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   922
!
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   923
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   924
localIndexByte
198
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   925
    |index|
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   926
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   927
    index := code at:pc.
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   928
    pc := pc + 1.
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   929
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   930
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   931
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   932
            show:index; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   933
            show:' '
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   934
    ]
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   935
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   936
    "Created: / 16.4.1996 / 15:00:04 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   937
    "Modified: / 16.11.1998 / 15:43:55 / cg"
198
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   938
!
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   939
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   940
localIndexByte_wide
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   941
    |index|
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   942
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   943
    index := code wordAt:pc MSB:true.
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   944
    pc := pc + 2.
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   945
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   946
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   947
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   948
            show:index; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   949
            show:' '
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   950
    ]
198
5543d1079a4a *** empty log message ***
cg
parents: 190
diff changeset
   951
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   952
    "Created: / 4.8.1997 / 19:02:09 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   953
    "Modified: / 16.11.1998 / 15:44:02 / cg"
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   954
!
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
   955
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   956
lookupSwitchBytes
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   957
    |defaultOffset delta nPairs match pc0|
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   958
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   959
    pc0 := pc-1.  "/ i.e. the pc of the tableSwitch op
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   960
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   961
    [(pc-1) \\ 4 ~~ 0] whileTrue:[
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   962
        pc := pc + 1
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   963
    ].
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   964
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   965
    defaultOffset := code signedDoubleWordAt:pc MSB:true.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   966
    pc := pc + 4.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   967
    nPairs := code signedDoubleWordAt:pc MSB:true.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   968
    pc := pc + 4.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   969
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   970
    outStream notNil ifTrue:[
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   971
        outStream show:'n='; show:nPairs; cr.
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
   972
    ].
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   973
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   974
    nPairs timesRepeat:[
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   975
        match := code signedDoubleWordAt:pc MSB:true.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   976
        pc := pc + 4.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   977
        delta := code signedDoubleWordAt:pc MSB:true.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   978
        pc := pc + 4.
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   979
        outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   980
            outStream show:'    '; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   981
                      show:match;
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   982
                      show:' -> ';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   983
                      show:delta;
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   984
                      show:' [';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   985
                      show:(pc0 - 1 + delta);
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   986
                      show:']';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   987
                      cr.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   988
        ]
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   989
    ].
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
   990
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   991
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   992
        outStream show:'    '; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   993
                  show:'default';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   994
                  show:' -> ';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   995
                  show:defaultOffset;
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   996
                  show:' [';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   997
                  show:(pc0 - 1 + defaultOffset);
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   998
                  show:']'.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
   999
    ]
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 229
diff changeset
  1000
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
  1001
    "Modified: / 9.11.1999 / 15:45:50 / cg"
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1002
!
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1003
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1004
nargsByte
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1005
    |byte constants|
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1006
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1007
    byte := code byteAt:pc.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1008
    pc := pc + 1.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1009
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1010
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1011
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1012
            show:byte 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1013
    ]
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1014
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1015
    "Created: / 16.4.1996 / 15:00:04 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1016
    "Modified: / 16.11.1998 / 15:44:34 / cg"
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1017
!
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1018
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1019
reservedByte
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1020
    |byte constants|
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1021
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1022
    byte := code byteAt:pc.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1023
    pc := pc + 1.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1024
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1025
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1026
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1027
            show:byte 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1028
    ]
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1029
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1030
    "Created: / 16.4.1996 / 15:00:04 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1031
    "Modified: / 16.11.1998 / 15:44:42 / cg"
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1032
!
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1033
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
  1034
signedBranchShort
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1035
    |index constants|
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
  1036
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1037
    index := code signedWordAt:pc MSB:true.
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
  1038
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1039
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1040
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1041
            show:index; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1042
            show:' ['; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1043
            show:(pc - 1 + index - 1); 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1044
            show:']'.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1045
    ].
25
735dde512f03 Fix signedBranchShort
stefan
parents: 24
diff changeset
  1046
735dde512f03 Fix signedBranchShort
stefan
parents: 24
diff changeset
  1047
    pc := pc + 2.
23
3e20532cd5bc checkin from browser
cg
parents: 19
diff changeset
  1048
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 229
diff changeset
  1049
    "Created: / 16.4.1996 / 15:00:04 / cg"
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1050
    "Modified: / 16.11.1998 / 15:44:51 / cg"
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1051
!
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1052
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1053
signedByte
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1054
    |byte constants|
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1055
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1056
    byte := code signedByteAt:pc.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1057
    pc := pc + 1.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1058
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1059
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1060
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1061
            show:byte 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1062
    ]
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1063
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1064
    "Created: / 16.4.1996 / 15:00:04 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1065
    "Modified: / 16.11.1998 / 15:44:58 / cg"
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1066
!
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1067
261
d95d5a3cc475 lots of new stuff
cg
parents: 252
diff changeset
  1068
signedByte_wide
d95d5a3cc475 lots of new stuff
cg
parents: 252
diff changeset
  1069
    self signedShort
d95d5a3cc475 lots of new stuff
cg
parents: 252
diff changeset
  1070
d95d5a3cc475 lots of new stuff
cg
parents: 252
diff changeset
  1071
    "Created: / 13.1.1998 / 23:56:36 / cg"
d95d5a3cc475 lots of new stuff
cg
parents: 252
diff changeset
  1072
!
d95d5a3cc475 lots of new stuff
cg
parents: 252
diff changeset
  1073
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1074
signedShort
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1075
    |word constants|
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1076
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1077
    word := code signedWordAt:pc MSB:true.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1078
    pc := pc + 2.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1079
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1080
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1081
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1082
            show:word 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1083
    ]
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1084
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1085
    "Created: / 16.4.1996 / 15:00:04 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1086
    "Modified: / 16.11.1998 / 15:45:06 / cg"
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1087
!
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1088
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1089
tableSwitchBytes
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1090
    |defaultOffset delta low high pc0|
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1091
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1092
    pc0 := pc-1.  "/ i.e. the pc of the tableSwitch op
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1093
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1094
    [(pc-1) \\ 4 ~~ 0] whileTrue:[
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1095
        pc := pc + 1
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1096
    ].
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1097
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1098
    defaultOffset := code signedDoubleWordAt:pc MSB:true.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1099
    pc := pc + 4.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1100
    low := code signedDoubleWordAt:pc MSB:true.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1101
    pc := pc + 4.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1102
    high := code signedDoubleWordAt:pc MSB:true.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1103
    pc := pc + 4.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1104
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
  1105
    outStream notNil ifTrue:[
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
  1106
        outStream cr.
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
  1107
    ].
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1108
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1109
    low to:high do:[:switchValue |
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1110
        delta := code signedDoubleWordAt:pc MSB:true.
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1111
        pc := pc + 4.
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1112
        outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1113
            outStream show:'    '; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1114
                      show:switchValue;
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1115
                      show:' -> ';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1116
                      show:delta;
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1117
                      show:' [';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1118
                      show:(pc0 - 1 + delta);
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1119
                      show:']';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1120
                      cr.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1121
        ].
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1122
    ].
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1123
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1124
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1125
        outStream show:'    '; 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1126
                  show:'default';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1127
                  show:' -> ';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1128
                  show:defaultOffset;
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1129
                  show:' [';
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1130
                  show:(pc0 - 1 + defaultOffset);
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1131
                  show:']'.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1132
    ]
24
4a9822b95fc0 checkin from browser
cg
parents: 23
diff changeset
  1133
620
c19348d8e671 refactored for subclassability
cg
parents: 594
diff changeset
  1134
    "Modified: / 9.11.1999 / 15:44:36 / cg"
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1135
!
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1136
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1137
unsignedByte
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1138
    |byte constants|
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1139
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1140
    byte := code byteAt:pc.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1141
    pc := pc + 1.
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1142
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1143
    outStream notNil ifTrue:[
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1144
        outStream
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1145
            show:byte 
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1146
    ]
27
4560bb77bb36 checkin from browser
cg
parents: 25
diff changeset
  1147
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1148
    "Created: / 16.4.1996 / 15:00:04 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1149
    "Modified: / 16.11.1998 / 15:45:33 / cg"
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
  1150
! !
b23a6474754f intitial checkin
cg
parents:
diff changeset
  1151
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
  1152
229
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1153
!JavaDecompiler methodsFor:'private'!
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1154
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1155
popType:type
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1156
    (type == #long) ifTrue:[
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1157
        ^ self popLong
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1158
    ].
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1159
    type == #double ifTrue:[
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1160
        ^ self popDouble
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1161
    ].
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1162
    ^ self popStack
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1163
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1164
    "Created: 16.8.1997 / 03:14:11 / cg"
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1165
! !
b91c9462ac83 *** empty log message ***
cg
parents: 198
diff changeset
  1166
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
  1167
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1168
!JavaDecompiler methodsFor:'statistics'!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1169
456
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
  1170
remember_athrow
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
  1171
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
  1172
    "Created: / 16.11.1998 / 19:37:32 / cg"
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
  1173
!
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
  1174
454
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1175
remember_getfield
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1176
    |fieldRef|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1177
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1178
    fieldRef := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1179
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1180
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1181
    "Created: / 16.11.1998 / 16:07:58 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1182
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1183
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1184
remember_getstatic
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1185
    |fieldRef|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1186
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1187
    fieldRef := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1188
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1189
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1190
    "Created: / 16.11.1998 / 16:08:06 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1191
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1192
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1193
remember_invokeinterface
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1194
    |mthdRef|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1195
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1196
    mthdRef := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1197
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1198
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1199
    "Created: / 16.11.1998 / 16:07:29 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1200
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1201
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1202
remember_invokenonvirtual
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1203
    |mthdRef|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1204
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1205
    mthdRef := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1206
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1207
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1208
    "Created: / 16.11.1998 / 16:06:49 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1209
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1210
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1211
remember_invokestatic
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1212
    |mthdRef|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1213
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1214
    mthdRef := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1215
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1216
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1217
    "Created: / 16.11.1998 / 16:06:40 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1218
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1219
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1220
remember_invokevirtual
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1221
    |mthdRef|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1222
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1223
    mthdRef := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1224
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1225
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1226
    "Created: / 16.11.1998 / 16:06:32 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1227
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1228
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1229
remember_ldc1
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1230
    |what|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1231
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1232
    what := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1233
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1234
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1235
    "Created: / 16.11.1998 / 16:07:12 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1236
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1237
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1238
remember_ldc2
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1239
    |what|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1240
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1241
    what := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1242
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1243
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1244
    "Created: / 16.11.1998 / 16:07:19 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1245
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1246
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1247
remember_ldc2w
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1248
    |what|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1249
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1250
    what := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1251
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1252
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1253
    "Created: / 16.11.1998 / 16:07:20 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1254
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1255
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1256
remember_new
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1257
    |class|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1258
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1259
    class := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1260
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1261
    "Created: / 16.11.1998 / 15:59:43 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1262
    "Modified: / 16.11.1998 / 16:12:27 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1263
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1264
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1265
remember_putfield
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1266
    |fieldRef|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1267
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1268
    fieldRef := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1269
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1270
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1271
    "Created: / 16.11.1998 / 16:08:00 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1272
!
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1273
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1274
remember_putstatic
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1275
    |fieldRef|
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1276
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1277
    fieldRef := lastConstant.
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1278
    "/ ....
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1279
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1280
    "Created: / 16.11.1998 / 16:08:04 / cg"
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1281
! !
38f590639d65 *** empty log message ***
cg
parents: 450
diff changeset
  1282
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
  1283
129
f40775af59a5 checkin from browser
cg
parents: 126
diff changeset
  1284
!JavaDecompiler class methodsFor:'documentation'!
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
  1285
b23a6474754f intitial checkin
cg
parents:
diff changeset
  1286
version
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
  1287
    ^ '$Header: /cvs/stx/stx/libjava/JavaDecompiler.st,v 1.54 2013-02-25 11:15:31 vrany Exp $'
2256
ee48f7dd70a9 fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2166
diff changeset
  1288
!
ee48f7dd70a9 fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2166
diff changeset
  1289
ee48f7dd70a9 fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2166
diff changeset
  1290
version_CVS
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
  1291
    ^ '$Header: /cvs/stx/stx/libjava/JavaDecompiler.st,v 1.54 2013-02-25 11:15:31 vrany Exp $'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
  1292
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
  1293
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
  1294
version_HG
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
  1295
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
  1296
    ^ '$Changeset: <not expanded> $'
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
  1297
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
  1298
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
  1299
version_SVN
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
  1300
    ^ '§Id§'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
  1301
6
b23a6474754f intitial checkin
cg
parents:
diff changeset
  1302
! !
2108
ca8c4e7db2e8 category change
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  1303
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2256
diff changeset
  1304
2095
6773680aeb85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 749
diff changeset
  1305
JavaDecompiler initialize!