Skip to content
Snippets Groups Projects
Commit 757de891 authored by Franck Dary's avatar Franck Dary
Browse files

Working tokeparser_seq

parent 209dd02c
No related branches found
No related tags found
No related merge requests found
...@@ -39,6 +39,8 @@ Strategy::Strategy(const std::vector<std::string_view> & lines) ...@@ -39,6 +39,8 @@ Strategy::Strategy(const std::vector<std::string_view> & lines)
if (edges.empty()) if (edges.empty())
util::myThrow("Strategy is empty"); util::myThrow("Strategy is empty");
if (type == Type::Sequential)
defaultCycle.pop_back();
std::reverse(defaultCycle.begin(), defaultCycle.end()); std::reverse(defaultCycle.begin(), defaultCycle.end());
originalDefaultCycle = defaultCycle; originalDefaultCycle = defaultCycle;
} }
...@@ -50,18 +52,21 @@ std::pair<std::string, int> Strategy::getMovement(const Config & c, const std::s ...@@ -50,18 +52,21 @@ std::pair<std::string, int> Strategy::getMovement(const Config & c, const std::s
if (c.stateIsDone()) if (c.stateIsDone())
isDone[c.getState()] = true; isDone[c.getState()] = true;
for (unsigned int i = 0; i < defaultCycle.size(); i++) if (type == Type::Sequential)
{ {
while (defaultCycle.size() && isDone[defaultCycle.back()])
defaultCycle.pop_back();
return getMovementSequential(c, transitionPrefix);
}
for (unsigned int i = 0; i < defaultCycle.size(); i++)
if (isDone[defaultCycle[i]]) if (isDone[defaultCycle[i]])
{ {
while (defaultCycle.size() != i) while (defaultCycle.size() != i)
defaultCycle.pop_back(); defaultCycle.pop_back();
break; break;
} }
}
if (type == Type::Sequential)
return getMovementSequential(c, transitionPrefix);
return getMovementIncremental(c, transitionPrefix); return getMovementIncremental(c, transitionPrefix);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment