1*67e74705SXin Li //===- TableGenBackends.h - Declarations for Clang TableGen Backends ------===// 2*67e74705SXin Li // 3*67e74705SXin Li // The LLVM Compiler Infrastructure 4*67e74705SXin Li // 5*67e74705SXin Li // This file is distributed under the University of Illinois Open Source 6*67e74705SXin Li // License. See LICENSE.TXT for details. 7*67e74705SXin Li // 8*67e74705SXin Li //===----------------------------------------------------------------------===// 9*67e74705SXin Li // 10*67e74705SXin Li // This file contains the declarations for all of the Clang TableGen 11*67e74705SXin Li // backends. A "TableGen backend" is just a function. See 12*67e74705SXin Li // "$LLVM_ROOT/utils/TableGen/TableGenBackends.h" for more info. 13*67e74705SXin Li // 14*67e74705SXin Li //===----------------------------------------------------------------------===// 15*67e74705SXin Li 16*67e74705SXin Li #ifndef LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H 17*67e74705SXin Li #define LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H 18*67e74705SXin Li 19*67e74705SXin Li #include <string> 20*67e74705SXin Li 21*67e74705SXin Li namespace llvm { 22*67e74705SXin Li class raw_ostream; 23*67e74705SXin Li class RecordKeeper; 24*67e74705SXin Li } 25*67e74705SXin Li 26*67e74705SXin Li using llvm::raw_ostream; 27*67e74705SXin Li using llvm::RecordKeeper; 28*67e74705SXin Li 29*67e74705SXin Li namespace clang { 30*67e74705SXin Li 31*67e74705SXin Li void EmitClangDeclContext(RecordKeeper &RK, raw_ostream &OS); 32*67e74705SXin Li void EmitClangASTNodes(RecordKeeper &RK, raw_ostream &OS, 33*67e74705SXin Li const std::string &N, const std::string &S); 34*67e74705SXin Li 35*67e74705SXin Li void EmitClangAttrParserStringSwitches(RecordKeeper &Records, raw_ostream &OS); 36*67e74705SXin Li void EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS); 37*67e74705SXin Li void EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS); 38*67e74705SXin Li void EmitClangAttrList(RecordKeeper &Records, raw_ostream &OS); 39*67e74705SXin Li void EmitClangAttrPCHRead(RecordKeeper &Records, raw_ostream &OS); 40*67e74705SXin Li void EmitClangAttrPCHWrite(RecordKeeper &Records, raw_ostream &OS); 41*67e74705SXin Li void EmitClangAttrHasAttrImpl(RecordKeeper &Records, raw_ostream &OS); 42*67e74705SXin Li void EmitClangAttrSpellingListIndex(RecordKeeper &Records, raw_ostream &OS); 43*67e74705SXin Li void EmitClangAttrASTVisitor(RecordKeeper &Records, raw_ostream &OS); 44*67e74705SXin Li void EmitClangAttrTemplateInstantiate(RecordKeeper &Records, raw_ostream &OS); 45*67e74705SXin Li void EmitClangAttrParsedAttrList(RecordKeeper &Records, raw_ostream &OS); 46*67e74705SXin Li void EmitClangAttrParsedAttrImpl(RecordKeeper &Records, raw_ostream &OS); 47*67e74705SXin Li void EmitClangAttrParsedAttrKinds(RecordKeeper &Records, raw_ostream &OS); 48*67e74705SXin Li void EmitClangAttrDump(RecordKeeper &Records, raw_ostream &OS); 49*67e74705SXin Li 50*67e74705SXin Li void EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS, 51*67e74705SXin Li const std::string &Component); 52*67e74705SXin Li void EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS); 53*67e74705SXin Li void EmitClangDiagsIndexName(RecordKeeper &Records, raw_ostream &OS); 54*67e74705SXin Li 55*67e74705SXin Li void EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS); 56*67e74705SXin Li 57*67e74705SXin Li void EmitClangCommentHTMLTags(RecordKeeper &Records, raw_ostream &OS); 58*67e74705SXin Li void EmitClangCommentHTMLTagsProperties(RecordKeeper &Records, raw_ostream &OS); 59*67e74705SXin Li void EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records, raw_ostream &OS); 60*67e74705SXin Li 61*67e74705SXin Li void EmitClangCommentCommandInfo(RecordKeeper &Records, raw_ostream &OS); 62*67e74705SXin Li void EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS); 63*67e74705SXin Li 64*67e74705SXin Li void EmitNeon(RecordKeeper &Records, raw_ostream &OS); 65*67e74705SXin Li void EmitNeonSema(RecordKeeper &Records, raw_ostream &OS); 66*67e74705SXin Li void EmitNeonTest(RecordKeeper &Records, raw_ostream &OS); 67*67e74705SXin Li void EmitNeon2(RecordKeeper &Records, raw_ostream &OS); 68*67e74705SXin Li void EmitNeonSema2(RecordKeeper &Records, raw_ostream &OS); 69*67e74705SXin Li void EmitNeonTest2(RecordKeeper &Records, raw_ostream &OS); 70*67e74705SXin Li 71*67e74705SXin Li void EmitClangAttrDocs(RecordKeeper &Records, raw_ostream &OS); 72*67e74705SXin Li 73*67e74705SXin Li } // end namespace clang 74*67e74705SXin Li 75*67e74705SXin Li #endif 76