From a839bdc687b19a35b238192d1e5d3fde5302af42 Mon Sep 17 00:00:00 2001 From: krasimir Date: Thu, 11 May 2017 09:11:30 +0000 Subject: bugfix for print names in the C runtime and expose the functionality from Java --- src/runtime/java/jpgf.c | 13 +++++++++++++ src/runtime/java/org/grammaticalframework/pgf/Concr.java | 4 ++++ 2 files changed, 17 insertions(+) (limited to 'src/runtime/java') diff --git a/src/runtime/java/jpgf.c b/src/runtime/java/jpgf.c index 84b2ebb4e..9a3c528ec 100644 --- a/src/runtime/java/jpgf.c +++ b/src/runtime/java/jpgf.c @@ -1146,6 +1146,19 @@ Java_org_grammaticalframework_pgf_Concr_hasLinearization(JNIEnv* env, jobject se return res; } +JNIEXPORT jstring JNICALL +Java_org_grammaticalframework_pgf_Concr_getPrintName(JNIEnv* env, jobject self, jstring jid) +{ + PgfConcr* concr = get_ref(env, self); + GuPool* tmp_pool = gu_local_pool(); + PgfCId id = j2gu_string(env, jid, tmp_pool); + GuString name = pgf_print_name(concr, id); + jstring jname = (name == NULL) ? NULL : gu2j_string(env, name); + gu_pool_free(tmp_pool); + + return jname; +} + JNIEXPORT jlong JNICALL Java_org_grammaticalframework_pgf_Pool_alloc(JNIEnv* env, jclass clazz) { diff --git a/src/runtime/java/org/grammaticalframework/pgf/Concr.java b/src/runtime/java/org/grammaticalframework/pgf/Concr.java index e6cd958bb..af814b4a9 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/Concr.java +++ b/src/runtime/java/org/grammaticalframework/pgf/Concr.java @@ -79,6 +79,10 @@ public class Concr { */ public native boolean hasLinearization(String fun); + /** returns the print name for that function or category. + */ + public native String getPrintName(String id); + /** If the concrete syntaxes in the grammar are stored in external * files then this method can be used to load the current syntax * in memory. -- cgit v1.2.3