diff options
Diffstat (limited to 'plugins/pychrysalide/mangling/demangler.c')
-rw-r--r-- | plugins/pychrysalide/mangling/demangler.c | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/plugins/pychrysalide/mangling/demangler.c b/plugins/pychrysalide/mangling/demangler.c index 15c9c62..d1209d1 100644 --- a/plugins/pychrysalide/mangling/demangler.c +++ b/plugins/pychrysalide/mangling/demangler.c @@ -36,6 +36,11 @@ +#define COMPILER_DEMANGLER_DOC \ + "CompDemangler is an abstract class for demangling names." + + + /* Tente de décoder une chaîne de caractères donnée en type. */ static PyObject *py_compiler_demangler_decode_type(PyObject *, PyObject *); @@ -65,6 +70,16 @@ static PyObject *py_compiler_demangler_decode_type(PyObject *self, PyObject *arg GCompDemangler *demangler; /* Décodeur mis en place */ GDataType *type; /* Type de données obtenu */ +#define COMPILER_DEMANGLER_DECODED_TYPE_METHOD PYTHON_METHOD_DEF \ +( \ + decode_type, "$self, desc, /", \ + METH_VARARGS, py_compiler_demangler, \ + "Demangle a type definition from its string mangled description.\n" \ + "\n" \ + "The result is an instance of type pychrysalide.analysis.DataType" \ + " on success, None otherwise." \ +) + ret = PyArg_ParseTuple(args, "s", &desc); if (!ret) return NULL; @@ -112,6 +127,16 @@ static PyObject *py_compiler_demangler_decode_routine(PyObject *self, PyObject * GCompDemangler *demangler; /* Décodeur mis en place */ GBinRoutine *routine; /* Routine obtenue */ +#define COMPILER_DEMANGLER_DECODED_ROUTINE_METHOD PYTHON_METHOD_DEF \ +( \ + decode_routine, "$self, desc, /", \ + METH_VARARGS, py_compiler_demangler, \ + "Demangle a routine definition from its string mangled description.\n" \ + "\n" \ + "The result is an instance of type pychrysalide.analysis.BinRoutine" \ + " on success, None otherwise." \ +) + ret = PyArg_ParseTuple(args, "s", &desc); if (!ret) return NULL; @@ -153,16 +178,8 @@ static PyObject *py_compiler_demangler_decode_routine(PyObject *self, PyObject * PyTypeObject *get_python_compiler_demangler_type(void) { static PyMethodDef py_comp_demangler_methods[] = { - { - "decode_type", py_compiler_demangler_decode_type, - METH_VARARGS, - "decode_type(self, desc/)\n--\n\nDemangle a type definition from its string mangled description." - }, - { - "decode_routine", py_compiler_demangler_decode_routine, - METH_VARARGS, - "decode_routine(self, desc/)\n--\n\nDemangle a routine definition from its string mangled description." - }, + COMPILER_DEMANGLER_DECODED_TYPE_METHOD, + COMPILER_DEMANGLER_DECODED_ROUTINE_METHOD, { NULL } }; @@ -179,7 +196,7 @@ PyTypeObject *get_python_compiler_demangler_type(void) .tp_flags = Py_TPFLAGS_DEFAULT, - .tp_doc = "PyChrysalide generic demangler", + .tp_doc = COMPILER_DEMANGLER_DOC, .tp_methods = py_comp_demangler_methods, .tp_getset = py_comp_demangler_getseters, |