LLVM: llvm::RewriteBuffer Class Reference (original) (raw)

RewriteBuffer - As code is rewritten, SourceBuffer's from the original input with modifications get a new RewriteBuffer associated with them. More...

#include "[llvm/ADT/RewriteBuffer.h](RewriteBuffer%5F8h%5Fsource.html)"

Public Member Functions
iterator begin () const
iterator end () const
unsigned size () const
void Initialize (const char *BufStart, const char *BufEnd)
Initialize - Start this rewrite buffer out with a copy of the unmodified input buffer.
void Initialize (StringRef Input)
LLVM_ABI raw_ostream & write (raw_ostream &Stream) const
Write to Stream the result of applying all changes to the original buffer.
LLVM_ABI void RemoveText (unsigned OrigOffset, unsigned Size, bool removeLineIfEmpty=false)
RemoveText - Remove the specified text.
LLVM_ABI void InsertText (unsigned OrigOffset, StringRef Str, bool InsertAfter=true)
InsertText - Insert some text at the specified point, where the offset in the buffer is specified relative to the original SourceBuffer.
void InsertTextBefore (unsigned OrigOffset, StringRef Str)
InsertTextBefore - Insert some text before the specified point, where the offset in the buffer is specified relative to the original SourceBuffer.
void InsertTextAfter (unsigned OrigOffset, StringRef Str)
InsertTextAfter - Insert some text at the specified point, where the offset in the buffer is specified relative to the original SourceBuffer.
LLVM_ABI void ReplaceText (unsigned OrigOffset, unsigned OrigLength, StringRef NewStr)
ReplaceText - This method replaces a range of characters in the input buffer with a new string.
Friends
class clang::Rewriter

RewriteBuffer - As code is rewritten, SourceBuffer's from the original input with modifications get a new RewriteBuffer associated with them.

The RewriteBuffer captures the modified text itself as well as information used to map between SourceLocation's in the original input and offsets in the RewriteBuffer. For example, if text is inserted into the buffer, any locations after the insertion point have to be mapped.

Definition at line 31 of file RewriteBuffer.h.

iterator

begin()

iterator llvm::RewriteBuffer::begin ( ) const inline

end()

iterator llvm::RewriteBuffer::end ( ) const inline

Initialize() [1/2]

Initialize - Start this rewrite buffer out with a copy of the unmodified input buffer.

Definition at line 49 of file RewriteBuffer.h.

Initialize() [2/2]

void llvm::RewriteBuffer::Initialize ( StringRef Input) inline

InsertText()

InsertText - Insert some text at the specified point, where the offset in the buffer is specified relative to the original SourceBuffer.

The text is inserted after the specified location.

Definition at line 84 of file RewriteBuffer.cpp.

Referenced by InsertTextAfter(), and InsertTextBefore().

InsertTextAfter()

InsertTextAfter - Insert some text at the specified point, where the offset in the buffer is specified relative to the original SourceBuffer.

The text is inserted after the specified location.

Definition at line 84 of file RewriteBuffer.h.

References InsertText().

InsertTextBefore()

InsertTextBefore - Insert some text before the specified point, where the offset in the buffer is specified relative to the original SourceBuffer.

The text is inserted before the specified location. This is method is the same as InsertText with "InsertAfter == false".

Definition at line 77 of file RewriteBuffer.h.

References InsertText().

RemoveText()

void RewriteBuffer::RemoveText ( unsigned OrigOffset,
unsigned Size,
bool removeLineIfEmpty = false )

ReplaceText()

size()

unsigned llvm::RewriteBuffer::size ( ) const inline

write()

Write to Stream the result of applying all changes to the original buffer.

Note that it isn't safe to use this function to overwrite memory mapped files in-place (PR17960). Consider using a higher-level utility such as Rewriter::overwriteChangedFiles() instead.

The original buffer is not actually changed.

Definition at line 14 of file RewriteBuffer.cpp.

References begin(), end(), and I.

clang::Rewriter

friend class clang::Rewriter friend

The documentation for this class was generated from the following files: