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.