added handling of HTML entities

This commit is contained in:
Marko Klopcic 2013-01-18 22:22:22 +01:00
commit 4955cdaac6
5 changed files with 94 additions and 8 deletions

View file

@ -210,5 +210,33 @@ int htmlFunction(int a, float b)
}
/**
* All entities are treated as commands © ™ ®
* should work also<in text
* >
* &
* '
* "
* ‘
* ’
* “
* &rdaquo;
* –
* —
*  
* ×
* −
* ⋅
* ∼
* ≤
* ≥
* ←
* →
*/
int htmlEntitiesFunction(int a, float b)
{
}
%}

View file

@ -227,6 +227,31 @@ public class doxygen_translate_runme {
" <var> Starts a piece of text displayed in an italic font. \n" +
" </var> \n" +
"");
wantedComments.put("doxygen_translate.doxygen_translate.htmlEntitiesFunction(int, float)",
"All entities are treated as commands &copy; &trade; &reg;\n" +
"should work also&lt;in text \n" +
"&gt; \n" +
"&amp; \n" +
"&apos; \n" +
"&quot; \n" +
"&lsquo; \n" +
"&rsquo; \n" +
"&ldquo; \n" +
"&rdquo; \n" +
"&ndash; \n" +
"&mdash; \n" +
"&nbsp; \n" +
"&times; \n" +
"&minus; \n" +
"&sdot; \n" +
"&sim; \n" +
"&le; \n" +
"&ge; \n" +
"&larr; \n" +
"&rarr; \n" +
"");
// and ask the parser to check comments for us
System.exit(parser.check(wantedComments));
}

View file

@ -1263,16 +1263,15 @@ size_t DoxygenParser::processNormalComment(size_t pos, const std::string &line)
size_t endOfWordPos = line.find_first_not_of("abcdefghijklmnopqrstuvwxyz", pos + 1);
if (endOfWordPos != string::npos) {
if (line[endOfWordPos] == ';') {
addDoxyCommand(m_tokenList, line.substr(pos, endOfWordPos));
addDoxyCommand(m_tokenList, line.substr(pos, endOfWordPos - pos));
endOfWordPos++; // skip ';'
} else {
// it is not an entity - push plain string
m_tokenList.push_back(Token(PLAINSTRING,
line.substr(pos, endOfWordPos - pos)));
pos = endOfWordPos;
}
} else {
pos = string::npos;
}
pos = endOfWordPos;
}
break;
default:

View file

@ -56,8 +56,6 @@ void JavaDocConverter::fillStaticTables() {
*
* entities must be translated - remain in Java, something meaningfull in Python (&lt, ...)
*
* \e at end of line freezes doxygen
*
* - enum inside class is missing comment
* - '\' not representing doxygen commands
* - add comments also to auto-generated methods lilke equals(), delete() in Java,
@ -193,6 +191,31 @@ void JavaDocConverter::fillStaticTables() {
tagHandlers["<kbd" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<kbd" );
tagHandlers["<ul" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<ul" );
tagHandlers["<var" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "<var" );
// HTML entities
tagHandlers["&copy" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&copy");
tagHandlers["&trade"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&trade");
tagHandlers["&reg" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&reg");
tagHandlers["&lt" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&lt");
tagHandlers["&gt" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&gt");
tagHandlers["&amp" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&amp");
tagHandlers["&apos" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&apos");
tagHandlers["&quot" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&quot");
tagHandlers["&lsquo"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&lsquo");
tagHandlers["&rsquo"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&rsquo");
tagHandlers["&ldquo"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&ldquo");
tagHandlers["&rdquo"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&rdquo");
tagHandlers["&ndash"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&ndash");
tagHandlers["&mdash"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&mdash");
tagHandlers["&nbsp" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&nbsp");
tagHandlers["&times"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&times");
tagHandlers["&minus"] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&minus");
tagHandlers["&sdot" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&sdot");
tagHandlers["&sim" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&sim");
tagHandlers["&le" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&le");
tagHandlers["&ge" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&ge");
tagHandlers["&larr" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&larr");
tagHandlers["&rarr" ] = make_pair(&JavaDocConverter::handleDoxyHtmlTag, "&rarr");
}
@ -344,6 +367,12 @@ void JavaDocConverter::handleDoxyHtmlTag(DoxygenEntity& tag, std::string& transl
}
void JavaDocConverter::handleHtmlEntity(DoxygenEntity& tag, std::string& translatedComment, std::string &arg) {
// html entities can be preserved for Java
translatedComment += arg + ';';
}
void JavaDocConverter::handleNewLine(DoxygenEntity&, std::string& translatedComment, std::string&) {
translatedComment += "\n * ";
}

View file

@ -63,8 +63,13 @@ protected:
/* Handles HTML tags recognized by Doxygen, like <A ...>, <ul>, <table>, ... */
void handleDoxyHtmlTag(DoxygenEntity& tag,
std::string& translatedComment,
std::string &arg);
std::string& translatedComment,
std::string &arg);
/* Handles HTML entities recognized by Doxygen, like &lt;, &copy;, ... */
void handleHtmlEntity(DoxygenEntity& tag,
std::string& translatedComment,
std::string &arg);
/*
* Just prints new line