Support using DebugLoc's in a DenseMap.
[llvm/stm8.git] / utils / TableGen / ClangAttrEmitter.h
blobaf870098a842f42fa66a90525b90ae3fe43b662f
1 //===- ClangAttrEmitter.h - Generate Clang attribute handling =-*- C++ -*--===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // These tablegen backends emit Clang attribute processing code
12 //===----------------------------------------------------------------------===//
14 #ifndef CLANGATTR_EMITTER_H
15 #define CLANGATTR_EMITTER_H
17 #include "TableGenBackend.h"
19 namespace llvm {
21 /// ClangAttrClassEmitter - class emits the class defintions for attributes for
22 /// clang.
23 class ClangAttrClassEmitter : public TableGenBackend {
24 RecordKeeper &Records;
26 public:
27 explicit ClangAttrClassEmitter(RecordKeeper &R)
28 : Records(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;
39 public:
40 explicit ClangAttrImplEmitter(RecordKeeper &R)
41 : Records(R)
44 void run(raw_ostream &OS);
47 /// ClangAttrListEmitter - class emits the enumeration list for attributes for
48 /// clang.
49 class ClangAttrListEmitter : public TableGenBackend {
50 RecordKeeper &Records;
52 public:
53 explicit ClangAttrListEmitter(RecordKeeper &R)
54 : Records(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;
65 public:
66 explicit ClangAttrPCHReadEmitter(RecordKeeper &R)
67 : Records(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;
78 public:
79 explicit ClangAttrPCHWriteEmitter(RecordKeeper &R)
80 : Records(R)
83 void run(raw_ostream &OS);
86 /// ClangAttrSpellingListEmitter - class emits the list of spellings for attributes for
87 /// clang.
88 class ClangAttrSpellingListEmitter : public TableGenBackend {
89 RecordKeeper &Records;
91 public:
92 explicit ClangAttrSpellingListEmitter(RecordKeeper &R)
93 : Records(R)
96 void run(raw_ostream &OS);
101 #endif