summaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2015-11-26 15:38:12 +0000
committerkrasimir <krasimir@chalmers.se>2015-11-26 15:38:12 +0000
commit008ca97428f55e5535dcad1266fd1396c1a9051b (patch)
tree8d591232bcf38780d40ff6ecbb44b9517d746380 /src/runtime
parent451ef1183f29791695db30a16f1dfa2e0577ad90 (diff)
added Expr.equals method in the Java binding
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/java/jpgf.c18
-rw-r--r--src/runtime/java/org/grammaticalframework/pgf/Expr.java2
2 files changed, 20 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)
{
diff --git a/src/runtime/java/org/grammaticalframework/pgf/Expr.java b/src/runtime/java/org/grammaticalframework/pgf/Expr.java
index 753055ff9..f576f681a 100644
--- a/src/runtime/java/org/grammaticalframework/pgf/Expr.java
+++ b/src/runtime/java/org/grammaticalframework/pgf/Expr.java
@@ -37,6 +37,8 @@ public class Expr implements Serializable {
public static native Expr readExpr(String s) throws PGFError;
+ public native boolean equals(Expr e);
+
private static native String showExpr(long ref);
private static native long initStringLit(String s, long pool);