27 error() <<
"unique namespace not supported yet" <<
eom;
33 std::string identifier=
36 symbol_tablet::symbolst::const_iterator it=
44 error() <<
"namespace alias '" << final_name <<
"' previously declared\n"
45 <<
"location of previous declaration: " << it->second.location
50 if(it->second.type.id()!=ID_namespace)
53 error() <<
"namespace '" << final_name <<
"' previously declared\n"
54 <<
"location of previous declaration: " << it->second.location
66 symbol.
name=identifier;
77 error() <<
"cpp_typecheckt::convert_namespace: symbol_table.move() failed"
94 for(
auto &item : namespace_spec.
items())
symbol_tablet & symbol_table
const itemst & items() const
const irep_idt & get_namespace() const
cpp_scopet & new_namespace(const irep_idt &new_scope_name)
cpp_scopet & set_scope(const irep_idt &identifier)
cpp_scopet & current_scope()
void add_using_scope(cpp_scopet &other)
cpp_scopet & resolve_namespace(const cpp_namet &cpp_name)
void convert(cpp_linkage_spect &)
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
const source_locationt & source_location() const
source_locationt source_location
const symbolst & symbols
Read-only field, used to look up symbols given their names.
virtual std::pair< symbolt &, bool > insert(symbolt symbol) override
Author: Diffblue Ltd.
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.
typet type
Type of symbol.
irep_idt name
The unique identifier.
exprt value
Initial value of symbol.
irep_idt mode
Language mode.
The type of an expression, extends irept.
C++ Language Type Checking.
const std::string & id2string(const irep_idt &d)