diff options
author | redpony <redpony@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-08-11 02:37:10 +0000 |
---|---|---|
committer | redpony <redpony@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-08-11 02:37:10 +0000 |
commit | a53461650fbdcd3cfe7543d28af9647ac3e5e47e (patch) | |
tree | e812756c733b34f9c16894265204acfa9f9998a9 /decoder/dict.h | |
parent | 19b59489bb600f438ad96f04ec5d5c5b6616c9c2 (diff) |
major refactor, break bad circular deps
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@509 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'decoder/dict.h')
-rw-r--r-- | decoder/dict.h | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/decoder/dict.h b/decoder/dict.h deleted file mode 100644 index 348a97e3..00000000 --- a/decoder/dict.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef DICT_H_ -#define DICT_H_ - - -#include <cassert> -#include <cstring> - -#include <string> -#include <vector> -#include "hash.h" -#include "wordid.h" - -class Dict { - typedef - HASH_MAP<std::string, WordID, boost::hash<std::string> > Map; - public: - Dict() : b0_("<bad0>") { - HASH_MAP_EMPTY(d_,"<bad1>"); - words_.reserve(1000); - } - - inline int max() const { return words_.size(); } - - inline WordID Convert(const std::string& word, bool frozen = false) { - Map::iterator i = d_.find(word); - if (i == d_.end()) { - if (frozen) - return 0; - words_.push_back(word); - d_[word] = words_.size(); - return words_.size(); - } else { - return i->second; - } - } - - inline WordID Convert(const std::vector<std::string>& words, bool frozen = false) - { return Convert(toString(words), frozen); } - - static inline std::string toString(const std::vector<std::string>& words) { - std::string word= ""; - for (std::vector<std::string>::const_iterator it=words.begin(); - it != words.end(); ++it) { - if (it != words.begin()) word += " ||| "; - word += *it; - } - return word; - } - - inline const std::string& Convert(const WordID& id) const { - if (id == 0) return b0_; - assert(id <= (int)words_.size()); - return words_[id-1]; - } - - void AsVector(const WordID& id, std::vector<std::string>* results) const; - - void clear() { words_.clear(); d_.clear(); } - - private: - const std::string b0_; - std::vector<std::string> words_; - Map d_; -}; - -#endif |