Rewriters.h revision 8c355831ac3c9e8c12b23ca69b7587dcbd0439ef
1//===--- Rewriters.h - Rewritings     ---------------------------*- 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#ifndef LLVM_CLANG_EDIT_REWRITERS_H
11#define LLVM_CLANG_EDIT_REWRITERS_H
12#include "llvm/ADT/SmallVector.h"
13
14namespace clang {
15  class ObjCMessageExpr;
16  class ObjCMethodDecl;
17  class ObjCInterfaceDecl;
18  class ObjCProtocolDecl;
19  class NSAPI;
20  class ParentMap;
21
22namespace edit {
23  class Commit;
24
25bool rewriteObjCRedundantCallWithLiteral(const ObjCMessageExpr *Msg,
26                                         const NSAPI &NS, Commit &commit);
27
28bool rewriteToObjCLiteralSyntax(const ObjCMessageExpr *Msg,
29                                const NSAPI &NS, Commit &commit,
30                                const ParentMap *PMap);
31
32bool rewriteToObjCProperty(const ObjCMethodDecl *Getter,
33                           const ObjCMethodDecl *Setter,
34                           const NSAPI &NS, Commit &commit);
35bool rewriteToObjCInterfaceDecl(const ObjCInterfaceDecl *IDecl,
36                                llvm::SmallVectorImpl<ObjCProtocolDecl*> &Protocols,
37                                const NSAPI &NS, Commit &commit);
38
39bool rewriteToObjCSubscriptSyntax(const ObjCMessageExpr *Msg,
40                                  const NSAPI &NS, Commit &commit);
41
42}
43
44}  // end namespace clang
45
46#endif
47