32 cpp_id_mapt::iterator lower_it =
sub.lower_bound(base_name_to_lookup);
34 if(lower_it!=
sub.end())
36 cpp_id_mapt::iterator upper_it =
sub.upper_bound(base_name_to_lookup);
38 for(cpp_id_mapt::iterator n_it=lower_it;
39 n_it!=upper_it; n_it++)
40 id_set.insert(&n_it->second);
93 std::cout <<
"B: " << base_name_to_lookup <<
'\n';
94 std::cout <<
"K: " << kind <<
'\n';
95 std::cout <<
"I: " << identifier_class <<
'\n';
96 std::cout <<
"THIS: " <<
base_name <<
" " << identifier_class
100 cpp_id_mapt::iterator lower_it =
sub.lower_bound(base_name_to_lookup);
102 if(lower_it!=
sub.end())
104 cpp_id_mapt::iterator upper_it =
sub.upper_bound(base_name_to_lookup);
106 for(cpp_id_mapt::iterator n_it=lower_it;
107 n_it!=upper_it; n_it++)
109 if(n_it->second.id_class == identifier_class)
110 id_set.insert(&n_it->second);
128 base_name_to_lookup,
QUALIFIED, identifier_class, id_set);
142 base_name_to_lookup,
QUALIFIED, identifier_class, id_set);
154 base_name_to_lookup, kind, identifier_class, id_set);
163 for(cpp_id_mapt::iterator n_it=
sub.begin();
164 n_it!=
sub.end(); n_it++)
167 n_it->second.identifier ==
id &&
168 n_it->second.id_class == identifier_class)
170 id_set.insert(&n_it->second);
178 for(std::size_t i=0; i<parents_size(); i++)
scope_listt secondary_scopes
irep_idt class_identifier
class cpp_scopet & new_scope(const irep_idt &new_scope_name)
cpp_scopet & get_parent() const
id_sett lookup_identifier(const irep_idt &id, cpp_idt::id_classt identifier_class)
std::set< cpp_idt * > id_sett
void lookup_rec(const irep_idt &base_name, lookup_kindt kind, id_sett &)
id_sett lookup(const irep_idt &base_name_to_lookup, lookup_kindt kind)
cpp_idt & insert(const irep_idt &_base_name)
bool is_root_scope() const
bool contains(const irep_idt &base_name_to_lookup)
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
std::ostream & operator<<(std::ostream &out, cpp_scopet::lookup_kindt kind)
C++ Language Type Checking.
const std::string & id2string(const irep_idt &d)
#define UNREACHABLE
This should be used to mark dead code.