X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2Fpackage.html;fp=src%2Forg%2Fibex%2Fclassgen%2Fpackage.html;h=8d332bdbe15aca81ad8a853f4f5242e6d277e5a1;hb=85004bd030f69603a32140de6f61891c349b6b4f;hp=c921dab5d31a0b92eacb2033cfe0d62402e49b33;hpb=48fa4bf48fc2d4414383034ddbe5c35e6c0693ef;p=org.ibex.classgen.git
diff --git a/src/org/ibex/classgen/package.html b/src/org/ibex/classgen/package.html
index c921dab..8d332bd 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:",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," ",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");