Added nice doxygen debug switching (-debug-doxygen-parser and -debug-doxygen-translator)

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2012-doxygen@13427 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Dmitry Kabak 2012-07-29 13:48:03 +00:00
commit 3fbe45f0c6
10 changed files with 37 additions and 15 deletions

View file

@ -17,7 +17,7 @@ std::map<std::string, DoxyCommandEnum> DoxygenParser::doxygenCommands;
std::set<std::string> DoxygenParser::doxygenSectionIndicators;
DoxygenParser::DoxygenParser() : noisy(false) {
DoxygenParser::DoxygenParser(bool noisy) : noisy(noisy) {
fillTables();
}

View file

@ -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:

View file

@ -14,7 +14,8 @@
#include "DoxygenTranslator.h"
DoxygenTranslator::DoxygenTranslator() {
DoxygenTranslator::DoxygenTranslator(bool debugTranslator, bool debugParser)
: debug(debugTranslator), parser(debugParser) {
}
DoxygenTranslator::~DoxygenTranslator() {
}

View file

@ -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.

View file

@ -21,6 +21,7 @@ std::map<std::string, std::pair<JavaDocConverter::tagHandler, std::string > > 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();
}

View file

@ -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<std::string, std::pair<tagHandler, std::string> > tagHandlers;
void fillStaticTables();

View file

@ -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();
}

View file

@ -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

View file

@ -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\

View file

@ -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");