loom
1#include "SemanticDataCollector.h"
2
3#include <cassert>
4
5using namespace simodo;
6
7void SemanticDataCollector::collectNameInitiated(const variable::Variable & var)
8{
9for(size_t i=_declared.size()-1; i < _declared.size(); --i)
10if (_declared[i].name() == var.name()) {
11_declared[i].value() = var.value();
12return;
13}
14
15assert(false);
16}
17
18void SemanticDataCollector::collectNameUsed(const simodo::variable::Variable & var, const simodo::inout::TokenLocation & used_location)
19{
20/// \todo [Фетисов 2024-07-15] Попытка правки некорректной подсветки SemanticTokens
21/// для ODE не удалась. Закомментированный код можно удалять через пару-тройку месяцев.
22// auto it = std::find_if(_used.begin(), _used.end(),
23// [used_location](const std::pair<simodo::variable::Variable, simodo::inout::TokenLocation> & u){
24// return u.second == used_location;
25// });
26
27// if (it != _used.end())
28// it->first = var;
29// else
30_used.emplace_back(var, used_location);
31}
32
33