void WnCourt::set_word(const gchar *orig_word, gchar **Word, gchar ***WordData) { ClearScene(); CurrentWord = orig_word; CreateWord(orig_word); if (Word == NULL) return; Push(); std::string type; std::list<std::string> wordlist; std::string gloss; size_t i = 0; size_t j; do { j = 0; do { wordnet2result(orig_word, WordData[i][j], type, wordlist, gloss); CreateNode(gloss.c_str(), type.c_str()); Push(); for (std::list<std::string>::iterator it = wordlist.begin(); it != wordlist.end(); ++it) { CreateWord(it->c_str()); } Pop(); j++; } while (WordData[i][j]); i++; } while (Word[i]); }
static bool parse(const char *p, unsigned int *parsed_size, ParseResult &result, const char *oword) { if (*p != 'n') return false; p++; size_t len = strlen(p); if (len) { wordnet2result(p, len, result, oword); } *parsed_size = 1 + len + 1; return true; }