X-Git-Url: http://git.megacz.com/?p=org.ibex.classgen.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2Fpackage.html;h=5a80af9eb6fb863af21ff1427e7a4ea3b6bc8e3a;hp=c921dab5d31a0b92eacb2033cfe0d62402e49b33;hb=76a1336320be6b7dbae29acd341659ed648f9487;hpb=94cebd4c12247ae7fd0a4b0cc66609fead0efece
diff --git a/src/org/ibex/classgen/package.html b/src/org/ibex/classgen/package.html
index c921dab..5a80af9 100644
--- a/src/org/ibex/classgen/package.html
+++ b/src/org/ibex/classgen/package.html
@@ -3,46 +3,46 @@ Example Usage:
The following:
- ClassGen cg = new ClassGen("Test1","java.lang.Object",ACC_PUBLIC|ACC_SUPER); - - FieldGen fg = cg.addField("message",Type.STRING,ACC_PRIVATE|ACC_STATIC); - fg.setConstantValue("Hello, World"); - - MethodGen mg = cg.addMethod("main",Type.VOID,new Type[]{Type.arrayType(Type.STRING)},ACC_STATIC|ACC_PUBLIC); - mg.add(LDC,10); - mg.add(ISTORE_0); - - int top = mg.size(); - mg.add(GETSTATIC,new FieldRef("java.lang.System","out",new Type.Object("java.io.PrintStream"))); - mg.add(NEW,Type.STRINGBUFFER); - mg.add(DUP); - mg.add(INVOKESPECIAL,new MethodRef(Type.STRINGBUFFER,"Will create this bytecode: @@ -58,7 +58,7 @@ public static void main(java.lang.String[]); 3: getstatic #10; //Field java/lang/System.out:Ljava/io/PrintStream; 6: new #12; //class StringBuffer 9: dup - 10: invokespecial #16; //Method java/lang/StringBuffer."",Type.VOID,Type.NO_ARGS)); - mg.add(GETSTATIC,new FieldRef("Test1","message",Type.STRING)); - mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.STRING})); - mg.add(LDC," - "); - mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.STRING})); - mg.add(ILOAD_0); - mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.INT})); - - mg.add(ILOAD_0); - mg.add(ICONST_1); - mg.add(IAND); - int b1 = mg.add(IFNE); - mg.add(LDC,'!'); - mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.CHAR})); - mg.setArg(b1,mg.size()); - - mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"toString",Type.STRING,Type.NO_ARGS)); - mg.add(INVOKEVIRTUAL,new MethodRef("java.io.PrintStream","println",Type.VOID,new Type[]{Type.STRING})); - - mg.add(IINC,new MethodGen.Pair(0,-1)); +ClassGen cg = new ClassGen("Test1","java.lang.Object",ACC_PUBLIC|ACC_SUPER); - mg.add(ILOAD_0); - mg.add(IFGT,top); - - mg.add(RETURN); - - cg.dump("Test1.class"); +FieldGen fg = cg.addField("message",Type.STRING,ACC_PRIVATE|ACC_STATIC); +fg.setConstantValue("Hello, World"); + +MethodGen mg = cg.addMethod("main",Type.VOID,new Type[]{Type.arrayType(Type.STRING)},ACC_STATIC|ACC_PUBLIC); +mg.add(LDC,10); +mg.add(ISTORE_0); + +int top = mg.size(); +mg.add(GETSTATIC,new FieldRef("java.lang.System","out",new Type.Object("java.io.PrintStream"))); +mg.add(NEW,Type.STRINGBUFFER); +mg.add(DUP); +mg.add(INVOKESPECIAL,new MethodRef(Type.STRINGBUFFER,"<init>",Type.VOID,Type.NO_ARGS)); +mg.add(GETSTATIC,new FieldRef("Test1","message",Type.STRING)); +mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.STRING})); +mg.add(LDC," - "); +mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.STRING})); +mg.add(ILOAD_0); +mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.INT})); + +mg.add(ILOAD_0); +mg.add(ICONST_1); +mg.add(IAND); +int b1 = mg.add(IFNE); +mg.add(LDC,'!'); +mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.CHAR})); +mg.setArg(b1,mg.size()); + +mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"toString",Type.STRING,Type.NO_ARGS)); +mg.add(INVOKEVIRTUAL,new MethodRef("java.io.PrintStream","println",Type.VOID,new Type[]{Type.STRING})); + +mg.add(IINC,new MethodGen.Pair(0,-1)); + +mg.add(ILOAD_0); +mg.add(IFGT,top); + +mg.add(RETURN); + +cg.dump("Test1.class");
+Hello, World - 10! +Hello, World - 9 +Hello, World - 8! +Hello, World - 7 +Hello, World - 6! +Hello, World - 5 +Hello, World - 4! +Hello, World - 3 +Hello, World - 2! +Hello, World - 1 ++