JNAerator now parses complex qualified names such as a<int , 10>::~a.

Also, it now ignores gracefully most template definitions and no longer crashes when encountering the MSVC-specific __pragma statement.

The parser has better c support when it comes to parsing type references (parser now knows about visible typedefs). As a result, it is now able to pass all of its automatic tests without failure, which is an important achievement (typedef _unsigned T; T t; now works)

JNAerator now also support bit fields :

// Stored on 1 byte!
struct preferences {
	unsigned likes_jnaerator : 1;
	unsigned int times_tried_it : 7; // stored on 7 bits
};

becomes :

/** Stored on 1 byte! */
public static class preferences extends com.sun.jna.Structure {
  @com.sun.jna.Bits(1)
  public int likes_jnaerator;
  @com.sun.jna.Bits(7)
  public int times_tried_it;
}

This requires that the JNAerated code be run with the modified version of JNA that comes with JNAerator and knows about the new @Bits annotation.

Try it now ! (Web Start Link)