diff options
| author | Krasimir Angelov <kr.angelov@gmail.com> | 2017-08-07 11:48:40 +0200 |
|---|---|---|
| committer | Krasimir Angelov <kr.angelov@gmail.com> | 2017-08-07 11:48:40 +0200 |
| commit | ed33e53b2e21712e255e5dbaafe4db34d61be46f (patch) | |
| tree | 5fffebb3c0efad58b6473198ab4633de1c6c4e57 | |
| parent | a4b6c8cb1b3debb89b254760c1ce9bd506d56fd9 (diff) | |
added org.grammaticalframework.pgf.Expr.unStr
| -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 4a0f1363c..c7957b317 100644 --- a/src/runtime/java/jpgf.c +++ b/src/runtime/java/jpgf.c @@ -1412,6 +1412,19 @@ Java_org_grammaticalframework_pgf_Expr_unMeta(JNIEnv* env, jobject self) return -1; } +JNIEXPORT jstring JNICALL +Java_org_grammaticalframework_pgf_Expr_unStr(JNIEnv* env, jobject self) +{ + PgfExpr expr = gu_variant_from_ptr(get_ref(env, self)); + + PgfLiteralStr* pstr = pgf_expr_unlit(expr, PGF_LITERAL_STR); + if (pstr != NULL) { + return gu2j_string(env, pstr->val); + } + + return NULL; +} + 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 46ea88b42..0b52e02ef 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/Expr.java +++ b/src/runtime/java/org/grammaticalframework/pgf/Expr.java @@ -93,6 +93,11 @@ public class Expr implements Serializable { * 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(); + + /** If the method is called on an expression which is + * a string literal, then it will return the string value. + * If this is not a string literal then the result is null. */ + public native String unStr(); /** Returns the expression as a string in the GF syntax */ public String toString() { |
