const CodeLabel & codeLabel(const std::string &name) const
UInt32 InstructionAddress
int dataLabelCount(Address address) const
virtual void addDataLabel(const DataLabel *dataLabel)
CodeLabelList codeLabels_
Code labels contained by this scope.
Scope * parent_
The smallest outer scope that contains this scope.
virtual bool isProcedure() const
DataLabelList dataLabels_
Data labels contained by this scope.
virtual bool isLocal() const
void addChild(const Scope &scope)
virtual void addCodeLabel(const CodeLabel *codeLabel)
virtual void addGlobalDataLabel(const DataLabel &dataLabel, const Scope &owner)=0
Adds a data label and its owner to the global label bookkeeping.
virtual bool isUnit() const
virtual bool isGlobal() const
void setParent(Scope &scope)
virtual void removeCodeLabels(InstructionAddress address)
virtual Scope * copy() const =0
std::vector< const DataLabel * > DataLabelList
List of data labels.
std::vector< const CodeLabel * > CodeLabelList
List of code labels.
std::vector< const Scope * > ScopeList
List for child scopes.
const Scope & child(int index) const
virtual void addGlobalCodeLabel(const CodeLabel &codeLabel, const Scope &owner)=0
Adds a code label and its owner to the global label bookkeeping.
const DataLabel & dataLabel(const std::string &name) const
Scope & operator=(const Scope &)
Assignment not allowed.
bool containsCodeLabel(const std::string &name) const
int codeLabelCount(Address address) const
bool containsDataLabel(const std::string &name) const
ScopeList children_
Child scopes.