summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorJochen Nitschke <j.nitschke+logerrit@ok.de>2016-05-03 17:29:41 +0200
committerDavid Tardon <dtardon@redhat.com>2016-05-09 07:17:58 +0000
commit116cf0b298ed62f26a60db51164f6510007d2579 (patch)
treed9f66f88537dc4fbe4007614230c205702a18418 /starmath
parent8a4dd6f45b12e7d44ad595bc0fadc37075061119 (diff)
modernize loops
use one style (reverse_iterators) for reverse loops and use range base loops if possible Change-Id: I231572bc5923e450d7a54bb88c7d8ef63d04f41d Reviewed-on: https://gerrit.libreoffice.org/24758 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'starmath')
-rw-r--r--starmath/source/parse.cxx78
1 files changed, 28 insertions, 50 deletions
diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx
index b2bb9bb67e67..55a3a8d59749 100644
--- a/starmath/source/parse.cxx
+++ b/starmath/source/parse.cxx
@@ -293,20 +293,15 @@ static const SmTokenTableEntry aTokenTable[] =
const SmTokenTableEntry * SmParser::GetTokenTableEntry( const OUString &rName )
{
- const SmTokenTableEntry * pRes = nullptr;
if (!rName.isEmpty())
{
- for (size_t i = 0; i < SAL_N_ELEMENTS(aTokenTable); ++i)
+ for (auto const &token : aTokenTable)
{
- if (rName.equalsIgnoreAsciiCase( OUString::createFromAscii(aTokenTable[i].pIdent) ))
- {
- pRes = &aTokenTable[i];
- break;
- }
+ if (rName.equalsIgnoreAsciiCase( OUString::createFromAscii(token.pIdent) ))
+ return &token;
}
}
-
- return pRes;
+ return nullptr;
}
namespace {
@@ -326,21 +321,17 @@ bool IsDelimiter( const OUString &rTxt, sal_Int32 nPos )
{
' ', '\t', '\n', '\r', '+', '-', '*', '/', '=', '#',
'%', '\\', '"', '~', '`', '>', '<', '&', '|', '(',
- ')', '{', '}', '[', ']', '^', '_',
- '\0' // end of list symbol
+ ')', '{', '}', '[', ']', '^', '_'
};
- const sal_Unicode *pDelim = &aDelimiterTable[0];
- for ( ; *pDelim != 0; pDelim++)
- if (*pDelim == cChar)
- break;
-
+ for (auto const &cDelimiter : aDelimiterTable)
+ {
+ if (cDelimiter == cChar)
+ return true;
+ }
sal_Int16 nTypJp = SM_MOD()->GetSysLocale().GetCharClass().getType( rTxt, nPos );
- bool bIsDelim = (*pDelim != 0 ||
- nTypJp == css::i18n::UnicodeType::SPACE_SEPARATOR ||
- nTypJp == css::i18n::UnicodeType::CONTROL);
-
- return bIsDelim;
+ return ( nTypJp == css::i18n::UnicodeType::SPACE_SEPARATOR ||
+ nTypJp == css::i18n::UnicodeType::CONTROL);
}
}
@@ -965,12 +956,10 @@ void SmParser::DoTable()
if (m_aCurToken.eType != TEND)
Error(PE_UNEXPECTED_CHAR);
- SmNodeArray LineArray;
- while (!m_aNodeStack.empty())
+ SmNodeArray LineArray(m_aNodeStack.size());
+ for (auto rIt = LineArray.rbegin(), rEnd = LineArray.rend(); rIt != rEnd; ++rIt)
{
- auto pNode = std::move(m_aNodeStack.back());
- m_aNodeStack.pop_back();
- LineArray.push_back(pNode.release());
+ *rIt = popOrZero(m_aNodeStack);
}
std::unique_ptr<SmStructureNode> pSNode(new SmTableNode(m_aCurToken));
@@ -1212,11 +1201,8 @@ void SmParser::DoSubSup(sal_uLong nActiveGroup)
pNode->SetUseLimits(nActiveGroup == TGLIMIT);
// initialize subnodes array
- SmNodeArray aSubNodes;
- aSubNodes.resize(1 + SUBSUP_NUM_ENTRIES);
+ SmNodeArray aSubNodes(1 + SUBSUP_NUM_ENTRIES, nullptr);
aSubNodes[0] = popOrZero(m_aNodeStack);
- for (size_t i = 1; i < aSubNodes.size(); i++)
- aSubNodes[i] = nullptr;
// process all sub-/supscripts
int nIndex = 0;
@@ -1420,10 +1406,9 @@ void SmParser::DoTerm(bool bGroupNumberIdent)
// We have several concatenated identifiers and numbers.
// Let's group them into one SmExpressionNode.
SmNodeArray nodeArray(nTokens);
- while (nTokens > 0)
+ for (auto rIt = nodeArray.rbegin(), rEnd = nodeArray.rend(); rIt != rEnd; ++rIt)
{
- nodeArray[nTokens-1] = popOrZero(m_aNodeStack);
- nTokens--;
+ *rIt = popOrZero(m_aNodeStack);
}
std::unique_ptr<SmExpressionNode> pNode(new SmExpressionNode(SmToken()));
pNode->SetSubNodes(nodeArray);
@@ -2060,7 +2045,6 @@ void SmParser::DoBrace()
void SmParser::DoBracebody(bool bIsLeftRight)
{
std::unique_ptr<SmStructureNode> pBody(new SmBracebodyNode(m_aCurToken));
- SmNodeArray aNodes;
sal_uInt16 nNum = 0;
// get body if any
@@ -2106,10 +2090,10 @@ void SmParser::DoBracebody(bool bIsLeftRight)
}
// build argument vector in parsing order
- aNodes.resize(nNum);
- for (sal_uInt16 i = 0; i < nNum; i++)
+ SmNodeArray aNodes(nNum);
+ for (auto rIt = aNodes.rbegin(), rEnd = aNodes.rend(); rIt != rEnd; ++rIt)
{
- aNodes[nNum - 1 - i] = popOrZero(m_aNodeStack);
+ *rIt = popOrZero(m_aNodeStack);
}
pBody->SetSubNodes(aNodes);
@@ -2155,7 +2139,6 @@ void SmParser::DoFunction()
void SmParser::DoBinom()
{
- SmNodeArray ExpressionArray;
std::unique_ptr<SmStructureNode> pSNode(new SmTableNode(m_aCurToken));
NextToken();
@@ -2163,12 +2146,9 @@ void SmParser::DoBinom()
DoSum();
DoSum();
- ExpressionArray.resize(2);
-
- for (int i = 0; i < 2; i++)
- {
- ExpressionArray[2 - (i + 1)] = popOrZero(m_aNodeStack);
- }
+ SmNodeArray ExpressionArray(2);
+ ExpressionArray[1] = popOrZero(m_aNodeStack);
+ ExpressionArray[0] = popOrZero(m_aNodeStack);
pSNode->SetSubNodes(ExpressionArray);
m_aNodeStack.push_front(std::move(pSNode));
@@ -2190,10 +2170,9 @@ void SmParser::DoStack()
while (m_aCurToken.eType == TPOUND);
SmNodeArray ExpressionArray(n);
-
- for (sal_uInt16 i = 0; i < n; i++)
+ for (auto rIt = ExpressionArray.rbegin(), rEnd = ExpressionArray.rend(); rIt != rEnd; ++rIt)
{
- ExpressionArray[n - (i + 1)] = popOrZero(m_aNodeStack);
+ *rIt = popOrZero(m_aNodeStack);
}
if (m_aCurToken.eType != TRGROUP)
@@ -2253,10 +2232,9 @@ void SmParser::DoMatrix()
size_t nRC = static_cast<size_t>(r) * c;
SmNodeArray ExpressionArray(nRC);
-
- for (size_t i = 0; i < (nRC); ++i)
+ for (auto rIt = ExpressionArray.rbegin(), rEnd = ExpressionArray.rend(); rIt != rEnd; ++rIt)
{
- ExpressionArray[(nRC) - (i + 1)] = popOrZero(m_aNodeStack);
+ *rIt = popOrZero(m_aNodeStack);
}
if (m_aCurToken.eType != TRGROUP)