]> git.cworth.org Git - wordgame/blobdiff - dict.c
Complete the dict layer by adding dict_cursor_t and dict_entry_t
[wordgame] / dict.c
diff --git a/dict.c b/dict.c
index 00d54e04036b79576a4fa2dc155853ee9d663864..715e48f8deaa52c73bf499a3aae856dcc16a1e24 100644 (file)
--- a/dict.c
+++ b/dict.c
@@ -283,6 +283,52 @@ dict_add_words_from_file (dict_t   *dict,
     fclose (file);
 }
 
+dict_entry_t *
+dict_lookup (dict_t    *dict,
+            const char *word)
+{
+    trie_t *trie;
+
+    trie = trie_find (dict, word);
+    if (trie == NULL)
+       return NULL;
+    else
+       return &trie->flags;
+}
+
+/* Yes, this function is rather silly. I have it here in the hope that
+ * it could be used for some better type-checking, (if only C had such
+ * a thing). */
+dict_cursor_t
+dict_root (dict_t *dict)
+{
+    return dict;
+}
+
+dict_cursor_t
+dict_cursor_next (dict_cursor_t cursor,
+                 char          next)
+{
+    trie_t *trie = cursor;
+
+    if (trie == NULL)
+       return DICT_CURSOR_NIL;
+
+    return trie->next[TRIE_CHAR_TO_INDEX (next)];
+}
+
+dict_entry_t *
+dict_cursor_resolve (dict_cursor_t cursor)
+{
+    trie_t *trie;
+
+    if (cursor == DICT_CURSOR_NIL)
+       return NULL;
+
+    trie = cursor;
+    return &trie->flags;
+}
+
 void
 dict_print (dict_t *dict)
 {