-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCppGenerator.hpp
More file actions
28 lines (24 loc) · 993 Bytes
/
CppGenerator.hpp
File metadata and controls
28 lines (24 loc) · 993 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//
// Created by arthur on 09/12/2024.
//
#ifndef CONCERTO_PKGGENERATOR_CPPGENERATOR_HPP
#define CONCERTO_PKGGENERATOR_CPPGENERATOR_HPP
#include "Concerto/PackageGenerator/FileGenerator/FileGenerator.hpp"
namespace cct
{
class CppGenerator : public FileGenerator
{
public:
using FileGenerator::FileGenerator;
bool Generate(const Package& package, std::span<std::string> args) override;
private:
void GenerateNamespace(const Namespace& ns, const std::string& namespaceChain = "");
void GenerateClass(std::string_view ns, const Class& klass);
void GenerateGenericClass(std::string_view ns, const Class& klass);
void GenerateTemplateClass(std::string_view ns, const Class& klass);
void GenerateClassMethod(std::string_view className, const Class::Method& method, std::string_view ns, std::size_t methodIndex);
void GenerateEnum(const Enum& enum_, std::string_view ns = "");
void GeneratePackage(const Package& pkg);
};
}
#endif //CONCERTO_PKGGENERATOR_CPPGENERATOR_HPP