26 #include "../utility.h"
27 #include "../predictorRegistry.h"
28 #include "../tokenizer/forwardTokenizer.h"
44 separatorChars (tChars),
45 blankspaceChars(bChars),
46 controlChars (cChars),
47 predictorRegistry (registry),
48 logger (
"ContextTracker", std::cerr),
50 lowercase_mode (true),
92 logger << INFO <<
"SLIDING_WINDOWS_SIZE: " << value <<
endl;
98 logger << INFO <<
"LOWERCASE_MODE: " << value <<
endl;
123 std::stringstream change;
127 logger << INFO <<
"update(): change: " << change.str() <<
endl;
130 std::vector<std::string> change_tokens;
135 logger << INFO <<
"update(): tokenized change: ";
138 change_tokens.push_back(token);
139 logger << INFO << token <<
'|';
143 if (! change_tokens.empty()) {
145 change_tokens.pop_back();
148 logger << INFO <<
"update(): sanitized change tokens: ";
149 for (std::vector<std::string>::const_iterator it = change_tokens.begin();
150 it != change_tokens.end();
152 logger << INFO << *it <<
'|';
161 predictor = it.
next();
162 predictor->
learn(change_tokens);
182 while (tokenizer.hasMoreTokens() && i <= index) {
183 token = tokenizer.nextToken();
240 return getToken(index + change.size());
260 if (completion.find(prefix) == 0) {
269 if(
wordChars.find(c, 0) != std::string::npos)
326 logger << DEBUG <<
"Notification received: "
const PresageCallback * context_tracker_callback
std::string blankspaceChars
static const char * LOGGER
ContextChangeDetector * contextChangeDetector
std::string toString() const
PredictorRegistry * predictorRegistry
void dispatch(const Observable *var)
std::string getSeparatorChars() const
void set_lowercase_mode(const std::string &value)
std::string getFutureStream() const
const PresageCallback * callback(const PresageCallback *callback)
std::string change(const std::string &past_stream) const
Variable * find(const std::string &variable) const
std::string getExtraTokenToLearn(const int index, const std::vector< std::string > &change) const
_SetLevel setlevel(std::string __l)
Manipulator for level.
virtual void learn(const std::vector< std::string > &change)=0
void set_sliding_window_size(const std::string &value)
bool isBlankspaceChar(const char) const
std::string getWordChars() const
virtual std::string get_past_stream() const =0
ContextTracker(Configuration *config, PredictorRegistry *predictorRegistry, PresageCallback *callback, const char[]=DEFAULT_WORD_CHARS, const char[]=DEFAULT_SEPARATOR_CHARS, const char[]=DEFAULT_BLANKSPACE_CHARS, const char[]=DEFAULT_CONTROL_CHARS)
void setContextTracker(ContextTracker *ct)
bool isWordChar(const char) const
bool isCompletionValid(const std::string &) const
void lowercaseMode(const bool)
virtual std::string get_name() const =0
std::string getControlChars() const
virtual std::string nextToken()
void map(Observable *var, const mbr_func_ptr_t &ptr)
static char * strtolower(char *)
static const char * SLIDING_WINDOW_SIZE
static const char * LOWERCASE_MODE
std::string getPrefix() const
std::string getToken(const int) const
Dispatcher< ContextTracker > dispatcher
bool isSeparatorChar(const char) const
static bool isYes(const char *)
void set_sliding_window_size(const std::string &str)
std::string getBlankspaceChars() const
void set_logger(const std::string &value)
bool isControlChar(const char) const
std::string separatorChars
virtual std::string get_value() const =0
virtual bool hasMoreTokens() const
std::string getPastStream() const
virtual std::string get_future_stream() const =0
bool context_change(const std::string &past_stream) const
void update_sliding_window(const std::string &str)
const Logger< _charT, _Traits > & endl(const Logger< _charT, _Traits > &lgr)