2012-07-11 10 views
7

La mia azienda sviluppa un'API per i programmi di ingegneria. E 'sviluppato in C++, ma creiamo wrapper ad esso per le seguenti lingue:Doxygen per un'API multilingue

  • un linguaggio proprietario che assomiglia VB
  • MATLAB
  • e Python.

Attualmente la documentazione è generata da una serie di script e sta iniziando a richiedere molto tempo per mantenerla al 100%. Mi chiedevo se c'è un modo per ottenere doxygen/sphinx o un altro programma per generare la documentazione per C/C++, VB e MATLAB in un colpo solo. La parte Python è fatta da SWIG. Attualmente l'uscita è qualcosa di simile:

  • NameOfFunction
  • VB:
  • Funzione NameOfFunction (ByVal un As Long, ByRef b() As Long, ByVal c As Long) As Long
  • MATLAB:
  • value = NameOfFunction (a, b(), c)
  • C/C++:
  • valore * NameOfFunction (objtype1 * a, objecttype2 * b [], int c)
  • + Descrizione
  • + Esempi
+0

non c'è uno script di configurazione è possibile modificare per doxygen? – pyCthon

+0

Sì, ma come posso realizzare ciò che voglio. Ho dato un'occhiata a questo, ma non riuscivo a trovare qualcosa che assomigliasse a ciò che volevo. – Mac

risposta

3

doxygen supporta più lingue,

per utilizzare questo su più progetti o le cartelle e le lingue basta puntare doxygen per ogni cartella che si desidera controllato nella configurazione.

Il mio linguaggio di programmazione preferito è X. Posso ancora usare doxygen?

No, non come tale; doxygen ha bisogno di capire la struttura di ciò che legge. Se non ti interessa passare un po 'di tempo, ci sono diverse opzioni:

La lingua X è supportata?

Se la grammatica di X è vicino a C o C++, allora è probabilmente non troppo difficile da modificare src/scanner.l un po 'in modo che la lingua è supportata. Questo viene eseguito per tutte le altre lingue supportate direttamente da doxygen (ad es. Java, IDL, C#, PHP). Se la grammatica di X è leggermente diversa da , puoi scrivere un filtro di input che converte X in qualcosa di simile sufficiente a C/C++ affinché doxygen lo comprenda (questo approccio è preso per VB, Object Pascal e Javascript, vedi http://www.stack.nl/~dimitri/doxygen/download.html#helpers). Se la grammatica è completamente diversa, è possibile scrivere un parser per X e scrivere un backend che produce un albero di sintassi simile a src/scanner.l (e anche da src/tagreader.cpp durante la lettura dei file di tag).

tuttavia dato che si sta utilizzando un VB come proprietaria, potrebbe raccogliere questa lingua su se semplicemente cambiare le estensioni dei file a quella di .vb

Ecco come usarlo con matlab

pitone e C++ sono già supportate

hanno uno sguardo alla F AQ pagina

2

Mi chiedevo se c'è un modo per ottenere doxygen/sphinx o un altro programma per generare la documentazione per c/C++, VB e matlab in una volta sola.

L'editor Zeus ha uno doxygen feature che consente di creare documentazione doxygen per tutti gli elementi nell'area di lavoro di Zeus.

+0

Grazie, ma trovo difficile ottenere che tutti gli sviluppatori inizino a utilizzare altri IDE. – Mac

+0

Trovo molto difficile credere che solo l'uso di un particolare editor creerà magicamente file arbitrari di doxygen. –

+0

In risposta a Ben Voigt: non c'è magia. La funzione che ho descritto non è altro che qualsiasi file aggiunto a uno spazio di lavoro di Zeus verrà inviato a doxygen per l'elaborazione. Quanto bene maneggia il file di ossigeno su quel file, ma Zeus si assicurerà che venga elaborato. Questo è tutto, niente di più niente di meno. – jussij