import jdk.internal.org.objectweb.asm.Opcodes;
import org.codehaus.jitescript.JiteClass;
public class JitescriptExample {
public static void main(String[] args) throws Exception {
JiteClass jiteClass = new JiteClass("ExampleClass");
jiteClass.setSuperclass(Object.class);
jiteClass.setInterface(Object.class);
jiteClass.defineField("name", Opcodes.ACC_PRIVATE, String.class);
jiteClass.defineMethod("sayHello", Opcodes.ACC_PUBLIC, void.class, new Class[]{}, new String[]{},
mw -> {
mw.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
mw.visitLdcInsn("Hello, Jitescript!");
mw.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
mw.visitInsn(Opcodes.RETURN);
});
byte[] bytecode = jiteClass.toBytes();
jiteClass.writeToFile("ExampleClass.class");
}
}