1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#include "store.ih"
void Store::insert(ostream &out, string const &name, bool doSelect) const
{
auto iter = d_defIdx.begin();
auto end = d_defIdx.end();
Pattern namePattern;
if (not doSelect)
namePattern.setPattern(name);
while (true)
{
iter = doSelect ?
find_if(
iter, end,
[&](size_t idx)
{
return string(d_xrefData[idx].name()).find(name)
== 0;
}
)
:
find_if(
iter, end,
[&](size_t idx)
{
return namePattern << d_xrefData[idx].symbol();
}
);
if (iter == end)
break;
insertDefined(*iter, out, d_xrefData);
++iter;
}
}
|