static PyObject* SymbolicExpression_getNewAst(PyObject* self, PyObject* noarg) { try { return PyAstNode(PySymbolicExpression_AsSymbolicExpression(self)->getNewAst()); } catch (const std::exception& e) { return PyErr_Format(PyExc_TypeError, "%s", e.what()); } }
static PyObject* PathConstraint_getTakenPathConstraintAst(PyObject* self, PyObject* noarg) { try { return PyAstNode(PyPathConstraint_AsPathConstraint(self)->getTakenPathConstraintAst()); } catch (const triton::exceptions::Exception& e) { return PyErr_Format(PyExc_TypeError, "%s", e.what()); } }
static PyObject* MemoryAccess_getLeaAst(PyObject* self, PyObject* noarg) { try { if (PyMemoryAccess_AsMemoryAccess(self)->getLeaAst() == nullptr) { Py_INCREF(Py_None); return Py_None; } return PyAstNode(PyMemoryAccess_AsMemoryAccess(self)->getLeaAst()); } catch (const triton::exceptions::Exception& e) { return PyErr_Format(PyExc_TypeError, "%s", e.what()); } }
static PyObject* PathConstraint_getBranchConstraints(PyObject* self, PyObject* noarg) { try { PyObject* ret = nullptr; std::vector<std::tuple<bool, triton::__uint, triton::ast::AbstractNode*>>& branches = PyPathConstraint_AsPathConstraint(self)->getBranchConstraints(); ret = xPyList_New(branches.size()); for (triton::uint32 index = 0; index != branches.size(); index++) { PyObject* dict = xPyDict_New(); PyDict_SetItem(dict, PyString_FromString("taken"), PyBool_FromLong(std::get<0>(branches[index]))); PyDict_SetItem(dict, PyString_FromString("target"), PyLong_FromUint(std::get<1>(branches[index]))); PyDict_SetItem(dict, PyString_FromString("constraint"), PyAstNode(std::get<2>(branches[index]))); PyList_SetItem(ret, index, dict); } return ret; } catch (const std::exception& e) { return PyErr_Format(PyExc_TypeError, "%s", e.what()); } }
static PyObject* PathConstraint_getBranchConstraints(PyObject* self, PyObject* noarg) { try { PyObject* ret = nullptr; const auto& branches = PyPathConstraint_AsPathConstraint(self)->getBranchConstraints(); ret = xPyList_New(branches.size()); for (triton::usize index = 0; index != branches.size(); index++) { PyObject* dict = xPyDict_New(); xPyDict_SetItem(dict, PyString_FromString("isTaken"), PyBool_FromLong(std::get<0>(branches[index]))); xPyDict_SetItem(dict, PyString_FromString("srcAddr"), PyLong_FromUint64(std::get<1>(branches[index]))); xPyDict_SetItem(dict, PyString_FromString("dstAddr"), PyLong_FromUint64(std::get<2>(branches[index]))); xPyDict_SetItem(dict, PyString_FromString("constraint"), PyAstNode(std::get<3>(branches[index]))); PyList_SetItem(ret, index, dict); } return ret; } catch (const triton::exceptions::Exception& e) { return PyErr_Format(PyExc_TypeError, "%s", e.what()); } }