JavaByteCodeEnumerator.st
author cg
Tue, 09 Nov 1999 17:00:14 +0000
changeset 625 b0d1764545b5
parent 621 6d134ca834c5
child 713 75e92ac63bf1
permissions -rw-r--r--
checkin from browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     1
JavaDecompiler subclass:#JavaByteCodeEnumerator
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     2
	instanceVariableNames:'literalAction'
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     3
	classVariableNames:''
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     4
	poolDictionaries:''
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     5
	category:'Java-Support-Decompiling'
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     6
!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     7
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     8
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     9
!JavaByteCodeEnumerator methodsFor:'accessing'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    10
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    11
literalAction
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    12
    "return the value of the instance variable 'literalAction' (automatically generated)"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    13
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    14
    ^ literalAction
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    15
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    16
    "Created: / 9.11.1999 / 15:27:37 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    17
!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    18
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    19
literalAction:something
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    20
    "set the value of the instance variable 'literalAction' (automatically generated)"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    21
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    22
    literalAction := something.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    23
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    24
    "Created: / 9.11.1999 / 15:27:37 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    25
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    26
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    27
!JavaByteCodeEnumerator methodsFor:'operand decoding'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    28
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    29
constIndexByte
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    30
    lastConstIndex := code at:pc.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    31
    pc := pc + 1.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    32
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    33
    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    34
    literalAction notNil ifTrue:[
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    35
        literalAction value:pc-2 value:lastConstIndex value:lastConstant
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    36
    ].
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    37
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    38
    "Created: / 9.11.1999 / 15:26:42 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    39
    "Modified: / 9.11.1999 / 15:29:24 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    40
!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    41
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    42
constIndexShort
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    43
    lastConstIndex := code wordAt:pc MSB:true.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    44
    pc := pc + 2.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    45
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    46
    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    47
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    48
    literalAction notNil ifTrue:[
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    49
        literalAction value:pc-3 value:lastConstIndex value:lastConstant
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    50
    ].
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    51
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    52
    "Created: / 9.11.1999 / 15:27:32 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    53
    "Modified: / 9.11.1999 / 15:29:31 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    54
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    55
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    56
!JavaByteCodeEnumerator methodsFor:'processing'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    57
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    58
instructionHookPC:pc op:op spec:spec
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    59
"/    self halt.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    60
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    61
    "Created: / 9.11.1999 / 15:35:39 / cg"
625
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    62
    "Modified: / 9.11.1999 / 17:21:18 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    63
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    64
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    65
remember_invokeinterface
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    66
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    67
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    68
    "Created: / 9.11.1999 / 17:20:58 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    69
    "Modified: / 9.11.1999 / 17:22:04 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    70
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    71
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    72
remember_invokenonvirtual
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    73
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    74
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    75
    "Created: / 9.11.1999 / 17:21:06 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    76
    "Modified: / 9.11.1999 / 17:21:51 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    77
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    78
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    79
remember_invokestatic
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    80
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    81
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    82
    "Modified: / 9.11.1999 / 17:22:00 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    83
    "Created: / 9.11.1999 / 17:22:14 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    84
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    85
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    86
remember_invokevirtual
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    87
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    88
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    89
    "Created: / 9.11.1999 / 17:21:08 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    90
    "Modified: / 9.11.1999 / 17:22:00 / cg"
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    91
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    92
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    93
!JavaByteCodeEnumerator class methodsFor:'documentation'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    94
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    95
version
625
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    96
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaByteCodeEnumerator.st,v 1.2 1999/11/09 16:58:16 cg Exp $'
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    97
! !