Trie.h
Go to the documentation of this file.
1 
20 #ifndef TRIE_H_UZMQRBO5
21 #define TRIE_H_UZMQRBO5
22 
23 #include "uscxml/Common.h"
24 #include <string>
25 #include <map>
26 #include <list>
27 
28 namespace uscxml {
29 
30 struct USCXML_API TrieNode {
31  TrieNode();
32  virtual ~TrieNode();
33 
34  bool hasWord;
35  int index;
36  std::string identifier;
37  std::string value;
38  std::map<std::string, TrieNode*> childs;
39 // void dump(size_t indent = 0);
40 };
41 
42 struct USCXML_API Trie {
43  Trie();
44  Trie(const std::string& seperator);
45  virtual ~Trie();
46 
47  void addWord(const std::string& word);
48  size_t getNextToken(const std::string& word, size_t offset, std::string& token);
49  std::string escapeWord(const std::string& word);
50 
51  TrieNode* getNodeWithPrefix(const std::string& prefix);
52  std::list<TrieNode*> getWordsWithPrefix(const std::string& prefix);
53  std::list<TrieNode*> getChildsWithWords(TrieNode* node);
54 // void dump();
55 
56  TrieNode* root;
57  std::string seperator;
58  int lastIndex;
59 };
60 
61 }
62 
63 
64 #endif /* end of include guard: TRIE_H_UZMQRBO5 */
Definition: Breakpoint.cpp:26
Definition: Trie.h:30
Definition: Trie.h:42