Suffixreglerna ligger på textfilen SLlist
och läses in
av Stava när programmet startas. Det är möjligt att ställa om så
att en egen suffixregelfil används istället för systemets, se
Stavas manual.
Regeln
orna a, an, or
talar till exempel om att Stava ska godkänna ordet dockorna
om det är så att orden docka, dockan och dockor
finns i Stavas ordlista.
En regel består alltså av ett ingångssuffix följt av en lista av
uppslagssuffix. Det tomma suffixet tecknas i en suffixregel som
@
.
Tecknet #
betyder i suffixregelfilen att resten av raden är en
kommentar.
För att förhindra övergenerering (det vill säga att fler ord än avsett passar in) kan man utvidga en regel med diverse tillägg.
~
samma sam, ~samen
~samen
för att förhindra att ord som
balsamma ska godkännas (för balsam finns ju).
[
och ]
.
Notationen är alltså samma som i reguljära uttryck i Unix.
[uå]rna @, n, r, ~dde, ~ra
Kanske ännu mer användbart är möjligheten att förbjuda vissa bokstäver
före suffixet. Ingångssuffixet ska då föregås av dom förbjudna
bokstäverna omgärdade av [^
och ]
.
Exempel: Regeln
[^sxz]s @, en, er
godkänner genitivsuffixet -s när det inte föregås av s,
x eller z.
Detta innebär till exempel att ordet films godkänns men inte
sfinxs.
|
före suffixet (och före eventuellt
[ ]
-uttryck).
(ar)ena e, et, en, ~ar, ~er
Om man vill förbjuda el, en och er före
suffixet -aste så inleder man regeln med
(el|en|er)aste
<B>
allra
först i regeln. Då får orddelen före suffixet till och med vara
tomma strängen.
suffixrule ::= restriction suffix suffixlist restriction ::= [searchfrombeginning] [forbiddenending] [allowedlastletters|forbiddenlastletters] searchfrombeginning ::= '<B>' suffix ::= '@' | letters suffixlist ::= suffix {',' ['~']suffix} forbiddenending ::= '(' letters {'|' letters} ')' allowedlastletters ::= '[' letters ']' forbiddenlastletters ::= '[' '^' letters ']' letters ::= letter {letter}