xref: /aosp_15_r20/external/clang/utils/TableGen/TableGenBackends.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
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