xref: /aosp_15_r20/external/clang/include/clang/Edit/EditsReceiver.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li //===----- EditedSource.h - Collection of source edits ----------*- C++ -*-===//
2*67e74705SXin Li //
3*67e74705SXin Li //                     The LLVM Compiler Infrastructure
4*67e74705SXin Li //
5*67e74705SXin Li // This file is distributed under the University of Illinois Open Source
6*67e74705SXin Li // License. See LICENSE.TXT for details.
7*67e74705SXin Li //
8*67e74705SXin Li //===----------------------------------------------------------------------===//
9*67e74705SXin Li 
10*67e74705SXin Li #ifndef LLVM_CLANG_EDIT_EDITSRECEIVER_H
11*67e74705SXin Li #define LLVM_CLANG_EDIT_EDITSRECEIVER_H
12*67e74705SXin Li 
13*67e74705SXin Li #include "clang/Basic/LLVM.h"
14*67e74705SXin Li 
15*67e74705SXin Li namespace clang {
16*67e74705SXin Li   class SourceLocation;
17*67e74705SXin Li   class CharSourceRange;
18*67e74705SXin Li 
19*67e74705SXin Li namespace edit {
20*67e74705SXin Li 
21*67e74705SXin Li class EditsReceiver {
22*67e74705SXin Li public:
~EditsReceiver()23*67e74705SXin Li   virtual ~EditsReceiver() { }
24*67e74705SXin Li 
25*67e74705SXin Li   virtual void insert(SourceLocation loc, StringRef text) = 0;
26*67e74705SXin Li   virtual void replace(CharSourceRange range, StringRef text) = 0;
27*67e74705SXin Li   /// \brief By default it calls replace with an empty string.
28*67e74705SXin Li   virtual void remove(CharSourceRange range);
29*67e74705SXin Li };
30*67e74705SXin Li 
31*67e74705SXin Li }
32*67e74705SXin Li 
33*67e74705SXin Li } // end namespace clang
34*67e74705SXin Li 
35*67e74705SXin Li #endif
36