13cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen//===- TableGenBackends.h - Declarations for Clang TableGen Backends ------===//
23cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen//
33cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen//                     The LLVM Compiler Infrastructure
43cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen//
53cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen// This file is distributed under the University of Illinois Open Source
63cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen// License. See LICENSE.TXT for details.
73cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen//
83cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen//===----------------------------------------------------------------------===//
93cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen//
103cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen// This file contains the declarations for all of the Clang TableGen
113cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen// backends. A "TableGen backend" is just a function. See
123cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen// "$LLVM_ROOT/utils/TableGen/TableGenBackends.h" for more info.
133cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen//
143cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen//===----------------------------------------------------------------------===//
153cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
163cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen#include <string>
173cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
183cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesennamespace llvm {
193cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen  class raw_ostream;
203cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen  class RecordKeeper;
213cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen}
223cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
233cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenusing llvm::raw_ostream;
243cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenusing llvm::RecordKeeper;
253cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
263cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesennamespace clang {
273cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
283cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangDeclContext(RecordKeeper &RK, raw_ostream &OS);
293cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangASTNodes(RecordKeeper &RK, raw_ostream &OS,
303cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen                       const std::string &N, const std::string &S);
313cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
32651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid EmitClangAttrParserStringSwitches(RecordKeeper &Records, raw_ostream &OS);
333cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS);
343cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS);
353cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrList(RecordKeeper &Records, raw_ostream &OS);
363cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrPCHRead(RecordKeeper &Records, raw_ostream &OS);
373cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrPCHWrite(RecordKeeper &Records, raw_ostream &OS);
38651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid EmitClangAttrHasAttrImpl(RecordKeeper &Records, raw_ostream &OS);
3951d8c52ad36129760eaa586f85176037e2cd0d0eMichael Hanvoid EmitClangAttrSpellingListIndex(RecordKeeper &Records, raw_ostream &OS);
40651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid EmitClangAttrASTVisitor(RecordKeeper &Records, raw_ostream &OS);
413cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrTemplateInstantiate(RecordKeeper &Records, raw_ostream &OS);
423cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrParsedAttrList(RecordKeeper &Records, raw_ostream &OS);
43bbb3b3237df2284f6f3c34798944fcfa4b43fd34Aaron Ballmanvoid EmitClangAttrParsedAttrImpl(RecordKeeper &Records, raw_ostream &OS);
443cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrParsedAttrKinds(RecordKeeper &Records, raw_ostream &OS);
45c3cd2b0d538e4db78f1bcbedd0085e2005ce5c51Alexander Kornienkovoid EmitClangAttrDump(RecordKeeper &Records, raw_ostream &OS);
463cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
473cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS,
483cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen                        const std::string &Component);
493cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS);
503cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangDiagsIndexName(RecordKeeper &Records, raw_ostream &OS);
513cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
523cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS);
533cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
54c24a76e376a767edc14e60bed716396a84cb127aDmitri Gribenkovoid EmitClangCommentHTMLTags(RecordKeeper &Records, raw_ostream &OS);
55c24a76e376a767edc14e60bed716396a84cb127aDmitri Gribenkovoid EmitClangCommentHTMLTagsProperties(RecordKeeper &Records, raw_ostream &OS);
565bd1e5ba000023910ad986a16dd16d7ca914750aDmitri Gribenkovoid EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records, raw_ostream &OS);
57c24a76e376a767edc14e60bed716396a84cb127aDmitri Gribenko
58e4330a302ac20b41b9800267ebd4b5b01f8553f8Dmitri Gribenkovoid EmitClangCommentCommandInfo(RecordKeeper &Records, raw_ostream &OS);
59af01bed59b2fe18fa483f5dbb86584b31eda6f98Dmitri Gribenkovoid EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS);
60e4330a302ac20b41b9800267ebd4b5b01f8553f8Dmitri Gribenko
613cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitNeon(RecordKeeper &Records, raw_ostream &OS);
623cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitNeonSema(RecordKeeper &Records, raw_ostream &OS);
633cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitNeonTest(RecordKeeper &Records, raw_ostream &OS);
64ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesvoid EmitNeon2(RecordKeeper &Records, raw_ostream &OS);
65ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesvoid EmitNeonSema2(RecordKeeper &Records, raw_ostream &OS);
66ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesvoid EmitNeonTest2(RecordKeeper &Records, raw_ostream &OS);
673cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
68651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid EmitClangAttrDocs(RecordKeeper &Records, raw_ostream &OS);
69651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
703cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen} // end namespace clang
71