2015-06-27 66 views
2

我一直在努力使doxygenprolog一起工作。如何使用Doxygen和Prolog

起初我只是想有一個「外部的和未知的」文件,但doxygen的用戶都知道,它不會打印的事情,如果它不能找到有用的(記錄)的功能。

兩個標籤搜索計算器給沒有單一的答案,所以我決定要問,即使我已經解決了這個難題,所以人們會在搜索的情況下,有一個打擊。

我會在這裏讓這個問題,因爲人們可以提出簡單的解決方法,我們可以學習一些有關的主題,但我會用它之後的一些(硬)的努力來註冊自己的答案。謝謝。


要解釋,我的確開始:

我的第一個(幾乎)成功的方法在使用這兩種CPROLOG程序工作正常。

它幾乎工作,因爲後者上我看到了這種做法不會在PROLOG唯一項目。

不管怎樣,我所做的只是添加此

INPUT = README.md groups.dox c-and-pl.c c-and-pl.pl 
FILE_PATTERNS = *.pl 
EXTENSION_MAPPING += pl=c 
EXTRACT_ALL = YES 
EXTRACT_STATIC = YES 
SOURCE_BROWSER = YES 

而且PROLOG代碼是這樣:

/** 
* @file cpl.pl 
* @ingroup GroupUnique 
* @brief CPL - C calls Prolog (Prolog module) 
* @cond SKIPPROLOG 
*/ 

/* brief explanation in a normal (non-doxygen) comment */ 
clause(A) :- 
    rule(X), 
    test(A, X). 

and(so, on). 

/** @endcond */ 

這工作,因爲C無論如何都會創建網站,並PROLOG頁面會只是一個簡短的,沒有條款,而是一個鏈接,看到完整的代碼,用正常的評論解釋條款。

爲什麼這不適用於純粹PROLOG項目?以及如何做到這一點?

回答

0

我解決這個問題所涉及的創建一個新的文件,原來PROLOG源代碼的副本,但在doxygen格式的註釋,並在一些C-like轉換PROLOG條款的第二次嘗試。

呼叫源source.pl和第二個副本source.dox。你會寫PROLOG程序,你通常會做,每一個條款,原子,模塊的第一次出現之前,使用doxygen

然後cp source.pl source.dox和編輯source.dox將所有條款中是這樣的:

/** 
* \file source.pl 
* \ingroup GroupUnique 
*/ 

/** 
* \ingroup GroupUnique 
* \brief Defining factorial module 
*/ 
module(fatorial, [fatpl/2]); 

這需要時間並且容易出錯,但這是一種解決方法。問題是doxygen現在列出source.pl兩次。但功能可以記錄。使用此配置:

INPUT = README.md groups.dox source.pl source.dox

你需要保持source.pl,因爲它的存在可以看到的真正根源。而source.dox會更像是C header file


不好。將source.pl手動轉換爲source.dox的工作讓我編寫了自己的編譯器(從技術上講,它只使用詞法標記)。

該計劃是開放源碼在github上:

https://github.com/drbeco/doxygenprolog

,並在這裏引用其他濾光片的官方網頁:這裏doxygen helpers

和一張小紙條,在官方SWI- Prolog網站: SWI-Prolog news

要使doxygen以未知語言工作,您需要:

  • 將此過濾器安裝在某處PATH可以找到。
  • 編輯您的doxygen .cfg有:

    OPTIMIZE_OUTPUT_FOR_C = NO

    INPUT = README.md groups.dox source.pl

    EXTRACT_ALL = YES

    EXTRACT_STATIC = YES

    FILE_PATTERNS = * .pl * .prolog * .swipl

    FILTER_PATTERNS = * =特等 「dox4pl」

  • 現在可以運行你的doxygen,你通常與其他語言做。