diff --git a/src/runtime/java/jpgf.c b/src/runtime/java/jpgf.c index bca7a64e0..9b09068d5 100644 --- a/src/runtime/java/jpgf.c +++ b/src/runtime/java/jpgf.c @@ -1388,6 +1388,13 @@ Java_org_grammaticalframework_pgf_Expr_equals(JNIEnv* env, jobject self, jobject return JNI_FALSE; } +JNIEXPORT jint JNICALL +Java_org_grammaticalframework_pgf_Expr_hashCode(JNIEnv* env, jobject self) +{ + PgfExpr e = gu_variant_from_ptr(l2p(get_ref(env, self))); + return pgf_expr_hash(0, e); +} + JNIEXPORT jstring JNICALL Java_org_grammaticalframework_pgf_Type_getCategory(JNIEnv* env, jobject self) { diff --git a/src/runtime/java/org/grammaticalframework/pgf/Expr.java b/src/runtime/java/org/grammaticalframework/pgf/Expr.java index cdc62d1d1..08e75ea04 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/Expr.java +++ b/src/runtime/java/org/grammaticalframework/pgf/Expr.java @@ -102,6 +102,8 @@ public class Expr implements Serializable { * @return True if the expressions are equal. */ public native boolean equals(Expr e); + public native int hashCode(); + private static native String showExpr(long ref); private static native long initStringLit(String s, long pool);