Looks about right; I will try to add some more thoughts on it. What's the problem with the constant pool parser? Note that null, primitive and string types are stored as constants; other types are stored as expression initializers and will cause a static clinit method to be generated (which isn't handled at the moment).
Alex
