src: refactored name resolvers
* added classes that represent different name kinds * rewrote NameResolvers to return the new name classes instead of NameElement and NameHierarchy * removed DataType classes since their functionality moved to the CxxTypeName class.
This commit is contained in:
@@ -159,19 +159,6 @@ add_files(
|
||||
data/search/SearchMatch.cpp
|
||||
data/search/SearchMatch.h
|
||||
|
||||
data/type/ArrayModifiedDataType.cpp
|
||||
data/type/ArrayModifiedDataType.h
|
||||
data/type/DataType.cpp
|
||||
data/type/DataType.h
|
||||
data/type/ModifiedDataType.cpp
|
||||
data/type/ModifiedDataType.h
|
||||
data/type/NamedDataType.cpp
|
||||
data/type/NamedDataType.h
|
||||
data/type/PointerModifiedDataType.cpp
|
||||
data/type/PointerModifiedDataType.h
|
||||
data/type/ReferenceModifiedDataType.cpp
|
||||
data/type/ReferenceModifiedDataType.h
|
||||
|
||||
data/DefinitionType.cpp
|
||||
data/DefinitionType.h
|
||||
data/ErrorCountInfo.h
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
#include "data/location/TokenLocationFile.h"
|
||||
#include "data/location/TokenLocationLine.h"
|
||||
#include "data/parser/ParseLocation.h"
|
||||
#include "data/type/DataType.h"
|
||||
|
||||
PersistentStorage::PersistentStorage(const FilePath& dbPath)
|
||||
: m_sqliteStorage(dbPath)
|
||||
|
||||
@@ -38,7 +38,7 @@ std::string NameElement::Signature::qualifyName(const std::string& name) const
|
||||
}
|
||||
|
||||
std::string qualifiedName = m_prefix;
|
||||
if (name.size() > 0)
|
||||
if (!name.empty())
|
||||
{
|
||||
if (!m_prefix.empty())
|
||||
{
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include <sstream>
|
||||
|
||||
#include "data/parser/ParseLocation.h"
|
||||
#include "data/type/DataType.h"
|
||||
#include "utility/utilityString.h"
|
||||
|
||||
std::string ParserClient::addAccessPrefix(const std::string& str, AccessKind access)
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
#include "data/type/ArrayModifiedDataType.h"
|
||||
|
||||
ArrayModifiedDataType::ArrayModifiedDataType(std::shared_ptr<DataType> dataType)
|
||||
: ModifiedDataType(dataType)
|
||||
{
|
||||
}
|
||||
|
||||
ArrayModifiedDataType::~ArrayModifiedDataType()
|
||||
{
|
||||
}
|
||||
|
||||
void ArrayModifiedDataType::applyModifier(std::string& typeName) const
|
||||
{
|
||||
typeName.append(" []");
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
#ifndef ARRAY_MODIFIED_DATA_TYPE_H
|
||||
#define ARRAY_MODIFIED_DATA_TYPE_H
|
||||
|
||||
#include "ModifiedDataType.h"
|
||||
|
||||
class ArrayModifiedDataType: public ModifiedDataType
|
||||
{
|
||||
public:
|
||||
ArrayModifiedDataType(std::shared_ptr<DataType> dataType);
|
||||
virtual ~ArrayModifiedDataType();
|
||||
|
||||
protected:
|
||||
virtual void applyModifier(std::string& typeName) const;
|
||||
};
|
||||
|
||||
#endif // ARRAY_MODIFIED_DATA_TYPE_H
|
||||
@@ -1,33 +0,0 @@
|
||||
#include "data/type/DataType.h"
|
||||
|
||||
DataType::DataType()
|
||||
: m_qualifiers(QUALIFIER_NONE)
|
||||
{
|
||||
}
|
||||
|
||||
DataType::~DataType()
|
||||
{
|
||||
}
|
||||
|
||||
void DataType::addQualifier(QualifierType qualifier)
|
||||
{
|
||||
m_qualifiers = m_qualifiers | qualifier;
|
||||
}
|
||||
|
||||
void DataType::removeQualifier(QualifierType qualifier)
|
||||
{
|
||||
m_qualifiers = m_qualifiers & ~qualifier;
|
||||
}
|
||||
|
||||
bool DataType::hasQualifier(QualifierType qualifier) const
|
||||
{
|
||||
return (m_qualifiers & qualifier) > 0;
|
||||
}
|
||||
|
||||
void DataType::applyQualifieres(std::string& typeName) const
|
||||
{
|
||||
if (hasQualifier(QUALIFIER_CONST))
|
||||
{
|
||||
typeName += " const";
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
#ifndef DATA_TYPE_H
|
||||
#define DATA_TYPE_H
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "data/name/NameHierarchy.h"
|
||||
|
||||
class DataType
|
||||
{
|
||||
public:
|
||||
enum QualifierType
|
||||
{
|
||||
QUALIFIER_NONE = 0,
|
||||
QUALIFIER_CONST = 1
|
||||
};
|
||||
|
||||
DataType();
|
||||
virtual ~DataType();
|
||||
|
||||
virtual std::string getFullTypeName() const = 0;
|
||||
virtual std::string getRawTypeName() const = 0;
|
||||
virtual const NameHierarchy& getTypeNameHierarchy() const = 0;
|
||||
|
||||
void addQualifier(QualifierType qualifier);
|
||||
void removeQualifier(QualifierType qualifier);
|
||||
bool hasQualifier(QualifierType qualifier) const;
|
||||
|
||||
protected:
|
||||
void applyQualifieres(std::string& typeName) const;
|
||||
|
||||
private:
|
||||
char m_qualifiers;
|
||||
};
|
||||
|
||||
#endif // DATA_TYPE_H
|
||||
@@ -1,28 +0,0 @@
|
||||
#include "data/type/ModifiedDataType.h"
|
||||
|
||||
ModifiedDataType::ModifiedDataType(std::shared_ptr<DataType> dataType)
|
||||
: m_dataType(dataType)
|
||||
{
|
||||
}
|
||||
|
||||
ModifiedDataType::~ModifiedDataType()
|
||||
{
|
||||
}
|
||||
|
||||
std::string ModifiedDataType::getFullTypeName() const
|
||||
{
|
||||
std::string fullTypeName = m_dataType->getFullTypeName();
|
||||
applyModifier(fullTypeName);
|
||||
applyQualifieres(fullTypeName);
|
||||
return fullTypeName;
|
||||
}
|
||||
|
||||
std::string ModifiedDataType::getRawTypeName() const
|
||||
{
|
||||
return m_dataType->getRawTypeName();
|
||||
}
|
||||
|
||||
const NameHierarchy& ModifiedDataType::getTypeNameHierarchy() const
|
||||
{
|
||||
return m_dataType->getTypeNameHierarchy();
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
#ifndef MODIFIED_DATA_TYPE_H
|
||||
#define MODIFIED_DATA_TYPE_H
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "DataType.h"
|
||||
|
||||
class ModifiedDataType: public DataType
|
||||
{
|
||||
public:
|
||||
ModifiedDataType(std::shared_ptr<DataType> dataType);
|
||||
virtual ~ModifiedDataType();
|
||||
|
||||
virtual std::string getFullTypeName() const;
|
||||
virtual std::string getRawTypeName() const;
|
||||
virtual const NameHierarchy& getTypeNameHierarchy() const;
|
||||
|
||||
protected:
|
||||
virtual void applyModifier(std::string& typeName) const = 0;
|
||||
|
||||
private:
|
||||
const std::shared_ptr<DataType> m_dataType;
|
||||
};
|
||||
|
||||
#endif // MODIFIED_DATA_TYPE_H
|
||||
@@ -1,29 +0,0 @@
|
||||
#include "data/type/NamedDataType.h"
|
||||
|
||||
#include "utility/utilityString.h"
|
||||
|
||||
NamedDataType::NamedDataType(const NameHierarchy& nameHierarchy)
|
||||
: m_nameHierarchy(nameHierarchy)
|
||||
{
|
||||
}
|
||||
|
||||
NamedDataType::~NamedDataType()
|
||||
{
|
||||
}
|
||||
|
||||
std::string NamedDataType::getFullTypeName() const
|
||||
{
|
||||
std::string fullTypeName = getRawTypeName();
|
||||
applyQualifieres(fullTypeName);
|
||||
return fullTypeName;
|
||||
}
|
||||
|
||||
std::string NamedDataType::getRawTypeName() const
|
||||
{
|
||||
return m_nameHierarchy.getQualifiedNameWithSignature();
|
||||
}
|
||||
|
||||
const NameHierarchy& NamedDataType::getTypeNameHierarchy() const
|
||||
{
|
||||
return m_nameHierarchy;
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
#ifndef NAMED_DATA_TYPE_H
|
||||
#define NAMED_DATA_TYPE_H
|
||||
|
||||
#include "data/type/DataType.h"
|
||||
|
||||
class NamedDataType: public DataType
|
||||
{
|
||||
public:
|
||||
NamedDataType(const NameHierarchy& nameHierarchy);
|
||||
virtual ~NamedDataType();
|
||||
|
||||
virtual std::string getFullTypeName() const;
|
||||
virtual std::string getRawTypeName() const;
|
||||
virtual const NameHierarchy& getTypeNameHierarchy() const;
|
||||
|
||||
private:
|
||||
const NameHierarchy m_nameHierarchy;
|
||||
};
|
||||
|
||||
#endif // NAMED_DATA_TYPE_H
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
#include "data/type/PointerModifiedDataType.h"
|
||||
|
||||
PointerModifiedDataType::PointerModifiedDataType(std::shared_ptr<DataType> dataType)
|
||||
: ModifiedDataType(dataType)
|
||||
{
|
||||
}
|
||||
|
||||
PointerModifiedDataType::~PointerModifiedDataType()
|
||||
{
|
||||
}
|
||||
|
||||
void PointerModifiedDataType::applyModifier(std::string& typeName) const
|
||||
{
|
||||
typeName.append(" *");
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
#ifndef POINTER_MODIFIED_DATA_TYPE_H
|
||||
#define POINTER_MODIFIED_DATA_TYPE_H
|
||||
|
||||
#include "ModifiedDataType.h"
|
||||
|
||||
class PointerModifiedDataType: public ModifiedDataType
|
||||
{
|
||||
public:
|
||||
PointerModifiedDataType(std::shared_ptr<DataType> dataType);
|
||||
virtual ~PointerModifiedDataType();
|
||||
|
||||
protected:
|
||||
virtual void applyModifier(std::string& typeName) const;
|
||||
};
|
||||
|
||||
#endif // POINTER_MODIFIED_DATA_TYPE_H
|
||||
@@ -1,15 +0,0 @@
|
||||
#include "data/type/ReferenceModifiedDataType.h"
|
||||
|
||||
ReferenceModifiedDataType::ReferenceModifiedDataType(std::shared_ptr<DataType> dataType)
|
||||
: ModifiedDataType(dataType)
|
||||
{
|
||||
}
|
||||
|
||||
ReferenceModifiedDataType::~ReferenceModifiedDataType()
|
||||
{
|
||||
}
|
||||
|
||||
void ReferenceModifiedDataType::applyModifier(std::string& typeName) const
|
||||
{
|
||||
typeName.append(" &");
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
#ifndef REFERENCE_MODIFIED_DATA_TYPE_H
|
||||
#define REFERENCE_MODIFIED_DATA_TYPE_H
|
||||
|
||||
#include "ModifiedDataType.h"
|
||||
|
||||
class ReferenceModifiedDataType: public ModifiedDataType
|
||||
{
|
||||
public:
|
||||
ReferenceModifiedDataType(std::shared_ptr<DataType> dataType);
|
||||
virtual ~ReferenceModifiedDataType();
|
||||
|
||||
protected:
|
||||
virtual void applyModifier(std::string& typeName) const;
|
||||
};
|
||||
|
||||
#endif // REFERENCE_MODIFIED_DATA_TYPE_H
|
||||
Reference in New Issue
Block a user