[voikko-devel] Suomi-malagoiden yhdistäminen
Harri Pitkänen
hatapitk at cc.jyu.fi
Thu Dec 28 13:24:17 EET 2006
Hyvää joulun jälkeistä aikaa kaikille!
SMV sisältää nyt Suomi-malagan versiosta 0.9.7 otetut taivutuskaavat, mutta
niitä ei vielä ole otettu käyttöön. Olen kyllä siirtänyt monia muitakin
muutoksia Hannun versiosta omaamme, mutta erot näiden versioiden välillä ovat
kasvaneet niin suuriksi että en voi tehdä koko siirtoa kerralla. Näyttäisi
siis olevan Hannun vuoro tehdä muutamia korjauksia, jotta pääsen taas
etenemään.
Ensimmäinen toive olisi se, että muutokset versiosta 0.9.7 eteen päin
tehtäisiin julkisessa versionhallintajärjestelmässä. Viimeisimpien 0.9-sarjan
versioiden välillä on nimittäin tapahtunut sellaisia muutoksia, joiden
jäljittäminen on osoittautunut kovin työlääksi. Lähinnä tarkoitan tiedostoa
suomi.lex, jossa samassa versiossa on sekä muutettu rivejä että siirretty
niitä paikasta toiseen, jolloin diffeistä ei enää ole paljonkaan iloa.
Muutokset ja uudelleenjärjestelyt olisi parempi tehdä erikseen, ja tässä
versionhallinnasta on paljon apua.
Taivutuskaavojen generointiin haluaisin sellaisen muutoksen, että tiedostoa
suomi.all muodostettaessa ei tarpeettomasti yhdisteltäisi shell-skriptejä ja
malagan include-mekanismia. Nythän generoi.sh muodostaa tiedoston
suomi-all.gen, joka sitten includella lisätään tiedostoon suomi.all.
Kuitenkin myös generoi.sh yhdistelee useampia tiedostoja toisiinsa. Eikö
olisi siis suoraviivaisempaa kirjoittaa generoi.sh muotoon
cat taivutuskaavat/ALKU.TXT > suomi.all
taivutuskaavat/ast.pl ... >> suomi.all
cat taivutuskaavat/KESKIOSA.TXT >> suomi.all
taivutuskaavat/txt.pl ... >> suomi.all
cat taivutuskaavat/LOPPU.TXT >> suomi.all
Tästä olisi se käytännön etu, että voisin toistaiseksi jättää SMV:n tiedoston
suomi.all sellaisenaan paikalleen, ja generoi.sh ylikirjoittaisi sen vain jos
sitä kutsutaan erikseen. Menee kuitenkin vielä varmasti jonkun aikaa ennen
kuin SMV:ssä voidaan oikeasti alkaa tuota skriptiä käyttämään.
Tiedosto subrule.inc on SMV:ssä korvattu hakemistolla inc, jossa on kolme
tiedostoa. all.inc sisältää vain tiedostossa suomi.all tarvittavia
apufunktioita, mor.inc vastaavia apufunktioita tiedostolle voikko-fi_FI.mor
ja subrule.inc sisältää apufunktioita joita tarvitaan molemmissa. Näin
varsinaiset .all- ja .mor-tiedostot pysyvät hiukan luettavampina, mutta
vältymme myös malagan käyttämättä jääviä sääntöjä koskevilta varoituksilta.
Mielestäni tämän järjestelyn voisi kopioida jotakuinkin sellaisenaan Hannun
versioon.
Tiedoston suomi.all subrule lajittele ei toimi kommenteissa sanotulla tavalla,
koska sen lopussa on koodinpätkä
define $t := <>;
foreach $i in $r:
if (nimentö in $i.2) then
$i.2 :=+ <liitesana, loppu>;
end;
$t :=+ <<$i.1, $i.2>>;
end;
return $t;
Tämä pitäisi varmaankin siirtää jonnekin muualle, jonka jälkeen subrule
lajittele voitaisiin kokonaisuudessaan siirtää tiedostoon inc/all.inc, koska
se on yleiskäyttöinen apufunktio.
Harri
More information about the devel
mailing list