diff --git a/src/bindings/java/SConscript b/src/bindings/java/SConscript index f014b2f0b5d55c5a247388d7613df75b5a34bc49..91b9d67bd8857f2a05144681e35651104e58a658 100644 --- a/src/bindings/java/SConscript +++ b/src/bindings/java/SConscript @@ -8,15 +8,6 @@ javaenv['ENV']['LD_LIBRARY_PATH'] = os.path.dirname(str(libhammer_shared[0])) def PrependDir(dir, filelist): return [os.path.join(dir,x) for x in filelist] -jsources = [ - "Parser.java", - "ParsedToken.java", - "ParseResult.java", - "Hammer.java", - "Action.java", - "Predicate.java" -] - csources = [ "com_upstandinghackers_hammer_Hammer.c", "com_upstandinghackers_hammer_ParsedToken.c", @@ -24,12 +15,9 @@ csources = [ "com_upstandinghackers_hammer_ParseResult.c" ] -classes = env.Java(target = 'classes', source = 'jsrc/com/upstandinghackers/hammer') -jni_headers = javaenv.JavaH(target = 'native', source = classes) -Default(jni_headers) +classes = javaenv.Java(target = 'classes', source = '#src/bindings/java/jsrc') +jni_headers = javaenv.JavaH(target = 'csrc', source = classes) -#native_dir = 'lib-' + sys.platform -#native_src = PrependDir(native_dir, csources) -#javaenv.BuildDir(native_dir, 'csrc', duplicate=0) -#libhammer_java = javaenv.SharedLibrary(native_dir + "/Hammer", native_src) -#Default(libhammer_java) \ No newline at end of file +native_src = PrependDir('csrc', csources) +libhammer_java = javaenv.SharedLibrary('libjhammer', [native_src, libhammer_shared]) +Default(libhammer_java) \ No newline at end of file diff --git a/src/bindings/java/jsrc/Action.java b/src/bindings/java/jsrc/Action.java deleted file mode 100644 index aecb713e44148f02aa76a1555b9d0a77bc608e21..0000000000000000000000000000000000000000 --- a/src/bindings/java/jsrc/Action.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.upstandinghackers.hammer; - -import java.util.List; - -public interface Action -{ - public List<ParsedToken> execute(ParseResult p); -} diff --git a/src/bindings/java/jsrc/Hammer.java b/src/bindings/java/jsrc/Hammer.java deleted file mode 100644 index 3e06a91eca4b15eebbfe28c99547829a3c2d6068..0000000000000000000000000000000000000000 --- a/src/bindings/java/jsrc/Hammer.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.upstandinghackers.hammer; -import java.util.HashMap; - -public class Hammer -{ - public final static byte BYTE_BIG_ENDIAN = 0x1; - public final static byte BIT_BIG_ENDIAN = 0x2; - public final static byte BYTE_LITTLE_ENDIAN = 0x0; - public final static byte BIT_LITTLE_ENDIAN = 0x0; - - static final HashMap<Integer, TokenType> tokenTypeMap = new HashMap<Integer, TokenType>(); - - public enum TokenType - { - NONE(1), - BYTES(2), - SINT(4), - UINT(8), - SEQUENCE(16), - ERR(32), - USER(64); - - private int value; - public int getValue() { return this.value; } - private TokenType(int value) { this.value = value; } - } - - static - { - for(TokenType tt : TokenType.values()) - { - Hammer.tokenTypeMap.put(new Integer(tt.getValue()), tt); - } - } - - public static native ParseResult parse(Parser parser, byte[] input, int length); - public static native Parser token(byte[] str, int length); - public static native Parser ch(byte c); - public static native Parser chRange(byte from, byte to); - public static native Parser intRange(Parser p, long lower, long upper); - public static native Parser bits(int len, boolean sign); - public static native Parser int64(); - public static native Parser int32(); - public static native Parser int16(); - public static native Parser int8(); - public static native Parser uInt64(); - public static native Parser uInt32(); - public static native Parser uInt16(); - public static native Parser uInt8(); - public static native Parser whitespace(Parser p); - public static native Parser left(Parser p, Parser q); - public static native Parser right(Parser p, Parser q); - public static native Parser middle(Parser p, Parser x, Parser q); -// public static native Parser action(Parser p, Action a); - public static native Parser in(byte[] charset, int length); - public static native Parser endP(); - public static native Parser nothingP(); - public static native Parser sequence(Parser... parsers); - public static native Parser choice(Parser... parsers); - public static native Parser butNot(Parser p1, Parser p2); - public static native Parser difference(Parser p1, Parser p2); - public static native Parser xor(Parser p1, Parser p2); - public static native Parser many(Parser p); - public static native Parser many1(Parser p); - public static native Parser repeatN(Parser p, int n); - public static native Parser optional(Parser p); - public static native Parser ignore(Parser p); - public static native Parser sepBy(Parser p, Parser sep); - public static native Parser sepBy1(Parser p, Parser sep); - public static native Parser epsilonP(); - public static native Parser lengthValue(Parser length, Parser value); -// public static native Parser attrBool(Parser p, Predicate pred); - public static native Parser and(Parser p); - public static native Parser not(Parser p); - public static native Parser indirect(); -} diff --git a/src/bindings/java/jsrc/ParseResult.java b/src/bindings/java/jsrc/ParseResult.java deleted file mode 100644 index e5ad6c94182e9c70aedcbb8fe81445cae12614c5..0000000000000000000000000000000000000000 --- a/src/bindings/java/jsrc/ParseResult.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.upstandinghackers.hammer; - -import java.util.List; - -public class ParseResult -{ - public native ParsedToken getAst(); - public native long getBitLength(); - - public native void free(); - public long getInner() {return this.inner;} - - private long inner; - ParseResult(long inner) {this.inner=inner;} -} diff --git a/src/bindings/java/jsrc/ParsedToken.java b/src/bindings/java/jsrc/ParsedToken.java deleted file mode 100644 index efbc8ed7a388b0940e45fb00574f14ea9bc621c0..0000000000000000000000000000000000000000 --- a/src/bindings/java/jsrc/ParsedToken.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.upstandinghackers.hammer; - -public class ParsedToken -{ - public Hammer.TokenType getTokenType() - { - int tt = this.getTokenTypeInternal(); - if(0==tt) - return null; - return Hammer.tokenTypeMap.get(new Integer(tt)); - } - - private native int getTokenTypeInternal(); - public native int getIndex(); - public native byte getBitOffset(); - public native byte[] getBytesValue(); - public native long getSIntValue(); - public native long getUIntValue(); - public native double getDoubleValue(); - public native float getFloatValue(); - public native ParsedToken[] getSeqValue(); -// public native Object getUserValue(); - - native void setTokenType(Hammer.TokenType type); - native void setIndex(int index); - native void setBitOffset(byte offset); - native void setBytesValue(byte[] value); - native void setSIntValue(long value); - native void setUIntValue(long value); - native void setDoubleValue(double value); - native void setFloatValue(float value); - native void setSeqValue(ParsedToken value[]); -// native void setUserValue(Object value); - -// public native void free(); - public long getInner() {return this.inner;} - - private long inner; - ParsedToken(long inner) {this.inner=inner;} -} diff --git a/src/bindings/java/jsrc/Parser.java b/src/bindings/java/jsrc/Parser.java deleted file mode 100644 index 2e924cb2ba26a6b21d777deb1bc076f9e7ec1eac..0000000000000000000000000000000000000000 --- a/src/bindings/java/jsrc/Parser.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.upstandinghackers.hammer; - -public class Parser -{ - public native void bindIndirect(Parser inner); - public native void free(); - public long getInner() {return this.inner;} - - private long inner; - Parser(long inner) {this.inner=inner;} -} diff --git a/src/bindings/java/jsrc/Predicate.java b/src/bindings/java/jsrc/Predicate.java deleted file mode 100644 index 52ca4bf7b94569906a072a73587a75b95550a1f4..0000000000000000000000000000000000000000 --- a/src/bindings/java/jsrc/Predicate.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.upstandinghackers.hammer; - -public interface Predicate -{ - public boolean apply(ParseResult p); -}