Artifact 0cdae76d3573ee42b12c37bcd2361f72d930df29a4e5295f2e0600398a4acbd3:
- Executable file
r37/lisp/csl/jlisp/Cp_info.java
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 6540) [annotate] [blame] [check-ins using] [more...]
// amended 02/02/02 so that it actually does something // a lot of code simply copied over from Attribute_info // maybe an idea to make all infos inherit from somewhere=>no copying // maybe more efficient code that way, no duplicates of same code import java.io.*; public class Cp_info { public static void main(String[] args) throws IOException, UnsupportedEncodingException { short cidx = (short)0x4; short ntidx = (short)0xf; CONSTANT_Methodref_info cm = new CONSTANT_Methodref_info(cidx, ntidx); cm.printBytes(cm.dumpBytes()); Jlisp.println("\n"); short cidx2 = (short)0x3; short ntidx2 = (short)0x10; CONSTANT_Methodref_info cm2 = new CONSTANT_Methodref_info(cidx2, ntidx2); cm2.printBytes(cm2.dumpBytes()); Jlisp.println("\n"); short index = (short)0x11; CONSTANT_Class_info ci = new CONSTANT_Class_info(index); ci.printBytes(ci.dumpBytes()); Jlisp.println("\n"); short index2 = (short)0x12; CONSTANT_Class_info ci2 = new CONSTANT_Class_info(index2); ci2.printBytes(ci2.dumpBytes()); Jlisp.println("\n"); String s = "<init>"; CONSTANT_Utf8_info cu = new CONSTANT_Utf8_info(s); cu.printBytes(cu.dumpBytes()); Jlisp.println("\n"); String s1 = "()V"; CONSTANT_Utf8_info cu1 = new CONSTANT_Utf8_info(s1); cu1.printBytes(cu1.dumpBytes()); Jlisp.println("\n"); String s2 = "Code"; CONSTANT_Utf8_info cu2 = new CONSTANT_Utf8_info(s2); cu2.printBytes(cu2.dumpBytes()); Jlisp.println("\n"); String s3 = "LineNumberTable"; CONSTANT_Utf8_info cu3 = new CONSTANT_Utf8_info(s3); cu3.printBytes(cu3.dumpBytes()); Jlisp.println("\n"); String s4 = "main"; CONSTANT_Utf8_info cu4 = new CONSTANT_Utf8_info(s4); cu4.printBytes(cu4.dumpBytes()); Jlisp.println("\n"); String s5 = "([Ljava/lang/String;)V"; CONSTANT_Utf8_info cu5 = new CONSTANT_Utf8_info(s5); cu5.printBytes(cu5.dumpBytes()); Jlisp.println("\n"); String s6 = "trivialMethod"; CONSTANT_Utf8_info cu6 = new CONSTANT_Utf8_info(s6); cu6.printBytes(cu6.dumpBytes()); Jlisp.println("\n"); String s7 = "(I)I"; CONSTANT_Utf8_info cu7 = new CONSTANT_Utf8_info(s7); cu7.printBytes(cu7.dumpBytes()); Jlisp.println("\n"); String s8 = "SourceFile"; CONSTANT_Utf8_info cu8 = new CONSTANT_Utf8_info(s8); cu8.printBytes(cu8.dumpBytes()); Jlisp.println("\n"); String s9 = "Trivial.java"; CONSTANT_Utf8_info cu9 = new CONSTANT_Utf8_info(s9); cu9.printBytes(cu9.dumpBytes()); Jlisp.println("\n"); short nidx = (short)0x5; short didx = (short)0x6; CONSTANT_NameAndType_info cnt = new CONSTANT_NameAndType_info(nidx,didx); cnt.printBytes(cnt.dumpBytes()); Jlisp.println("\n"); short nidx2 = (short)0xb; short didx2 = (short)0xc; CONSTANT_NameAndType_info cnt2 = new CONSTANT_NameAndType_info(nidx2,didx2); cnt2.printBytes(cnt2.dumpBytes()); Jlisp.println("\n"); String s10 = "Trivial"; CONSTANT_Utf8_info cu10 = new CONSTANT_Utf8_info(s10); cu10.printBytes(cu10.dumpBytes()); Jlisp.println("\n"); String s11 = "java/lang/Object"; CONSTANT_Utf8_info cu11 = new CONSTANT_Utf8_info(s11); cu11.printBytes(cu11.dumpBytes()); Jlisp.println("\n"); } static final byte CONSTANT_Class = 0x07; static final byte CONSTANT_Fieldref = 0x09; static final byte CONSTANT_Methodref = 0x0a; static final byte CONSTANT_InterfaceMethodref = 0x0b; static final byte CONSTANT_String = 0x08; static final byte CONSTANT_Integer = 0x03; static final byte CONSTANT_Float = 0x04; static final byte CONSTANT_Long = 0x05; static final byte CONSTANT_Double = 0x06; static final byte CONSTANT_NameAndType = 0x0c; static final byte CONSTANT_Utf8 = 0x01; byte tag; byte info[]; byte[] dumpBytes() { byte[][] Bytes = new byte[2][0]; byte[] tagarray = new byte[1]; tagarray[0] = tag; Bytes[0] = tagarray; Bytes[1] = info; int size = totalArraySize(Bytes); byte[] FlatBytes = new byte[size]; return flatBytes(Bytes); } byte[] flatBytes(byte[][] DArray) { byte[] FlatBytes = new byte[totalArraySize(DArray)]; int k=0; for (int i=0; i<DArray.length; i++) { for (int j=0; j<DArray[i].length; j++) FlatBytes[k++] = DArray[i][j]; } return FlatBytes; } int totalArraySize(byte[][] Bytes) { int k=0; for (int i=0; i<Bytes.length; i++) k+=Bytes[i].length; return k; } public void printBytes(byte[] Bytes) { for (int i=0; i<Bytes.length; i++) { int b = Bytes[i] & 0xff; if ((i+1)%8==0) //prints four bytes per line Jlisp.println(Integer.toHexString(b)); else Jlisp.print(Integer.toHexString(b)+ " "); } } byte[] intToByteArray(int a) { byte[] byteArray = new byte[4]; for (int i=3; i>=0; i--) { byte b = (byte)(a >>> (8*(3-i))); byteArray[i] = b; } return byteArray; } byte[] shortToByteArray(short s) { byte[] byteArray = new byte[2]; for (int i=1; i>=0; i--) { byte b = (byte)(s >>> (8*(1-i))); byteArray[i] = b; } return byteArray; } } // end of Cp_info.java