diff --git a/Source/DoxygenTranslator/src/DoxygenParser.cpp b/Source/DoxygenTranslator/src/DoxygenParser.cpp index 80ded041a..8ed186727 100644 --- a/Source/DoxygenTranslator/src/DoxygenParser.cpp +++ b/Source/DoxygenTranslator/src/DoxygenParser.cpp @@ -17,7 +17,7 @@ std::map DoxygenParser::doxygenCommands; std::set DoxygenParser::doxygenSectionIndicators; -DoxygenParser::DoxygenParser() : noisy(false) { +DoxygenParser::DoxygenParser(bool noisy) : noisy(noisy) { fillTables(); } diff --git a/Source/DoxygenTranslator/src/DoxygenParser.h b/Source/DoxygenTranslator/src/DoxygenParser.h index c72ca6fed..5f6432d87 100644 --- a/Source/DoxygenTranslator/src/DoxygenParser.h +++ b/Source/DoxygenTranslator/src/DoxygenParser.h @@ -19,7 +19,7 @@ #include "TokenList.h" class DoxygenParser { public: - DoxygenParser(); + DoxygenParser(bool noisy = false); virtual ~DoxygenParser(); std::list < DoxygenEntity > createTree(std::string doxygen, std::string fileName, int lineNumber); private: diff --git a/Source/DoxygenTranslator/src/DoxygenTranslator.cpp b/Source/DoxygenTranslator/src/DoxygenTranslator.cpp index 18cf24c85..10f6a4585 100644 --- a/Source/DoxygenTranslator/src/DoxygenTranslator.cpp +++ b/Source/DoxygenTranslator/src/DoxygenTranslator.cpp @@ -14,7 +14,8 @@ #include "DoxygenTranslator.h" -DoxygenTranslator::DoxygenTranslator() { +DoxygenTranslator::DoxygenTranslator(bool debugTranslator, bool debugParser) +: debug(debugTranslator), parser(debugParser) { } DoxygenTranslator::~DoxygenTranslator() { } diff --git a/Source/DoxygenTranslator/src/DoxygenTranslator.h b/Source/DoxygenTranslator/src/DoxygenTranslator.h index 637b30a9e..97be4ee35 100644 --- a/Source/DoxygenTranslator/src/DoxygenTranslator.h +++ b/Source/DoxygenTranslator/src/DoxygenTranslator.h @@ -30,7 +30,7 @@ public: /* * Constructor */ - DoxygenTranslator(); + DoxygenTranslator(bool debugTranslator = false, bool debugParser = false); /* * Virtual destructor. */ @@ -52,6 +52,7 @@ public: String *getDoxygenComment(Node *node); protected: + bool debug; /* * Overridden in subclasses to return the documentation formatted for a given * documentation system. diff --git a/Source/DoxygenTranslator/src/JavaDocConverter.cpp b/Source/DoxygenTranslator/src/JavaDocConverter.cpp index 1f0ea9437..165075708 100644 --- a/Source/DoxygenTranslator/src/JavaDocConverter.cpp +++ b/Source/DoxygenTranslator/src/JavaDocConverter.cpp @@ -21,6 +21,7 @@ std::map > Ja void JavaDocConverter::fillStaticTables() { if (tagHandlers.size()) // fill only once + return; // these commands insert HTML tags tagHandlers["a"] = make_pair(&JavaDocConverter::handleTagHtml, "i"); @@ -105,7 +106,8 @@ void JavaDocConverter::fillStaticTables() { } -JavaDocConverter::JavaDocConverter() : debug(false) { +JavaDocConverter::JavaDocConverter(bool debugTranslator, bool debugParser) +: DoxygenTranslator(debugTranslator, debugParser) { fillStaticTables(); } diff --git a/Source/DoxygenTranslator/src/JavaDocConverter.h b/Source/DoxygenTranslator/src/JavaDocConverter.h index cb876ed6b..1d51a8d7b 100644 --- a/Source/DoxygenTranslator/src/JavaDocConverter.h +++ b/Source/DoxygenTranslator/src/JavaDocConverter.h @@ -22,7 +22,7 @@ */ class JavaDocConverter : public DoxygenTranslator { public: - JavaDocConverter(); + JavaDocConverter(bool debugTranslator = false, bool debugParser = false); String *makeDocumentation(Node *node); protected: @@ -88,7 +88,6 @@ protected: private: - bool debug; // this contains the handler pointer and one string argument static std::map > tagHandlers; void fillStaticTables(); diff --git a/Source/DoxygenTranslator/src/PyDocConverter.cpp b/Source/DoxygenTranslator/src/PyDocConverter.cpp index 5dd622760..a873cfb16 100644 --- a/Source/DoxygenTranslator/src/PyDocConverter.cpp +++ b/Source/DoxygenTranslator/src/PyDocConverter.cpp @@ -91,7 +91,8 @@ void PyDocConverter::fillStaticTables() { tagHandlers["n"] = make_pair(&PyDocConverter::handleNewLine, ""); } -PyDocConverter::PyDocConverter() : debug(false) { +PyDocConverter::PyDocConverter(bool debugTranslator, bool debugParser) +: DoxygenTranslator(debugTranslator, debugParser) { fillStaticTables(); } diff --git a/Source/DoxygenTranslator/src/PyDocConverter.h b/Source/DoxygenTranslator/src/PyDocConverter.h index f14a130ac..9787891c8 100644 --- a/Source/DoxygenTranslator/src/PyDocConverter.h +++ b/Source/DoxygenTranslator/src/PyDocConverter.h @@ -25,7 +25,7 @@ class PyDocConverter : public DoxygenTranslator { public: - PyDocConverter(); + PyDocConverter(bool debugTranslator = false, bool debugParser = false); String *makeDocumentation(Node *node); protected: @@ -108,7 +108,6 @@ protected: std::string getParamType(std::string name); private: - bool debug; // temporary thing, should be refactored somehow Node *currentNode; // this contains the handler pointer and one string argument diff --git a/Source/Modules/java.cxx b/Source/Modules/java.cxx index 49a5e9901..c7174d0fc 100644 --- a/Source/Modules/java.cxx +++ b/Source/Modules/java.cxx @@ -163,9 +163,6 @@ public: should be easy to implement though */ director_multiple_inheritance = 0; director_language = 1; - - if (doxygen) - doxygenTranslator = new JavaDocConverter(); } ~JAVA() { @@ -242,6 +239,9 @@ public: SWIG_library_directory("java"); + bool debug_doxygen_translator = false; + bool debug_doxygen_parser = false; + // Look for certain command line options for (int i = 1; i < argc; i++) { if (argv[i]) { @@ -271,6 +271,12 @@ public: Swig_mark_arg(i); doxygen = false; scan_doxygen_comments = false; + } 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], "-noproxy") == 0)) { Swig_mark_arg(i); proxy_flag = false; @@ -296,7 +302,7 @@ public: } if (doxygen) - doxygenTranslator = new JavaDocConverter(); + doxygenTranslator = new JavaDocConverter(debug_doxygen_translator, debug_doxygen_parser); // Add a symbol to the parser for conditional compilation Preprocessor_define("SWIGJAVA 1", 0); @@ -4537,6 +4543,8 @@ const char *JAVA::usage = (char *) "\ Java Options (available with -java)\n\ -doxygen - Convert C++ doxygen comments to JavaDoc comments in proxy classes (default)\n\ -nodoxygen - Don't convert C++ doxygen comments to JavaDoc comments in proxy classes\n\ + -debug-doxygen-parser - Display doxygen parser module debugging information\n\ + -debug-doxygen-translator - Display doxygen translator module debugging information\n\ -nopgcpp - Suppress premature garbage collection prevention parameter\n\ -noproxy - Generate the low-level functional interface instead\n\ of proxy classes\n\ diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx index 5d9a97952..f7c9c00c1 100644 --- a/Source/Modules/python.cxx +++ b/Source/Modules/python.cxx @@ -121,6 +121,8 @@ Python Options (available with -python)\n\ -cppcast - Enable C++ casting operators (default) \n\ -dirvtable - Generate a pseudo virtual table for directors for faster dispatch \n\ -doxygen - Convert C++ doxygen comments to pydoc comments in proxy classes (default) \n\ + -debug-doxygen-parser - Display doxygen parser module debugging information\n\ + -debug-doxygen-translator - Display doxygen translator module debugging information\n\ -extranative - Return extra native C++ wraps for std containers when possible \n\ -fastinit - Use fast init mechanism for classes (default)\n\ -fastunpack - Use fast unpack mechanism to parse the argument functions \n\ @@ -332,6 +334,9 @@ public: SWIG_library_directory("python"); + bool debug_doxygen_parser = false; + bool debug_doxygen_translator = false; + for (int i = 1; i < argc; i++) { if (argv[i]) { if (strcmp(argv[i], "-interface") == 0) { @@ -430,6 +435,12 @@ public: doxygen = 0; scan_doxygen_comments = 0; 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], "-fastunpack") == 0) { fastunpack = 1; Swig_mark_arg(i); @@ -549,7 +560,7 @@ public: } if (doxygen) - doxygenTranslator = new PyDocConverter; + doxygenTranslator = new PyDocConverter(debug_doxygen_translator, debug_doxygen_parser); if (!global_name) global_name = NewString("cvar");