1239313Sdim//===- TableGenBackends.h - Declarations for Clang TableGen Backends ------===//
2239313Sdim//
3239313Sdim//                     The LLVM Compiler Infrastructure
4239313Sdim//
5239313Sdim// This file is distributed under the University of Illinois Open Source
6239313Sdim// License. See LICENSE.TXT for details.
7239313Sdim//
8239313Sdim//===----------------------------------------------------------------------===//
9239313Sdim//
10239313Sdim// This file contains the declarations for all of the Clang TableGen
11239313Sdim// backends. A "TableGen backend" is just a function. See
12239313Sdim// "$LLVM_ROOT/utils/TableGen/TableGenBackends.h" for more info.
13239313Sdim//
14239313Sdim//===----------------------------------------------------------------------===//
15239313Sdim
16239313Sdim#include <string>
17239313Sdim
18239313Sdimnamespace llvm {
19239313Sdim  class raw_ostream;
20239313Sdim  class RecordKeeper;
21239313Sdim}
22239313Sdim
23239313Sdimusing llvm::raw_ostream;
24239313Sdimusing llvm::RecordKeeper;
25239313Sdim
26239313Sdimnamespace clang {
27239313Sdim
28239313Sdimvoid EmitClangDeclContext(RecordKeeper &RK, raw_ostream &OS);
29239313Sdimvoid EmitClangASTNodes(RecordKeeper &RK, raw_ostream &OS,
30239313Sdim                       const std::string &N, const std::string &S);
31239313Sdim
32239313Sdimvoid EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS);
33251662Sdimvoid EmitClangAttrExprArgsList(RecordKeeper &Records, raw_ostream &OS);
34239313Sdimvoid EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS);
35239313Sdimvoid EmitClangAttrList(RecordKeeper &Records, raw_ostream &OS);
36239313Sdimvoid EmitClangAttrPCHRead(RecordKeeper &Records, raw_ostream &OS);
37239313Sdimvoid EmitClangAttrPCHWrite(RecordKeeper &Records, raw_ostream &OS);
38239313Sdimvoid EmitClangAttrSpellingList(RecordKeeper &Records, raw_ostream &OS);
39249423Sdimvoid EmitClangAttrSpellingListIndex(RecordKeeper &Records, raw_ostream &OS);
40239313Sdimvoid EmitClangAttrLateParsedList(RecordKeeper &Records, raw_ostream &OS);
41239313Sdimvoid EmitClangAttrTemplateInstantiate(RecordKeeper &Records, raw_ostream &OS);
42239313Sdimvoid EmitClangAttrParsedAttrList(RecordKeeper &Records, raw_ostream &OS);
43239313Sdimvoid EmitClangAttrParsedAttrKinds(RecordKeeper &Records, raw_ostream &OS);
44249423Sdimvoid EmitClangAttrDump(RecordKeeper &Records, raw_ostream &OS);
45239313Sdim
46239313Sdimvoid EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS,
47239313Sdim                        const std::string &Component);
48239313Sdimvoid EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS);
49239313Sdimvoid EmitClangDiagsIndexName(RecordKeeper &Records, raw_ostream &OS);
50239313Sdim
51239313Sdimvoid EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS);
52239313Sdim
53243830Sdimvoid EmitClangCommentHTMLTags(RecordKeeper &Records, raw_ostream &OS);
54243830Sdimvoid EmitClangCommentHTMLTagsProperties(RecordKeeper &Records, raw_ostream &OS);
55249423Sdimvoid EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records, raw_ostream &OS);
56243830Sdim
57243830Sdimvoid EmitClangCommentCommandInfo(RecordKeeper &Records, raw_ostream &OS);
58249423Sdimvoid EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS);
59243830Sdim
60239313Sdimvoid EmitNeon(RecordKeeper &Records, raw_ostream &OS);
61239313Sdimvoid EmitNeonSema(RecordKeeper &Records, raw_ostream &OS);
62239313Sdimvoid EmitNeonTest(RecordKeeper &Records, raw_ostream &OS);
63239313Sdim
64239313Sdimvoid EmitOptParser(RecordKeeper &Records, raw_ostream &OS, bool GenDefs);
65239313Sdim
66239313Sdim} // end namespace clang
67