add basis for code rendering

This commit is contained in:
Jan
2021-02-20 02:33:40 +01:00
parent 48afb4d514
commit d4a98b7c52
17 changed files with 571 additions and 24 deletions

View File

@ -0,0 +1,24 @@
#include "AssetStructTestsTemplate.h"
#include <sstream>
std::vector<CodeTemplateFile> AssetStructTestsTemplate::GetFilesToRender(RenderingContext* context)
{
std::vector<CodeTemplateFile> files;
auto assetName = context->m_asset->m_definition->m_name;
for (auto& c : assetName)
c = static_cast<char>(tolower(c));
{
std::ostringstream str;
str << assetName << '/' << assetName << "_struct_test.cpp";
files.emplace_back(str.str(), TAG_SOURCE);
}
return files;
}
void AssetStructTestsTemplate::RenderFile(std::ostream& stream, int fileTag)
{
}

View File

@ -0,0 +1,11 @@
#pragma once
#include "Generating/ICodeTemplate.h"
class AssetStructTestsTemplate final : public ICodeTemplate
{
static constexpr int TAG_SOURCE = 1;
public:
std::vector<CodeTemplateFile> GetFilesToRender(RenderingContext* context) override;
void RenderFile(std::ostream& stream, int fileTag) override;
};

View File

@ -0,0 +1,42 @@
#include "ZoneLoadTemplate.h"
#include <sstream>
std::vector<CodeTemplateFile> ZoneLoadTemplate::GetFilesToRender(RenderingContext* context)
{
std::vector<CodeTemplateFile> files;
auto assetName = context->m_asset->m_definition->m_name;
for (auto& c : assetName)
c = static_cast<char>(tolower(c));
{
std::ostringstream str;
str << assetName << '/' << assetName << "_load_db.h";
files.emplace_back(str.str(), TAG_HEADER);
}
{
std::ostringstream str;
str << assetName << '/' << assetName << "_load_db.cpp";
files.emplace_back(str.str(), TAG_SOURCE);
}
return files;
}
void ZoneLoadTemplate::RenderFile(std::ostream& stream, const int fileTag)
{
if (fileTag == TAG_HEADER)
{
stream << "Header";
}
else if (fileTag == TAG_SOURCE)
{
stream << "Source";
}
else
{
stream << "Unknown";
}
}

View File

@ -0,0 +1,12 @@
#pragma once
#include "Generating/ICodeTemplate.h"
class ZoneLoadTemplate final : public ICodeTemplate
{
static constexpr int TAG_HEADER = 1;
static constexpr int TAG_SOURCE = 2;
public:
std::vector<CodeTemplateFile> GetFilesToRender(RenderingContext* context) override;
void RenderFile(std::ostream& stream, int fileTag) override;
};

View File

@ -0,0 +1,30 @@
#include "ZoneWriteTemplate.h"
#include <sstream>
std::vector<CodeTemplateFile> ZoneWriteTemplate::GetFilesToRender(RenderingContext* context)
{
std::vector<CodeTemplateFile> files;
auto assetName = context->m_asset->m_definition->m_name;
for (auto& c : assetName)
c = static_cast<char>(tolower(c));
{
std::ostringstream str;
str << assetName << '/' << assetName << "_write_db.h";
files.emplace_back(str.str(), TAG_HEADER);
}
{
std::ostringstream str;
str << assetName << '/' << assetName << "_write_db.cpp";
files.emplace_back(str.str(), TAG_SOURCE);
}
return files;
}
void ZoneWriteTemplate::RenderFile(std::ostream& stream, const int fileTag)
{
}

View File

@ -0,0 +1,12 @@
#pragma once
#include "Generating/ICodeTemplate.h"
class ZoneWriteTemplate final : public ICodeTemplate
{
static constexpr int TAG_HEADER = 1;
static constexpr int TAG_SOURCE = 2;
public:
std::vector<CodeTemplateFile> GetFilesToRender(RenderingContext* context) override;
void RenderFile(std::ostream& stream, int fileTag) override;
};