void * parser_create_parser(const char * path) { ParserWrapper * wrapper = new ParserWrapper(); if (!wrapper->load(path)) { return 0; } return reinterpret_cast<void *>(wrapper); }
int parser_parse(void * parser, const std::vector<std::string> & words, const std::vector<std::string> & postags, std::vector<int> & heads, std::vector<std::string> & deprels) { // std::cout << "input str = " << str << std::endl; ParserWrapper * wrapper = 0; wrapper = reinterpret_cast<ParserWrapper *>(parser); return wrapper->parse(words, postags, heads, deprels); }
int parser_parse(void * parser, const std::vector<std::string> & words, const std::vector<std::string> & postags, std::vector<int> & heads, std::vector<std::string> & deprels) { if (words.size() != postags.size()) { return 0; } for (int i = 0; i < words.size(); ++ i) { if (words[i].empty() || postags[i].empty()) { return 0; } } ParserWrapper * wrapper = 0; wrapper = reinterpret_cast<ParserWrapper *>(parser); return wrapper->parse(words, postags, heads, deprels); }