'+', '-' nebo '?' dle
módu, ve kterém se nacházejí:Signatura není ukončena tečkou, ale oddělovačem nového řádku. Komentář může obsahovat sekce...vstupní parametr
...výstupní parametr
...vstupně výstupní parametr
Text, Arg, Example.
SekceTextje 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/3expression(+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