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
16176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines#ifndef LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H
17176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines#define LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H
18176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
193cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen#include <string>
203cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
213cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesennamespace llvm {
223cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen  class raw_ostream;
233cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen  class RecordKeeper;
243cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen}
253cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
263cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenusing llvm::raw_ostream;
273cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenusing llvm::RecordKeeper;
283cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
293cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesennamespace clang {
303cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
313cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangDeclContext(RecordKeeper &RK, raw_ostream &OS);
323cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangASTNodes(RecordKeeper &RK, raw_ostream &OS,
333cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen                       const std::string &N, const std::string &S);
343cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
35651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid EmitClangAttrParserStringSwitches(RecordKeeper &Records, raw_ostream &OS);
363cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS);
373cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS);
383cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrList(RecordKeeper &Records, raw_ostream &OS);
393cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrPCHRead(RecordKeeper &Records, raw_ostream &OS);
403cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrPCHWrite(RecordKeeper &Records, raw_ostream &OS);
41651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid EmitClangAttrHasAttrImpl(RecordKeeper &Records, raw_ostream &OS);
4251d8c52ad36129760eaa586f85176037e2cd0d0eMichael Hanvoid EmitClangAttrSpellingListIndex(RecordKeeper &Records, raw_ostream &OS);
43651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid EmitClangAttrASTVisitor(RecordKeeper &Records, raw_ostream &OS);
443cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrTemplateInstantiate(RecordKeeper &Records, raw_ostream &OS);
453cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrParsedAttrList(RecordKeeper &Records, raw_ostream &OS);
46bbb3b3237df2284f6f3c34798944fcfa4b43fd34Aaron Ballmanvoid EmitClangAttrParsedAttrImpl(RecordKeeper &Records, raw_ostream &OS);
473cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangAttrParsedAttrKinds(RecordKeeper &Records, raw_ostream &OS);
48c3cd2b0d538e4db78f1bcbedd0085e2005ce5c51Alexander Kornienkovoid EmitClangAttrDump(RecordKeeper &Records, raw_ostream &OS);
493cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
503cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS,
513cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen                        const std::string &Component);
523cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS);
533cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangDiagsIndexName(RecordKeeper &Records, raw_ostream &OS);
543cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
553cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS);
563cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
57c24a76e376a767edc14e60bed716396a84cb127aDmitri Gribenkovoid EmitClangCommentHTMLTags(RecordKeeper &Records, raw_ostream &OS);
58c24a76e376a767edc14e60bed716396a84cb127aDmitri Gribenkovoid EmitClangCommentHTMLTagsProperties(RecordKeeper &Records, raw_ostream &OS);
595bd1e5ba000023910ad986a16dd16d7ca914750aDmitri Gribenkovoid EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records, raw_ostream &OS);
60c24a76e376a767edc14e60bed716396a84cb127aDmitri Gribenko
61e4330a302ac20b41b9800267ebd4b5b01f8553f8Dmitri Gribenkovoid EmitClangCommentCommandInfo(RecordKeeper &Records, raw_ostream &OS);
62af01bed59b2fe18fa483f5dbb86584b31eda6f98Dmitri Gribenkovoid EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS);
63e4330a302ac20b41b9800267ebd4b5b01f8553f8Dmitri Gribenko
643cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitNeon(RecordKeeper &Records, raw_ostream &OS);
653cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitNeonSema(RecordKeeper &Records, raw_ostream &OS);
663cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesenvoid EmitNeonTest(RecordKeeper &Records, raw_ostream &OS);
67c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hinesvoid EmitNeon2(RecordKeeper &Records, raw_ostream &OS);
68c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hinesvoid EmitNeonSema2(RecordKeeper &Records, raw_ostream &OS);
69c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hinesvoid EmitNeonTest2(RecordKeeper &Records, raw_ostream &OS);
703cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen
71651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid EmitClangAttrDocs(RecordKeeper &Records, raw_ostream &OS);
72651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
733cc509b5ac0e99ef44c1bf8b57cd403b546abc3dJakob Stoklund Olesen} // end namespace clang
74176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
75176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines#endif
76