130660a898545416f0fea2d717f16f75640001e38Ted Kremenek//===----- EditedSource.h - Collection of source edits ----------*- C++ -*-===//
230660a898545416f0fea2d717f16f75640001e38Ted Kremenek//
330660a898545416f0fea2d717f16f75640001e38Ted Kremenek//                     The LLVM Compiler Infrastructure
430660a898545416f0fea2d717f16f75640001e38Ted Kremenek//
530660a898545416f0fea2d717f16f75640001e38Ted Kremenek// This file is distributed under the University of Illinois Open Source
630660a898545416f0fea2d717f16f75640001e38Ted Kremenek// License. See LICENSE.TXT for details.
730660a898545416f0fea2d717f16f75640001e38Ted Kremenek//
830660a898545416f0fea2d717f16f75640001e38Ted Kremenek//===----------------------------------------------------------------------===//
930660a898545416f0fea2d717f16f75640001e38Ted Kremenek
1030660a898545416f0fea2d717f16f75640001e38Ted Kremenek#ifndef LLVM_CLANG_EDIT_EDITSRECEIVER_H
1130660a898545416f0fea2d717f16f75640001e38Ted Kremenek#define LLVM_CLANG_EDIT_EDITSRECEIVER_H
1230660a898545416f0fea2d717f16f75640001e38Ted Kremenek
1330660a898545416f0fea2d717f16f75640001e38Ted Kremenek#include "clang/Basic/LLVM.h"
1430660a898545416f0fea2d717f16f75640001e38Ted Kremenek
1530660a898545416f0fea2d717f16f75640001e38Ted Kremeneknamespace clang {
1630660a898545416f0fea2d717f16f75640001e38Ted Kremenek  class SourceLocation;
1730660a898545416f0fea2d717f16f75640001e38Ted Kremenek  class CharSourceRange;
1830660a898545416f0fea2d717f16f75640001e38Ted Kremenek
1930660a898545416f0fea2d717f16f75640001e38Ted Kremeneknamespace edit {
2030660a898545416f0fea2d717f16f75640001e38Ted Kremenek
2130660a898545416f0fea2d717f16f75640001e38Ted Kremenekclass EditsReceiver {
2230660a898545416f0fea2d717f16f75640001e38Ted Kremenekpublic:
2330660a898545416f0fea2d717f16f75640001e38Ted Kremenek  virtual ~EditsReceiver() { }
2430660a898545416f0fea2d717f16f75640001e38Ted Kremenek
2530660a898545416f0fea2d717f16f75640001e38Ted Kremenek  virtual void insert(SourceLocation loc, StringRef text) = 0;
2630660a898545416f0fea2d717f16f75640001e38Ted Kremenek  virtual void replace(CharSourceRange range, StringRef text) = 0;
2730660a898545416f0fea2d717f16f75640001e38Ted Kremenek  /// \brief By default it calls replace with an empty string.
2830660a898545416f0fea2d717f16f75640001e38Ted Kremenek  virtual void remove(CharSourceRange range);
2930660a898545416f0fea2d717f16f75640001e38Ted Kremenek};
3030660a898545416f0fea2d717f16f75640001e38Ted Kremenek
3130660a898545416f0fea2d717f16f75640001e38Ted Kremenek}
3230660a898545416f0fea2d717f16f75640001e38Ted Kremenek
3330660a898545416f0fea2d717f16f75640001e38Ted Kremenek} // end namespace clang
3430660a898545416f0fea2d717f16f75640001e38Ted Kremenek
3530660a898545416f0fea2d717f16f75640001e38Ted Kremenek#endif
36