From 329e3092542067f3a99fda328a8118e8d024e054 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 21 Feb 2019 19:57:31 +0100 Subject: Build, but doesn't link. --- trie.h | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) (limited to 'trie.h') diff --git a/trie.h b/trie.h index 404864d3..0ce21c06 100644 --- a/trie.h +++ b/trie.h @@ -5,42 +5,42 @@ #include "macro.h" -#define TRIE(T) TEMPL(trie, T) -#define TRIE_NODE(T) TEMPL(trie_node, T) +// #define TRIE(T) TEMPL(trie, T) +// #define TRIE_NODE(T) TEMPL(trie_node, T) -#endif /* TRIE_H */ -#ifdef TYPE +// #endif /* TRIE_H */ +// #ifdef TYPE -typedef struct TRIE_NODE(TYPE) { +template struct trie_node { char c; - TYPE* value; - struct TRIE_NODE(TYPE)* next; - struct TRIE_NODE(TYPE)* child; -} TRIE_NODE(TYPE); + T* value; + trie_node* next; + trie_node* child; -typedef struct { - TRIE_NODE(TYPE)* root; -} TRIE(TYPE); + trie_node (char c); + trie_node (char c, trie_node* next, trie_node* child); + ~trie_node (); +}; -INIT_F ( TRIE(TYPE) ); +template struct trie { + trie_node* root; -INIT_F (TRIE_NODE(TYPE), char c); + trie (); + ~trie(); -INIT_F (TRIE_NODE(TYPE), - char c, TRIE_NODE(TYPE)* next, TRIE_NODE(TYPE)* child ); + int push (char* key, T* val); + T* get (char* key); -int PUSH(TRIE(TYPE)) ( TRIE(TYPE)* trie, char* key, TYPE* val ); + int empty (); +}; -TYPE* GET(TRIE(TYPE)) ( TRIE(TYPE)* trie, char* key ); +// FMT_F(TRIE_NODE(TYPE)); +// FMT_F(TRIE(TYPE)); -FREE_F(TRIE_NODE(TYPE)); +extern template struct trie; +extern template struct trie_node; -FREE_F(TRIE(TYPE)); - -int EMPTY(TRIE(TYPE))(TRIE(TYPE)*); - -FMT_F(TRIE_NODE(TYPE)); -FMT_F(TRIE(TYPE)); +#include "trie.c.inc" #endif /* TYPE */ -- cgit v1.2.3