data: NameHierarchy class

* replaced vector of strings as name hierarchy by a new NameHierarchy class.
* Adjusted code in ASTVisitor, Storage and various test cases.
This commit is contained in:
malte_langkabel
2015-03-28 16:57:30 +01:00
parent 07ca387326
commit bdbd266a67
27 changed files with 485 additions and 283 deletions
+48
View File
@@ -0,0 +1,48 @@
#include "data/name/NameHierarchy.h"
NameHierarchy::NameHierarchy()
{
}
NameHierarchy::~NameHierarchy()
{
}
void NameHierarchy::push(std::shared_ptr<NameElement> element)
{
m_elements.push_back(element);
}
void NameHierarchy::pop()
{
m_elements.pop_back();
}
std::shared_ptr<NameElement> NameHierarchy::back()
{
return m_elements.back();
}
std::shared_ptr<NameElement> NameHierarchy::operator[](size_t pos) const
{
return m_elements[pos];
}
size_t NameHierarchy::size() const
{
return m_elements.size();
}
std::string NameHierarchy::getFullName() const
{
std::string name;
for (int i = 0; i < m_elements.size(); i++)
{
name += m_elements[i]->getFullName();
if (i < m_elements.size() - 1)
{
name += "::";
}
}
return name;
}