stringtranslate.com

Доксиген

Doxygen ( / ˈ d ɒ k s i ən / DOK -see-jən ) [3]генератор документации [4] [5] [6] [7] и инструмент статического анализа деревьев исходного кода программного обеспечения . При использовании в качестве генератора документации Doxygen извлекает информацию из специально отформатированных комментариев внутри кода. При анализе Doxygen использует свое дерево разбора для создания диаграмм и диаграмм структуры кода. Doxygen может перекрестно ссылаться на документацию и код, чтобы читатель документа мог легко обратиться к фактическому коду.

Doxygen — бесплатное программное обеспечение , выпущенное на условиях GNU General Public License версии  2 (GPLv2).

Дизайн

Как и Javadoc , Doxygen извлекает документацию из комментариев исходного файла. В дополнение к синтаксису Javadoc, Doxygen поддерживает теги документации, используемые в наборе инструментов Qt , и может генерировать выходные данные на языке гипертекстовой разметки ( HTML ), а также в скомпилированной HTML-справке Microsoft (CHM), расширенном текстовом формате (RTF), переносимом формате документов. (PDF), LaTeX , PostScript или справочные страницы .

Использование

Языки программирования , поддерживаемые Doxygen, включают C , [8] C++ , C# , D , Fortran , IDL , Java , Objective-C , [9] Perl , [10] PHP , [11] Python , [12] [13] и VHDL. . [11] Другие языки могут поддерживаться с помощью дополнительного кода.

Doxygen работает на большинстве Unix-подобных систем, macOS и Windows .

Первая версия Doxygen заимствовала код из ранней версии DOC++, разработанной Роландом Вундерлингом и Малте Цёклером в Институте Цузе в Берлине . Позже код Doxygen был переписан Дмитрием ван Хешем.

Doxygen имеет встроенную поддержку создания диаграмм наследования для классов C++. Для более сложных диаграмм и графиков Doxygen может использовать инструмент «точка» из Graphviz . [14]

Пример кода

Общий синтаксис комментариев к документации заключается в том, что комментарий начинается с дополнительной звездочки после ведущего разделителя комментариев '/*':

/** <Краткое однострочное описание><Подробное описание> <При необходимости может занимать несколько строк или абзацев>@param Описание входного параметра метода или функции @param ... @return Описание возвращаемого значения */

Многие программисты любят отмечать начало каждой строки пробелом-звездочкой-пробелом, как показано ниже, но в этом нет необходимости.

/** * < Короткое однострочное описание> * * <Подробное описание > * <При необходимости может охватывать несколько строк или абзацев> * * @param Описание входного параметра метода или функции * @param ... * @return Описание возвращаемое значение */

Многие программисты избегают использования комментариев в стиле C и вместо этого используют однострочные комментарии в стиле C++. Doxygen принимает комментарии с дополнительной косой чертой как комментарии Doxygen.

/// < Короткое описание в одну строку> /// /// <Длинное описание> /// <При необходимости может охватывать несколько строк или абзацев> /// /// @param Описание входного параметра метода или функции /// / @param ... /// @return Описание возвращаемого значения

Ниже показано, как можно документировать исходный файл C++ .

Скриншот того, как будет выглядеть результат в HTML.
/** * @file * @author John Doe <[email protected]> * @version 1.0 * * @section LICENSE * * Эта программа является свободным программным обеспечением; вы можете распространять его и/или * изменять его в соответствии с условиями Стандартной общественной лицензии GNU, * опубликованной Фондом свободного программного обеспечения; либо версия 2 * Лицензии, либо (по вашему выбору) любая более поздняя версия. * * Данная программа распространяется в надежде, что она будет полезна, но * БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии * ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. Дополнительную информацию см. в GNU * General Public License по адресу * https://www.gnu.org/copyleft/gpl.html * * @section ОПИСАНИЕ * * Класс времени представляет момент времени. */время учебы {   общественность : /**  * Конструктор, который устанавливает время в заданное значение.  *  * @param timemillis — количество миллисекунд  , * прошедшее с 1 января 1970 года.  */ Time ( int timemillis ) { // код }       /**  * Получить текущее время.  *  * @return Объект времени, установленный на текущее время.  */ static Time now () { // код } };       

Альтернативный подход к документированию параметров показан ниже. Он выдаст ту же документацию.

 /**  * Конструктор, который устанавливает время в заданное значение.  */ Time ( int timemillis ///< Количество миллисекунд, прошедших с 1 января 1970 года.> ) { // код }        

Также возможна более богатая разметка. Например, добавьте уравнения с помощью команд LaTeX :

/** * * Встроенное уравнение @f$ e^{\pi i}+1 = 0 @f$ * * Отображаемое уравнение: @f[ e^{\pi i}+1 = 0 @f] * * /

Источник и разработка Doxygen

Исходники Doxygen в настоящее время размещены на GitHub , где главный разработчик Дмитрий ван Хиш вносит свой вклад под именем пользователя «doxygen». [15] Doxygen написан на C++ и состоит из около 300 000 строк исходного кода . Для лексического анализа стандартный инструмент Lex (или его замена Flex) запускается с помощью примерно 35 000 строк сценария lex. Инструмент синтаксического анализа Yacc ( или его замена Bison) также используется, но только для второстепенных задач; основная часть синтаксического анализа языка выполняется собственным кодом C++. Процесс сборки основан на CMake , а также включает в себя некоторые скрипты Python.

Смотрите также

Рекомендации

  1. ^ АНОНС: doxygen 0.1. Архивировано 4 октября 2011 г. в Wayback Machine . Анонс: первый выпуск Doxygen, системы документации C++. , От: Дмитрий ван Хиш, Дата: воскресенье, 26 октября 1997 г., Архив Qt-interest
  2. ^ "Выпуск Doxygen 1.10.0" . 25 декабря 2023 г. Проверено 25 декабря 2023 г.
  3. ^ «Руководство по Doxygen: Часто задаваемые вопросы» . www.doxygen.nl .
  4. ^ Перкель, Джеффри М. (22 ноября 2015 г.). «Начни с программой: советы по добавлению кодирования в свой арсенал анализа». Ученый ( Журнал ). Ученый.
  5. ^ Сабин, Михаэла (22 ноября 2015 г.). «Доксиген». OpenComputing ( Вики ). Университет Нью-Гэмпшира. Архивировано из оригинала 23 ноября 2015 г.
  6. ^ "Доксиген". Каталог свободного программного обеспечения ( Вики ). 2015-11-22.
  7. ^ «Документация». Розеттский кодекс ( Вики ). 2015-11-22.
  8. ^ «Документация: C». Розеттский кодекс ( Вики ). 2015-11-22.
  9. ^ «Документация: Objective-C». Розеттский кодекс ( Вики ). 2015-11-22.
  10. ^ «Doxygen::Filter::Perl — предварительный фильтр кода Perl для Doxygen — Metacpan.org» . Metacpan.org .
  11. ^ ab «Руководство по Doxygen: Начало работы». www.doxygen.nl .
  12. ^ «Инструменты автоматического создания документации API Python» . Вики-сайт python.org ( Вики ). 2015-11-22.
  13. ^ Браун, Эрик В. «doxypypy: фильтр Doxygen для Python» - через PyPI.
  14. ^ «Руководство Doxygen: графики и диаграммы» . www.doxygen.nl .
  15. ^ "Доксиген/Доксиген" . 9 июня 2021 г. — через GitHub.

Внешние ссылки