diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2016-01-25 12:20:01 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2016-01-26 11:21:43 +0000 |
commit | 956021dbfcecfdcab0c8f72deca68d731be79898 (patch) | |
tree | 0cebbf89f468e25b98cea7fe55ac8f56c64e9b00 /src/tools/qlalr/lalr.cpp | |
parent | cf9d112d7a99502b7f68c3bce5fe5e2a6d123917 (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.cpp | 8 |
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) |