Add preliminary clang attribute generation support.
[oota-llvm.git] / utils / TableGen / ClangAttrEmitter.h
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
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef CLANGATTR_EMITTER_H
15 #define CLANGATTR_EMITTER_H
16
17 #include "TableGenBackend.h"
18
19 namespace llvm {
20
21 /// ClangAttrClassEmitter - class emits the class defintions for attributes for
22 ///   clang.
23 class 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 /// ClangAttrListEmitter - class emits the enumeration list for attributes for
35 ///   clang.
36 class ClangAttrListEmitter : public TableGenBackend {
37   RecordKeeper &Records;
38
39  public:
40   explicit ClangAttrListEmitter(RecordKeeper &R)
41     : Records(R)
42     {}
43
44   void run(raw_ostream &OS);
45 };
46
47 }
48
49 #endif