GEGELATI
Loading...
Searching...
No Matches
tpgGenerationEngine.h
1
38#ifdef CODE_GENERATION
39
40#ifndef TPG_GENERATION_ENGINE_H
41#define TPG_GENERATION_ENGINE_H
42#include <ios>
43#include <iostream>
44#include <string>
45
46#include "codeGen/programGenerationEngine.h"
47#include "tpg/tpgAbstractEngine.h"
48#include "tpg/tpgEdge.h"
49#include "tpg/tpgGraph.h"
50#include "tpg/tpgTeam.h"
51
52namespace CodeGen {
70 {
71 protected:
76 inline static const std::string filenameProg = "program";
77
79 std::ofstream fileMain;
81 std::ofstream fileMainH;
82
90
97 virtual void initTpgFile() = 0;
98
107 virtual void initHeaderFile() = 0;
108
109 public:
122 TPGGenerationEngine(const std::string& filename,
123 const TPG::TPGGraph& tpg,
124 const std::string& path = "./");
125
131 virtual ~TPGGenerationEngine();
132
140 virtual void generateTPGGraph() = 0;
141
142 protected:
156 virtual void generateEdge(const TPG::TPGEdge& edge) = 0;
157
168 virtual void generateTeam(const TPG::TPGTeam& team) = 0;
169
180 virtual void generateAction(const TPG::TPGAction& action) = 0;
181 };
182} // namespace CodeGen
183
184#endif // TPGGENERATIONENGINE_H
185
186#endif // CODE_GENERATION
Class in charge of generating inference C code for all the Program of a TPG.
Definition programGenerationEngine.h:64
Class in charge of generating the C code of a TPGGraph.
Definition tpgGenerationEngine.h:70
virtual void initHeaderFile()=0
function printing generic code declaration in the main file header.
virtual void generateAction(const TPG::TPGAction &action)=0
Method for generating a action of the graph.
virtual void initTpgFile()=0
function printing generic code in the main file.
virtual void generateTeam(const TPG::TPGTeam &team)=0
Method for generating the code for a team of the graph.
std::ofstream fileMain
File holding the functions in charge of iterating through the TPG.
Definition tpgGenerationEngine.h:79
virtual void generateEdge(const TPG::TPGEdge &edge)=0
Method for generating the code for an edge of the graph.
std::ofstream fileMainH
header file for the function that iterates through the TPG.
Definition tpgGenerationEngine.h:81
virtual void generateTPGGraph()=0
function that creates the C files required to execute the TPG without gegelati.
virtual ~TPGGenerationEngine()
destructor of the class.
Definition tpgGenerationEngine.cpp:87
static const std::string filenameProg
Definition tpgGenerationEngine.h:76
TPGGenerationEngine(const std::string &filename, const TPG::TPGGraph &tpg, const std::string &path="./")
Main constructor of the class.
Definition tpgGenerationEngine.cpp:45
CodeGen::ProgramGenerationEngine progGenerationEngine
ProgramGenerationEngine for generating Programs of edges.
Definition tpgGenerationEngine.h:89
Abstract Class in charge of managing maps to give a unique ID for vertex and a program of a TPGGraph.
Definition tpgAbstractEngine.h:49
const TPG::TPGGraph & tpg
Reference to the TPGGraph whose content will be used to fill the maps.
Definition tpgAbstractEngine.h:56
Class representing an Action of a TPGGraph.
Definition tpgAction.h:55
Class representing edges of the Tangled Program Graphs.
Definition tpgEdge.h:54
Class for storing a Tangled-Program-Graph.
Definition tpgGraph.h:58
Definition tpgTeam.h:49
Definition programGenerationEngine.h:49