28 error() <<
"unique namespace not supported yet" <<
eom;
34 std::string identifier=
37 symbol_table_baset::symbolst::const_iterator it =
45 error() <<
"namespace alias '" << final_name <<
"' previously declared\n"
46 <<
"location of previous declaration: " << it->second.location
51 if(it->second.type.id()!=ID_namespace)
54 error() <<
"namespace '" << final_name <<
"' previously declared\n"
55 <<
"location of previous declaration: " << it->second.location
73 error() <<
"cpp_typecheckt::convert_namespace: symbol_table.move() failed"
90 for(
auto &item : namespace_spec.
items())
symbol_table_baset & symbol_table
const itemst & items() const
const irep_idt & get_namespace() const
cpp_scopet & resolve_namespace(const cpp_namet &cpp_name)
void convert(cpp_linkage_spect &)
friend class cpp_typecheck_resolvet
const source_locationt & source_location() const
source_locationt source_location
irep_idt base_name
Base (non-scoped) name.
irep_idt module
Name of module the symbol belongs to.
source_locationt location
Source code location of definition of symbol.
The type of an expression, extends irept.
C++ Language Type Checking.
const std::string & id2string(const irep_idt &d)