本文整理汇总了C++中AnalysisProcessor::getModels方法的典型用法代码示例。如果您正苦于以下问题:C++ AnalysisProcessor::getModels方法的具体用法?C++ AnalysisProcessor::getModels怎么用?C++ AnalysisProcessor::getModels使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AnalysisProcessor
的用法示例。
在下文中一共展示了AnalysisProcessor::getModels方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PyErr_Format
static PyObject *Triton_getModels(PyObject *self, PyObject *args)
{
PyObject *node = nullptr;
PyObject *limit;
PyObject *modelsList;
std::vector<std::list<Smodel>> models;
uint64 limit_c = 0;
uint64 modelsSize = 0;
/* Extract arguments */
PyArg_ParseTuple(args, "O|O", &node, &limit);
if (node == nullptr || !PySmtAstNode_Check(node))
return PyErr_Format(PyExc_TypeError, "getModels(): expected a SmtAstNode as first argument");
if (!PyLong_Check(limit) && !PyInt_Check(limit))
return PyErr_Format(PyExc_TypeError, "getModels(): expected a limit (integer) as second argument");
limit_c = PyLong_AsLong(limit);
if (limit_c == 0)
return PyErr_Format(PyExc_TypeError, "getModels(): The limit must be greater than 0");
/* Get models */
models = ap.getModels(PySmtAstNode_AsSmtAstNode(node), limit_c);
modelsSize = models.size();
modelsList = xPyList_New(modelsSize);
for (uint64 index = 0; index < modelsSize; index++){
std::list<Smodel> model = models[index];
std::list<Smodel>::iterator it;
/* Craft the model dictionary */
PyObject *modelDict = xPyDict_New();
for (it = model.begin() ; it != model.end(); it++)
PyDict_SetItemString(modelDict, it->getName().c_str(), Py_BuildValue("k", it->getValue()));
PyList_SetItem(modelsList, index, modelDict);
}
return modelsList;
}