1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
\chapter{Programozi dokumentci}
A Hunspell program, illetve a Magyar Myspell
fggvnyknyvtr kpessgeit sajt programjainkhoz
is hozzadhatjuk.
\section{Hunspell csfellet}
A -a kapcsol megadsval a Hunspell program az
Ispell -a kapcsoljnak hatst utnozza, egy kevs
kivteltl eltekintve. Ez az zemmd ad lehetsget
arra, hogy alkalmazsaink a Hunspellt
hasznljk a helyesrs-ellenrzsre.
Ilyenkor a Hunspellt httrben elindtjk az alkalmazsok,
annak ellenrizend szveget adnak t,
majd az ellenrzs vgeredmnyt visszakapva
azt feldolgozzk.
Szmos program l ezzel a lehetsggel: pldul
a KWord, LyX, Emacs (Windows alatt is).
A Hunspell indulsnl kir a standard kimenetre egy
bemutatkoz sort, majd a standard bemenetet
soronknt dolgozza fel. Minden egyes sor utn a
kimeneten a kziknyvoldalon ismertetett informcikat
jelenti meg, amit a sajt programunk (amennyiben
gondoskodtunk a kimenet tirnytsrl) feldolgozhat.
A Hunspell a bemenetet szvegsorknt rtelmezi,
hacsak a bejv sor els karaktere nem egy parancskarakter.
A Hunspell ltal kezelt parancskaraktereket, s
lersukat a kvetkez tblzat ismerteti:
\begin{tabular}{rl}
! & Nem rtelmezi a sort. \\
+ & \TeX zemmd bekapcsolsa. \\
- & Visszalps az elz zemmdba. \\
@ & A jelet kvet sz sztrba kerl a futs idejre.\\
$*$ & A jelet kvet sz sztrba kerl.\\
\# & A sztr elmentsre kerl a sajt sztrllomnyba.\\
\^\ & A jelet kvet sor feldolgozsa.
\end{tabular}
Az \& jel (kisbetsknt val felvtel) mg nincs a Hunspellbe ptve.
Egyb kezdkarakterek esetn a sorok szvegsorknt kerlnek feldolgozsra.
\section{Magyar Myspell fellet}
A Magyar Myspell fellet (API) lehetsget nyjt a
fggvnyknyvtr kzvetlen hasznlatra, br
pr dolgot, mint pldul a sajt sztr elmentst
s betltst, magunknak kell megoldani.
\subsection{Konstruktor}
A felhasznli programban a MySpell osztly
metdusaiknt frhetnk hozz a helyesrs-ellenrzhz.
\noindent\verb+MySpell(const char * affixum, const char * szotar);+
A MySpell osztly konstruktora kt karakterlncot vr paramterknt:
az affixumllomny, s a sztrllomny tvonalt.
\subsection{Metdusok}
\noindent\verb+int spell(const char * alak);+
A megadott sz ellenrzse. Ha a visszatrsi rtk 0, a sz
hibs, egybknt helyes.
\noindent\verb+int suggest(char*** javaslatok, const char * alak);+
Javtsi javaslatok krse a megadott szra. A fggvny visszatrsi rtke
a javaslatok szma, illetve a javaslatokat trol
karakterlnctmb cme. Ez utbbi tmb a fggvnyhvs alatt
kerl lefoglalsra, cme pedig a javaslatok vltozban kerl
elhelyezsre. A tmb felszabadtsrl neknk kell gondoskodni
a ksbbiekben, gyelve arra, hogy a tmb cme NULL is lehet,
ha a helyfoglals memriaproblmk miatt sikertelen volt.
(Tbb szlat kezel programban nem hasznlhat.)
\noindent\verb+int suggest_stems(char*** javaslatok, const char * alak);+
Helyes tvek ellltsa az elz fggvnyhez hasonl szintaxissal.
Ha nincs t, akkor a szt nem ismeri az ellenrz.
\noindent\verb+int suggest_pos_stems(char*** javaslatok, const char * alak);+
Valszn tvek ellltsa az elz fggvnyhez hasonl szintaxissal.
A Magyar Ispell sztrban szerepl nvszragokat prblja levlasztani a
a megadott ismeretlen szrl a program.
\noindent\verb+char * get_dic_encoding();+
Visszaadja a betlttt affixumllomny SET paramtert,
vagyis a belltott karakterkdolst.
(L. man 4 hunspell)
\noindent\verb+char * get_wordchars();+
Visszaadja a belltott karakterkszlet
betkaraktereinek karakterlnct, kiegsztve
az affixumllomny WORDCHARS paramtereknt
megadott karaktereivel. Ez az informci
a szavakra bontshoz hasznos.
\noindent\verb+struct cs_info * get_csconv();+
Visszaadja a betlttt karaktertblt, elssorban
a ksbbi betmret-talaktsokhoz.
(L. \texttt{csutil.cxx}, \texttt{csutil.hxx} a forrsban.)
\noindent\verb+int put_word(const char * alak);+
A megadott sz futsidej felvtelre kerl sor.
Ha az erre biztostott hely elfogy, a visszatrsi rtk 0,
egybknt 1. (Az gy maximlisan felvehet szavak szmt
az \texttt{atypes.hxx} llomny MAXUSERWORD makrja adja meg.)
\noindent\verb+int put_word_suffix(const char * alak, const char * kapcsolok);+
A megadott sz futsidej felvtelre kerl sor, a msodik
paramterknt megadott kapcsolkkal (ezek lehetnek prefixumok is, a
megtveszt nv ellenre).
Pldul \verb+put_word_suffix("leszrpzik","Pp");+
\noindent\verb+int put_word_pattern(const char * alak, const char * alak2);+
A megadott sz futsidej felvtelre kerl sor a msodik
paramterknt megadott sz kapcsolival.
Pldul \verb+put_word_pattern("alfnk","fnk");+
\noindent\verb+char * get_prevroot();+
Visszaadja az elzleg ellenrztt, s helyesnek
tallt sz sztri tvt.
(Tbb szlat kezel programban nem hasznlhat.)
\noindent\verb+int get_prevcompound();+
A visszatrsi rtk 0, ha az elzleg
ellenrztt sz nem sszetett sz volt, klnben 1.
(Tbb szlat kezel programban nem hasznlhat.)
\noindent\verb+int get_forbidden_compound();+
Az elzleg ellenrztt szrl adja meg,
hogy tiltott volt-e, vagy sem (rendelkezett
tiltkapcsolval). Ha nem volt tiltott,
a visszatrsi rtk 0, ha igen, 1, s
ha mg sszetett is volt, akkor 2.
Belsleg annak eldntsre szolgl, hogy
a javaslatokban szkz, vagy ktjel szerepeljen.
A Hunspell pedig annak jelzsre hasznlja, hogy
egyrtelm sztri tiltsrl van sz, megerstve
ezzel a felhasznlt helyes mkdsrl.
\noindent\verb+char * get_possible_root();+
Visszaadja az elzleg ellenrztt szra illeszked
els ragozsi szably alapjn elll tvet.
Ez a fggvny a ksbbiekben bvtve lesz.
(Tbb szlat kezel programban nem hasznlhat.)
\subsubsection{Pldaprogram}
A fggvnyknyvtr \texttt{example.cxx} programja rvid sszefoglalst
adja a fontosabb fggvnyeknek:
\verbatiminput{example.txt}
|