swig/Examples/test-suite/doxygen_misc_constructs.h
Vadim Zeitlin f57b096c92 Fix generated Python code for Doxygen comments with triple quotes
In addition to the changes in the previous commit, also avoid syntax
errors in the generated Python docstrings by splitting them into several
parts if there are 3 quotes in a row in the input, as it's impossible to
have them inside triple-quoted strings, generally speaking (i.e. if
there are occurrences of both """ and ''' inside the string).
2020-03-04 00:57:31 +01:00

102 lines
2.6 KiB
C

/*
* This file contains comments which demonstrate details about Doxygen processing,
* so they can be emulated in SWIG doxy comment translation
*/
/**This comment without space after '*' is valid in Doxygen.
*
*/
void isNoSpaceValidA()
{}
/**.This comment without space after '*' is valid in Doxygen.
*
*/
void isNoSpaceValidB()
{}
/***This is not Doxygen comment.
*
*/
void isNoSpaceValidC()
{}
/**
* Backslash following\c word is a valid doxygen command. Output contains
* 'followingword' with 'word' in code font.
*/
void backslashA()
{}
// Output of escaped symbols below in doxygen generated HTML:
// Rendered: Escaped symbols: $ @ \ & < > # % " \. :: @text ::text
// HTML source: Escaped symbols: $ @ \ &amp; &lt; &gt; # % " \. :: @text ::text
/**
* Doxy command without trailing \cspace space is ignored - nothing appears
* on output. Standalone \ and '\' get to output.
* Standalone @ and '@' get to output.
* Commands "in quoted \b strings are treated as plain text".
* Commands not recognized by Doxygen \blah @blah are ignored.
* Backslashes in DOS paths d:\xyz\qwe\myfile and words
* following them do not appear on output, we must quote them with
* double quotes: "d:\xyz\qwe\myfile", "@something". Single quotes do not help:
* 'd:\xyz\qwe\myfile'. Escaping works: d:\\xyz\\qwe\\myfile. Unix
* paths of course have no such problems: /xyz/qwe/myfile
* Commands for escaped symbols:
* \$ \@ \\ \& \~ \< \> \# \% \" \. \:: \@text \::text
*/
void backslashB()
{}
/**
* Backslash e at end of \e line froze SWIG \e
* with old comment parser.
*
* @see MyClass::fun(char,
* float)
*/
void backslashC()
{}
/**
* The next line contains expression:
* <pre>
* ['retVal < 10', 'g_counter == 23 && g_mode & 3']
*</pre>
*
* Both words should be emphasized \b isystem.connect.
* But not the last period. For \b example, comma should not be emphasized.
* Similar \b for: double colon.
*
* Spaces at the start of line should be taken into account:
* @param id used as prefix in log
* statements. The default value is empty string, which is OK if
* there is only one app. instance. Example:
* <pre>
* ctrl.setBP("func1");
* </pre>
* If we set the id to \c main_, we get:
* <pre>
* main_ctrl.setBP("func1");
* </pre>
*
* @param fileName name of the log file
*/
void cycle(int id, char *fileName)
{}
/// This doc comment ends with a quote: "and that's ok"
void doc_ends_with_quote() {}
/**
This comment contains embedded triple-quoted string:
"""How quaint"""
*/
void doc_with_triple_quotes() {}