[cfe-commits] r161596 - in /cfe/trunk: include/clang/AST/CommentCommandTraits.h test/Index/annotate-comments.cpp tools/libclang/CXComment.cpp
Dmitri Gribenko
gribozavr at gmail.com
Thu Aug 9 10:33:20 PDT 2012
Author: gribozavr
Date: Thu Aug 9 12:33:20 2012
New Revision: 161596
URL: http://llvm.org/viewvc/llvm-project?rev=161596&view=rev
Log:
Comment to HTML and XML conversion: use CommandTraits to classify commands.
This also fixes a bug in comment to XML conversion: \result was just an
ordinary paragraph, not an alias for \returns.
Modified:
cfe/trunk/include/clang/AST/CommentCommandTraits.h
cfe/trunk/test/Index/annotate-comments.cpp
cfe/trunk/tools/libclang/CXComment.cpp
Modified: cfe/trunk/include/clang/AST/CommentCommandTraits.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/CommentCommandTraits.h?rev=161596&r1=161595&r2=161596&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/CommentCommandTraits.h (original)
+++ cfe/trunk/include/clang/AST/CommentCommandTraits.h Thu Aug 9 12:33:20 2012
@@ -28,6 +28,8 @@
/// in comments.
class CommandTraits {
public:
+ CommandTraits() { }
+
/// \brief Check if a given command is a verbatim-like block command.
///
/// A verbatim-like block command eats every character (except line starting
Modified: cfe/trunk/test/Index/annotate-comments.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-comments.cpp?rev=161596&r1=161595&r2=161596&view=diff
==============================================================================
--- cfe/trunk/test/Index/annotate-comments.cpp (original)
+++ cfe/trunk/test/Index/annotate-comments.cpp Thu Aug 9 12:33:20 2012
@@ -587,7 +587,7 @@
// CHECK-NEXT: (CXComment_BlockCommand CommandName=[returns]
// CHECK-NEXT: (CXComment_Paragraph
// CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))]
-// CHECK: annotate-comments.cpp:262:6: FunctionDecl=comment_to_html_conversion_9:{{.*}} FullCommentAsHTML=[<p class="para-brief"> Aaa.</p><p class="para-returns"><span class="word-returns">Returns</span> Bbb.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments.cpp" line="262" column="6"><Name>comment_to_html_conversion_9</Name><USR>c:@F at comment_to_html_conversion_9#</USR><Abstract><Para> Aaa.</Para></Abstract><Discussion><Para> Bbb.</Para></Discussion></Function>]
+// CHECK: annotate-comments.cpp:262:6: FunctionDecl=comment_to_html_conversion_9:{{.*}} FullCommentAsHTML=[<p class="para-brief"> Aaa.</p><p class="para-returns"><span class="word-returns">Returns</span> Bbb.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments.cpp" line="262" column="6"><Name>comment_to_html_conversion_9</Name><USR>c:@F at comment_to_html_conversion_9#</USR><Abstract><Para> Aaa.</Para></Abstract><ResultDiscussion><Para> Bbb.</Para></ResultDiscussion></Function>]
// CHECK-NEXT: CommentAST=[
// CHECK-NEXT: (CXComment_FullComment
// CHECK-NEXT: (CXComment_Paragraph
Modified: cfe/trunk/tools/libclang/CXComment.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CXComment.cpp?rev=161596&r1=161595&r2=161596&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/CXComment.cpp (original)
+++ cfe/trunk/tools/libclang/CXComment.cpp Thu Aug 9 12:33:20 2012
@@ -18,6 +18,7 @@
#include "CXTranslationUnit.h"
#include "clang/AST/CommentVisitor.h"
+#include "clang/AST/CommentCommandTraits.h"
#include "clang/AST/Decl.h"
#include "clang/Frontend/ASTUnit.h"
@@ -416,6 +417,7 @@
FullCommentParts::FullCommentParts(const FullComment *C) :
Brief(NULL), FirstParagraph(NULL), Returns(NULL) {
+ const CommandTraits Traits;
for (Comment::child_iterator I = C->child_begin(), E = C->child_end();
I != E; ++I) {
const Comment *Child = *I;
@@ -439,11 +441,11 @@
case Comment::BlockCommandCommentKind: {
const BlockCommandComment *BCC = cast<BlockCommandComment>(Child);
StringRef CommandName = BCC->getCommandName();
- if (!Brief && (CommandName == "brief" || CommandName == "short")) {
+ if (!Brief && Traits.isBriefCommand(CommandName)) {
Brief = BCC;
break;
}
- if (!Returns && (CommandName == "returns" || CommandName == "return")) {
+ if (!Returns && Traits.isReturnsCommand(CommandName)) {
Returns = BCC;
break;
}
@@ -553,6 +555,8 @@
void appendToResultWithHTMLEscaping(StringRef S);
private:
+ const CommandTraits Traits;
+
/// Output stream for HTML.
llvm::raw_svector_ostream Result;
};
@@ -628,14 +632,13 @@
void CommentASTToHTMLConverter::visitBlockCommandComment(
const BlockCommandComment *C) {
StringRef CommandName = C->getCommandName();
- if (CommandName == "brief" || CommandName == "short") {
+ if (Traits.isBriefCommand(CommandName)) {
Result << "<p class=\"para-brief\">";
visitNonStandaloneParagraphComment(C->getParagraph());
Result << "</p>";
return;
}
- if (CommandName == "returns" || CommandName == "return" ||
- CommandName == "result") {
+ if (Traits.isReturnsCommand(CommandName)) {
Result << "<p class=\"para-returns\">"
"<span class=\"word-returns\">Returns</span> ";
visitNonStandaloneParagraphComment(C->getParagraph());
@@ -862,6 +865,7 @@
private:
const SourceManager &SM;
+
/// Output stream for XML.
llvm::raw_svector_ostream Result;
};
More information about the cfe-commits
mailing list