From f8506da9955b4f372d95e3124175dfd85d45d5d5 Mon Sep 17 00:00:00 2001 From: Yukino Ikegami Date: Tue, 27 Jun 2017 02:40:06 +0900 Subject: [PATCH] 64bit version --- mecab/python/MeCab.i | 160 +++ mecab/python/MeCab_wrap.cxx | 2283 +++++++++++++++++------------------ mecab/python/mecab.h | 1509 +++++++++++++++++++++++ mecab/python/setup.py | 45 +- mecab/python/setup64.py | 36 + mecab/python/version.h | 3 + mecab/src/Makefile.msvc.in | 6 +- mecab/src/common.h | 12 +- mecab/src/feature_index.cpp | 2 +- mecab/src/make.bat | 2 +- mecab/src/mmap.h | 2 +- mecab/src/utils.cpp | 2 +- mecab/src/utils.h | 4 +- mecab/src/vc140.pdb | Bin 0 -> 200704 bytes mecab/src/vc90.pdb | Bin 0 -> 1208320 bytes mecab/src/writer.cpp | 2 +- 16 files changed, 2882 insertions(+), 1186 deletions(-) create mode 100644 mecab/python/MeCab.i create mode 100644 mecab/python/mecab.h create mode 100644 mecab/python/setup64.py create mode 100644 mecab/python/version.h create mode 100644 mecab/src/vc140.pdb create mode 100644 mecab/src/vc90.pdb diff --git a/mecab/python/MeCab.i b/mecab/python/MeCab.i new file mode 100644 index 0000000..5fe9381 --- /dev/null +++ b/mecab/python/MeCab.i @@ -0,0 +1,160 @@ +%module MeCab +%include exception.i +%{ +#include "mecab.h" + +/* Workaround for ruby1.9.x */ +#if defined SWIGRUBY +#include "ruby/version.h" +#if RUBY_API_VERSION_CODE >= 10900 +#include "ruby/encoding.h" +#define rb_str_new rb_external_str_new +#endif +#endif +%} + +%newobject surface; + +%exception { + try { $action } + catch (char *e) { SWIG_exception (SWIG_RuntimeError, e); } + catch (const char *e) { SWIG_exception (SWIG_RuntimeError, (char*)e); } +} + +%rename(Node) mecab_node_t; +%rename(Path) mecab_path_t; +%rename(DictionaryInfo) mecab_dictionary_info_t; +%ignore mecab_model_t; +%ignore mecab_lattice_t; +%nodefault mecab_path_t; +%nodefault mecab_node_t; + +%feature("notabstract") MeCab::Tagger; +%feature("notabstract") MeCab::Lattice; +%feature("notabstract") MeCab::Model; + +%immutable mecab_dictionary_info_t::filename; +%immutable mecab_dictionary_info_t::charset; +%immutable mecab_dictionary_info_t::size; +%immutable mecab_dictionary_info_t::lsize; +%immutable mecab_dictionary_info_t::rsize; +%immutable mecab_dictionary_info_t::type; +%immutable mecab_dictionary_info_t::version; +%immutable mecab_dictionary_info_t::next; + +%immutable mecab_path_t::rnode; +%immutable mecab_path_t::lnode; +%immutable mecab_path_t::rnext; +%immutable mecab_path_t::lnext; +%immutable mecab_path_t::cost; + +%immutable mecab_node_t::prev; +%immutable mecab_node_t::next; +%immutable mecab_node_t::enext; +%immutable mecab_node_t::bnext; +%immutable mecab_node_t::lpath; +%immutable mecab_node_t::rpath; +%immutable mecab_node_t::feature; +%immutable mecab_node_t::length; +%immutable mecab_node_t::rlength; +%immutable mecab_node_t::id; +%immutable mecab_node_t::rcAttr; +%immutable mecab_node_t::lcAttr; +%immutable mecab_node_t::posid; +%immutable mecab_node_t::char_type; +%immutable mecab_node_t::stat; +%immutable mecab_node_t::isbest; +%immutable mecab_node_t::alpha; +%immutable mecab_node_t::beta; +%immutable mecab_node_t::wcost; +%immutable mecab_node_t::cost; +%immutable mecab_node_t::surface; + +%extend mecab_node_t { + char *surface; +} + +%extend MeCab::Tagger { + Tagger(const char *argc); + Tagger(); + const char* parseToString(const char* str, size_t length = 0) { + return self->parse(str, length); + } +} + +%extend MeCab::Model { + Model(const char *argc); + Model(); +} + +%extend MeCab::Lattice { + Lattice(); + void set_sentence(const char *sentence) { + self->add_request_type(MECAB_ALLOCATE_SENTENCE); + self->set_sentence(sentence); + } +} + +%{ + +MeCab::Tagger* new_MeCab_Tagger (const char *arg) { + char *p = new char [strlen(arg) + 4]; + strcpy(p, "-C "); + strcat(p, arg); + MeCab::Tagger *tagger = MeCab::createTagger(p); + delete [] p; + if (! tagger) throw MeCab::getLastError(); + return tagger; +} + +MeCab::Tagger* new_MeCab_Tagger () { + MeCab::Tagger *tagger = MeCab::createTagger("-C"); + if (! tagger) throw MeCab::getLastError(); + return tagger; +} + +void delete_MeCab_Tagger (MeCab::Tagger *t) { + delete t; + t = 0; +} + +MeCab::Model* new_MeCab_Model (const char *arg) { + char *p = new char [strlen(arg) + 4]; + strcpy(p, "-C "); + strcat(p, arg); + MeCab::Model *model = MeCab::createModel(p); + delete [] p; + if (! model) throw MeCab::getLastError(); + return model; +} + +MeCab::Model* new_MeCab_Model () { + MeCab::Model *model = MeCab::createModel("-C"); + if (! model) throw MeCab::getLastError(); + return model; +} + +void delete_MeCab_Model (MeCab::Model *t) { + delete t; + t = 0; +} + +MeCab::Lattice* new_MeCab_Lattice () { + return MeCab::createLattice(); +} + +void delete_MeCab_Lattice (MeCab::Lattice *t) { + delete t; + t = 0; +} + +char* mecab_node_t_surface_get(mecab_node_t *n) { + char *s = new char [n->length + 1]; + memcpy (s, n->surface, n->length); + s[n->length] = '\0'; + return s; +} +%} + +%include mecab.h +%include version.h diff --git a/mecab/python/MeCab_wrap.cxx b/mecab/python/MeCab_wrap.cxx index 2513e7c..aafcc1a 100644 --- a/mecab/python/MeCab_wrap.cxx +++ b/mecab/python/MeCab_wrap.cxx @@ -1,14 +1,19 @@ /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.4 - * - * This file is not intended to be easily readable and contains a number of + * Version 3.0.12 + * + * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make - * changes to this file unless you know what you are doing--modify the SWIG - * interface file instead. + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. * ----------------------------------------------------------------------------- */ + +#ifndef SWIGPYTHON #define SWIGPYTHON +#endif + +#define SWIG_PYTHON_NO_BUILD_NONE #define SWIG_PYTHON_DIRECTOR_NO_VTABLE @@ -66,28 +71,28 @@ template T SwigValueInit() { #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define SWIGUNUSED __attribute__ ((__unused__)) +# define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) -# define SWIGUNUSED __attribute__ ((__unused__)) +# define SWIGUNUSED __attribute__ ((__unused__)) # else -# define SWIGUNUSED +# define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ -# endif +# endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else -# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif @@ -102,9 +107,11 @@ template T SwigValueInit() { #endif /* exporting methods */ -#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) -# ifndef GCC_HASCLASSVISIBILITY -# define GCC_HASCLASSVISIBILITY +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif # endif #endif @@ -130,7 +137,7 @@ template T SwigValueInit() { # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL -# endif +# endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ @@ -143,10 +150,29 @@ template T SwigValueInit() { # define _SCL_SECURE_NO_DEPRECATE #endif +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: /~https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif -/* Python.h has to appear first */ -#include +#if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG) +/* Use debug wrappers with the Python release dll */ +# undef _DEBUG +# include +# define _DEBUG +#else +# include +#endif /* ----------------------------------------------------------------------------- * swigrun.swg @@ -172,7 +198,7 @@ template T SwigValueInit() { You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. - + But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ @@ -198,16 +224,16 @@ template T SwigValueInit() { #define SWIG_POINTER_OWN 0x1 -/* +/* Flags/methods for returning states. - - The SWIG conversion methods, as ConvertPtr, return an integer + + The SWIG conversion methods, as ConvertPtr, return an integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). - + Use the following macros/flags to set or process the returning states. - + In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { @@ -240,23 +266,23 @@ template T SwigValueInit() { } else { // fail code } - + I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as - int SWIG_ConvertPtr(obj, ptr,...) { - if () { - if () { - *ptr = ; - return SWIG_NEWOBJ; - } else { - *ptr = ; - return SWIG_OLDOBJ; - } - } else { - return SWIG_BADOBJ; - } + int SWIG_ConvertPtr(obj, ptr,...) { + if () { + if () { + *ptr = ; + return SWIG_NEWOBJ; + } else { + *ptr = ; + return SWIG_OLDOBJ; + } + } else { + return SWIG_BADOBJ; + } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be @@ -270,17 +296,17 @@ template T SwigValueInit() { int fooi(int); and you call - + food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ -#define SWIG_OK (0) +#define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) -#define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) +#define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) @@ -311,14 +337,14 @@ template T SwigValueInit() { # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) -SWIGINTERNINLINE int SWIG_AddCast(int r) { +SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } -SWIGINTERNINLINE int SWIG_CheckState(int r) { - return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; +SWIGINTERNINLINE int SWIG_CheckState(int r) { + return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ -# define SWIG_AddCast +# define SWIG_AddCast(r) (r) # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif @@ -362,7 +388,7 @@ typedef struct swig_module_info { void *clientdata; /* Language specific module data */ } swig_module_info; -/* +/* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. @@ -382,18 +408,18 @@ SWIG_TypeNameComp(const char *f1, const char *l1, /* Check type equivalence in a name list like ||... - Return 0 if not equal, 1 if equal + Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int -SWIG_TypeEquiv(const char *nb, const char *tb) { - int equiv = 0; +SWIG_TypeCmp(const char *nb, const char *tb) { + int equiv = 1; const char* te = tb + strlen(tb); const char* ne = nb; - while (!equiv && *ne) { + while (equiv != 0 && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } - equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; + equiv = SWIG_TypeNameComp(nb, ne, tb, te); if (*ne) ++ne; } return equiv; @@ -401,24 +427,13 @@ SWIG_TypeEquiv(const char *nb, const char *tb) { /* Check type equivalence in a name list like ||... - Return 0 if equal, -1 if nb < tb, 1 if nb > tb + Return 0 if not equal, 1 if equal */ SWIGRUNTIME int -SWIG_TypeCompare(const char *nb, const char *tb) { - int equiv = 0; - const char* te = tb + strlen(tb); - const char* ne = nb; - while (!equiv && *ne) { - for (nb = ne; *ne; ++ne) { - if (*ne == '|') break; - } - equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; - if (*ne) ++ne; - } - return equiv; +SWIG_TypeEquiv(const char *nb, const char *tb) { + return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0; } - /* Check the typename */ @@ -446,7 +461,7 @@ SWIG_TypeCheck(const char *c, swig_type_info *ty) { return 0; } -/* +/* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * @@ -481,7 +496,7 @@ SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } -/* +/* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * @@ -525,7 +540,7 @@ SWIG_TypePrettyName(const swig_type_info *type) { return type->name; } -/* +/* Set the clientdata field for a type */ SWIGRUNTIME void @@ -533,14 +548,14 @@ SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; - + while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } - } + } cast = cast->next; } } @@ -549,31 +564,31 @@ SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } - + /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) - - We start searching at module start, and finish searching when start == end. + + We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * -SWIG_MangledTypeQueryModule(swig_module_info *start, - swig_module_info *end, +SWIG_MangledTypeQueryModule(swig_module_info *start, + swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { - register size_t l = 0; - register size_t r = iter->size - 1; + size_t l = 0; + size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ - register size_t i = (l + r) >> 1; + size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { - register int compare = strcmp(name, iname); - if (compare == 0) { + int compare = strcmp(name, iname); + if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { @@ -598,14 +613,14 @@ SWIG_MangledTypeQueryModule(swig_module_info *start, Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). - - We start searching at module start, and finish searching when start == end. + + We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * -SWIG_TypeQueryModule(swig_module_info *start, - swig_module_info *end, +SWIG_TypeQueryModule(swig_module_info *start, + swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); @@ -616,7 +631,7 @@ SWIG_TypeQueryModule(swig_module_info *start, of the str field (the human readable name) */ swig_module_info *iter = start; do { - register size_t i = 0; + size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; @@ -624,56 +639,56 @@ SWIG_TypeQueryModule(swig_module_info *start, iter = iter->next; } while (iter != end); } - + /* neither found a match */ return 0; } -/* +/* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; - register const unsigned char *u = (unsigned char *) ptr; - register const unsigned char *eu = u + sz; + const unsigned char *u = (unsigned char *) ptr; + const unsigned char *eu = u + sz; for (; u != eu; ++u) { - register unsigned char uu = *u; + unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } -/* +/* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { - register unsigned char *u = (unsigned char *) ptr; - register const unsigned char *eu = u + sz; + unsigned char *u = (unsigned char *) ptr; + const unsigned char *eu = u + sz; for (; u != eu; ++u) { - register char d = *(c++); - register unsigned char uu; + char d = *(c++); + unsigned char uu; if ((d >= '0') && (d <= '9')) - uu = ((d - '0') << 4); + uu = (unsigned char)((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) - uu = ((d - ('a'-10)) << 4); - else + uu = (unsigned char)((d - ('a'-10)) << 4); + else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) - uu |= (d - '0'); + uu |= (unsigned char)(d - '0'); else if ((d >= 'a') && (d <= 'f')) - uu |= (d - ('a'-10)); - else + uu |= (unsigned char)(d - ('a'-10)); + else return (char *) 0; *u = uu; } return c; } -/* +/* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * @@ -733,18 +748,18 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { #endif /* Errors in SWIG */ -#define SWIG_UnknownError -1 -#define SWIG_IOError -2 -#define SWIG_RuntimeError -3 -#define SWIG_IndexError -4 -#define SWIG_TypeError -5 -#define SWIG_DivisionByZero -6 -#define SWIG_OverflowError -7 -#define SWIG_SyntaxError -8 -#define SWIG_ValueError -9 +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 -#define SWIG_MemoryError -12 +#define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 @@ -756,6 +771,7 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { #define PyInt_Check(x) PyLong_Check(x) #define PyInt_AsLong(x) PyLong_AsLong(x) #define PyInt_FromLong(x) PyLong_FromLong(x) +#define PyInt_FromSize_t(x) PyLong_FromSize_t(x) #define PyString_Check(name) PyBytes_Check(name) #define PyString_FromString(x) PyUnicode_FromString(x) #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args) @@ -847,10 +863,6 @@ PyString_FromFormat(const char *fmt, ...) { } #endif -/* Add PyObject_Del for old Pythons */ -#if PY_VERSION_HEX < 0x01060000 -# define PyObject_Del(op) PyMem_DEL((op)) -#endif #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif @@ -925,6 +937,10 @@ static long PyNumber_AsSsize_t (PyObject *x, void *SWIGUNUSEDPARM(exc)) } #endif +#if PY_VERSION_HEX < 0x02050000 +#define PyInt_FromSize_t(x) PyInt_FromLong((long)x) +#endif + #if PY_VERSION_HEX < 0x02040000 #define Py_VISIT(op) \ do { \ @@ -961,6 +977,7 @@ typedef destructor freefunc; #if PY_VERSION_HEX < 0x03020000 #define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type) #define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name) +#define Py_hash_t long #endif /* ----------------------------------------------------------------------------- @@ -1196,7 +1213,7 @@ SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), /* Runtime API */ -#define SWIG_GetModule(clientdata) SWIG_Python_GetModule() +#define SWIG_GetModule(clientdata) SWIG_Python_GetModule(clientdata) #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) #define SWIG_NewClientData(obj) SwigPyClientData_New(obj) @@ -1222,7 +1239,7 @@ SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) { SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; - PyErr_SetString(errtype, (char *) msg); + PyErr_SetString(errtype, msg); SWIG_PYTHON_THREAD_END_BLOCK; } @@ -1241,7 +1258,11 @@ SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) { SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) { +#if PY_VERSION_HEX < 0x02030000 PyDict_SetItemString(d, (char *)name, obj); +#else + PyDict_SetItemString(d, name, obj); +#endif Py_DECREF(obj); if (public_interface) SwigPyBuiltin_AddPublicSymbol(public_interface, name); @@ -1251,7 +1272,11 @@ SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *nam SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) { +#if PY_VERSION_HEX < 0x02030000 PyDict_SetItemString(d, (char *)name, obj); +#else + PyDict_SetItemString(d, name, obj); +#endif Py_DECREF(obj); } @@ -1304,7 +1329,7 @@ SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { /* Unpack the argument tuple */ -SWIGINTERN int +SWIGINTERN Py_ssize_t SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) { if (!args) { @@ -1318,7 +1343,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi } if (!PyTuple_Check(args)) { if (min <= 1 && max >= 1) { - register int i; + Py_ssize_t i; objs[0] = args; for (i = 1; i < max; ++i) { objs[i] = 0; @@ -1328,7 +1353,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); return 0; } else { - register Py_ssize_t l = PyTuple_GET_SIZE(args); + Py_ssize_t l = PyTuple_GET_SIZE(args); if (l < min) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at least "), (int)min, (int)l); @@ -1338,7 +1363,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi name, (min == max ? "" : "at most "), (int)max, (int)l); return 0; } else { - register int i; + Py_ssize_t i; for (i = 0; i < l; ++i) { objs[i] = PyTuple_GET_ITEM(args, i); } @@ -1524,6 +1549,23 @@ typedef struct { #endif } SwigPyObject; + +#ifdef SWIGPYTHON_BUILTIN + +SWIGRUNTIME PyObject * +SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args)) +{ + SwigPyObject *sobj = (SwigPyObject *)v; + + if (!sobj->dict) + sobj->dict = PyDict_New(); + + Py_INCREF(sobj->dict); + return sobj->dict; +} + +#endif + SWIGRUNTIME PyObject * SwigPyObject_long(SwigPyObject *v) { @@ -1572,7 +1614,7 @@ SwigPyObject_repr(SwigPyObject *v, PyObject *args) #endif { const char *name = SWIG_TypePrettyName(v->ty); - PyObject *repr = SWIG_Python_str_FromFormat("", name, (void *)v); + PyObject *repr = SWIG_Python_str_FromFormat("", (name ? name : "unknown"), (void *)v); if (v->next) { # ifdef METH_NOARGS PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next); @@ -1591,34 +1633,6 @@ SwigPyObject_repr(SwigPyObject *v, PyObject *args) return repr; } -SWIGRUNTIME int -SwigPyObject_print(SwigPyObject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) -{ - char *str; -#ifdef METH_NOARGS - PyObject *repr = SwigPyObject_repr(v); -#else - PyObject *repr = SwigPyObject_repr(v, NULL); -#endif - if (repr) { - str = SWIG_Python_str_AsChar(repr); - fputs(str, fp); - SWIG_Python_str_DelForPy3(str); - Py_DECREF(repr); - return 0; - } else { - return 1; - } -} - -SWIGRUNTIME PyObject * -SwigPyObject_str(SwigPyObject *v) -{ - char result[SWIG_BUFFER_SIZE]; - return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ? - SWIG_Python_str_FromChar(result) : 0; -} - SWIGRUNTIME int SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w) { @@ -1690,16 +1704,32 @@ SwigPyObject_dealloc(PyObject *v) if (destroy) { /* destroy is always a VARARGS method */ PyObject *res; + + /* PyObject_CallFunction() has the potential to silently drop + the active active exception. In cases of unnamed temporary + variable or where we just finished iterating over a generator + StopIteration will be active right now, and this needs to + remain true upon return from SwigPyObject_dealloc. So save + and restore. */ + + PyObject *val = NULL, *type = NULL, *tb = NULL; + PyErr_Fetch(&val, &type, &tb); + if (data->delargs) { - /* we need to create a temporary object to carry the destroy operation */ - PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); - res = SWIG_Python_CallFunctor(destroy, tmp); - Py_DECREF(tmp); + /* we need to create a temporary object to carry the destroy operation */ + PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); + res = SWIG_Python_CallFunctor(destroy, tmp); + Py_DECREF(tmp); } else { - PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); - PyObject *mself = PyCFunction_GET_SELF(destroy); - res = ((*meth)(mself, v)); + PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); + PyObject *mself = PyCFunction_GET_SELF(destroy); + res = ((*meth)(mself, v)); } + if (!res) + PyErr_WriteUnraisable(destroy); + + PyErr_Restore(val, type, tb); + Py_XDECREF(res); } #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) @@ -1723,6 +1753,7 @@ SwigPyObject_append(PyObject* v, PyObject* next) next = tmp; #endif if (!SwigPyObject_Check(next)) { + PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject"); return NULL; } sobj->next = next; @@ -1776,8 +1807,10 @@ SwigPyObject_own(PyObject *v, PyObject *args) PyObject *val = 0; #if (PY_VERSION_HEX < 0x02020000) if (!PyArg_ParseTuple(args,(char *)"|O:own",&val)) -#else +#elif (PY_VERSION_HEX < 0x02050000) if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) +#else + if (!PyArg_UnpackTuple(args, "own", 0, 1, &val)) #endif { return NULL; @@ -1809,7 +1842,7 @@ SwigPyObject_own(PyObject *v, PyObject *args) static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"}, - {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"aquires ownership of the pointer"}, + {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"acquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"}, @@ -1820,7 +1853,7 @@ swigobject_methods[] = { static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"}, - {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS, (char *)"aquires ownership of the pointer"}, + {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS, (char *)"acquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_VARARGS, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_VARARGS, (char *)"returns the next 'this' object"}, @@ -1876,7 +1909,9 @@ SwigPyObject_TypeOnce(void) { (unaryfunc)SwigPyObject_oct, /*nb_oct*/ (unaryfunc)SwigPyObject_hex, /*nb_hex*/ #endif -#if PY_VERSION_HEX >= 0x03000000 /* 3.0 */ +#if PY_VERSION_HEX >= 0x03050000 /* 3.5 */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */ +#elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */ #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ @@ -1891,7 +1926,6 @@ SwigPyObject_TypeOnce(void) { static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { - /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else @@ -1902,7 +1936,7 @@ SwigPyObject_TypeOnce(void) { sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyObject_dealloc, /* tp_dealloc */ - (printfunc)SwigPyObject_print, /* tp_print */ + 0, /* tp_print */ #if PY_VERSION_HEX < 0x02020000 (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ #else @@ -1910,7 +1944,7 @@ SwigPyObject_TypeOnce(void) { #endif (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 - 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ + 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ #else (cmpfunc)SwigPyObject_compare, /* tp_compare */ #endif @@ -1920,7 +1954,7 @@ SwigPyObject_TypeOnce(void) { 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ - (reprfunc)SwigPyObject_str, /* tp_str */ + 0, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ @@ -1956,10 +1990,19 @@ SwigPyObject_TypeOnce(void) { 0, /* tp_del */ #endif #if PY_VERSION_HEX >= 0x02060000 - 0, /* tp_version */ + 0, /* tp_version_tag */ +#endif +#if PY_VERSION_HEX >= 0x03040000 + 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS - 0,0,0,0 /* tp_alloc -> tp_next */ + 0, /* tp_allocs */ + 0, /* tp_frees */ + 0, /* tp_maxalloc */ +#if PY_VERSION_HEX >= 0x02050000 + 0, /* tp_prev */ +#endif + 0 /* tp_next */ #endif }; swigpyobject_type = tmp; @@ -2074,7 +2117,6 @@ SwigPyPacked_TypeOnce(void) { static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { - /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX>=0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else @@ -2135,10 +2177,19 @@ SwigPyPacked_TypeOnce(void) { 0, /* tp_del */ #endif #if PY_VERSION_HEX >= 0x02060000 - 0, /* tp_version */ + 0, /* tp_version_tag */ +#endif +#if PY_VERSION_HEX >= 0x03040000 + 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS - 0,0,0,0 /* tp_alloc -> tp_next */ + 0, /* tp_allocs */ + 0, /* tp_frees */ + 0, /* tp_maxalloc */ +#if PY_VERSION_HEX >= 0x02050000 + 0, /* tp_prev */ +#endif + 0 /* tp_next */ #endif }; swigpypacked_type = tmp; @@ -2297,10 +2348,11 @@ SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) { int res; SwigPyObject *sobj; + int implicit_conv = (flags & SWIG_POINTER_IMPLICIT_CONV) != 0; if (!obj) return SWIG_ERROR; - if (obj == Py_None) { + if (obj == Py_None && !implicit_conv) { if (ptr) *ptr = 0; return SWIG_OK; @@ -2349,7 +2401,7 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int } res = SWIG_OK; } else { - if (flags & SWIG_POINTER_IMPLICIT_CONV) { + if (implicit_conv) { SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; if (data && !data->implicitconv) { PyObject *klass = data->klass; @@ -2384,6 +2436,13 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int } } } + if (!SWIG_IsOK(res) && obj == Py_None) { + if (ptr) + *ptr = 0; + if (PyErr_Occurred()) + PyErr_Clear(); + res = SWIG_OK; + } } return res; } @@ -2471,24 +2530,30 @@ SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this) } } else { #if PY_VERSION_HEX >= 0x03000000 - inst = PyBaseObject_Type.tp_new((PyTypeObject*) data->newargs, Py_None, Py_None); - PyObject_SetAttr(inst, SWIG_This(), swig_this); - Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; + inst = ((PyTypeObject*) data->newargs)->tp_new((PyTypeObject*) data->newargs, Py_None, Py_None); + if (inst) { + PyObject_SetAttr(inst, SWIG_This(), swig_this); + Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; + } #else PyObject *dict = PyDict_New(); - PyDict_SetItem(dict, SWIG_This(), swig_this); - inst = PyInstance_NewRaw(data->newargs, dict); - Py_DECREF(dict); + if (dict) { + PyDict_SetItem(dict, SWIG_This(), swig_this); + inst = PyInstance_NewRaw(data->newargs, dict); + Py_DECREF(dict); + } #endif } return inst; #else #if (PY_VERSION_HEX >= 0x02010000) - PyObject *inst; + PyObject *inst = 0; PyObject *dict = PyDict_New(); - PyDict_SetItem(dict, SWIG_This(), swig_this); - inst = PyInstance_NewRaw(data->newargs, dict); - Py_DECREF(dict); + if (dict) { + PyDict_SetItem(dict, SWIG_This(), swig_this); + inst = PyInstance_NewRaw(data->newargs, dict); + Py_DECREF(dict); + } return (PyObject *) inst; #else PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type); @@ -2539,7 +2604,7 @@ SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this) SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args) { PyObject *obj[2]; - if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) { + if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) { return NULL; } else { SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]); @@ -2575,18 +2640,21 @@ SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int f newobj = (SwigPyObject *) newobj->next; newobj->next = next_self; newobj = (SwigPyObject *)next_self; +#ifdef SWIGPYTHON_BUILTIN + newobj->dict = 0; +#endif } } else { newobj = PyObject_New(SwigPyObject, clientdata->pytype); +#ifdef SWIGPYTHON_BUILTIN + newobj->dict = 0; +#endif } if (newobj) { newobj->ptr = ptr; newobj->ty = type; newobj->own = own; newobj->next = 0; -#ifdef SWIGPYTHON_BUILTIN - newobj->dict = 0; -#endif return (PyObject*) newobj; } return SWIG_Py_Void(); @@ -2595,12 +2663,10 @@ SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int f assert(!(flags & SWIG_BUILTIN_TP_INIT)); robj = SwigPyObject_New(ptr, type, own); - if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { + if (robj && clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj); - if (inst) { - Py_DECREF(robj); - robj = inst; - } + Py_DECREF(robj); + robj = inst; } return robj; } @@ -2621,7 +2687,7 @@ void *SWIG_ReturnGlobalTypeList(void *); #endif SWIGRUNTIME swig_module_info * -SWIG_Python_GetModule(void) { +SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata)) { static void *type_pointer = (void *)0; /* first check if module already created */ if (!type_pointer) { @@ -2651,13 +2717,11 @@ PyModule_AddObject(PyObject *m, char *name, PyObject *o) { PyObject *dict; if (!PyModule_Check(m)) { - PyErr_SetString(PyExc_TypeError, - "PyModule_AddObject() needs module as first arg"); + PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); return SWIG_ERROR; } if (!o) { - PyErr_SetString(PyExc_TypeError, - "PyModule_AddObject() needs non-NULL value"); + PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); return SWIG_ERROR; } @@ -2747,7 +2811,7 @@ SWIG_Python_TypeQuery(const char *type) descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); #endif } else { - swig_module_info *swig_module = SWIG_Python_GetModule(); + swig_module_info *swig_module = SWIG_GetModule(0); descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); if (descriptor) { #ifdef SWIGPY_USE_CAPSULE @@ -2815,7 +2879,7 @@ SwigPyObject_GetDesc(PyObject *self) { SwigPyObject *v = (SwigPyObject *)self; swig_type_info *ty = v ? v->ty : 0; - return ty ? ty->str : (char*)""; + return ty ? ty->str : ""; } SWIGRUNTIME void @@ -2872,23 +2936,24 @@ SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(arg return result; } +#ifdef SWIGPYTHON_BUILTIN SWIGRUNTIME int SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) { PyTypeObject *tp = obj->ob_type; PyObject *descr; PyObject *encoded_name; descrsetfunc f; - int res; + int res = -1; -#ifdef Py_USING_UNICODE +# ifdef Py_USING_UNICODE if (PyString_Check(name)) { name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL); if (!name) return -1; } else if (!PyUnicode_Check(name)) -#else +# else if (!PyString_Check(name)) -#endif +# endif { PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name); return -1; @@ -2901,7 +2966,6 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) { goto done; } - res = -1; descr = _PyType_Lookup(tp, name); f = NULL; if (descr != NULL) @@ -2923,6 +2987,7 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) { Py_DECREF(name); return res; } +#endif #ifdef __cplusplus @@ -2950,9 +3015,8 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) { #define SWIGTYPE_p_mecab_node_t swig_types[5] #define SWIGTYPE_p_mecab_path_t swig_types[6] #define SWIGTYPE_p_mecab_t swig_types[7] -#define SWIGTYPE_p_p_char swig_types[8] -static swig_type_info *swig_types[10]; -static swig_module_info swig_module = {swig_types, 9, 0, 0, 0, 0}; +static swig_type_info *swig_types[9]; +static swig_module_info swig_module = {swig_types, 8, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) @@ -2963,6 +3027,19 @@ static swig_module_info swig_module = {swig_types, 9, 0, 0, 0, 0}; # error "This python version requires swig to be run with the '-classic' option" # endif #endif +#if (PY_VERSION_HEX <= 0x02020000) +# error "This python version requires swig to be run with the '-nomodern' option" +#endif +#if (PY_VERSION_HEX <= 0x02020000) +# error "This python version requires swig to be run with the '-nomodernargs' option" +#endif +#ifndef METH_O +# error "This python version requires swig to be run with the '-nofastunpack' option" +#endif +#ifdef SWIG_TypeQuery +# undef SWIG_TypeQuery +#endif +#define SWIG_TypeQuery SWIG_Python_TypeQuery /*----------------------------------------------- @(target):= _MeCab.so @@ -2976,7 +3053,7 @@ static swig_module_info swig_module = {swig_types, 9, 0, 0, 0, 0}; #endif #define SWIG_name "_MeCab" -#define SWIGVERSION 0x020004 +#define SWIGVERSION 0x030012 #define SWIG_VERSION SWIGVERSION @@ -2999,27 +3076,35 @@ namespace swig { SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj) { + SWIG_PYTHON_THREAD_BEGIN_BLOCK; Py_XINCREF(_obj); + SWIG_PYTHON_THREAD_END_BLOCK; } SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj) { if (initial_ref) { + SWIG_PYTHON_THREAD_BEGIN_BLOCK; Py_XINCREF(_obj); + SWIG_PYTHON_THREAD_END_BLOCK; } } SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) { + SWIG_PYTHON_THREAD_BEGIN_BLOCK; Py_XINCREF(item._obj); Py_XDECREF(_obj); _obj = item._obj; + SWIG_PYTHON_THREAD_END_BLOCK; return *this; } ~SwigPtr_PyObject() { + SWIG_PYTHON_THREAD_BEGIN_BLOCK; Py_XDECREF(_obj); + SWIG_PYTHON_THREAD_END_BLOCK; } operator PyObject *() const @@ -3144,9 +3229,17 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size) SWIG_InternalNewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void(); } else { #if PY_VERSION_HEX >= 0x03000000 - return PyUnicode_FromStringAndSize(carray, static_cast< int >(size)); +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) + return PyBytes_FromStringAndSize(carray, static_cast< Py_ssize_t >(size)); #else - return PyString_FromStringAndSize(carray, static_cast< int >(size)); +#if PY_VERSION_HEX >= 0x03010000 + return PyUnicode_DecodeUTF8(carray, static_cast< Py_ssize_t >(size), "surrogateescape"); +#else + return PyUnicode_FromStringAndSize(carray, static_cast< Py_ssize_t >(size)); +#endif +#endif +#else + return PyString_FromStringAndSize(carray, static_cast< Py_ssize_t >(size)); #endif } } else { @@ -3162,6 +3255,20 @@ SWIG_FromCharPtr(const char *cptr) } +SWIGINTERNINLINE PyObject* + SWIG_From_unsigned_SS_int (unsigned int value) +{ + return PyInt_FromSize_t((size_t) value); +} + + +SWIGINTERNINLINE PyObject* + SWIG_From_int (int value) +{ + return PyInt_FromLong((long) value); +} + + #define SWIG_From_long PyInt_FromLong @@ -3169,32 +3276,59 @@ SWIGINTERNINLINE PyObject* SWIG_From_unsigned_SS_long (unsigned long value) { return (value > LONG_MAX) ? - PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value)); + PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value)); } SWIGINTERNINLINE PyObject * -SWIG_From_unsigned_SS_int (unsigned int value) +SWIG_From_unsigned_SS_short (unsigned short value) { return SWIG_From_unsigned_SS_long (value); } -SWIGINTERNINLINE PyObject * -SWIG_From_int (int value) -{ - return SWIG_From_long (value); -} +#include -SWIGINTERNINLINE PyObject * -SWIG_From_unsigned_SS_short (unsigned short value) -{ - return SWIG_From_unsigned_SS_long (value); -} +#include -#include +/* Getting isfinite working pre C99 across multiple platforms is non-trivial. Users can provide SWIG_isfinite on older platforms. */ +#ifndef SWIG_isfinite +/* isfinite() is a macro for C99 */ +# if defined(isfinite) +# define SWIG_isfinite(X) (isfinite(X)) +# elif defined __cplusplus && __cplusplus >= 201103L +/* Use a template so that this works whether isfinite() is std::isfinite() or + * in the global namespace. The reality seems to vary between compiler + * versions. + * + * Make sure namespace std exists to avoid compiler warnings. + * + * extern "C++" is required as this fragment can end up inside an extern "C" { } block + */ +namespace std { } +extern "C++" template +inline int SWIG_isfinite_func(T x) { + using namespace std; + return isfinite(x); +} +# define SWIG_isfinite(X) (SWIG_isfinite_func(X)) +# elif defined(_MSC_VER) +# define SWIG_isfinite(X) (_finite(X)) +# elif defined(__sun) && defined(__SVR4) +# include +# define SWIG_isfinite(X) (finite(X)) +# endif +#endif + + +/* Accept infinite as a valid float value unless we are unable to check if a value is finite */ +#ifdef SWIG_isfinite +# define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX) && SWIG_isfinite(X)) +#else +# define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX)) +#endif SWIGINTERN int @@ -3204,9 +3338,11 @@ SWIG_AsVal_double (PyObject *obj, double *val) if (PyFloat_Check(obj)) { if (val) *val = PyFloat_AsDouble(obj); return SWIG_OK; +#if PY_VERSION_HEX < 0x03000000 } else if (PyInt_Check(obj)) { - if (val) *val = PyInt_AsLong(obj); + if (val) *val = (double) PyInt_AsLong(obj); return SWIG_OK; +#endif } else if (PyLong_Check(obj)) { double v = PyLong_AsDouble(obj); if (!PyErr_Occurred()) { @@ -3247,7 +3383,7 @@ SWIG_AsVal_float (PyObject * obj, float *val) double v; int res = SWIG_AsVal_double (obj, &v); if (SWIG_IsOK(res)) { - if ((v < -FLT_MAX || v > FLT_MAX)) { + if (SWIG_Float_Overflow_Check(v)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< float >(v); @@ -3288,9 +3424,6 @@ SWIGINTERNINLINE PyObject* } -#include - - SWIGINTERNINLINE int SWIG_CanCastAsInteger(double *d, double min, double max) { double x = *d; @@ -3324,6 +3457,7 @@ SWIG_CanCastAsInteger(double *d, double min, double max) { SWIGINTERN int SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) { +#if PY_VERSION_HEX < 0x03000000 if (PyInt_Check(obj)) { long v = PyInt_AsLong(obj); if (v >= 0) { @@ -3332,13 +3466,16 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) } else { return SWIG_OverflowError; } - } else if (PyLong_Check(obj)) { + } else +#endif + if (PyLong_Check(obj)) { unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); + return SWIG_OverflowError; } } #ifdef SWIG_PYTHON_CAST_MODE @@ -3365,46 +3502,126 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) } +#include +#if !defined(SWIG_NO_LLONG_MAX) +# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) +# define LLONG_MAX __LONG_LONG_MAX__ +# define LLONG_MIN (-LLONG_MAX - 1LL) +# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) +# endif +#endif + + +#if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE) +# define SWIG_LONG_LONG_AVAILABLE +#endif + + +#ifdef SWIG_LONG_LONG_AVAILABLE +SWIGINTERN int +SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned long long *val) +{ + int res = SWIG_TypeError; + if (PyLong_Check(obj)) { + unsigned long long v = PyLong_AsUnsignedLongLong(obj); + if (!PyErr_Occurred()) { + if (val) *val = v; + return SWIG_OK; + } else { + PyErr_Clear(); + res = SWIG_OverflowError; + } + } else { + unsigned long v; + res = SWIG_AsVal_unsigned_SS_long (obj,&v); + if (SWIG_IsOK(res)) { + if (val) *val = v; + return res; + } + } +#ifdef SWIG_PYTHON_CAST_MODE + { + const double mant_max = 1LL << DBL_MANT_DIG; + double d; + res = SWIG_AsVal_double (obj,&d); + if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, 0, mant_max)) + return SWIG_OverflowError; + if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) { + if (val) *val = (unsigned long long)(d); + return SWIG_AddCast(res); + } + res = SWIG_TypeError; + } +#endif + return res; +} +#endif + + SWIGINTERNINLINE int SWIG_AsVal_size_t (PyObject * obj, size_t *val) { - unsigned long v; - int res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); - if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); + int res = SWIG_TypeError; +#ifdef SWIG_LONG_LONG_AVAILABLE + if (sizeof(size_t) <= sizeof(unsigned long)) { +#endif + unsigned long v; + res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); + if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); +#ifdef SWIG_LONG_LONG_AVAILABLE + } else if (sizeof(size_t) <= sizeof(unsigned long long)) { + unsigned long long v; + res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0); + if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); + } +#endif return res; } -SWIGINTERNINLINE PyObject * -SWIG_From_size_t (size_t value) -{ - return SWIG_From_unsigned_SS_long (static_cast< unsigned long >(value)); +#ifdef SWIG_LONG_LONG_AVAILABLE +SWIGINTERNINLINE PyObject* +SWIG_From_unsigned_SS_long_SS_long (unsigned long long value) +{ + return (value > LONG_MAX) ? + PyLong_FromUnsignedLongLong(value) : PyInt_FromLong(static_cast< long >(value)); } +#endif -#include -#if !defined(SWIG_NO_LLONG_MAX) -# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) -# define LLONG_MAX __LONG_LONG_MAX__ -# define LLONG_MIN (-LLONG_MAX - 1LL) -# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) -# endif +SWIGINTERNINLINE PyObject * +SWIG_From_size_t (size_t value) +{ +#ifdef SWIG_LONG_LONG_AVAILABLE + if (sizeof(size_t) <= sizeof(unsigned long)) { #endif + return SWIG_From_unsigned_SS_long (static_cast< unsigned long >(value)); +#ifdef SWIG_LONG_LONG_AVAILABLE + } else { + /* assume sizeof(size_t) <= sizeof(unsigned long long) */ + return SWIG_From_unsigned_SS_long_SS_long (static_cast< unsigned long long >(value)); + } +#endif +} SWIGINTERN int SWIG_AsVal_long (PyObject *obj, long* val) { +#if PY_VERSION_HEX < 0x03000000 if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; - } else if (PyLong_Check(obj)) { + } else +#endif + if (PyLong_Check(obj)) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); + return SWIG_OverflowError; } } #ifdef SWIG_PYTHON_CAST_MODE @@ -3451,13 +3668,18 @@ SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) { #if PY_VERSION_HEX>=0x03000000 +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) + if (PyBytes_Check(obj)) +#else if (PyUnicode_Check(obj)) +#endif #else if (PyString_Check(obj)) #endif { char *cstr; Py_ssize_t len; #if PY_VERSION_HEX>=0x03000000 +#if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) if (!alloc && cptr) { /* We can't allow converting without allocation, since the internal representation of string in Python 3 is UCS-2/UCS-4 but we require @@ -3466,8 +3688,9 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); - PyBytes_AsStringAndSize(obj, &cstr, &len); if(alloc) *alloc = SWIG_NEWOBJ; +#endif + PyBytes_AsStringAndSize(obj, &cstr, &len); #else PyString_AsStringAndSize(obj, &cstr, &len); #endif @@ -3487,27 +3710,58 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) #else if (*alloc == SWIG_NEWOBJ) #endif - { - *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1))); - *alloc = SWIG_NEWOBJ; - } - else { + { + *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1))); + *alloc = SWIG_NEWOBJ; + } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } else { - #if PY_VERSION_HEX>=0x03000000 - assert(0); /* Should never reach here in Python 3 */ - #endif +#if PY_VERSION_HEX>=0x03000000 +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) + *cptr = PyBytes_AsString(obj); +#else + assert(0); /* Should never reach here with Unicode strings in Python 3 */ +#endif +#else *cptr = SWIG_Python_str_AsChar(obj); +#endif } } if (psize) *psize = len + 1; -#if PY_VERSION_HEX>=0x03000000 +#if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) Py_XDECREF(obj); #endif return SWIG_OK; } else { +#if defined(SWIG_PYTHON_2_UNICODE) +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) +#error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once" +#endif +#if PY_VERSION_HEX<0x03000000 + if (PyUnicode_Check(obj)) { + char *cstr; Py_ssize_t len; + if (!alloc && cptr) { + return SWIG_RuntimeError; + } + obj = PyUnicode_AsUTF8String(obj); + if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) { + if (cptr) { + if (alloc) *alloc = SWIG_NEWOBJ; + *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1))); + } + if (psize) *psize = len + 1; + + Py_XDECREF(obj); + return SWIG_OK; + } else { + Py_XDECREF(obj); + } + } +#endif +#endif + swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { void* vptr = 0; @@ -3549,7 +3803,10 @@ SWIG_AsVal_unsigned_SS_short (PyObject * obj, unsigned short *val) SWIGINTERN int SWIG_AsVal_bool (PyObject *obj, bool *val) { - int r = PyObject_IsTrue(obj); + int r; + if (!PyBool_Check(obj)) + return SWIG_ERROR; + r = PyObject_IsTrue(obj); if (r == -1) return SWIG_ERROR; if (val) *val = r ? true : false; @@ -3567,11 +3824,12 @@ SWIGINTERN PyObject *_wrap_DictionaryInfo_filename_get(PyObject *SWIGUNUSEDPARM( mecab_dictionary_info_t *arg1 = (mecab_dictionary_info_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:DictionaryInfo_filename_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DictionaryInfo_filename_get" "', argument " "1"" of type '" "mecab_dictionary_info_t *""'"); } @@ -3589,11 +3847,12 @@ SWIGINTERN PyObject *_wrap_DictionaryInfo_charset_get(PyObject *SWIGUNUSEDPARM(s mecab_dictionary_info_t *arg1 = (mecab_dictionary_info_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:DictionaryInfo_charset_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DictionaryInfo_charset_get" "', argument " "1"" of type '" "mecab_dictionary_info_t *""'"); } @@ -3611,11 +3870,12 @@ SWIGINTERN PyObject *_wrap_DictionaryInfo_size_get(PyObject *SWIGUNUSEDPARM(self mecab_dictionary_info_t *arg1 = (mecab_dictionary_info_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned int result; - if (!PyArg_ParseTuple(args,(char *)"O:DictionaryInfo_size_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DictionaryInfo_size_get" "', argument " "1"" of type '" "mecab_dictionary_info_t *""'"); } @@ -3633,11 +3893,12 @@ SWIGINTERN PyObject *_wrap_DictionaryInfo_type_get(PyObject *SWIGUNUSEDPARM(self mecab_dictionary_info_t *arg1 = (mecab_dictionary_info_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:DictionaryInfo_type_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DictionaryInfo_type_get" "', argument " "1"" of type '" "mecab_dictionary_info_t *""'"); } @@ -3655,11 +3916,12 @@ SWIGINTERN PyObject *_wrap_DictionaryInfo_lsize_get(PyObject *SWIGUNUSEDPARM(sel mecab_dictionary_info_t *arg1 = (mecab_dictionary_info_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned int result; - if (!PyArg_ParseTuple(args,(char *)"O:DictionaryInfo_lsize_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DictionaryInfo_lsize_get" "', argument " "1"" of type '" "mecab_dictionary_info_t *""'"); } @@ -3677,11 +3939,12 @@ SWIGINTERN PyObject *_wrap_DictionaryInfo_rsize_get(PyObject *SWIGUNUSEDPARM(sel mecab_dictionary_info_t *arg1 = (mecab_dictionary_info_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned int result; - if (!PyArg_ParseTuple(args,(char *)"O:DictionaryInfo_rsize_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DictionaryInfo_rsize_get" "', argument " "1"" of type '" "mecab_dictionary_info_t *""'"); } @@ -3699,11 +3962,12 @@ SWIGINTERN PyObject *_wrap_DictionaryInfo_version_get(PyObject *SWIGUNUSEDPARM(s mecab_dictionary_info_t *arg1 = (mecab_dictionary_info_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned short result; - if (!PyArg_ParseTuple(args,(char *)"O:DictionaryInfo_version_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DictionaryInfo_version_get" "', argument " "1"" of type '" "mecab_dictionary_info_t *""'"); } @@ -3721,11 +3985,12 @@ SWIGINTERN PyObject *_wrap_DictionaryInfo_next_get(PyObject *SWIGUNUSEDPARM(self mecab_dictionary_info_t *arg1 = (mecab_dictionary_info_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_dictionary_info_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:DictionaryInfo_next_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_dictionary_info_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DictionaryInfo_next_get" "', argument " "1"" of type '" "mecab_dictionary_info_t *""'"); } @@ -3742,7 +4007,7 @@ SWIGINTERN PyObject *_wrap_new_DictionaryInfo(PyObject *SWIGUNUSEDPARM(self), Py PyObject *resultobj = 0; mecab_dictionary_info_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)":new_DictionaryInfo")) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args,"new_DictionaryInfo",0,0,0)) SWIG_fail; { try { result = (mecab_dictionary_info_t *)new mecab_dictionary_info_t(); @@ -3766,10 +4031,11 @@ SWIGINTERN PyObject *_wrap_delete_DictionaryInfo(PyObject *SWIGUNUSEDPARM(self), mecab_dictionary_info_t *arg1 = (mecab_dictionary_info_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; - if (!PyArg_ParseTuple(args,(char *)"O:delete_DictionaryInfo",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_dictionary_info_t, SWIG_POINTER_DISOWN | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_dictionary_info_t, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_DictionaryInfo" "', argument " "1"" of type '" "mecab_dictionary_info_t *""'"); } @@ -3794,21 +4060,26 @@ SWIGINTERN PyObject *_wrap_delete_DictionaryInfo(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *DictionaryInfo_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!SWIG_Python_UnpackTuple(args,(char *)"swigregister", 1, 1,&obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_mecab_dictionary_info_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } +SWIGINTERN PyObject *DictionaryInfo_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + return SWIG_Python_InitShadowInstance(args); +} + SWIGINTERN PyObject *_wrap_Path_rnode_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; mecab_path_t *arg1 = (mecab_path_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_node_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Path_rnode_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Path_rnode_get" "', argument " "1"" of type '" "mecab_path_t *""'"); } @@ -3826,11 +4097,12 @@ SWIGINTERN PyObject *_wrap_Path_rnext_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_path_t *arg1 = (mecab_path_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_path_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Path_rnext_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Path_rnext_get" "', argument " "1"" of type '" "mecab_path_t *""'"); } @@ -3848,11 +4120,12 @@ SWIGINTERN PyObject *_wrap_Path_lnode_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_path_t *arg1 = (mecab_path_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_node_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Path_lnode_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Path_lnode_get" "', argument " "1"" of type '" "mecab_path_t *""'"); } @@ -3870,11 +4143,12 @@ SWIGINTERN PyObject *_wrap_Path_lnext_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_path_t *arg1 = (mecab_path_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_path_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Path_lnext_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Path_lnext_get" "', argument " "1"" of type '" "mecab_path_t *""'"); } @@ -3892,11 +4166,12 @@ SWIGINTERN PyObject *_wrap_Path_cost_get(PyObject *SWIGUNUSEDPARM(self), PyObjec mecab_path_t *arg1 = (mecab_path_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:Path_cost_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Path_cost_get" "', argument " "1"" of type '" "mecab_path_t *""'"); } @@ -3917,16 +4192,15 @@ SWIGINTERN PyObject *_wrap_Path_prob_set(PyObject *SWIGUNUSEDPARM(self), PyObjec int res1 = 0 ; float val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Path_prob_set",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Path_prob_set",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Path_prob_set" "', argument " "1"" of type '" "mecab_path_t *""'"); } arg1 = reinterpret_cast< mecab_path_t * >(argp1); - ecode2 = SWIG_AsVal_float(obj1, &val2); + ecode2 = SWIG_AsVal_float(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Path_prob_set" "', argument " "2"" of type '" "float""'"); } @@ -3944,11 +4218,12 @@ SWIGINTERN PyObject *_wrap_Path_prob_get(PyObject *SWIGUNUSEDPARM(self), PyObjec mecab_path_t *arg1 = (mecab_path_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; float result; - if (!PyArg_ParseTuple(args,(char *)"O:Path_prob_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Path_prob_get" "', argument " "1"" of type '" "mecab_path_t *""'"); } @@ -3963,7 +4238,7 @@ SWIGINTERN PyObject *_wrap_Path_prob_get(PyObject *SWIGUNUSEDPARM(self), PyObjec SWIGINTERN PyObject *Path_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!SWIG_Python_UnpackTuple(args,(char *)"swigregister", 1, 1,&obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_mecab_path_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -3973,11 +4248,12 @@ SWIGINTERN PyObject *_wrap_Node_prev_get(PyObject *SWIGUNUSEDPARM(self), PyObjec mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_node_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Node_prev_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_prev_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -3995,11 +4271,12 @@ SWIGINTERN PyObject *_wrap_Node_next_get(PyObject *SWIGUNUSEDPARM(self), PyObjec mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_node_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Node_next_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_next_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4017,11 +4294,12 @@ SWIGINTERN PyObject *_wrap_Node_enext_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_node_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Node_enext_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_enext_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4039,11 +4317,12 @@ SWIGINTERN PyObject *_wrap_Node_bnext_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_node_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Node_bnext_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_bnext_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4061,11 +4340,12 @@ SWIGINTERN PyObject *_wrap_Node_rpath_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_path_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Node_rpath_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_rpath_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4083,11 +4363,12 @@ SWIGINTERN PyObject *_wrap_Node_lpath_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; mecab_path_t *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Node_lpath_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_lpath_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4105,11 +4386,12 @@ SWIGINTERN PyObject *_wrap_Node_feature_get(PyObject *SWIGUNUSEDPARM(self), PyOb mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Node_feature_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_feature_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4127,11 +4409,12 @@ SWIGINTERN PyObject *_wrap_Node_id_get(PyObject *SWIGUNUSEDPARM(self), PyObject mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned int result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_id_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_id_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4149,11 +4432,12 @@ SWIGINTERN PyObject *_wrap_Node_length_get(PyObject *SWIGUNUSEDPARM(self), PyObj mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned short result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_length_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_length_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4171,11 +4455,12 @@ SWIGINTERN PyObject *_wrap_Node_rlength_get(PyObject *SWIGUNUSEDPARM(self), PyOb mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned short result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_rlength_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_rlength_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4193,11 +4478,12 @@ SWIGINTERN PyObject *_wrap_Node_rcAttr_get(PyObject *SWIGUNUSEDPARM(self), PyObj mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned short result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_rcAttr_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_rcAttr_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4215,11 +4501,12 @@ SWIGINTERN PyObject *_wrap_Node_lcAttr_get(PyObject *SWIGUNUSEDPARM(self), PyObj mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned short result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_lcAttr_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_lcAttr_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4237,11 +4524,12 @@ SWIGINTERN PyObject *_wrap_Node_posid_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned short result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_posid_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_posid_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4259,11 +4547,12 @@ SWIGINTERN PyObject *_wrap_Node_char_type_get(PyObject *SWIGUNUSEDPARM(self), Py mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned char result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_char_type_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_char_type_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4281,11 +4570,12 @@ SWIGINTERN PyObject *_wrap_Node_stat_get(PyObject *SWIGUNUSEDPARM(self), PyObjec mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned char result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_stat_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_stat_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4303,11 +4593,12 @@ SWIGINTERN PyObject *_wrap_Node_isbest_get(PyObject *SWIGUNUSEDPARM(self), PyObj mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; unsigned char result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_isbest_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_isbest_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4325,11 +4616,12 @@ SWIGINTERN PyObject *_wrap_Node_alpha_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; float result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_alpha_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_alpha_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4347,11 +4639,12 @@ SWIGINTERN PyObject *_wrap_Node_beta_get(PyObject *SWIGUNUSEDPARM(self), PyObjec mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; float result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_beta_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_beta_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4372,16 +4665,15 @@ SWIGINTERN PyObject *_wrap_Node_prob_set(PyObject *SWIGUNUSEDPARM(self), PyObjec int res1 = 0 ; float val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Node_prob_set",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Node_prob_set",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_prob_set" "', argument " "1"" of type '" "mecab_node_t *""'"); } arg1 = reinterpret_cast< mecab_node_t * >(argp1); - ecode2 = SWIG_AsVal_float(obj1, &val2); + ecode2 = SWIG_AsVal_float(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Node_prob_set" "', argument " "2"" of type '" "float""'"); } @@ -4399,11 +4691,12 @@ SWIGINTERN PyObject *_wrap_Node_prob_get(PyObject *SWIGUNUSEDPARM(self), PyObjec mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; float result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_prob_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_prob_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4421,11 +4714,12 @@ SWIGINTERN PyObject *_wrap_Node_wcost_get(PyObject *SWIGUNUSEDPARM(self), PyObje mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; short result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_wcost_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_wcost_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4443,11 +4737,12 @@ SWIGINTERN PyObject *_wrap_Node_cost_get(PyObject *SWIGUNUSEDPARM(self), PyObjec mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; long result; - if (!PyArg_ParseTuple(args,(char *)"O:Node_cost_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_cost_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4465,11 +4760,12 @@ SWIGINTERN PyObject *_wrap_Node_surface_get(PyObject *SWIGUNUSEDPARM(self), PyOb mecab_node_t *arg1 = (mecab_node_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Node_surface_get",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Node_surface_get" "', argument " "1"" of type '" "mecab_node_t *""'"); } @@ -4495,7 +4791,7 @@ SWIGINTERN PyObject *_wrap_Node_surface_get(PyObject *SWIGUNUSEDPARM(self), PyOb SWIGINTERN PyObject *Node_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!SWIG_Python_UnpackTuple(args,(char *)"swigregister", 1, 1,&obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_mecab_node_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -4505,10 +4801,11 @@ SWIGINTERN PyObject *_wrap_Lattice_clear(PyObject *SWIGUNUSEDPARM(self), PyObjec MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_clear",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_clear" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } @@ -4536,11 +4833,12 @@ SWIGINTERN PyObject *_wrap_Lattice_is_available(PyObject *SWIGUNUSEDPARM(self), MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; bool result; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_is_available",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_is_available" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -4568,11 +4866,12 @@ SWIGINTERN PyObject *_wrap_Lattice_bos_node(PyObject *SWIGUNUSEDPARM(self), PyOb MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; MeCab::Node *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_bos_node",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_bos_node" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -4600,11 +4899,12 @@ SWIGINTERN PyObject *_wrap_Lattice_eos_node(PyObject *SWIGUNUSEDPARM(self), PyOb MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; MeCab::Node *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_eos_node",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_eos_node" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -4635,17 +4935,16 @@ SWIGINTERN PyObject *_wrap_Lattice_end_nodes(PyObject *SWIGUNUSEDPARM(self), PyO int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; MeCab::Node *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_end_nodes",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_end_nodes",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_end_nodes" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); + ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_end_nodes" "', argument " "2"" of type '" "size_t""'"); } @@ -4676,17 +4975,16 @@ SWIGINTERN PyObject *_wrap_Lattice_begin_nodes(PyObject *SWIGUNUSEDPARM(self), P int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; MeCab::Node *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_begin_nodes",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_begin_nodes",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_begin_nodes" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); + ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_begin_nodes" "', argument " "2"" of type '" "size_t""'"); } @@ -4714,11 +5012,12 @@ SWIGINTERN PyObject *_wrap_Lattice_sentence(PyObject *SWIGUNUSEDPARM(self), PyOb MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_sentence",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_sentence" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -4746,11 +5045,12 @@ SWIGINTERN PyObject *_wrap_Lattice_size(PyObject *SWIGUNUSEDPARM(self), PyObject MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; size_t result; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_size",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_size" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -4781,16 +5081,15 @@ SWIGINTERN PyObject *_wrap_Lattice_set_Z(PyObject *SWIGUNUSEDPARM(self), PyObjec int res1 = 0 ; double val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_set_Z",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_set_Z",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_set_Z" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); + ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_set_Z" "', argument " "2"" of type '" "double""'"); } @@ -4818,11 +5117,12 @@ SWIGINTERN PyObject *_wrap_Lattice_Z(PyObject *SWIGUNUSEDPARM(self), PyObject *a MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; double result; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_Z",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_Z" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -4853,16 +5153,15 @@ SWIGINTERN PyObject *_wrap_Lattice_set_theta(PyObject *SWIGUNUSEDPARM(self), PyO int res1 = 0 ; float val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_set_theta",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_set_theta",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_set_theta" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_float(obj1, &val2); + ecode2 = SWIG_AsVal_float(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_set_theta" "', argument " "2"" of type '" "float""'"); } @@ -4890,11 +5189,12 @@ SWIGINTERN PyObject *_wrap_Lattice_theta(PyObject *SWIGUNUSEDPARM(self), PyObjec MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; float result; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_theta",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_theta" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -4922,11 +5222,12 @@ SWIGINTERN PyObject *_wrap_Lattice_next(PyObject *SWIGUNUSEDPARM(self), PyObject MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; bool result; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_next",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_next" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } @@ -4954,11 +5255,12 @@ SWIGINTERN PyObject *_wrap_Lattice_request_type(PyObject *SWIGUNUSEDPARM(self), MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_request_type",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_request_type" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -4989,17 +5291,16 @@ SWIGINTERN PyObject *_wrap_Lattice_has_request_type(PyObject *SWIGUNUSEDPARM(sel int res1 = 0 ; int val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; bool result; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_has_request_type",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_has_request_type",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_has_request_type" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_int(obj1, &val2); + ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_has_request_type" "', argument " "2"" of type '" "int""'"); } @@ -5030,16 +5331,15 @@ SWIGINTERN PyObject *_wrap_Lattice_set_request_type(PyObject *SWIGUNUSEDPARM(sel int res1 = 0 ; int val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_set_request_type",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_set_request_type",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_set_request_type" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_int(obj1, &val2); + ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_set_request_type" "', argument " "2"" of type '" "int""'"); } @@ -5070,16 +5370,15 @@ SWIGINTERN PyObject *_wrap_Lattice_add_request_type(PyObject *SWIGUNUSEDPARM(sel int res1 = 0 ; int val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_add_request_type",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_add_request_type",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_add_request_type" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_int(obj1, &val2); + ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_add_request_type" "', argument " "2"" of type '" "int""'"); } @@ -5110,16 +5409,15 @@ SWIGINTERN PyObject *_wrap_Lattice_remove_request_type(PyObject *SWIGUNUSEDPARM( int res1 = 0 ; int val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_remove_request_type",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_remove_request_type",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_remove_request_type" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_int(obj1, &val2); + ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_remove_request_type" "', argument " "2"" of type '" "int""'"); } @@ -5147,11 +5445,12 @@ SWIGINTERN PyObject *_wrap_Lattice_newNode(PyObject *SWIGUNUSEDPARM(self), PyObj MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; MeCab::Node *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_newNode",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_newNode" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } @@ -5174,16 +5473,15 @@ SWIGINTERN PyObject *_wrap_Lattice_newNode(PyObject *SWIGUNUSEDPARM(self), PyObj } -SWIGINTERN PyObject *_wrap_Lattice_toString__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Lattice_toString__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_toString",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_toString" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } @@ -5206,7 +5504,7 @@ SWIGINTERN PyObject *_wrap_Lattice_toString__SWIG_0(PyObject *SWIGUNUSEDPARM(sel } -SWIGINTERN PyObject *_wrap_Lattice_toString__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Lattice_toString__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; MeCab::Node *arg2 = (MeCab::Node *) 0 ; @@ -5214,17 +5512,15 @@ SWIGINTERN PyObject *_wrap_Lattice_toString__SWIG_1(PyObject *SWIGUNUSEDPARM(sel int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_toString",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_toString" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Lattice_toString" "', argument " "2"" of type '" "MeCab::Node const *""'"); } @@ -5248,37 +5544,18 @@ SWIGINTERN PyObject *_wrap_Lattice_toString__SWIG_1(PyObject *SWIGUNUSEDPARM(sel SWIGINTERN PyObject *_wrap_Lattice_toString(PyObject *self, PyObject *args) { - int argc; - PyObject *argv[3]; - int ii; + Py_ssize_t argc; + PyObject *argv[3] = { + 0 + }; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? (int)PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } + if (!(argc = SWIG_Python_UnpackTuple(args,"Lattice_toString",0,2,argv))) SWIG_fail; + --argc; if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_MeCab__Lattice, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Lattice_toString__SWIG_0(self, args); - } + return _wrap_Lattice_toString__SWIG_0(self, argc, argv); } if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_MeCab__Lattice, 0); - _v = SWIG_CheckState(res); - if (_v) { - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mecab_node_t, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Lattice_toString__SWIG_1(self, args); - } - } + return _wrap_Lattice_toString__SWIG_1(self, argc, argv); } fail: @@ -5298,17 +5575,16 @@ SWIGINTERN PyObject *_wrap_Lattice_enumNBestAsString(PyObject *SWIGUNUSEDPARM(se int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_enumNBestAsString",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_enumNBestAsString",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_enumNBestAsString" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); + ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_enumNBestAsString" "', argument " "2"" of type '" "size_t""'"); } @@ -5336,11 +5612,12 @@ SWIGINTERN PyObject *_wrap_Lattice_has_constraint(PyObject *SWIGUNUSEDPARM(self) MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; bool result; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_has_constraint",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_has_constraint" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -5371,17 +5648,16 @@ SWIGINTERN PyObject *_wrap_Lattice_boundary_constraint(PyObject *SWIGUNUSEDPARM( int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; int result; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_boundary_constraint",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_boundary_constraint",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_boundary_constraint" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); + ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_boundary_constraint" "', argument " "2"" of type '" "size_t""'"); } @@ -5412,17 +5688,16 @@ SWIGINTERN PyObject *_wrap_Lattice_feature_constraint(PyObject *SWIGUNUSEDPARM(s int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_feature_constraint",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_feature_constraint",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_feature_constraint" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); + ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_feature_constraint" "', argument " "2"" of type '" "size_t""'"); } @@ -5456,22 +5731,20 @@ SWIGINTERN PyObject *_wrap_Lattice_set_boundary_constraint(PyObject *SWIGUNUSEDP int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; + PyObject *swig_obj[3] ; - if (!PyArg_ParseTuple(args,(char *)"OOO:Lattice_set_boundary_constraint",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_set_boundary_constraint",3,3,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_set_boundary_constraint" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); + ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_set_boundary_constraint" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); - ecode3 = SWIG_AsVal_int(obj2, &val3); + ecode3 = SWIG_AsVal_int(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Lattice_set_boundary_constraint" "', argument " "3"" of type '" "int""'"); } @@ -5509,28 +5782,25 @@ SWIGINTERN PyObject *_wrap_Lattice_set_feature_constraint(PyObject *SWIGUNUSEDPA int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; + PyObject *swig_obj[4] ; - if (!PyArg_ParseTuple(args,(char *)"OOOO:Lattice_set_feature_constraint",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_set_feature_constraint",4,4,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_set_feature_constraint" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); + ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Lattice_set_feature_constraint" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); - ecode3 = SWIG_AsVal_size_t(obj2, &val3); + ecode3 = SWIG_AsVal_size_t(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Lattice_set_feature_constraint" "', argument " "3"" of type '" "size_t""'"); } arg3 = static_cast< size_t >(val3); - res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); + res4 = SWIG_AsCharPtrAndSize(swig_obj[3], &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "Lattice_set_feature_constraint" "', argument " "4"" of type '" "char const *""'"); } @@ -5564,16 +5834,15 @@ SWIGINTERN PyObject *_wrap_Lattice_set_result(PyObject *SWIGUNUSEDPARM(self), Py int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_set_result",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_set_result",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_set_result" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Lattice_set_result" "', argument " "2"" of type '" "char const *""'"); } @@ -5603,11 +5872,12 @@ SWIGINTERN PyObject *_wrap_Lattice_what(PyObject *SWIGUNUSEDPARM(self), PyObject MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Lattice_what",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_what" "', argument " "1"" of type '" "MeCab::Lattice const *""'"); } @@ -5639,16 +5909,15 @@ SWIGINTERN PyObject *_wrap_Lattice_set_what(PyObject *SWIGUNUSEDPARM(self), PyOb int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_set_what",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_set_what",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_set_what" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Lattice_set_what" "', argument " "2"" of type '" "char const *""'"); } @@ -5678,10 +5947,11 @@ SWIGINTERN PyObject *_wrap_delete_Lattice(PyObject *SWIGUNUSEDPARM(self), PyObje MeCab::Lattice *arg1 = (MeCab::Lattice *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; - if (!PyArg_ParseTuple(args,(char *)"O:delete_Lattice",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, SWIG_POINTER_DISOWN | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Lattice" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } @@ -5708,7 +5978,7 @@ SWIGINTERN PyObject *_wrap_new_Lattice(PyObject *SWIGUNUSEDPARM(self), PyObject PyObject *resultobj = 0; MeCab::Lattice *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)":new_Lattice")) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args,"new_Lattice",0,0,0)) SWIG_fail; { try { result = (MeCab::Lattice *)new_MeCab_Lattice(); @@ -5736,16 +6006,15 @@ SWIGINTERN PyObject *_wrap_Lattice_set_sentence(PyObject *SWIGUNUSEDPARM(self), int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Lattice_set_sentence",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Lattice_set_sentence",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice_set_sentence" "', argument " "1"" of type '" "MeCab::Lattice *""'"); } arg1 = reinterpret_cast< MeCab::Lattice * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Lattice_set_sentence" "', argument " "2"" of type '" "char const *""'"); } @@ -5772,21 +6041,26 @@ SWIGINTERN PyObject *_wrap_Lattice_set_sentence(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *Lattice_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!SWIG_Python_UnpackTuple(args,(char *)"swigregister", 1, 1,&obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_MeCab__Lattice, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } +SWIGINTERN PyObject *Lattice_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + return SWIG_Python_InitShadowInstance(args); +} + SWIGINTERN PyObject *_wrap_Model_dictionary_info(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MeCab::Model *arg1 = (MeCab::Model *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; MeCab::DictionaryInfo *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Model_dictionary_info",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Model_dictionary_info" "', argument " "1"" of type '" "MeCab::Model const *""'"); } @@ -5820,23 +6094,21 @@ SWIGINTERN PyObject *_wrap_Model_transition_cost(PyObject *SWIGUNUSEDPARM(self), int ecode2 = 0 ; unsigned short val3 ; int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; + PyObject *swig_obj[3] ; int result; - if (!PyArg_ParseTuple(args,(char *)"OOO:Model_transition_cost",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Model_transition_cost",3,3,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Model_transition_cost" "', argument " "1"" of type '" "MeCab::Model const *""'"); } arg1 = reinterpret_cast< MeCab::Model * >(argp1); - ecode2 = SWIG_AsVal_unsigned_SS_short(obj1, &val2); + ecode2 = SWIG_AsVal_unsigned_SS_short(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Model_transition_cost" "', argument " "2"" of type '" "unsigned short""'"); } arg2 = static_cast< unsigned short >(val2); - ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); + ecode3 = SWIG_AsVal_unsigned_SS_short(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Model_transition_cost" "', argument " "3"" of type '" "unsigned short""'"); } @@ -5875,29 +6147,26 @@ SWIGINTERN PyObject *_wrap_Model_lookup(PyObject *SWIGUNUSEDPARM(self), PyObject int alloc3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; + PyObject *swig_obj[4] ; MeCab::Node *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OOOO:Model_lookup",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Model_lookup",4,4,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Model_lookup" "', argument " "1"" of type '" "MeCab::Model const *""'"); } arg1 = reinterpret_cast< MeCab::Model * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Model_lookup" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); + res3 = SWIG_AsCharPtrAndSize(swig_obj[2], &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Model_lookup" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); - res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + res4 = SWIG_ConvertPtr(swig_obj[3], &argp4,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "Model_lookup" "', argument " "4"" of type '" "MeCab::Lattice *""'"); } @@ -5929,11 +6198,12 @@ SWIGINTERN PyObject *_wrap_Model_createTagger(PyObject *SWIGUNUSEDPARM(self), Py MeCab::Model *arg1 = (MeCab::Model *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; MeCab::Tagger *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Model_createTagger",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Model_createTagger" "', argument " "1"" of type '" "MeCab::Model const *""'"); } @@ -5961,11 +6231,12 @@ SWIGINTERN PyObject *_wrap_Model_createLattice(PyObject *SWIGUNUSEDPARM(self), P MeCab::Model *arg1 = (MeCab::Model *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; MeCab::Lattice *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Model_createLattice",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Model_createLattice" "', argument " "1"" of type '" "MeCab::Model const *""'"); } @@ -5996,17 +6267,16 @@ SWIGINTERN PyObject *_wrap_Model_swap(PyObject *SWIGUNUSEDPARM(self), PyObject * int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; bool result; - if (!PyArg_ParseTuple(args,(char *)"OO:Model_swap",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Model_swap",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Model, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Model_swap" "', argument " "1"" of type '" "MeCab::Model *""'"); } arg1 = reinterpret_cast< MeCab::Model * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MeCab__Model, 0 | 0 ); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_MeCab__Model, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Model_swap" "', argument " "2"" of type '" "MeCab::Model *""'"); } @@ -6033,7 +6303,7 @@ SWIGINTERN PyObject *_wrap_Model_version(PyObject *SWIGUNUSEDPARM(self), PyObjec PyObject *resultobj = 0; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)":Model_version")) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args,"Model_version",0,0,0)) SWIG_fail; { try { result = (char *)MeCab::Model::version(); @@ -6057,10 +6327,11 @@ SWIGINTERN PyObject *_wrap_delete_Model(PyObject *SWIGUNUSEDPARM(self), PyObject MeCab::Model *arg1 = (MeCab::Model *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; - if (!PyArg_ParseTuple(args,(char *)"O:delete_Model",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Model, SWIG_POINTER_DISOWN | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Model, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Model" "', argument " "1"" of type '" "MeCab::Model *""'"); } @@ -6083,136 +6354,16 @@ SWIGINTERN PyObject *_wrap_delete_Model(PyObject *SWIGUNUSEDPARM(self), PyObject } -SWIGINTERN PyObject *_wrap_Model_create__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int arg1 ; - char **arg2 = (char **) 0 ; - int val1 ; - int ecode1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - MeCab::Model *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:Model_create",&obj0,&obj1)) SWIG_fail; - ecode1 = SWIG_AsVal_int(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Model_create" "', argument " "1"" of type '" "int""'"); - } - arg1 = static_cast< int >(val1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_char, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Model_create" "', argument " "2"" of type '" "char **""'"); - } - arg2 = reinterpret_cast< char ** >(argp2); - { - try { - result = (MeCab::Model *)MeCab::Model::create(arg1,arg2); - } - catch (char *e) { - SWIG_exception (SWIG_RuntimeError, e); - } - catch (const char *e) { - SWIG_exception (SWIG_RuntimeError, (char*)e); - } - } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_MeCab__Model, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_Model_create__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_Model__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; - PyObject * obj0 = 0 ; MeCab::Model *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Model_create",&obj0)) SWIG_fail; - res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Model_create" "', argument " "1"" of type '" "char const *""'"); - } - arg1 = reinterpret_cast< char * >(buf1); - { - try { - result = (MeCab::Model *)MeCab::Model::create((char const *)arg1); - } - catch (char *e) { - SWIG_exception (SWIG_RuntimeError, e); - } - catch (const char *e) { - SWIG_exception (SWIG_RuntimeError, (char*)e); - } - } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_MeCab__Model, 0 | 0 ); - if (alloc1 == SWIG_NEWOBJ) delete[] buf1; - return resultobj; -fail: - if (alloc1 == SWIG_NEWOBJ) delete[] buf1; - return NULL; -} - - -SWIGINTERN PyObject *_wrap_Model_create(PyObject *self, PyObject *args) { - int argc; - PyObject *argv[3]; - int ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? (int)PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Model_create__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - { - int res = SWIG_AsVal_int(argv[0], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_char, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Model_create__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Model_create'.\n" - " Possible C/C++ prototypes are:\n" - " MeCab::Model::create(int,char **)\n" - " MeCab::Model::create(char const *)\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_new_Model__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - char *arg1 = (char *) 0 ; - int res1 ; - char *buf1 = 0 ; - int alloc1 = 0 ; - PyObject * obj0 = 0 ; - MeCab::Model *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:new_Model",&obj0)) SWIG_fail; - res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Model" "', argument " "1"" of type '" "char const *""'"); } @@ -6237,11 +6388,11 @@ SWIGINTERN PyObject *_wrap_new_Model__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyO } -SWIGINTERN PyObject *_wrap_new_Model__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_Model__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; MeCab::Model *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)":new_Model")) SWIG_fail; + if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (MeCab::Model *)new_MeCab_Model(); @@ -6261,25 +6412,18 @@ SWIGINTERN PyObject *_wrap_new_Model__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyO SWIGINTERN PyObject *_wrap_new_Model(PyObject *self, PyObject *args) { - int argc; - PyObject *argv[2]; - int ii; + Py_ssize_t argc; + PyObject *argv[2] = { + 0 + }; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? (int)PyObject_Length(args) : 0; - for (ii = 0; (ii < 1) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } + if (!(argc = SWIG_Python_UnpackTuple(args,"new_Model",0,1,argv))) SWIG_fail; + --argc; if (argc == 0) { - return _wrap_new_Model__SWIG_1(self, args); + return _wrap_new_Model__SWIG_1(self, argc, argv); } if (argc == 1) { - int _v; - int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_new_Model__SWIG_0(self, args); - } + return _wrap_new_Model__SWIG_0(self, argc, argv); } fail: @@ -6293,12 +6437,16 @@ SWIGINTERN PyObject *_wrap_new_Model(PyObject *self, PyObject *args) { SWIGINTERN PyObject *Model_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!SWIG_Python_UnpackTuple(args,(char *)"swigregister", 1, 1,&obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_MeCab__Model, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } -SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *Model_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + return SWIG_Python_InitShadowInstance(args); +} + +SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; MeCab::Model *arg1 = 0 ; MeCab::Lattice *arg2 = (MeCab::Lattice *) 0 ; @@ -6306,12 +6454,10 @@ SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; bool result; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_parse",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_MeCab__Model, 0 | 0); + if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_MeCab__Model, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_parse" "', argument " "1"" of type '" "MeCab::Model const &""'"); } @@ -6319,7 +6465,7 @@ SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_0(PyObject *SWIGUNUSEDPARM(self), SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Tagger_parse" "', argument " "1"" of type '" "MeCab::Model const &""'"); } arg1 = reinterpret_cast< MeCab::Model * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Tagger_parse" "', argument " "2"" of type '" "MeCab::Lattice *""'"); } @@ -6342,7 +6488,7 @@ SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_0(PyObject *SWIGUNUSEDPARM(self), } -SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; MeCab::Lattice *arg2 = (MeCab::Lattice *) 0 ; @@ -6350,17 +6496,15 @@ SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; bool result; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_parse",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_parse" "', argument " "1"" of type '" "MeCab::Tagger const *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_MeCab__Lattice, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Tagger_parse" "', argument " "2"" of type '" "MeCab::Lattice *""'"); } @@ -6383,7 +6527,7 @@ SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_1(PyObject *SWIGUNUSEDPARM(self), } -SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_2(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; char *arg2 = (char *) 0 ; @@ -6392,17 +6536,15 @@ SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_2(PyObject *SWIGUNUSEDPARM(self), int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_parse",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_parse" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Tagger_parse" "', argument " "2"" of type '" "char const *""'"); } @@ -6428,54 +6570,44 @@ SWIGINTERN PyObject *_wrap_Tagger_parse__SWIG_2(PyObject *SWIGUNUSEDPARM(self), SWIGINTERN PyObject *_wrap_Tagger_parse(PyObject *self, PyObject *args) { - int argc; - PyObject *argv[3]; - int ii; + Py_ssize_t argc; + PyObject *argv[3] = { + 0 + }; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? (int)PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } + if (!(argc = SWIG_Python_UnpackTuple(args,"Tagger_parse",0,2,argv))) SWIG_fail; + --argc; if (argc == 2) { - int _v; - int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_MeCab__Model, 0); - _v = SWIG_CheckState(res); - if (_v) { + int _v = 0; + { + int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_MeCab__Model, 0); + _v = SWIG_CheckState(res); + } + if (!_v) goto check_1; + { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_MeCab__Lattice, 0); _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Tagger_parse__SWIG_0(self, args); - } } + if (!_v) goto check_1; + return _wrap_Tagger_parse__SWIG_0(self, argc, argv); } +check_1: + if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_MeCab__Tagger, 0); - _v = SWIG_CheckState(res); - if (_v) { + int _v = 0; + { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_MeCab__Lattice, 0); _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Tagger_parse__SWIG_1(self, args); - } } + if (!_v) goto check_2; + return _wrap_Tagger_parse__SWIG_1(self, argc, argv); } +check_2: + if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_MeCab__Tagger, 0); - _v = SWIG_CheckState(res); - if (_v) { - int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Tagger_parse__SWIG_2(self, args); - } - } + return _wrap_Tagger_parse__SWIG_2(self, argc, argv); } fail: @@ -6497,17 +6629,16 @@ SWIGINTERN PyObject *_wrap_Tagger_parseToNode(PyObject *SWIGUNUSEDPARM(self), Py int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; MeCab::Node *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_parseToNode",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Tagger_parseToNode",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_parseToNode" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Tagger_parseToNode" "', argument " "2"" of type '" "char const *""'"); } @@ -6544,23 +6675,21 @@ SWIGINTERN PyObject *_wrap_Tagger_parseNBest(PyObject *SWIGUNUSEDPARM(self), PyO int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; + PyObject *swig_obj[3] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OOO:Tagger_parseNBest",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Tagger_parseNBest",3,3,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_parseNBest" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); + ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Tagger_parseNBest" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); + res3 = SWIG_AsCharPtrAndSize(swig_obj[2], &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Tagger_parseNBest" "', argument " "3"" of type '" "char const *""'"); } @@ -6594,17 +6723,16 @@ SWIGINTERN PyObject *_wrap_Tagger_parseNBestInit(PyObject *SWIGUNUSEDPARM(self), int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; bool result; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_parseNBestInit",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Tagger_parseNBestInit",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_parseNBestInit" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Tagger_parseNBestInit" "', argument " "2"" of type '" "char const *""'"); } @@ -6634,11 +6762,12 @@ SWIGINTERN PyObject *_wrap_Tagger_nextNode(PyObject *SWIGUNUSEDPARM(self), PyObj MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; MeCab::Node *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_nextNode",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_nextNode" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } @@ -6666,11 +6795,12 @@ SWIGINTERN PyObject *_wrap_Tagger_next(PyObject *SWIGUNUSEDPARM(self), PyObject MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_next",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_next" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } @@ -6701,17 +6831,16 @@ SWIGINTERN PyObject *_wrap_Tagger_formatNode(PyObject *SWIGUNUSEDPARM(self), PyO int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_formatNode",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Tagger_formatNode",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_formatNode" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mecab_node_t, 0 | 0 ); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_mecab_node_t, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Tagger_formatNode" "', argument " "2"" of type '" "MeCab::Node const *""'"); } @@ -6742,16 +6871,15 @@ SWIGINTERN PyObject *_wrap_Tagger_set_request_type(PyObject *SWIGUNUSEDPARM(self int res1 = 0 ; int val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_set_request_type",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Tagger_set_request_type",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_set_request_type" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - ecode2 = SWIG_AsVal_int(obj1, &val2); + ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Tagger_set_request_type" "', argument " "2"" of type '" "int""'"); } @@ -6779,11 +6907,12 @@ SWIGINTERN PyObject *_wrap_Tagger_request_type(PyObject *SWIGUNUSEDPARM(self), P MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_request_type",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_request_type" "', argument " "1"" of type '" "MeCab::Tagger const *""'"); } @@ -6811,11 +6940,12 @@ SWIGINTERN PyObject *_wrap_Tagger_partial(PyObject *SWIGUNUSEDPARM(self), PyObje MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; bool result; - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_partial",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_partial" "', argument " "1"" of type '" "MeCab::Tagger const *""'"); } @@ -6846,16 +6976,15 @@ SWIGINTERN PyObject *_wrap_Tagger_set_partial(PyObject *SWIGUNUSEDPARM(self), Py int res1 = 0 ; bool val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_set_partial",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Tagger_set_partial",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_set_partial" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - ecode2 = SWIG_AsVal_bool(obj1, &val2); + ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Tagger_set_partial" "', argument " "2"" of type '" "bool""'"); } @@ -6883,11 +7012,12 @@ SWIGINTERN PyObject *_wrap_Tagger_lattice_level(PyObject *SWIGUNUSEDPARM(self), MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_lattice_level",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_lattice_level" "', argument " "1"" of type '" "MeCab::Tagger const *""'"); } @@ -6918,16 +7048,15 @@ SWIGINTERN PyObject *_wrap_Tagger_set_lattice_level(PyObject *SWIGUNUSEDPARM(sel int res1 = 0 ; int val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_set_lattice_level",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Tagger_set_lattice_level",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_set_lattice_level" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - ecode2 = SWIG_AsVal_int(obj1, &val2); + ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Tagger_set_lattice_level" "', argument " "2"" of type '" "int""'"); } @@ -6955,11 +7084,12 @@ SWIGINTERN PyObject *_wrap_Tagger_all_morphs(PyObject *SWIGUNUSEDPARM(self), PyO MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; bool result; - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_all_morphs",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_all_morphs" "', argument " "1"" of type '" "MeCab::Tagger const *""'"); } @@ -6990,16 +7120,15 @@ SWIGINTERN PyObject *_wrap_Tagger_set_all_morphs(PyObject *SWIGUNUSEDPARM(self), int res1 = 0 ; bool val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_set_all_morphs",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Tagger_set_all_morphs",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_set_all_morphs" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - ecode2 = SWIG_AsVal_bool(obj1, &val2); + ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Tagger_set_all_morphs" "', argument " "2"" of type '" "bool""'"); } @@ -7030,16 +7159,15 @@ SWIGINTERN PyObject *_wrap_Tagger_set_theta(PyObject *SWIGUNUSEDPARM(self), PyOb int res1 = 0 ; float val2 ; int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; + PyObject *swig_obj[2] ; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_set_theta",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args,"Tagger_set_theta",2,2,swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_set_theta" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - ecode2 = SWIG_AsVal_float(obj1, &val2); + ecode2 = SWIG_AsVal_float(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Tagger_set_theta" "', argument " "2"" of type '" "float""'"); } @@ -7067,11 +7195,12 @@ SWIGINTERN PyObject *_wrap_Tagger_theta(PyObject *SWIGUNUSEDPARM(self), PyObject MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; float result; - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_theta",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_theta" "', argument " "1"" of type '" "MeCab::Tagger const *""'"); } @@ -7099,11 +7228,12 @@ SWIGINTERN PyObject *_wrap_Tagger_dictionary_info(PyObject *SWIGUNUSEDPARM(self) MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; MeCab::DictionaryInfo *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_dictionary_info",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_dictionary_info" "', argument " "1"" of type '" "MeCab::Tagger const *""'"); } @@ -7131,11 +7261,12 @@ SWIGINTERN PyObject *_wrap_Tagger_what(PyObject *SWIGUNUSEDPARM(self), PyObject MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_what",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_what" "', argument " "1"" of type '" "MeCab::Tagger const *""'"); } @@ -7163,10 +7294,11 @@ SWIGINTERN PyObject *_wrap_delete_Tagger(PyObject *SWIGUNUSEDPARM(self), PyObjec MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject * obj0 = 0 ; + PyObject *swig_obj[1] ; - if (!PyArg_ParseTuple(args,(char *)"O:delete_Tagger",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, SWIG_POINTER_DISOWN | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Tagger" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } @@ -7189,130 +7321,11 @@ SWIGINTERN PyObject *_wrap_delete_Tagger(PyObject *SWIGUNUSEDPARM(self), PyObjec } -SWIGINTERN PyObject *_wrap_Tagger_create__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int arg1 ; - char **arg2 = (char **) 0 ; - int val1 ; - int ecode1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - MeCab::Tagger *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_create",&obj0,&obj1)) SWIG_fail; - ecode1 = SWIG_AsVal_int(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Tagger_create" "', argument " "1"" of type '" "int""'"); - } - arg1 = static_cast< int >(val1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_char, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Tagger_create" "', argument " "2"" of type '" "char **""'"); - } - arg2 = reinterpret_cast< char ** >(argp2); - { - try { - result = (MeCab::Tagger *)MeCab::Tagger::create(arg1,arg2); - } - catch (char *e) { - SWIG_exception (SWIG_RuntimeError, e); - } - catch (const char *e) { - SWIG_exception (SWIG_RuntimeError, (char*)e); - } - } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_Tagger_create__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - char *arg1 = (char *) 0 ; - int res1 ; - char *buf1 = 0 ; - int alloc1 = 0 ; - PyObject * obj0 = 0 ; - MeCab::Tagger *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:Tagger_create",&obj0)) SWIG_fail; - res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_create" "', argument " "1"" of type '" "char const *""'"); - } - arg1 = reinterpret_cast< char * >(buf1); - { - try { - result = (MeCab::Tagger *)MeCab::Tagger::create((char const *)arg1); - } - catch (char *e) { - SWIG_exception (SWIG_RuntimeError, e); - } - catch (const char *e) { - SWIG_exception (SWIG_RuntimeError, (char*)e); - } - } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); - if (alloc1 == SWIG_NEWOBJ) delete[] buf1; - return resultobj; -fail: - if (alloc1 == SWIG_NEWOBJ) delete[] buf1; - return NULL; -} - - -SWIGINTERN PyObject *_wrap_Tagger_create(PyObject *self, PyObject *args) { - int argc; - PyObject *argv[3]; - int ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? (int)PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Tagger_create__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - { - int res = SWIG_AsVal_int(argv[0], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_char, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Tagger_create__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Tagger_create'.\n" - " Possible C/C++ prototypes are:\n" - " MeCab::Tagger::create(int,char **)\n" - " MeCab::Tagger::create(char const *)\n"); - return 0; -} - - SWIGINTERN PyObject *_wrap_Tagger_version(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)":Tagger_version")) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args,"Tagger_version",0,0,0)) SWIG_fail; { try { result = (char *)MeCab::Tagger::version(); @@ -7331,17 +7344,16 @@ SWIGINTERN PyObject *_wrap_Tagger_version(PyObject *SWIGUNUSEDPARM(self), PyObje } -SWIGINTERN PyObject *_wrap_new_Tagger__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_Tagger__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; - PyObject * obj0 = 0 ; MeCab::Tagger *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:new_Tagger",&obj0)) SWIG_fail; - res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Tagger" "', argument " "1"" of type '" "char const *""'"); } @@ -7366,11 +7378,11 @@ SWIGINTERN PyObject *_wrap_new_Tagger__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py } -SWIGINTERN PyObject *_wrap_new_Tagger__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_Tagger__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; MeCab::Tagger *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)":new_Tagger")) SWIG_fail; + if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (MeCab::Tagger *)new_MeCab_Tagger(); @@ -7390,25 +7402,18 @@ SWIGINTERN PyObject *_wrap_new_Tagger__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py SWIGINTERN PyObject *_wrap_new_Tagger(PyObject *self, PyObject *args) { - int argc; - PyObject *argv[2]; - int ii; + Py_ssize_t argc; + PyObject *argv[2] = { + 0 + }; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? (int)PyObject_Length(args) : 0; - for (ii = 0; (ii < 1) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } + if (!(argc = SWIG_Python_UnpackTuple(args,"new_Tagger",0,1,argv))) SWIG_fail; + --argc; if (argc == 0) { - return _wrap_new_Tagger__SWIG_1(self, args); + return _wrap_new_Tagger__SWIG_1(self, argc, argv); } if (argc == 1) { - int _v; - int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_new_Tagger__SWIG_0(self, args); - } + return _wrap_new_Tagger__SWIG_0(self, argc, argv); } fail: @@ -7420,7 +7425,7 @@ SWIGINTERN PyObject *_wrap_new_Tagger(PyObject *self, PyObject *args) { } -SWIGINTERN PyObject *_wrap_Tagger_parseToString__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Tagger_parseToString__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; char *arg2 = (char *) 0 ; @@ -7432,23 +7437,20 @@ SWIGINTERN PyObject *_wrap_Tagger_parseToString__SWIG_0(PyObject *SWIGUNUSEDPARM int alloc2 = 0 ; size_t val3 ; int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OOO:Tagger_parseToString",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_parseToString" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Tagger_parseToString" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); - ecode3 = SWIG_AsVal_size_t(obj2, &val3); + ecode3 = SWIG_AsVal_size_t(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Tagger_parseToString" "', argument " "3"" of type '" "size_t""'"); } @@ -7473,7 +7475,7 @@ SWIGINTERN PyObject *_wrap_Tagger_parseToString__SWIG_0(PyObject *SWIGUNUSEDPARM } -SWIGINTERN PyObject *_wrap_Tagger_parseToString__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Tagger_parseToString__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; MeCab::Tagger *arg1 = (MeCab::Tagger *) 0 ; char *arg2 = (char *) 0 ; @@ -7482,17 +7484,15 @@ SWIGINTERN PyObject *_wrap_Tagger_parseToString__SWIG_1(PyObject *SWIGUNUSEDPARM int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; char *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:Tagger_parseToString",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); + if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MeCab__Tagger, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Tagger_parseToString" "', argument " "1"" of type '" "MeCab::Tagger *""'"); } arg1 = reinterpret_cast< MeCab::Tagger * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Tagger_parseToString" "', argument " "2"" of type '" "char const *""'"); } @@ -7518,46 +7518,18 @@ SWIGINTERN PyObject *_wrap_Tagger_parseToString__SWIG_1(PyObject *SWIGUNUSEDPARM SWIGINTERN PyObject *_wrap_Tagger_parseToString(PyObject *self, PyObject *args) { - int argc; - PyObject *argv[4]; - int ii; + Py_ssize_t argc; + PyObject *argv[4] = { + 0 + }; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? (int)PyObject_Length(args) : 0; - for (ii = 0; (ii < 3) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } + if (!(argc = SWIG_Python_UnpackTuple(args,"Tagger_parseToString",0,3,argv))) SWIG_fail; + --argc; if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_MeCab__Tagger, 0); - _v = SWIG_CheckState(res); - if (_v) { - int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_Tagger_parseToString__SWIG_1(self, args); - } - } + return _wrap_Tagger_parseToString__SWIG_1(self, argc, argv); } if (argc == 3) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_MeCab__Tagger, 0); - _v = SWIG_CheckState(res); - if (_v) { - int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_size_t(argv[2], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_Tagger_parseToString__SWIG_0(self, args); - } - } - } + return _wrap_Tagger_parseToString__SWIG_0(self, argc, argv); } fail: @@ -7571,125 +7543,131 @@ SWIGINTERN PyObject *_wrap_Tagger_parseToString(PyObject *self, PyObject *args) SWIGINTERN PyObject *Tagger_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!SWIG_Python_UnpackTuple(args,(char *)"swigregister", 1, 1,&obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_MeCab__Tagger, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } +SWIGINTERN PyObject *Tagger_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + return SWIG_Python_InitShadowInstance(args); +} + static PyMethodDef SwigMethods[] = { { (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL}, - { (char *)"DictionaryInfo_filename_get", _wrap_DictionaryInfo_filename_get, METH_VARARGS, NULL}, - { (char *)"DictionaryInfo_charset_get", _wrap_DictionaryInfo_charset_get, METH_VARARGS, NULL}, - { (char *)"DictionaryInfo_size_get", _wrap_DictionaryInfo_size_get, METH_VARARGS, NULL}, - { (char *)"DictionaryInfo_type_get", _wrap_DictionaryInfo_type_get, METH_VARARGS, NULL}, - { (char *)"DictionaryInfo_lsize_get", _wrap_DictionaryInfo_lsize_get, METH_VARARGS, NULL}, - { (char *)"DictionaryInfo_rsize_get", _wrap_DictionaryInfo_rsize_get, METH_VARARGS, NULL}, - { (char *)"DictionaryInfo_version_get", _wrap_DictionaryInfo_version_get, METH_VARARGS, NULL}, - { (char *)"DictionaryInfo_next_get", _wrap_DictionaryInfo_next_get, METH_VARARGS, NULL}, - { (char *)"new_DictionaryInfo", _wrap_new_DictionaryInfo, METH_VARARGS, NULL}, - { (char *)"delete_DictionaryInfo", _wrap_delete_DictionaryInfo, METH_VARARGS, NULL}, + { (char *)"DictionaryInfo_filename_get", (PyCFunction)_wrap_DictionaryInfo_filename_get, METH_O, NULL}, + { (char *)"DictionaryInfo_charset_get", (PyCFunction)_wrap_DictionaryInfo_charset_get, METH_O, NULL}, + { (char *)"DictionaryInfo_size_get", (PyCFunction)_wrap_DictionaryInfo_size_get, METH_O, NULL}, + { (char *)"DictionaryInfo_type_get", (PyCFunction)_wrap_DictionaryInfo_type_get, METH_O, NULL}, + { (char *)"DictionaryInfo_lsize_get", (PyCFunction)_wrap_DictionaryInfo_lsize_get, METH_O, NULL}, + { (char *)"DictionaryInfo_rsize_get", (PyCFunction)_wrap_DictionaryInfo_rsize_get, METH_O, NULL}, + { (char *)"DictionaryInfo_version_get", (PyCFunction)_wrap_DictionaryInfo_version_get, METH_O, NULL}, + { (char *)"DictionaryInfo_next_get", (PyCFunction)_wrap_DictionaryInfo_next_get, METH_O, NULL}, + { (char *)"new_DictionaryInfo", (PyCFunction)_wrap_new_DictionaryInfo, METH_NOARGS, NULL}, + { (char *)"delete_DictionaryInfo", (PyCFunction)_wrap_delete_DictionaryInfo, METH_O, NULL}, { (char *)"DictionaryInfo_swigregister", DictionaryInfo_swigregister, METH_VARARGS, NULL}, - { (char *)"Path_rnode_get", _wrap_Path_rnode_get, METH_VARARGS, NULL}, - { (char *)"Path_rnext_get", _wrap_Path_rnext_get, METH_VARARGS, NULL}, - { (char *)"Path_lnode_get", _wrap_Path_lnode_get, METH_VARARGS, NULL}, - { (char *)"Path_lnext_get", _wrap_Path_lnext_get, METH_VARARGS, NULL}, - { (char *)"Path_cost_get", _wrap_Path_cost_get, METH_VARARGS, NULL}, + { (char *)"DictionaryInfo_swiginit", DictionaryInfo_swiginit, METH_VARARGS, NULL}, + { (char *)"Path_rnode_get", (PyCFunction)_wrap_Path_rnode_get, METH_O, NULL}, + { (char *)"Path_rnext_get", (PyCFunction)_wrap_Path_rnext_get, METH_O, NULL}, + { (char *)"Path_lnode_get", (PyCFunction)_wrap_Path_lnode_get, METH_O, NULL}, + { (char *)"Path_lnext_get", (PyCFunction)_wrap_Path_lnext_get, METH_O, NULL}, + { (char *)"Path_cost_get", (PyCFunction)_wrap_Path_cost_get, METH_O, NULL}, { (char *)"Path_prob_set", _wrap_Path_prob_set, METH_VARARGS, NULL}, - { (char *)"Path_prob_get", _wrap_Path_prob_get, METH_VARARGS, NULL}, + { (char *)"Path_prob_get", (PyCFunction)_wrap_Path_prob_get, METH_O, NULL}, { (char *)"Path_swigregister", Path_swigregister, METH_VARARGS, NULL}, - { (char *)"Node_prev_get", _wrap_Node_prev_get, METH_VARARGS, NULL}, - { (char *)"Node_next_get", _wrap_Node_next_get, METH_VARARGS, NULL}, - { (char *)"Node_enext_get", _wrap_Node_enext_get, METH_VARARGS, NULL}, - { (char *)"Node_bnext_get", _wrap_Node_bnext_get, METH_VARARGS, NULL}, - { (char *)"Node_rpath_get", _wrap_Node_rpath_get, METH_VARARGS, NULL}, - { (char *)"Node_lpath_get", _wrap_Node_lpath_get, METH_VARARGS, NULL}, - { (char *)"Node_feature_get", _wrap_Node_feature_get, METH_VARARGS, NULL}, - { (char *)"Node_id_get", _wrap_Node_id_get, METH_VARARGS, NULL}, - { (char *)"Node_length_get", _wrap_Node_length_get, METH_VARARGS, NULL}, - { (char *)"Node_rlength_get", _wrap_Node_rlength_get, METH_VARARGS, NULL}, - { (char *)"Node_rcAttr_get", _wrap_Node_rcAttr_get, METH_VARARGS, NULL}, - { (char *)"Node_lcAttr_get", _wrap_Node_lcAttr_get, METH_VARARGS, NULL}, - { (char *)"Node_posid_get", _wrap_Node_posid_get, METH_VARARGS, NULL}, - { (char *)"Node_char_type_get", _wrap_Node_char_type_get, METH_VARARGS, NULL}, - { (char *)"Node_stat_get", _wrap_Node_stat_get, METH_VARARGS, NULL}, - { (char *)"Node_isbest_get", _wrap_Node_isbest_get, METH_VARARGS, NULL}, - { (char *)"Node_alpha_get", _wrap_Node_alpha_get, METH_VARARGS, NULL}, - { (char *)"Node_beta_get", _wrap_Node_beta_get, METH_VARARGS, NULL}, + { (char *)"Node_prev_get", (PyCFunction)_wrap_Node_prev_get, METH_O, NULL}, + { (char *)"Node_next_get", (PyCFunction)_wrap_Node_next_get, METH_O, NULL}, + { (char *)"Node_enext_get", (PyCFunction)_wrap_Node_enext_get, METH_O, NULL}, + { (char *)"Node_bnext_get", (PyCFunction)_wrap_Node_bnext_get, METH_O, NULL}, + { (char *)"Node_rpath_get", (PyCFunction)_wrap_Node_rpath_get, METH_O, NULL}, + { (char *)"Node_lpath_get", (PyCFunction)_wrap_Node_lpath_get, METH_O, NULL}, + { (char *)"Node_feature_get", (PyCFunction)_wrap_Node_feature_get, METH_O, NULL}, + { (char *)"Node_id_get", (PyCFunction)_wrap_Node_id_get, METH_O, NULL}, + { (char *)"Node_length_get", (PyCFunction)_wrap_Node_length_get, METH_O, NULL}, + { (char *)"Node_rlength_get", (PyCFunction)_wrap_Node_rlength_get, METH_O, NULL}, + { (char *)"Node_rcAttr_get", (PyCFunction)_wrap_Node_rcAttr_get, METH_O, NULL}, + { (char *)"Node_lcAttr_get", (PyCFunction)_wrap_Node_lcAttr_get, METH_O, NULL}, + { (char *)"Node_posid_get", (PyCFunction)_wrap_Node_posid_get, METH_O, NULL}, + { (char *)"Node_char_type_get", (PyCFunction)_wrap_Node_char_type_get, METH_O, NULL}, + { (char *)"Node_stat_get", (PyCFunction)_wrap_Node_stat_get, METH_O, NULL}, + { (char *)"Node_isbest_get", (PyCFunction)_wrap_Node_isbest_get, METH_O, NULL}, + { (char *)"Node_alpha_get", (PyCFunction)_wrap_Node_alpha_get, METH_O, NULL}, + { (char *)"Node_beta_get", (PyCFunction)_wrap_Node_beta_get, METH_O, NULL}, { (char *)"Node_prob_set", _wrap_Node_prob_set, METH_VARARGS, NULL}, - { (char *)"Node_prob_get", _wrap_Node_prob_get, METH_VARARGS, NULL}, - { (char *)"Node_wcost_get", _wrap_Node_wcost_get, METH_VARARGS, NULL}, - { (char *)"Node_cost_get", _wrap_Node_cost_get, METH_VARARGS, NULL}, - { (char *)"Node_surface_get", _wrap_Node_surface_get, METH_VARARGS, NULL}, + { (char *)"Node_prob_get", (PyCFunction)_wrap_Node_prob_get, METH_O, NULL}, + { (char *)"Node_wcost_get", (PyCFunction)_wrap_Node_wcost_get, METH_O, NULL}, + { (char *)"Node_cost_get", (PyCFunction)_wrap_Node_cost_get, METH_O, NULL}, + { (char *)"Node_surface_get", (PyCFunction)_wrap_Node_surface_get, METH_O, NULL}, { (char *)"Node_swigregister", Node_swigregister, METH_VARARGS, NULL}, - { (char *)"Lattice_clear", _wrap_Lattice_clear, METH_VARARGS, NULL}, - { (char *)"Lattice_is_available", _wrap_Lattice_is_available, METH_VARARGS, NULL}, - { (char *)"Lattice_bos_node", _wrap_Lattice_bos_node, METH_VARARGS, NULL}, - { (char *)"Lattice_eos_node", _wrap_Lattice_eos_node, METH_VARARGS, NULL}, + { (char *)"Lattice_clear", (PyCFunction)_wrap_Lattice_clear, METH_O, NULL}, + { (char *)"Lattice_is_available", (PyCFunction)_wrap_Lattice_is_available, METH_O, NULL}, + { (char *)"Lattice_bos_node", (PyCFunction)_wrap_Lattice_bos_node, METH_O, NULL}, + { (char *)"Lattice_eos_node", (PyCFunction)_wrap_Lattice_eos_node, METH_O, NULL}, { (char *)"Lattice_end_nodes", _wrap_Lattice_end_nodes, METH_VARARGS, NULL}, { (char *)"Lattice_begin_nodes", _wrap_Lattice_begin_nodes, METH_VARARGS, NULL}, - { (char *)"Lattice_sentence", _wrap_Lattice_sentence, METH_VARARGS, NULL}, - { (char *)"Lattice_size", _wrap_Lattice_size, METH_VARARGS, NULL}, + { (char *)"Lattice_sentence", (PyCFunction)_wrap_Lattice_sentence, METH_O, NULL}, + { (char *)"Lattice_size", (PyCFunction)_wrap_Lattice_size, METH_O, NULL}, { (char *)"Lattice_set_Z", _wrap_Lattice_set_Z, METH_VARARGS, NULL}, - { (char *)"Lattice_Z", _wrap_Lattice_Z, METH_VARARGS, NULL}, + { (char *)"Lattice_Z", (PyCFunction)_wrap_Lattice_Z, METH_O, NULL}, { (char *)"Lattice_set_theta", _wrap_Lattice_set_theta, METH_VARARGS, NULL}, - { (char *)"Lattice_theta", _wrap_Lattice_theta, METH_VARARGS, NULL}, - { (char *)"Lattice_next", _wrap_Lattice_next, METH_VARARGS, NULL}, - { (char *)"Lattice_request_type", _wrap_Lattice_request_type, METH_VARARGS, NULL}, + { (char *)"Lattice_theta", (PyCFunction)_wrap_Lattice_theta, METH_O, NULL}, + { (char *)"Lattice_next", (PyCFunction)_wrap_Lattice_next, METH_O, NULL}, + { (char *)"Lattice_request_type", (PyCFunction)_wrap_Lattice_request_type, METH_O, NULL}, { (char *)"Lattice_has_request_type", _wrap_Lattice_has_request_type, METH_VARARGS, NULL}, { (char *)"Lattice_set_request_type", _wrap_Lattice_set_request_type, METH_VARARGS, NULL}, { (char *)"Lattice_add_request_type", _wrap_Lattice_add_request_type, METH_VARARGS, NULL}, { (char *)"Lattice_remove_request_type", _wrap_Lattice_remove_request_type, METH_VARARGS, NULL}, - { (char *)"Lattice_newNode", _wrap_Lattice_newNode, METH_VARARGS, NULL}, + { (char *)"Lattice_newNode", (PyCFunction)_wrap_Lattice_newNode, METH_O, NULL}, { (char *)"Lattice_toString", _wrap_Lattice_toString, METH_VARARGS, NULL}, { (char *)"Lattice_enumNBestAsString", _wrap_Lattice_enumNBestAsString, METH_VARARGS, NULL}, - { (char *)"Lattice_has_constraint", _wrap_Lattice_has_constraint, METH_VARARGS, NULL}, + { (char *)"Lattice_has_constraint", (PyCFunction)_wrap_Lattice_has_constraint, METH_O, NULL}, { (char *)"Lattice_boundary_constraint", _wrap_Lattice_boundary_constraint, METH_VARARGS, NULL}, { (char *)"Lattice_feature_constraint", _wrap_Lattice_feature_constraint, METH_VARARGS, NULL}, { (char *)"Lattice_set_boundary_constraint", _wrap_Lattice_set_boundary_constraint, METH_VARARGS, NULL}, { (char *)"Lattice_set_feature_constraint", _wrap_Lattice_set_feature_constraint, METH_VARARGS, NULL}, { (char *)"Lattice_set_result", _wrap_Lattice_set_result, METH_VARARGS, NULL}, - { (char *)"Lattice_what", _wrap_Lattice_what, METH_VARARGS, NULL}, + { (char *)"Lattice_what", (PyCFunction)_wrap_Lattice_what, METH_O, NULL}, { (char *)"Lattice_set_what", _wrap_Lattice_set_what, METH_VARARGS, NULL}, - { (char *)"delete_Lattice", _wrap_delete_Lattice, METH_VARARGS, NULL}, - { (char *)"new_Lattice", _wrap_new_Lattice, METH_VARARGS, NULL}, + { (char *)"delete_Lattice", (PyCFunction)_wrap_delete_Lattice, METH_O, NULL}, + { (char *)"new_Lattice", (PyCFunction)_wrap_new_Lattice, METH_NOARGS, NULL}, { (char *)"Lattice_set_sentence", _wrap_Lattice_set_sentence, METH_VARARGS, NULL}, { (char *)"Lattice_swigregister", Lattice_swigregister, METH_VARARGS, NULL}, - { (char *)"Model_dictionary_info", _wrap_Model_dictionary_info, METH_VARARGS, NULL}, + { (char *)"Lattice_swiginit", Lattice_swiginit, METH_VARARGS, NULL}, + { (char *)"Model_dictionary_info", (PyCFunction)_wrap_Model_dictionary_info, METH_O, NULL}, { (char *)"Model_transition_cost", _wrap_Model_transition_cost, METH_VARARGS, NULL}, { (char *)"Model_lookup", _wrap_Model_lookup, METH_VARARGS, NULL}, - { (char *)"Model_createTagger", _wrap_Model_createTagger, METH_VARARGS, NULL}, - { (char *)"Model_createLattice", _wrap_Model_createLattice, METH_VARARGS, NULL}, + { (char *)"Model_createTagger", (PyCFunction)_wrap_Model_createTagger, METH_O, NULL}, + { (char *)"Model_createLattice", (PyCFunction)_wrap_Model_createLattice, METH_O, NULL}, { (char *)"Model_swap", _wrap_Model_swap, METH_VARARGS, NULL}, - { (char *)"Model_version", _wrap_Model_version, METH_VARARGS, NULL}, - { (char *)"delete_Model", _wrap_delete_Model, METH_VARARGS, NULL}, - { (char *)"Model_create", _wrap_Model_create, METH_VARARGS, NULL}, + { (char *)"Model_version", (PyCFunction)_wrap_Model_version, METH_NOARGS, NULL}, + { (char *)"delete_Model", (PyCFunction)_wrap_delete_Model, METH_O, NULL}, { (char *)"new_Model", _wrap_new_Model, METH_VARARGS, NULL}, { (char *)"Model_swigregister", Model_swigregister, METH_VARARGS, NULL}, + { (char *)"Model_swiginit", Model_swiginit, METH_VARARGS, NULL}, { (char *)"Tagger_parse", _wrap_Tagger_parse, METH_VARARGS, NULL}, { (char *)"Tagger_parseToNode", _wrap_Tagger_parseToNode, METH_VARARGS, NULL}, { (char *)"Tagger_parseNBest", _wrap_Tagger_parseNBest, METH_VARARGS, NULL}, { (char *)"Tagger_parseNBestInit", _wrap_Tagger_parseNBestInit, METH_VARARGS, NULL}, - { (char *)"Tagger_nextNode", _wrap_Tagger_nextNode, METH_VARARGS, NULL}, - { (char *)"Tagger_next", _wrap_Tagger_next, METH_VARARGS, NULL}, + { (char *)"Tagger_nextNode", (PyCFunction)_wrap_Tagger_nextNode, METH_O, NULL}, + { (char *)"Tagger_next", (PyCFunction)_wrap_Tagger_next, METH_O, NULL}, { (char *)"Tagger_formatNode", _wrap_Tagger_formatNode, METH_VARARGS, NULL}, { (char *)"Tagger_set_request_type", _wrap_Tagger_set_request_type, METH_VARARGS, NULL}, - { (char *)"Tagger_request_type", _wrap_Tagger_request_type, METH_VARARGS, NULL}, - { (char *)"Tagger_partial", _wrap_Tagger_partial, METH_VARARGS, NULL}, + { (char *)"Tagger_request_type", (PyCFunction)_wrap_Tagger_request_type, METH_O, NULL}, + { (char *)"Tagger_partial", (PyCFunction)_wrap_Tagger_partial, METH_O, NULL}, { (char *)"Tagger_set_partial", _wrap_Tagger_set_partial, METH_VARARGS, NULL}, - { (char *)"Tagger_lattice_level", _wrap_Tagger_lattice_level, METH_VARARGS, NULL}, + { (char *)"Tagger_lattice_level", (PyCFunction)_wrap_Tagger_lattice_level, METH_O, NULL}, { (char *)"Tagger_set_lattice_level", _wrap_Tagger_set_lattice_level, METH_VARARGS, NULL}, - { (char *)"Tagger_all_morphs", _wrap_Tagger_all_morphs, METH_VARARGS, NULL}, + { (char *)"Tagger_all_morphs", (PyCFunction)_wrap_Tagger_all_morphs, METH_O, NULL}, { (char *)"Tagger_set_all_morphs", _wrap_Tagger_set_all_morphs, METH_VARARGS, NULL}, { (char *)"Tagger_set_theta", _wrap_Tagger_set_theta, METH_VARARGS, NULL}, - { (char *)"Tagger_theta", _wrap_Tagger_theta, METH_VARARGS, NULL}, - { (char *)"Tagger_dictionary_info", _wrap_Tagger_dictionary_info, METH_VARARGS, NULL}, - { (char *)"Tagger_what", _wrap_Tagger_what, METH_VARARGS, NULL}, - { (char *)"delete_Tagger", _wrap_delete_Tagger, METH_VARARGS, NULL}, - { (char *)"Tagger_create", _wrap_Tagger_create, METH_VARARGS, NULL}, - { (char *)"Tagger_version", _wrap_Tagger_version, METH_VARARGS, NULL}, + { (char *)"Tagger_theta", (PyCFunction)_wrap_Tagger_theta, METH_O, NULL}, + { (char *)"Tagger_dictionary_info", (PyCFunction)_wrap_Tagger_dictionary_info, METH_O, NULL}, + { (char *)"Tagger_what", (PyCFunction)_wrap_Tagger_what, METH_O, NULL}, + { (char *)"delete_Tagger", (PyCFunction)_wrap_delete_Tagger, METH_O, NULL}, + { (char *)"Tagger_version", (PyCFunction)_wrap_Tagger_version, METH_NOARGS, NULL}, { (char *)"new_Tagger", _wrap_new_Tagger, METH_VARARGS, NULL}, { (char *)"Tagger_parseToString", _wrap_Tagger_parseToString, METH_VARARGS, NULL}, { (char *)"Tagger_swigregister", Tagger_swigregister, METH_VARARGS, NULL}, + { (char *)"Tagger_swiginit", Tagger_swiginit, METH_VARARGS, NULL}, { NULL, NULL, 0, NULL } }; @@ -7704,7 +7682,6 @@ static swig_type_info _swigt__p_mecab_dictionary_info_t = {"_p_mecab_dictionary_ static swig_type_info _swigt__p_mecab_node_t = {"_p_mecab_node_t", "mecab_node_t *|MeCab::Node *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_mecab_path_t = {"_p_mecab_path_t", "mecab_path_t *|MeCab::Path *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_mecab_t = {"_p_mecab_t", "mecab_t *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_MeCab__Lattice, @@ -7715,7 +7692,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_mecab_node_t, &_swigt__p_mecab_path_t, &_swigt__p_mecab_t, - &_swigt__p_p_char, }; static swig_cast_info _swigc__p_MeCab__Lattice[] = { {&_swigt__p_MeCab__Lattice, 0, 0, 0},{0, 0, 0, 0}}; @@ -7726,7 +7702,6 @@ static swig_cast_info _swigc__p_mecab_dictionary_info_t[] = { {&_swigt__p_mecab static swig_cast_info _swigc__p_mecab_node_t[] = { {&_swigt__p_mecab_node_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_mecab_path_t[] = { {&_swigt__p_mecab_path_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_mecab_t[] = { {&_swigt__p_mecab_t, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_p_char[] = { {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_MeCab__Lattice, @@ -7737,7 +7712,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_mecab_node_t, _swigc__p_mecab_path_t, _swigc__p_mecab_t, - _swigc__p_p_char, }; @@ -7751,18 +7725,18 @@ static swig_const_info swig_const_table[] = { #endif /* ----------------------------------------------------------------------------- * Type initialization: - * This problem is tough by the requirement that no dynamic - * memory is used. Also, since swig_type_info structures store pointers to + * This problem is tough by the requirement that no dynamic + * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back - * to swig_type_info structures, we need some lookup code at initialization. - * The idea is that swig generates all the structures that are needed. - * The runtime then collects these partially filled structures. - * The SWIG_InitializeModule function takes these initial arrays out of + * to swig_type_info structures, we need some lookup code at initialization. + * The idea is that swig generates all the structures that are needed. + * The runtime then collects these partially filled structures. + * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * - * The generated swig_type_info structures are assigned staticly to an initial + * The generated swig_type_info structures are assigned statically to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the @@ -7772,17 +7746,17 @@ static swig_const_info swig_const_table[] = { * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, - * we find the array of casts associated with the type, and loop through it + * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * - * First off, we lookup the cast->type name to see if it is already loaded. + * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. - * 2) If BOTH types (the one we are adding casting info to, and the + * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that @@ -7806,9 +7780,7 @@ SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; - int found, init; - - clientdata = clientdata; + int init; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { @@ -7827,27 +7799,23 @@ SWIG_InitializeModule(void *clientdata) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); - module_head = &swig_module; } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ - found=0; iter=module_head; do { if (iter==&swig_module) { - found=1; - break; + /* Our module is already in the list, so there's nothing more to do. */ + return; } iter=iter->next; } while (iter!= module_head); - /* if the is found in the list, then all is done and we may leave */ - if (found) return; - /* otherwise we must add out module into the list */ + /* otherwise we must add our module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } - /* When multiple interpeters are used, a module could have already been initialized in + /* When multiple interpreters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ @@ -8094,7 +8062,7 @@ extern "C" { var = var->next; } if (res == NULL && !PyErr_Occurred()) { - PyErr_SetString(PyExc_NameError,"Unknown C global variable"); + PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n); } return res; } @@ -8111,7 +8079,7 @@ extern "C" { var = var->next; } if (res == 1 && !PyErr_Occurred()) { - PyErr_SetString(PyExc_NameError,"Unknown C global variable"); + PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n); } return res; } @@ -8123,7 +8091,6 @@ extern "C" { static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { - /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else @@ -8161,10 +8128,19 @@ extern "C" { 0, /* tp_del */ #endif #if PY_VERSION_HEX >= 0x02060000 - 0, /* tp_version */ + 0, /* tp_version_tag */ +#endif +#if PY_VERSION_HEX >= 0x03040000 + 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS - 0,0,0,0 /* tp_alloc -> tp_next */ + 0, /* tp_allocs */ + 0, /* tp_frees */ + 0, /* tp_maxalloc */ +#if PY_VERSION_HEX >= 0x02050000 + 0, /* tp_prev */ +#endif + 0 /* tp_next */ #endif }; varlink_type = tmp; @@ -8253,7 +8229,9 @@ extern "C" { size_t i; for (i = 0; methods[i].ml_name; ++i) { const char *c = methods[i].ml_doc; - if (c && (c = strstr(c, "swig_ptr: "))) { + if (!c) continue; + c = strstr(c, "swig_ptr: "); + if (c) { int j; swig_const_info *ci = 0; const char *name = c + 10; @@ -8344,17 +8322,18 @@ SWIG_init(void) { static PyGetSetDef thisown_getset_def = { (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure }; - PyObject *metatype_args; PyTypeObject *builtin_pytype; int builtin_base_count; swig_type_info *builtin_basetype; PyObject *tuple; PyGetSetDescrObject *static_getset; PyTypeObject *metatype; + PyTypeObject *swigpyobject; SwigPyClientData *cd; PyObject *public_interface, *public_symbol; PyObject *this_descr; PyObject *thisown_descr; + PyObject *self = 0; int i; (void)builtin_pytype; @@ -8362,15 +8341,11 @@ SWIG_init(void) { (void)builtin_basetype; (void)tuple; (void)static_getset; + (void)self; - /* metatype is used to implement static member variables. */ - metatype_args = Py_BuildValue("(s(O){})", "SwigPyObjectType", &PyType_Type); - assert(metatype_args); - metatype = (PyTypeObject *) PyType_Type.tp_call((PyObject *) &PyType_Type, metatype_args, NULL); + /* Metaclass is used to implement static member variables */ + metatype = SwigPyObjectType(); assert(metatype); - Py_DECREF(metatype_args); - metatype->tp_setattro = (setattrofunc) &SwigPyObjectType_setattro; - assert(PyType_Ready(metatype) >= 0); #endif /* Fix SwigMethods to carry the callback ptrs when needed */ @@ -8381,18 +8356,22 @@ SWIG_init(void) { #else m = Py_InitModule((char *) SWIG_name, SwigMethods); #endif + md = d = PyModule_GetDict(m); + (void)md; SWIG_InitializeModule(0); #ifdef SWIGPYTHON_BUILTIN + swigpyobject = SwigPyObject_TypeOnce(); + SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject"); assert(SwigPyObject_stype); cd = (SwigPyClientData*) SwigPyObject_stype->clientdata; if (!cd) { SwigPyObject_stype->clientdata = &SwigPyObject_clientdata; - SwigPyObject_clientdata.pytype = SwigPyObject_TypeOnce(); - } else if (SwigPyObject_TypeOnce()->tp_basicsize != cd->pytype->tp_basicsize) { + SwigPyObject_clientdata.pytype = swigpyobject; + } else if (swigpyobject->tp_basicsize != cd->pytype->tp_basicsize) { PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules."); # if PY_VERSION_HEX >= 0x03000000 return NULL; diff --git a/mecab/python/mecab.h b/mecab/python/mecab.h new file mode 100644 index 0000000..ce7f265 --- /dev/null +++ b/mecab/python/mecab.h @@ -0,0 +1,1509 @@ +/* + MeCab -- Yet Another Part-of-Speech and Morphological Analyzer + + Copyright(C) 2001-2011 Taku Kudo + Copyright(C) 2004-2006 Nippon Telegraph and Telephone Corporation +*/ +#ifndef MECAB_MECAB_H_ +#define MECAB_MECAB_H_ + +/* C/C++ common data structures */ + +/** + * DictionaryInfo structure + */ +struct mecab_dictionary_info_t { + /** + * filename of dictionary + * On Windows, filename is stored in UTF-8 encoding + */ + const char *filename; + + /** + * character set of the dictionary. e.g., "SHIFT-JIS", "UTF-8" + */ + const char *charset; + + /** + * How many words are registered in this dictionary. + */ + unsigned int size; + + /** + * dictionary type + * this value should be MECAB_USR_DIC, MECAB_SYS_DIC, or MECAB_UNK_DIC. + */ + int type; + + /** + * left attributes size + */ + unsigned int lsize; + + /** + * right attributes size + */ + unsigned int rsize; + + /** + * version of this dictionary + */ + unsigned short version; + + /** + * pointer to the next dictionary info. + */ + struct mecab_dictionary_info_t *next; +}; + +/** + * Path structure + */ +struct mecab_path_t { + /** + * pointer to the right node + */ + struct mecab_node_t* rnode; + + /** + * pointer to the next right path + */ + struct mecab_path_t* rnext; + + /** + * pointer to the left node + */ + struct mecab_node_t* lnode; + + /** + * pointer to the next left path + */ + + struct mecab_path_t* lnext; + + /** + * local cost + */ + int cost; + + /** + * marginal probability + */ + float prob; +}; + +/** + * Node structure + */ +struct mecab_node_t { + /** + * pointer to the previous node. + */ + struct mecab_node_t *prev; + + /** + * pointer to the next node. + */ + struct mecab_node_t *next; + + /** + * pointer to the node which ends at the same position. + */ + struct mecab_node_t *enext; + + /** + * pointer to the node which starts at the same position. + */ + struct mecab_node_t *bnext; + + /** + * pointer to the right path. + * this value is NULL if MECAB_ONE_BEST mode. + */ + struct mecab_path_t *rpath; + + /** + * pointer to the right path. + * this value is NULL if MECAB_ONE_BEST mode. + */ + struct mecab_path_t *lpath; + + /** + * surface string. + * this value is not 0 terminated. + * You can get the length with length/rlength members. + */ + const char *surface; + + /** + * feature string + */ + const char *feature; + + /** + * unique node id + */ + unsigned int id; + + /** + * length of the surface form. + */ + unsigned short length; + + /** + * length of the surface form including white space before the morph. + */ + unsigned short rlength; + + /** + * right attribute id + */ + unsigned short rcAttr; + + /** + * left attribute id + */ + unsigned short lcAttr; + + /** + * unique part of speech id. This value is defined in "pos.def" file. + */ + unsigned short posid; + + /** + * character type + */ + unsigned char char_type; + + /** + * status of this model. + * This value is MECAB_NOR_NODE, MECAB_UNK_NODE, MECAB_BOS_NODE, MECAB_EOS_NODE, or MECAB_EON_NODE. + */ + unsigned char stat; + + /** + * set 1 if this node is best node. + */ + unsigned char isbest; + + /** + * forward accumulative log summation. + * This value is only available when MECAB_MARGINAL_PROB is passed. + */ + float alpha; + + /** + * backward accumulative log summation. + * This value is only available when MECAB_MARGINAL_PROB is passed. + */ + float beta; + + /** + * marginal probability. + * This value is only available when MECAB_MARGINAL_PROB is passed. + */ + float prob; + + /** + * word cost. + */ + short wcost; + + /** + * best accumulative cost from bos node to this node. + */ + long cost; +}; + +/** + * Parameters for MeCab::Node::stat + */ +enum { + /** + * Normal node defined in the dictionary. + */ + MECAB_NOR_NODE = 0, + /** + * Unknown node not defined in the dictionary. + */ + MECAB_UNK_NODE = 1, + /** + * Virtual node representing a beginning of the sentence. + */ + MECAB_BOS_NODE = 2, + /** + * Virtual node representing a end of the sentence. + */ + MECAB_EOS_NODE = 3, + + /** + * Virtual node representing a end of the N-best enumeration. + */ + MECAB_EON_NODE = 4 +}; + +/** + * Parameters for MeCab::DictionaryInfo::type + */ +enum { + /** + * This is a system dictionary. + */ + MECAB_SYS_DIC = 0, + + /** + * This is a user dictionary. + */ + MECAB_USR_DIC = 1, + + /** + * This is a unknown word dictionary. + */ + MECAB_UNK_DIC = 2 +}; + +/** + * Parameters for MeCab::Lattice::request_type + */ +enum { + /** + * One best result is obtained (default mode) + */ + MECAB_ONE_BEST = 1, + /** + * Set this flag if you want to obtain N best results. + */ + MECAB_NBEST = 2, + /** + * Set this flag if you want to enable a partial parsing mode. + * When this flag is set, the input |sentence| needs to be written + * in partial parsing format. + */ + MECAB_PARTIAL = 4, + /** + * Set this flag if you want to obtain marginal probabilities. + * Marginal probability is set in MeCab::Node::prob. + * The parsing speed will get 3-5 times slower than the default mode. + */ + MECAB_MARGINAL_PROB = 8, + /** + * Set this flag if you want to obtain alternative results. + * Not implemented. + */ + MECAB_ALTERNATIVE = 16, + /** + * When this flag is set, the result linked-list (Node::next/prev) + * traverses all nodes in the lattice. + */ + MECAB_ALL_MORPHS = 32, + + /** + * When this flag is set, tagger internally copies the body of passed + * sentence into internal buffer. + */ + MECAB_ALLOCATE_SENTENCE = 64 +}; + +/** + * Parameters for MeCab::Lattice::boundary_constraint_type + */ +enum { + /** + * The token boundary is not specified. + */ + MECAB_ANY_BOUNDARY = 0, + + /** + * The position is a strong token boundary. + */ + MECAB_TOKEN_BOUNDARY = 1, + + /** + * The position is not a token boundary. + */ + MECAB_INSIDE_TOKEN = 2 +}; + +/* C interface */ +#ifdef __cplusplus +#include +#else +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef _WIN32 +#include +# ifdef DLL_EXPORT +# define MECAB_DLL_EXTERN __declspec(dllexport) +# define MECAB_DLL_CLASS_EXTERN __declspec(dllexport) +# else +# define MECAB_DLL_EXTERN __declspec(dllimport) +# endif +#endif + +#ifndef MECAB_DLL_EXTERN +# define MECAB_DLL_EXTERN extern +#endif + +#ifndef MECAB_DLL_CLASS_EXTERN +# define MECAB_DLL_CLASS_EXTERN +#endif + + typedef struct mecab_t mecab_t; + typedef struct mecab_model_t mecab_model_t; + typedef struct mecab_lattice_t mecab_lattice_t; + typedef struct mecab_dictionary_info_t mecab_dictionary_info_t; + typedef struct mecab_node_t mecab_node_t; + typedef struct mecab_path_t mecab_path_t; + +#ifndef SWIG + /* C interface */ + + /* old mecab interface */ + /** + * C wrapper of MeCab::Tagger::create(argc, argv) + */ + MECAB_DLL_EXTERN mecab_t* mecab_new(int argc, char **argv); + + /** + * C wrapper of MeCab::Tagger::create(arg) + */ + MECAB_DLL_EXTERN mecab_t* mecab_new2(const char *arg); + + /** + * C wrapper of MeCab::Tagger::version() + */ + MECAB_DLL_EXTERN const char* mecab_version(); + + /** + * C wrapper of MeCab::getLastError() + */ + MECAB_DLL_EXTERN const char* mecab_strerror(mecab_t *mecab); + + /** + * C wrapper of MeCab::deleteTagger(tagger) + */ + MECAB_DLL_EXTERN void mecab_destroy(mecab_t *mecab); + + /** + * C wrapper of MeCab::Tagger:set_partial() + */ + MECAB_DLL_EXTERN int mecab_get_partial(mecab_t *mecab); + + /** + * C wrapper of MeCab::Tagger::partial() + */ + MECAB_DLL_EXTERN void mecab_set_partial(mecab_t *mecab, int partial); + + /** + * C wrapper of MeCab::Tagger::theta() + */ + MECAB_DLL_EXTERN float mecab_get_theta(mecab_t *mecab); + + /** + * C wrapper of MeCab::Tagger::set_theta() + */ + MECAB_DLL_EXTERN void mecab_set_theta(mecab_t *mecab, float theta); + + /** + * C wrapper of MeCab::Tagger::lattice_level() + */ + MECAB_DLL_EXTERN int mecab_get_lattice_level(mecab_t *mecab); + + /** + * C wrapper of MeCab::Tagger::set_lattice_level() + */ + MECAB_DLL_EXTERN void mecab_set_lattice_level(mecab_t *mecab, int level); + + /** + * C wrapper of MeCab::Tagger::all_morphs() + */ + MECAB_DLL_EXTERN int mecab_get_all_morphs(mecab_t *mecab); + + /** + * C wrapper of MeCab::Tagger::set_all_moprhs() + */ + MECAB_DLL_EXTERN void mecab_set_all_morphs(mecab_t *mecab, int all_morphs); + + /** + * C wrapper of MeCab::Tagger::parse(MeCab::Lattice *lattice) + */ + MECAB_DLL_EXTERN int mecab_parse_lattice(mecab_t *mecab, mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Tagger::parse(const char *str) + */ + MECAB_DLL_EXTERN const char* mecab_sparse_tostr(mecab_t *mecab, const char *str); + + /** + * C wrapper of MeCab::Tagger::parse(const char *str, size_t len) + */ + MECAB_DLL_EXTERN const char* mecab_sparse_tostr2(mecab_t *mecab, const char *str, size_t len); + + /** + * C wrapper of MeCab::Tagger::parse(const char *str, char *ostr, size_t olen) + */ + MECAB_DLL_EXTERN char* mecab_sparse_tostr3(mecab_t *mecab, const char *str, size_t len, + char *ostr, size_t olen); + + /** + * C wrapper of MeCab::Tagger::parseToNode(const char *str) + */ + MECAB_DLL_EXTERN const mecab_node_t* mecab_sparse_tonode(mecab_t *mecab, const char*); + + /** + * C wrapper of MeCab::Tagger::parseToNode(const char *str, size_t len) + */ + MECAB_DLL_EXTERN const mecab_node_t* mecab_sparse_tonode2(mecab_t *mecab, const char*, size_t); + + /** + * C wrapper of MeCab::Tagger::parseNBest(size_t N, const char *str) + */ + MECAB_DLL_EXTERN const char* mecab_nbest_sparse_tostr(mecab_t *mecab, size_t N, const char *str); + + /** + * C wrapper of MeCab::Tagger::parseNBest(size_t N, const char *str, size_t len) + */ + MECAB_DLL_EXTERN const char* mecab_nbest_sparse_tostr2(mecab_t *mecab, size_t N, + const char *str, size_t len); + + /** + * C wrapper of MeCab::Tagger::parseNBest(size_t N, const char *str, char *ostr, size_t olen) + */ + MECAB_DLL_EXTERN char* mecab_nbest_sparse_tostr3(mecab_t *mecab, size_t N, + const char *str, size_t len, + char *ostr, size_t olen); + + /** + * C wrapper of MeCab::Tagger::parseNBestInit(const char *str) + */ + MECAB_DLL_EXTERN int mecab_nbest_init(mecab_t *mecab, const char *str); + + /** + * C wrapper of MeCab::Tagger::parseNBestInit(const char *str, size_t len) + */ + MECAB_DLL_EXTERN int mecab_nbest_init2(mecab_t *mecab, const char *str, size_t len); + + /** + * C wrapper of MeCab::Tagger::next() + */ + MECAB_DLL_EXTERN const char* mecab_nbest_next_tostr(mecab_t *mecab); + + /** + * C wrapper of MeCab::Tagger::next(char *ostr, size_t olen) + */ + MECAB_DLL_EXTERN char* mecab_nbest_next_tostr2(mecab_t *mecab, char *ostr, size_t olen); + + /** + * C wrapper of MeCab::Tagger::nextNode() + */ + MECAB_DLL_EXTERN const mecab_node_t* mecab_nbest_next_tonode(mecab_t *mecab); + + /** + * C wrapper of MeCab::Tagger::formatNode(const Node *node) + */ + MECAB_DLL_EXTERN const char* mecab_format_node(mecab_t *mecab, const mecab_node_t *node); + + /** + * C wrapper of MeCab::Tagger::dictionary_info() + */ + MECAB_DLL_EXTERN const mecab_dictionary_info_t* mecab_dictionary_info(mecab_t *mecab); + + /* lattice interface */ + /** + * C wrapper of MeCab::createLattice() + */ + MECAB_DLL_EXTERN mecab_lattice_t *mecab_lattice_new(); + + /** + * C wrapper of MeCab::deleteLattice(lattice) + */ + MECAB_DLL_EXTERN void mecab_lattice_destroy(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::clear() + */ + MECAB_DLL_EXTERN void mecab_lattice_clear(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::is_available() + */ + + MECAB_DLL_EXTERN int mecab_lattice_is_available(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::bos_node() + */ + MECAB_DLL_EXTERN mecab_node_t *mecab_lattice_get_bos_node(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::eos_node() + */ + MECAB_DLL_EXTERN mecab_node_t *mecab_lattice_get_eos_node(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::begin_nodes() + */ + + MECAB_DLL_EXTERN mecab_node_t **mecab_lattice_get_all_begin_nodes(mecab_lattice_t *lattice); + /** + * C wrapper of MeCab::Lattice::end_nodes() + */ + MECAB_DLL_EXTERN mecab_node_t **mecab_lattice_get_all_end_nodes(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::begin_nodes(pos) + */ + MECAB_DLL_EXTERN mecab_node_t *mecab_lattice_get_begin_nodes(mecab_lattice_t *lattice, size_t pos); + + /** + * C wrapper of MeCab::Lattice::end_nodes(pos) + */ + MECAB_DLL_EXTERN mecab_node_t *mecab_lattice_get_end_nodes(mecab_lattice_t *lattice, size_t pos); + + /** + * C wrapper of MeCab::Lattice::sentence() + */ + MECAB_DLL_EXTERN const char *mecab_lattice_get_sentence(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::set_sentence(sentence) + */ + MECAB_DLL_EXTERN void mecab_lattice_set_sentence(mecab_lattice_t *lattice, const char *sentence); + + /** + * C wrapper of MeCab::Lattice::set_sentence(sentence, len) + */ + + MECAB_DLL_EXTERN void mecab_lattice_set_sentence2(mecab_lattice_t *lattice, const char *sentence, size_t len); + + /** + * C wrapper of MeCab::Lattice::size() + */ + MECAB_DLL_EXTERN size_t mecab_lattice_get_size(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::Z() + */ + MECAB_DLL_EXTERN double mecab_lattice_get_z(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::set_Z() + */ + MECAB_DLL_EXTERN void mecab_lattice_set_z(mecab_lattice_t *lattice, double Z); + + /** + * C wrapper of MeCab::Lattice::theta() + */ + MECAB_DLL_EXTERN double mecab_lattice_get_theta(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::set_theta() + */ + + MECAB_DLL_EXTERN void mecab_lattice_set_theta(mecab_lattice_t *lattice, double theta); + + /** + * C wrapper of MeCab::Lattice::next() + */ + MECAB_DLL_EXTERN int mecab_lattice_next(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::request_type() + */ + MECAB_DLL_EXTERN int mecab_lattice_get_request_type(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::has_request_type() + */ + MECAB_DLL_EXTERN int mecab_lattice_has_request_type(mecab_lattice_t *lattice, int request_type); + + /** + * C wrapper of MeCab::Lattice::set_request_type() + */ + MECAB_DLL_EXTERN void mecab_lattice_set_request_type(mecab_lattice_t *lattice, int request_type); + + /** + * C wrapper of MeCab::Lattice::add_request_type() + */ + + MECAB_DLL_EXTERN void mecab_lattice_add_request_type(mecab_lattice_t *lattice, int request_type); + + /** + * C wrapper of MeCab::Lattice::remove_request_type() + */ + MECAB_DLL_EXTERN void mecab_lattice_remove_request_type(mecab_lattice_t *lattice, int request_type); + + /** + * C wrapper of MeCab::Lattice::newNode(); + */ + MECAB_DLL_EXTERN mecab_node_t *mecab_lattice_new_node(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::toString() + */ + MECAB_DLL_EXTERN const char *mecab_lattice_tostr(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::toString(buf, size) + */ + MECAB_DLL_EXTERN const char *mecab_lattice_tostr2(mecab_lattice_t *lattice, char *buf, size_t size); + + /** + * C wrapper of MeCab::Lattice::enumNBestAsString(N) + */ + MECAB_DLL_EXTERN const char *mecab_lattice_nbest_tostr(mecab_lattice_t *lattice, size_t N); + + /** + * C wrapper of MeCab::Lattice::enumNBestAsString(N, buf, size) + */ + + MECAB_DLL_EXTERN const char *mecab_lattice_nbest_tostr2(mecab_lattice_t *lattice, size_t N, char *buf, size_t size); + + /** + * C wrapper of MeCab::Lattice::has_constraint() + */ + MECAB_DLL_EXTERN int mecab_lattice_has_constraint(mecab_lattice_t *lattice); + + /** + * C wrapper of MeCab::Lattice::boundary_constraint(pos) + */ + MECAB_DLL_EXTERN int mecab_lattice_get_boundary_constraint(mecab_lattice_t *lattice, size_t pos); + + + /** + * C wrapper of MeCab::Lattice::feature_constraint(pos) + */ + MECAB_DLL_EXTERN const char *mecab_lattice_get_feature_constraint(mecab_lattice_t *lattice, size_t pos); + + /** + * C wrapper of MeCab::Lattice::boundary_constraint(pos, type) + */ + MECAB_DLL_EXTERN void mecab_lattice_set_boundary_constraint(mecab_lattice_t *lattice, size_t pos, int boundary_type); + + /** + * C wrapper of MeCab::Lattice::set_feature_constraint(begin_pos, end_pos, feature) + */ + MECAB_DLL_EXTERN void mecab_lattice_set_feature_constraint(mecab_lattice_t *lattice, size_t begin_pos, size_t end_pos, const char *feature); + + /** + * C wrapper of MeCab::Lattice::set_result(result); + */ + MECAB_DLL_EXTERN void mecab_lattice_set_result(mecab_lattice_t *lattice, const char *result); + + /** + * C wrapper of MeCab::Lattice::what() + */ + MECAB_DLL_EXTERN const char *mecab_lattice_strerror(mecab_lattice_t *lattice); + + + /* model interface */ + /** + * C wapper of MeCab::Model::create(argc, argv) + */ + MECAB_DLL_EXTERN mecab_model_t *mecab_model_new(int argc, char **argv); + + /** + * C wapper of MeCab::Model::create(arg) + */ + MECAB_DLL_EXTERN mecab_model_t *mecab_model_new2(const char *arg); + + /** + * C wapper of MeCab::deleteModel(model) + */ + + MECAB_DLL_EXTERN void mecab_model_destroy(mecab_model_t *model); + + /** + * C wapper of MeCab::Model::createTagger() + */ + MECAB_DLL_EXTERN mecab_t *mecab_model_new_tagger(mecab_model_t *model); + + /** + * C wapper of MeCab::Model::createLattice() + */ + MECAB_DLL_EXTERN mecab_lattice_t *mecab_model_new_lattice(mecab_model_t *model); + + /** + * C wrapper of MeCab::Model::swap() + */ + MECAB_DLL_EXTERN int mecab_model_swap(mecab_model_t *model, mecab_model_t *new_model); + + /** + * C wapper of MeCab::Model::dictionary_info() + */ + MECAB_DLL_EXTERN const mecab_dictionary_info_t* mecab_model_dictionary_info(mecab_model_t *model); + + /** + * C wrapper of MeCab::Model::transition_cost() + */ + MECAB_DLL_EXTERN int mecab_model_transition_cost(mecab_model_t *model, + unsigned short rcAttr, + unsigned short lcAttr); + + /** + * C wrapper of MeCab::Model::lookup() + */ + MECAB_DLL_EXTERN mecab_node_t *mecab_model_lookup(mecab_model_t *model, + const char *begin, + const char *end, + mecab_lattice_t *lattice); + + /* static functions */ + MECAB_DLL_EXTERN int mecab_do(int argc, char **argv); + MECAB_DLL_EXTERN int mecab_dict_index(int argc, char **argv); + MECAB_DLL_EXTERN int mecab_dict_gen(int argc, char **argv); + MECAB_DLL_EXTERN int mecab_cost_train(int argc, char **argv); + MECAB_DLL_EXTERN int mecab_system_eval(int argc, char **argv); + MECAB_DLL_EXTERN int mecab_test_gen(int argc, char **argv); +#endif + +#ifdef __cplusplus +} +#endif + +/* C++ interface */ +#ifdef __cplusplus + +namespace MeCab { +typedef struct mecab_dictionary_info_t DictionaryInfo; +typedef struct mecab_path_t Path; +typedef struct mecab_node_t Node; + +template class Allocator; +class Tagger; + +/** + * Lattice class + */ +class MECAB_DLL_CLASS_EXTERN Lattice { +public: + /** + * Clear all internal lattice data. + */ + virtual void clear() = 0; + + /** + * Return true if result object is available. + * @return boolean + */ + virtual bool is_available() const = 0; + + /** + * Return bos (begin of sentence) node. + * You can obtain all nodes via "for (const Node *node = lattice->bos_node(); node; node = node->next) {}" + * @return bos node object + */ + virtual Node *bos_node() const = 0; + + /** + * Return eos (end of sentence) node. + * @return eos node object + */ + virtual Node *eos_node() const = 0; + +#ifndef SWIG + /** + * This method is used internally. + */ + virtual Node **begin_nodes() const = 0; + + /** + * This method is used internally. + */ + virtual Node **end_nodes() const = 0; +#endif + + /** + * Return node linked list ending at |pos|. + * You can obtain all nodes via "for (const Node *node = lattice->end_nodes(pos); node; node = node->enext) {}" + * @param pos position of nodes. 0 <= pos < size() + * @return node linked list + */ + virtual Node *end_nodes(size_t pos) const = 0; + + /** + * Return node linked list starting at |pos|. + * You can obtain all nodes via "for (const Node *node = lattice->begin_nodes(pos); node; node = node->bnext) {}" + * @param pos position of nodes. 0 <= pos < size() + * @return node linked list + */ + virtual Node *begin_nodes(size_t pos) const = 0; + + /** + * Return sentence. + * If MECAB_NBEST or MECAB_PARTIAL mode is off, the returned poiner is the same as the one set by set_sentence(). + * @return sentence + */ + virtual const char *sentence() const = 0; + + /** + * Set sentence. This method does not take the ownership of the object. + * @param sentence sentence + */ + virtual void set_sentence(const char *sentence) = 0; + +#ifndef SWIG + /** + * Set sentence. This method does not take the ownership of the object. + * @param sentence sentence + * @param len length of the sentence + */ + virtual void set_sentence(const char *sentence, size_t len) = 0; +#endif + + /** + * Return sentence size. + * @return sentence size + */ + virtual size_t size() const = 0; + + /** + * Set normalization factor of CRF. + * @param Z new normalization factor. + */ + virtual void set_Z(double Z) = 0; + + /** + * return normalization factor of CRF. + * @return normalization factor. + */ + virtual double Z() const = 0; + + /** + * Set temparature parameter theta. + * @param theta temparature parameter. + */ + virtual void set_theta(float theta) = 0; + + /** + * Return temparature parameter theta. + * @return temparature parameter. + */ + virtual float theta() const = 0; + + /** + * Obtain next-best result. The internal linked list structure is updated. + * You should set MECAB_NBEST reques_type in advance. + * Return false if no more results are available or request_type is invalid. + * @return boolean + */ + virtual bool next() = 0; + + /** + * Return the current request type. + * @return request type + */ + virtual int request_type() const = 0; + + /** + * Return true if the object has a specified request type. + * @return boolean + */ + virtual bool has_request_type(int request_type) const = 0; + + /** + * Set request type. + * @param request_type new request type assigned + */ + virtual void set_request_type(int request_type) = 0; + + /** + * Add request type. + * @param request_type new request type added + */ + virtual void add_request_type(int request_type) = 0; + + /** + * Remove request type. + * @param request_type new request type removed + */ + virtual void remove_request_type(int request_type) = 0; + +#ifndef SWIG + /** + * This method is used internally. + */ + virtual Allocator *allocator() const = 0; +#endif + + /** + * Return new node. Lattice objects has the ownership of the node. + * @return new node object + */ + virtual Node *newNode() = 0; + + /** + * Return string representation of the lattice. + * Returned object is managed by this instance. When clear/set_sentence() method + * is called, the returned buffer is initialized. + * @return string representation of the lattice + */ + virtual const char *toString() = 0; + + /** + * Return string representation of the node. + * Returned object is managed by this instance. When clear/set_sentence() method + * is called, the returned buffer is initialized. + * @return string representation of the node + * @param node node object + */ + virtual const char *toString(const Node *node) = 0; + + /** + * Return string representation of the N-best results. + * Returned object is managed by this instance. When clear/set_sentence() method + * is called, the returned buffer is initialized. + * @return string representation of the node + * @param N how many results you want to obtain + */ + virtual const char *enumNBestAsString(size_t N) = 0; + +#ifndef SWIG + /** + * Return string representation of the lattice. + * Result is saved in the specified buffer. + * @param buf output buffer + * @param size output buffer size + * @return string representation of the lattice + */ + virtual const char *toString(char *buf, size_t size) = 0; + + /** + * Return string representation of the node. + * Result is saved in the specified buffer. + * @param node node object + * @param buf output buffer + * @param size output buffer size + * @return string representation of the lattice + */ + virtual const char *toString(const Node *node, + char *buf, size_t size) = 0; + + /** + * Return string representation of the N-best result. + * Result is saved in the specified. + * @param N how many results you want to obtain + * @param buf output buffer + * @param size output buffer size + * @return string representation of the lattice + */ + virtual const char *enumNBestAsString(size_t N, char *buf, size_t size) = 0; +#endif + + /** + * Returns true if any parsing constraint is set + */ + virtual bool has_constraint() const = 0; + + /** + * Returns the boundary constraint at the position. + * @param pos the position of constraint + * @return boundary constraint type + */ + virtual int boundary_constraint(size_t pos) const = 0; + + /** + * Returns the token constraint at the position. + * @param pos the beginning position of constraint. + * @return constrained node starting at the position. + */ + virtual const char *feature_constraint(size_t pos) const = 0; + + /** + * Set parsing constraint for partial parsing mode. + * @param pos the position of the boundary + * @param boundary_constraint_type the type of boundary + */ + virtual void set_boundary_constraint(size_t pos, + int boundary_constraint_type) = 0; + + /** + * Set parsing constraint for partial parsing mode. + * @param begin_pos the starting position of the constrained token. + * @param end_pos the the ending position of the constrained token. + * @param feature the feature of the constrained token. + */ + virtual void set_feature_constraint( + size_t begin_pos, size_t end_pos, + const char *feature) = 0; + + /** + * Set golden parsing results for unittesting. + * @param result the parsing result written in the standard mecab output. + */ + virtual void set_result(const char *result) = 0; + + /** + * Return error string. + * @return error string + */ + virtual const char *what() const = 0; + + /** + * Set error string. given string is copied to the internal buffer. + * @param str new error string + */ + virtual void set_what(const char *str) = 0; + +#ifndef SWIG + /** + * Create new Lattice object + * @return new Lattice object + */ + static Lattice *create(); +#endif + + virtual ~Lattice() {} +}; + +/** + * Model class + */ +class MECAB_DLL_CLASS_EXTERN Model { +public: + /** + * Return DictionaryInfo linked list. + * @return DictionaryInfo linked list + */ + virtual const DictionaryInfo *dictionary_info() const = 0; + + /** + * Return transtion cost from rcAttr to lcAttr. + * @return transtion cost + */ + virtual int transition_cost(unsigned short rcAttr, + unsigned short lcAttr) const = 0; + + /** + * perform common prefix search from the range [begin, end). + * |lattice| takes the ownership of return value. + * @return node linked list. + */ + virtual Node *lookup(const char *begin, const char *end, + Lattice *lattice) const = 0; + + /** + * Create a new Tagger object. + * All returned tagger object shares this model object as a parsing model. + * Never delete this model object before deleting tagger object. + * @return new Tagger object + */ + virtual Tagger *createTagger() const = 0; + + /** + * Create a new Lattice object. + * @return new Lattice object + */ + virtual Lattice *createLattice() const = 0; + + /** + * Swap the instance with |model|. + * The ownership of |model| always moves to this instance, + * meaning that passed |model| will no longer be accessible after calling this method. + * return true if new model is swapped successfully. + * This method is thread safe. All taggers created by + * Model::createTagger() method will also be updated asynchronously. + * No need to stop the parsing thread excplicitly before swapping model object. + * @return boolean + * @param model new model which is going to be swapped with the current model. + */ + virtual bool swap(Model *model) = 0; + + /** + * Return a version string + * @return version string + */ + static const char *version(); + + virtual ~Model() {} + +#ifndef SWIG + /** + * Factory method to create a new Model with a specified main's argc/argv-style parameters. + * Return NULL if new model cannot be initialized. Use MeCab::getLastError() to obtain the + * cause of the errors. + * @return new Model object + * @param argc number of parameters + * @param argv parameter list + */ + static Model* create(int argc, char **argv); + + /** + * Factory method to create a new Model with a string parameter representation, i.e., + * "-d /user/local/mecab/dic/ipadic -Ochasen". + * Return NULL if new model cannot be initialized. Use MeCab::getLastError() to obtain the + * cause of the errors. + * @return new Model object + * @param arg single string representation of the argment. + */ + static Model* create(const char *arg); +#endif +}; + +/** + * Tagger class + */ +class MECAB_DLL_CLASS_EXTERN Tagger { +public: + /** + * Handy static method. + * Return true if lattice is parsed successfully. + * This function is equivalent to + * { + * Tagger *tagger = model.createModel(); + * cosnt bool result = tagger->parse(lattice); + * delete tagger; + * return result; + * } + * @return boolean + */ + static bool parse(const Model &model, Lattice *lattice); + + /** + * Parse lattice object. + * Return true if lattice is parsed successfully. + * A sentence must be set to the lattice with Lattice:set_sentence object before calling this method. + * Parsed node object can be obtained with Lattice:bos_node. + * This method is thread safe. + * @return lattice lattice object + * @return boolean + */ + virtual bool parse(Lattice *lattice) const = 0; + + /** + * Parse given sentence and return parsed result as string. + * You should not delete the returned string. The returned buffer + * is overwritten when parse method is called again. + * This method is NOT thread safe. + * @param str sentence + * @return parsed result + */ + virtual const char* parse(const char *str) = 0; + + /** + * Parse given sentence and return Node object. + * You should not delete the returned node object. The returned buffer + * is overwritten when parse method is called again. + * You can traverse all nodes via Node::next member. + * This method is NOT thread safe. + * @param str sentence + * @return bos node object + */ + virtual const Node* parseToNode(const char *str) = 0; + + /** + * Parse given sentence and obtain N-best results as a string format. + * Currently, N must be 1 <= N <= 512 due to the limitation of the buffer size. + * You should not delete the returned string. The returned buffer + * is overwritten when parse method is called again. + * This method is DEPRECATED. Use Lattice class. + * @param N how many results you want to obtain + * @param str sentence + * @return parsed result + */ + virtual const char* parseNBest(size_t N, const char *str) = 0; + + /** + * Initialize N-best enumeration with a sentence. + * Return true if initialization finishes successfully. + * N-best result is obtained by calling next() or nextNode() in sequence. + * This method is NOT thread safe. + * This method is DEPRECATED. Use Lattice class. + * @param str sentence + * @return boolean + */ + virtual bool parseNBestInit(const char *str) = 0; + + /** + * Return next-best parsed result. You must call parseNBestInit() in advance. + * Return NULL if no more reuslt is available. + * This method is NOT thread safe. + * This method is DEPRECATED. Use Lattice class. + * @return node object + */ + virtual const Node* nextNode() = 0; + + /** + * Return next-best parsed result. You must call parseNBestInit() in advance. + * Return NULL if no more reuslt is available. + * This method is NOT thread safe. + * This method is DEPRECATED. Use Lattice class. + * @return parsed result + */ + virtual const char* next() = 0; + + /** + * Return formatted node object. The format is specified with + * --unk-format, --bos-format, --eos-format, and --eon-format respectively. + * You should not delete the returned string. The returned buffer + * is overwritten when parse method is called again. + * This method is NOT thread safe. + * This method is DEPRECATED. Use Lattice class. + * @param node node object. + * @return parsed result + */ + virtual const char* formatNode(const Node *node) = 0; + +#ifndef SWIG + /** + * The same as parse() method, but input length and output buffer are passed. + * Return parsed result as string. The result pointer is the same as |ostr|. + * Return NULL, if parsed result string cannot be stored within |olen| bytes. + * @param str sentence + * @param len sentence length + * @param ostr output buffer + * @param olen output buffer length + * @return parsed result + */ + virtual const char* parse(const char *str, size_t len, char *ostr, size_t olen) = 0; + + /** + * The same as parse() method, but input length can be passed. + * @param str sentence + * @param len sentence length + * @return parsed result + */ + virtual const char* parse(const char *str, size_t len) = 0; + + /** + * The same as parseToNode(), but input lenth can be passed. + * @param str sentence + * @param len sentence length + * @return node object + */ + virtual const Node* parseToNode(const char *str, size_t len) = 0; + + /** + * The same as parseNBest(), but input length can be passed. + * @param N how many results you want to obtain + * @param str sentence + * @param len sentence length + * @return parsed result + */ + virtual const char* parseNBest(size_t N, const char *str, size_t len) = 0; + + /** + * The same as parseNBestInit(), but input length can be passed. + * @param str sentence + * @param len sentence length + * @return boolean + * @return parsed result + */ + virtual bool parseNBestInit(const char *str, size_t len) = 0; + + /** + * The same as next(), but output buffer can be passed. + * Return NULL if more than |olen| buffer is required to store output string. + * @param ostr output buffer + * @param olen output buffer length + * @return parsed result + */ + virtual const char* next(char *ostr , size_t olen) = 0; + + /** + * The same as parseNBest(), but input length and output buffer can be passed. + * Return NULL if more than |olen| buffer is required to store output string. + * @param N how many results you want to obtain + * @param str input sentence + * @param len input sentence length + * @param ostr output buffer + * @param olen output buffer length + * @return parsed result + */ + virtual const char* parseNBest(size_t N, const char *str, + size_t len, char *ostr, size_t olen) = 0; + + /** + * The same as formatNode(), but output buffer can be passed. + * Return NULL if more than |olen| buffer is required to store output string. + * @param node node object + * @param ostr output buffer + * @param olen output buffer length + * @return parsed result + */ + virtual const char* formatNode(const Node *node, char *ostr, size_t olen) = 0; +#endif + + /** + * Set request type. + * This method is DEPRECATED. Use Lattice::set_request_type(MECAB_PARTIAL). + * @param request_type new request type assigned + */ + virtual void set_request_type(int request_type) = 0; + + /** + * Return the current request type. + * This method is DEPRECATED. Use Lattice class. + * @return request type + */ + virtual int request_type() const = 0; + + /** + * Return true if partial parsing mode is on. + * This method is DEPRECATED. Use Lattice::has_request_type(MECAB_PARTIAL). + * @return boolean + */ + virtual bool partial() const = 0; + + /** + * set partial parsing mode. + * This method is DEPRECATED. Use Lattice::add_request_type(MECAB_PARTIAL) or Lattice::remove_request_type(MECAB_PARTIAL) + * @param partial partial mode + */ + virtual void set_partial(bool partial) = 0; + + /** + * Return lattice level. + * This method is DEPRECATED. Use Lattice::*_request_type() + * @return int lattice level + */ + virtual int lattice_level() const = 0; + + /** + * Set lattice level. + * This method is DEPRECATED. Use Lattice::*_request_type() + * @param level lattice level + */ + virtual void set_lattice_level(int level) = 0; + + /** + * Return true if all morphs output mode is on. + * This method is DEPRECATED. Use Lattice::has_request_type(MECAB_ALL_MORPHS). + * @return boolean + */ + virtual bool all_morphs() const = 0; + + /** + * set all-morphs output mode. + * This method is DEPRECATED. Use Lattice::add_request_type(MECAB_ALL_MORPHS) or Lattice::remove_request_type(MECAB_ALL_MORPHS) + * @param all_morphs + */ + virtual void set_all_morphs(bool all_morphs) = 0; + + /** + * Set temparature parameter theta. + * @param theta temparature parameter. + */ + virtual void set_theta(float theta) = 0; + + /** + * Return temparature parameter theta. + * @return temparature parameter. + */ + virtual float theta() const = 0; + + /** + * Return DictionaryInfo linked list. + * @return DictionaryInfo linked list + */ + virtual const DictionaryInfo* dictionary_info() const = 0; + + /** + * Return error string. + * @return error string + */ + virtual const char* what() const = 0; + + virtual ~Tagger() {} + +#ifndef SWIG + /** + * Factory method to create a new Tagger with a specified main's argc/argv-style parameters. + * Return NULL if new model cannot be initialized. Use MeCab::getLastError() to obtain the + * cause of the errors. + * @return new Tagger object + * @param argc number of parameters + * @param argv parameter list + */ + static Tagger *create(int argc, char **argv); + + /** + * Factory method to create a new Tagger with a string parameter representation, i.e., + * "-d /user/local/mecab/dic/ipadic -Ochasen". + * Return NULL if new model cannot be initialized. Use MeCab::getLastError() to obtain the + * cause of the errors. + * @return new Model object + * @param arg single string representation of the argment. + */ + static Tagger *create(const char *arg); +#endif + + /** + * Return a version string + * @return version string + */ + static const char *version(); +}; + +#ifndef SWIG +/** + * Alias of Lattice::create() + */ +MECAB_DLL_EXTERN Lattice *createLattice(); + +/** + * Alias of Mode::create(argc, argv) + */ +MECAB_DLL_EXTERN Model *createModel(int argc, char **argv); + +/** + * Alias of Mode::create(arg) + */ +MECAB_DLL_EXTERN Model *createModel(const char *arg); + +/** + * Alias of Tagger::create(argc, argv) + */ +MECAB_DLL_EXTERN Tagger *createTagger(int argc, char **argv); + +/** + * Alias of Tagger::create(arg) + */ +MECAB_DLL_EXTERN Tagger *createTagger(const char *arg); + +/** + * delete Lattice object. + * This method calles "delete lattice". + * In some environment, e.g., MS-Windows, an object allocated inside a DLL must be deleted in the same DLL too. + * @param lattice lattice object + */ +MECAB_DLL_EXTERN void deleteLattice(Lattice *lattice); + + +/** + * delete Model object. + * This method calles "delete model". + * In some environment, e.g., MS-Windows, an object allocated inside a DLL must be deleted in the same DLL too. + * @param model model object + */ +MECAB_DLL_EXTERN void deleteModel(Model *model); + +/** + * delete Tagger object. + * This method calles "delete tagger". + * In some environment, e.g., MS-Windows, an object allocated inside a DLL must be deleted in the same DLL too. + * @param tagger tagger object + */ +MECAB_DLL_EXTERN void deleteTagger(Tagger *tagger); + +/** + * Return last error string. + * @return error string + */ +MECAB_DLL_EXTERN const char* getLastError(); + +/** + * An alias of getLastError. + * It is kept for backward compatibility. + * @return error string + */ +MECAB_DLL_EXTERN const char* getTaggerError(); +#endif +} +#endif +#endif /* MECAB_MECAB_H_ */ diff --git a/mecab/python/setup.py b/mecab/python/setup.py index 4486cbb..ee1da4a 100644 --- a/mecab/python/setup.py +++ b/mecab/python/setup.py @@ -1,21 +1,36 @@ #!/usr/bin/env python -from distutils.core import setup,Extension,os -import string +from setuptools import setup, Extension -def cmd1(str): - return os.popen(str).readlines()[0][:-1] -def cmd2(str): - return string.split (cmd1(str)) - -setup(name = "mecab-python", - version = cmd1("mecab-config --version"), +setup( + name="mecab-python-windows", + version="0.9.9.6", py_modules=["MeCab"], - ext_modules = [ - Extension("_MeCab", + ext_modules=[ + Extension( + "_MeCab", ["MeCab_wrap.cxx",], - include_dirs=cmd2("mecab-config --inc-dir"), - library_dirs=cmd2("mecab-config --libs-only-L"), - libraries=cmd2("mecab-config --libs-only-l")) - ]) + include_dirs=["C:\Program Files (x86)\MeCab\sdk"], + library_dirs=["C:\Program Files (x86)\MeCab\sdk"], + libraries=["libmecab"] + ) + ], + author='Yukino Ikegami', + author_email='yknikgm@gmail.com', + platforms=['Windows'], + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Operating System :: Microsoft', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.6', + 'Topic :: Text Processing' + ], + description='Python wrapper for MeCab on Windows: Morphological Analysis engine', + long_description='''This is a python wrapper for MeCab. It works on Windows. + +License +--------- +MeCab is copyrighted free software by Taku Kudo and Nippon Telegraph and Telephone Corporation, and is released under any of the GPL (see the file GPL), the LGPL (see the file LGPL), or the BSD License (see the file BSD). +''' +) \ No newline at end of file diff --git a/mecab/python/setup64.py b/mecab/python/setup64.py new file mode 100644 index 0000000..6592e71 --- /dev/null +++ b/mecab/python/setup64.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python + +from setuptools import setup, Extension + + +setup( + name="mecab-python-windows", + version="0.9.9.6", + py_modules=["MeCab"], + ext_modules=[ + Extension( + "_MeCab", + ["MeCab_wrap.cxx",], + include_dirs=["C:\Program Files\MeCab\sdk"], + library_dirs=["C:\Program Files\MeCab\sdk"], + libraries=["libmecab"] + ) + ], + author='Yukino Ikegami', + author_email='yknikgm@gmail.com', + platforms=['Windows'], + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Operating System :: Microsoft', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.6', + 'Topic :: Text Processing' + ], + description='Python wrapper for MeCab on Windows: Morphological Analysis engine', + long_description='''This is a python wrapper for MeCab. It works on Windows. + +License +--------- +MeCab is copyrighted free software by Taku Kudo and Nippon Telegraph and Telephone Corporation, and is released under any of the GPL (see the file GPL), the LGPL (see the file LGPL), or the BSD License (see the file BSD). +''' +) \ No newline at end of file diff --git a/mecab/python/version.h b/mecab/python/version.h new file mode 100644 index 0000000..b7fbc39 --- /dev/null +++ b/mecab/python/version.h @@ -0,0 +1,3 @@ +namespace MeCab { +# define VERSION "0.996" +} diff --git a/mecab/src/Makefile.msvc.in b/mecab/src/Makefile.msvc.in index 7d10a5e..a84779a 100644 --- a/mecab/src/Makefile.msvc.in +++ b/mecab/src/Makefile.msvc.in @@ -3,10 +3,10 @@ CXXC = cl.exe LINK=link.exe CFLAGS = /EHsc /O2 /GL /GA /Ob2 /nologo /W3 /MT /Zi /wd4800 /wd4305 /wd4244 -LDFLAGS = /nologo /OPT:REF /OPT:ICF /LTCG /NXCOMPAT /DYNAMICBASE /MACHINE:X86 ADVAPI32.LIB +LDFLAGS = /nologo /OPT:REF /OPT:ICF /LTCG /NXCOMPAT /DYNAMICBASE /MACHINE:X64 ADVAPI32.LIB DEFS = -D_CRT_SECURE_NO_DEPRECATE -DMECAB_USE_THREAD \ - -DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=@DIC_VERSION@ \ - -DVERSION="\"@VERSION@\"" -DPACKAGE="\"mecab\"" \ + -DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=102 \ + -DVERSION="\"0.996\"" -DPACKAGE="\"mecab\"" \ -DUNICODE -D_UNICODE \ -DMECAB_DEFAULT_RC="\"c:\\Program Files\\mecab\\etc\\mecabrc\"" INC = -I. -I.. diff --git a/mecab/src/common.h b/mecab/src/common.h index d1fc459..6f1d7b4 100644 --- a/mecab/src/common.h +++ b/mecab/src/common.h @@ -14,6 +14,7 @@ #include #include #include +#include #ifdef __CYGWIN__ #define _GLIBCXX_EXPORT_TEMPLATE @@ -81,17 +82,10 @@ #define EXIT_SUCCESS 0 #endif -#ifdef _WIN32 -#ifdef __GNUC__ -#define WPATH_FORCE(path) (MeCab::Utf8ToWide(path).c_str()) -#define WPATH(path) (path) -#else -#define WPATH(path) WPATH_FORCE(path) -#endif -#else + #define WPATH_FORCE(path) (path) #define WPATH(path) (path) -#endif + namespace MeCab { class die { diff --git a/mecab/src/feature_index.cpp b/mecab/src/feature_index.cpp index 051bdf8..623da17 100644 --- a/mecab/src/feature_index.cpp +++ b/mecab/src/feature_index.cpp @@ -353,7 +353,7 @@ bool FeatureIndex::buildUnigramFeature(LearnerPath *path, if (!r) goto NEXT; os_ << r; } break; - case 't': os_ << (size_t)path->rnode->char_type; break; + case 't': os_ << (unsigned int)path->rnode->char_type; break; case 'u': os_ << ufeature; break; case 'w': if (path->rnode->stat == MECAB_NOR_NODE) { diff --git a/mecab/src/make.bat b/mecab/src/make.bat index f782e52..5f1252a 100755 --- a/mecab/src/make.bat +++ b/mecab/src/make.bat @@ -3,6 +3,6 @@ Set INCLUDE=c:\Program Files\Microsoft Visual Studio 8\VC\include;c:\Program Fil Set LIB=c:\Program Files\Microsoft Visual Studio 8\VC\lib;c:\Program Files\Microsoft Platform SDK\Lib;%LIB% Set COMSPEC=cmd.exe rem nmake -f Makefile.msvc clean -nmake -f Makefile.msvc +nmake -f Makefile.msvc.in diff --git a/mecab/src/mmap.h b/mecab/src/mmap.h index 63243ca..9e96096 100644 --- a/mecab/src/mmap.h +++ b/mecab/src/mmap.h @@ -104,7 +104,7 @@ template class Mmap { CHECK_FALSE(false) << "unknown open mode:" << filename; } - hFile = ::CreateFileW(WPATH_FORCE(filename), mode1, FILE_SHARE_READ, 0, + hFile = ::CreateFileA(WPATH(filename), mode1, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); CHECK_FALSE(hFile != INVALID_HANDLE_VALUE) << "CreateFile() failed: " << filename; diff --git a/mecab/src/utils.cpp b/mecab/src/utils.cpp index fe86657..39bfc0c 100644 --- a/mecab/src/utils.cpp +++ b/mecab/src/utils.cpp @@ -25,7 +25,7 @@ #include #endif -#include +#include #if defined(_WIN32) && !defined(__CYGWIN__) extern HINSTANCE DllInstance; diff --git a/mecab/src/utils.h b/mecab/src/utils.h index ea5c9e9..faadf71 100644 --- a/mecab/src/utils.h +++ b/mecab/src/utils.h @@ -19,7 +19,7 @@ #endif #ifdef HAVE_STDINT_H -#include +#include #else // HAVE_STDINT_H #if defined(_WIN32) && !defined(__CYGWIN__) #if defined(_MSC_VER) && (_MSC_VER <= 1500) @@ -27,7 +27,7 @@ typedef unsigned char uint8_t; typedef unsigned long uint32_t; typedef unsigned long long uint64_t; #else // _MSC_VER -#include +#include #endif // _MSC_VER #else // _WIN32 typedef unsigned char uint8_t; diff --git a/mecab/src/vc140.pdb b/mecab/src/vc140.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b2cb28d2361369c47f054c7550821058f5f14caf GIT binary patch literal 200704 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
3P(d{3R{Epa`a^XHh7 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 literal 0 HcmV?d00001 diff --git a/mecab/src/vc90.pdb b/mecab/src/vc90.pdb new file mode 100644 index 0000000000000000000000000000000000000000..89cd3ca4a1953fdd21a777d4be8623a9058d2d24 GIT binary patch literal 1208320 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

SNfQ5z4aB2cb)G> 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

dN;om1+Cp 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�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

&1fR-(k*jQr-u?xP2u%+GuqKk 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

oKOcnTQ$Iu(?kUsbEtyfK@}-Q*OG~l0 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 D?Y1?L literal 0 HcmV?d00001 diff --git a/mecab/src/writer.cpp b/mecab/src/writer.cpp index ed68767..6643338 100644 --- a/mecab/src/writer.cpp +++ b/mecab/src/writer.cpp @@ -257,7 +257,7 @@ bool Writer::writeNode(Lattice *lattice, // input sentence case 'S': os->write(lattice->sentence(), lattice->size()); break; // sentence length - case 'L': *os << lattice->size(); break; + case 'L': *os << (unsigned int)lattice->size(); break; // morph case 'm': os->write(node->surface, node->length); break; case 'M': os->write(reinterpret_cast