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