summaryrefslogtreecommitdiff
path: root/src/runtime/java/jpgf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/java/jpgf.c')
-rw-r--r--src/runtime/java/jpgf.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/runtime/java/jpgf.c b/src/runtime/java/jpgf.c
index db7765551..4d00b3c4b 100644
--- a/src/runtime/java/jpgf.c
+++ b/src/runtime/java/jpgf.c
@@ -1054,6 +1054,24 @@ Java_org_grammaticalframework_pgf_Expr_initApp(JNIEnv* env, jclass clazz, jstrin
return expr;
}
+JNIEXPORT jboolean JNICALL
+Java_org_grammaticalframework_pgf_Expr_equals(JNIEnv* env, jobject self, jobject other)
+{
+ jclass self_class = (*env)->GetObjectClass(env, self);
+ jclass other_class = (*env)->GetObjectClass(env, other);
+
+ if (!(*env)->IsAssignableFrom(env, other_class, self_class))
+ return JNI_FALSE;
+
+ PgfExpr e_self = gu_variant_from_ptr(l2p(get_ref(env, self)));
+ PgfExpr e_other = gu_variant_from_ptr(l2p(get_ref(env, other)));
+
+ if (pgf_expr_eq(e_self, e_other))
+ return JNI_TRUE;
+ else
+ return JNI_FALSE;
+}
+
JNIEXPORT jstring JNICALL
Java_org_grammaticalframework_pgf_Type_getCategory(JNIEnv* env, jobject self)
{