Home | History | Annotate | Download | only in TableGen
      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 "llvm/TableGen/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:
     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:
     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:
     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