JavaByteCodeEnumerator.st
author cg
Tue, 09 Nov 1999 14:57:16 +0000
changeset 621 6d134ca834c5
child 625 b0d1764545b5
permissions -rw-r--r--
initial checkin
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"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    62
    "Modified: / 9.11.1999 / 15:36:49 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    63
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    64
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    65
!JavaByteCodeEnumerator class methodsFor:'documentation'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    66
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    67
version
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    68
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaByteCodeEnumerator.st,v 1.1 1999/11/09 14:57:16 cg Exp $'
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    69
! !