jspell - jspell affix file format
table := [headers] [prefixes] [sufixes] headers := [options] char-sets options := {fmtr-stmt|bool-stmt|flag-stmt|num-stmt} fmtr-stmt := {nroff-stmt|tex-stmt} nroff-stmt := {nroffchars|troffchars} string tex-stmt := {TeXchars|texchars} string bool-stmt := {cmpnd-stmt|aff-stmt} cmpnd-stmt := compoundwords on-or-off aff-stmt := allafixes on-or-off on-or-off := {on|off} flag-stmt := flagmarker character num-stmt := compoundmin digit char-sets := norm-sets [alt-sets] norm-sets := [deftype] charset-group deftype := defstringtype name deformatter suffix* charset-group := {char-stmt|string-stmt|dup-stmt}* char-stmt := wordchars character-range | wordchars lowercase-range uppercase-range | boudarychars character-range | boundarychars lowercase-range uppercase-range string-stmt := stringchar string | stringchar lowercase-string uppercase-string alt-sets := alttype [alt-stmt*] alttype := altstringtype name suffix* alt-stmt := altstringchar alt-string std-string prefixes := prefixes flagdef* suffixes := suffixes flagdef* flagdef := flag [*|+] char : [; classification] repl* repl := condition* > [- string-string,] append-string [; classification]
This grammar is the jspell portion that differs from the ispell one that can be found, complete and commented on ispell manual.
The power of affix files was augmented using a classification option field that is, not more than a string (between quotes) where we can write anything but, for usability, should contain the word classification.
Example:
flag p: ; "CAT=adj_nc" I L > -L, S ; "N=p" # il->is (funil ---> funis)
In this case, "N=p" means that the application of this rule, the word number (N) will be plural (p). The CAT=adj_nc string is only usefull when using the -c flag or when using the library get_roots(...) function.
N
p
CAT=adj_nc
-c
get_roots(...)
Another change was adding the + operator that provides a way that a flag can be used on a flagged word, or, in another words, mean it can be suffixed.
+
We should thanks Pace Willisson and Geoff Kuenning for putting ispell as a open source application, from where much of this application code was borrowed.
ispell
Ulisses Pinto J.Joao Almeida <jj@di.uminho.pt>
See the following man pages: jspell(1), perl(1), agrep(1)
We wait for them at any of the author e-mails!
To install Lingua::Jspell, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lingua::Jspell
CPAN shell
perl -MCPAN -e shell install Lingua::Jspell
For more information on module installation, please visit the detailed CPAN module installation guide.