diff options
| author | Krasimir Angelov <kr.angelov@gmail.com> | 2017-07-07 11:21:34 +0200 |
|---|---|---|
| committer | Krasimir Angelov <kr.angelov@gmail.com> | 2017-07-07 11:21:34 +0200 |
| commit | a4b6c8cb1b3debb89b254760c1ce9bd506d56fd9 (patch) | |
| tree | 42ec6ee3fdec5dcd0f6d137b528dc89baa915295 /src/runtime | |
| parent | cd817abc5a3854cec711051b1643c032de7a2660 (diff) | |
added the Expr.unMeta method in the Java binding
Diffstat (limited to 'src/runtime')
| -rw-r--r-- | src/runtime/java/jpgf.c | 13 | ||||
| -rw-r--r-- | src/runtime/java/org/grammaticalframework/pgf/Expr.java | 5 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/runtime/java/jpgf.c b/src/runtime/java/jpgf.c index 05a526faf..4a0f1363c 100644 --- a/src/runtime/java/jpgf.c +++ b/src/runtime/java/jpgf.c @@ -1399,6 +1399,19 @@ Java_org_grammaticalframework_pgf_Expr_unApply(JNIEnv* env, jobject self) return japp; } +JNIEXPORT jint JNICALL +Java_org_grammaticalframework_pgf_Expr_unMeta(JNIEnv* env, jobject self) +{ + PgfExpr expr = gu_variant_from_ptr(get_ref(env, self)); + + PgfExprMeta* pmeta = pgf_expr_unmeta(expr); + if (pmeta != NULL) { + return pmeta->id; + } + + return -1; +} + JNIEXPORT jboolean JNICALL Java_org_grammaticalframework_pgf_Expr_equals(JNIEnv* env, jobject self, jobject other) { diff --git a/src/runtime/java/org/grammaticalframework/pgf/Expr.java b/src/runtime/java/org/grammaticalframework/pgf/Expr.java index 1cc014ca2..46ea88b42 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/Expr.java +++ b/src/runtime/java/org/grammaticalframework/pgf/Expr.java @@ -89,6 +89,11 @@ public class Expr implements Serializable { * an application then the result is null. */ public native ExprApplication unApply(); + /** If the method is called on an expression which is + * a meta variable, then it will return the variable's id. + * If this is not a meta variable then the result is -1. */ + public native int unMeta(); + /** Returns the expression as a string in the GF syntax */ public String toString() { return showExpr(ref); |
