1 //===- ClangDiagnosticsEmitter.h - Generate Clang diagnostics tables -*- C++ -*- 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // These tablegen backends emit Clang diagnostics tables. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef CLANGDIAGS_EMITTER_H 15 #define CLANGDIAGS_EMITTER_H 16 17 #include "TableGenBackend.h" 18 19 namespace llvm { 20 21 /// ClangDiagsDefsEmitter - The top-level class emits .def files containing 22 /// declarations of Clang diagnostics. 23 /// 24 class ClangDiagsDefsEmitter : public TableGenBackend { 25 RecordKeeper &Records; 26 const std::string& Component; 27 public: ClangDiagsDefsEmitter(RecordKeeper & R,const std::string & component)28 explicit ClangDiagsDefsEmitter(RecordKeeper &R, const std::string& component) 29 : Records(R), Component(component) {} 30 31 // run - Output the .def file contents 32 void run(raw_ostream &OS); 33 }; 34 35 class ClangDiagGroupsEmitter : public TableGenBackend { 36 RecordKeeper &Records; 37 public: ClangDiagGroupsEmitter(RecordKeeper & R)38 explicit ClangDiagGroupsEmitter(RecordKeeper &R) : Records(R) {} 39 40 void run(raw_ostream &OS); 41 }; 42 43 class ClangDiagsIndexNameEmitter : public TableGenBackend { 44 RecordKeeper &Records; 45 public: ClangDiagsIndexNameEmitter(RecordKeeper & R)46 explicit ClangDiagsIndexNameEmitter(RecordKeeper &R) : Records(R) {} 47 48 void run(raw_ostream &OS); 49 }; 50 51 52 } // End llvm namespace 53 54 #endif 55