JavaByteCodeEnumerator.st
branchdirectory_structure_refactoring
changeset 1818 2e5ed72e7dfd
parent 1155 d6f6d5fc0343
child 1864 60a8dc26c8c6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaByteCodeEnumerator.st	Thu Nov 15 22:10:02 2012 +0000
@@ -0,0 +1,148 @@
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+     of one of the above copright owners. For exact set of such code,
+     see the differences between this version and version stx:libjava
+     as of 1.9.2010
+"
+"{ Package: 'stx:libjava' }"
+
+JavaDecompiler subclass:#JavaByteCodeEnumerator
+	instanceVariableNames:'literalAction'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Languages-Java-Support-Decompiling'
+!
+
+!JavaByteCodeEnumerator class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+     of one of the above copright owners. For exact set of such code,
+     see the differences between this version and version stx:libjava
+     as of 1.9.2010
+
+"
+! !
+
+!JavaByteCodeEnumerator methodsFor:'accessing'!
+
+literalAction
+    "return the value of the instance variable 'literalAction' (automatically generated)"
+
+    ^ literalAction
+
+    "Created: / 9.11.1999 / 15:27:37 / cg"
+!
+
+literalAction:something
+    "set the value of the instance variable 'literalAction' (automatically generated)"
+
+    literalAction := something.
+
+    "Created: / 9.11.1999 / 15:27:37 / cg"
+! !
+
+!JavaByteCodeEnumerator methodsFor:'operand decoding'!
+
+constIndexByte
+    lastConstIndex := code at:pc.
+    pc := pc + 1.
+
+    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
+    literalAction notNil ifTrue:[
+        literalAction value:pc-2 value:lastConstIndex value:lastConstant
+    ].
+
+    "Created: / 9.11.1999 / 15:26:42 / cg"
+    "Modified: / 9.11.1999 / 15:29:24 / cg"
+!
+
+constIndexShort
+    lastConstIndex := code wordAt:pc MSB:true.
+    pc := pc + 2.
+
+    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
+
+    literalAction notNil ifTrue:[
+        literalAction value:pc-3 value:lastConstIndex value:lastConstant
+    ].
+
+    "Created: / 9.11.1999 / 15:27:32 / cg"
+    "Modified: / 9.11.1999 / 15:29:31 / cg"
+! !
+
+!JavaByteCodeEnumerator methodsFor:'processing'!
+
+instructionHookPC:pc op:op spec:spec
+"/    self halt.
+
+    "Created: / 9.11.1999 / 15:35:39 / cg"
+    "Modified: / 9.11.1999 / 17:21:18 / cg"
+!
+
+remember_invokeinterface
+"/    self halt.
+
+    "Created: / 9.11.1999 / 17:20:58 / cg"
+    "Modified: / 9.11.1999 / 17:22:04 / cg"
+!
+
+remember_invokenonvirtual
+"/    self halt.
+
+    "Created: / 9.11.1999 / 17:21:06 / cg"
+    "Modified: / 9.11.1999 / 17:21:51 / cg"
+!
+
+remember_invokestatic
+"/    self halt.
+
+    "Modified: / 9.11.1999 / 17:22:00 / cg"
+    "Created: / 9.11.1999 / 17:22:14 / cg"
+!
+
+remember_invokevirtual
+"/    self halt.
+
+    "Created: / 9.11.1999 / 17:21:08 / cg"
+    "Modified: / 9.11.1999 / 17:22:00 / cg"
+! !
+
+!JavaByteCodeEnumerator class methodsFor:'documentation'!
+
+version
+    ^ '$Id$'
+!
+
+version_SVN
+    ^ '$Id$'
+! !