13#include "comin_variable.hpp"
15#include "comin_state.hpp"
29 auto match_descr = [&](
const t_comin_var_context& i) {
30 return i.var_item->descriptor == *
descr;
34 auto find_context = [&](
const auto& v) {
35 return std::any_of(v.second.begin(), v.second.end(), match_descr);
39 return std::any_of(state.comin_var_list_context.begin(),
40 state.comin_var_list_context.end(), find_context);
46 t_comin_var_item* var_item,
48 t_comin_var_context item;
49 item.var_item = var_item;
50 item.access_flag = access_flag;
52 auto& context = comin::state.comin_var_list_context[{ep, plugin_id}];
53 bool found = std::any_of(
54 context.begin(), context.end(), [&](t_comin_var_context& i) {
55 return i.var_item->descriptor == item.var_item->descriptor;
58 context.push_back(item);
62 auto& var_list = comin::state.comin_var_list;
67 return new t_comin_var_descr_list_iterator{
68 comin::state.comin_var_list.begin()};
73 auto& var_list = comin::state.comin_var_list;
77 if (current->it == var_list.end())
92 *var_desc = current->it->first;
96 return new comin::keyval::Map{};
C interface for the ICON Community Interface.
void comin_var_descr_list_iterator_delete(t_comin_var_descr_list_iterator **it)
void comin_var_get_descr_list_var_desc(t_comin_var_descr_list_iterator *current, t_comin_var_descriptor *var_desc)
t_comin_var_descr_list_iterator * comin_var_get_descr_list_head()
bool comin_var_is_used(const t_comin_var_descriptor *descr)
void comin_destruct_metadata(comin::keyval::Map *metadata)
comin::keyval::Map * comin_construct_metadata()
void comin_var_list_context_append(t_comin_entry_point ep, int plugin_id, t_comin_var_item *var_item, int access_flag)
t_comin_var_descr_list_iterator * comin_var_get_descr_list_next(t_comin_var_descr_list_iterator *current)
bool operator==(const t_comin_var_descriptor &a, const t_comin_var_descriptor &b)
struct t_comin_var_descr_list_iterator t_comin_var_descr_list_iterator