blob: af870098a842f42fa66a90525b90ae3fe43b662f [file] [log] [blame]
Sean Hunt16171442010-06-16 23:45:50 +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 "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
Sean Hunt726a3d22010-08-18 23:23:09 +000034/// 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
Sean Hunt16171442010-06-16 23:45:50 +000047/// 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
Sean Hunt726a3d22010-08-18 23:23:09 +000060/// 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
Anders Carlsson238777e2010-10-20 01:21:53 +000086/// 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
Sean Hunt16171442010-06-16 23:45:50 +000099}
100
101#endif