Implemented basic class structure

This commit is contained in:
Leonetienne 2021-06-02 12:01:20 +02:00
parent 8aa6b3b963
commit c5b92f2e6e
20 changed files with 263 additions and 0 deletions

Binary file not shown.

10
Hazelnupp/DataType.h Normal file
View File

@ -0,0 +1,10 @@
#pragma once
enum class DATA_TYPE
{
VOID,
INT,
FLOAT,
STRING,
LIST
};

9
Hazelnupp/FloatValue.cpp Normal file
View File

@ -0,0 +1,9 @@
#include "FloatValue.h"
FloatValue::FloatValue(const long double& value)
:
Value(DATA_TYPE::FLOAT),
value { value }
{
return;
}

11
Hazelnupp/FloatValue.h Normal file
View File

@ -0,0 +1,11 @@
#pragma once
#include "Value.h"
class FloatValue : public Value
{
public:
FloatValue(const long double& value);
private:
long double value;
};

17
Hazelnupp/Hazelnupp.cpp Normal file
View File

@ -0,0 +1,17 @@
#include "Hazelnupp.h"
Hazelnupp::Hazelnupp()
{
return;
}
Hazelnupp::Hazelnupp(int argc, const char* const* argv)
{
Parse(argc, argv);
return;
}
void Hazelnupp::Parse(int argc, const char* const* argv)
{
return;
}

15
Hazelnupp/Hazelnupp.h Normal file
View File

@ -0,0 +1,15 @@
#pragma once
#include "Parameter.h"
#include <unordered_map>
class Hazelnupp
{
public:
Hazelnupp();
Hazelnupp(int argc, const char* const* argv);
//! Will parse command line arguments
void Parse(int argc, const char* const* argv);
std::unordered_map<std::string, Parameter*> parameters;
};

View File

@ -139,7 +139,26 @@
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="FloatValue.cpp" />
<ClCompile Include="Hazelnupp.cpp" />
<ClCompile Include="IntValue.cpp" />
<ClCompile Include="ListValue.cpp" />
<ClCompile Include="main.cpp" /> <ClCompile Include="main.cpp" />
<ClCompile Include="Parameter.cpp" />
<ClCompile Include="StringValue.cpp" />
<ClCompile Include="Value.cpp" />
<ClCompile Include="VoidValue.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="FloatValue.h" />
<ClInclude Include="Hazelnupp.h" />
<ClInclude Include="IntValue.h" />
<ClInclude Include="ListValue.h" />
<ClInclude Include="Parameter.h" />
<ClInclude Include="DataType.h" />
<ClInclude Include="StringValue.h" />
<ClInclude Include="Value.h" />
<ClInclude Include="VoidValue.h" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

View File

@ -18,5 +18,58 @@
<ClCompile Include="main.cpp"> <ClCompile Include="main.cpp">
<Filter>Quelldateien</Filter> <Filter>Quelldateien</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Hazelnupp.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
<ClCompile Include="Parameter.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
<ClCompile Include="Value.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
<ClCompile Include="IntValue.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
<ClCompile Include="FloatValue.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
<ClCompile Include="VoidValue.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
<ClCompile Include="StringValue.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
<ClCompile Include="ListValue.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Hazelnupp.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="Parameter.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="Value.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="DataType.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="VoidValue.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="StringValue.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="ListValue.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="IntValue.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="FloatValue.h">
<Filter>Headerdateien</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>

9
Hazelnupp/IntValue.cpp Normal file
View File

@ -0,0 +1,9 @@
#include "IntValue.h"
IntValue::IntValue(const long long int& value)
:
Value(DATA_TYPE::INT),
value { value }
{
return;
}

11
Hazelnupp/IntValue.h Normal file
View File

@ -0,0 +1,11 @@
#pragma once
#include "Value.h"
class IntValue : public Value
{
public:
IntValue(const long long int& value);
private:
long long int value;
};

17
Hazelnupp/ListValue.cpp Normal file
View File

@ -0,0 +1,17 @@
#include "ListValue.h"
ListValue::~ListValue()
{
for (Value* val : value)
delete val;
value.clear();
return;
}
void ListValue::AddValue(const Value* value)
{
this->value.emplace_back(new Value(*value));
return;
}

15
Hazelnupp/ListValue.h Normal file
View File

@ -0,0 +1,15 @@
#pragma once
#include "Value.h"
#include <vector>
class ListValue : public Value
{
public:
~ListValue();
//! Will add this value to the list
void AddValue(const Value* value);
private:
std::vector<Value*> value;
};

9
Hazelnupp/Parameter.cpp Normal file
View File

@ -0,0 +1,9 @@
#include "Parameter.h"
Parameter::Parameter(const std::string& key, const Value& value)
:
key { key },
value { value }
{
return;
}

13
Hazelnupp/Parameter.h Normal file
View File

@ -0,0 +1,13 @@
#pragma once
#include "Value.h"
#include <string>
class Parameter
{
public:
explicit Parameter(const std::string& key, const Value& value);
private:
std::string key;
Value value;
};

View File

@ -0,0 +1,9 @@
#include "StringValue.h"
StringValue::StringValue(const std::string& value)
:
Value(DATA_TYPE::STRING),
value { value }
{
return;
}

12
Hazelnupp/StringValue.h Normal file
View File

@ -0,0 +1,12 @@
#pragma once
#include "Value.h"
#include <string>
class StringValue : public Value
{
public:
StringValue(const std::string& value);
private:
std::string value;
};

8
Hazelnupp/Value.cpp Normal file
View File

@ -0,0 +1,8 @@
#include "Value.h"
Value::Value(DATA_TYPE type)
:
type { type }
{
return;
}

10
Hazelnupp/Value.h Normal file
View File

@ -0,0 +1,10 @@
#pragma once
#include "DataType.h"
class Value
{
protected:
Value(DATA_TYPE type);
DATA_TYPE type;
};

8
Hazelnupp/VoidValue.cpp Normal file
View File

@ -0,0 +1,8 @@
#include "VoidValue.h"
VoidValue::VoidValue()
:
Value(DATA_TYPE::VOID)
{
return;
}

8
Hazelnupp/VoidValue.h Normal file
View File

@ -0,0 +1,8 @@
#pragma once
#include "Value.h"
class VoidValue : public Value
{
public:
VoidValue();
};