Doxygen для многоязычного API

моя компания разрабатывает API для инженерных программ. Он разработан на C++, но мы создаем к нему обертки для следующих языков:

  • собственный язык, который напоминает VB
  • MATLAB
  • и Python.

В настоящее время документация генерируется кучей скриптов, и она начинает занимать много времени, чтобы сохранить ее на 100%. Мне было интересно, есть ли способ получить doxygen/sphinx или другую программу для генерации документация для C / C++, VB и MATLAB на одном дыхании. Часть Python выполняется SWIG. В настоящее время вывод примерно такой:

  • NameOfFunction
  • В. Б.:
  • NameOfFunction функции(бывал с тех пор , как byref б() до тех пор, как byval C как долго) как долго
  • MATLAB:
  • value = NameOfFunction (a,b (), c)
  • C / C++:
  • значение * NameOfFunction (objtype1 *a, objecttype2 *b [], int c)
  • +описание
  • +примеры

3 ответов


doxygen поддерживает несколько языков,

чтобы использовать это в нескольких проектах или папках и языках, вы просто указываете doxygen на каждую папку, которую вы хотите проверить в конфигурации.

мой любимый язык программирования X. могу ли я по-прежнему использовать doxygen?

нет, не как таковой; доксиген должен понимать структуру того, что он читает. Если вы не против потратить на это время, есть несколько вариантов:

язык X поддерживается?

Если грамматика X близка к C или C++, то это, вероятно, не слишком трудно настроить src / сканер.l немного, чтобы язык поддерживался. Этот выполняется для всех других языков, напрямую поддерживаемых doxygen (т. е. Java, IDL, C#, PHP). Если грамматика X несколько отличается от вы можете написать входной фильтр, который преобразует X во что-то подобное достаточно C / C++ для понимания doxygen (этот подход взят для VB, Object Pascal, and Javascript, см. http://www.stack.nl / ~dimitri / doxygen / загрузить.html#помощники). Если грамматика совершенно другая, можно написать парсер для X и напишите бэкэнд, который создает аналогичное синтаксическое дерево, как это делается в src/сканер.l (а также src / tagreader.cpp при чтении файлов тегов).

однако, поскольку вы используете VB как проприетарный , он может выбрать этот язык, если вы просто измените расширения файлов на .vb

вот как использовать его с matlab

python и c++ уже поддерживаются

посмотрите на FAQ страница


на сайте Doxygen есть страница со ссылками на сторонних помощников для разных языков, которые вы можете адаптировать:

http://www.stack.nl / ~dimitri/doxygen/helpers.html

там упоминаются фильтры VB и MatLab.


мне было интересно, есть ли способ получить doxygen/sphinx или другую программу для создания документации для c/C++, VB и matlab на одном дыхании.

редактор Zeus имеет функция doxygen это позволяет создавать документацию doxygen для всех элементов в рабочей области Zeus.