summaryrefslogtreecommitdiffstats
path: root/src/tools/qlalr/lalr.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2016-01-25 12:20:01 +0100
committerMarc Mutz <marc.mutz@kdab.com>2016-01-26 11:21:43 +0000
commit956021dbfcecfdcab0c8f72deca68d731be79898 (patch)
tree0cebbf89f468e25b98cea7fe55ac8f56c64e9b00 /src/tools/qlalr/lalr.cpp
parentcf9d112d7a99502b7f68c3bce5fe5e2a6d123917 (diff)
qlalr: eradicate all Q_FOREACH loops
... by replacing them with C++11 range-for, or, for loops over .values(), with explicit iterator loops over the result of equal_range(). Some fixes here and there to get to mark containers const for iteration, without having to resort to qAsConst(). Didn't work everywhere. Change-Id: Ibc0e71d3b208d118f06e16741af47261ef4b9e15 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'src/tools/qlalr/lalr.cpp')
-rw-r--r--src/tools/qlalr/lalr.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/tools/qlalr/lalr.cpp b/src/tools/qlalr/lalr.cpp
index 5b88456ce9..81975a0f2a 100644
--- a/src/tools/qlalr/lalr.cpp
+++ b/src/tools/qlalr/lalr.cpp
@@ -410,8 +410,10 @@ void Automaton::buildLookbackSets ()
if (! _M_grammar->isNonTerminal (A))
continue;
- foreach (const RulePointer &rule, _M_grammar->rule_map.values (A))
+ const auto range = qAsConst(_M_grammar->rule_map).equal_range(A);
+ for (auto it = range.first; it != range.second; ++it)
{
+ const RulePointer &rule = *it;
StatePointer q = p;
for (NameList::iterator dot = rule->rhs.begin (); dot != rule->rhs.end (); ++dot)
@@ -603,8 +605,10 @@ void Automaton::buildIncludesDigraph ()
if (! _M_grammar->isNonTerminal (name))
continue;
- foreach (const RulePointer &rule, _M_grammar->rule_map.values (name))
+ const auto range = qAsConst(_M_grammar->rule_map).equal_range(name);
+ for (auto it = range.first; it != range.second; ++it)
{
+ const RulePointer &rule = *it;
StatePointer p = pp;
for (NameList::iterator A = rule->rhs.begin (); A != rule->rhs.end (); ++A)