Replace DoxygenTranslator debug parameters with a single flags one.

This makes the code more readable and more extensible as more flags are easier
to add in the future than more boolean parameters.

No user-visible changes.
This commit is contained in:
Vadim Zeitlin 2014-06-11 19:36:49 +02:00
commit f684242467
8 changed files with 45 additions and 32 deletions

View file

@ -14,9 +14,9 @@
#include "DoxygenTranslator.h"
DoxygenTranslator::DoxygenTranslator(bool debugTranslator, bool debugParser) :
debug(debugTranslator),
parser(debugParser)
DoxygenTranslator::DoxygenTranslator(int flags) :
m_flags(flags),
parser((flags & debug_parser) != 0)
{}

View file

@ -29,10 +29,23 @@
*/
class DoxygenTranslator {
public:
/*
* Bit flags for the translator ctor.
*
* Derived classes may define additional flags.
*/
enum {
// Use DoxygenParser in "noisy" mode.
debug_parser = 1,
// Output results of translating Doxygen comments.
debug_translator = 2
};
/*
* Constructor
*/
DoxygenTranslator(bool debugTranslator = false, bool debugParser = false);
DoxygenTranslator(int flags = 0);
/*
* Virtual destructor.
@ -56,7 +69,9 @@ public:
String *getDoxygenComment(Node *node);
protected:
bool debug;
// The flags passed to the ctor.
const int m_flags;
DoxygenParser parser;
/*

View file

@ -274,8 +274,8 @@ void JavaDocConverter::fillStaticTables()
"&rarr");
}
JavaDocConverter::JavaDocConverter(bool debugTranslator, bool debugParser) :
DoxygenTranslator(debugTranslator, debugParser)
JavaDocConverter::JavaDocConverter(int flags) :
DoxygenTranslator(flags)
{
fillStaticTables();
}
@ -933,7 +933,7 @@ String *JavaDocConverter::makeDocumentation(Node *node)
// entityList.sort(CompareDoxygenEntities()); sorting currently not used,
if (debug) {
if (m_flags & debug_translator) {
std::cout << "---RESORTED LIST---" << std::endl;
printTree(entityList);
}
@ -964,7 +964,7 @@ String *JavaDocConverter::makeDocumentation(Node *node)
javaDocString += "\n */\n";
if (debug) {
if (m_flags & debug_translator) {
std::cout << "\n---RESULT IN JAVADOC---" << std::endl;
std::cout << javaDocString;
}

View file

@ -22,7 +22,7 @@
*/
class JavaDocConverter : public DoxygenTranslator {
public:
JavaDocConverter(bool debugTranslator = false, bool debugParser = false);
JavaDocConverter(int flags = 0);
String *makeDocumentation(Node *node);
protected:

View file

@ -227,8 +227,8 @@ void PyDocConverter::fillStaticTables()
tagHandlers["&rarr"] = make_pair(&PyDocConverter::handleHtmlEntity, "-->");
}
PyDocConverter::PyDocConverter(bool debugTranslator, bool debugParser) :
DoxygenTranslator(debugTranslator, debugParser), m_tableLineLen(0), m_prevRowIsTH(
PyDocConverter::PyDocConverter(int flags) :
DoxygenTranslator(flags), m_tableLineLen(0), m_prevRowIsTH(
false)
{
fillStaticTables();
@ -665,7 +665,7 @@ String *PyDocConverter::makeDocumentation(Node *n)
result = pyDocString;
if (debug) {
if (m_flags & debug_translator) {
std::cout << "\n---RESULT IN PYDOC---" << std::endl;
std::cout << result;
std::cout << std::endl;

View file

@ -25,7 +25,7 @@
class PyDocConverter : public DoxygenTranslator {
public:
PyDocConverter(bool debugTranslator = false, bool debugParser = false);
PyDocConverter(int flags = 0);
String *makeDocumentation(Node *node);
protected:

View file

@ -261,8 +261,7 @@ public:
SWIG_library_directory("java");
bool debug_doxygen_translator = false;
bool debug_doxygen_parser = false;
int doxygen_translator_flags = 0;
// Look for certain command line options
for (int i = 1; i < argc; i++) {
@ -289,12 +288,12 @@ public:
Swig_mark_arg(i);
doxygen = true;
scan_doxygen_comments = true;
} else if ((strcmp(argv[i], "-debug-doxygen-translator") == 0)) {
Swig_mark_arg(i);
debug_doxygen_translator = true;
} else if ((strcmp(argv[i], "-debug-doxygen-parser") == 0)) {
Swig_mark_arg(i);
debug_doxygen_parser = true;
} else if ((strcmp(argv[i], "-debug-doxygen-translator") == 0)) {
Swig_mark_arg(i);
doxygen_translator_flags |= DoxygenTranslator::debug_translator;
} else if ((strcmp(argv[i], "-debug-doxygen-parser") == 0)) {
Swig_mark_arg(i);
doxygen_translator_flags |= DoxygenTranslator::debug_parser;
} else if ((strcmp(argv[i], "-noproxy") == 0)) {
Swig_mark_arg(i);
proxy_flag = false;
@ -320,7 +319,7 @@ public:
}
if (doxygen)
doxygenTranslator = new JavaDocConverter(debug_doxygen_translator, debug_doxygen_parser);
doxygenTranslator = new JavaDocConverter(doxygen_translator_flags);
// Add a symbol to the parser for conditional compilation
Preprocessor_define("SWIGJAVA 1", 0);

View file

@ -339,8 +339,7 @@ public:
SWIG_library_directory("python");
bool debug_doxygen_parser = false;
bool debug_doxygen_translator = false;
int doxygen_translator_flags = 0;
for (int i = 1; i < argc; i++) {
if (argv[i]) {
@ -436,12 +435,12 @@ public:
doxygen = 1;
scan_doxygen_comments = 1;
Swig_mark_arg(i);
} else if (strcmp(argv[i], "-debug-doxygen-translator") == 0) {
debug_doxygen_translator = true;
Swig_mark_arg(i);
} else if (strcmp(argv[i], "-debug-doxygen-parser") == 0) {
debug_doxygen_parser = true;
Swig_mark_arg(i);
} else if (strcmp(argv[i], "-debug-doxygen-translator") == 0) {
doxygen_translator_flags |= DoxygenTranslator::debug_translator;
Swig_mark_arg(i);
} else if (strcmp(argv[i], "-debug-doxygen-parser") == 0) {
doxygen_translator_flags |= DoxygenTranslator::debug_parser;
Swig_mark_arg(i);
} else if (strcmp(argv[i], "-fastunpack") == 0) {
fastunpack = 1;
Swig_mark_arg(i);
@ -564,7 +563,7 @@ public:
}
if (doxygen)
doxygenTranslator = new PyDocConverter(debug_doxygen_translator, debug_doxygen_parser);
doxygenTranslator = new PyDocConverter(doxygen_translator_flags);
if (!global_name)
global_name = NewString("cvar");