YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
generator.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2024-2024 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef GENERATOR_H
7#define GENERATOR_H
8
9#include <string>
10#include <vector>
11#include <deque>
12#include <chrono>
13#include <ctime>
14#include <memory>
15
16#include "parameter.h"
17#include "paramGroupTree.h"
18#include "utils.h"
19
20const bool enable_debug_prints = false;
21#define ADD_DEBUG_COMMENT(out) if (enable_debug_prints) { out << "/* " << __FUNCTION__ << ":" << __LINE__ << " */\n"; }
22#define S_TAB1 " "
23#define S_TAB2 " "
24#define S_TAB3 " "
25
26#define MACRO_PARSER_VERSION_MAJOR 2
27#define MACRO_PARSER_VERSION_MINOR 0
28
30{
31public:
33
34 std::deque<Parameter> m_params;
36 bool m_parser_is_strict = false;
37
38 std::string m_classname;
39 std::string m_modulename;
40 std::string m_component;
48 std::string m_extra_comments;
49
50 void printParams();
51 std::string generateCpp();
52 std::string generateConstructor();
56 std::string generateFunction_parseParams();
57 std::string generateFunction_getDeviceType() { return ""; };
59 std::string generateIniParams();
60 std::string generateMdParams();
61 std::string generateYarprobotinterface();
62 std::string generateYarpdevDoxyString();
65 std::string generateYarpdevFile();
66 std::string generateHeader();
68 std::string generateReadmeMd();
69
70 bool parseIniParams(std::string inputfilename);
71 bool parseMdParams(std::string inputfilename);
72 bool parseExtraComments(std::string inputfilename);
73
74 void generate_param(std::string origin, std::ostringstream& s, const Parameter& param);
75 void generate_section (std::ostringstream& s, std::deque<std::string> vec, size_t count, size_t siz);
76
78};
79
80const std::string license_banner = "\
81/*\n\
82 * SPDX-FileCopyrightText: 2023-2023 Istituto Italiano di Tecnologia (IIT)\n\
83 * SPDX-License-Identifier: LGPL-2.1-or-later\n\
84 */\n\
85\n\
86";
87
88const std::string version_banner = "\
89\n\
90// Generated by yarpDeviceParamParserGenerator ("+ std::to_string(MACRO_PARSER_VERSION_MAJOR)+
91std::string(".")+ std::to_string(MACRO_PARSER_VERSION_MINOR) + std::string(")\n\
92// This is an automatically generated file. Please do not edit it.\n\
93// It will be re-generated if the cmake flag ALLOW_DEVICE_PARAM_PARSER_GERNERATION is ON.\n\
94\n\
95");
96
97#endif
std::string m_component
Definition generator.h:40
std::string m_modulename
Definition generator.h:39
std::string generateCpp()
Definition main.cpp:306
std::string generateFunction_getDocumentationOfDeviceParams()
std::string m_classname
Definition generator.h:38
std::string generateFunction_getParamValue()
std::string generateYarpdevStringAllParams()
std::string m_output_yarprobotinterface_filename
Definition generator.h:46
std::string generateReadmeMd()
void generate_param(std::string origin, std::ostringstream &s, const Parameter &param)
bool parseIniParams(std::string inputfilename)
Definition parse_ini.cpp:19
ParamsFilesGenerator()=default
bool parseExtraComments(std::string inputfilename)
std::string m_output_cpp_filename
Definition generator.h:42
std::string generateFunction_getListOfParams()
std::string generateYarpdevFile()
std::string generateIniParams()
std::string generateDoxygenForHeaderClass()
std::string m_extra_comments
Definition generator.h:48
std::string m_output_md_filename
Definition generator.h:44
std::string generateMdParams()
std::string m_output_readme_md_filename
Definition generator.h:47
std::string generateFunction_getConfiguration()
std::string m_output_ini_filename
Definition generator.h:43
bool parseMdParams(std::string inputfilename)
Definition parse_md.cpp:23
std::string generateFunction_getDeviceType()
Definition generator.h:57
std::string generateYarpdevDoxyString()
std::string m_output_header_filename
Definition generator.h:41
std::deque< Parameter > m_params
Definition generator.h:34
bool nested_sections_found()
Definition main.cpp:38
void generate_section(std::ostringstream &s, std::deque< std::string > vec, size_t count, size_t siz)
std::string m_output_yarpdev_filename
Definition generator.h:45
SectionHandler m_sectionGroup
Definition generator.h:35
std::string generateYarpdevStringMandatoryParamsOnly()
#define MACRO_PARSER_VERSION_MINOR
Definition generator.h:27
const std::string license_banner
Definition generator.h:80
#define MACRO_PARSER_VERSION_MAJOR
Definition generator.h:26
const std::string version_banner
Definition generator.h:88
const bool enable_debug_prints
Definition generator.h:20