]> git.cworth.org Git - wordgame/blobdiff - dict.h
Hide implementation details of dict in dict-impl.h. Add automatic dependency computat...
[wordgame] / dict.h
diff --git a/dict.h b/dict.h
index 4d4885c7e9423651b592d85e1c6e28cc4c9b1f31..16a345cf0a7f970f78799be533a539f2c37a688b 100644 (file)
--- a/dict.h
+++ b/dict.h
 #ifndef _DICT_H_
 #define _DICT_H_
 
-#include <stdint.h>
+#include "dict-impl.h"
 
-#ifndef FALSE
-# define FALSE 0
-#endif
-
-#ifndef TRUE
-# define TRUE 1
-#endif
-
-typedef int bool_t;
-
-typedef struct _string {
-    size_t size;
-    char *s;
-    size_t len;
-} string_t;
+/* Only looks opaque. Perfectly stack-allocatable */
+typedef struct _dict dict_t;
 
 void
-string_init (string_t *string);
+dict_init (dict_t *dict);
 
 void
-string_fini (string_t *string);
-
-void
-string_append_char (string_t *string, char c);
-
-void
-string_chop (string_t *string);
-
-void
-chomp (char *s);
-
-#define TRIE_FLAGS_IS_WORD     (1<<0)
-#define TRIE_FLAGS_SEEN                (1<<1)
-
-typedef struct _trie {
-    uint32_t flags;
-    struct _trie *next[26];
-} trie_t;
-
-typedef bool_t
-(*trie_predicate_t) (trie_t *trie);
-
-#define TRIE_CHAR_TO_INDEX(c)  (tolower (c) - 'a')
-#define TRIE_INDEX_TO_CHAR(i)  (i + 'a')
-
-trie_t *
-trie_create (void);
-
-void
-trie_add (trie_t       *trie,
-         const char    *word_chunk);
-
-trie_t *
-trie_find (trie_t      *trie,
-          const char   *word_chunk);
-
-int
-trie_print_seen (trie_t *trie, string_t *word);
-
-int
-trie_print_unseen (trie_t *trie, string_t *word);
-
-typedef struct _dict {
-    trie_t *trie;
-} dict_t;
-
+dict_add_word (dict_t          *dict,
+              const char       *word);
 void
-dict_init (dict_t      *dict,
-          const char   *filename);
+dict_add_words_from_file (dict_t       *dict,
+                         const char    *filename);
 
 void
 dict_fini (dict_t *dict);