#include "llvm/TableGen/Record.h" #include "llvm/TableGen/TableGenBackend.h" using namespace llvm; namespace clang { void EmitClangDataCollectors(RecordKeeper &RK, raw_ostream &OS) { const auto &Defs = RK.getClasses(); for (const auto &Entry : Defs) { Record &R = *Entry.second; OS << "DEF_ADD_DATA(" << R.getName() << ", {\n"; auto Code = R.getValue("Code")->getValue(); OS << Code->getAsUnquotedString() << "}\n)"; OS << "\n"; } OS << "#undef DEF_ADD_DATA\n"; } } // end namespace clang |