git-svn-id: svn://db.shs.com.ru/pip@644 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2018-10-09 12:07:11 +00:00
parent be56d65582
commit 98062c2f9e
9 changed files with 81 additions and 24 deletions

View File

@@ -2,13 +2,19 @@
#include "piresourcesstorage.h"
bool generate(PIFile & file, const PIVector<ParserSection> & files) {
PIString initName(const PIString & n) {
return PIFile::fileInfo(n).baseName().replaceAll(".", "_").replaceAll("/", "_")
.replaceAll(":", "_").replaceAll("-", "_");
}
bool generate(const PIString & init_name, PIFile & file, const PIVector<ParserSection> & files) {
if (!file.isOpened()) return false;
PIString fcname = file.fileInfo().baseName().replaceAll(".", "_").replaceAll("/", "_")
.replaceAll(":", "_").replaceAll("-", "_");//.toUpperCase() + "_H";
PIString fcname = initName(file.path());
PIString icname = "_PIRC_" + fcname + "_Initializer_";
PIString dataname = "_pirc_" + fcname + "_data_";
PIString descname = "_pirc_" + fcname + "_desc_";
PIString funcname = "_pirc_" + init_name + "_init_";
PIVector<PIResourcesStorage::__RCEntry> fv;
piForeachC (ParserSection & s, files) {
piForeachC (ParserEntry & p, s.files) {
@@ -63,10 +69,16 @@ bool generate(PIFile & file, const PIVector<ParserSection> & files) {
file << int(dba[i]);
}
file << "\n};\n";
file << "\nvoid " << funcname << "() {\n";
file << "\tPIResourcesStorage::instance()->registerSection(" << dataname << ", " << descname << ", sizeof(" << descname << "));\n";
file << "}\n";
file << "\nclass " << icname << " {\n";
file << "public:\n\t" << icname << "() {\n";
file << "\t\tPIResourcesStorage::instance()->registerSection(" << dataname << ", " << descname << ", sizeof(" << descname << "));\n";
file << "\t\t" << funcname << "();\n";
file << "\t}\n";
file << "} _pirc_" << fcname << "_initializer_;\n";
return true;
}