move to PIIOTextStream
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include "generator.h"
|
||||
#include "piresourcesstorage.h"
|
||||
#include "piiostream.h"
|
||||
|
||||
|
||||
PIString initName(const PIString & n) {
|
||||
@@ -25,7 +26,8 @@ bool generate(const PIString & init_name, PIFile & file, const PIVector<ParserSe
|
||||
}
|
||||
}
|
||||
if (fv.isEmpty()) return false;
|
||||
file << "#include \"piresourcesstorage.h\"\n\nstatic const uchar " << dataname << "[] = {\n";
|
||||
PIIOTextStream ts(&file);
|
||||
ts << "#include \"piresourcesstorage.h\"\n\nstatic const uchar " << dataname << "[] = {\n";
|
||||
bool first = true;
|
||||
int rcnt = -1;
|
||||
llong curoff = 0, curfile = 0;
|
||||
@@ -40,45 +42,45 @@ bool generate(const PIString & init_name, PIFile & file, const PIVector<ParserSe
|
||||
curfile += readed.size_s();
|
||||
for (int i = 0; i < readed.size_s(); ++i) {
|
||||
if (!first)
|
||||
file << ',';
|
||||
ts << ',';
|
||||
first = false;
|
||||
if (++rcnt >= 32) {
|
||||
file << '\n';
|
||||
ts << '\n';
|
||||
rcnt = 0;
|
||||
}
|
||||
file << int(readed[i]);
|
||||
ts << int(readed[i]);
|
||||
}
|
||||
}
|
||||
e.size = curfile;
|
||||
curoff += curfile;
|
||||
}
|
||||
file << "\n};\n";
|
||||
ts << "\n};\n";
|
||||
PIByteArray dba;
|
||||
dba << fv;
|
||||
file << "\nstatic const uchar " << descname << "[] = {\n";
|
||||
ts << "\nstatic const uchar " << descname << "[] = {\n";
|
||||
first = true;
|
||||
rcnt = -1;
|
||||
for (int i = 0; i < dba.size_s(); ++i) {
|
||||
if (!first)
|
||||
file << ',';
|
||||
ts << ',';
|
||||
first = false;
|
||||
if (++rcnt >= 32) {
|
||||
file << '\n';
|
||||
ts << '\n';
|
||||
rcnt = 0;
|
||||
}
|
||||
file << int(dba[i]);
|
||||
ts << int(dba[i]);
|
||||
}
|
||||
file << "\n};\n";
|
||||
ts << "\n};\n";
|
||||
|
||||
file << "\nvoid " << funcname << "() {\n";
|
||||
file << "\tPIResourcesStorage::instance()->registerSection(" << dataname << ", " << descname << ", sizeof(" << descname << "));\n";
|
||||
file << "}\n";
|
||||
ts << "\nvoid " << funcname << "() {\n";
|
||||
ts << "\tPIResourcesStorage::instance()->registerSection(" << dataname << ", " << descname << ", sizeof(" << descname << "));\n";
|
||||
ts << "}\n";
|
||||
|
||||
file << "\nclass " << icname << " {\n";
|
||||
file << "public:\n\t" << icname << "() {\n";
|
||||
file << "\t\t" << funcname << "();\n";
|
||||
file << "\t}\n";
|
||||
file << "} _pirc_" << fcname << "_initializer_;\n";
|
||||
ts << "\nclass " << icname << " {\n";
|
||||
ts << "public:\n\t" << icname << "() {\n";
|
||||
ts << "\t\t" << funcname << "();\n";
|
||||
ts << "\t}\n";
|
||||
ts << "} _pirc_" << fcname << "_initializer_;\n";
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "parser.h"
|
||||
#include "generator.h"
|
||||
#include "picli.h"
|
||||
#include "piiostream.h"
|
||||
|
||||
using namespace PICoutManipulators;
|
||||
|
||||
@@ -76,12 +77,16 @@ int main (int argc, char * argv[]) {
|
||||
if (!out_file.isEmpty()) {
|
||||
if (outf.open(out_file, PIIODevice::ReadWrite)) {
|
||||
outf.clear();
|
||||
} else piCout << "Error: can`t open out file";
|
||||
outf << "// Generated by \"PIP Resources Compiler\" " << PIDateTime::current().toString("dd.MM.yyyy hh:mm:ss\n");
|
||||
outf << "// Execute command:\n";
|
||||
} else {
|
||||
piCout << "Error: can`t open out file" << out_file;
|
||||
return 1;
|
||||
}
|
||||
PIIOTextStream ts(&outf);
|
||||
ts << "// Generated by \"PIP Resources Compiler\" " << PIDateTime::current().toString("dd.MM.yyyy hh:mm:ss\n");
|
||||
ts << "// Execute command:\n";
|
||||
piForeachC (PIString & _a, cli.rawArguments())
|
||||
outf << "// \"" << _a << "\"\n";
|
||||
outf << "\n";
|
||||
ts << "// \"" << _a << "\"\n";
|
||||
ts << "\n";
|
||||
if (!generate(init_name, outf, files)) {
|
||||
piCout << "Error: generate fail";
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user