JNAerator v0.6 (build 367) : major parser update (better type parsing, c++ tolerance, supports bit fields)
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.