1 //===- ClangAttrEmitter.h - Generate Clang attribute handling =-*- C++ -*--===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // These tablegen backends emit Clang attribute processing code
12 //===----------------------------------------------------------------------===//
14 #ifndef CLANGATTR_EMITTER_H
15 #define CLANGATTR_EMITTER_H
17 #include "TableGenBackend.h"
21 /// ClangAttrClassEmitter - class emits the class defintions for attributes for
23 class ClangAttrClassEmitter : public TableGenBackend {
24 RecordKeeper &Records;
27 explicit ClangAttrClassEmitter(RecordKeeper &R)
31 void run(raw_ostream &OS);
34 /// ClangAttrImplEmitter - class emits the class method defintions for
35 /// attributes for clang.
36 class ClangAttrImplEmitter : public TableGenBackend {
37 RecordKeeper &Records;
40 explicit ClangAttrImplEmitter(RecordKeeper &R)
44 void run(raw_ostream &OS);
47 /// ClangAttrListEmitter - class emits the enumeration list for attributes for
49 class ClangAttrListEmitter : public TableGenBackend {
50 RecordKeeper &Records;
53 explicit ClangAttrListEmitter(RecordKeeper &R)
57 void run(raw_ostream &OS);
60 /// ClangAttrPCHReadEmitter - class emits the code to read an attribute from
61 /// a clang precompiled header.
62 class ClangAttrPCHReadEmitter : public TableGenBackend {
63 RecordKeeper &Records;
66 explicit ClangAttrPCHReadEmitter(RecordKeeper &R)
70 void run(raw_ostream &OS);
73 /// ClangAttrPCHWriteEmitter - class emits the code to read an attribute from
74 /// a clang precompiled header.
75 class ClangAttrPCHWriteEmitter : public TableGenBackend {
76 RecordKeeper &Records;
79 explicit ClangAttrPCHWriteEmitter(RecordKeeper &R)
83 void run(raw_ostream &OS);
86 /// ClangAttrSpellingListEmitter - class emits the list of spellings for attributes for
88 class ClangAttrSpellingListEmitter : public TableGenBackend {
89 RecordKeeper &Records;
92 explicit ClangAttrSpellingListEmitter(RecordKeeper &R)
96 void run(raw_ostream &OS);