mirror of https://github.com/swig/swig
91 lines
2.3 KiB
C++
91 lines
2.3 KiB
C++
/* -----------------------------------------------------------------------------
|
|
* This file is part of SWIG, which is licensed as a whole under version 3
|
|
* (or any later version) of the GNU General Public License. Some additional
|
|
* terms also apply to certain portions of SWIG. The full details of the SWIG
|
|
* license and copyrights can be found in the LICENSE and COPYRIGHT files
|
|
* included with the SWIG source code as distributed by the SWIG developers
|
|
* and at http://www.swig.org/legal.html.
|
|
*
|
|
* doxytranslator.h
|
|
*
|
|
* Module to return documentation for nodes formatted for various documentation
|
|
* systems.
|
|
* ----------------------------------------------------------------------------- */
|
|
|
|
#ifndef DOXYGENTRANSLATOR_H_
|
|
#define DOXYGENTRANSLATOR_H_
|
|
|
|
#include "swig.h"
|
|
#include "doxyentity.h"
|
|
#include "doxyparser.h"
|
|
#include <list>
|
|
#include <string>
|
|
|
|
|
|
/*
|
|
* This is a base class for translator classes. It defines the basic interface
|
|
* for translators, which convert Doxygen comments into alternative formats for
|
|
* target languages.
|
|
*/
|
|
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(int flags = 0);
|
|
|
|
/*
|
|
* Virtual destructor.
|
|
*/
|
|
virtual ~DoxygenTranslator();
|
|
|
|
/*
|
|
* Return the documentation for a given node formatted for the correct
|
|
* documentation system.
|
|
*/
|
|
String *getDocumentation(Node *node, const_String_or_char_ptr indentationString);
|
|
|
|
/*
|
|
* Returns true if the specified node has comment attached.
|
|
*/
|
|
bool hasDocumentation(Node *node);
|
|
|
|
/*
|
|
* Get original comment string in Doxygen-format.
|
|
*/
|
|
String *getDoxygenComment(Node *node);
|
|
|
|
protected:
|
|
// The flags passed to the ctor.
|
|
const int m_flags;
|
|
|
|
DoxygenParser parser;
|
|
|
|
/*
|
|
* Returns the documentation formatted for a target language.
|
|
*/
|
|
virtual String *makeDocumentation(Node *node) = 0;
|
|
|
|
/*
|
|
* Prints the details of a parsed entity list to stdout (for debugging).
|
|
*/
|
|
void printTree(const DoxygenEntityList &entityList);
|
|
|
|
void extraIndentation(String *comment, const_String_or_char_ptr indentationString);
|
|
};
|
|
|
|
#endif
|