# Suomi-malaga, suomen kielen muoto-opin kuvaus.
#
# Tekijänoikeus © 2006-2007 Hannu Väisänen (Etunimi.Sukunimi@joensuu.fi)
# 2006-2010 Harri Pitkänen (hatapitk@iki.fi)
#
# Tämä ohjelma on vapaa; tätä ohjelmaa on sallittu levittää
# edelleen ja muuttaa GNU yleisen lisenssin (GPL lisenssin)
# ehtojen mukaan sellaisina kuin Free Software Foundation
# on ne julkaissut; joko Lisenssin version 2, tai (valinnan
# mukaan) minkä tahansa myöhemmän version mukaisesti.
#
# Tätä ohjelmaa levitetään siinä toivossa, että se olisi
# hyödyllinen, mutta ilman mitään takuuta; ilman edes
# hiljaista takuuta kaupallisesti hyväksyttävästä laadusta tai
# soveltuvuudesta tiettyyn tarkoitukseen. Katso GPL
# lisenssistä lisää yksityiskohtia.
#
# Tämän ohjelman mukana pitäisi tulla kopio GPL
# lisenssistä; jos näin ei ole, kirjoita osoitteeseen Free
# Software Foundation Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# Tämän ohjeman linkittäminen staattisesti tai dynaamisesti
# muihin moduuleihin on ohjelmaan perustuvan teoksen
# tekemistä, joka on siis GPL lisenssin ehtojen alainen.
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING. If not, write to the
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#
# Linking this program statically or dynamically with other modules is
# making a combined work based on this program. Thus, the terms and
# conditions of the GNU General Public License cover the whole
# combination.
include "config.inc";
include "suomi.inc";
include "subrule.inc";
# Palauttaa annetusta tietueesta johdoksissa tarvittavat lähtötiedot
subrule johdoksen_lähtötiedot($tietue):
if (@voikko_debug) then
return [lähtöluokka: $tietue.luokka, lähtösana: $tietue.perusmuoto];
else
return [lähtöluokka: $tietue.luokka];
end;
end;
# Aputaulukko funktiolle luku_sijasta
define @luku_sijasta_muunnostaulu :=
[nimentö: yksikkö,
nimentö_t: monikko,
nimentö_tkA: monikko,
omanto_n: yksikkö,
omanto_nkA: yksikkö,
omanto_ien: monikko,
omanto_jen: monikko,
omanto_en: monikko,
omanto_in: monikko,
omanto_ten: monikko,
omanto_iT: monikko,
omanto_idän: monikko,
kohdanto_idät: monikko,
kohdanto_t: yksikkö,
osanto_A: yksikkö,
osanto_AA: yksikkö,
osanto_iA: monikko,
osanto_jA: monikko,
osanto_ttA: yksikkö,
osanto_itA: monikko,
osanto_tA: yksikkö,
olento_nA: yksikkö,
olento_inA: monikko,
tulento_ksi: yksikkö,
sisäolento_ssA: yksikkö,
sisäolento_nA: yksikkö,
sisäeronto_tA: yksikkö,
sisätulento_Vn: yksikkö,
sisätulento_VVn: yksikkö,
sisätulento_hVn: yksikkö,
sisätulento_iin: monikko,
sisätulento_ihin: monikko,
sisätulento_seen: yksikkö,
sisätulento_isiin: monikko,
sisätulento_sen: yksikkö,
sisätulento_isin: monikko,
sisätulento_nne: monikko,
vajanto_ttA: yksikkö,
vajanto_ittA: monikko,
seuranto_ine: monikko,
keinonto_n: yksikkö,
tulento_s: yksikkö,
ulkopaikallissija_llA: yksikkö,
ulkopaikallissija_illA: monikko
];
# Palauttaa annettua sijasymbolia vastaavan luvun
subrule luku_sijasta($sija):
return @luku_sijasta_muunnostaulu.$sija;
end;
# Kaikista nimisanoista johdetaan laatusana tOn-johtimella, esim: valo+ton.
# Laatusanoista johdetaan nimisana (U)Us-johtimella,
# esim: korkea => korkeus, matala => mataluus.
# Taivutuskaavoissa, joissa ei ole laatusanoja, ei ole (U)Us-johdinta.
allo_rule generate_allos ($tietue):
if (($tietue.tiedot /= nil) and
((murre in $tietue.tiedot and switch(voikko_murre) = no) or
(ei_voikko in $tietue.tiedot and switch(sukijan_muodot) = no))) then
stop;
elseif ($tietue.luokka = etuliite) then
if (last($tietue.alku) = "-") then
result $tietue.alku, $tietue - alku;
else
result $tietue.alku, $tietue - alku + [jatko: $tietue.jatko + <tavuviiva>];
end;
elseif (valo in $tietue.jatko) then
choose $i in valo ($tietue, "", "");
result $i.alku, $i - alku;
elseif (aalto in $tietue.jatko) then
choose $i in valo ($tietue, tO($tietue), lO($tietue));
result $i.alku, $i - alku;
elseif (alku in $tietue.jatko) then
choose $i in valo ($tietue, kU($tietue), U($tietue));
result $i.alku, $i - alku;
elseif (anto in $tietue.jatko) then
choose $i in valo ($tietue, tO($tietue), nO($tietue));
result $i.alku, $i - alku;
elseif (apu in $tietue.jatko) then
choose $i in valo ($tietue, pU($tietue), vU($tietue));
result $i.alku, $i - alku;
elseif (hanko in $tietue.jatko) then
choose $i in valo ($tietue, kO($tietue), gO($tietue));
result $i.alku, $i - alku;
elseif (hattu in $tietue.jatko) then
choose $i in valo ($tietue, tU($tietue), U($tietue));
result $i.alku, $i - alku;
elseif (hinku in $tietue.jatko) then
choose $i in valo ($tietue, kU($tietue), gU($tietue));
result $i.alku, $i - alku;
elseif (hoppu in $tietue.jatko) then
choose $i in valo ($tietue, pU($tietue), U($tietue));
result $i.alku, $i - alku;
elseif (kaarto in $tietue.jatko) then
choose $i in valo ($tietue, tO($tietue), rO($tietue));
result $i.alku, $i - alku;
elseif (kippo in $tietue.jatko) then
choose $i in valo ($tietue, pO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (koko in $tietue.jatko) then
choose $i in koko ($tietue, kO($tietue), O($tietue), kO($tietue), zO($tietue));
result $i.alku, $i - alku;
elseif (kumpu in $tietue.jatko) then
choose $i in valo ($tietue, pU($tietue), mU($tietue));
result $i.alku, $i - alku;
elseif (laatu in $tietue.jatko) then
choose $i in valo ($tietue, tU($tietue), dU($tietue));
result $i.alku, $i - alku;
elseif (lepo in $tietue.jatko) then
choose $i in valo ($tietue, pO($tietue), vO($tietue));
result $i.alku, $i - alku;
elseif (leuto in $tietue.jatko) then
choose $i in valo ($tietue, tO($tietue), dO($tietue));
result $i.alku, $i - alku;
elseif (liitto in $tietue.jatko) then
choose $i in valo ($tietue, tO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (lintu in $tietue.jatko) then
choose $i in valo ($tietue, tU($tietue), nU($tietue));
result $i.alku, $i - alku;
elseif (luku in $tietue.jatko) then
choose $i in valo ($tietue, kU($tietue), vU($tietue));
result $i.alku, $i - alku;
elseif (ruoko in $tietue.jatko) then
choose $i in valo ($tietue, kO($tietue), zO($tietue));
result $i.alku, $i - alku;
elseif (sampo in $tietue.jatko) then
choose $i in valo ($tietue, pO($tietue), mO($tietue));
result $i.alku, $i - alku;
elseif (tiuku in $tietue.jatko) then
choose $i in valo ($tietue, kU($tietue), zU($tietue));
result $i.alku, $i - alku;
elseif (verkko in $tietue.jatko) then
choose $i in valo ($tietue, kO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (vihko in $tietue.jatko) then
choose $i in valo ($tietue, kO($tietue), O($tietue));
result $i.alku, $i - alku;
##########################################
elseif (arvelu in $tietue.jatko) then
choose $i in arvelu ($tietue, "", "");
result $i.alku, $i - alku;
elseif (avanto in $tietue.jatko) then
choose $i in arvelu ($tietue, tO($tietue), nO($tietue));
result $i.alku, $i - alku;
elseif (alanko in $tietue.jatko) then
choose $i in arvelu ($tietue, kO($tietue), gO($tietue));
result $i.alku, $i - alku;
elseif (hontelo in $tietue.jatko) then
choose $i in hontelo ($tietue);
result $i.alku, $i - alku;
elseif (pihatto in $tietue.jatko) then
choose $i in arvelu ($tietue, tO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (raamattu in $tietue.jatko) then
choose $i in arvelu ($tietue, tU($tietue), U($tietue));
result $i.alku, $i - alku;
######################################
elseif (autio in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö_autio ($tietue, "", [osanto_tA: ""]) +
monikko7 ("", "", "",
[omanto_iT: "", omanto_in: ""],
[osanto_itA: ""],
[sisätulento_ihin: ""],
""));
result $i.alku, $i - alku;
#################################################
elseif (laatikko in $tietue.jatko) then
choose $i in laatikko ($tietue, kO($tietue), O($tietue), kO($tietue), O($tietue));
result $i.alku, $i - alku;
#################################################
elseif (risti in $tietue.jatko) then
choose $i in risti ($tietue, "", "");
result $i.alku, $i - alku;
elseif (siisti in $tietue.jatko) then
choose $i in siisti ($tietue, "", "");
result $i.alku, $i - alku;
elseif (takki in $tietue.jatko) then
choose $i in risti ($tietue, "k", "");
result $i.alku, $i - alku;
elseif (renki in $tietue.jatko) then
choose $i in risti ($tietue, "k", "g");
result $i.alku, $i - alku;
elseif (keppi in $tietue.jatko) then
choose $i in risti ($tietue, "p", "");
result $i.alku, $i - alku;
elseif (hupi in $tietue.jatko) then
choose $i in risti ($tietue, "p", "v");
result $i.alku, $i - alku;
elseif (vati in $tietue.jatko) then
choose $i in risti ($tietue, "t", "d");
result $i.alku, $i - alku;
elseif (pelti in $tietue.jatko) then
choose $i in risti ($tietue, "t", "l");
result $i.alku, $i - alku;
elseif (tunti in $tietue.jatko) then
choose $i in risti ($tietue, "t", "n");
result $i.alku, $i - alku;
elseif (tatti in $tietue.jatko) then
choose $i in risti ($tietue, "t", "");
result $i.alku, $i - alku;
elseif (kiiski in $tietue.jatko) then
choose $i in kiiski ($tietue);
result $i.alku, $i - alku;
#################################################3
elseif ((paperi in $tietue.jatko) or
(banaali in $tietue.jatko)) then
choose $i in paperi_banaali ($tietue, "", "");
result $i.alku, $i - alku;
elseif (edam in $tietue.jatko) then
choose $i in edam ($tietue, "", "");
result $i.alku, $i - alku;
elseif (hollanti in $tietue.jatko) then
choose $i in paperi_banaali ($tietue, "t", "n");
result $i.alku, $i - alku;
elseif (kajakki in $tietue.jatko) then
choose $i in paperi_banaali ($tietue, "k", "");
result $i.alku, $i - alku;
elseif (killinki in $tietue.jatko) then
choose $i in paperi_banaali ($tietue, "k", "g");
result $i.alku, $i - alku;
elseif (konvehti in $tietue.jatko) then
choose $i in paperi_banaali ($tietue, "t", "d");
result $i.alku, $i - alku;
elseif (salaatti in $tietue.jatko) then
choose $i in paperi_banaali ($tietue, "t", "");
result $i.alku, $i - alku;
elseif (sinappi in $tietue.jatko) then
choose $i in paperi_banaali ($tietue, "p", "");
result $i.alku, $i - alku;
#################################################3
elseif (kalsium in $tietue.jatko) then
choose $i in kalsium ($tietue, "", "");
result $i.alku, $i - alku;
elseif (fan in $tietue.jatko) then
choose $i in poppi ($tietue, "", "");
result $i.alku, $i - alku;
elseif (pop in $tietue.jatko) then
choose $i in poppi ($tietue, "p", "");
result $i.alku, $i - alku;
elseif (punk in $tietue.jatko) then
choose $i in poppi ($tietue, "k", "");
result $i.alku, $i - alku;
##############################################
elseif (lovi in $tietue.jatko) then
choose $i in lovi ($tietue, "", "");
result $i.alku, $i - alku;
elseif (kaikki in $tietue.jatko) then
choose $i in lovi ($tietue, "k", "");
result $i.alku, $i - alku;
elseif (piki in $tietue.jatko) then
choose $i in piki ($tietue, "k", "", "k", "'");
result $i.alku, $i - alku;
elseif (kylki in $tietue.jatko) then
choose $i in lovi ($tietue, "k", "j");
result $i.alku, $i - alku;
elseif (hanki in $tietue.jatko) then
choose $i in lovi ($tietue, "k", "g");
result $i.alku, $i - alku;
elseif (jälki in $tietue.jatko) then
choose $i in lovi ($tietue, "k", "j");
result $i.alku, $i - alku;
elseif (veli in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("je", "i", "je", "je",
[osanto_A: "je"], sisätulento_Vn,
"je", "i") +
[johdin_tOn: "je",
johdin_Us: "je",
johdin_lAinen: "i", # Ei veli+lainen.
johdin_mAinen: "i",
johdin_inen: "j"] +
monikko7 ("je", "j", "j",
[omanto_ien: "j", omanto_en: "i"],
[osanto_iA: "j"],
[sisätulento_iin: "j"],
"je"));
result $i.alku, $i - alku;
elseif (siipi in $tietue.jatko) then
choose $i in lovi ($tietue, "p", "v");
result $i.alku, $i - alku;
elseif (sampi in $tietue.jatko) then
choose $i in lovi ($tietue, "p", "m");
result $i.alku, $i - alku;
elseif (happi in $tietue.jatko) then
choose $i in lovi ($tietue, "p", "");
result $i.alku, $i - alku;
elseif (lehti in $tietue.jatko) then
choose $i in lovi ($tietue, "t", "d");
result $i.alku, $i - alku;
elseif (kumpi in $tietue.jatko) then
choose $i in kumpi ($tietue, "p", "m", A($tietue));
result $i.alku, $i - alku;
##############################################
elseif (lampi in $tietue.jatko) then
choose $i in lovi ($tietue, "p", "m") +
taivutuskaava ($tietue,
[omanto_n: "mi",
tulento_ksi: "mi",
sisäolento_ssA: "mi",
ulkopaikallissija_llA: "mi",
vajanto_ttA: "mi",
kerronto_sti: "mi",
voittoaste: "mi",
johdin_tOn: "mi",
johdin_lAinen: "pe",
johdin_mAinen: "pi",
johdin_inen: "mi",
nimentö_t: "mi",
sija_monikko_1: "me",
ulkopaikallissija_illA: "me",
vajanto_ittA: "me",
johdin_ittAin: "me"]);
result $i.alku, $i - alku;
elseif (toholampi in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
[nimentö: "pi",
omanto_n: "mi",
tulento_ksi: "mi",
sisäolento_ssA: "mi",
ulkopaikallissija_llA: "mi",
vajanto_ttA: "mi",
kerronto_sti: "mi",
johdin_lAinen: "pi"]);
result $i.alku, $i - alku;
##############################################
elseif (nalle in $tietue.jatko) then
choose $i in nalle ($tietue, "", "");
result $i.alku, $i - alku;
elseif (atte in $tietue.jatko) then
choose $i in nalle ($tietue, "te", "e");
result $i.alku, $i - alku;
elseif (nukke in $tietue.jatko) then
choose $i in nalle ($tietue, "ke", "e");
result $i.alku, $i - alku;
elseif (kolme in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("e", "e",
"e", "e",
[osanto_A: "e"],
sisätulento_Vn,
"e", "e") +
[johdin_tOn: "e",
johdin_Us: "e"] +
# Ei tarvita johdosta johdin_inen. HV 13.5.2006. Eikä johdin_lAinen. HV 13.7.2006.
# Eikä johdin_mAinen. HV 24.7.2006.
monikko7 ("e", "", "",
[omanto_en: "i",
omanto_in: "e"],
[osanto_iA: ""],
[sisätulento_iin: ""],
"e"));
result $i.alku, $i - alku;
##############################################
elseif (kala in $tietue.jatko) then
choose $i in kala ($tietue, "", "", "e", "");
result $i.alku, $i - alku;
elseif (aika in $tietue.jatko) then
choose $i in kala ($tietue, "ik", "j", "je", "");
result $i.alku, $i - alku;
elseif (aitta in $tietue.jatko) then
choose $i in kala ($tietue, "t", "", "e", "");
result $i.alku, $i - alku;
elseif (liika in $tietue.jatko) then
choose $i in kala ($tietue, "k", "", "e", "o");
result $i.alku, $i - alku;
elseif (haka in $tietue.jatko) then
choose $i in kala ($tietue, "k", "", "e", "");
result $i.alku, $i - alku;
elseif (hanka in $tietue.jatko) then
choose $i in kala ($tietue, "k", "g", "ge", "");
result $i.alku, $i - alku;
elseif (kampa in $tietue.jatko) then
choose $i in kala ($tietue, "p", "m", "me", "m");
result $i.alku, $i - alku;
elseif (kanta in $tietue.jatko) then
choose $i in kala ($tietue, "t", "n", "na", "n");
result $i.alku, $i - alku;
elseif (kappa in $tietue.jatko) then
choose $i in kala ($tietue, "p", "", "e", "");
result $i.alku, $i - alku;
elseif (nahka in $tietue.jatko) then
choose $i in kala ($tietue, "k", "", "e", "") +
taivutuskaava ($tietue,
[omanto_n: kA($tietue),
tulento_ksi: kA($tietue),
sisäolento_ssA: kA($tietue),
ulkopaikallissija_llA: kA($tietue),
vajanto_ttA: kA($tietue),
nimentö_t: kA($tietue),
sija_monikko_1: kO($tietue),
ulkopaikallissija_illA: kO($tietue),
vajanto_ittA: kO($tietue),
johdin_ittAin: kO($tietue)]);
result $i.alku, $i - alku;
elseif (napa in $tietue.jatko) then
choose $i in kala ($tietue, "p", "v", "ve", "v");
result $i.alku, $i - alku;
elseif (pata in $tietue.jatko) then
choose $i in kala ($tietue, "t", "d", "de", "d") +
taivutuskaava($tietue, [yliaste: "d" + O($tietue)]);
result $i.alku, $i - alku;
elseif (parta in $tietue.jatko) then
choose $i in kala ($tietue, "t", "r", "re", "");
result $i.alku, $i - alku;
elseif (raaka in $tietue.jatko) then
choose $i in raaka ($tietue, "k", "'", "k", "", "e", "");
result $i.alku, $i - alku;
elseif (valta in $tietue.jatko) then
choose $i in kala ($tietue, "t", "l", "le", "l");
result $i.alku, $i - alku;
#####################################################################
elseif (koira in $tietue.jatko) then
choose $i in koira ($tietue, "", "", "e");
result $i.alku, $i - alku;
elseif (hoikka in $tietue.jatko) then
choose $i in koira ($tietue, "k", "", "e");
result $i.alku, $i - alku;
elseif (honka in $tietue.jatko) then
choose $i in koira ($tietue, "k", "g", "ge");
result $i.alku, $i - alku;
elseif (huopa in $tietue.jatko) then
choose $i in koira ($tietue, "p", "v", "ve");
result $i.alku, $i - alku;
elseif (ikä in $tietue.jatko) then
choose $i in koira ($tietue, "k", "", "e");
result $i.alku, $i - alku;
elseif (juhta in $tietue.jatko) then
choose $i in koira ($tietue, "t", "d", "de");
result $i.alku, $i - alku;
elseif (kenttä in $tietue.jatko) then
choose $i in koira ($tietue, "t", "", "e");
result $i.alku, $i - alku;
elseif (kompa in $tietue.jatko) then
choose $i in koira ($tietue, "p", "m", "me");
result $i.alku, $i - alku;
elseif (kulta in $tietue.jatko) then
choose $i in koira ($tietue, "t", "l", "le");
result $i.alku, $i - alku;
elseif (poika in $tietue.jatko) then
choose $i in koira ($tietue, "ik", "j", "je");
result $i.alku, $i - alku;
elseif (suunta in $tietue.jatko) then
choose $i in koira ($tietue, "t", "n", "ne");
result $i.alku, $i - alku;
elseif (tolppa in $tietue.jatko) then
choose $i in koira ($tietue, "p", "", "e");
result $i.alku, $i - alku;
elseif (turta in $tietue.jatko) then
choose $i in koira ($tietue, "t", "r", "re");
result $i.alku, $i - alku;
elseif (ylkä in $tietue.jatko) then
choose $i in koira ($tietue, "k", "j", "je");
result $i.alku, $i - alku;
elseif (pitkä in $tietue.jatko) then
choose $i in pitkä ($tietue);
result $i.alku, $i - alku;
elseif (ruoka in $tietue.jatko) then
choose $i in ruoka ($tietue);
result $i.alku, $i - alku;
################################################################
elseif (matala in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö_autio ($tietue, A($tietue), [osanto_A: A($tietue)]) +
monikko7 (A($tietue), "", "",
[omanto_ien: "",
omanto_in: A($tietue)],
[osanto_iA: ""],
[sisätulento_iin: ""],
"")) +
taivutuskaava ($tietue,
monikko6 (O($tietue), O($tietue),
[omanto_iT: O($tietue),
omanto_jen: O($tietue)],
[osanto_itA: O($tietue),
osanto_jA: O($tietue)],
[sisätulento_ihin: O($tietue)], O($tietue)));
result $i.alku, $i - alku;
elseif (vihanta in $tietue.jatko) then
choose $i in vihanta ($tietue, "t", "n");
result $i.alku, $i - alku;
elseif (mahorkka in $tietue.jatko) then
choose $i in vihanta ($tietue, "k", "");
result $i.alku, $i - alku;
########################################################
elseif (asema in $tietue.jatko) then
choose $i in asema ($tietue, "", "");
result $i.alku, $i - alku;
elseif (emäntä in $tietue.jatko) then
choose $i in asema ($tietue, "t", "n");
result $i.alku, $i - alku;
########################################################
elseif (kulkija in $tietue.jatko) then
if ($tietue.luokka = nimisana) then
choose $i in kulkija ($tietue, A($tietue), O($tietue));
result $i.alku, $i - alku;
else
# Erisnimi ei ole verbijohdos
$tietue.alku := $tietue.alku + "j";
choose $i in apila ($tietue, A($tietue), O($tietue));
result $i.alku, $i - alku;
end;
elseif (apila in $tietue.jatko) then
choose $i in apila ($tietue, A($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (video in $tietue.jatko) then
choose $i in apila ($tietue, "", "");
result $i.alku, $i - alku;
########################################################
elseif (karahka in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö_autio ($tietue, A($tietue), [osanto_A: A($tietue)]) +
monikko7 (A($tietue), O($tietue), O($tietue),
[omanto_iT: O($tietue),
omanto_jen: O($tietue),
omanto_in: A($tietue)],
[osanto_itA: O($tietue),
osanto_jA: O($tietue)],
[sisätulento_ihin: O($tietue)],
""));
result $i.alku, $i - alku;
##########################################################
elseif (solakka in $tietue.jatko) then
choose $i in solakka ($tietue, kA($tietue), A($tietue), kO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (ulappa in $tietue.jatko) then
choose $i in solakka ($tietue, pA($tietue), A($tietue), pO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (savotta in $tietue.jatko) then
choose $i in solakka ($tietue, tA($tietue), A($tietue), tO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (veranta in $tietue.jatko) then
choose $i in veranta ($tietue);
result $i.alku, $i - alku;
##########################################################
elseif (kantaja in $tietue.jatko) then
choose $i in kantaja ($tietue);
result $i.alku, $i - alku;
elseif (apaja in $tietue.jatko) then
choose $i in apaja ($tietue);
result $i.alku, $i - alku;
elseif (peruna in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö_autio ($tietue, A($tietue), [osanto_A: A($tietue)]) +
monikko7 (A($tietue), O($tietue), O($tietue),
[omanto_iT: O($tietue),
omanto_jen: O($tietue),
omanto_in: A($tietue),
omanto_ien: ""],
[osanto_itA: O($tietue),
osanto_jA: O($tietue),
osanto_iA: ""],
[sisätulento_ihin: O($tietue),
sisätulento_iin: ""],
O($tietue)) +
[seuranto_ine: ""]);
result $i.alku, $i - alku;
elseif (opotta in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
[tavuviiva: tA($tietue),
omistusliite: tA($tietue),
nimentö: tA($tietue),
omanto_n: A($tietue),
osanto_A: tA($tietue),
osanto_tA: tA($tietue),
olento_nA: tA($tietue),
tulento_ksi: A($tietue),
sisäolento_ssA: A($tietue),
sisätulento_Vn: tA($tietue),
ulkopaikallissija_llA: A($tietue),
vajanto_ttA: A($tietue),
johdin_tOn: A($tietue),
johdin_inen: A($tietue),
nimentö_t: A($tietue),
omanto_iT: O($tietue),
omanto_jen: tO($tietue),
omanto_in: tA($tietue),
omanto_ien: "t",
osanto_itA: O($tietue),
osanto_jA: tO($tietue),
osanto_iA: "t",
olento_inA: tO($tietue),
sija_monikko_1: O($tietue),
sisätulento_ihin: tO($tietue),
sisätulento_iin: "t",
ulkopaikallissija_illA: O($tietue),
vajanto_ittA: O($tietue),
seuranto_ine: tO($tietue),
johdin_ittAin: O($tietue)]
+ yhdyssana (tA($tietue)));
result $i.alku, $i - alku;
elseif (ainoa in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 (A($tietue), A($tietue),
A($tietue), A($tietue),
[osanto_A: A($tietue),
osanto_tA: A($tietue)],
sisätulento_Vn,
A($tietue), A($tietue)) +
[johdin_tOn: A($tietue),
johdin_Us: "",
johdin_inen: A($tietue)] +
monikko7 (A($tietue), "", "",
[omanto_iT: "",
omanto_in: A($tietue)],
[osanto_itA: ""],
[sisätulento_isiin: "", sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
elseif (korkea in $tietue.jatko) then
define $a := taivutuskaava ($tietue,
yksikkö8 (eA($tietue), eA($tietue),
eA($tietue), eA($tietue),
[osanto_A: eA($tietue),
osanto_tA: eA($tietue)],
sisätulento_Vn,
eA($tietue), eA($tietue)) +
[johdin_tOn: eA($tietue),
johdin_Us: "e",
johdin_inen: eA($tietue)] +
monikko7 (eA($tietue), "e", "e",
[omanto_iT: "e",
omanto_in: eA($tietue)],
[osanto_itA: "e"],
[sisätulento_isiin: "e",
sisätulento_ihin: "e"], "e"));
choose $i in $a;
result $i.alku, $i - alku;
elseif (harteet in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
[johdin_tOn: "e",
johdin_inen: ""] +
# Ei tarvita johdosta lAinen. HV 13.7.2006.
monikko7 ("e", "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_isiin: "",
sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
#######################################################
elseif (suurempi in $tietue.jatko) then
choose $i in <taivutus ($tietue, "", <voittoaste>, [])>;
result $i.alku, $i - alku;
#######################################################
elseif (vapaa in $tietue.jatko) then
choose $i in vapaa ($tietue, A($tietue));
result $i.alku, $i - alku;
#######################################################
elseif (tienoo in $tietue.jatko) then
choose $i in vapaa ($tietue, O($tietue));
result $i.alku, $i - alku;
#######################################################
elseif (leikkuu in $tietue.jatko) then
choose $i in vapaa ($tietue, U($tietue));
result $i.alku, $i - alku;
#######################################################
elseif (kamee in $tietue.jatko) then
choose $i in kamee ($tietue, "e");
result $i.alku, $i - alku;
elseif (tee in $tietue.jatko) then
choose $i in tee ($tietue, "e");
result $i.alku, $i - alku;
elseif (nugaa in $tietue.jatko) then
choose $i in kamee ($tietue, A($tietue));
result $i.alku, $i - alku;
elseif (trikoo in $tietue.jatko) then
choose $i in kamee ($tietue, O($tietue));
result $i.alku, $i - alku;
elseif (revyy in $tietue.jatko) then
choose $i in kamee ($tietue, U($tietue));
result $i.alku, $i - alku;
#####################################################
elseif (pii in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("i", "i", "i", "i",
[osanto_tA: "i"],
sisätulento_hVn,
"i", "i") +
[johdin_tOn: "i",
johdin_lAinen: "i",
johdin_mAinen: "i",
johdin_inen: ""] +
monikko7 ("i", "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
##############################################################
elseif (maa in $tietue.jatko) then
choose $i in maa ($tietue, A($tietue));
result $i.alku, $i - alku;
elseif (puu in $tietue.jatko) then
choose $i in maa ($tietue, U($tietue));
result $i.alku, $i - alku;
elseif (tiu in $tietue.jatko) then
choose $i in tiu ($tietue, "");
result $i.alku, $i - alku;
##############################################################
elseif (suo in $tietue.jatko) then
choose $i in suo ($tietue, UO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (tie in $tietue.jatko) then
choose $i in suo ($tietue, "ie", "e");
result $i.alku, $i - alku;
##############################################################
elseif (bébé in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("", "", "", "",
[osanto_tA: ""],
sisätulento_hVn,
"", "") +
[johdin_tOn: "",
johdin_mAinen: "",
johdin_inen: ""] +
monikko7 ("", "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_isiin: "",
sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
##############################################################
elseif (rosé in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("", "", "", "",
[osanto_tA: ""],
sisätulento_hVn,
"", "") +
[johdin_tOn: "",
johdin_mAinen: "",
johdin_lAinen: "",
johdin_inen: ""] +
monikko7 ("", "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
elseif (spray in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("", "", "", "",
[osanto_tA: ""],
sisätulento_hVn,
"", "") +
[johdin_tOn: "",
johdin_mAinen: "",
johdin_lAinen: "",
johdin_inen: ""] +
monikko7 ("", "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
elseif (parfait in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("'", "", "'", "'",
[osanto_tA: "'"],
sisätulento_hVn,
"'", "") +
[johdin_tOn: "'",
johdin_inen: "'",
liitesana: "'"] +
monikko7 ("'", "'", "'",
[omanto_iT: "'"],
[osanto_itA: "'"],
[sisätulento_ihin: "'"], "'"));
result $i.alku, $i - alku;
elseif (tuohi in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö_tuohi ("e", "i") +
monikko7 ("e", "", "",
[omanto_ien: "", omanto_ten: ""],
[osanto_iA: ""],
[sisätulento_iin: ""], ""));
result $i.alku, $i - alku;
elseif (lohi in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö_tuohi ("e", "i") +
monikko7 ("e", "", "",
[omanto_ien: ""],
[osanto_iA: ""],
[sisätulento_iin: ""], ""));
result $i.alku, $i - alku;
elseif (meri in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö_meri ("e", "i") +
monikko7 ("e", "", "",
[omanto_ien: "", omanto_ten: ""],
[osanto_iA: ""],
[sisätulento_iin: ""], ""));
result $i.alku, $i - alku;
elseif (lahti in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("te", "ti", "te", "de",
[osanto_A: "te"],
sisätulento_Vn, "de", "di") +
[johdin_tOn: "de",
johdin_lAinen: "te",
johdin_mAinen: "ti",
johdin_inen: "t"] +
monikko7 ("de", "t", "d",
[omanto_ien: "t", omanto_in: "te"],
[osanto_iA: "t"],
[sisätulento_iin: "t"], "d"));
result $i.alku, $i - alku;
elseif (lumi in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("me", "mi", "me", "me",
[osanto_tA: "n"],
sisätulento_Vn, "me", "mi") +
[johdin_tOn: "me",
johdin_mAinen: "mi",
johdin_inen: "m"] +
monikko7 ("me", "m", "m",
[omanto_ien: "m", omanto_ten: "n"],
[osanto_iA: "m"],
[sisätulento_iin: "m"], "m"));
result $i.alku, $i - alku;
elseif ((tuomi in $tietue.jatko) or
(niemi in $tietue.jatko)) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("me", "mi", "me", "me",
[osanto_A: "me", osanto_tA: "n"],
sisätulento_Vn, "me", "mi") +
[johdin_tOn: "me",
johdin_lAinen: "me",
johdin_mAinen: "mi",
johdin_inen: "m"] +
monikko7 ("me", "m", "m",
[omanto_ien: "m", omanto_ten: "n"],
[osanto_iA: "m"],
[sisätulento_iin: "m"], "m"));
result $i.alku, $i - alku;
elseif (pieni in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("e", "i", "e", "e",
[osanto_tA: ""],
sisätulento_Vn,
"e", "i") +
[johdin_tOn: "e",
johdin_Us: "e",
johdin_mAinen: "i",
johdin_inen: ""] +
monikko7 ("e", "", "",
[omanto_ten: "", omanto_ien: ""],
[osanto_iA: ""],
[sisätulento_iin: ""], ""));
result $i.alku, $i - alku;
elseif (nuori in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("e", "i", "e", "e",
[osanto_tA: ""],
sisätulento_Vn,
"e", "i") +
[johdin_tOn: "e",
johdin_UUs: "",
johdin_mAinen: "i",
johdin_inen: ""] +
monikko7 ("e", "", "",
[omanto_ien: "", omanto_ten: ""],
[osanto_iA: ""],
[sisätulento_iin: ""], "")) +
taivutuskaava ($tietue, [olento_nA: ""]); # Nuorna.
# Ei tunnista olentoa nuor+ra.
result $i.alku, $i - alku;
#########################################
elseif (susi in $tietue.jatko) then
choose $i in tosi ($tietue)
+ taivutuskaava ($tietue, [omanto_ten: "t"]); # Sutten.
result $i.alku, $i - alku;
#########################################
elseif (tosi in $tietue.jatko) then
choose $i in tosi ($tietue);
result $i.alku, $i - alku;
#########################################
elseif (hirsi in $tietue.jatko) then
choose $i in kansi ($tietue, "t", "r", "s");
result $i.alku, $i - alku;
elseif (jälsi in $tietue.jatko) then
choose $i in kansi ($tietue, "t", "l", "s");
result $i.alku, $i - alku;
elseif (kansi in $tietue.jatko) then
choose $i in kansi ($tietue, "t", "n", "t");
result $i.alku, $i - alku;
#########################################
elseif (lapsi in $tietue.jatko) then
choose $i in lapsi ($tietue)
+ taivutuskaava ($tietue, [osanto_tA: "s"]); # Lasta.
result $i.alku, $i - alku;
#########################################
elseif (hapsi in $tietue.jatko) then
choose $i in lapsi ($tietue)
+ taivutuskaava ($tietue, [osanto_A: "pse"]); # Hapsea.
result $i.alku, $i - alku;
elseif (veitsi in $tietue.jatko) then
choose $i in veitsi ($tietue);
result $i.alku, $i - alku;
elseif (suksi in $tietue.jatko) then
choose $i in lovi ($tietue, "ks", "ks");
result $i.alku, $i - alku;
elseif (uksi in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("kse", "ksi", "kse", "kse",
[osanto_A: "kse"],
sisätulento_Vn,
"kse", "ksi") +
[johdin_tOn: "kse",
johdin_mAinen: "ksi",
johdin_inen: "ks"] +
monikko7 ("kse", "ks", "ks",
[omanto_en: "ksi"],
[osanto_iA: "ks"],
[sisätulento_iin: "ks"], "ks"));
result $i.alku, $i - alku;
elseif (kaksi in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("hte", "ksi", "hte", "hde",
[osanto_tA: "h"], sisätulento_Vn,
"hde", "ksi") +
[johdin_tOn: "hde",
johdin_mAinen: "ksi",
johdin_inen: "ks"] +
monikko7 ("hde", "ks", "ks",
[omanto_ien: "ks"],
[osanto_iA: "ks"],
[sisätulento_iin: "ks"], "ks"));
result $i.alku, $i - alku;
elseif (sankari in $tietue.jatko) then
choose $i in paperi_banaali ($tietue, "", "")
+ taivutuskaava ($tietue, [omanto_ten: ""]); # Sankarten.
result $i.alku, $i - alku;
elseif (jumala in $tietue.jatko) then
choose $i in koira ($tietue, "", "", "e") +
taivutuskaava ($tietue, [omanto_ten: ""]); # Jumalten.
result $i.alku, $i - alku;
##########################################################
elseif (sisar in $tietue.jatko) then
choose $i in sisar ($tietue, "", "");
result $i.alku, $i - alku;
elseif (tytär in $tietue.jatko) then
choose $i in sisar ($tietue, tAr($tietue), Ar($tietue));
result $i.alku, $i - alku;
##########################################################
elseif (ien in $tietue.jatko) then
choose $i in ahven ($tietue, "ken", "en");
result $i.alku, $i - alku;
##########################################################
elseif (uistin in $tietue.jatko) then
choose $i in uistin ($tietue, "m", "n");
result $i.alku, $i - alku;
elseif (hapan in $tietue.jatko) then
choose $i in hapan ($tietue, "pam", "an");
result $i.alku, $i - alku;
elseif (kaadin in $tietue.jatko) then
choose $i in uistin ($tietue, "tim", "din");
result $i.alku, $i - alku;
elseif (kaavin in $tietue.jatko) then
choose $i in uistin ($tietue, "pim", "vin");
result $i.alku, $i - alku;
elseif (kerroin in $tietue.jatko) then
choose $i in uistin ($tietue, "toim", "roin");
result $i.alku, $i - alku;
elseif (kiharrin in $tietue.jatko) then
choose $i in uistin ($tietue, "tim", "rin");
result $i.alku, $i - alku;
elseif (laidun in $tietue.jatko) then
choose $i in uistin ($tietue, "tum", "dun");
result $i.alku, $i - alku;
elseif (poljin in $tietue.jatko) then
choose $i in uistin ($tietue, "kim", "jin");
result $i.alku, $i - alku;
elseif (puin in $tietue.jatko) then
choose $i in uistin ($tietue, "kim", "in");
result $i.alku, $i - alku;
elseif (sivellin in $tietue.jatko) then
choose $i in uistin ($tietue, "tim", "lin");
result $i.alku, $i - alku;
elseif (suodatin in $tietue.jatko) then
choose $i in uistin ($tietue, "tim", "in");
result $i.alku, $i - alku;
elseif (vaimennin in $tietue.jatko) then
choose $i in uistin ($tietue, "tim", "nin");
result $i.alku, $i - alku;
##########################################################
elseif (onneton in $tietue.jatko) then
choose $i in onneton ($tietue, tO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (alaston in $tietue.jatko) then
choose $i in onneton ($tietue, O($tietue), O($tietue));
result $i.alku, $i - alku;
##########################################################
elseif (lämmin in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("pimä", "min", "pimä", "pimä",
[osanto_tA: "min"],
sisätulento_Vn,
"pimä", "min") +
[johdin_UUs: "pim"] +
monikko7 ("pimä", "pim", "pim",
[omanto_ien: "pim", omanto_in: "pimä"],
[osanto_iA: "pim"],
[sisätulento_iin: "pim"], "pim"));
result $i.alku, $i - alku;
elseif (pahin in $tietue.jatko) then
choose $i in <taivutus ($tietue, "", <yliaste>, [])>
+ taivutuskaava ($tietue, [olento_nA: "in"]);
result $i.alku, $i - alku;
elseif (vasen in $tietue.jatko) then
#
# Koska vasen on ainoa sana, joka taipuu tällä tavalla,
# ei tarvitsen kirjoittaa "mp" + A($tietue) eikä "mm" + A($tietue).
#
choose $i in taivutuskaava ($tietue,
yksikkö8 ("mpa", "n", "mpa", "mma",
[osanto_A: "mpa", osanto_tA: "n"],
sisätulento_Vn, "mma", "n") +
monikko7 ("mma", "mp", "mm",
[omanto_ien: "mp", omanto_ten: "n", omanto_in: "mpa"],
[osanto_iA: "mp"],
[sisätulento_iin: "mp"], "mm"));
result $i.alku, $i - alku;
# elseif (muuan in $tietue.jatko) then
# Muu(d)an-sana taipuu kuten muutama, paitsi että osannolla ja omannolla
# on myös muodot muu(d)a+tta ja muu(d)an+na, jotka ovat sanastossa.
elseif (seitsemän in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 (A($tietue), An($tietue),
A($tietue), A($tietue),
[osanto_A: A($tietue)],
sisätulento_Vn,
A($tietue), An($tietue)) +
monikko7 (A($tietue), "", "",
[omanto_ien: ""],
[osanto_iA: ""],
[sisätulento_iin: ""], ""));
result $i.alku, $i - alku;
elseif (nainen in $tietue.jatko) then
choose $i in nainen ($tietue);
result $i.alku, $i - alku;
elseif (vastaus in $tietue.jatko) then
choose $i in vastaus ($tietue);
result $i.alku, $i - alku;
####################################################
elseif (kalleus in $tietue.jatko) then
choose $i in kalleus ($tietue);
result $i.alku, $i - alku;
####################################################
elseif (vieras in $tietue.jatko) then
choose $i in vieras ($tietue, A($tietue), "s", "", "");
result $i.alku, $i - alku;
elseif (antelias in $tietue.jatko) then
choose $i in vieras ($tietue, A($tietue), "s", "", "is" + U($tietue));
result $i.alku, $i - alku;
elseif (autuas in $tietue.jatko) then
choose $i in vieras ($tietue, AA($tietue), As($tietue), A($tietue), "");
result $i.alku, $i - alku;
elseif (laupias in $tietue.jatko) then
choose $i in vieras ($tietue, "i" + AA($tietue), "i" + As($tietue),
"i" + A($tietue), "e");
result $i.alku, $i - alku;
elseif (harras in $tietue.jatko) then
choose $i in vieras ($tietue, tAA($tietue), rAs($tietue), tA($tietue), tA($tietue));
result $i.alku, $i - alku;
elseif (ahdas in $tietue.jatko) then
choose $i in vieras ($tietue, tAA($tietue), dAs($tietue), tA($tietue), tA($tietue));
result $i.alku, $i - alku;
elseif (avokas in $tietue.jatko) then
choose $i in vieras ($tietue, kAA($tietue), As($tietue), kA($tietue), kU($tietue));
result $i.alku, $i - alku;
elseif (asiakas in $tietue.jatko) then
assert ($tietue.luokka = nimisana);
choose $i in vieras ($tietue, kAA($tietue), As($tietue), kA($tietue), kU($tietue))
+ sana_Us ($tietue);
result $i.alku, $i - alku;
elseif (vilkas in $tietue.jatko) then
choose $i in vieras ($tietue, kAA($tietue), As($tietue), kA($tietue), kA($tietue));
result $i.alku, $i - alku;
elseif (iäkäs in $tietue.jatko) then
choose $i in vieras ($tietue, kAA($tietue), As($tietue), kA($tietue), kU($tietue));
result $i.alku, $i - alku;
elseif (allas in $tietue.jatko) then
choose $i in vieras ($tietue, tAA($tietue), lAs($tietue), tA($tietue), tA($tietue));
result $i.alku, $i - alku;
elseif (hammas in $tietue.jatko) then
choose $i in vieras ($tietue, pAA($tietue), mAs($tietue), pA($tietue), pA($tietue));
result $i.alku, $i - alku;
elseif (kinnas in $tietue.jatko) then
choose $i in vieras ($tietue, tAA($tietue), nAs($tietue), tA($tietue), tA($tietue));
result $i.alku, $i - alku;
elseif (varas in $tietue.jatko) then
choose $i in vieras ($tietue, kAA($tietue), As($tietue), kA($tietue), kA($tietue));
result $i.alku, $i - alku;
elseif (saapas in $tietue.jatko) then
choose $i in vieras ($tietue, pAA($tietue), As($tietue), pA($tietue), pA($tietue));
result $i.alku, $i - alku;
elseif (ratas in $tietue.jatko) then
choose $i in vieras ($tietue, tAA($tietue), As($tietue), tA($tietue), tA($tietue));
result $i.alku, $i - alku;
elseif (varvas in $tietue.jatko) then
choose $i in vieras ($tietue, pAA($tietue), vAs($tietue), pA($tietue), pA($tietue));
result $i.alku, $i - alku;
elseif (kangas in $tietue.jatko) then
choose $i in vieras ($tietue, kAA($tietue), gAs($tietue), kA($tietue), kA($tietue));
result $i.alku, $i - alku;
elseif (paras in $tietue.jatko) then
choose $i in paras ($tietue, hAA($tietue), As($tietue),
hA($tietue), "e", hA($tietue));
result $i.alku, $i - alku;
####################################################
elseif (kirves in $tietue.jatko) then
choose $i in vieras ($tietue, "e", "s", "", "e");
result $i.alku, $i - alku;
elseif (ies in $tietue.jatko) then
choose $i in vieras ($tietue, "kee", "es", "ke", "ke");
result $i.alku, $i - alku;
####################################################
elseif (kauris in $tietue.jatko) then
choose $i in kauris ($tietue, "");
result $i.alku, $i - alku;
elseif (ruis in $tietue.jatko) then
choose $i in kauris ($tietue, "k");
result $i.alku, $i - alku;
####################################################
elseif (kaunis in $tietue.jatko) then
choose $i in kaunis ($tietue, "", "e");
result $i.alku, $i - alku;
elseif (valmis in $tietue.jatko) then
choose $i in kaunis ($tietue, "", "i");
result $i.alku, $i - alku;
elseif (altis in $tietue.jatko) then
choose $i in kaunis ($tietue, "t", "ti");
result $i.alku, $i - alku;
####################################################
elseif (koiras in $tietue.jatko) then
choose $i in vastaus ($tietue)
+ s_V_loppuinen ($tietue, A($tietue), "")
+ s_hV_loppuinen ($tietue, hA($tietue), "h");
result $i.alku, $i - alku;
####################################################
elseif (mies in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("he", "s", "he", "he",
[osanto_tA: "s"], sisätulento_Vn,
"he", "s") +
[johdin_tOn: "he",
johdin_UUs: "h", # Miehyys. Miehuus on pantava sanakirjaan.
johdin_Us: "he", # Mieheys.
johdin_mAinen: "s"] +
monikko7 ("he", "h", "h",
[omanto_ten: "s", omanto_ien: "h"],
[osanto_iA: "h"],
[sisätulento_iin: "h"], "h"));
result $i.alku, $i - alku;
elseif (airut in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("e", "t", "e", "e",
[osanto_ttA: ""], sisätulento_Vn,
"e","t") +
[johdin_tOn: "e",
johdin_Us: "",
johdin_mAinen: "t",
johdin_inen: "e"] +
monikko7 ("e", "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_isiin: "",
sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
elseif (kevät in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 (A($tietue), "t",
A($tietue), A($tietue),
[osanto_ttA: ""],
sisätulento_seen,
A($tietue), "t") +
[johdin_tOn: A($tietue),
johdin_mAinen: "t",
johdin_inen: ""] +
monikko7 (A($tietue), "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_isiin: "",
sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
elseif (kahdeksas in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("nte", "s", "nte", "nne",
[osanto_ttA: ""], sisätulento_Vn,
"nne", "s") +
[nimentö_t: "nne",
omanto_ien: "ns",
osanto_iA: "ns",
olento_inA: "ns",
sija_monikko_1: "ns",
sisätulento_iin: "ns",
ulkopaikallissija_illA: "ns",
vajanto_ittA: "ns",
seuranto_ine: "ns"]);
result $i.alku, $i - alku;
elseif (tuhat in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("nte", "t", "nte", "nne",
[osanto_ttA: ""], sisätulento_Vn,
"nne", "t") +
monikko7 ("nne", "ns", "ns",
[omanto_ien: "ns"],
[osanto_iA: "ns"],
[sisätulento_iin: "ns"], "ns"));
result $i.alku, $i - alku;
elseif (kuollut in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("ee", Ut($tietue), "ee", "ee",
[osanto_tA: Ut($tietue)],
sisätulento_seen,
"ee", Ut($tietue)) +
[johdin_tOn: "ee",
johdin_Us: "e", # Kuolleus.
johdin_inen: "e"] + # Kuolleinen.
monikko7 ("ee", "e", "e",
[omanto_iT: "e"],
[osanto_itA: "e"],
[sisätulento_isiin: "e", sisätulento_ihin: "e"],
"e"));
result $i.alku, $i - alku;
######################################################
elseif (hame in $tietue.jatko) then
choose $i in hame ($tietue, "", "e", "");
result $i.alku, $i - alku;
elseif (alkeet in $tietue.jatko) then
choose $i in alkeet ($tietue);
result $i.alku, $i - alku;
elseif (enne in $tietue.jatko) then
choose $i in hame ($tietue, "ne", "tee", "te");
result $i.alku, $i - alku;
elseif (helle in $tietue.jatko) then
choose $i in hame ($tietue, "le", "tee", "te");
result $i.alku, $i - alku;
elseif (kierre in $tietue.jatko) then
choose $i in hame ($tietue, "re", "tee", "te");
result $i.alku, $i - alku;
elseif (lahje in $tietue.jatko) then
choose $i in hame ($tietue, "je", "kee", "ke");
result $i.alku, $i - alku;
elseif (lape in $tietue.jatko) then
choose $i in hame ($tietue, "e", "pee", "pe");
result $i.alku, $i - alku;
elseif (lumme in $tietue.jatko) then
choose $i in hame ($tietue, "me", "pee", "pe");
result $i.alku, $i - alku;
elseif (sade in $tietue.jatko) then
choose $i in hame ($tietue, "de", "tee", "te");
result $i.alku, $i - alku;
elseif (taive in $tietue.jatko) then
choose $i in hame ($tietue, "ve", "pee", "pe");
result $i.alku, $i - alku;
elseif (tarvike in $tietue.jatko) then
choose $i in hame ($tietue, "e", "kee", "ke");
result $i.alku, $i - alku;
elseif (vaate in $tietue.jatko) then
choose $i in hame ($tietue, "e", "tee", "te");
result $i.alku, $i - alku;
elseif (viive in $tietue.jatko) then
choose $i in hame ($tietue, "ve", "vee", "ve")
+ taivutuskaava ($tietue,
[omistusliite: "pee",
omanto_n: "pee",
olento_nA: "pee",
tulento_ksi: "pee",
sisäolento_ssA: "pee",
sisätulento_seen: "pee",
ulkopaikallissija_llA: "pee",
vajanto_ttA: "pee",
johdin_tOn: "pee",
johdin_inen: "pe",
nimentö_t: "pee",
omanto_iT: "pe",
osanto_itA: "pe",
olento_inA: "pe",
sija_monikko_1: "pe",
sisätulento_ihin: "pe",
sisätulento_isiin: "pe",
ulkopaikallissija_illA: "pe",
vajanto_ittA: "pe",
seuranto_ine: "pe"]);
result $i.alku, $i - alku;
######################################################
elseif (terve in $tietue.jatko) then
choose $i in hame ($tietue, "", "e", "");
result $i.alku, $i - alku;
elseif (ori in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("i", "", "i", "i",
[osanto_ttA: ""], sisätulento_seen,
"i", "") +
[johdin_tOn: "i",
johdin_mAinen: "",
johdin_inen: "i"] +
monikko7 ("", "", "",
[omanto_iT: "", omanto_ten: "t"],
[osanto_itA: ""],
[sisätulento_isiin: "",
sisätulento_ihin: ""], "")) +
taivutuskaava ($tietue,
[omanto_n: "hi",
olento_nA: "hi",
omanto_en: "hi",
omanto_ten: "hit",
osanto_itA: "h"]);
# Ei tunnista monikon sisätulentoa orihisin.
result $i.alku, $i - alku;
###########################################################3
elseif (kiiru in $tietue.jatko) then
choose $i in hame ($tietue, "", U($tietue), "");
result $i.alku, $i - alku;
###########################################################3
elseif (askel in $tietue.jatko) then
choose $i in taival ($tietue, "", "");
result $i.alku, $i - alku;
elseif (auer in $tietue.jatko) then
choose $i in taival ($tietue, "ter", "er");
result $i.alku, $i - alku;
elseif (kannel in $tietue.jatko) then
choose $i in taival ($tietue, "tel", "nel");
result $i.alku, $i - alku;
elseif (kinner in $tietue.jatko) then
choose $i in taival ($tietue, "ter", "ner");
result $i.alku, $i - alku;
elseif (ommel in $tietue.jatko) then
choose $i in taival ($tietue, "pel", "mel");
result $i.alku, $i - alku;
elseif (penger in $tietue.jatko) then
choose $i in taival ($tietue, "ker", "ger");
result $i.alku, $i - alku;
elseif (piennar in $tietue.jatko) then
choose $i in taival ($tietue, "tar", "nar");
result $i.alku, $i - alku;
elseif (taival in $tietue.jatko) then
choose $i in taival ($tietue, "pal", "val");
result $i.alku, $i - alku;
elseif (säen in $tietue.jatko) then
choose $i in taival ($tietue, "ken", "en");
result $i.alku, $i - alku;
elseif (udar in $tietue.jatko) then
choose $i in taival ($tietue, "tar", "dar");
result $i.alku, $i - alku;
##############################################
# elseif (isoäiti in $tietue.jatko) then
# elseif (nuoripari in $tietue.jatko) then
elseif (minä in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
[omanto_n: "u",
kohdanto_t: "u",
osanto_A: "u",
olento_nA: "u",
tulento_ksi: "u",
sisäolento_ssA: "u",
sisätulento_Vn: "u",
ulkopaikallissija_llA: "u"])
+ <taivutus ($tietue, "ä", <liitesana, loppu>, [äs: ä])>;
result $i.alku, $i - alku;
elseif (hän in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
[nimentö: "",
omanto_n: "e",
kohdanto_t: "e",
osanto_tA: "",
olento_nA: "e",
tulento_ksi: "e",
sisäolento_ssA: "e",
sisätulento_Vn: "e",
ulkopaikallissija_llA: "e"]);
result $i.alku, $i - alku;
elseif (me in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
[nimentö: "",
omanto_idän: "",
kohdanto_idät: "",
osanto_itA: "",
olento_inA: "",
sija_monikko_1: "",
sisätulento_ihin: "",
ulkopaikallissija_illA: ""]);
result $i.alku, $i - alku;
elseif (joka in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
[nimentö: "ka",
omanto_nkA: "",
osanto_tA: "",
olento_nA: "",
tulento_ksi: "",
sisäolento_ssA: "",
sisätulento_hVn: "",
sisätulento_nne: "",
ulkopaikallissija_llA: ""] +
monikko7 ([nimentö_tkA: ""], "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
elseif (kymmenen in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("e", "en", "e", "e",
[osanto_tA: ""], sisätulento_Vn,
"e", "") +
monikko7 ("e", "", "",
[omanto_ien: "", omanto_ten: ""],
[osanto_iA: ""],
[sisätulento_iin: ""], ""));
result $i.alku, $i - alku;
elseif (yö_yksikkö in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
yksikkö8 ("", "", "", "", [osanto_tA: ""],
sisätulento_hVn, "", "") +
[nimentö_t: "",
johdin_tOn: ""]);
result $i.alku, $i - alku;
elseif (yö_monikko in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
[johdin_inen: ""] +
monikko6 ("", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_ihin: ""], ""));
result $i.alku, $i - alku;
##%%%%%%%################
elseif (loitolla in $tietue.jatko) then
choose $i in taivutuskaava ($tietue,
[ulkopaikallissija_llA: ""])
+ sivumpana ($tietue, "m" + pA($tietue), "m" + mA($tietue));
result $i.alku, $i - alku;
elseif (sivumpana in $tietue.jatko) then
choose $i in sivumpana ($tietue, pA($tietue), mA($tietue));
result $i.alku, $i - alku;
elseif (keväämmällä in $tietue.jatko) then
choose $i in keväämmällä ($tietue, pA($tietue), mA($tietue));
result $i.alku, $i - alku;
######################################
# Teonsanat.
elseif (punoa in $tietue.jatko) then
choose $i in punoa ($tietue, "", "");
result $i.alku, $i - alku;
elseif (aikoa in $tietue.jatko) then
choose $i in punoa ($tietue, kO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (ampua in $tietue.jatko) then
choose $i in punoa_punottaa ($tietue, pU($tietue), mU($tietue));
result $i.alku, $i - alku;
elseif (asettua in $tietue.jatko) then
choose $i in punoa ($tietue, tU($tietue), U($tietue));
result $i.alku, $i - alku;
elseif (harppoa in $tietue.jatko) then
choose $i in punoa ($tietue, pO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (jakaantua in $tietue.jatko) then
choose $i in punoa ($tietue, tU($tietue), nU($tietue));
result $i.alku, $i - alku;
elseif (kaatua in $tietue.jatko) then
choose $i in punoa ($tietue, tU($tietue), dU($tietue));
result $i.alku, $i - alku;
elseif (kertoa in $tietue.jatko) then
choose $i in punoa ($tietue, tO($tietue), rO($tietue));
result $i.alku, $i - alku;
elseif (kiekua in $tietue.jatko) then
choose $i in punoa ($tietue, kU($tietue), U($tietue));
result $i.alku, $i - alku;
elseif (kieppua in $tietue.jatko) then
choose $i in punoa ($tietue, pU($tietue), U($tietue));
result $i.alku, $i - alku;
elseif (kumartua in $tietue.jatko) then
choose $i in punoa ($tietue, tU($tietue), rU($tietue));
result $i.alku, $i - alku;
elseif (leipoa in $tietue.jatko) then
choose $i in punoa ($tietue, pO($tietue), vO($tietue));
result $i.alku, $i - alku;
elseif (liukua in $tietue.jatko) then
choose $i in punoa ($tietue, kU($tietue), zU($tietue));
result $i.alku, $i - alku;
elseif (mankua in $tietue.jatko) then
choose $i in punoa ($tietue, kU($tietue), gU($tietue));
result $i.alku, $i - alku;
elseif (paleltua in $tietue.jatko) then
choose $i in punoa ($tietue, tU($tietue), lU($tietue));
result $i.alku, $i - alku;
elseif (penkoa in $tietue.jatko) then
choose $i in punoa ($tietue, kO($tietue), gO($tietue));
result $i.alku, $i - alku;
elseif (saapua in $tietue.jatko) then
choose $i in punoa ($tietue, pU($tietue), vU($tietue));
result $i.alku, $i - alku;
elseif (tahtoa in $tietue.jatko) then
choose $i in punoa ($tietue, tO($tietue), dO($tietue));
result $i.alku, $i - alku;
elseif (tempoa in $tietue.jatko) then
choose $i in punoa ($tietue, pO($tietue), mO($tietue));
result $i.alku, $i - alku;
elseif (viittoa in $tietue.jatko) then
choose $i in punoa ($tietue, tO($tietue), O($tietue));
result $i.alku, $i - alku;
######################################
elseif (muistaa in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, A($tietue), A($tietue), "", "")
+ muisto ($tietue)
+ muistua ($tietue);
result $i.alku, $i - alku;
elseif (aavistaa in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, A($tietue), A($tietue), "", "")
+ aavistus ($tietue);
result $i.alku, $i - alku;
elseif (alittaa in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, tA($tietue), A($tietue), "t", "")
+ taivutuskaava ($tietue, [johdin_Us_ksen: ""]);
result $i.alku, $i - alku;
elseif (astahtaa in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, tA($tietue), dA($tietue), "t", "d")
+ taivutuskaava ($tietue, [johdin_Us_ksen: "d"]); # Astahdus.
result $i.alku, $i - alku;
elseif (autioittaa in $tietue.jatko) then
choose $i in muistaa ($tietue, tA($tietue), A($tietue), "t", "");
result $i.alku, $i - alku;
elseif (heittää in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, tA($tietue), A($tietue), "t", "")
+ heitto ($tietue)
+ taivutuskaava ($tietue, [johdin_ntA: A($tietue)]); # Heitäntä.
result $i.alku, $i - alku;
elseif (hidastaa in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, A($tietue), A($tietue), "", "")
+ aavistus ($tietue) # Hidastus.
+ muistua ($tietue); # Hidastua.
result $i.alku, $i - alku;
elseif (hohtaa in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, tA($tietue), dA($tietue), "t", "d")
+ hohto ($tietue)
+ hohdattaa ($tietue, "t", "d");
result $i.alku, $i - alku;
elseif (jättää in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, tA($tietue), A($tietue), "t", "")
+ heitto ($tietue)
+ hohdattaa ($tietue, "", "");
result $i.alku, $i - alku;
elseif (inttää in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, tA($tietue), A($tietue), "t", "");
result $i.alku, $i - alku;
elseif (itää in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, tA($tietue), dA($tietue), "t", "d");
result $i.alku, $i - alku;
elseif (hujahtaa in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, "h" + tA($tietue), "h" + dA($tietue), "ht", "hd")
+ taivutuskaava ($tietue, [johdin_Us_ksen: "hd"]) # Hujahdus.
+ punottaa ($tietue, U($tietue)); # Hujauttaa.
result $i.alku, $i - alku;
elseif (kirjoittaa in $tietue.jatko) then
choose $i in muistaa ($tietue, "it" + tA($tietue), "i" + tA($tietue), "itt", "it") +
taivutuskaava ($tietue, [johdin_Us_ksen: "it"]) + # Kirjoitus.
kirjoittautua ($tietue, "itt") + # Kirjoittautua.
kirjoitella ($tietue, "it"); # Kirjoitella.
result $i.alku, $i - alku;
elseif (ammottaa in $tietue.jatko) then
choose $i in muistaa ($tietue, "t" + tA($tietue), tA($tietue), "tt", "t") +
taivutuskaava ($tietue, [johdin_Us_ksen: "t"]) + # Ammotus.
kirjoittautua ($tietue, "tt") + # Ammottautua.
kirjoitella ($tietue, "t"); # Ammotella.
result $i.alku, $i - alku;
elseif (kyntää in $tietue.jatko) then
choose $i in muistaa ($tietue, tA($tietue), nA($tietue), "t", "n");
result $i.alku, $i - alku;
elseif (kulahtaa in $tietue.jatko) then
choose $i in muistaa ($tietue, tA($tietue), dA($tietue), "t", "d");
result $i.alku, $i - alku;
elseif (loistaa in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, A($tietue), A($tietue), "", "")
+ muisto ($tietue);
result $i.alku, $i - alku;
# Longertaa-sanan frekvenssi on 10, joten se ei tule mukaan Voikon sanastoon,
# mutta lisätään tämä siltä varalta, että frekvenssiä muutetaan.
#
elseif (longertaa in $tietue.jatko) then
choose $i in muistaa_muistella ($tietue, tA($tietue), rA($tietue), "t", "r")
+ taivutuskaava ($tietue, [johdin_Us_ksen: "r"]);
result $i.alku, $i - alku;
elseif (purkaa in $tietue.jatko) then
choose $i in muistaa ($tietue, kA($tietue), A($tietue), "k", "");
result $i.alku, $i - alku;
elseif (sulaa in $tietue.jatko) then
choose $i in muistaa ($tietue, A($tietue), A($tietue), "", "");
result $i.alku, $i - alku;
######################################
elseif (huutaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "d") + muistella ($tietue, "t", "d");
result $i.alku, $i - alku;
elseif (alentaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "n") + muistella ($tietue, "t", "n");
result $i.alku, $i - alku;
elseif (soutaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "d")
+ tositavan_kertoma($tietue, "t", "d") # Souti
+ muistella ($tietue, "t", "d"); # Soudella.
result $i.alku, $i - alku;
elseif (vuotaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "d");
result $i.alku, $i - alku;
######################################
elseif (puoltaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "l");
result $i.alku, $i - alku;
elseif (juurtaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "r");
result $i.alku, $i - alku;
elseif (saksantaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "n");
result $i.alku, $i - alku;
elseif (sukeltaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "l")
+ sana_Vs ($tietue, lU($tietue)) # Sukellus.
+ muistella ($tietue, "t", "l"); # Sukellella.
result $i.alku, $i - alku;
elseif (jäykentää in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "n")
+ sana_Vs ($tietue, nU($tietue)) # Jäykennys.
+ muistella ($tietue, "t", "n"); # Jäykennellä.
result $i.alku, $i - alku;
elseif (paleltaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "l")
+ sana_Vs ($tietue, lU($tietue));
result $i.alku, $i - alku;
elseif (nuotintaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "n")
+ sana_Vs ($tietue, nU($tietue));
result $i.alku, $i - alku;
######################################
elseif (murtaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "r")
+ muistella ($tietue, "t", "r")
+ murros ($tietue)
+ murto ($tietue);
result $i.alku, $i - alku;
elseif (musertaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "r")
+ muistella ($tietue, "t", "r")
+ sana_Vs ($tietue, rV($tietue));
result $i.alku, $i - alku;
######################################
elseif (pahentaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "n")
+ taivutuskaava ($tietue, [johdin_Us_ksen: "n"]) # Pahennus.
+ muistella ($tietue, "t", "n")
+ pahentua ($tietue);
result $i.alku, $i - alku;
elseif (juontaa in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "n")
+ juonto ($tietue)
+ muistella ($tietue, "t", "n");
result $i.alku, $i - alku;
elseif (pyörtää in $tietue.jatko) then
choose $i in huutaa ($tietue, "t", "r")
+ pyörtö ($tietue)
+ muistella ($tietue, "t", "r");
result $i.alku, $i - alku;
######################################
elseif (kaivaa in $tietue.jatko) then
choose $i in kaivaa ($tietue, "", "", kantaja)
+ muistella ($tietue, "", "") # Kaivella.
+ taivutuskaava ($tietue, [johdin_ntA: A($tietue)]); # Kaivanta.
result $i.alku, $i - alku;
elseif (antaa in $tietue.jatko) then
choose $i in kaivaa ($tietue, "t", "n", kantaja)
+ punottaa ($tietue, nA($tietue)) # Annattaa.
+ muistella ($tietue, "t", "n"); # Annella.
result $i.alku, $i - alku;
elseif (jakaa in $tietue.jatko) then
choose $i in kaivaa ($tietue, "k", "", kantaja);
result $i.alku, $i - alku;
elseif (kapsaa in $tietue.jatko) then
choose $i in taivutuskaava($tietue, [kestämän_tekijäpääte_y3: A($tietue),
nimitapa_1_A: A($tietue),
ehtotapa: A($tietue),
johdin_ntA: A($tietue)]);
result $i.alku, $i - alku;
elseif (lappaa in $tietue.jatko) then
choose $i in kaivaa ($tietue, "p", "", kantaja);
result $i.alku, $i - alku;
elseif (palaa in $tietue.jatko) then
choose $i in kaivaa ($tietue, "", "", kantaja);
result $i.alku, $i - alku;
elseif (raataa in $tietue.jatko) then
choose $i in kaivaa ($tietue, "t", "d", kantaja)
+ muistella ($tietue, "t", "d") # Raadella.
+ taivutuskaava ($tietue, [johdin_ntA: dA($tietue)]); # Raadanta.
result $i.alku, $i - alku;
elseif (saattaa in $tietue.jatko) then
choose $i in kaivaa ($tietue, "t", "", kantaja)
+ muistella ($tietue, "t", ""); # Saatella.
result $i.alku, $i - alku;
######################################
elseif (haastaa in $tietue.jatko) then
choose $i in haastaa_haastella ($tietue, "", "");
result $i.alku, $i - alku;
elseif (kaihtaa in $tietue.jatko) then
choose $i in haastaa_haastella ($tietue, "t", "d");
result $i.alku, $i - alku;
elseif (laittaa in $tietue.jatko) then
choose $i in haastaa_haastella ($tietue, "t", "");
result $i.alku, $i - alku;
######################################
elseif (paistaa in $tietue.jatko) then
choose $i in paistaa ($tietue, "", "");
result $i.alku, $i - alku;
elseif (virkkaa in $tietue.jatko) then
choose $i in paistaa ($tietue, "k", "");
result $i.alku, $i - alku;
elseif (paahtaa in $tietue.jatko) then
choose $i in paistaa ($tietue, "t", "d");
result $i.alku, $i - alku;
elseif (taittaa in $tietue.jatko) then
choose $i in paistaa ($tietue, "t", "");
result $i.alku, $i - alku;
######################################
elseif (saartaa in $tietue.jatko) then
choose $i in tositavan_kertoman_vahva_aste ($tietue, "t")
+ tositavan_kertoman_vahva_aste ($tietue, "s")
+ käskytapa ($tietue, rA($tietue))
+ taivutuskaava ($tietue,
tositapa ($tietue, tA($tietue), rA($tietue),
tO($tietue), rO($tietue),
tositapa_4_tt ("re")) +
ehtotapa_ttA ($tietue, tA($tietue), "re") +
mahtotapa_ne_ttA ($tietue, tA($tietue), "re") +
käskytapa_ttA ($tietue, tA($tietue), "re") +
nimitapa_laatutapa ($tietue, tA($tietue), "re"))
+ tekijännimi ($tietue, tA($tietue), kulkija);
result $i.alku, $i - alku;
######################################
elseif (laskea in $tietue.jatko) then
choose $i in laskea_laskeskella ($tietue, "", "");
result $i.alku, $i - alku;
elseif (hakea in $tietue.jatko) then
choose $i in laskea_laskeskella ($tietue, "k", "");
result $i.alku, $i - alku;
elseif (polkea in $tietue.jatko) then
choose $i in laskea_laskeskella ($tietue, "k", "j");
result $i.alku, $i - alku;
elseif (tunkea in $tietue.jatko) then
choose $i in laskea_laskeskella ($tietue, "k", "g");
result $i.alku, $i - alku;
elseif (kutea in $tietue.jatko) then
choose $i in laskea_laskeskella ($tietue, "t", "d");
result $i.alku, $i - alku;
elseif (rypeä in $tietue.jatko) then
choose $i in laskea_laskeskella ($tietue, "p", "v");
result $i.alku, $i - alku;
######################################
elseif (tuntea in $tietue.jatko) then
choose $i in käskytapa ($tietue, "ne")
+ taivutuskaava ($tietue,
tositapa ($tietue, "te", "ne", "s", "s",
tositapa_4_tt ("ne")) +
ehtotapa_ttA ($tietue, "t", "ne") +
mahtotapa_ne_ttA ($tietue, "te", "ne") +
käskytapa_ttA ($tietue, "te", "ne") +
nimitapa_laatutapa_i ($tietue, "te", "ne", "ti"))
+ tekijännimi ($tietue, "ti", kulkija);
result $i.alku, $i - alku;
######################################
elseif (potea in $tietue.jatko) then
choose $i in käskytapa ($tietue, "de")
+ taivutuskaava ($tietue,
tositapa ($tietue, "te", "de", "t", "d",
tositapa_4_tt ("de")) +
ehtotapa_ttA ($tietue, "t", "de") +
mahtotapa_ne_ttA ($tietue, "te", "de") +
käskytapa_ttA ($tietue, "te", "de") +
nimitapa_laatutapa_i ($tietue, "te", "de", "ti") +
[johdin_ntA: "de"])
+ tekijännimi ($tietue, "ti", kulkija);
result $i.alku, $i - alku;
######################################
elseif (lähteä in $tietue.jatko) then
choose $i in tositavan_kertoma ($tietue, "ks", "ks") # Läks+imme
+ ehtotapa2 ($tietue, "ks") # Läks+isi.
+ käskytapa ($tietue, "hde")
+ taivutuskaava ($tietue,
tositapa ($tietue, "hte", "hde", "ht", "hd",
tositapa_4_tt ("hde")) +
ehtotapa_ttA ($tietue, "ht", "hde") + # Läht+isi.
mahtotapa_ne_ttA ($tietue, "hte", "hde") +
käskytapa_ttA ($tietue, "hte", "hde") +
nimitapa_laatutapa_i ($tietue, "hte", "hde", "hti"))
+ tekijännimi ($tietue, "hti", kulkija)
+ tekijännimi ($tietue, "ksi", kulkija);
result $i.alku, $i - alku;
######################################
elseif (sallia in $tietue.jatko) then
choose $i in sallia ($tietue, "", "");
result $i.alku, $i - alku;
elseif (empiä in $tietue.jatko) then
choose $i in sallia ($tietue, "p", "m");
result $i.alku, $i - alku;
elseif (hylkiä in $tietue.jatko) then
choose $i in sallia ($tietue, "k", "j");
result $i.alku, $i - alku;
elseif (kaapia in $tietue.jatko) then
choose $i in sallia ($tietue, "p", "v");
result $i.alku, $i - alku;
elseif (kontia in $tietue.jatko) then
choose $i in sallia ($tietue, "t", "n");
result $i.alku, $i - alku;
elseif (laatia in $tietue.jatko) then
choose $i in sallia ($tietue, "t", "d");
result $i.alku, $i - alku;
elseif (loikkia in $tietue.jatko) then
choose $i in sallia ($tietue, "k", "");
result $i.alku, $i - alku;
elseif (onkia in $tietue.jatko) then
choose $i in sallia ($tietue, "k", "g");
result $i.alku, $i - alku;
elseif (oppia in $tietue.jatko) then
choose $i in sallia ($tietue, "p", "");
result $i.alku, $i - alku;
elseif (poikia in $tietue.jatko) then
choose $i in sallia ($tietue, "k", "'");
result $i.alku, $i - alku;
elseif (sättiä in $tietue.jatko) then
choose $i in sallia ($tietue, "t", "");
result $i.alku, $i - alku;
######################################
elseif (voida in $tietue.jatko) then
choose $i in voida ($tietue, "i", "");
result $i.alku, $i - alku;
elseif (kanavoida in $tietue.jatko) then
choose $i in kanavoida ($tietue, "i", "")
+ haravoitua ($tietue); # Kanavoitua.
result $i.alku, $i - alku;
######################################
elseif (saada in $tietue.jatko) then
choose $i in voida ($tietue, A($tietue), "");
result $i.alku, $i - alku;
######################################
elseif (myydä in $tietue.jatko) then
choose $i in voida ($tietue, U($tietue), "");
result $i.alku, $i - alku;
######################################
elseif (juoda in $tietue.jatko) then
choose $i in voida ($tietue, UO($tietue), O($tietue));
result $i.alku, $i - alku;
######################################
elseif (viedä in $tietue.jatko) then
choose $i in voida ($tietue, "ie", "e");
result $i.alku, $i - alku;
######################################
elseif (käydä in $tietue.jatko) then
choose $i in voida ($tietue, U($tietue), "v");
result $i.alku, $i - alku;
######################################
elseif (nuolaista in $tietue.jatko) then
choose $i in nuolaista2 ($tietue);
result $i.alku, $i - alku;
elseif (rangaista in $tietue.jatko) then
choose $i in nuolaista ($tietue, "kais", "gais")
+ sana_U ($tietue, "kais");
result $i.alku, $i - alku;
elseif (kalista in $tietue.jatko) then
choose $i in nuolaista ($tietue, "is", "is")
+ kihinä ($tietue); # Kalina.
result $i.alku, $i - alku;
elseif (seistä in $tietue.jatko) then
choose $i in seistä ($tietue);
result $i.alku, $i - alku;
elseif (nousta in $tietue.jatko) then
choose $i in nuolaista ($tietue, "", "")
+ sana_U ($tietue + [äs: ääntiösointu($tietue)], ""); # Nousu.
result $i.alku, $i - alku;
elseif (vavista in $tietue.jatko) then
choose $i in nuolaista ($tietue, "pis", "vis");
result $i.alku, $i - alku;
######################################
elseif (tulla in $tietue.jatko) then
choose $i in tulla ($tietue, tositapa_4_l(""),
mahtotapa_le,
nimitapa_1_lA, "l",
laatutapa_2_lUt ($tietue, ""));
result $i.alku, $i - alku;
elseif (nuolla in $tietue.jatko) then
choose $i in tulla ($tietue, tositapa_4_l(""),
mahtotapa_le,
nimitapa_1_lA, "l",
laatutapa_2_lUt ($tietue, ""))
+ muistella ($tietue, "esk", "esk"); # Nuoleskella.
result $i.alku, $i - alku;
######################################
elseif (purra in $tietue.jatko) then
choose $i in tulla ($tietue, tositapa_4_r(""),
mahtotapa_re,
nimitapa_1_rA, "r",
laatutapa_2_rUt ($tietue, "", ""))
+ taivutuskaava ($tietue, [johdin_ntA: "e"]);
result $i.alku, $i - alku;
######################################
elseif (mennä in $tietue.jatko) then
choose $i in tulla ($tietue, tositapa_4_n(""),
mahtotapa_ne,
nimitapa_1_nA, "n",
laatutapa_2_nUt ($tietue, "", ""));
result $i.alku, $i - alku;
######################################
elseif (katsella in $tietue.jatko) then
choose $i in katsella ($tietue, "", "");
result $i.alku, $i - alku;
elseif (kohdella in $tietue.jatko) then
choose $i in katsella ($tietue, "tel", "del");
result $i.alku, $i - alku;
elseif (nakella in $tietue.jatko) then
choose $i in katsella ($tietue, "kel", "el");
result $i.alku, $i - alku;
elseif (takellella in $tietue.jatko) then
choose $i in katsella ($tietue, "tel", "lel");
result $i.alku, $i - alku;
elseif (ommella in $tietue.jatko) then
choose $i in katsella ($tietue, "pel", "mel");
result $i.alku, $i - alku;
elseif (pienennellä in $tietue.jatko) then
choose $i in katsella ($tietue, "tel", "nel");
result $i.alku, $i - alku;
elseif (tapella in $tietue.jatko) then
choose $i in katsella ($tietue, "pel", "el");
result $i.alku, $i - alku;
elseif (askarrella in $tietue.jatko) then
choose $i in katsella ($tietue, "tel", "rel");
result $i.alku, $i - alku;
elseif (aatella in $tietue.jatko) then
choose $i in katsella ($tietue, "tel", "el");
result $i.alku, $i - alku;
elseif (kirjoitella in $tietue.jatko) then
choose $i in katsella ($tietue, "tel", "el");
result $i.alku, $i - alku;
######################################
elseif (arvailla in $tietue.jatko) then
choose $i in arvailla ($tietue);
result $i.alku, $i - alku;
######################################
elseif (haravoida in $tietue.jatko) then
choose $i in tositavan_kestämä_y3 ($tietue, "i")
+ käskytapa ($tietue, "i")
+ taivutuskaava ($tietue,
tositapa_ei_kestämä_y3
($tietue, "i", "i", "", "",
tositapa_4_d ("i")) +
ehtotapa_tA ($tietue, "", "i") +
mahtotapa_ne_tA ($tietue, "i", "i") +
käskytapa_tA ($tietue, "i", "i") +
[nimitapa_1_dA: "i",
nimitapa_2: "id",
nimitapa_2_tA: "i"] +
nimitapa_3_tA_4 ($tietue, "i", "i") +
laatutapa_1_tA ($tietue, "i", "i") +
laatutapa_2_nUt_dU ($tietue, "i", "i") +
[johdin_nti: "i"])
+ taivutuskaava ($tietue,
tositapa0 ($tietue, "itse", "itse", "its", "its") +
[tositavan_kertoma_tiin: "it",
ehtotapa: "its"])
+ tekijännimi ($tietue, "i", kantaja)
+ tekijännimi ($tietue, "itsi", kulkija)
+ haravoitua ($tietue);
result $i.alku, $i - alku;
######################################
elseif (valita in $tietue.jatko) then
choose $i in ehtotapa2 ($tietue, "tse") # Valitse+isi.
+ käskytapa ($tietue, "tse")
+ taivutuskaava ($tietue,
tositapa ($tietue, "tse", "tse", "ts", "ts",
tositapa_4_tt ("")) +
ehtotapa_ttA ($tietue, "ts", "") +
mahtotapa_ne_ttA ($tietue, "n", "") +
käskytapa_ttA ($tietue, "t", "") +
[nimitapa_1_tA: "",
nimitapa_2: "t",
nimitapa_2_ttA: ""] +
nimitapa_3_ttA_4 ($tietue, "tse", "tse") +
laatutapa_1_ttA ($tietue, "tse", "") +
laatutapa_2_nUt_ttU ($tietue, "n", "") +
[johdin_ntA: ""])
+ tekijännimi ($tietue, "tsi", kulkija);
result $i.alku, $i - alku;
######################################
elseif (juosta in $tietue.jatko) then
choose $i in käskytapa ($tietue, "kse")
+ taivutuskaava ($tietue,
tositapa ($tietue, "kse", "kse", "ks", "ks",
tositapa_4_t ("s")) +
ehtotapa_tA ($tietue, "ks", "s") +
mahtotapa_se_tA ($tietue, "s", "s") +
käskytapa_tA ($tietue, "s", "s") +
[nimitapa_1_tA: "s",
nimitapa_2: "st",
nimitapa_2_tA: "s"] +
nimitapa_3_tA_4 ($tietue, "kse", "s") +
laatutapa_1_tA ($tietue, "kse", "s") +
laatutapa_2_sUt ($tietue, "s"))
+ tekijännimi ($tietue, "ksi", kulkija);
result $i.alku, $i - alku;
######################################
elseif (nähdä in $tietue.jatko) then
choose $i in käskytapa ($tietue, "e")
+ taivutuskaava ($tietue,
tositapa ($tietue, "ke", "e", "k", "",
tositapa_4_d ("h")) +
ehtotapa_tA ($tietue, "k", "h") +
mahtotapa_ne_tA ($tietue, "h", "h") +
käskytapa_tA ($tietue, "h", "h") +
[nimitapa_1_dA: "h",
nimitapa_2: "hd",
nimitapa_2_tA: "h"] +
nimitapa_3_tA_4 ($tietue, "ke", "h") +
laatutapa_1_tA ($tietue, "ke", "h") +
laatutapa_2_nUt_dU ($tietue, "h", "h"))
+ tekijännimi ($tietue, "ki", kulkija);
result $i.alku, $i - alku;
######################################
elseif (aleta in $tietue.jatko) then
choose $i in aleta ($tietue, "", "")
+ alentaa ($tietue, "")
+ alentua ($tietue, "")
+ alennella ($tietue, "");
result $i.alku, $i - alku;
elseif (edetä in $tietue.jatko) then
choose $i in aleta ($tietue, "te", "de");
result $i.alku, $i - alku;
elseif (erata in $tietue.jatko) then
choose $i in aleta ($tietue, kA($tietue), A($tietue));
result $i.alku, $i - alku;
elseif (hapata in $tietue.jatko) then
choose $i in aleta ($tietue, pA($tietue), A($tietue));
result $i.alku, $i - alku;
elseif (kangeta in $tietue.jatko) then
choose $i in aleta ($tietue, "ke", "ge");
result $i.alku, $i - alku;
elseif (kaveta in $tietue.jatko) then
choose $i in aleta ($tietue, "pe", "ve")
+ alentaa ($tietue, "ve")
+ alennella ($tietue, "ve");
result $i.alku, $i - alku;
elseif (kevetä in $tietue.jatko) then
choose $i in aleta ($tietue, "pe", "ve") + aleta ($tietue, "ve", "ve")
+ alentaa ($tietue, "ve")
+ alennella ($tietue, "ve");
result $i.alku, $i - alku;
elseif (leudota in $tietue.jatko) then
choose $i in aleta ($tietue, tO($tietue), dO($tietue));
result $i.alku, $i - alku;
elseif (loitota in $tietue.jatko) then
choose $i in aleta ($tietue, tO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (lämmetä in $tietue.jatko) then
choose $i in aleta ($tietue, "pe", "me");
result $i.alku, $i - alku;
elseif (mädätä in $tietue.jatko) then
choose $i in aleta ($tietue, tA($tietue), dA($tietue));
result $i.alku, $i - alku;
elseif (suipeta in $tietue.jatko) then
choose $i in aleta ($tietue, "pe", "e");
result $i.alku, $i - alku;
elseif (tarjeta in $tietue.jatko) then
choose $i in aleta ($tietue, "ke", "je");
result $i.alku, $i - alku;
elseif (ulota in $tietue.jatko) then
choose $i in aleta ($tietue, kO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (vaieta in $tietue.jatko) then
choose $i in aleta ($tietue, "ke", "e");
result $i.alku, $i - alku;
######################################
elseif (salata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, A($tietue), A($tietue));
result $i.alku, $i - alku;
elseif (digata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, gA($tietue), A($tietue))
+ salaus ($tietue, gA($tietue));
result $i.alku, $i - alku;
elseif (hangata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, kA($tietue), gA($tietue));
result $i.alku, $i - alku;
elseif (huiskata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, A($tietue), A($tietue))
+ huiskaista ($tietue, A($tietue));
result $i.alku, $i - alku;
elseif (kammata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, pA($tietue), mA($tietue));
result $i.alku, $i - alku;
elseif (kelvata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, pA($tietue), vA($tietue));
result $i.alku, $i - alku;
elseif (kerrata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, tA($tietue), rA($tietue));
result $i.alku, $i - alku;
elseif (kuitata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, tA($tietue), A($tietue));
result $i.alku, $i - alku;
elseif (ladata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, tA($tietue), dA($tietue));
result $i.alku, $i - alku;
elseif (peljätä in $tietue.jatko) then
choose $i in salata_salailla ($tietue, kA($tietue), jA($tietue));
result $i.alku, $i - alku;
elseif (pakata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, kA($tietue), A($tietue));
result $i.alku, $i - alku;
elseif (lobata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, bA($tietue), A($tietue));
result $i.alku, $i - alku;
elseif (pompata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, pA($tietue), A($tietue));
result $i.alku, $i - alku;
elseif (saneerata in $tietue.jatko) then
choose $i in salata ($tietue, A($tietue), A($tietue));
result $i.alku, $i - alku;
elseif (suunnata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, tA($tietue), nA($tietue));
result $i.alku, $i - alku;
elseif (taata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, kA($tietue), A($tietue));
result $i.alku, $i - alku;
elseif (vallata in $tietue.jatko) then
choose $i in salata_salailla ($tietue, tA($tietue), lA($tietue));
result $i.alku, $i - alku;
######################################
elseif (katketa in $tietue.jatko) then
choose $i in katketa ($tietue, "", "");
result $i.alku, $i - alku;
elseif (todeta in $tietue.jatko) then
choose $i in katketa ($tietue, "te", "de");
result $i.alku, $i - alku;
elseif (langeta in $tietue.jatko) then
choose $i in katketa ($tietue, "ke", "ge");
result $i.alku, $i - alku;
elseif (lohjeta in $tietue.jatko) then
choose $i in katketa ($tietue, "ke", "je");
result $i.alku, $i - alku;
elseif (poiketa in $tietue.jatko) then
choose $i in katketa ($tietue, "ke", "e");
result $i.alku, $i - alku;
elseif (kammeta in $tietue.jatko) then
choose $i in katketa ($tietue, "pe", "me");
result $i.alku, $i - alku;
elseif (ruveta in $tietue.jatko) then
choose $i in katketa ($tietue, "pe", "ve");
result $i.alku, $i - alku;
elseif (lotota in $tietue.jatko) then
choose $i in katketa ($tietue, tO($tietue), O($tietue));
result $i.alku, $i - alku;
######################################
elseif (selvitä in $tietue.jatko) then
choose $i in selvitä ($tietue, "i", "i");
result $i.alku, $i - alku;
elseif (keritä in $tietue.jatko) then
choose $i in selvitä ($tietue, "ki", "i");
result $i.alku, $i - alku;
elseif (lämmitä in $tietue.jatko) then
choose $i in selvitä ($tietue, "pi", "mi");
result $i.alku, $i - alku;
elseif (hellitä in $tietue.jatko) then
choose $i in selvitä ($tietue, "ti", "li");
result $i.alku, $i - alku;
######################################
elseif (kohota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, "", "");
result $i.alku, $i - alku;
elseif (irrota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, tO($tietue), rO($tietue));
result $i.alku, $i - alku;
elseif (kadota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, tO($tietue), dO($tietue));
result $i.alku, $i - alku;
elseif (puota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, tO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (kimmota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, pO($tietue), mO($tietue));
result $i.alku, $i - alku;
elseif (laota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, kO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (lingota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, kO($tietue), gO($tietue));
result $i.alku, $i - alku;
elseif (netota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, tO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (saota in $tietue.jatko) then
choose $i in kohota ($tietue, kO($tietue), O($tietue));
result $i.alku, $i - alku;
elseif (siivota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, "", "")
+ taivutuskaava ($tietue, [johdin_Us_ksen: ""]);
result $i.alku, $i - alku;
elseif (turvota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, pO($tietue), vO($tietue));
result $i.alku, $i - alku;
elseif (upota in $tietue.jatko) then
choose $i in kohota_kohoilla ($tietue, pO($tietue), O($tietue));
result $i.alku, $i - alku;
######################################
elseif (haluta in $tietue.jatko) then
choose $i in haluta ($tietue, "", "");
result $i.alku, $i - alku;
elseif (bingota in $tietue.jatko) then
choose $i in haluta ($tietue, "", "");
result $i.alku, $i - alku;
elseif (juoruta in $tietue.jatko) then
choose $i in haluta ($tietue, "", "")
+ salailla ($tietue, ""); # Juoruilla.
result $i.alku, $i - alku;
elseif (kavuta in $tietue.jatko) then
choose $i in haluta ($tietue, pU($tietue), vU($tietue))
+ salailla ($tietue, pU($tietue)); # Kapuilla.
result $i.alku, $i - alku;
elseif (kummuta in $tietue.jatko) then
choose $i in haluta ($tietue, pU($tietue), mU($tietue))
+ salailla ($tietue, pU($tietue)); # Kumpuilla.
result $i.alku, $i - alku;
elseif (luututa in $tietue.jatko) then
choose $i in haluta ($tietue, tU($tietue), U($tietue))
+ salailla ($tietue, tU($tietue)); # Luuttuilla.
result $i.alku, $i - alku;
elseif (ryöpytä in $tietue.jatko) then
choose $i in haluta ($tietue, pU($tietue), U($tietue))
+ salailla ($tietue, pU($tietue)); # Ryöppyillä.
result $i.alku, $i - alku;
elseif (takuta in $tietue.jatko) then
choose $i in haluta ($tietue, kU($tietue), U($tietue))
+ salailla ($tietue, kU($tietue)); # Takkuilla.
result $i.alku, $i - alku;
elseif (silputa in $tietue.jatko) then
choose $i in haluta ($tietue, pU($tietue), U($tietue));
result $i.alku, $i - alku;
elseif (vivuta in $tietue.jatko) then
choose $i in haluta ($tietue, pU($tietue), vU($tietue));
result $i.alku, $i - alku;
######################################
elseif (kihistä in $tietue.jatko) then
choose $i in kihistä ($tietue)
+ kihinä ($tietue)
+ kihahtaa ($tietue)
+ kihauttaa_kihautella ($tietue);
result $i.alku, $i - alku;
elseif (kitistä in $tietue.jatko) then
choose $i in kihistä ($tietue) + kihinä ($tietue);
result $i.alku, $i - alku;
######################################
elseif (taitaa in $tietue.jatko) then
choose $i in käskytapa ($tietue, dA($tietue))
+ taivutuskaava ($tietue,
tositapa ($tietue, tA($tietue), dA($tietue), "s", "s",
tositapa_4_tt ("de")) +
ehtotapa_ttA ($tietue, tA($tietue), "de") +
mahtotapa_ne_ttA ($tietue, tA($tietue), "de") +
käskytapa_ttA ($tietue, tA($tietue), "de") +
nimitapa_laatutapa ($tietue, tA($tietue), "de"))
+ taivutuskaava ($tietue,
[mahtotapa_ne: "n"] + # Tain+ne+e.
laatutapa_2_nUt_ttU ($tietue, "n", ""))
+ <taivutus ($tietue, "t", <tositavan_kertoma_tiin>, [])> # Tait+tiin.
+ tekijännimi ($tietue, tA($tietue), kantaja);
result $i.alku, $i - alku;
######################################
elseif (antautua in $tietue.jatko) then
choose $i in antautua ($tietue, tU($tietue), dU($tietue));
result $i.alku, $i - alku;
######################################
elseif (kaata in $tietue.jatko) then
choose $i in käskytapa ($tietue, dA($tietue))
+ taivutuskaava ($tietue,
tositapa ($tietue, tA($tietue), dA($tietue), "s", "s",
tositapa_4_tt ("")) +
ehtotapa_ttA ($tietue, tA($tietue), "de") +
mahtotapa_ne_ttA ($tietue, "n", "de") +
käskytapa_ttA ($tietue, "t", "de") +
[nimitapa_1_tA: "",
nimitapa_2: "d",
nimitapa_2_ttA: "de"] +
nimitapa_3_ttA_4 ($tietue, tA($tietue), "de") +
laatutapa_1_ttA ($tietue, tA($tietue), "de") +
laatutapa_2_nUt_ttU ($tietue, "n", ""))
+ tekijännimi ($tietue, tA($tietue), kantaja);
result $i.alku, $i - alku;
######################################
# Vaillinnainen taivutus.
#
# elseif (kumajaa in $tietue.jatko) then
# elseif (kaikaa in $tietue.jatko) then
######################################
elseif (olla in $tietue.jatko) then
choose $i in <taivutus ($tietue, "",
<nimitapa_1_lA, ehtotapa, ehtotapa_tA,
käskytapa, käskytapa_tA,
nimitapa_2_tA, nimitapa_3_tA, johdin_tAVA,
johdin_lUt, johdin_tU_lU_oltu>
+ @kertoman_tekijäpääte, []),
taivutus ($tietue, "l", <nimitapa_2>, []),
taivutus ($tietue, "e",
<nimitapa_3, nimitapa_45,
johdin_vA>, []),
taivutus ($tietue, "e", <liitesana, loppu>,
[tapaluokka: käskytapa, aikamuoto: kestämä,
luku: yksikkö, tekijä: tekijä_2])>;
result $i.alku, $i - alku;
elseif (lienee in $tietue.jatko) then
choose $i in <taivutus ($tietue, "", @kestämän_tekijäpääte,
[tapaluokka: mahtotapa, aikamuoto: kestämä])>;
result $i.alku, $i - alku;
#========================================
# Suomi-malaga 0.9.7
elseif (oltu in $tietue.jatko) then
choose $i in valo ($tietue, "t"+U($tietue), "l"+U($tietue));
if (value_type($i) = record) then
result $i.alku, $i - alku;
else
foreach $j in $i:
result $j.alku, $j - alku;
end;
end;
# END Suomi-malaga 0.9.7
elseif ($tietue.alku /= nil) then
if not @voikko_debug then
$tietue :=- omistusliite;
end;
result $tietue.alku, $tietue - alku;
else
result $tietue.perusmuoto, $tietue - alku;
end;
end;
# $tietue Sanastosta (tiedostosta *.lex) luettu tietue.
# $lisä Merkkijono, joka lisätään sanan alkuosaan ennen sijapäätteitä.
# Esimerkiksi sanan valkoinen alkuosa on valkoi.
# Tähän lisätään merkkijonot
# nen valkoi+nen
# s valkoi+s(ta), valkoi+s(ten), valkoi+s(ien), valkoi+s(ina).
# se valkoi+se(n), valkoi+se(na), jne, valkoi+se(t).
# $luku "yksikkö" tai "monikko".
# $jatko Sääntö, jolla sanan jäsennystä jatketaan.
#
subrule taivutus ($tietue, $lisä, $jatko, $tulos):
assert (value_type ($jatko) = list);
return ([alku: $tietue.alku + $lisä]
+ ($tietue - alku - jatko)
+ [jatko: $jatko]
+ $tulos);
end;
subrule A ($tietue):
if ($tietue.äs = a) then
return "a";
else
return "ä";
end;
end;
subrule O ($tietue):
if ($tietue.äs = a) then
return "o";
else
return "ö";
end;
end;
subrule U ($tietue):
if ($tietue.äs = a) then
return "u";
else
return "y";
end;
end;
subrule UA ($tietue):
return (U($tietue) + A($tietue));
end;
subrule UO ($tietue):
return (U($tietue) + O($tietue));
end;
subrule AA ($tietue):
return (A($tietue) + A($tietue));
end;
subrule Aj ($tietue):
return (A($tietue) + "j");
end;
subrule AjA ($tietue):
return (Aj($tietue) + A($tietue));
end;
subrule An ($tietue):
return (A($tietue) + "n");
end;
subrule Ar ($tietue):
return (A($tietue) + "r");
end;
subrule As ($tietue):
return (A($tietue) + "s");
end;
subrule dA ($tietue):
return ("d" + A($tietue));
end;
subrule dAs ($tietue):
return (dA($tietue) + "s");
end;
subrule dO ($tietue):
return ("d" + O($tietue));
end;
subrule dU ($tietue):
return ("d" + U($tietue));
end;
subrule eA ($tietue):
return ("e" + A($tietue));
end;
subrule gA ($tietue):
return ("g" + A($tietue));
end;
subrule gAs ($tietue):
return (gA($tietue) + "s");
end;
subrule gO ($tietue):
return ("g" + O($tietue));
end;
subrule gU ($tietue):
return ("g" + U($tietue));
end;
subrule hA ($tietue):
return ("h" + A($tietue));
end;
subrule hAA ($tietue):
return (hA($tietue) + A($tietue));
end;
subrule jA ($tietue):
return ("j" + A($tietue));
end;
subrule kA ($tietue):
return ("k" + A($tietue));
end;
subrule bA ($tietue):
return ("b" + A($tietue));
end;
subrule kAA ($tietue):
return (kA($tietue) + A($tietue));
end;
subrule kO ($tietue):
return ("k" + O($tietue));
end;
subrule kU ($tietue):
return ("k" + U($tietue));
end;
subrule lA ($tietue):
return ("l" + A($tietue));
end;
subrule lAs ($tietue):
return (lA($tietue) + "s");
end;
subrule lO ($tietue):
return ("l" + O($tietue));
end;
subrule lU ($tietue):
return ("l" + U($tietue));
end;
subrule mA ($tietue):
return ("m" + A($tietue));
end;
subrule mAs ($tietue):
return (mA($tietue) + "s");
end;
subrule mO ($tietue):
return ("m" + O($tietue));
end;
subrule mU ($tietue):
return ("m" + U($tietue));
end;
subrule nA ($tietue):
return ("n" + A($tietue));
end;
subrule nAs ($tietue):
return (nA($tietue) + "s");
end;
subrule nO ($tietue):
return ("n" + O($tietue));
end;
subrule nU ($tietue):
return ("n" + U($tietue));
end;
subrule pA ($tietue):
return ("p" + A($tietue));
end;
subrule pAA ($tietue):
return (pA($tietue) + A($tietue));
end;
subrule pO ($tietue):
return ("p" + O($tietue));
end;
subrule pU ($tietue):
return ("p" + U($tietue));
end;
subrule rA ($tietue):
return ("r" + A($tietue));
end;
subrule rAs ($tietue):
return (rA($tietue) + "s");
end;
subrule rO ($tietue):
return ("r" + O($tietue));
end;
subrule rU ($tietue):
return ("r" + U($tietue));
end;
subrule rV ($tietue):
if ($tietue.alku matches ".*ier") then
return ("r" + O($tietue));
elseif ($tietue.alku matches ".*[^i]er") then
return ("r" + U($tietue));
elseif ($tietue.alku matches ".*[aiä]r") then
return ("r" + U($tietue));
elseif ($tietue.alku matches ".*[ouyö]r") then
return ("r" + O($tietue));
else
error "subrule rV: väärä sana " + $tietue.alku + " " + $tietue.perusmuoto;
end;
end;
subrule tA ($tietue):
return ("t" + A($tietue));
end;
subrule tAA ($tietue):
return ("t" + A($tietue) + A($tietue));
end;
subrule tAr ($tietue):
return (tA($tietue) + "r");
end;
subrule tO ($tietue):
return ("t" + O($tietue));
end;
subrule tU ($tietue):
return ("t" + U($tietue));
end;
subrule Ut ($tietue):
return (U($tietue) + "t");
end;
subrule vA ($tietue):
return ("v" + A($tietue));
end;
subrule vAs ($tietue):
return (vA($tietue) + "s");
end;
subrule vO ($tietue):
return ("v" + O($tietue));
end;
subrule vU ($tietue):
return ("v" + U($tietue));
end;
subrule zO($tietue):
return ("'" + O($tietue));
end;
subrule zU($tietue):
return ("'" + U($tietue));
end;
# Operaatioita, jotka tehdään taivutuskaavan muodostamisen yhteydessä
# kaikille taivutuksille.
subrule muokkaa_taivutusta($tietue, $taivutus):
# Näitä ei koskaan käytetä Voikossa
$taivutus :=- liitesana_s;
if nimentö in $taivutus and (not (liitesana in $taivutus)) and
($tietue.luokka /= asemosana or $tietue.perusmuoto /= "joka") then
$taivutus :=+ [liitesana: $taivutus.nimentö];
end;
if ($tietue.luokka = nimisana) then
$taivutus :=- voittoaste;
$taivutus :=- yliaste;
$taivutus :=- kerronto_sti;
$taivutus :=- johdin_Us;
if (not $tietue.perusmuoto matches ".*l[aä]inen") then
$taivutus :=- johdin_UUs;
end;
end;
if ($tietue.luokka = laatusana) then
$taivutus :=- johdin_tOn;
$taivutus :=- johdin_mAinen;
$taivutus :=- johdin_ittAin;
$taivutus :=- omistusliite;
end;
if ($tietue.luokka = johdin_vA) then
$taivutus :=- johdin_tOn;
$taivutus :=- johdin_mAinen;
$taivutus :=- johdin_ittAin;
if ($tietue.perusmuoto in <"va", "vä">) then
$taivutus :=- nimisana;
end;
end;
if ($tietue.tiedot /= nil and ei_vertm in $tietue.tiedot) then
$taivutus :=- voittoaste;
$taivutus :=- yliaste;
end;
if ($tietue.tiedot /= nil and ei_yks in $tietue.tiedot) then
define $taivutus_kopio := $taivutus;
foreach $jatko in $taivutus_kopio:
if (luku_sijasta($jatko) = yksikkö and $jatko /= omanto_n) or ($jatko = liitesana) then
$taivutus :=- $jatko;
end;
end;
end;
# Ei kaikkia johdoksia kaikista nimisanoista (esim. aateli -> aatelinen).
#
if ($tietue.tiedot /= nil) then
if (ei_inen in $tietue.tiedot) then
$taivutus :=- johdin_inen;
end;
if (ei_lAinen in $tietue.tiedot) then
$taivutus :=- johdin_lAinen;
end;
if (ei_mAinen in $tietue.tiedot) then
$taivutus :=- johdin_mAinen;
end;
end;
# Näitä johdoksia ei toistaiseksi tueta
if ($tietue.luokka = paikannimi) then
$taivutus :=- johdin_mAinen;
else
$taivutus :=- johdin_lAinen;
end;
# Näitä johdoksia ei tehdä erisnimistä
if ($tietue.luokka in <nimi, etunimi, sukunimi, paikannimi>) then
$taivutus :=- johdin_tOn;
$taivutus :=- johdin_UUs;
$taivutus :=- johdin_ittAin;
$taivutus :=- johdin_Us;
$taivutus :=- johdin_mAinen;
$taivutus :=- kerronto_sti;
$taivutus :=- voittoaste;
$taivutus :=- yliaste;
end;
if ($tietue.luokka in @nimisana + <laatusana>) then
$taivutus :=- nimisana;
end;
return $taivutus;
end;
# Operaatioita, jotka tehdään taivutuskaavan muodostamisen yhteydessä
# kaikille tietueille.
subrule muokkaa_tietuetta($tietue, $taivutus):
# Inen-loppuiset laatusanat
if ($tietue.luokka in <laatusana, nimi_laatusana> and $tietue.perusmuoto matches ".*inen") then
$tietue :=+ [inen_loppu: yes];
end;
if ($tietue.tiedot /= nil and ei_yks in $tietue.tiedot) then
$tietue :=+ [ei_yks: yes];
end;
return $tietue;
end;
subrule taivutuskaava ($tietue, $taivutus):
if (not ($tietue.luokka in <nimisana, nimi_laatusana>)) then
$taivutus :=- johdin_inen;
end;
$taivutus := muokkaa_taivutusta($tietue, $taivutus);
$tietue := muokkaa_tietuetta($tietue, $taivutus);
define $lista := lajittele ($taivutus);
define $t := <>;
foreach $i in $lista:
$t :=+ <taivutus ($tietue, $i.1, $i.2, [])>;
end;
return $t;
end;
# $tietue Sanatietue
# $taivutus Sanan taivutus eri taivutusmuodoissa.
# $ei_uusi Taivutusmuodot, joita ei ole uudessa taivutuksessa.
#
subrule taivutuskaava2 ($tietue, $taivutus, $ei_uusi):
if (($tietue.luokka in @nimisana + <laatusana>) and
($taivutus.nimentö /= nil)) then
$taivutus :=+ [tavuviiva: $taivutus.nimentö];
end;
if (not ($tietue.luokka in <nimisana, nimi_laatusana>) or
(leikkuu in $tietue.jatko)) then # Ei leikkuu -> leikkuinen.
$taivutus :=- johdin_inen;
end;
if ($ei_uusi /= <>) then
$taivutus :=- $ei_uusi;
end;
$taivutus := muokkaa_taivutusta($tietue, $taivutus);
$tietue := muokkaa_tietuetta($tietue, $taivutus);
define $lista := lajittele ($taivutus);
define $t := <>;
foreach $i in $lista:
$t :=+ <taivutus ($tietue, $i.1, $i.2, [])>;
end;
return $t;
end;
subrule tositapa0 ($tietue,
$kestämän_vahva_aste, $kestämän_heikko_aste,
$kertoman_vahva_aste, $kertoman_heikko_aste):
return [kestämän_tekijäpääte_heikko: $kestämän_heikko_aste,
kestämän_tekijäpääte_y3: $kestämän_vahva_aste,
kestämän_tekijäpääte_m3: $kestämän_vahva_aste,
kertoman_tekijäpääte_heikko: $kertoman_heikko_aste,
kertoman_tekijäpääte_vahva: $kertoman_vahva_aste];
end;
subrule tositapa ($tietue,
$kestämän_vahva_aste, $kestämän_heikko_aste,
$kertoman_vahva_aste, $kertoman_heikko_aste,
$tekijä_4):
return tositapa0 ($tietue,
$kestämän_vahva_aste, $kestämän_heikko_aste,
$kertoman_vahva_aste, $kertoman_heikko_aste)
+ $tekijä_4;
end;
subrule tositapa_ei_kestämä_y3 ($tietue,
$kestämän_vahva_aste, $kestämän_heikko_aste,
$kertoman_vahva_aste, $kertoman_heikko_aste,
$tekijä_4):
return [kestämän_tekijäpääte_heikko: $kestämän_heikko_aste,
kestämän_tekijäpääte_m3: $kestämän_vahva_aste,
kertoman_tekijäpääte_heikko: $kertoman_heikko_aste,
kertoman_tekijäpääte_vahva: $kertoman_vahva_aste]
+ $tekijä_4;
end;
subrule tositavan_kestämä ($tietue, $vahva_aste, $heikko_aste):
return <taivutus ($tietue, $vahva_aste, @kestämän_tekijäpääte_vahva_aste,
[tapaluokka: tositapa, aikamuoto: kestämä]),
taivutus ($tietue, $heikko_aste, <kestämän_tekijäpääte_heikko>,
[tapaluokka: tositapa, aikamuoto: kestämä])>;
end;
subrule tositavan_kestämä_y3 ($tietue, $vahva_aste):
return <taivutus ($tietue + [kielto: molemmat], $vahva_aste, <liitesana, liitesana_pi, loppu>,
[tapaluokka: tositapa, aikamuoto: kestämä,
luku: yksikkö, tekijä: tekijä_3])>;
end;
subrule tositavan_kertoma ($tietue, $vahva_aste, $heikko_aste):
return tositavan_kertoman_vahva_aste ($tietue, $vahva_aste) +
tositavan_kertoman_heikko_aste ($tietue, $heikko_aste);
end;
subrule tositavan_kertoman_vahva_aste ($tietue, $vahva_aste):
return <taivutus ($tietue, $vahva_aste, <kertoman_tekijäpääte_vahva>,
[tapaluokka: tositapa, aikamuoto: kertoma])>;
end;
subrule tositavan_kertoman_heikko_aste ($tietue, $heikko_aste):
return <taivutus ($tietue, $heikko_aste, <kertoman_tekijäpääte_heikko>,
[tapaluokka: tositapa, aikamuoto: kertoma])>;
end;
#######################################################################
subrule ehtotapa2 ($tietue, $lisä):
return <taivutus ($tietue, $lisä, <ehtotapa>, [])>;
end;
subrule käskytapa ($tietue, $heikko_aste):
return <taivutus ($tietue, $heikko_aste,
<liitesana, loppu>,
[tapaluokka: käskytapa, aikamuoto: kestämä,
tekijä: tekijä_2, luku: yksikkö])>;
end;
# Teonsanasta johdettu tekijännimi ja ominaisudennimi
# punoa -> punoja, tehdä -> tekijä.
# punoa -> punojuus, tehdä -> tekijyys
#
subrule tekijännimi ($tietue, $lisä, $taivutus):
return tekijä ($tietue, $lisä, $taivutus);
end;
subrule tekijä ($tietue, $lisä, $taivutus):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ $lisä;
$tietue.luokka := nimisana;
$tietue.perusmuoto := $tietue.alku + "j" + A($tietue);
if ($tietue.tiedot /= nil and ym3 in $tietue.tiedot) then
return <>;
end;
if ($taivutus = kulkija) then
return <taivutus ($tietue, "", <johdin_jA_kulkija>, [])>;
elseif ($taivutus = myyjä) then
return <taivutus ($tietue, "", <johdin_jA_myyjä>, [])>;
elseif ($taivutus = kantaja) then
return <taivutus ($tietue, "", <johdin_jA_kantaja>, [])>;
else
error "suomi.all: subrule tekijännimi: väärä taivutus";
end;
end;
############################################################
#
# Muuta tietue parien listaksi. Parin eka alkiona on
# merkkijono ja toisena alkiona lista niistä tietueen
# kenttien nimistä, joiden arvona on sama merkkijono.
#
# Esimerkiksi:
#
# [a: "a",
# b: "a",
# c: "b",
# d: "a",
# e: "b",
# f: "b"]
#
# ===>
#
# <<"a", <a, b, d>>,
# <"b", <c, e, f>>>
subrule lajittele ($tietue):
#
# [sijan_nimi: merkkijono]
# Otetaan kaikki merkkijonot joukkoon $joukko.
# Se on joukko, koska kukin alkio on siinä vain kerran.
#
define $joukko := <>;
foreach $i in $tietue:
if (not ($tietue.$i in $joukko)) then
$joukko :=+ <$tietue.$i>;
end;
end;
define $r := <>;
foreach $i in $joukko:
$r :=+ <<$i, etsi ($tietue, $i)>>;
end;
define $t := <>;
foreach $i in $r:
if (nimentö in $i.2) then
$i.2 :=+ <loppu>;
end;
$t :=+ <<$i.1, $i.2>>;
end;
return $t;
end;
# Etsi arvo joukosta.
# Jos ei löydy, palauta <>.
#
subrule etsi ($tietue, $arvo):
define $t := <>;
foreach $i in $tietue:
if ($tietue.$i = $arvo) then
$t :=+ <$i>;
end;
end;
return $t;
end;
subrule koira ($tietue,
$vahva_aste,
$heikko_aste,
$voittoaste):
define $monikon_heikko_aste := $heikko_aste;
if (ikä in $tietue.jatko) then # Ikä => i'iksi.
$monikon_heikko_aste := "'";
end;
return taivutuskaava ($tietue,
yksikkö9 ($tietue, $vahva_aste + A($tietue),
$vahva_aste + A($tietue),
$vahva_aste + A($tietue),
$heikko_aste + A($tietue),
[osanto_A: $vahva_aste + A($tietue)],
sisätulento_Vn,
$voittoaste,
$vahva_aste + A($tietue)) +
[johdin_tOn: $heikko_aste + A($tietue),
johdin_UUs: $vahva_aste,
johdin_lAinen: $vahva_aste + A($tietue),
johdin_mAinen: $vahva_aste + A($tietue),
johdin_inen: $vahva_aste + A($tietue)] +
monikko7 ($heikko_aste + A($tietue),
$vahva_aste, $monikon_heikko_aste,
[omanto_ien: $vahva_aste,
omanto_in: $vahva_aste + A($tietue)],
[osanto_iA: $vahva_aste],
[sisätulento_iin: $vahva_aste],
$monikon_heikko_aste));
end;
subrule ruoka ($tietue):
return koira ($tietue, "ok", "o", "e") +
taivutuskaava ($tietue,
[omanto_n: "ua", # Ruuan.
tulento_ksi: "ua",
sisäolento_ssA: "ua",
ulkopaikallissija_llA: "ua",
vajanto_ttA: "ua",
johdin_tOn: "ua",
# Ei tarvita johdosta johdin_inen. HV 13.5.2006. Eikä johdin_lAinen. HV 13.7.2006.
# Eikä johdinta johdin_mAinen. HV 24.7.2006.
nimentö_t: "ua"]);
end;
subrule pitkä ($tietue):
return taivutuskaava ($tietue,
yksikkö8 ("tk" + A($tietue),
"tk" + A($tietue),
"tk" + A($tietue),
"tk" + A($tietue),
[osanto_A: "tk" + A($tietue)],
sisätulento_Vn,
"te",
"tk" + A($tietue)) +
monikko7 ("tk" + A($tietue), "tk", "tk",
[omanto_ien: "tk",
omanto_in: "tk" + A($tietue)],
[osanto_iA: "tk"],
[sisätulento_iin: "tk"],
"s"));
end;
subrule asema ($tietue, $vahva_aste, $heikko_aste):
return koira ($tietue, $vahva_aste, $heikko_aste, A($tietue))
+ voikko_lista_vain_lipulla(vanhat_muodot, taivutuskaava ($tietue, [osanto_tA: $vahva_aste + A($tietue)]));
end;
subrule kulkija ($tietue, $yksikkö, $monikko):
return <taivutus ($tietue, "", <johdin_jA_kulkija>, [])>;
end;
subrule apila ($tietue, $yksikkö, $monikko):
return taivutuskaava ($tietue,
yksikkö8 ($yksikkö, $yksikkö,
$yksikkö, $yksikkö,
[osanto_A: $yksikkö,
osanto_tA: $yksikkö],
sisätulento_Vn,
$yksikkö, $yksikkö) +
[johdin_tOn: $yksikkö, # Apilaton.
johdin_lAinen: $yksikkö, # Apilalainen.
johdin_mAinen: $yksikkö, # Apilamainen.
johdin_inen: $yksikkö] + # Apilainen.
monikko7 ($yksikkö, $monikko, $monikko,
[omanto_in: $yksikkö, omanto_iT: $monikko],
[osanto_itA: $monikko],
[sisätulento_ihin: $monikko], ""));
end;
subrule laatikko ($tietue,
$yksikön_vahva_aste,
$yksikön_heikko_aste,
$monikon_vahva_aste,
$monikon_heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($yksikön_vahva_aste, $yksikön_vahva_aste,
$yksikön_vahva_aste, $yksikön_heikko_aste,
[osanto_A: $yksikön_vahva_aste],
### osanto_tA: $yksikön_vahva_aste],
sisätulento_Vn,
$yksikön_heikko_aste,
$yksikön_vahva_aste) +
[johdin_tOn: $yksikön_heikko_aste,
johdin_UUs: eka_kirjain ($yksikön_vahva_aste),
johdin_lAinen: $yksikön_vahva_aste,
johdin_mAinen: $yksikön_vahva_aste,
johdin_inen: $yksikön_vahva_aste] +
monikko7 ($yksikön_heikko_aste,
$monikon_vahva_aste, $monikon_heikko_aste,
[omanto_jen: $monikon_vahva_aste,
omanto_iT: $monikon_heikko_aste],
[osanto_jA: $monikon_vahva_aste,
osanto_itA: $monikon_heikko_aste],
[sisätulento_ihin: $monikon_vahva_aste], "")) +
taivutuskaava ($tietue,
[olento_inA: $monikon_heikko_aste,
sisätulento_ihin: $monikon_heikko_aste,
seuranto_ine: $monikon_heikko_aste]);
end;
subrule solakka ($tietue,
$yksikön_vahva_aste,
$yksikön_heikko_aste,
$monikon_vahva_aste,
$monikon_heikko_aste):
return laatikko ($tietue,
$yksikön_vahva_aste,
$yksikön_heikko_aste,
$monikon_vahva_aste,
$monikon_heikko_aste)
+ taivutuskaava ($tietue, [omanto_in: $yksikön_vahva_aste]);
end;
subrule veranta ($tietue):
return solakka ($tietue, tA($tietue), nA($tietue), tO($tietue), nO($tietue));
end;
subrule kantaja ($tietue):
return apaja ($tietue);
end;
subrule apaja ($tietue):
return taivutuskaava ($tietue,
yksikkö8 (A($tietue), A($tietue),
A($tietue), A($tietue),
[osanto_A: A($tietue),
osanto_tA: A($tietue)],
sisätulento_Vn,
A($tietue), A($tietue)) +
[johdin_tOn: A($tietue),
johdin_lAinen: A($tietue),
johdin_mAinen: A($tietue),
johdin_inen: A($tietue)] +
monikko7 (A($tietue), "", "",
[omanto_ien: "",
omanto_in: A($tietue),
omanto_iT: O($tietue)],
[osanto_iA: ""],
[sisätulento_iin: ""], ""));
end;
subrule koko ($tietue,
$yksikön_vahva_aste, $yksikön_heikko_aste,
$monikon_vahva_aste, $monikon_heikko_aste):
return taivutuskaava ($tietue,
yksikkö_valo ($yksikön_vahva_aste, $yksikön_heikko_aste) +
monikko7 ($yksikön_heikko_aste, $monikon_vahva_aste, $monikon_heikko_aste,
[omanto_jen: $monikon_vahva_aste],
[osanto_jA: $monikon_vahva_aste],
[sisätulento_ihin: $monikon_vahva_aste],
$monikon_heikko_aste));
end;
subrule valo ($tietue, $vahva_aste, $heikko_aste):
return koko ($tietue, $vahva_aste, $heikko_aste, $vahva_aste, $heikko_aste);
end;
subrule arvelu ($tietue, $vahva_aste, $heikko_aste):
define $r :=
taivutuskaava ($tietue,
yksikkö_valo ($vahva_aste, $heikko_aste) +
monikko7 ($heikko_aste, $vahva_aste, $heikko_aste,
[omanto_jen: $vahva_aste,
omanto_iT: $heikko_aste],
[osanto_jA: $vahva_aste,
osanto_itA: $heikko_aste],
[sisätulento_ihin: $vahva_aste],
$heikko_aste));
if ($vahva_aste /= $heikko_aste) then
$r :=+ <taivutus ($tietue, $heikko_aste, <sisätulento_ihin>, [])>;
end;
return $r;
end;
subrule hontelo ($tietue):
return taivutuskaava ($tietue,
yksikkö8 (O($tietue),
O($tietue),
O($tietue),
O($tietue),
[osanto_A: O($tietue)],
sisätulento_Vn,
O($tietue),
O($tietue)) +
[johdin_tOn: O($tietue),
johdin_Us: U($tietue),
johdin_mAinen: O($tietue),
johdin_inen: O($tietue)] +
monikko7 (O($tietue), O($tietue), O($tietue),
[omanto_jen: O($tietue),
omanto_iT: O($tietue)],
[osanto_jA: O($tietue),
osanto_itA: O($tietue)],
[sisätulento_ihin: O($tietue)],
O($tietue)));
end;
subrule risti ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
[tavuviiva: $vahva_aste + "i",
omistusliite: $vahva_aste + "i",
nimentö: $vahva_aste + "i",
omanto_n: $heikko_aste + "i",
osanto_A: $vahva_aste + "i",
olento_nA: $vahva_aste + "i",
tulento_ksi: $heikko_aste + "i",
sisäolento_ssA: $heikko_aste + "i",
sisätulento_Vn: $vahva_aste + "i",
ulkopaikallissija_llA: $heikko_aste + "i",
vajanto_ttA: $heikko_aste + "i",
kerronto_sti: $heikko_aste + "i",
voittoaste: $heikko_aste + "i",
johdin_tOn: $heikko_aste + "i",
johdin_Us: $vahva_aste + "i",
johdin_lAinen: $vahva_aste + "i",
johdin_mAinen: $vahva_aste + "i",
johdin_inen: $vahva_aste]
+ yhdyssana ($vahva_aste + "i")
+ monikko7 ($heikko_aste + "i",
$vahva_aste + "e", $heikko_aste + "e",
[omanto_en: $vahva_aste + "i",
omanto_in: $vahva_aste + "e"],
[osanto_jA: $vahva_aste + "e"],
[sisätulento_ihin: $vahva_aste + "e"],
$heikko_aste + "e"));
end;
subrule siisti ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
[tavuviiva: $vahva_aste + "i",
omistusliite: $vahva_aste + "i",
nimentö: $vahva_aste + "i",
omanto_n: $heikko_aste + "i",
osanto_A: $vahva_aste + "i",
olento_nA: $vahva_aste + "i",
tulento_ksi: $heikko_aste + "i",
sisäolento_ssA: $heikko_aste + "i",
sisätulento_Vn: $vahva_aste + "i",
ulkopaikallissija_llA: $heikko_aste + "i",
vajanto_ttA: $heikko_aste + "i",
kerronto_sti: $heikko_aste + "i",
voittoaste: $heikko_aste + "i",
johdin_tOn: $heikko_aste + "i",
johdin_Us: $vahva_aste + "e",
johdin_inen: $vahva_aste]
+ yhdyssana ($vahva_aste + "i")
+ monikko7 ($heikko_aste + "i",
$vahva_aste + "e", $heikko_aste + "e",
[omanto_en: $vahva_aste + "i",
omanto_in: $vahva_aste + "e"],
[osanto_jA: $vahva_aste + "e"],
[sisätulento_ihin: $vahva_aste + "e"],
$heikko_aste + "e"));
end;
subrule paperi_banaali ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + "i", $vahva_aste + "i",
$vahva_aste + "i", $heikko_aste + "i",
[osanto_A: $vahva_aste + "i"],
sisätulento_Vn,
$heikko_aste + "i", $vahva_aste + "i") +
[johdin_tOn: $heikko_aste + "i",
johdin_Us: $vahva_aste + "i",
johdin_lAinen: $vahva_aste + "i",
johdin_mAinen: $vahva_aste + "i",
johdin_inen: $vahva_aste] +
monikko7 ($heikko_aste + "i",
$vahva_aste + "e", $heikko_aste + "e",
[omanto_iT: $heikko_aste + "e",
omanto_en: $vahva_aste + "i",
omanto_in: $vahva_aste + "e"],
[osanto_itA: $heikko_aste + "e",
osanto_jA: $vahva_aste + "e"],
[sisätulento_ihin: $vahva_aste + "e"],
$heikko_aste + "e"));
end;
subrule edam ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + "i", $vahva_aste,
$vahva_aste + "i", $heikko_aste + "i",
[osanto_A: $vahva_aste + "i"],
sisätulento_Vn,
$heikko_aste + "i", $vahva_aste) +
[johdin_tOn: $heikko_aste + "i",
johdin_Us: $vahva_aste + "i",
johdin_lAinen: $vahva_aste + "i",
johdin_mAinen: $vahva_aste,
johdin_inen: $vahva_aste] +
monikko7 ($heikko_aste + "i",
$heikko_aste + "e", $heikko_aste + "e",
[omanto_iT: $heikko_aste + "e",
omanto_en: $vahva_aste + "i"],
[osanto_itA: $heikko_aste + "e",
osanto_jA: $vahva_aste + "e"],
[sisätulento_ihin: $vahva_aste + "e"],
$heikko_aste + "e"))
+ yhdyssanan_taivutuskaava ($tietue, $vahva_aste);
end;
subrule sisar ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + "e", $heikko_aste,
$vahva_aste + "e", $vahva_aste + "e",
[osanto_tA: $heikko_aste],
sisätulento_Vn,
$heikko_aste, $heikko_aste) +
[johdin_tOn: $vahva_aste + "e",
johdin_mAinen: $vahva_aste,
johdin_inen: $vahva_aste] +
monikko7 ($vahva_aste + "e", $vahva_aste, $vahva_aste,
[omanto_ien: $vahva_aste,
omanto_ten: $heikko_aste],
[osanto_iA: $vahva_aste],
[sisätulento_iin: $vahva_aste], $vahva_aste));
end;
subrule ahven ($tietue, $vahva_aste, $heikko_aste):
return sisar ($tietue, $vahva_aste, $heikko_aste);
end;
subrule uistin ($tietue, $vahva_aste, $heikko_aste):
return hapan_uistin ($tietue, $vahva_aste, $heikko_aste, "e");
end;
subrule hapan ($tietue, $vahva_aste, $heikko_aste):
return hapan_uistin ($tietue, $vahva_aste, $heikko_aste, A($tietue)) + # Happaman.
hapan_uistin ($tietue, $vahva_aste, $heikko_aste, "e"); # Happamen.
end;
subrule hapan_uistin ($tietue, $vahva_aste, $heikko_aste, $ääntiö):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + $ääntiö, $heikko_aste,
$vahva_aste + $ääntiö, $vahva_aste + $ääntiö,
[osanto_tA: $heikko_aste],
sisätulento_Vn,
$vahva_aste + $ääntiö, $heikko_aste) +
[johdin_tOn: $vahva_aste + $ääntiö,
johdin_UUs: $vahva_aste,
johdin_mAinen: $heikko_aste,
johdin_lAinen: $vahva_aste + $ääntiö,
johdin_inen: $vahva_aste] +
monikko7 ($vahva_aste + $ääntiö,
$vahva_aste, $vahva_aste,
[omanto_ien: $vahva_aste,
omanto_ten: $heikko_aste],
[osanto_iA: $vahva_aste],
[sisätulento_iin: $vahva_aste],
$vahva_aste));
end;
subrule onneton ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + mA($tietue), $heikko_aste + "n",
$vahva_aste + mA($tietue), $vahva_aste + mA($tietue),
[osanto_tA: $heikko_aste + "n"],
sisätulento_Vn,
$vahva_aste + mA($tietue), $heikko_aste + "n") +
monikko7 ($vahva_aste + mA($tietue),
$vahva_aste + "m",
$vahva_aste + "m",
[omanto_ien: $vahva_aste + "m",
omanto_in: $vahva_aste + mA($tietue),
omanto_ten: $heikko_aste + "n"],
[osanto_iA: $vahva_aste + "m"],
[sisätulento_iin: $vahva_aste + "m"],
$vahva_aste + "m") +
[johdin_UUs: $vahva_aste + "m"]) +
taivutuskaava ($tietue,
[olento_nA: $heikko_aste + "n"]) + # Onneton+na.
taivutuskaava ($tietue,
[nimentö: $heikko_aste + "in", # Onnetoin.
omanto_ten: $heikko_aste + "in", # Onnetoin+ten
osanto_tA: $heikko_aste + "in", # Onnetoin+ta.
olento_nA: $heikko_aste + "in"]); # Onnetoin+na.
end;
subrule kalsium ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + "i", $vahva_aste,
$vahva_aste + "i", $heikko_aste + "i",
[osanto_A: $vahva_aste + "i"],
sisätulento_Vn,
$vahva_aste + "i", $vahva_aste) +
[johdin_tOn: $heikko_aste + "i",
johdin_lAinen: $vahva_aste + "i",
johdin_mAinen: $vahva_aste,
johdin_inen: $vahva_aste] +
monikko7 ($heikko_aste + "i",
$vahva_aste + "e",
$heikko_aste + "e",
[omanto_en: $vahva_aste + "i"],
[osanto_jA: $vahva_aste + "e"],
[sisätulento_ihin: $vahva_aste + "e"],
$heikko_aste + "i"));
end;
subrule poppi ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + "i", $vahva_aste + "i",
$vahva_aste + "i", $heikko_aste + "i",
[osanto_A: $vahva_aste + "i"],
sisätulento_Vn,
$vahva_aste + "i", $vahva_aste + "i") +
[johdin_tOn: $heikko_aste + "i",
johdin_mAinen: $vahva_aste + "i",
johdin_inen: $vahva_aste + "i"] +
monikko7 ($heikko_aste + "i",
$vahva_aste + "e",
$heikko_aste + "e",
[omanto_en: $vahva_aste + "i"],
[osanto_jA: $vahva_aste + "e"],
[sisätulento_ihin: $vahva_aste + "e"],
$heikko_aste + "i"))
+ <taivutus ($tietue, "", <liitesana, loppu>, [])>
+ yhdyssanan_taivutuskaava ($tietue, "");
end;
subrule nalle ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste, $vahva_aste,
$vahva_aste, $heikko_aste,
[osanto_A: $vahva_aste],
sisätulento_Vn,
$vahva_aste, $vahva_aste) +
[johdin_tOn: $heikko_aste,
johdin_Us: $vahva_aste,
johdin_lAinen: $vahva_aste,
johdin_mAinen: $vahva_aste,
johdin_inen: $vahva_aste] +
monikko7 ($heikko_aste,
$vahva_aste, $heikko_aste,
[omanto_in: $vahva_aste,
omanto_jen: $vahva_aste],
[osanto_jA: $vahva_aste],
[sisätulento_ihin: $vahva_aste],
$heikko_aste));
end;
subrule kala ($tietue, $vahva_aste, $heikko_aste, $voittoaste, $yliaste):
return raaka ($tietue,
$vahva_aste, $heikko_aste,
$vahva_aste, $heikko_aste,
$voittoaste, $yliaste);
end;
subrule raaka ($tietue,
$yksikön_vahva_aste,
$yksikön_heikko_aste,
$monikon_vahva_aste,
$monikon_heikko_aste,
$voittoaste,
$yliaste):
return taivutuskaava ($tietue,
yksikkö8 ($yksikön_vahva_aste + A($tietue),
$yksikön_vahva_aste + A($tietue),
$yksikön_vahva_aste + A($tietue),
$yksikön_heikko_aste + A($tietue),
[osanto_A: $yksikön_vahva_aste + A($tietue)],
sisätulento_Vn,
$voittoaste,
$yksikön_vahva_aste + A($tietue)) +
[johdin_tOn: $yksikön_heikko_aste + A($tietue),
johdin_UUs: $yksikön_vahva_aste,
johdin_lAinen: $yksikön_vahva_aste + A($tietue),
johdin_mAinen: $yksikön_vahva_aste + A($tietue),
johdin_inen: $yksikön_vahva_aste + A($tietue)] +
monikko7 ($yksikön_heikko_aste + A($tietue),
$monikon_vahva_aste + O($tietue),
$monikon_heikko_aste + O($tietue),
[omanto_in: $yksikön_vahva_aste + A($tietue),
omanto_jen: $monikon_vahva_aste + O($tietue)],
[osanto_jA: $monikon_vahva_aste + O($tietue)],
[sisätulento_ihin: $monikon_vahva_aste + O($tietue)],
$yliaste));
end;
subrule lovi ($tietue, $vahva_aste, $heikko_aste):
return kumpi ($tietue, $vahva_aste, $heikko_aste, "e") +
taivutuskaava($tietue, [johdin_mAinen: $vahva_aste + "i"]);
end;
subrule piki ($tietue,
$yksikön_vahva_aste,
$yksikön_heikko_aste,
$monikon_vahva_aste,
$monikon_heikko_aste):
return taivutuskaava2 ($tietue,
[nimentö: $yksikön_vahva_aste + "i",
omistusliite: $yksikön_vahva_aste + "e",
omanto_n: $yksikön_heikko_aste + "e",
osanto_A: $yksikön_vahva_aste + "e",
olento_nA: $yksikön_vahva_aste + "e",
tulento_ksi: $yksikön_heikko_aste + "e",
sisäolento_ssA: $yksikön_heikko_aste + "e",
sisätulento_Vn: $yksikön_vahva_aste + "e",
ulkopaikallissija_llA: $yksikön_heikko_aste + "e",
vajanto_ttA: $yksikön_heikko_aste + "e",
nimentö_t: $yksikön_heikko_aste + "e",
omanto_en: $monikon_vahva_aste + "i",
omanto_in: $yksikön_vahva_aste + "e",
osanto_iA: $monikon_vahva_aste,
olento_inA: $monikon_vahva_aste,
sija_monikko_1: $monikon_heikko_aste,
sisätulento_iin: $monikon_vahva_aste,
ulkopaikallissija_illA: $monikon_heikko_aste,
vajanto_ittA: $monikon_heikko_aste,
seuranto_ine: $monikon_vahva_aste,
## Näitä kolmea ei oikeastaan tarvita, koska tällä
## tavalla taipuvia laatusanoja ei ole, mutta
## niitä voi tulla...
kerronto_sti: $yksikön_heikko_aste + "e",
voittoaste: $yksikön_heikko_aste + "e",
yliaste: $monikon_heikko_aste,
johdin_inen: $yksikön_vahva_aste,
johdin_ittain: $monikon_heikko_aste,
johdin_lAinen: $yksikön_vahva_aste + "e",
johdin_mAinen: $yksikön_vahva_aste + "i",
johdin_tOn: $yksikön_heikko_aste + "e",
johdin_Us: $yksikön_vahva_aste + "i"]
+ yhdyssana ($yksikön_vahva_aste + "i"),
<omanto_in>);
end;
subrule kumpi ($tietue, $vahva_aste, $heikko_aste, $ääntiö):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + $ääntiö, $vahva_aste + "i",
$vahva_aste + $ääntiö, $heikko_aste + $ääntiö,
[osanto_A: $vahva_aste + $ääntiö],
sisätulento_Vn,
$heikko_aste + $ääntiö, $vahva_aste + "i") +
[johdin_tOn: $heikko_aste + $ääntiö,
johdin_lAinen: $vahva_aste + "e",
johdin_inen: $vahva_aste] +
monikko7 ($heikko_aste + $ääntiö,
$vahva_aste, $heikko_aste,
[omanto_en: $vahva_aste + "i",
omanto_in: $vahva_aste + $ääntiö],
[osanto_iA: $vahva_aste],
[sisätulento_iin: $vahva_aste],
$vahva_aste + $ääntiö));
end;
subrule vapaa ($tietue, $ääntiö):
return taivutuskaava ($tietue,
yksikkö8 ($ääntiö, $ääntiö, $ääntiö, $ääntiö,
[osanto_tA: $ääntiö], sisätulento_seen,
$ääntiö, $ääntiö) +
[johdin_tOn: $ääntiö,
johdin_Us: "",
johdin_lAinen: $ääntiö,
johdin_mAinen: $ääntiö,
johdin_inen: "",
nimentö_t: $ääntiö,
omanto_iT: "",
osanto_itA: "",
olento_inA: "",
sija_monikko_1: "",
sisätulento_isiin: "",
sisätulento_ihin: "",
ulkopaikallissija_illA: "",
vajanto_ittA: "",
seuranto_ine: "",
yliaste: ""]);
end;
subrule kamee ($tietue, $ääntiö):
return taivutuskaava ($tietue,
yksikkö8 ($ääntiö, $ääntiö, $ääntiö, $ääntiö,
[osanto_tA: $ääntiö],
[sisätulento_seen: $ääntiö,
sisätulento_hVn: $ääntiö],
$ääntiö, $ääntiö) +
[johdin_tOn: $ääntiö,
johdin_lAinen: $ääntiö,
johdin_mAinen: $ääntiö,
johdin_inen: ""] +
monikko7 ($ääntiö, "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_ihin: "",
sisätulento_isiin: ""],
""));
end;
subrule tee ($tietue, $ääntiö):
return taivutuskaava ($tietue,
yksikkö8 ($ääntiö, $ääntiö, $ääntiö, $ääntiö,
[osanto_tA: $ääntiö],
[sisätulento_hVn: $ääntiö],
$ääntiö, $ääntiö) +
[johdin_tOn: $ääntiö,
johdin_mAinen: $ääntiö] +
# Ei tarvita johdosta johdin_inen. HV 13.5.2006. "Teinen".
monikko7 ($ääntiö, "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_ihin: ""],
""));
end;
subrule maa ($tietue, $ääntiö):
return taivutuskaava ($tietue,
yksikkö8 ($ääntiö, $ääntiö, $ääntiö, $ääntiö,
[osanto_tA: $ääntiö], sisätulento_hVn,
$ääntiö, $ääntiö) +
[johdin_tOn: $ääntiö,
johdin_lAinen: $ääntiö,
johdin_mAinen: $ääntiö,
johdin_inen: "",
nimentö_t: $ääntiö,
omanto_iT: "",
osanto_itA: "",
olento_inA: "",
sija_monikko_1: "",
sisätulento_ihin: "",
ulkopaikallissija_illA: "",
vajanto_ittA: "",
seuranto_ine: "",
johdin_ittAin: ""]);
end;
subrule tiu ($tietue, $ääntiö):
return taivutuskaava ($tietue,
yksikkö8 ($ääntiö, $ääntiö, $ääntiö, $ääntiö,
[osanto_tA: $ääntiö], sisätulento_hVn,
$ääntiö, $ääntiö) +
[johdin_tOn: $ääntiö,
johdin_mAinen: $ääntiö]);
# Ei tarvita johdosta johdin_inen. HV 13.5.2006. "Tiuinen".
end;
subrule tosi ($tietue):
return taivutuskaava ($tietue,
yksikkö8 ("te", "si", "te", "de",
[osanto_ttA: ""], sisätulento_Vn,
"de", "si") +
[johdin_tOn: "de",
johdin_mAinen: "si",
johdin_lAinen: "te",
johdin_inen: "t"] +
monikko7 ("de", "s", "s",
[omanto_ien: "s"],
[osanto_iA: "s"],
[sisätulento_iin: "s"],
"s"));
end;
subrule kansi ($tietue, $vahva_aste, $heikko_aste, $inen):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + "e", "si",
$vahva_aste + "e", $heikko_aste + "e",
[osanto_ttA: ""], sisätulento_Vn,
$heikko_aste + "e", "si") +
[johdin_tOn: $heikko_aste + "e",
johdin_mAinen: "si",
johdin_inen: $inen,
nimentö_t: $heikko_aste + "e",
omanto_ien: "s",
omanto_ten: $vahva_aste,
osanto_iA: "s",
olento_inA: "s",
sija_monikko_1: "s",
sisätulento_iin: "s",
ulkopaikallissija_illA: "s",
vajanto_ittA: "s",
seuranto_ine: "s",
johdin_ittAin: "s"]);
end;
subrule hame ($tietue, $nimentö_osanto, $yksikkö, $monikko):
return taivutuskaava ($tietue,
yksikkö8 ($yksikkö, $nimentö_osanto,
$yksikkö, $yksikkö,
[osanto_ttA: $nimentö_osanto],
sisätulento_seen,
$yksikkö, $nimentö_osanto) +
[johdin_tOn: $yksikkö,
johdin_Us: $monikko,
johdin_lAinen: $nimentö_osanto,
johdin_mAinen: $nimentö_osanto,
johdin_inen: $monikko] +
monikko7 ($yksikkö, $monikko, $monikko,
[omanto_iT: $monikko],
[osanto_itA: $monikko],
[sisätulento_isiin: $monikko,
sisätulento_ihin: $monikko],
$monikko));
end;
subrule alkeet ($tietue):
return taivutuskaava ($tietue,
[johdin_tOn: "e",
johdin_inen: ""] +
# Ei tarvita johdinta johdin_lAinen ("alkeetlainen"). HV 13.7.2006.
# Eikä johdinta johdin_mAinen ("alkeetmainen"). HV 24.7.2006.
monikko7 ("e", "", "",
[omanto_iT: ""],
[osanto_itA: ""],
[sisätulento_isiin: "",
sisätulento_ihin: ""],
""));
end;
subrule suo ($tietue, $yksikkö, $monikko):
return taivutuskaava ($tietue,
yksikkö8 ($yksikkö, $yksikkö, $yksikkö, $yksikkö,
[osanto_tA: $yksikkö], sisätulento_hVn,
$yksikkö, $yksikkö) +
[johdin_tOn: $yksikkö,
johdin_lAinen: $yksikkö,
johdin_mAinen: $yksikkö,
johdin_inen: $monikko,
nimentö_t: $yksikkö,
omanto_iT: $monikko,
osanto_itA: $monikko,
olento_inA: $monikko,
sija_monikko_1: $monikko,
sisätulento_ihin: $monikko,
ulkopaikallissija_illA: $monikko,
vajanto_ittA: $monikko,
seuranto_ine: $monikko,
johdin_ittAin: $monikko]);
end;
subrule lapsi ($tietue):
return taivutuskaava ($tietue,
yksikkö8 ("pse", "psi", "pse", "pse",
[], sisätulento_Vn,
"pse", "psi") +
[johdin_tOn: "pse",
johdin_mAinen: "psi",
johdin_inen: "ps",
nimentö_t: "pse",
omanto_ten: "s",
omanto_ien: "ps",
osanto_iA: "ps",
olento_inA: "ps",
sija_monikko_1: "ps",
sisätulento_iin: "ps",
ulkopaikallissija_illA: "ps",
vajanto_ittA: "ps",
seuranto_ine: "ps",
johdin_ittAin: "ps"]);
end;
subrule veitsi ($tietue):
return taivutuskaava ($tietue,
yksikkö8 ("tse", "tsi", "tse", "tse",
[osanto_tA: "s"], sisätulento_Vn,
"tse", "tsi") +
[johdin_tOn: "tse",
johdin_mAinen: "tsi",
johdin_inen: "ts",
nimentö_t: "tse",
omanto_ien: "ts",
omanto_ten: "s",
osanto_iA: "ts",
olento_inA: "ts",
sija_monikko_1: "ts",
sisätulento_iin: "ts",
ulkopaikallissija_illA: "ts",
vajanto_ittA: "ts",
seuranto_ine: "ts",
johdin_ittAin: "ts"]);
end;
subrule kalleus ($tietue):
return taivutuskaava ($tietue,
yksikkö8 ("te", "s", "te", "de",
[osanto_ttA: ""], sisätulento_Vn,
"de", "s") +
[johdin_tOn: "de",
johdin_mAinen: "s",
johdin_lAinen: "te",
johdin_inen: "ks",
nimentö_t: "de",
omanto_ien: "ks",
osanto_iA: "ks",
olento_inA: "ks",
sija_monikko_1: "ks",
sisätulento_iin: "ks",
ulkopaikallissija_illA: "ks",
vajanto_ittA: "ks",
seuranto_ine: "ks"]);
end;
subrule vieras ($tietue, $vahva_aste, $heikko_aste, $monikko, $johdin_Us):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste, $heikko_aste,
$vahva_aste, $vahva_aste,
[osanto_tA: $heikko_aste], sisätulento_seen,
$vahva_aste, $heikko_aste) +
[johdin_tOn: $vahva_aste,
johdin_Us: $johdin_Us,
johdin_mAinen: $heikko_aste,
johdin_lAinen: $vahva_aste,
johdin_inen: $monikko,
nimentö_t: $vahva_aste,
omanto_iT: $monikko,
omanto_ten: $heikko_aste,
osanto_itA: $monikko,
olento_inA: $monikko,
sija_monikko_1: $monikko,
sisätulento_isiin: $monikko,
sisätulento_ihin: $monikko,
ulkopaikallissija_illA: $monikko,
vajanto_ittA: $monikko,
seuranto_ine: $monikko,
johdin_ittAin: $monikko,
yliaste: $monikko]) +
voikko_lista_vain_lipulla(vanhat_muodot,
s_hV_loppuinen ($tietue,
$monikko + hA($tietue),
$monikko + "h") + # vierahat
taivutuskaava ($tietue,
[olento_nA: $heikko_aste]) # Vieras+na.
);
end;
subrule kauris ($tietue, $kerake):
define $vahva_aste := $kerake + "ii";
define $monikko := $kerake + "i";
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste, "is", $vahva_aste, $vahva_aste,
[osanto_tA: "is"], sisätulento_seen,
$vahva_aste, "is") +
[johdin_tOn: $vahva_aste,
johdin_Us: $monikko,
johdin_mAinen: "is",
johdin_inen: $kerake + "i",
nimentö_t: $vahva_aste,
omanto_iT: $monikko,
omanto_ten: "is",
osanto_itA: $monikko,
olento_inA: $monikko,
sija_monikko_1: $monikko,
sisätulento_isiin: $monikko,
sisätulento_ihin: $monikko,
ulkopaikallissija_illA: $monikko,
vajanto_ittA: $monikko,
seuranto_ine: $monikko,
johdin_ittAin: $monikko,
yliaste: $kerake + "e"]) +
voikko_lista_vain_lipulla(vanhat_muodot,
taivutuskaava ($tietue,
[olento_nA: "is"]) # Kauris+na.
);
end;
subrule salaus ($tietue, $vahva_aste):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := nimisana;
$tietue.alku :=+ $vahva_aste;
$tietue.perusmuoto := $tietue.alku + U($tietue) + "s";
return vastaus ($tietue);
end;
subrule vastaus ($tietue):
return taivutuskaava ($tietue,
yksikkö8 ("kse", "s", "kse", "kse",
[osanto_tA: "s"], sisätulento_Vn,
"kse", "s") +
[johdin_tOn: "kse",
johdin_lAinen: "s",
johdin_mAinen: "s",
johdin_inen: "ks",
nimentö_t: "kse",
omanto_ten: "s",
omanto_ien: "ks",
osanto_iA: "ks",
olento_inA: "ks",
sija_monikko_1: "ks",
sisätulento_iin: "ks",
ulkopaikallissija_illA: "ks",
vajanto_ittA: "ks",
seuranto_ine: "ks",
johdin_ittAin: "ks"]);
end;
subrule kaunis ($tietue, $kerake, $johdin_Us):
define $vahva_aste := $kerake + "ii";
define $monikko := $kerake + "i";
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste, "is",
$vahva_aste, $vahva_aste,
[osanto_tA: "is"], sisätulento_seen,
$vahva_aste, "is") +
[johdin_tOn: $vahva_aste,
johdin_Us: $johdin_Us] +
# Ei tarvita johdosta johdin_inen. HV 13.5.2006.
monikko7 ($vahva_aste, $monikko, $monikko,
[omanto_iT: $monikko,
omanto_ten: "is"],
[osanto_itA: $monikko],
[sisätulento_isiin: $monikko,
sisätulento_ihin: $monikko],
$kerake + "e"))
+ s_hV_loppuinen ($tietue,
$monikko + "hi",
$monikko + "h")
+ taivutuskaava ($tietue,
[olento_nA: "is"]) # Kaunis+na.
+ voikko_lista_vain_lipulla(vanhat_muodot, taivutuskaava ($tietue,
[omanto_iT: $kerake + "e",
osanto_itA: $kerake + "e",
olento_inA: $kerake + "e",
sija_monikko_1: $kerake + "e",
sisätulento_ihin: $kerake + "e",
sisätulento_isiin: $kerake + "e",
ulkopaikallissija_illA: $kerake + "e",
vajanto_ittA: $kerake + "e",
seuranto_ine: $kerake + "e"]));
end;
subrule paras ($tietue, $vahva_aste, $heikko_aste, $monikko,
$voittoaste, $yliaste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste, $heikko_aste,
$vahva_aste, $vahva_aste,
[osanto_tA: $heikko_aste],
sisätulento_seen,
$voittoaste, $heikko_aste) +
monikko7 ($vahva_aste, $monikko, $monikko,
[omanto_iT: $monikko,
omanto_ten: $heikko_aste],
[osanto_itA: $monikko],
[sisätulento_isiin: $monikko,
sisätulento_ihin: $monikko], $yliaste));
end;
# Askel- ja askele-tyyppisten sanojen taivutus.
#
# Sanojen taivutusmuotoja käytetään sekaisin, ja tämä
# sääntö tunnistaa molemmat paitsi yksikön nimennössä.
# Kaikilla sanoilla ei ole kahta erilaista yksinön
# nimentöä. On esim. hepene, mutta ei *hepen.
#
# Yksikkö Monikko Yksikkö Monikko
# askel askelet askele askeleet
# askelen askelien askeleen askeleiden
# askelten askeleitten
# askelta askelia askeletta askeleita
# askelena askelina askeleena askeleina
# askeleksi askeliksi askeleeksi askeleiksi
# askelessa askelissa askeleessa askeleissa
# askelesta askelista askeleesta askeleista
# askeleen askeliin askeleeseen askeleisiin
# askeleihin
# askelella askelilla askeleella askeleilla
# askelelta askelilta askeleelta askeleilta
# askelelle askelille askeleelle askeleille
# askeletta askelitta askeleetta askeleitta
# askeline askeleine
# askelin askelein
#
# Käänteissanakirjassa "askelten" on askele-sanan monikon omanto,
# mutta Perussanakirjassa askel-sanan monikon omanto. Tässä se
# on askel-sanan sijamuoto, koska näin ohjelman saadaan
# vähän yksinkertaisemmaksi.
subrule taival ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + "e", $heikko_aste,
$vahva_aste + "e", $vahva_aste + "e",
[osanto_tA: $heikko_aste],
sisätulento_Vn,
$vahva_aste + "e", $heikko_aste) +
[johdin_tOn: $vahva_aste + "e",
johdin_mAinen: $heikko_aste,
johdin_inen: $vahva_aste + "e",
nimentö_t: $vahva_aste + "e",
omanto_ien: $vahva_aste,
omanto_ten: $heikko_aste,
osanto_iA: $vahva_aste,
olento_inA: $vahva_aste,
sija_monikko_1: $vahva_aste,
sisätulento_iin: $vahva_aste,
ulkopaikallissija_illA: $vahva_aste,
vajanto_ittA: $vahva_aste,
seuranto_ine: $vahva_aste,
johdin_ittAin: $vahva_aste]) +
# Taipale
taivutuskaava ($tietue,
[omistusliite: $vahva_aste + "ee",
nimentö: $vahva_aste + "e",
omanto_n: $vahva_aste + "ee",
osanto_ttA: $vahva_aste + "e",
olento_nA: $vahva_aste + "ee",
tulento_ksi: $vahva_aste + "ee",
sisäolento_ssA: $vahva_aste + "ee",
sisätulento_seen: $vahva_aste + "ee",
ulkopaikallissija_llA: $vahva_aste + "ee",
vajanto_ttA: $vahva_aste + "ee"]
+ yhdyssana ($vahva_aste + "e") +
[johdin_tOn: $vahva_aste + "ee",
johdin_mAinen: $vahva_aste + "e",
johdin_inen: $vahva_aste,
nimentö_t: $vahva_aste + "ee",
omanto_iT: $vahva_aste + "e",
osanto_itA: $vahva_aste + "e",
olento_inA: $vahva_aste + "e",
sija_monikko_1: $vahva_aste + "e",
sisätulento_isiin: $vahva_aste + "e",
sisätulento_ihin: $vahva_aste + "e",
ulkopaikallissija_illA: $vahva_aste + "e",
vajanto_ittA: $vahva_aste + "e",
seuranto_ine: $vahva_aste + "e",
johdin_ittAin: $vahva_aste + "e"]);
end;
# Loppu-s muuttuu ääntiöksi.
# Vai ne sijamuodot, joissa muutos tapahtuu.
#
# Kaunis -> kaun+i+in, kauni++iden.
# Altis -> Alt+ti+in, alt+ti+iden.
# Uros -> ur+o+on, uro++iden.
#
# Parametrit $yksikkö ja $monikko ovat plusmerkkien välissä oleva sanan osa.
#
subrule s_V_loppuinen ($tietue, $yksikkö, $monikko):
return taivutuskaava ($tietue,
[omistusliite: $yksikkö,
omanto_n: $yksikkö,
olento_nA: $yksikkö,
tulento_ksi: $yksikkö,
sisäolento_ssA: $yksikkö,
sisätulento_seen: $yksikkö,
ulkopaikallissija_llA: $yksikkö,
vajanto_ttA: $yksikkö,
nimentö_t: $yksikkö,
omanto_iT: $monikko,
osanto_itA: $monikko,
olento_inA: $monikko,
sija_monikko_1: $monikko,
sisätulento_isiin: $monikko,
sisätulento_ihin: $monikko,
ulkopaikallissija_illA: $monikko,
vajanto_ittA: $monikko,
seuranto_ine: $monikko]);
end;
# Loppu-s muuttuu h:ksi + ääntiöksi.
# Vai ne sijamuodot, joissa muutos tapahtuu.
# Kaunis -> kaunihin.
# Uros -> urohon.
subrule s_hV_loppuinen ($tietue, $yksikkö, $monikko):
return voikko_lista_vain_lipulla(vanhahkot_muodot, taivutuskaava ($tietue,
[omistusliite: $yksikkö,
omanto_n: $yksikkö,
olento_nA: $yksikkö,
tulento_ksi: $yksikkö,
sisäolento_ssA: $yksikkö,
sisätulento_sen: $yksikkö,
ulkopaikallissija_llA: $yksikkö,
vajanto_ttA: $yksikkö,
voittoaste: $yksikkö,
nimentö_t: $yksikkö,
omanto_ien: $monikko,
omanto_iT: $monikko,
osanto_iA: $monikko,
olento_inA: $monikko,
sija_monikko_1: $monikko,
sisätulento_isin: $monikko,
ulkopaikallissija_illA: $monikko,
vajanto_ittA: $monikko,
seuranto_ine: $monikko,
yliaste: $monikko]));
end;
subrule nainen ($tietue):
return taivutuskaava ($tietue,
[omistusliite: "se",
nimentö: "nen",
omanto_n: "se",
osanto_tA: "s",
olento_nA: "se",
tulento_ksi: "se",
sisäolento_ssA: "se",
sisätulento_Vn: "se",
ulkopaikallissija_llA: "se",
vajanto_ttA: "se",
kerronto_sti : "se",
voittoaste: "se",
johdin_tOn: "se",
johdin_UUs: "s",
johdin_lAinen: "s",
johdin_mAinen: "s",
nimentö_t: "se",
omanto_ien: "s",
omanto_ten: "s",
osanto_iA: "s",
olento_inA: "s",
sija_monikko_1: "s",
sisätulento_iin: "s",
ulkopaikallissija_illA: "s",
vajanto_ittA: "s",
seuranto_ine: "s",
yliaste: "s",
johdin_ittAin: "s",
tavuviiva: "s"]
+ yhdyssana ("s"));
end;
subrule vihanta ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
yksikkö8 ($vahva_aste + A($tietue), $vahva_aste + A($tietue),
$vahva_aste + A($tietue), $heikko_aste + A($tietue),
[osanto_A: $vahva_aste + A($tietue),
osanto_tA: $vahva_aste + A($tietue)],
sisätulento_Vn,
$heikko_aste + A($tietue),
$vahva_aste + A($tietue)) +
[johdin_tOn: $heikko_aste + A($tietue),
johdin_UUs: $heikko_aste,
johdin_inen: $vahva_aste + A($tietue)] +
monikko7 ($heikko_aste + A($tietue),
$vahva_aste, $heikko_aste,
[omanto_ien: $vahva_aste,
omanto_iT: $vahva_aste + O($tietue),
omanto_in: $vahva_aste + A($tietue),
omanto_jen: $vahva_aste + O($tietue)],
[osanto_iA: $vahva_aste,
osanto_itA: $vahva_aste + O($tietue),
osanto_jA: $vahva_aste + O($tietue)],
[sisätulento_ihin: $vahva_aste + O($tietue),
sisätulento_iin: $heikko_aste],
$heikko_aste)) +
taivutuskaava ($tietue,
[omanto_iT: $heikko_aste + O($tietue),
osanto_itA: $heikko_aste + O($tietue),
sisätulento_ihin: $heikko_aste + O($tietue)]);
end;
###########################################################################
# Teonsanat.
subrule punoa ($tietue, $vahva_aste, $heikko_aste):
return käskytapa ($tietue, $heikko_aste)
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste, $heikko_aste,
$vahva_aste, $heikko_aste,
tositapa_4_tt ($heikko_aste)) +
ehtotapa_ttA ($tietue, $vahva_aste, $heikko_aste) +
mahtotapa_ne_ttA ($tietue, $vahva_aste, $heikko_aste) +
käskytapa_ttA ($tietue, $vahva_aste, $heikko_aste) +
nimitapa_laatutapa ($tietue, $vahva_aste, $heikko_aste) +
[johdin_ntA: $heikko_aste])
+ tekijännimi ($tietue, $vahva_aste, kantaja);
end;
subrule punoa_punottaa ($tietue, $vahva_aste, $heikko_aste):
return punoa ($tietue, $vahva_aste, $heikko_aste)
+ punottaa ($tietue, $heikko_aste);
end;
subrule muistaa ($tietue,
$vahva_aste, $heikko_aste,
$kertoman_vahva_aste, $kertoman_heikko_aste):
define $tekijä4 := $kertoman_heikko_aste + "e";
return käskytapa ($tietue, $heikko_aste)
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste, $heikko_aste,
$kertoman_vahva_aste, $kertoman_heikko_aste,
tositapa_4_tt ($tekijä4)) +
ehtotapa_ttA ($tietue, $vahva_aste, $tekijä4) +
mahtotapa_ne_ttA ($tietue, $vahva_aste, $tekijä4) +
käskytapa_ttA ($tietue, $vahva_aste, $tekijä4) +
nimitapa_laatutapa ($tietue, $vahva_aste, $tekijä4))
+ tekijännimi ($tietue, $vahva_aste, kantaja);
end;
subrule muistella ($tietue, $vahva_aste, $heikko_aste):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := teonsana;
$tietue.perusmuoto := $tietue.alku + $heikko_aste + "el" + lA($tietue);
return katsella ($tietue, $vahva_aste + "el", $heikko_aste + "el");
end;
subrule muistaa_muistella ($tietue,
$vahva_aste, $heikko_aste,
$kertoman_vahva_aste, $kertoman_heikko_aste):
return muistaa ($tietue,
$vahva_aste, $heikko_aste,
$kertoman_vahva_aste, $kertoman_heikko_aste)
+ muistella ($tietue, $kertoman_vahva_aste, $kertoman_heikko_aste);
end;
subrule muistua ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := teonsana;
$tietue.alku :=+ U($tietue);
$tietue.perusmuoto := $tietue.alku + A($tietue);
return punoa ($tietue, "", "");
end;
subrule kaivaa ($tietue, $vahva_aste, $heikko_aste, $tekijännimi):
return käskytapa ($tietue, $heikko_aste + A($tietue))
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste + A($tietue),
$heikko_aste + A($tietue),
$vahva_aste + O($tietue),
$heikko_aste + O($tietue),
tositapa_4_tt ($heikko_aste + "e")) +
ehtotapa_ttA ($tietue, $vahva_aste + A($tietue),
$heikko_aste + "e") +
mahtotapa_ne_ttA ($tietue, $vahva_aste + A($tietue),
$heikko_aste + "e") +
käskytapa_ttA ($tietue, $vahva_aste + A($tietue),
$heikko_aste + "e") +
nimitapa_laatutapa ($tietue, $vahva_aste + A($tietue),
$heikko_aste + "e"))
+ tekijännimi ($tietue, $vahva_aste + A($tietue), $tekijännimi);
end;
subrule sallia ($tietue, $vahva_aste, $heikko_aste):
return käskytapa ($tietue, $heikko_aste + "i")
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste + "i", $heikko_aste + "i",
$vahva_aste, $heikko_aste,
tositapa_4_tt ($heikko_aste + "i")) +
ehtotapa_ttA ($tietue, $vahva_aste, $heikko_aste + "i") +
mahtotapa_ne_ttA ($tietue, $vahva_aste + "i", $heikko_aste + "i") +
käskytapa_ttA ($tietue, $vahva_aste + "i", $heikko_aste + "i") +
nimitapa_laatutapa ($tietue, $vahva_aste + "i",
$heikko_aste + "i") +
[johdin_ntA: $heikko_aste + "i"])
+ tekijännimi ($tietue, $vahva_aste + "i", kulkija);
end;
subrule katsella ($tietue, $vahva_aste, $heikko_aste):
return ehtotapa2 ($tietue, $vahva_aste + "e")
+ käskytapa ($tietue, $vahva_aste + "e")
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste + "e", $vahva_aste + "e",
$vahva_aste, $vahva_aste,
tositapa_4_l ($heikko_aste)) +
ehtotapa_tA ($tietue, $vahva_aste, $heikko_aste) +
mahtotapa_le_tA ($tietue, $heikko_aste, $heikko_aste) +
käskytapa_tA ($tietue, $heikko_aste, $heikko_aste) +
[nimitapa_1_lA: $heikko_aste,
nimitapa_2: $heikko_aste + "l",
nimitapa_2_tA: $heikko_aste] +
nimitapa_3_tA_4 ($tietue, $vahva_aste + "e", $heikko_aste) +
laatutapa_1_tA ($tietue, $vahva_aste + "e", $heikko_aste) +
laatutapa_2_lUt ($tietue, $heikko_aste))
+ tekijännimi ($tietue, $vahva_aste + "i", kulkija)
+ sana_U ($tietue, $vahva_aste); # Katselu.
end;
subrule katketa_kohota ($tietue, $vahva_aste, $heikko_aste):
return käskytapa ($tietue, $vahva_aste + A($tietue))
+ taivutuskaava ($tietue,
tositapa ($tietue,
$vahva_aste + A($tietue), $vahva_aste + A($tietue),
$vahva_aste + "s", $vahva_aste + "s",
tositapa_4_tt ($heikko_aste)) +
ehtotapa_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste) +
mahtotapa_ne_ttA ($tietue, $heikko_aste + "n", $heikko_aste) +
käskytapa_ttA ($tietue, $heikko_aste + "t", $heikko_aste) +
[nimitapa_1_tA: $heikko_aste,
nimitapa_2: $heikko_aste + "t",
nimitapa_2_ttA: $heikko_aste] +
nimitapa_3_ttA_4 ($tietue, $vahva_aste + A($tietue), $heikko_aste) +
laatutapa_1_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste) +
laatutapa_2_nUt_ttU ($tietue, $heikko_aste + "n", $heikko_aste) +
[johdin_ntA: $heikko_aste])
+ taivutuskaava ($tietue, [ehtotapa: $vahva_aste]) # Katke+isi, koho+isi.
+ tekijännimi ($tietue, $vahva_aste + A($tietue), kantaja);
end;
subrule katketa ($tietue, $vahva_aste, $heikko_aste):
return katketa_kohota ($tietue, $vahva_aste, $heikko_aste)
+ voikko_lista_vain_lipulla(vanhat_muodot,
tositavan_kestämä ($tietue, $vahva_aste + "e",
$vahva_aste + "e") # Katke+en, jne.
+ tositavan_kestämä_y3 ($tietue, $vahva_aste + "e") # Katkee.
+ käskytapa ($tietue, $vahva_aste + "e")); # Katkee.
end;
subrule nuolaista ($tietue, $vahva_aste, $heikko_aste):
return käskytapa ($tietue, $vahva_aste + "e")
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste + "e", $vahva_aste + "e",
$vahva_aste, $vahva_aste,
tositapa_4_t ($heikko_aste)) +
ehtotapa_tA ($tietue, $vahva_aste, $heikko_aste) +
mahtotapa_se_tA ($tietue, $heikko_aste, $heikko_aste) +
käskytapa_tA ($tietue, $heikko_aste, $heikko_aste) +
[nimitapa_1_tA: $heikko_aste,
nimitapa_2: $heikko_aste + "t",
nimitapa_2_tA: $heikko_aste] +
nimitapa_3_tA_4 ($tietue, $vahva_aste + "e", $heikko_aste) +
laatutapa_1_tA ($tietue, $vahva_aste + "e", $heikko_aste) +
laatutapa_2_sUt ($tietue, $heikko_aste))
+ tekijännimi ($tietue, $vahva_aste + "i", kulkija); # Nuolaisija.
end;
subrule nuolaista2 ($tietue):
return nuolaista ($tietue, "is", "is") # Nuolaista.
+ sana_U ($tietue, "is"); # Nuolaisu.
end;
# Vain kerakevartaloisia muotoja.
#
subrule seistä ($tietue):
return taivutuskaava ($tietue,
[tositavan_kestämä_tAAn: "",
tositavan_kertoma_tiin: "",
ehtotapa_tA: "",
mahtotapa_se: "",
mahtotapa_tA: "",
käskytapa: "",
käskytapa_tA: "",
nimitapa_1_tA: "",
nimitapa_2: "t",
nimitapa_2_tA: "",
nimitapa_3_tA: "",
johdin_tAvA: "",
johdin_sUt_stU: ""]);
end;
subrule sana_U ($tietue, $lisä):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ $lisä + U($tietue);
$tietue.luokka := nimisana;
$tietue.perusmuoto := $tietue.alku;
return arvelu ($tietue, "", "");
end;
subrule aavistus ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ U($tietue);
$tietue.luokka := nimisana;
$tietue.perusmuoto := $tietue.alku + "s";
return vastaus ($tietue);
end;
subrule sana_Us ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ "k" + U($tietue) + U($tietue);
$tietue.luokka := nimisana;
$tietue.perusmuoto := $tietue.alku + "s";
return kalleus ($tietue);
end;
subrule sana_Vs ($tietue, $lisä):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ $lisä;
$tietue.luokka := nimisana;
$tietue.perusmuoto := $tietue.alku +"s";
return vastaus ($tietue);
end;
subrule murros ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ "ro";
$tietue.luokka := nimisana;
$tietue.perusmuoto := $tietue.alku +"s";
$tietue.äs := a;
return vastaus ($tietue);
end;
# Kirjoittaa, kirjottaa => kirjoittautua, kirjottautua.
#
subrule kirjoittautua ($tietue, $lisä):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ $lisä + A($tietue) + U($tietue);
$tietue.perusmuoto := $tietue.alku + "t" + U($tietue) + A($tietue);
return antautua ($tietue, tU($tietue), dU($tietue));
end;
# Kirjoittaa, kirjottaa => kirjoitella, kirjotella.
#
subrule kirjoitella ($tietue, $lisä):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ $lisä;
$tietue.perusmuoto := $tietue.alku + "el" + lA($tietue);
return katsella ($tietue, "tel", "el");
end;
subrule selvitä ($tietue, $vahva_aste, $heikko_aste):
return haluta ($tietue, $vahva_aste, $heikko_aste);
end;
subrule kohota ($tietue, $vahva_aste, $heikko_aste):
return katketa_kohota ($tietue, $vahva_aste, $heikko_aste)
+ voikko_lista_vain_lipulla(vanhat_muodot,
tositavan_kestämä ($tietue, $vahva_aste + O($tietue),
$vahva_aste + O($tietue)) # Koho+on, jne.
+ tositavan_kestämä_y3 ($tietue, $vahva_aste + O($tietue)) # Kohoo.
+ käskytapa ($tietue, $vahva_aste + O($tietue)) # Kohoo.
+ tekijännimi ($tietue, $vahva_aste + O($tietue), kantaja)); # Kohooja.
end;
subrule kohota_kohoilla ($tietue, $vahva_aste, $heikko_aste):
return kohota ($tietue, $vahva_aste, $heikko_aste)
+ salailla ($tietue, $vahva_aste); # Kohota => kohoilla.
end;
subrule haluta ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
tositapa ($tietue,
$vahva_aste + A($tietue), $vahva_aste + A($tietue),
$vahva_aste + "s", $vahva_aste + "s",
tositapa_4_tt ($heikko_aste)) +
ehtotapa_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste) +
mahtotapa_ne_ttA ($tietue, $heikko_aste + "n", $heikko_aste) +
käskytapa_ttA ($tietue, $heikko_aste + "t", $heikko_aste) +
[nimitapa_1_tA: $heikko_aste,
nimitapa_2: $heikko_aste + "t",
nimitapa_2_ttA: $heikko_aste] +
nimitapa_3_ttA_4 ($tietue, $vahva_aste + A($tietue), $heikko_aste) +
laatutapa_1_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste) +
laatutapa_2_nUt_ttU ($tietue, $heikko_aste + "n", $heikko_aste))
+ käskytapa ($tietue, $vahva_aste + A($tietue))
+ tekijännimi ($tietue, $vahva_aste + A($tietue), kantaja);
end;
subrule kihistä ($tietue):
return nuolaista ($tietue, "is", "is")
+ kihajaa ($tietue);
end;
subrule kihajaa ($tietue):
$tietue.äs := ääntiösointu_kihistä ($tietue);
return tositavan_kestämä ($tietue, AjA($tietue), AjA($tietue)) # Kihaja+n.
+ tositavan_kertoma ($tietue, Aj($tietue), Aj($tietue)) # Kihaj+i.
+ ehtotapa2 ($tietue, AjA($tietue)); # Kihaja+isi.
end;
subrule kihinä ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ "in";
$tietue.luokka := nimisana;
$tietue.perusmuoto := $tietue.alku + A($tietue);
return apila ($tietue, A($tietue), O($tietue));
end;
subrule kihahtaa ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.äs := ääntiösointu_kihistä ($tietue);
$tietue.alku :=+ A($tietue) + "h";
$tietue.perusmuoto := $tietue.alku + "t" + AA($tietue);
return muistaa_muistella ($tietue, tA($tietue), dA($tietue), "t", "d")
+ taivutuskaava ($tietue, [johdin_Us_ksen: "d"]); # Kihahdus.
end;
subrule kihauttaa_kihautella ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.äs := ääntiösointu_kihistä ($tietue);
$tietue.alku :=+ A($tietue) + U($tietue) + "t";
$tietue.perusmuoto := $tietue.alku + "t" + AA($tietue);
return muistaa_muistella ($tietue, tA($tietue), A($tietue), "t", "")
+ taivutuskaava ($tietue, [johdin_Us_ksen: ""]); # Kihautus.
end;
subrule antautua ($tietue, $vahva_aste, $heikko_aste):
return punoa ($tietue, $vahva_aste, $heikko_aste);
end;
subrule laskea ($tietue, $vahva_aste, $heikko_aste):
return käskytapa ($tietue, $heikko_aste + "e")
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste + "e", $heikko_aste + "e",
$vahva_aste, $heikko_aste,
tositapa_4_tt ($heikko_aste + "e")) +
ehtotapa_ttA ($tietue, $vahva_aste, $heikko_aste + "e") +
mahtotapa_ne_ttA ($tietue, $vahva_aste + "e", $heikko_aste + "e") +
käskytapa_ttA ($tietue, $vahva_aste + "e", $heikko_aste + "e") +
nimitapa_laatutapa_i ($tietue,
$vahva_aste + "e",
$heikko_aste + "e",
$vahva_aste + "i") +
[johdin_ntA: $heikko_aste + "e"])
+ tekijännimi ($tietue, $vahva_aste + "i", kulkija);
end;
subrule laskea_laskeskella ($tietue, $vahva_aste, $heikko_aste):
return laskea ($tietue, $vahva_aste, $heikko_aste)
+ muistella ($tietue,
$heikko_aste + "esk",
$heikko_aste + "esk"); # Laskeskella.
end;
subrule haastaa_haastella ($tietue, $vahva_aste, $heikko_aste):
return tositavan_kertoma ($tietue, $vahva_aste, $heikko_aste)
+ käskytapa ($tietue, $heikko_aste + A($tietue))
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste + A($tietue), $heikko_aste + A($tietue),
$vahva_aste + O($tietue), $heikko_aste + O($tietue),
tositapa_4_tt ($heikko_aste + "e")) +
ehtotapa_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
mahtotapa_ne_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
käskytapa_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
nimitapa_laatutapa ($tietue,
$vahva_aste + A($tietue),
$heikko_aste + "e"))
+ tekijännimi ($tietue, $vahva_aste + A($tietue), kantaja)
+ muistella ($tietue, $vahva_aste, $heikko_aste); # Haastella.
end;
subrule huutaa ($tietue, $vahva_aste, $heikko_aste):
return käskytapa ($tietue, $heikko_aste + A($tietue))
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste + A($tietue), $heikko_aste + A($tietue),
"s", "s", tositapa_4_tt ($heikko_aste + "e")) +
ehtotapa_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
mahtotapa_ne_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
käskytapa_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
[nimitapa_1_A: $vahva_aste + A($tietue),
nimitapa_2: $vahva_aste + A($tietue),
nimitapa_2_ttA: $heikko_aste + "e"] +
nimitapa_3_ttA_4 ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
laatutapa_1_ttA ($tietue,
$vahva_aste + A($tietue),
$heikko_aste + "e") +
laatutapa_2_nUt_ttU ($tietue,
$vahva_aste + A($tietue),
$heikko_aste + "e"))
+ tekijännimi ($tietue, $vahva_aste + A($tietue), kantaja);
end;
subrule aleta ($tietue, $vahva_aste, $heikko_aste):
return käskytapa ($tietue, $vahva_aste + "ne")
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste + "ne",
$vahva_aste + "ne",
$vahva_aste + "n", $vahva_aste + "n",
tositapa_4_tt ($heikko_aste)) +
ehtotapa_ttA ($tietue, $vahva_aste + "n",
$heikko_aste) +
mahtotapa_ne_ttA ($tietue, $heikko_aste + "n",
$heikko_aste) +
käskytapa_ttA ($tietue, $heikko_aste + "t",
$heikko_aste) +
[nimitapa_1_tA: $heikko_aste,
nimitapa_2: $heikko_aste + "t",
nimitapa_2_ttA: $heikko_aste] +
nimitapa_3_ttA_4 ($tietue, $vahva_aste + "ne",
$heikko_aste) +
laatutapa_1_ttA ($tietue, $vahva_aste + "ne",
$heikko_aste) +
laatutapa_2_nUt_ttU ($tietue, $heikko_aste + "n",
$heikko_aste))
+ taivutuskaava ($tietue, [ehtotapa: $vahva_aste + "ne"]) # Aleneisi.
+ tekijännimi ($tietue, $vahva_aste + "ni", kulkija);
end;
subrule alentaa ($tietue, $heikko_aste):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ $heikko_aste + "n";
$tietue.perusmuoto := $tietue.alku + tAA($tietue);
return huutaa ($tietue, "t", "n")
+ taivutuskaava ($tietue, [johdin_Us_ksen: "n"]); # Alennus.
end;
subrule alentua ($tietue, $heikko_aste):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ $heikko_aste + "n";
$tietue.perusmuoto := $tietue.alku + "t" + UA($tietue);
return punoa ($tietue, tU($tietue), nU($tietue));
end;
subrule alennella ($tietue, $heikko_aste):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ $heikko_aste + "n";
$tietue.luokka := teonsana;
$tietue.perusmuoto := $tietue.alku + "nel" + lA($tietue);
#define $a := transmit ($tietue.perusmuoto);
return katsella ($tietue, "tel", "nel");
end;
subrule salata ($tietue, $vahva_aste, $heikko_aste):
return tositavan_kestämä_y3 ($tietue, $vahva_aste + A($tietue))
+ taivutuskaava ($tietue,
tositapa_ei_kestämä_y3
($tietue,
$vahva_aste + A($tietue),
$vahva_aste + A($tietue),
$vahva_aste + "s",
$vahva_aste + "s",
tositapa_4_tt ($heikko_aste)) +
ehtotapa_ttA ($tietue, $vahva_aste, $heikko_aste) +
mahtotapa_ne_ttA ($tietue, $heikko_aste + "n", $heikko_aste) +
käskytapa_ttA ($tietue, $heikko_aste + "t", $heikko_aste) +
[nimitapa_1_tA: $heikko_aste,
nimitapa_2: $heikko_aste + "t",
nimitapa_2_ttA: $heikko_aste] +
nimitapa_3_ttA_4 ($tietue, $vahva_aste + A($tietue), $heikko_aste) +
laatutapa_1_ttA ($tietue,
$vahva_aste + A($tietue),
$heikko_aste) +
laatutapa_2_nUt_ttU ($tietue,
$heikko_aste + "n",
$heikko_aste) +
[johdin_Us_ksen: $vahva_aste])
+ tekijännimi ($tietue, $vahva_aste + A($tietue), kantaja);
end;
subrule salata_salailla ($tietue, $vahva_aste, $heikko_aste):
return salata ($tietue, $vahva_aste, $heikko_aste)
+ salailla ($tietue, $vahva_aste);
end;
subrule arvailla ($tietue):
return ehtotapa2 ($tietue, "e")
+ käskytapa ($tietue, "e")
+ taivutuskaava ($tietue,
tositapa ($tietue, "e", "e", "", "",
tositapa_4_l ("")) +
ehtotapa_tA ($tietue, "", "") +
mahtotapa_le_tA ($tietue, "", "") +
käskytapa_tA ($tietue, "", "") +
[nimitapa_1_lA: "",
nimitapa_2: "l",
nimitapa_2_tA: ""] +
nimitapa_3_tA_4 ($tietue, "e", "") +
laatutapa_1_tA ($tietue, "e", "") +
laatutapa_2_lUt ($tietue, ""))
+ tekijännimi ($tietue, "i", kulkija)
+ sana_U ($tietue, "");
end;
subrule paistaa ($tietue, $vahva_aste, $heikko_aste):
return tositavan_kertoma ($tietue, $vahva_aste, $heikko_aste)
+ käskytapa ($tietue, A($tietue))
+ taivutuskaava ($tietue,
tositapa ($tietue, $vahva_aste + A($tietue), $vahva_aste + A($tietue),
$vahva_aste + O($tietue), $heikko_aste + O($tietue),
tositapa_4_tt ($heikko_aste + "e")) +
ehtotapa_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
mahtotapa_ne_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
käskytapa_ttA ($tietue, $vahva_aste + A($tietue), $heikko_aste + "e") +
nimitapa_laatutapa ($tietue,
$vahva_aste + A($tietue),
$heikko_aste + "e"))
+ tekijännimi ($tietue, $vahva_aste + A($tietue), kulkija);
end;
subrule voida ($tietue, $lisä1, $lisä2):
return tositavan_kestämä_y3 ($tietue, $lisä1)
+ käskytapa ($tietue, $lisä1)
+ taivutuskaava ($tietue,
tositapa_ei_kestämä_y3
($tietue, $lisä1, $lisä1, $lisä2, $lisä2,
tositapa_4_d ($lisä1)) +
ehtotapa_tA ($tietue, $lisä2, $lisä1) +
mahtotapa_ne_tA ($tietue, $lisä1, $lisä1) +
käskytapa_tA ($tietue, $lisä1, $lisä1) +
[nimitapa_1_dA: $lisä1,
nimitapa_2: $lisä1 + "d",
nimitapa_2_tA: $lisä1] +
nimitapa_3_tA_4 ($tietue, $lisä1, $lisä1) +
[johdin_vE: $lisä1,
johdin_tAvA: $lisä1] +
laatutapa_2_nUt_dU ($tietue, $lisä1, $lisä1) +
[johdin_nti: $lisä1])
+ tekijännimi ($tietue, $lisä1, myyjä);
end;
subrule kanavoida ($tietue, $lisä1, $lisä2):
return tositavan_kestämä_y3 ($tietue, $lisä1)
+ käskytapa ($tietue, $lisä1)
+ taivutuskaava ($tietue,
tositapa_ei_kestämä_y3
($tietue, $lisä1, $lisä1, $lisä2, $lisä2,
tositapa_4_d ($lisä1)) +
ehtotapa_tA ($tietue, $lisä2, $lisä1) +
mahtotapa_ne_tA ($tietue, $lisä1, $lisä1) +
käskytapa_tA ($tietue, $lisä1, $lisä1) +
[nimitapa_1_dA: $lisä1,
nimitapa_2: $lisä1 + "d",
nimitapa_2_tA: $lisä1] +
nimitapa_3_tA_4 ($tietue, $lisä1, $lisä1) +
laatutapa_1_tA ($tietue, $lisä1, $lisä1) +
laatutapa_2_nUt_dU ($tietue, $lisä1, $lisä1) +
[johdin_nti: $lisä1])
+ tekijännimi ($tietue, $lisä1, myyjä);
end;
subrule tulla ($tietue, $tositapa_4, $mahtotapa,
$nimitapa_1, $nimitapa_2_lisä, $laatutapa_2):
return käskytapa ($tietue, "e")
+ taivutuskaava ($tietue,
tositapa ($tietue, "e", "e", "", "", $tositapa_4) +
[ehtotapa: "",
ehtotapa_tA: "",
$mahtotapa: "",
mahtotapa_tA: "",
käskytapa: "",
käskytapa_tA: "",
$nimitapa_1: "",
nimitapa_2: $nimitapa_2_lisä,
nimitapa_2_tA: ""] +
nimitapa_3_tA_4 ($tietue, "e", "") +
laatutapa_1_tA ($tietue, "e", "") +
$laatutapa_2)
+ tekijännimi ($tietue, "i", kulkija);
end;
subrule ehtotapa_tA ($tietue, $vahva_aste, $heikko_aste):
return [ehtotapa: $vahva_aste, ehtotapa_tA: $heikko_aste];
end;
subrule ehtotapa_ttA ($tietue, $vahva_aste, $heikko_aste):
return [ehtotapa: $vahva_aste, ehtotapa_ttA: $heikko_aste];
end;
subrule mahtotapa_ne_ttA ($tietue, $vahva_aste, $heikko_aste):
#define $a := transmit ("huuhaa " + $vahva_aste + " " + $heikko_aste);
return [mahtotapa_ne: $vahva_aste,
mahtotapa_ttA: $heikko_aste];
end;
subrule mahtotapa_se_tA ($tietue, $vahva_aste, $heikko_aste):
return [mahtotapa_se: $vahva_aste,
mahtotapa_tA: $heikko_aste];
end;
le mahtotapa_ne_tA ($tietue, $vahva_aste, $heikko_aste):
return [mahtotapa_ne: $vahva_aste,
mahtotapa_tA: $heikko_aste];
end;
subrule mahtotapa_le_tA ($tietue, $vahva_aste, $heikko_aste):
return [mahtotapa_le: $vahva_aste,
mahtotapa_tA: $heikko_aste];
end;
subrule käskytapa_ttA ($tietue, $vahva_aste, $heikko_aste):
return [käskytapa: $vahva_aste,
käskytapa_ttA: $heikko_aste];
end;
subrule käskytapa_tA ($tietue, $vahva_aste, $heikko_aste):
return [käskytapa: $vahva_aste,
käskytapa_tA: $heikko_aste];
end;
subrule nimitapa_3_ttA_4 ($tietue, $vahva_aste, $heikko_aste):
return [nimitapa_3: $vahva_aste,
nimitapa_3_ttA: $heikko_aste,
nimitapa_45: $vahva_aste,
johdin_mA: $vahva_aste];
end;
subrule nimitapa_3_tA_4 ($tietue, $vahva_aste, $heikko_aste):
return [nimitapa_3: $vahva_aste,
nimitapa_3_tA: $heikko_aste,
nimitapa_45: $vahva_aste,
johdin_mA: $vahva_aste];
end;
subrule nimitapa_laatutapa ($tietue, $vahva_aste, $heikko_aste):
return nimitapa_laatutapa_i ($tietue, $vahva_aste, $heikko_aste, $vahva_aste);
end;
subrule nimitapa_laatutapa_i ($tietue, $vahva_aste, $heikko_aste, $nimitapa_2):
return [nimitapa_1_A: $vahva_aste,
nimitapa_2: $nimitapa_2,
nimitapa_2_ttA: $heikko_aste] +
nimitapa_3_ttA_4 ($tietue, $vahva_aste, $heikko_aste) +
laatutapa_1_ttA ($tietue, $vahva_aste, $heikko_aste) +
laatutapa_2_nUt_ttU ($tietue, $vahva_aste, $heikko_aste);
end;
subrule laatutapa_1_tA ($tietue, $vahva_aste, $heikko_aste):
return [johdin_vA: $vahva_aste,
johdin_tAvA: $heikko_aste];
end;
subrule laatutapa_1_ttA ($tietue, $vahva_aste, $heikko_aste):
return [johdin_vA: $vahva_aste,
johdin_ttAvA: $heikko_aste];
end;
subrule laatutapa_2_lUt ($tietue, $lisä):
return [johdin_lUt: $lisä,
johdin_tU: $lisä,
johdin_lU: $lisä];
end;
subrule laatutapa_2_nUt ($tietue, $vahva_aste, $heikko_aste):
return [johdin_nUt: $vahva_aste,
johdin_tU: $heikko_aste,
johdin_nU: $heikko_aste];
end;
subrule laatutapa_2_nUt_dU ($tietue, $vahva_aste, $heikko_aste):
return [johdin_nUt: $vahva_aste,
johdin_tU: $heikko_aste,
johdin_dU: $heikko_aste];
end;
subrule laatutapa_2_nUt_ttU ($tietue, $vahva_aste, $heikko_aste):
return [johdin_nUt: $vahva_aste,
johdin_ttU: $heikko_aste];
end;
subrule laatutapa_2_rUt ($tietue, $vahva_aste, $heikko_aste):
return [johdin_rUt: $vahva_aste,
johdin_tU: $heikko_aste,
johdin_rU: $heikko_aste];
end;
subrule laatutapa_2_sUt ($tietue, $lisä):
return [johdin_sUt_stU: $lisä];
end;
subrule eka_kirjain ($sana):
if ($sana matches "k.*") then
return "k";
elseif ($sana matches "p.*") then
return "p";
elseif ($sana matches "t.*") then
return "t";
else
error "eka kirjain: 1. kirjain ei ole k, p eikä t";
end;
end;
# Sana, joka taipuu yksikössä kuten autio.
#
subrule yksikkö_autio ($tietue, $lisä, $osannot):
if ($tietue.luokka = nimisana) then
return yksikkö8 ($lisä, $lisä, $lisä, $lisä,
$osannot,
sisätulento_Vn,
$lisä, $lisä) +
[johdin_tOn: $lisä,
johdin_mAinen: $lisä,
johdin_inen: $lisä];
else
define $johdin := johdin_UUs;
if (last($tietue.alku) matches @ääntiö) then
$johdin := johdin_Us;
end;
return yksikkö8 ($lisä, $lisä, $lisä, $lisä,
$osannot,
sisätulento_Vn,
$lisä, $lisä) +
[johdin_tOn: $lisä,
johdin_lAinen: $lisä,
johdin_inen: $lisä,
$johdin: ""];
end;
end;
# Sana, joka taipuu yksikössä kuten tuohi.
#
subrule yksikkö_tuohi ($lisä1, $lisä2):
return yksikkö8 ($lisä1, $lisä2, $lisä1, $lisä1,
[osanto_tA: ""], sisätulento_Vn,
$lisä1, $lisä2) +
[johdin_tOn: $lisä1,
johdin_lAinen: $lisä1,
johdin_mAinen: $lisä2,
johdin_inen: ""];
end;
subrule yksikkö_meri ($e, $i):
return [tavuviiva: $i,
omistusliite: $e,
nimentö: $i,
omanto_n: $e,
olento_nA: $e, # Mere+nä.
tulento_ksi: $e,
sisäolento_ssA: $e,
sisätulento_Vn: $e,
ulkopaikallissija_llA: $e,
vajanto_ttA: $e,
kerronto_sti: $e,
voittoaste: $e,
johdin_tOn: $e,
johdin_inen: ""]
+ yhdyssana ($i);
end;
subrule yksikkö_valo ($vahva_aste, $heikko_aste):
return [tavuviiva: $vahva_aste,
omistusliite: $vahva_aste,
nimentö: $vahva_aste,
omanto_n: $heikko_aste,
osanto_A: $vahva_aste,
olento_nA: $vahva_aste,
tulento_ksi: $heikko_aste,
sisäolento_ssA: $heikko_aste,
sisätulento_Vn: $vahva_aste,
ulkopaikallissija_llA: $heikko_aste,
vajanto_ttA: $heikko_aste,
kerronto_sti: $heikko_aste,
voittoaste: $heikko_aste,
johdin_tOn: $heikko_aste,
johdin_Us: $vahva_aste,
johdin_lAinen: $vahva_aste,
johdin_mAinen: $vahva_aste,
johdin_inen: $vahva_aste]
+ yhdyssana ($vahva_aste);
end;
# Yksikön taivutus.
# osanto sisätulento
# A Vn
# A tA Vn
# tA Vn
# ttA Vn
#
# tA hVn
#
# tA seen
# ttA seen
subrule yksikkö8 ($omistusliite,
$nimentö,
$vahva_aste,
$heikko_aste,
$osanto,
$sisätulento,
$voittoaste,
$yhdyssana):
define $st := <>;
if (value_type($sisätulento) = record) then
$st := $sisätulento;
else
$st := [$sisätulento: $vahva_aste];
end;
return [tavuviiva: $nimentö,
omistusliite: $omistusliite,
nimentö: $nimentö,
omanto_n: $heikko_aste] +
$osanto +
[olento_nA: $vahva_aste,
tulento_ksi: $heikko_aste,
sisäolento_ssA: $heikko_aste] +
$st +
[ulkopaikallissija_llA: $heikko_aste,
vajanto_ttA: $heikko_aste,
kerronto_sti: $heikko_aste,
voittoaste: $voittoaste]
+ yhdyssana ($yhdyssana);
end;
subrule yksikkö8b ($omistusliite,
$nimentö,
$vahva_aste,
$heikko_aste,
$osanto,
$sisätulento,
$yhdyssana):
define $st := <>;
if (value_type($sisätulento) = record) then
$st := $sisätulento;
else
$st := [$sisätulento: $vahva_aste];
end;
return [tavuviiva: $nimentö,
omistusliite: $omistusliite,
nimentö: $nimentö,
omanto_n: $heikko_aste] +
$osanto +
[olento_nA: $vahva_aste,
tulento_ksi: $heikko_aste,
sisäolento_ssA: $heikko_aste] +
$st +
[ulkopaikallissija_llA: $heikko_aste,
vajanto_ttA: $heikko_aste,
kerronto_sti: $heikko_aste]
+ yhdyssana ($yhdyssana);
end;
subrule yksikkö9 ($tietue,
$omistusliite,
$nimentö,
$vahva_aste,
$heikko_aste,
$osanto,
$sisätulento,
$voittoaste,
$yhdyssana):
if ($tietue.luokka in <laatusana, nimi_laatusana, johdin_vA>) then
return yksikkö8 ($omistusliite,
$nimentö,
$vahva_aste,
$heikko_aste,
$osanto,
$sisätulento,
$voittoaste,
$yhdyssana);
else
return yksikkö8b ($omistusliite,
$nimentö,
$vahva_aste,
$heikko_aste,
$osanto,
$sisätulento,
$yhdyssana);
end;
end;
subrule monikko6 ($vahva_aste,
$heikko_aste,
$omanto,
$osanto,
$sisätulento,
$yliaste):
return $omanto +
$osanto +
[olento_inA: $vahva_aste,
sija_monikko_1: $heikko_aste] +
$sisätulento +
[ulkopaikallissija_illA: $heikko_aste,
vajanto_ittA: $heikko_aste,
seuranto_ine: $vahva_aste,
yliaste: $yliaste,
johdin_ittAin: $heikko_aste];
end;
subrule monikko7 ($nimentö_t,
$vahva_aste,
$heikko_aste,
$omanto,
$osanto,
$sisätulento,
$yliaste):
define $monikon_nimentö := [nimentö_t: $nimentö_t];
if (value_type($nimentö_t) = record) then
$monikon_nimentö := $nimentö_t;
end;
return $monikon_nimentö +
monikko6 ($vahva_aste,
$heikko_aste,
$omanto,
$osanto,
$sisätulento,
$yliaste);
end;
subrule tositapa_4_d ($lisä):
return [tositavan_kestämä_dAAn: $lisä,
tositavan_kertoma_tiin: $lisä];
end;
subrule tositapa_4_l ($lisä):
return [tositavan_kestämä_lAAn: $lisä,
tositavan_kertoma_tiin: $lisä];
end;
subrule tositapa_4_n ($lisä):
return [tositavan_kestämä_nAAn: $lisä,
tositavan_kertoma_tiin: $lisä];
end;
subrule tositapa_4_r ($lisä):
return [tositavan_kestämä_rAAn: $lisä,
tositavan_kertoma_tiin: $lisä];
end;
subrule tositapa_4_t ($lisä):
return [tositavan_kestämä_tAAn: $lisä,
tositavan_kertoma_tiin: $lisä];
end;
subrule tositapa_4_tt ($lisä):
return [tositavan_kestämä_tAAn: $lisä,
tositavan_kertoma_ttiin: $lisä];
end;
# Etsi merkkijono $u merkkijonosta $s.
# Palauta $u:n indeksi tai -1 jos ei löydy.
#
#subrule indeksi ($s, $u):
# if (length($s) greater_equal length($u)) then
# foreach $i in length($s) - length($u) + 1:
# if (substring ($s, $i, $i + length($u) - 1) = $u) then
# return $i;
# end;
# end;
# end;
# return -1;
#end;
subrule juonto ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := nimisana;
$tietue.äs := ääntiösointu ($tietue);
$tietue.perusmuoto := $tietue.alku + tO($tietue);
return valo ($tietue, tO($tietue), nO($tietue));
end;
subrule pyörtö ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := nimisana;
$tietue.äs := ääntiösointu ($tietue);
$tietue.perusmuoto := $tietue.alku + tO($tietue);
return valo ($tietue, tO($tietue), rO($tietue));
end;
subrule kiiski ($tietue):
return risti ($tietue, "", "") +
taivutuskaava ($tietue,
[omistusliite: "e",
omanto_n: "e",
osanto_A: "e",
olento_nA: "e",
tulento_ksi: "e",
sisäolento_ssA: "e",
sisätulento_Vn: "e",
ulkopaikallissija_llA: "e",
vajanto_ttA: "e",
nimentö_t: "e",
omanto_ien: "",
osanto_ia: "",
olento_inA: "",
sija_monikko_1: "",
sisätulento_iin: "",
ulkopaikallissija_illA: "",
vajanto_ittA: "",
seuranto_ine: "",
johdin_tOn: "e",
johdin_ittain: ""]);
end;
subrule muisto ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := nimisana;
define $loppu := "o";
if ($tietue.alku matches ".*" + @yäö + ".*") then
$loppu := "ö";
end;
$tietue.alku :=+ $loppu;
$tietue.perusmuoto := $tietue.alku;
$tietue.äs := ääntiösointu ($tietue);
return valo ($tietue, "", "");
end;
subrule hohto ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := nimisana;
$tietue.äs := ääntiösointu ($tietue);
$tietue.perusmuoto := $tietue.alku + tO($tietue);
return valo ($tietue, tO($tietue), dO($tietue));
end;
subrule hohdattaa ($tietue, $vahva_aste, $heikko_aste):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.alku :=+ $heikko_aste + A($tietue) + "t";
$tietue.luokka := teonsana;
$tietue.äs := ääntiösointu ($tietue);
$tietue.perusmuoto := $tietue.alku + tAA($tietue);
#define $a := transmit ($tietue);
return muistaa_muistella ($tietue, tA($tietue), A($tietue), "t", "")
+ taivutuskaava ($tietue, [johdin_Us_ksen: ""]);
end;
subrule heitto ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := nimisana;
$tietue.äs := ääntiösointu ($tietue);
$tietue.perusmuoto := $tietue.alku + tO($tietue);
return valo ($tietue, tO($tietue), O($tietue));
end;
subrule haravoitua ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := teonsana;
$tietue.äs := ääntiösointu ($tietue);
$tietue.alku :=+ "i";
$tietue.perusmuoto := $tietue.alku + "t" + UA($tietue);
return punoa ($tietue, tU($tietue), dU($tietue));
end;
subrule merkkejä_ennen_loppuosaa($tietue):
if ($tietue.rakenne = nil) then
return 0;
end;
define $merkkejä := 0;
define $ennen_loppuosaa := 0;
foreach $i in length($tietue.rakenne):
if substring($tietue.rakenne, $i) = "=" then
$ennen_loppuosaa := $merkkejä;
elseif substring($tietue.rakenne, $i) = "-" then
$merkkejä :=+ 1;
$ennen_loppuosaa := $merkkejä;
else
$merkkejä :=+ 1;
end;
end;
return $ennen_loppuosaa;
end;
subrule ääntiösointu ($tietue):
define $l := length($tietue.alku);
define $ennen_loppuosaa := merkkejä_ennen_loppuosaa($tietue);
foreach $i in -($l - $ennen_loppuosaa):
if substring($tietue.alku, $l + $i + 1) matches @yäö then
return ä;
elseif substring($tietue.alku, $l + $i + 1) matches @uao then
return a;
end;
end;
return a;
end;
subrule ääntiösointu_kihistä ($tietue):
define $l := length($tietue.alku);
define $neutraali := a;
foreach $i in -$l:
if substring($tietue.alku, $l + $i + 1) matches @yäö then
return ä;
elseif substring($tietue.alku, $l + $i + 1) matches @uao then
return a;
elseif substring($tietue.alku, $l + $i + 1) = "e" then
$neutraali := ä;
end;
end;
return $neutraali;
end;
subrule salailla ($tietue, $vahva_aste):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := teonsana;
$tietue.alku :=+ $vahva_aste + "il";
$tietue.perusmuoto := $tietue.alku + lA($tietue);
return arvailla ($tietue);
end;
subrule huiskaista ($tietue, $ääntiö):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := teonsana;
$tietue.alku :=+ $ääntiö;
$tietue.perusmuoto := $tietue.alku + "ist" + $ääntiö;
return nuolaista2 ($tietue);
end;
subrule punottaa ($tietue, $heikko_aste):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := teonsana;
$tietue.alku :=+ $heikko_aste + "t";
$tietue.perusmuoto := $tietue.alku + "t" + AA($tietue);
return muistaa_muistella ($tietue, tA($tietue), A($tietue), "t", "")
+ taivutuskaava ($tietue, [johdin_Us_ksen: ""]);
end;
subrule pahentua ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := teonsana;
$tietue.perusmuoto := $tietue.alku + "t" + UA($tietue);
return punoa ($tietue, tU($tietue), nU($tietue));
end;
subrule yhdyssanan_taivutuskaava ($tietue, $yhdyssana):
return taivutuskaava ($tietue, yhdyssana ($yhdyssana));
end;
subrule yhdyssana ($yhdyssana):
return [nimisana: $yhdyssana,
tavuviiva: $yhdyssana];
end;
subrule murto ($tietue):
$tietue :=+ johdoksen_lähtötiedot($tietue);
$tietue.luokka := nimisana;
$tietue.äs := a;
$tietue.perusmuoto := $tietue.alku + tO($tietue);
return valo ($tietue, tO($tietue), rO($tietue));
end;
subrule sivumpana ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
[osanto_A: $vahva_aste,
olento_nA: $vahva_aste,
tulento_ksi: $heikko_aste,
sisäolento_ssA: $heikko_aste,
sisätulento_Vn: $vahva_aste,
ulkopaikallissija_llA: $heikko_aste,
tulento_s: $heikko_aste]);
end;
subrule keväämmällä ($tietue, $vahva_aste, $heikko_aste):
return taivutuskaava ($tietue,
[olento_nA: $vahva_aste,
tulento_ksi: $heikko_aste,
ulkopaikallissija_llA: $heikko_aste]);
end;
subrule voikko_lista_vain_lipulla($lippu, $lista):
if (switch ($lippu) = no) then return <>;
else return $lista;
end;
end;
# Rakentaa listasta sanatietueita tietueen, jonka attribuutteina
# on luokkasymboleita ja arvoina listoja, jotka sisältävät kyseistä
# luokkaa vastaavat sanatietueet alkuperäisestä listasta.
subrule map_by_class($list):
define $map := [];
foreach $l in $list:
if not $l.luokka in $map then
$map :=+ [$l.luokka: <>];
end;
$map.($l.luokka) :=+ <$l>;
end;
return $map;
end;
# Yhdistää tietueet, jotka poikkeavat toisistaan vain äs-kentän osalta.
subrule yhdistä_sama_äs($lista):
if length($lista) = 2 and $lista.1 - äs = $lista.2 - äs then
return <$lista.1 + [äs: aä]>;
end;
return $lista;
end;
# Yhdistää tietueet, jotka poikkeavat toisistaan vain lähtöluokka-kentän osalta.
subrule yhdistä_johdokset($lista):
if length($lista) = 2 and $lista.1 - lähtöluokka = $lista.2 - lähtöluokka then
if $lista.<1,lähtöluokka> = nil then
return <$lista.2>;
elseif $lista.<2,lähtöluokka> = nil then
return <$lista.1>;
end;
end;
return $lista;
end;
# Yhdistää tietueet, jotka poikkeavat toisistaan vain jatko-kentän osalta.
subrule yhdistä_sama_jatko($lista):
if length($lista) = 1 then
# Optimoidaan yleisin tapaus
return $lista;
end;
define $combined := <>;
define $newCombined := <>;
define $didCombine := no;
foreach $current in $lista:
$newCombined := <>;
$didCombine := no;
foreach $previous in $combined:
if $previous - jatko = $current - jatko then
$newCombined :=+ <$previous + [jatko: $previous.jatko + $current.jatko]>;
$didCombine := yes;
else
$newCombined :=+ <$previous>;
end;
end;
if not $didCombine then
$newCombined :=+ <$current>;
end;
$combined := $newCombined;
end;
return $combined;
end;
output_filter output($lista_orig):
# Tuotantoversiossa ei tarvita kaikkia kenttiä
define $lista := $lista_orig;
if (not @voikko_debug) then
$lista := <>;
foreach $l in $lista_orig:
$lista :=+ <$l - perusmuoto - aikamuoto>;
end;
end;
foreach $i in length($lista):
# Kaikkia lippuja ei tarvita
if ($lista.$i.tiedot /= nil) then
$lista.$i.tiedot :=- <ei_sukija, murre, ei_vertm, ei_yks, ei_inen, ei_lAinen, ei_mAinen>;
if (not johdin_inen in $lista.$i.jatko) then
$lista.$i.tiedot :=- <inen>;
end;
if (length($lista.$i.tiedot) = 0) then
$lista.$i :=- tiedot;
end;
end;
# Ylimääräiset merkit pois rakenne-kentästä
if $lista.$i.rakenne /= nil then
repeat while last($lista.$i.rakenne) = "p";
$lista.$i.rakenne := substring($lista.$i.rakenne, 1L, 2R);
end;
if substring($lista.$i.rakenne, 1L) = "=" then
$lista.$i.rakenne := substring($lista.$i.rakenne, 2L, 1R);
end;
end;
# Nimentöä tarvitaan aikaisemmin prosessissa merkkinä siitä, että sanan voi lopettaa ko. kohdassa.
# Tässä vaiheessa sen voi poistaa.
if ($lista.$i.luokka in @nimisana + <laatusana>) then
$lista.$i.jatko :=- <nimentö>;
end;
end;
# Poistetaan täydelliset kaksoiskappaleet
$lista := set($lista);
# Luodaan pintamuotoa vastaavat lopulliset tietueet luokittain
define $lista_luokittain := map_by_class($lista);
foreach $luokka in $lista_luokittain:
define $osalista := $lista_luokittain.($luokka);
$osalista := yhdistä_sama_äs($osalista);
$osalista := yhdistä_sama_jatko($osalista);
$osalista := yhdistä_johdokset($osalista);
foreach $l in $osalista:
result $l + [jatko: set($l.jatko)];
end;
end;
end;