'+'
, '-'
nebo '?'
dle
módu, ve kterém se nacházejí:...vstupní parametrSignatura není ukončena tečkou, ale oddělovačem nového řádku. Komentář může obsahovat sekce
...výstupní parametr
...vstupně výstupní parametr
Text
, Arg
, Example
.
SekceText
je určena pro detailní popis predikátu. Uvnitř sekce text mohou být řádky formátovány pomocí následujících znaků na jejich počátku:Sekcep
... nový odstavec.
v
... prostředí verbatim (LATEX) resp.<pre>
(HTML). Pokud za sebou takto formátované řádky následují jsou spojenyArg
: za klíčovým slovem je uvedeno jméno argumentu ze signatury predikátu. Následují řádky s detailním popisem predikátu.
SekceExample
: řádek s klíčovým slovem zůstává prázdný. Sekce pokračuje výpisem příkladu. Obsah této sekce je uzavřen v prostředí verbatim (LATEX) resp.<pre>
(HTML).
Ukažme si nakonec příklad dokumentačního komentáře predikátu:
/** expression(+Operators, +Evaluator, ?Wrapper) Text: Parser výrazů obsahujících unární i binární operátory s libovolným počtem priorit. p Z uživatelského zápisu je vygenerován parser, který je následně použit pro rozklad vstupního textu. Dále je pro zpracování v době rozkladu specifikován vyhodnocovač. Arg: Operators: Výčet přípustných operátorů je seznam seznamů definic jednotlivých operátorů. Definice jednoho operátoru je uložena ve struktuře, jejíž funktor udává typ asociativity (xf, yf, fx, fy, xfx, xfy, yfx, yfy), první argument je token ve vstupním textu a druhý parametr funktor fce, která se má použít při vyhodnocování. Definice operátorů o stejné precedenci jsou sdruženy v jednom seznamu. Seznamy operátorů o stejné precedenci jsou konečně uloženy v celkovém výčtu, zde jsou seřazeny od nejvyšší precedence k nejnižší. p Například: v [[yfx("+",'+'),yfx("-",'-')], v [yfx("*",'*'),yfx("/",'/'),yfx("//",'//')], v [fx("!",'!')]] Arg: Evaluator Jméno predikátu, který má provádět vyhodnocování. Example: ?- expression([[yfx("+",'+'),yfx("-",'-')], | [yfx("*",'*'),yfx("/",'/')], | [xfy("^",'^')]], | arieval, | quickS("3^2^2+2*3^6-7/8*9")+L). */a jak bude vysázen v rámci LATEXové dokumentace:
expression/3
expression(+Operators,+Evaluator,?Wrapper)
Parser výrazů obsahujících unární i binární operátory s libovolným počtem priorit.
Z uživatelského zápisu je vygenerován parser, který je následně použit pro rozklad vstupního textu. Dále je pro zpracování v době rozkladu specifikován vyhodnocovač.
Například:
[[yfx("+",'+'),yfx("-",'-')], [yfx("*",'*'),yfx("/",'/'),yfx("//",'//')], [fx("!",'!')]]
?- expression([[yfx("+",'+'),yfx("-",'-')], | [yfx("*",'*'),yfx("/",'/')], | [xfy("^",'^')]], | arieval, | quickS("3^2^2+2*3^6-7/8*9")+L).
dvorka 2013-12-31