added tests for HTML tags, bugs in HTML tags fixed
This commit is contained in:
parent
f25d03612b
commit
13d2dad679
6 changed files with 233 additions and 5 deletions
|
|
@ -125,4 +125,90 @@ int function(int a, float b)
|
|||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for html tags. See Doxygen doc for list of tags recognized by Doxygen.
|
||||
*
|
||||
* <a href = "http://acme.com/index.html">This is link</a>
|
||||
* <b>bold</b>
|
||||
* <BLOCKQUOTE>
|
||||
* Quotation block.
|
||||
* </BLOCKQUOTE>
|
||||
* <br>
|
||||
* <center>center</center>
|
||||
* <code>this is code</code>
|
||||
* <DD> Starts an item description.
|
||||
* <DFN> Starts a piece of text displayed in a typewriter font.
|
||||
* </DFN>
|
||||
* <DIV> Starts a section with a specific style (HTML only)
|
||||
* </DIV>
|
||||
* <DL> Starts a description list.
|
||||
* <DT> Starts an item title.</DT>
|
||||
* </DL>
|
||||
* <EM> Starts a piece of text displayed in an italic font.
|
||||
* </EM>
|
||||
* <FORM> 'Form' does not generate any output.
|
||||
* </FORM>
|
||||
* <HR>
|
||||
* <H1> Starts an unnumbered section.
|
||||
* </H1>
|
||||
* <H2> Starts an unnumbered subsection.
|
||||
* </H2>
|
||||
* <H3> Starts an unnumbered subsubsection.
|
||||
* </H3>
|
||||
* <I> Starts a piece of text displayed in an italic font.
|
||||
* <INPUT> Does not generate any output.
|
||||
* </I>
|
||||
* <IMG src="slika.png">
|
||||
* <META> Does not generate any output.
|
||||
* <MULTICOL> ignored by doxygen.
|
||||
* </MULTICOL> ignored by doxygen.
|
||||
*
|
||||
* <OL> Starts a numbered item list.
|
||||
* <LI> Starts a new list item.
|
||||
* </LI>
|
||||
* </OL> Ends a numbered item list.
|
||||
*
|
||||
* <P> Starts a new paragraph.
|
||||
* </P>
|
||||
* <PRE> Starts a preformatted fragment.
|
||||
* </PRE>
|
||||
* <SMALL> Starts a section of text displayed in a smaller font.
|
||||
* </SMALL>
|
||||
* <SPAN> Starts an inline text fragment with a specific style (HTML only)
|
||||
* </SPAN>
|
||||
* <STRONG> Starts a section of bold text.
|
||||
* </STRONG>
|
||||
* <SUB> Starts a piece of text displayed in subscript.
|
||||
* </SUB>
|
||||
* <SUP> Starts a piece of text displayed in superscript.
|
||||
* </SUP>
|
||||
*
|
||||
* <table border = '1'>
|
||||
* <caption>Animals</caption>
|
||||
* <tr><th> cow </th><th> dog </th></tr>
|
||||
* <tr><td> cow </td><td> dog </td></tr>
|
||||
* <tr><td> cat </td><td> mouse </td></tr>
|
||||
* <tr><td> horse </td><td> parrot </td></tr>
|
||||
* </table>
|
||||
*
|
||||
* <TT> Starts a piece of text displayed in a typewriter font.
|
||||
* </TT>
|
||||
* <KBD> Starts a piece of text displayed in a typewriter font.
|
||||
* </KBD>
|
||||
*
|
||||
* <UL> Starts an unnumbered item list.
|
||||
* <LI> Starts a new list item 1.</LI>
|
||||
* <LI> Starts a new list item 2.</LI>
|
||||
* <LI> Starts a new list item 3.</LI>
|
||||
* </UL> Ends an unnumbered item list.
|
||||
*
|
||||
* <VAR> Starts a piece of text displayed in an italic font.
|
||||
* </VAR>
|
||||
*/
|
||||
int htmlFunction(int a, float b)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
%}
|
||||
|
|
|
|||
|
|
@ -146,6 +146,87 @@ public class doxygen_translate_runme {
|
|||
" And here goes simple text \n" +
|
||||
" \n" +
|
||||
"");
|
||||
|
||||
wantedComments.put("doxygen_translate.doxygen_translate.htmlFunction(int, float)",
|
||||
" Test for html tags. See Doxygen doc for list of tags recognized by Doxygen. \n" +
|
||||
" \n" +
|
||||
" <a href = \"http://acme.com/index.html\">This is link</a> \n" +
|
||||
" <b>bold</b> \n" +
|
||||
" <blockquote> \n" +
|
||||
" Quotation block. \n" +
|
||||
" </blockquote> \n" +
|
||||
" <br> \n" +
|
||||
" <center>center</center> \n" +
|
||||
" <code>this is code</code> \n" +
|
||||
" <dd> Starts an item description. \n" +
|
||||
" <dfn> Starts a piece of text displayed in a typewriter font. \n" +
|
||||
" </dfn> \n" +
|
||||
" <div> Starts a section with a specific style (HTML only) \n" +
|
||||
" </div> \n" +
|
||||
" <dl> Starts a description list. \n" +
|
||||
" <dt> Starts an item title.</dt> \n" +
|
||||
" </dl> \n" +
|
||||
" <em> Starts a piece of text displayed in an italic font. \n" +
|
||||
" </em> \n" +
|
||||
" <form> 'Form' does not generate any output. \n" +
|
||||
" </form> \n" +
|
||||
" <hr> \n" +
|
||||
" <h1> Starts an unnumbered section. \n" +
|
||||
" </h1> \n" +
|
||||
" <h2> Starts an unnumbered subsection. \n" +
|
||||
" </h2> \n" +
|
||||
" <h3> Starts an unnumbered subsubsection. \n" +
|
||||
" </h3> \n" +
|
||||
" <i> Starts a piece of text displayed in an italic font. \n" +
|
||||
" <input> Does not generate any output. \n" +
|
||||
" </i> \n" +
|
||||
" <img src=\"slika.png\"> \n" +
|
||||
" <meta> Does not generate any output. \n" +
|
||||
" <multicol> ignored by doxygen. \n" +
|
||||
" </multicol> ignored by doxygen. \n" +
|
||||
" \n" +
|
||||
" <ol> Starts a numbered item list. \n" +
|
||||
" <li> Starts a new list item. \n" +
|
||||
" </li> \n" +
|
||||
" </ol> Ends a numbered item list. \n" +
|
||||
" \n" +
|
||||
" <p> Starts a new paragraph. \n" +
|
||||
" </p> \n" +
|
||||
" <pre> Starts a preformatted fragment. \n" +
|
||||
" </pre> \n" +
|
||||
" <small> Starts a section of text displayed in a smaller font. \n" +
|
||||
" </small> \n" +
|
||||
" <span> Starts an inline text fragment with a specific style (HTML only) \n" +
|
||||
" </span> \n" +
|
||||
" <strong> Starts a section of bold text. \n" +
|
||||
" </strong> \n" +
|
||||
" <sub> Starts a piece of text displayed in subscript. \n" +
|
||||
" </sub> \n" +
|
||||
" <sup> Starts a piece of text displayed in superscript. \n" +
|
||||
" </sup> \n" +
|
||||
" \n" +
|
||||
" <table border = '1'> \n" +
|
||||
" <caption>Animals</caption> \n" +
|
||||
" <tr><th> cow </th><th> dog </th></tr> \n" +
|
||||
" <tr><td> cow </td><td> dog </td></tr> \n" +
|
||||
" <tr><td> cat </td><td> mouse </td></tr> \n" +
|
||||
" <tr><td> horse </td><td> parrot </td></tr> \n" +
|
||||
" </table> \n" +
|
||||
" \n" +
|
||||
" <tt> Starts a piece of text displayed in a typewriter font. \n" +
|
||||
" </tt> \n" +
|
||||
" <kbd> Starts a piece of text displayed in a typewriter font. \n" +
|
||||
" </kbd> \n" +
|
||||
" \n" +
|
||||
" <ul> Starts an unnumbered item list. \n" +
|
||||
" <li> Starts a new list item 1.</li> \n" +
|
||||
" <li> Starts a new list item 2.</li> \n" +
|
||||
" <li> Starts a new list item 3.</li> \n" +
|
||||
" </ul> Ends an unnumbered item list. \n" +
|
||||
" \n" +
|
||||
" <var> Starts a piece of text displayed in an italic font. \n" +
|
||||
" </var> \n" +
|
||||
"");
|
||||
// and ask the parser to check comments for us
|
||||
System.exit(parser.check(wantedComments));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ const int commandUniquesSize = sizeof(commandUniques) / sizeof(*commandUniques);
|
|||
// behavior must be repeated by SWIG. See Doxygen doc for the list of commands.
|
||||
// '<' is prepended to distinguish HTML tags from Doxygen commands.
|
||||
const char *commandHtml[] = {
|
||||
"<a", "<b", "<blockquote", "<body", "<br", "<center", "<caption", "<code", "<dfn",
|
||||
"<a", "<b", "<blockquote", "<body", "<br", "<center", "<caption", "<code", "<dd", "<dfn",
|
||||
"<div", "<dl", "<dt", "<em", "<form", "<hr", "<h1", "<h2", "<h3", "<i", "<input", "<img",
|
||||
"<li", "<meta", "<multicol", "<ol", "<p", "<pre", "<small", "<span", "<strong",
|
||||
"<sub", "<sup", "<table", "<td", "<th", "<tr", "<tt", "<kbd", "<ul", "<var"
|
||||
|
|
|
|||
|
|
@ -178,6 +178,21 @@ void DoxygenParser::skipWhitespaceTokens()
|
|||
}
|
||||
|
||||
|
||||
std::string DoxygenParser::getNextToken() {
|
||||
|
||||
if (m_tokenListIt == m_tokenList.end()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (m_tokenListIt->m_tokenType == PLAINSTRING) {
|
||||
return (m_tokenListIt++)->m_tokenString;
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
std::string DoxygenParser::getNextWord() {
|
||||
|
||||
/* if (m_tokenListIt == m_tokenList.end()) {
|
||||
|
|
@ -582,7 +597,7 @@ int DoxygenParser::addCommandHtml(const std::string &theCommand,
|
|||
if (noisy)
|
||||
cout << "Parsing " << theCommand << endl;
|
||||
|
||||
std::string htmlTagArgs = getNextWord();
|
||||
std::string htmlTagArgs = getNextToken();
|
||||
doxyList.push_back(DoxygenEntity(theCommand, htmlTagArgs));
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -1201,7 +1216,7 @@ size_t DoxygenParser::processNormalComment(size_t pos, const std::string &line)
|
|||
pos++;
|
||||
}
|
||||
|
||||
size_t endHtmlPos = line.find_first_of("\t\n >", pos);
|
||||
size_t endHtmlPos = line.find_first_of("\t >", pos);
|
||||
|
||||
// prepend '<' to distinguish HTML tags from doxygen commands
|
||||
string cmd = line.substr(pos, endHtmlPos - pos);
|
||||
|
|
@ -1223,6 +1238,7 @@ size_t DoxygenParser::processNormalComment(size_t pos, const std::string &line)
|
|||
// add args of HTML command, like link URL, image URL, ...
|
||||
m_tokenList.push_back(Token(PLAINSTRING,
|
||||
line.substr(pos, endHtmlPos - pos)));
|
||||
pos = endHtmlPos;
|
||||
} else {
|
||||
if (isEndHtmlTag) {
|
||||
// it is a simple tag, so push empty string
|
||||
|
|
|
|||
|
|
@ -140,6 +140,12 @@ private:
|
|||
*/
|
||||
std::string trim(const std::string &text);
|
||||
|
||||
/*
|
||||
* Returns string of the next token if the next token is PLAINSTRING. Returns
|
||||
* empty string otherwise.
|
||||
*/
|
||||
std::string getNextToken();
|
||||
|
||||
/*
|
||||
* Returns the next word ON THE CURRENT LINE ONLY
|
||||
* if a new line is encountered, returns a blank std::string.
|
||||
|
|
|
|||
|
|
@ -152,8 +152,47 @@ void JavaDocConverter::fillStaticTables() {
|
|||
tagHandlers["n"] = make_pair(&JavaDocConverter::handleNewLine, "");
|
||||
|
||||
// HTML tags
|
||||
tagHandlers["<ul"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<ul");
|
||||
|
||||
tagHandlers["<a" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<a" );
|
||||
tagHandlers["<b" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<b" );
|
||||
tagHandlers["<blockquote"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<blockquote");
|
||||
tagHandlers["<body" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<body" );
|
||||
tagHandlers["<br" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<br" );
|
||||
tagHandlers["<center" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<center" );
|
||||
tagHandlers["<caption"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<caption");
|
||||
tagHandlers["<code" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<code" );
|
||||
tagHandlers["<dd" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<dd" );
|
||||
tagHandlers["<dfn" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<dfn" );
|
||||
tagHandlers["<div" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<div" );
|
||||
tagHandlers["<dl" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<dl" );
|
||||
tagHandlers["<dt" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<dt" );
|
||||
tagHandlers["<em" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<em" );
|
||||
tagHandlers["<form" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<form" );
|
||||
tagHandlers["<hr" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<hr" );
|
||||
tagHandlers["<h1" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<h1" );
|
||||
tagHandlers["<h2" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<h2" );
|
||||
tagHandlers["<h3" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<h3" );
|
||||
tagHandlers["<i" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<i" );
|
||||
tagHandlers["<input" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<input" );
|
||||
tagHandlers["<img" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<img" );
|
||||
tagHandlers["<li" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<li" );
|
||||
tagHandlers["<meta" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<meta" );
|
||||
tagHandlers["<multicol"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<multicol");
|
||||
tagHandlers["<ol" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<ol" );
|
||||
tagHandlers["<p" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<p" );
|
||||
tagHandlers["<pre" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<pre" );
|
||||
tagHandlers["<small" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<small" );
|
||||
tagHandlers["<span" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<span" );
|
||||
tagHandlers["<strong" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<strong" );
|
||||
tagHandlers["<sub" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<sub" );
|
||||
tagHandlers["<sup" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<sup" );
|
||||
tagHandlers["<table" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<table" );
|
||||
tagHandlers["<td" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<td" );
|
||||
tagHandlers["<th" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<th" );
|
||||
tagHandlers["<tr" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<tr" );
|
||||
tagHandlers["<tt" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<tt" );
|
||||
tagHandlers["<kbd" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<kbd" );
|
||||
tagHandlers["<ul" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<ul" );
|
||||
tagHandlers["<var" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<var" );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue