René Jansen wrote: > Just a quick question: which assembler are you guys using for > experimentation? I find myself wanting to try out some things, but I am > in a bind between ooLong and Jasmin or maybe ASM. Is there an unofficial > official assembler, preferably something with macros (old s/370 bal > programmer that I am) and its own disassembler. > > I noticed there is a class called Assembler in the tools sources, is > this only usable from javac or is it addressable in any other way? > > If no disassembler goes with the package, I would prefer something that > is close enough to javap that I can write a small thingy to rearrange > its output into something that I can assemble - something that ASM can > but in a very verbose way. > > Please let me know what you use.
I'm using ASM exclusively, but usually wrapped behind one of my own shims. Either this super-trivial shim that just exposes a method-per-opcode: http://is.gd/3RsP Or my unreleased Ruby DSL for ASM, "JVMScript": http://kenai.com/projects/jvmscript The latter is probably more interesting to you, but obviously has a dependency on JRuby. Perhaps that's not a problem for your toolchain. Here's a short sample: builder = Compiler::FileBuilder.build("somefile.source") do package "org.awesome", "stuff" do public_class "MyClass", object do public_field "list", ArrayList public_constructor string, ArrayList do aload 0 invokespecial object, "<init>", [void] aload 0 aload 1 aload 2 invokevirtual this, "bar", [ArrayList, string, ArrayList] aload 0 swap putfield this, "list", ArrayList returnvoid end public_static_method "foo", this, string do new this dup aload 0 new ArrayList dup invokespecial ArrayList, "<init>", [void] invokespecial this, "<init>", [void, string, ArrayList] areturn end public_method "bar", ArrayList, string, ArrayList do aload 1 invokevirtual(string, "toLowerCase", string) aload 2 swap invokevirtual(ArrayList, "add", [boolean, object]) aload 2 areturn end public_method("getList", ArrayList) do aload 0 getfield this, "list", ArrayList areturn end public_static_method("main", void, string[]) do aload 0 ldc_int 0 aaload invokestatic this, "foo", [this, string] invokevirtual this, "getList", ArrayList aprintln returnvoid end end end end - Charlie --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en -~----------~----~----~----~------~----~------~--~---
