1 //===- TableGenBackends.h - Declarations for Clang TableGen Backends ------===// 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 // This file contains the declarations for all of the Clang TableGen 11 // backends. A "TableGen backend" is just a function. See 12 // "$LLVM_ROOT/utils/TableGen/TableGenBackends.h" for more info. 13 // 14 //===----------------------------------------------------------------------===// 15 16 #ifndef LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H 17 #define LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H 18 19 #include <string> 20 21 namespace llvm { 22 class raw_ostream; 23 class RecordKeeper; 24 } 25 26 namespace clang { 27 28 void EmitClangDeclContext(llvm::RecordKeeper &RK, llvm::raw_ostream &OS); 29 void EmitClangASTNodes(llvm::RecordKeeper &RK, llvm::raw_ostream &OS, 30 const std::string &N, const std::string &S); 31 32 void EmitClangAttrParserStringSwitches(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 33 void EmitClangAttrSubjectMatchRulesParserStringSwitches(llvm::RecordKeeper &Records, 34 llvm::raw_ostream &OS); 35 void EmitClangAttrClass(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 36 void EmitClangAttrImpl(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 37 void EmitClangAttrList(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 38 void EmitClangAttrSubjectMatchRuleList(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 39 void EmitClangAttrPCHRead(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 40 void EmitClangAttrPCHWrite(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 41 void EmitClangAttrHasAttrImpl(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 42 void EmitClangAttrSpellingListIndex(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 43 void EmitClangAttrASTVisitor(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 44 void EmitClangAttrTemplateInstantiate(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 45 void EmitClangAttrParsedAttrList(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 46 void EmitClangAttrParsedAttrImpl(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 47 void EmitClangAttrParsedAttrKinds(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 48 void EmitClangAttrDump(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 49 50 void EmitClangDiagsDefs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS, 51 const std::string &Component); 52 void EmitClangDiagGroups(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 53 void EmitClangDiagsIndexName(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 54 55 void EmitClangSACheckers(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 56 57 void EmitClangCommentHTMLTags(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 58 void EmitClangCommentHTMLTagsProperties(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 59 void EmitClangCommentHTMLNamedCharacterReferences(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 60 61 void EmitClangCommentCommandInfo(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 62 void EmitClangCommentCommandList(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 63 64 void EmitNeon(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 65 void EmitFP16(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 66 void EmitNeonSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 67 void EmitNeonTest(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 68 void EmitNeon2(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 69 void EmitNeonSema2(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 70 void EmitNeonTest2(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 71 72 void EmitClangAttrDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 73 void EmitClangDiagDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 74 void EmitClangOptDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 75 76 void EmitClangDataCollectors(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 77 78 void EmitTestPragmaAttributeSupportedAttributes(llvm::RecordKeeper &Records, 79 llvm::raw_ostream &OS); 80 81 } // end namespace clang 82 83 #endif 84