Clang Project

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