11 #include <boost/bimap.hpp>
12 #include <boost/bind.hpp>
25 typedef boost::bimap<Key_type, Val_type>
Map;
68 keys.begin(), keys.end(),
73 template<
class T,
class U,
class M>
78 keys.begin(), keys.end(), maps.begin(), vals.begin(),
84 template<
class U,
class T,
class M>
89 vals.begin(), vals.end(), maps.begin(), keys.begin(),
T multi_map_encode(M maps, U keys)
Definition: Token_map.h:74
virtual Val_type get_code(const Token_map::Key_type &key)
look up code associated with key, or return UNKNOWN_TOKEN_VAL
Definition: Token_map.cpp:13
boost::bimap< Key_type, Val_type > Map
Definition: Token_map.h:25
Map::right_value_type Val_key_pair
Definition: Token_map.h:27
Map map_
Definition: Token_map.h:60
void multi_encode(Token_map &map, const T &keys)
Definition: Token_map.h:65
std::string Key_type
Definition: Token_map.h:23
Map::value_type Key_val_pair
Definition: Token_map.h:26
const_iterator end()
Definition: Token_map.h:56
static const Val_type UNKNOWN_TOKEN_VAL
Definition: Token_map.h:30
Definition: Token_map.h:20
virtual Val_type encode(const Key_type &key, bool learn=false)
look up code associated with key, adding it if not found
Definition: Token_map.cpp:20
size_t Val_type
Definition: Token_map.h:24
virtual Val_type next_val()
gets the next unused code available (e.g., for UNKNOWN)
Definition: Token_map.h:52
virtual const Key_type & unknown_key()=0
Token_map()
construct an empty token map
Definition: Token_map.h:34
Val_type next_val_
Definition: Token_map.h:61
virtual ~Token_map()
translate key into code
Definition: Token_map.h:38
const_iterator begin()
Definition: Token_map.h:55
U multi_map_decode(M maps, T vals)
Definition: Token_map.h:85
Map::const_iterator const_iterator
Definition: Token_map.h:28
virtual const Key_type & decode(const Val_type &val)
look up key associated with code
Definition: Token_map.cpp:33
friend std::ostream & operator<<(std::ostream &os, Token_map &map)
Definition: Token_map.cpp:40