void SourceGenerator::run()
{
    beginDefineGuards();
    writeInclude(getUnitFileBasename() + ".h");
    writeInclude("../../utils/ccdictionarybuilder.h");
    out() << "\n";

    visitCursorChildren(clang_getTranslationUnitCursor(unit()), [this]() -> CXChildVisitResult {
        if (isGameRecord())
            defineRecord();

        if (isLocalNamespace())
            return CXChildVisit_Recurse;

        return CXChildVisit_Continue;
    });

    endDefineGuards();
}
Beispiel #2
0
void CodeGenerator::writeIncludes()
{
	CodeGenerator::IncludeSet::const_iterator it = systemIncludes().begin();
	CodeGenerator::IncludeSet::const_iterator itEnd = systemIncludes().end();
	for (; it != itEnd; ++it)
		writeSystemInclude(*it);

	it = includes().begin();
	itEnd = includes().end();
	for (; it != itEnd; ++it)
		writeInclude(*it, true);

	it = _srcIncludes.begin();
	itEnd = _srcIncludes.end();
	for (; it != itEnd; ++it)
		writeInclude(*it, false);
	
	writeFwdDecls(_fwdDecls);
}
void WriteCPlusPlusClass::write(QString path)
{
    for (int i = 0; i < this->mJsonClasses.size(); i++) {
        JsonClass newClass = this->mJsonClasses.at(i);
        QFile file(path + newClass.name + ".h");

        file.open(QIODevice::WriteOnly);

        writeInclude(file, newClass);
        file.close();
        file.setFileName(path + newClass.name + ".cpp");
        file.open(QIODevice::WriteOnly);
        writeBody(file, newClass);
        file.close();
    }
}