blob: 5acca560f0131fd36fef6c30afa74ea12c99f8d0 [file] [log] [blame]
Peter Collingbourne51d77772011-10-06 13:03:08 +00001//===- 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
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef CLANGATTR_EMITTER_H
15#define CLANGATTR_EMITTER_H
16
17#include "llvm/TableGen/TableGenBackend.h"
18
19namespace llvm {
20
21/// ClangAttrClassEmitter - class emits the class defintions for attributes for
22/// clang.
23class ClangAttrClassEmitter : public TableGenBackend {
24 RecordKeeper &Records;
25
26 public:
27 explicit ClangAttrClassEmitter(RecordKeeper &R)
28 : Records(R)
29 {}
30
31 void run(raw_ostream &OS);
32};
33
34/// ClangAttrImplEmitter - class emits the class method defintions for
35/// attributes for clang.
36class ClangAttrImplEmitter : public TableGenBackend {
37 RecordKeeper &Records;
38
39 public:
40 explicit ClangAttrImplEmitter(RecordKeeper &R)
41 : Records(R)
42 {}
43
44 void run(raw_ostream &OS);
45};
46
47/// ClangAttrListEmitter - class emits the enumeration list for attributes for
48/// clang.
49class ClangAttrListEmitter : public TableGenBackend {
50 RecordKeeper &Records;
51
52 public:
53 explicit ClangAttrListEmitter(RecordKeeper &R)
54 : Records(R)
55 {}
56
57 void run(raw_ostream &OS);
58};
59
60/// ClangAttrPCHReadEmitter - class emits the code to read an attribute from
61/// a clang precompiled header.
62class ClangAttrPCHReadEmitter : public TableGenBackend {
63 RecordKeeper &Records;
64
65public:
66 explicit ClangAttrPCHReadEmitter(RecordKeeper &R)
67 : Records(R)
68 {}
69
70 void run(raw_ostream &OS);
71};
72
73/// ClangAttrPCHWriteEmitter - class emits the code to read an attribute from
74/// a clang precompiled header.
75class ClangAttrPCHWriteEmitter : public TableGenBackend {
76 RecordKeeper &Records;
77
78public:
79 explicit ClangAttrPCHWriteEmitter(RecordKeeper &R)
80 : Records(R)
81 {}
82
83 void run(raw_ostream &OS);
84};
85
86/// ClangAttrSpellingListEmitter - class emits the list of spellings for attributes for
87/// clang.
88class ClangAttrSpellingListEmitter : public TableGenBackend {
89 RecordKeeper &Records;
90
91 public:
92 explicit ClangAttrSpellingListEmitter(RecordKeeper &R)
93 : Records(R)
94 {}
95
96 void run(raw_ostream &OS);
97};
98
99/// ClangAttrLateParsedListEmitter emits the LateParsed property for attributes
100/// for clang.
101class ClangAttrLateParsedListEmitter : public TableGenBackend {
102 RecordKeeper &Records;
103
104 public:
105 explicit ClangAttrLateParsedListEmitter(RecordKeeper &R)
106 : Records(R)
107 {}
108
109 void run(raw_ostream &OS);
110};
111
112}
113
114#endif