本文整理汇总了C++中Namespace::setName方法的典型用法代码示例。如果您正苦于以下问题:C++ Namespace::setName方法的具体用法?C++ Namespace::setName怎么用?C++ Namespace::setName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Namespace
的用法示例。
在下文中一共展示了Namespace::setName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseNamespaces
void ClassAnalyzer::parseNamespaces(const QString& code)
{
m_namespaces.clear();
QVector<int> namespacePositions = positions(code, "\\snamespace\\s", true);
QVector<int> openingCurlyBracketPositions = positions(code, "{");
QVector<int> closingCurlyBracketPositions = positions(code, "}");
if (openingCurlyBracketPositions.size() != closingCurlyBracketPositions.size())
{
qDebug() << m_currentFile;
qDebug() << "quantity of opening and closing curly brackets does not match";
qDebug() << "quantity of opening curly brackets:" << openingCurlyBracketPositions.size();
qDebug() << "quantity of closing curly brackets:" << closingCurlyBracketPositions.size();
return;
}
QVector<int> allCurlyBracketPositions = openingCurlyBracketPositions;
allCurlyBracketPositions.append(closingCurlyBracketPositions);
qSort(allCurlyBracketPositions);
QMap<int, int> curlyBracketPairs;
for (int i = 0; i < allCurlyBracketPositions.size(); i++)
{
if (openingCurlyBracketPositions.contains(allCurlyBracketPositions[i]))
{
int nesting = 1;
for (int j = i + 1; j < allCurlyBracketPositions.size(); j++)
{
if (openingCurlyBracketPositions.contains(allCurlyBracketPositions[j]))
{
nesting++;
}
else
{
nesting--;
}
if (nesting == 0)
{
curlyBracketPairs[allCurlyBracketPositions[i]] = allCurlyBracketPositions[j];
break;
}
}
}
}
//qDebug() << curlyBracketPairs;
for (auto it = namespacePositions.begin(); it != namespacePositions.end(); it++)
{
Namespace ns;
for (auto it2 = curlyBracketPairs.begin(); it2 != curlyBracketPairs.end(); it2++)
{
if (it2.key() > *it)
{
ns.setStartPosition(it2.key());
ns.setStopPosition(it2.value());
ns.setName(namespaceName(code, *it, it2.key()));
m_namespaces.append(ns);
break;
}
}
}
}