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

This commit is contained in:
2015-10-18 08:22:10 +00:00
parent 078d1bc407
commit 3bb3b01a76

View File

@@ -221,23 +221,27 @@ void writeModel(PICodeParser & parser, const PIString out, bool meta, bool enums
ventities << e;
}
*/
if (meta) {
if (meta || enums) {
f << "\n\n// Metainformation\n\n__ClassInfo_" << defname << "_Initializer__::__ClassInfo_" << defname << "_Initializer__() {\n";
f << "\tif (_inited_) return;\n\t_inited_ = true;\n\n";
//if (!enums)
if (meta)
f << "\tClassInfo * ci;\n\tTypeInfo * ni;\n\tFunctionInfo * fi;\n";
f << "\tEnumInfo * ei;\n";
f << "\t(*enumsInfo)[\"\"] = new EnumInfo();\n";
//if (!enums) {
if (enums) {
f << "\tEnumInfo * ei;\n";
f << "\t(*enumsInfo)[\"\"] = new EnumInfo();\n";
}
if (meta) {
f << "\n\n// Classes\n";
piForeachC (PICodeParser::Entity * e, parser.entities) {
if (e->name.startsWith("_PI")) continue;
makeClassInfo(f, e);
}
//}
f << "\n// Enums\n";
piForeachC (PICodeParser::Enum & e, parser.enums)
makeEnumInfo(f, &e);
}
if (enums) {
f << "\n// Enums\n";
piForeachC (PICodeParser::Enum & e, parser.enums)
makeEnumInfo(f, &e);
}
f << "}\n";
f << "\n\nbool __ClassInfo_" << defname << "_Initializer__::_inited_ = false;\n";
}
@@ -268,7 +272,7 @@ void writeModel(PICodeParser & parser, const PIString out, bool meta, bool enums
const PIVariant & arg1 = PIVariant(), const PIVariant & arg2 = PIVariant(), const PIVariant & arg3 = PIVariant());";
}
*/
if (meta) {
if (meta || enums) {
f << "\n\n// Metainformation\n\nclass __ClassInfo_" << defname << "_Initializer__ {\n";
f << "public:\n\t__ClassInfo_" << defname << "_Initializer__();\n\tstatic bool _inited_;\n};\n";
f << "\nstatic __ClassInfo_" << defname << "_Initializer__ __classinfo_" << defname.toLowerCase() << "_initializer__;\n";