[cfe-commits] r49896 - in /cfe/trunk: include/clang/Rewrite/HTMLRewrite.h lib/Rewrite/HTMLRewrite.cpp
Ted Kremenek
kremenek at apple.com
Thu Apr 17 22:34:34 PDT 2008
Author: kremenek
Date: Fri Apr 18 00:34:33 2008
New Revision: 49896
URL: http://llvm.org/viewvc/llvm-project?rev=49896&view=rev
Log:
Provide a version of html::HighlightMacros that takes a Preprocessor&.
Modified:
cfe/trunk/include/clang/Rewrite/HTMLRewrite.h
cfe/trunk/lib/Rewrite/HTMLRewrite.cpp
Modified: cfe/trunk/include/clang/Rewrite/HTMLRewrite.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Rewrite/HTMLRewrite.h?rev=49896&r1=49895&r2=49896&view=diff
==============================================================================
--- cfe/trunk/include/clang/Rewrite/HTMLRewrite.h (original)
+++ cfe/trunk/include/clang/Rewrite/HTMLRewrite.h Fri Apr 18 00:34:33 2008
@@ -75,9 +75,15 @@
/// file, to reexpand macros and insert (into the HTML) information about the
/// macro expansions. This won't be perfectly perfect, but it will be
/// reasonably close.
+ void HighlightMacros(Rewriter &R, unsigned FileID, Preprocessor &PP);
+
+
void HighlightMacros(Rewriter &R, unsigned FileID, PreprocessorFactory &PPF);
+
+
+
} // end html namespace
} // end clang namespace
Modified: cfe/trunk/lib/Rewrite/HTMLRewrite.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Rewrite/HTMLRewrite.cpp?rev=49896&r1=49895&r2=49896&view=diff
==============================================================================
--- cfe/trunk/lib/Rewrite/HTMLRewrite.cpp (original)
+++ cfe/trunk/lib/Rewrite/HTMLRewrite.cpp Fri Apr 18 00:34:33 2008
@@ -393,28 +393,24 @@
/// file, to reexpand macros and insert (into the HTML) information about the
/// macro expansions. This won't be perfectly perfect, but it will be
/// reasonably close.
-void html::HighlightMacros(Rewriter &R, unsigned FileID,
- PreprocessorFactory &PPF) {
-
- llvm::OwningPtr<Preprocessor> PP(PPF.CreatePreprocessor());
-
+void html::HighlightMacros(Rewriter &R, unsigned FileID, Preprocessor& PP) {
RewriteBuffer &RB = R.getEditBuffer(FileID);
// Inform the preprocessor that we don't want comments.
- PP->SetCommentRetentionState(false, false);
+ PP.SetCommentRetentionState(false, false);
// Start parsing the specified input file.
- PP->EnterMainSourceFile();
+ PP.EnterMainSourceFile();
// Lex all the tokens.
- const SourceManager &SourceMgr = PP->getSourceManager();
+ const SourceManager &SourceMgr = PP.getSourceManager();
Token Tok;
- PP->Lex(Tok);
+ PP.Lex(Tok);
while (Tok.isNot(tok::eof)) {
// Ignore non-macro tokens.
if (!Tok.getLocation().isMacroID()) {
- PP->Lex(Tok);
+ PP.Lex(Tok);
continue;
}
@@ -424,7 +420,7 @@
SourceMgr.getDecomposedFileLoc(LLoc);
if (LLocInfo.first != FileID) {
- PP->Lex(Tok);
+ PP.Lex(Tok);
continue;
}
@@ -442,11 +438,11 @@
strlen("<span class='macro'>"));
RB.InsertTextBefore(TokOffs+TokLen, "</span>", strlen("</span>"));
- std::string Expansion = PP->getSpelling(Tok);
+ std::string Expansion = PP.getSpelling(Tok);
unsigned LineLen = Expansion.size();
// Okay, eat this token, getting the next one.
- PP->Lex(Tok);
+ PP.Lex(Tok);
// Skip all the rest of the tokens that are part of this macro
// instantiation. It would be really nice to pop up a window with all the
@@ -461,9 +457,9 @@
LineLen -= Expansion.size();
// Escape any special characters in the token text.
- Expansion += ' ' + EscapeText(PP->getSpelling(Tok));
+ Expansion += ' ' + EscapeText(PP.getSpelling(Tok));
LineLen += Expansion.size();
- PP->Lex(Tok);
+ PP.Lex(Tok);
}
// Insert the information about the expansion inside the macro span.
@@ -472,4 +468,9 @@
}
}
-
+void html::HighlightMacros(Rewriter &R, unsigned FileID,
+ PreprocessorFactory &PPF) {
+
+ llvm::OwningPtr<Preprocessor> PP(PPF.CreatePreprocessor());
+ HighlightMacros(R, FileID, *PP);
+}
More information about the cfe-commits
mailing list