Flag format for english ispell dictionaries
English dictionaries for ispell(1) supports 3 prefix and 14 suffix flags. For a detailed description of how ispell handles flags and capitalization, see ispell(5). This manual page only describes flags usable in dictionaries built using the english.aff affix file.
In the following discussion of the flags, let # and @ be "variables" that can stand for any letter. Upper case letters are constants. "..." stands for any string of zero or more letters, but note that no word may exist in the dictionary which is not at least 2 letters long, so, for example, "fly" may not be produced by placing the "Y" flag on "f". Also, no flag is effective unless the word that it creates is at least 4 letters long, so, for example, "wed" may not be produced by placing the "D" flag on "we".
In the following list, an asterisk indicates that a flag participates in cross-product formation (see ispell(5)).
The meaning of the prefix flags is as follows:
... --> re... as in cover --> recover
... --> in... as in firm --> infirm
... --> un... as in able --> unable
The meaning of the suffix flags is as follows:
...e --> ...ive as in create --> creative
if # .ne. e, ...# --> ...#ive as in prevent --> preventive
...e --> ...ion as in create --> creation
...y --> ...ication as in multiply --> multiplication
if # .ne. e or y, ...# --> ...#en as in fall --> fallen
...e --> ...ions as in create --> creations
...y --> ...ications as in multiply --> multiplications
if # .ne. e or y, ...# --> ...#ens as in weak --> weakens
...y --> ...ieth as in twenty --> twentieth
if # .ne. y, ...# --> ...#th as in hundred --> hundredth
...y --> ..ily as in messy --> messily
if # .ne y, ...# --> ...#ly as in quick --> quickly
...e --> ...ing as in file --> filing
if # .ne. e, ...# --> ...#ing as in cross --> crossing
...e --> ...ings as in file --> filings
if # .ne. e, ...# --> ...#ings as in cross --> crossings
...e --> ...ed as in create --> created
if @ .ne. a, e, i, o, or u, ...@y --> ...@ied as in imply --> implied
if # .ne. e or y, or (# = y and @ = a, e, i, o, or u) ...@# --> ...@#ed as in cross --> crossed or convey --> conveyed
...e --> ...est as in late --> latest
if @ .ne. a, e, i, o, or u, ...@y --> ...@iest as in dirty --> dirtiest
if # .ne. e or y, or (# = y and @ = a, e, i, o, or u) ...@# --> ...@#est as in small --> smallest or gray --> grayest
...e --> ...er as in skate --> skater
if @ .ne. a, e, i, o, or u, ...@y --> ...@ier as in multiply --> multiplier
if # .ne. e or y, or (# = y and @ = a, e, i, o, or u) ...@# --> ...@#er as in build --> builder or convey --> conveyer
...e --> ...ers as in skate --> skaters
if @ .ne. a, e, i, o, or u, ...@y --> ...@iers as in multiply --> multipliers
if # .ne. e or y, or (# = y and @ = a, e, i, o, or u) ...@# --> ...@#ers as in build --> builders or slay --> slayers
if @ .ne. a, e, i, o, or u, ...@y --> ...@ies as in imply --> implies
if # .eq. c, s, or t, ...#h --> ...#hes as in lash --> lashes
if # .ne. c, s, or t, ...#h --> ...#hs as in cough --> coughs
if # .eq. s, x, or z, ...# --> ...#es as in fix --> fixes
if # .ne. s, x, z, h, or y, or (# = y and @ = a, e, i, o, or u) ...@# --> ...@#s as in bat --> bats or convey --> conveys
if @ .ne. a, e, i, o, or u, ...@y --> ...@iness as in cloudy --> cloudiness
if # .ne. y, or @ = a, e, i, o, or u, ...@# --> ...@#ness as in late --> lateness or gray --> grayness
... --> ...'s as in dog --> dog's
To summarize more briefly:
Prefixes:
*A - re *I - in *U - un
Suffixes:
V - ive *N - ion, tion, en *X - ions, ications, ens H - th, ieth *Y - ly, ily *G - ing *J - ings *D - ed T - est *R - er *Z - ers *S - s, es, ies *P - ness, iness *M - 's
ispell(1), ispell(5)