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" #include "DoxygenTranslator.h"
DoxygenTranslator::DoxygenTranslator(bool debugTranslator, bool debugParser) : DoxygenTranslator::DoxygenTranslator(int flags) :
debug(debugTranslator), m_flags(flags),
parser(debugParser) parser((flags & debug_parser) != 0)
{} {}

View file

@ -29,10 +29,23 @@
*/ */
class DoxygenTranslator { class DoxygenTranslator {
public: 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 * Constructor
*/ */
DoxygenTranslator(bool debugTranslator = false, bool debugParser = false); DoxygenTranslator(int flags = 0);
/* /*
* Virtual destructor. * Virtual destructor.
@ -56,7 +69,9 @@ public:
String *getDoxygenComment(Node *node); String *getDoxygenComment(Node *node);
protected: protected:
bool debug; // The flags passed to the ctor.
const int m_flags;
DoxygenParser parser; DoxygenParser parser;
/* /*

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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