USING THE JNI BINDINGS: 1. import com.upstandinghackers.hammer.*; 2. Add a static initializer block that loads the correct library, like this: static { System.loadLibrary("jhammer"); } 3. Code stuff. Just look at Example.java for a few handy snippets (for walking the resulting syntax tree [AST] etc) 4. Compile your java sources like always 5. Add the folder containing libhammer.so/dll/whatever to Java's library path to run it, for example: java -Djava.library.path=. UNIMPLEMENTED: User-defined types, predicates and actions are unimplemented. Memory leaks because there is no reliable garbage collection. TODO: Testing TYPE MAPPING: Hammer Java JNI uint8_t byte jbyte jbyte/byte is signed char byte jbyte jchar would be 16 bit wide size_t int jint signed as well; jsize == jint, actually int64_t long jlong uint64_t long jlong signed! bool boolean jboolean JNI_TRUE / JNI_FALSE float float jfloat double double jdouble void void void