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 using llvm::raw_ostream; 27 using llvm::RecordKeeper; 28 29 namespace clang { 30 31 void EmitClangDeclContext(RecordKeeper &RK, raw_ostream &OS); 32 void EmitClangASTNodes(RecordKeeper &RK, raw_ostream &OS, 33 const std::string &N, const std::string &S); 34 35 void EmitClangAttrParserStringSwitches(RecordKeeper &Records, raw_ostream &OS); 36 void EmitClangAttrSubjectMatchRulesParserStringSwitches(RecordKeeper &Records, 37 raw_ostream &OS); 38 void EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS); 39 void EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS); 40 void EmitClangAttrList(RecordKeeper &Records, raw_ostream &OS); 41 void EmitClangAttrSubjectMatchRuleList(RecordKeeper &Records, raw_ostream &OS); 42 void EmitClangAttrPCHRead(RecordKeeper &Records, raw_ostream &OS); 43 void EmitClangAttrPCHWrite(RecordKeeper &Records, raw_ostream &OS); 44 void EmitClangAttrHasAttrImpl(RecordKeeper &Records, raw_ostream &OS); 45 void EmitClangAttrSpellingListIndex(RecordKeeper &Records, raw_ostream &OS); 46 void EmitClangAttrASTVisitor(RecordKeeper &Records, raw_ostream &OS); 47 void EmitClangAttrTemplateInstantiate(RecordKeeper &Records, raw_ostream &OS); 48 void EmitClangAttrParsedAttrList(RecordKeeper &Records, raw_ostream &OS); 49 void EmitClangAttrParsedAttrImpl(RecordKeeper &Records, raw_ostream &OS); 50 void EmitClangAttrParsedAttrKinds(RecordKeeper &Records, raw_ostream &OS); 51 void EmitClangAttrDump(RecordKeeper &Records, raw_ostream &OS); 52 53 void EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS, 54 const std::string &Component); 55 void EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS); 56 void EmitClangDiagsIndexName(RecordKeeper &Records, raw_ostream &OS); 57 58 void EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS); 59 60 void EmitClangCommentHTMLTags(RecordKeeper &Records, raw_ostream &OS); 61 void EmitClangCommentHTMLTagsProperties(RecordKeeper &Records, raw_ostream &OS); 62 void EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records, raw_ostream &OS); 63 64 void EmitClangCommentCommandInfo(RecordKeeper &Records, raw_ostream &OS); 65 void EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS); 66 67 void EmitNeon(RecordKeeper &Records, raw_ostream &OS); 68 void EmitNeonSema(RecordKeeper &Records, raw_ostream &OS); 69 void EmitNeonTest(RecordKeeper &Records, raw_ostream &OS); 70 void EmitNeon2(RecordKeeper &Records, raw_ostream &OS); 71 void EmitNeonSema2(RecordKeeper &Records, raw_ostream &OS); 72 void EmitNeonTest2(RecordKeeper &Records, raw_ostream &OS); 73 74 void EmitClangAttrDocs(RecordKeeper &Records, raw_ostream &OS); 75 void EmitClangDiagDocs(RecordKeeper &Records, raw_ostream &OS); 76 void EmitClangOptDocs(RecordKeeper &Records, raw_ostream &OS); 77 78 void EmitClangDataCollectors(RecordKeeper &Records, raw_ostream &OS); 79 80 void EmitTestPragmaAttributeSupportedAttributes(RecordKeeper &Records, 81 raw_ostream &OS); 82 83 } // end namespace clang 84 85 #endif 86