diff --git a/Source/DoxygenTranslator/src/DoxygenTranslator.cpp b/Source/DoxygenTranslator/src/DoxygenTranslator.cpp index 8175629d1..3ea92e03b 100644 --- a/Source/DoxygenTranslator/src/DoxygenTranslator.cpp +++ b/Source/DoxygenTranslator/src/DoxygenTranslator.cpp @@ -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) {} diff --git a/Source/DoxygenTranslator/src/DoxygenTranslator.h b/Source/DoxygenTranslator/src/DoxygenTranslator.h index 173bd58f0..7d908ee1f 100644 --- a/Source/DoxygenTranslator/src/DoxygenTranslator.h +++ b/Source/DoxygenTranslator/src/DoxygenTranslator.h @@ -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; /* diff --git a/Source/DoxygenTranslator/src/JavaDocConverter.cpp b/Source/DoxygenTranslator/src/JavaDocConverter.cpp index b5edcb8a2..c7c601b9b 100644 --- a/Source/DoxygenTranslator/src/JavaDocConverter.cpp +++ b/Source/DoxygenTranslator/src/JavaDocConverter.cpp @@ -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; } diff --git a/Source/DoxygenTranslator/src/JavaDocConverter.h b/Source/DoxygenTranslator/src/JavaDocConverter.h index 78bf6bb88..eff00590c 100644 --- a/Source/DoxygenTranslator/src/JavaDocConverter.h +++ b/Source/DoxygenTranslator/src/JavaDocConverter.h @@ -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: diff --git a/Source/DoxygenTranslator/src/PyDocConverter.cpp b/Source/DoxygenTranslator/src/PyDocConverter.cpp index 5320ce7f9..740eb6de2 100644 --- a/Source/DoxygenTranslator/src/PyDocConverter.cpp +++ b/Source/DoxygenTranslator/src/PyDocConverter.cpp @@ -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; diff --git a/Source/DoxygenTranslator/src/PyDocConverter.h b/Source/DoxygenTranslator/src/PyDocConverter.h index 262772e7b..e037db9ce 100644 --- a/Source/DoxygenTranslator/src/PyDocConverter.h +++ b/Source/DoxygenTranslator/src/PyDocConverter.h @@ -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: diff --git a/Source/Modules/java.cxx b/Source/Modules/java.cxx index a2687ab6e..4059ce9c7 100644 --- a/Source/Modules/java.cxx +++ b/Source/Modules/java.cxx @@ -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); diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx index 7a7c63733..e9675a8a7 100644 --- a/Source/Modules/python.cxx +++ b/Source/Modules/python.cxx @@ -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");