1234287Sdim//===--- Rewriters.h - Rewritings     ---------------------------*- C++ -*-===//
2234287Sdim//
3234287Sdim//                     The LLVM Compiler Infrastructure
4234287Sdim//
5234287Sdim// This file is distributed under the University of Illinois Open Source
6234287Sdim// License. See LICENSE.TXT for details.
7234287Sdim//
8234287Sdim//===----------------------------------------------------------------------===//
9234287Sdim
10234287Sdim#ifndef LLVM_CLANG_EDIT_REWRITERS_H
11234287Sdim#define LLVM_CLANG_EDIT_REWRITERS_H
12263508Sdim#include "llvm/ADT/SmallVector.h"
13234287Sdim
14234287Sdimnamespace clang {
15234287Sdim  class ObjCMessageExpr;
16263508Sdim  class ObjCMethodDecl;
17263508Sdim  class ObjCInterfaceDecl;
18263508Sdim  class ObjCProtocolDecl;
19234287Sdim  class NSAPI;
20263508Sdim  class EnumDecl;
21263508Sdim  class TypedefDecl;
22249423Sdim  class ParentMap;
23234287Sdim
24234287Sdimnamespace edit {
25234287Sdim  class Commit;
26234287Sdim
27234287Sdimbool rewriteObjCRedundantCallWithLiteral(const ObjCMessageExpr *Msg,
28234287Sdim                                         const NSAPI &NS, Commit &commit);
29234287Sdim
30234287Sdimbool rewriteToObjCLiteralSyntax(const ObjCMessageExpr *Msg,
31249423Sdim                                const NSAPI &NS, Commit &commit,
32249423Sdim                                const ParentMap *PMap);
33263508Sdim
34234287Sdimbool rewriteToObjCSubscriptSyntax(const ObjCMessageExpr *Msg,
35234287Sdim                                  const NSAPI &NS, Commit &commit);
36234287Sdim
37234287Sdim}
38234287Sdim
39234287Sdim}  // end namespace clang
40234287Sdim
41234287Sdim#endif
42