From 3e9de6ffbbe77f0ab41b62a7c7001a554f1900cf Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 30 Aug 2017 08:08:19 +0200 Subject: [PATCH] added fullFormLexicon in Java --- doc/runtime-api.html | 2 +- src/runtime/java/jpgf.c | 7 +++++-- src/runtime/java/org/grammaticalframework/pgf/Concr.java | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/doc/runtime-api.html b/doc/runtime-api.html index 9844ff89e..d8d34d38e 100644 --- a/doc/runtime-api.html +++ b/doc/runtime-api.html @@ -775,7 +775,7 @@ word form with its possible analyses: Prelude PGF2> mapM_ print [(form,lemma,analysis,prob) | (form,analyses) <- fullFormLexicon eng, (lemma,analysis,prob) <- analyses]
-for (FullFormEntry entry in eng.fullFormLexicon()) { ///// TODO
+for (FullFormEntry entry : eng.fullFormLexicon()) {
 	for (MorphoAnalysis analysis : entry.getAnalyses()) {
 		System.out.println(entry.getForm()+" "+analysis.getProb()+" "+analysis.getLemma()+" "+analysis.getField());
 	}
diff --git a/src/runtime/java/jpgf.c b/src/runtime/java/jpgf.c
index d91709082..f1396e526 100644
--- a/src/runtime/java/jpgf.c
+++ b/src/runtime/java/jpgf.c
@@ -1107,8 +1107,11 @@ Java_org_grammaticalframework_pgf_Lexicon_lookupWordPrefix
 	GuPool* pool = gu_new_pool();	
 	GuExn* err = gu_new_exn(pool);
 
-	GuEnum* en = pgf_lookup_word_prefix(get_ref(env, jconcr), j2gu_string(env, prefix, pool),
-	                                    pool, err);
+	GuEnum* en = 
+		(prefix == NULL) ? pgf_fullform_lexicon(get_ref(env, jconcr), 
+	                                            pool)
+	                     : pgf_lookup_word_prefix(get_ref(env, jconcr), j2gu_string(env, prefix, pool),
+	                                              pool, err);
 	if (!gu_ok(err)) {
 		if (gu_exn_caught(err, PgfExn)) {
 			GuString msg = (GuString) gu_exn_caught_data(err);
diff --git a/src/runtime/java/org/grammaticalframework/pgf/Concr.java b/src/runtime/java/org/grammaticalframework/pgf/Concr.java
index 0c905bc5f..5ca90bf36 100644
--- a/src/runtime/java/org/grammaticalframework/pgf/Concr.java
+++ b/src/runtime/java/org/grammaticalframework/pgf/Concr.java
@@ -70,7 +70,9 @@ public class Concr {
 	public native List lookupMorpho(String sentence);
 	
 	/** Creates an iterable over the full form lexicon in the grammar */
-	public native Iterable fullFormLexicon();
+	public Iterable fullFormLexicon() {
+		return new Lexicon(this, null);
+	}
 
 	/** Returns an iterable enumerating all words in the lexicon
 	 * starting with a given prefix.