1
0
forked from GitHub/gf-rgl

close to complete BasicFin

This commit is contained in:
aarne
2005-06-28 11:41:24 +00:00
parent 1c458a064c
commit e23b7ae928
3 changed files with 259 additions and 235 deletions

View File

@@ -11,109 +11,109 @@ lin
airplane_N = regN "lentokone" ; airplane_N = regN "lentokone" ;
---- answer_V2S = mkV2S (regV "answer") "to" ; ---- answer_V2S = mkV2S (regV "answer") "to" ;
apartment_N = reg3N "asunto" "asunnon" "asuntoja" ; apartment_N = regN "asunto" ;
apple_N = reg3N "omena" "omenan" "omenoita" ; apple_N = regN "omena" ; --- omenia, not omenoita
art_N = reg3N "taide" "taiteen" "taiteita" ; art_N = regN "taide" ;
---- ask_V2Q = mkV2Q (regV "ask") [] ; ---- ask_V2Q = mkV2Q (regV "ask") [] ;
baby_N = regN "vauva" ; baby_N = regN "vauva" ;
bad_ADeg = mkADeg (regN "paha") "pahempi" "pahin" ; bad_ADeg = mkADeg (regN "paha") "pahempi" "pahin" ;
bank_N = reg3N "pankki" "pankin" "pankkeja" ; bank_N = regN "pankki" ;
beautiful_ADeg = mkADeg (regN "kaunis") "kauniimpi" "kaunein" ; beautiful_ADeg = mkADeg (regN "kaunis") "kauniimpi" "kaunein" ;
---- become_VA = mkVA (irregV "become" "became" "become") ; ---- become_VA = mkVA (irregV "become" "became" "become") ;
beer_N = reg3N "olut" "oluen" "oluita" ; beer_N = regN "olut" ;
---- beg_V2V = mkV2V (regDuplV "beg") [] "to" ; ---- beg_V2V = mkV2V (regDuplV "beg") [] "to" ;
big_ADeg = mkADeg (reg3N "suuri" "suuren" "suuria") "suurempi" "suurin" ; big_ADeg = mkADeg (reg2N "suuri" "suuria") "suurempi" "suurin" ;
bike_N = nLukko "polkupyörä" ; --- for correct vowel harmony bike_N = nLukko "polkupyörä" ; --- for correct vowel harmony
bird_N = reg3N "lintu" "linnun" "lintuja" ; bird_N = regN "lintu" ;
black_ADeg = mkADeg (reg3N "musta" "mustan" "mustia") "mustempi" "mustin" ; black_ADeg = mkADeg (regN "musta") "mustempi" "mustin" ;
blue_ADeg = mkADeg (regN "sininen") "sinisempi" "sinisin" ; blue_ADeg = mkADeg (regN "sininen") "sinisempi" "sinisin" ;
boat_N = regN "vene" ; boat_N = regN "vene" ;
book_N = regN "kirja" ; book_N = regN "kirja" ;
boot_N = reg3N "saapas" "saappaan" "saappaita" ; boot_N = regN "saapas" ;
boss_N = regN "pomo" ; boss_N = regN "pomo" ;
boy_N = reg3N "poika" "pojan" "poikia" ; boy_N = reg3N "poika" "pojan" "poikia" ;
bread_N = reg3N "leipä" "leivän" "leipiä" ; bread_N = regN "leipä" ;
break_V2 = dirV2 (reg3V "rikkoa" "rikon" "rikoin") ; break_V2 = dirV2 (regV "rikkoa") ;
broad_ADeg = mkADeg (regN "leveä") "leveämpi" "levein" ; broad_ADeg = mkADeg (regN "leveä") "leveämpi" "levein" ;
---- brother_N2 = regN2 "brother" ; ---- brother_N2 = regN2 "brother" ;
brown_ADeg = mkADeg (regN "ruskea") "ruskeampi" "ruskein" ; brown_ADeg = mkADeg (regN "ruskea") "ruskeampi" "ruskein" ;
butter_N = reg3N "voi" "voin" "voita" ; --3 butter_N = reg3N "voi" "voin" "voita" ;
buy_V2 = dirV2 (regV "ostaa") ; buy_V2 = dirV2 (regV "ostaa") ;
camera_N = regN "kamera" ; camera_N = regN "kamera" ;
cap_N = reg3N "lakki" "lakin" "lakkeja" ; cap_N = regN "lakki" ;
car_N = regN "auto" ; car_N = reg3N "auto" "auton" "autoja" ; -- regN: audon
carpet_N = reg3N "matto" "maton" "mattoja" ; carpet_N = regN "matto" ;
cat_N = regN "kissa" ; cat_N = regN "kissa" ;
ceiling_N = reg3N "katto" "katon" "kattoja" ; ceiling_N = regN "katto" ;
chair_N = regN "tuoli" ; chair_N = regN "tuoli" ;
cheese_N = regN "juusto" ; cheese_N = regN "juusto" ;
child_N = mkN "lapsi" "lapsen" "lapsena" "lasta" "lapseen" child_N = mkN "lapsi" "lapsen" "lapsena" "lasta" "lapseen"
"lapsina" "lapsissa" "lasten" "lapsia" "lapsiin" human ; "lapsina" "lapsissa" "lasten" "lapsia" "lapsiin" human ;
church_N = reg3N "kirkko" "kirkon" "kirkkoja" ; church_N = regN "kirkko" ;
city_N = reg3N "kaupunki" "kaupungin" "kaupunkeja" ; city_N = regN "kaupunki" ;
clean_ADeg = mkADeg (reg3N "puhdas" "puhtaan" "puhtaita") "puhtaampi" "puhtain" ; clean_ADeg = regADeg "puhdas" ;
clever_ADeg = mkADeg (reg3N "viisas" "viisaan" "viisaita") "viisaampi" "viisain" ; clever_ADeg = regADeg "viisas" ;
close_V2 = dirV2 (reg3V "sulkea" "suljen" "sulki") ; close_V2 = dirV2 (regV "sulkea") ;
coat_N = reg3N "takki" "takin" "takkeja" ; coat_N = regN "takki" ;
cold_ADeg = mkADeg (regN "kylmä") "kylmempi" "kylmin" ; cold_ADeg = mkADeg (regN "kylmä") "kylmempi" "kylmin" ;
come_V = regV "tulla" ; come_V = regV "tulla" ;
computer_N = regN "tietokone" ; computer_N = regN "tietokone" ;
country_N = regN "maa" ; country_N = regN "maa" ;
cousin_N = reg3N "serkku" "serkun" "serkkuja" ; cousin_N = regN "serkku" ;
cow_N = regN "lehmä" ; cow_N = regN "lehmä" ;
die_V = regV "kuolla" ; die_V = regV "kuolla" ;
dirty_ADeg = mkADeg (regN "likainen") "likaisempi" "likaisin" ; dirty_ADeg = mkADeg (regN "likainen") "likaisempi" "likaisin" ;
---- distance_N3 = mkN3 (regN "distance") "from" "to" ; ---- distance_N3 = mkN3 (regN "distance") "from" "to" ;
doctor_N = reg3N "tohtori" "tohtorin" "tohtoreita" ; --3 doctor_N = reg3N "tohtori" "tohtorin" "tohtoreita" ;
dog_N = reg3N "koira" "koiran" "koiria" ; dog_N = reg3N "koira" ;
door_N = reg3N "ovi" "oven" "ovia" ; door_N = reg2N "ovi" "ovia" ;
drink_V2 = dirV2 (regV "juoda") ; drink_V2 = dirV2 (regV "juoda") ;
---- easy_A2V = mkA2V (regA "easy") "for" ; ---- easy_A2V = mkA2V (regA "easy") "for" ;
eat_V2 = dirV2 (regV "syödä") ; eat_V2 = dirV2 (regV "syödä") ;
empty_ADeg = mkADeg (regN "tyhjä") "tyhjempi" "tyhjin" ; empty_ADeg = mkADeg (regN "tyhjä") "tyhjempi" "tyhjin" ;
enemy_N = regN "vihollinen" ; enemy_N = regN "vihollinen" ;
factory_N = reg3N "tehdas" "tehtaan" "tehtaiden" ; factory_N = regN "tehdas" ;
---- father_N2 = regN2 "father" ; ---- father_N2 = regN2 "father" ;
---- fear_VS = mkVS (reg3V "pelätä" "pelkään" "pelkäsi") ; ---- fear_VS = mkVS (reg2V "pelätä" "pelkäsi") ;
find_V2 = dirV2 (reg3V "löytää" "löydän" "löysin") ; find_V2 = dirV2 (reg2V "löytää" "löysi") ;
fish_N = regN "kala" ; fish_N = regN "kala" ;
floor_N = reg3N "lattia" "lattian" "lattioita" ; floor_N = reg2N "lattia" "lattioita" ;
forget_V2 = dirV2 (reg3V "unohtaa" "unohdan" "unohdin") ; forget_V2 = dirV2 (regV "unohtaa") ;
fridge_N = reg3N "jääkaappi" "jääkaapin" "jääkaappeja" ; fridge_N = regN "jääkaappi" ;
friend_N = regN "ystävä" ; friend_N = regN "ystävä" ;
fruit_N = regN "hedelmä" ; fruit_N = regN "hedelmä" ;
---- fun_AV = mkAV (regA "fun") ; ---- fun_AV = mkAV (regA "fun") ;
garden_N = regN "puutarha" ; garden_N = regN "puutarha" ;
girl_N = reg3N "tyttö" "tytön" "tyttöjä" ; girl_N = regN "tyttö" ;
glove_N = reg3N "käsine" "käsineen" "käsineitä" ; glove_N = regN "käsine" ;
gold_N = reg3N "kulta" "kullan" "kultia" ; gold_N = regN "kulta" ;
good_ADeg = mkADeg (regN "hyvä") "parempi" "parhain" ; --- paras good_ADeg = mkADeg (regN "hyvä") "parempi" "parhain" ; --- paras
go_V = regV "mennä" ; go_V = regV "mennä" ;
green_ADeg = mkADeg (regN "vihreä") "vihreämpi" "vihrein" ; green_ADeg = mkADeg (regN "vihreä") "vihreämpi" "vihrein" ;
harbour_N = reg3N "satama" "sataman" "satamia" ; harbour_N = reg3N "satama" "sataman" "satamia" ;
hate_V2 = dirV2 (regV "vihata") ; hate_V2 = dirV2 (regV "vihata") ;
hat_N = reg3N "hattu" "hatun" "hattuja" ; hat_N = regN "hattu" ;
have_V2 = dirV2 (regV "omistaa") ; ---- olla have_V2 = dirV2 (regV "omistaa") ; ---- olla
hear_V2 = dirV2 (regV "kuulla") ; hear_V2 = dirV2 (regV "kuulla") ;
hill_N = regN "kukkula" ; hill_N = regN "kukkula" ;
---- hope_VS = mkVS (regV "toivoa") ; ---- hope_VS = mkVS (regV "toivoa") ;
horse_N = regN "hevonen" ; horse_N = regN "hevonen" ;
hot_ADeg = mkADeg (reg3N "kuuma" "kuuman" "kuumia") "kuumempi" "kuumin" ; hot_ADeg = mkADeg (regN "kuuma") "kuumempi" "kuumin" ;
house_N = regN "talo" ; house_N = regN "talo" ;
important_ADeg = mkADeg (regN "tärkeä") "tärkeämpi" "tärkein" ; important_ADeg = mkADeg (regN "tärkeä") "tärkeämpi" "tärkein" ;
industry_N = regN "teollisuus" ; industry_N = regN "teollisuus" ;
iron_N = reg3N "rauta" "raudan" "rautoja" ; iron_N = regN "rauta" ;
king_N = reg3N "kuningas" "kuninkaan" "kuninkaita" ; king_N = regN "kuningas" ;
know_V2 = dirV2 (reg3V "tietää" "tiedän" "tiesin") ; ---- tuntea know_V2 = dirV2 (reg3V "tietää" "tiesi") ; --- tuntea; gives tietänyt
lake_N = reg3N "järvi" "järven" "järviä" ; lake_N = reg2N "järvi" "järviä" ;
lamp_N = reg3N "lamppu" "lampun" "lamppuja" ; lamp_N = regN "lamppu" ;
learn_V2 = learn_V2 =
dirV2 (mkV "oppia" "oppii" "opin" "oppivat" "oppikaa" "opitaan" dirV2 (mkV "oppia" "oppii" "opin" "oppivat" "oppikaa" "opitaan"
"oppi" "opin" "oppisi" "oppinut" "opittu" "opitun") ; "oppi" "opin" "oppisi" "oppinut" "opittu" "opitun") ;
leather_N = reg3N "nahka" "nahan" "nahkoja" ; leather_N = regN "nahka" ; --- nahan
leave_V2 = dirV2 (reg3V "jättää" "jätän" "jätin") ; leave_V2 = dirV2 (regV "jättää") ;
like_V2 = caseV2 (reg3V "pitää" "pidän" "pidin") elative ; like_V2 = caseV2 (regV "pitää") elative ;
listen_V2 = caseV2 (reg3V "kuunnella" "kuuntelen" "kuuntelin") partitive ; --3 listen_V2 = caseV2 (reg3V "kuunnella" "kuuntelen" "kuuntelin") partitive ;
live_V = regV "elää" ; live_V = regV "elää" ;
long_ADeg = mkADeg (regN "pitkä") "pitempi" "pisin" ; long_ADeg = mkADeg (regN "pitkä") "pitempi" "pisin" ;
lose_V2 = dirV2 (regV "hävitä") ; --- hukata lose_V2 = dirV2 (regV "hävitä") ; --- hukata
@@ -126,116 +126,112 @@ lin
milk_N = regN "maito" ; milk_N = regN "maito" ;
moon_N = regN "kuu" ; moon_N = regN "kuu" ;
---- mother_N2 = regN2 "äiti" ; ---- mother_N2 = regN2 "äiti" ;
mountain_N = reg3N "vuori" "vuoren" "vuoria" ; mountain_N = reg2N "vuori" "vuoria" ;
music_N = regN "musiikki" ; music_N = regN "musiikki" ;
narrow_ADeg = mkADeg (regN "kapea") "kapeampi" "kapein" ; narrow_ADeg = mkADeg (regN "kapea") "kapeampi" "kapein" ;
new_ADeg = mkADeg (reg3N "uusi" "uuden" "uusia") "uudempi" "uusin" ; new_ADeg = mkADeg (reg3N "uusi" "uuden" "uusia") "uudempi" "uusin" ;
newspaper_N = nSylki "sanomalehti" ; --- for correct vowel harmony newspaper_N = nSylki "sanomalehti" ; --- for correct vowel harmony
{- oil_N = regN "öljy" ;
oil_N = regN "oil" ; old_ADeg = mkADeg (regN "vanha") "vanhempi" "vanhin" ;
old_ADeg = regADeg "old" ; open_V2 = dirV2 (regV "avata") ;
open_V2 = dirV2 (regV "open") ; ---- paint_V2A = mkV2A (regV "maalata") [] ;
paint_V2A = mkV2A (regV "paint") [] ; --3 paper_N = reg3N "paperi" "paperin" "papereita" ;
paper_N = regN "paper" ; peace_N = regN "rauha" ;
peace_N = regN "peace" ; pen_N = regN "kynä" ;
pen_N = regN "pen" ; planet_N = regN "planeetta" ;
planet_N = regN "planet" ; plastic_N = regN "muovi" ;
plastic_N = regN "plastic" ; play_V2 = dirV2 (regV "pelata") ; --- leikkiä, soittaa
play_V2 = dirV2 (regV "play") ; policeman_N = regN "poliisi" ;
policeman_N = regN "policeman" ; priest_N = regN "pappi" ;
priest_N = regN "priest" ; ---- probable_AS = mkAS (mkA (nNainen "todennäköistä")) ; --- for vowel harmony
probable_AS = mkAS (regA "probable") ; ---- queen_N = regN "kuningatar" ;
queen_N = regN "queen" ; --3 radio_N = reg3N "radio" "radion" "radioita" ;
radio_N = regN "radio" ; ---- rain_V0 = mkV0 (vHuoltaa "sataa" "sadan" "satoi" "sadoin") ;
rain_V0 = mkV0 (regV "rain") ; read_V2 = dirV2 (regV "lukea") ;
read_V2 = dirV2 (irregV "read" "read" "read") ; red_ADeg = regADeg "punainen" ;
red_ADeg = regADeg "red" ; religion_N = regN "uskonto" ;
religion_N = regN "religion" ; restaurant_N = regN "ravintola" ;
restaurant_N = regN "restaurant" ; ---- river_N = reg3N "joki" "joen" "jokia" ;
river_N = regN "river" ; ---- rock_N = regN "kallio" ;
rock_N = regN "rock" ; roof_N = regN "katto" ;
roof_N = regN "roof" ; rubber_N = regN "kumi" ;
rubber_N = regN "rubber" ; run_V = reg2V "juosta" "juoksi" ;
run_V = (irregDuplV "run" "ran" "run") ; ---- say_VS = mkVS (regV "sanoa") ;
say_VS = mkVS (irregV "say" "said" "said") ; school_N = regN "koulu" ;
school_N = regN "school" ; science_N = regN "tiede" ;
science_N = regN "science" ; sea_N = reg2N "meri" "meriä" ;
sea_N = regN "sea" ; seek_V2 = dirV2 (regV "etsiä") ;
seek_V2 = dirV2 (irregV "seek" "sought" "sought") ; ---- see_V2 = dirV2 (irregV "see" "saw" "seen") ;
see_V2 = dirV2 (irregV "see" "saw" "seen") ; ---- sell_V3 = dirV3 (regV "myydä") allative ;
sell_V3 = dirV3 (irregV "sell" "sold" "sold") "to" ; ---- send_V3 = dirV3 (regV "lähettää") allative ;
send_V3 = dirV3 (irregV "send" "sent" "sent") "to" ; sheep_N = regN "lammas" ;
sheep_N = mk2N "sheep" "sheep" ; ship_N = regN "laiva" ;
ship_N = regN "ship" ; shirt_N = regN "paita" ;
shirt_N = regN "shirt" ; shoe_N = regN "kenkä" ;
shoe_N = regN "shoe" ; shop_N = regN "kauppa" ;
shop_N = regN "shop" ; short_ADeg = regADeg "lyhyt" ;
short_ADeg = regADeg "short" ; silver_N = regN "hopea" ;
silver_N = regN "silver" ;
-}
sister_N = regN "sisko" ; sister_N = regN "sisko" ;
sleep_V = regV "uinua" ; sleep_V = regV "nukkua" ;
{- ---- small_ADeg = regADeg "small" ;
small_ADeg = regADeg "small" ; snake_N = regN "käärme" ;
snake_N = regN "snake" ; sock_N = regN "sukka" ;
sock_N = regN "sock" ; speak_V2 = dirV2 (irregV "puhua") ;
speak_V2 = dirV2 (irregV "speak" "spoke" "spoken") ; star_N = reg2N "tähti" "tähtiä" ;
star_N = regN "star" ; ---- steel_N = regN "teräs" ;
steel_N = regN "steel" ; stone_N = reg2N "kivi" "kiviä" ;
stone_N = regN "stone" ; stove_N = reg3N "liesi" "lieden" "liesiä" ;
stove_N = regN "stove" ; student_N = reg2N "opiskelija" "opiskelijoita" ;
student_N = regN "student" ; stupid_ADeg = regADeg "tyhmä" ;
stupid_ADeg = regADeg "stupid" ; sun_N = regN "aurinko" ;
sun_N = regN "sun" ; switch8off_V2 = dirV2 (regV "sammuttaa") ; ---
switch8off_V2 = dirV2 (partV (regV "switch") "off") ; switch8on_V2 = dirV2 (regV "sytyttää") ; ---
switch8on_V2 = dirV2 (partV (regV "switch") "on") ; table_N = regN "pöytä" ;
table_N = regN "table" ; ---- talk_V3 = mkV3 (regV "puhua") allative elative ;
talk_V3 = mkV3 (regV "talk") "to" "about" ; teacher_N = regN "opettaja" ;
teacher_N = regN "teacher" ; teach_V2 = dirV2 (irregV "opettaa") ;
teach_V2 = dirV2 (irregV "teach" "taught" "taught") ; --3 television_N = reg2N "televisio" "telievisioita" ;
television_N = regN "television" ; thick_ADeg = regADeg "paksu" ;
thick_ADeg = regADeg "thick" ; thin_ADeg = regADeg "ohut" ;
thin_ADeg = regADeg "thin" ; train_N = regN "juna" ;
train_N = regN "train" ; travel_V = regV "matkustaa" ;
travel_V = (regDuplV "travel") ; tree_N = regN "puu" ;
tree_N = regN "tree" ;
---- trousers_N = regN "trousers" ; ---- trousers_N = regN "trousers" ;
ugly_ADeg = regADeg "ugly" ; ugly_ADeg = mkADeg (regN "ruma") "rumempi" "rumin" ;
understand_V2 = dirV2 (irregV "understand" "understood" "understood") ; understand_V2 = dirV2 (reg3V "ymmärtää" "ymmärrän" "ymmärsin") ;
university_N = regN "university" ; university_N = regN "yliopisto" ;
village_N = regN "village" ; village_N = regN "kylä" ;
wait_V2 = mkV2 (regV "wait") "for" ; wait_V2 = mkV2 (regV "odottaa") partitive ;
walk_V = (regV "walk") ; walk_V = (regV "kävellä") ;
warm_ADeg = regADeg "warm" ; ---- warm_ADeg = regADeg "warm" ;
war_N = regN "war" ; war_N = regN "sota" ;
watch_V2 = dirV2 (regV "watch") ; watch_V2 = dirV2 (regV "katsella") ;
water_N = regN "water" ; water_N = reg3N "vesi" "veden" "vesiä" ;
white_ADeg = regADeg "white" ; white_ADeg = regADeg "valkoinen" ;
window_N = regN "window" ; window_N = reg2N "ikkuna" "ikkunoita" ;
wine_N = regN "wine" ; wine_N = regN "viini" ;
win_V2 = dirV2 (irregV "win" "won" "won") ; win_V2 = dirV2 (irregV "voittaa") ;
woman_N = mk2N "woman" "women" ; woman_N = regN "nainen" ;
wonder_VQ = mkVQ (regV "wonder") ; --3 wonder_VQ = mkVQ (regV "ihmetellä") ;
wood_N = regN "wood" ; wood_N = regN "puu" ;
write_V2 = dirV2 (irregV "write" "wrote" "written") ; write_V2 = dirV2 (irregV "kirjoittaa") ;
yellow_ADeg = regADeg "yellow" ; yellow_ADeg = regADeg "keltainen" ;
young_ADeg = regADeg "young" ; young_ADeg = mkADeg (reg2N "nuori" "nuoria") "nuorempi" "nuorin" ;
do_V2 = dirV2 (mkV "do" "does" "did" "done" "doing") ; ---- do_V2 = dirV2 (mkV "do" "does" "did" "done" "doing") ;
now_Adv = mkAdv "now" ; now_Adv = mkAdv "nyt" ;
already_Adv = mkAdv "already" ; already_Adv = mkAdv "jo" ;
song_N = regN "song" ; song_N = regN "laulu" ;
add_V3 = dirV3 (regV "add") "to" ; ---- add_V3 = dirV3 (regV "lisätä") illative ;
number_N = regN "number" ; ---- number_N = regN "numero" ; ---
put_V2 = mkV2 (irregDuplV "put" "put" "put") [] ; put_V2 = dirV2 (regV "panna") ;
stop_V = regDuplV "stop" ; stop_V = regDuplV "pysähtyä" ;
jump_V = regV "jump" ; jump_V = regV "hypätä" ;
here_Adv = mkAdv "here" ; here_Adv = mkAdv "täällä" ;
here7to_Adv = mkAdv "here" ; here7to_Adv = mkAdv "tänne" ;
here7from_Adv = mkAdv ["from here"] ; here7from_Adv = mkAdv "täältä" ;
there_Adv = mkAdv "there" ; there_Adv = mkAdv "siellä" ; --- tuolla
there7to_Adv = mkAdv "there" ; there7to_Adv = mkAdv "sinne" ;
there7from_Adv = mkAdv ["from there"] ; there7from_Adv = mkAdv "sieltä" ;
-}
} ; } ;

View File

@@ -49,8 +49,8 @@ oper
NCase Pl Allat => vesii + "lle" ; NCase Pl Allat => vesii + "lle" ;
NCase Pl Abess => vesii + ("tt" + a) ; NCase Pl Abess => vesii + ("tt" + a) ;
NComit => Predef.tk 2 vesia + "ine" ; NComit => vetii + "ne" ;
NInstruct => Predef.tk 2 vesia + "in" ; NInstruct => vesii + "n" ;
NPossNom => vete ; NPossNom => vete ;
NPossGenPl => Predef.tk 1 vesien ; NPossGenPl => Predef.tk 1 vesien ;
@@ -105,7 +105,7 @@ oper
lukk = init lukko ; lukk = init lukko ;
a = getHarmony o ; a = getHarmony o ;
lukkoja = case o of { lukkoja = case o of {
"a" => lukk + "oja" ; "a" => lukk + if_then_Str (pbool2bool (Predef.occurs "ou" lukk)) "ia" "oja" ;
"ä" => lukk + "iä" ; "ä" => lukk + "iä" ;
_ => lukko + "j" + a _ => lukko + "j" + a
} }
@@ -122,7 +122,7 @@ oper
baar = Predef.tk 1 baari ; baar = Predef.tk 1 baari ;
a = getHarmony (Predef.dp 1 baaria) a = getHarmony (Predef.dp 1 baaria)
in in
sKukko baari (baari + "n") (baar + ("ej" + a)) ; sKukko baari (weakGrade baari + "n") (baar + ("ej" + a)) ;
sKorpi : (_,_,_ : Str) -> CommonNoun = \korpi,korven,korpena -> sKorpi : (_,_,_ : Str) -> CommonNoun = \korpi,korven,korpena ->
let { let {
@@ -471,11 +471,11 @@ getHarmony : Str -> Str = \u -> case u of {
"rt" => ku + "rr" ; "rt" => ku + "rr" ;
"lt" => ku + "ll" ; "lt" => ku + "ll" ;
"lk" => kul + case o of { "lk" => kul + case o of {
"i" => "j" ; "i" | "e" => "j" ;
_ => "" _ => ""
} ; } ;
"rk" => kul + case o of { "rk" => kul + case o of {
"i" => "j" ; "i" | "e" => "j" ;
_ => "" _ => ""
} ; } ;
"hk" | "tk" => kukk ; -- *tahko-tahon, *pitkä-pitkän "hk" | "tk" => kukk ; -- *tahko-tahon, *pitkä-pitkän
@@ -497,20 +497,23 @@ getHarmony : Str -> Str = \u -> case u of {
--- This is only used to analyse nouns "rae", "hake", etc. --- This is only used to analyse nouns "rae", "hake", etc.
strongGrade : Str -> Str = \hak -> strongGrade : Str -> Str = \hake ->
let let
hak = init hake ;
ha = init hak ; ha = init hak ;
k = last hak ; k = last hak ;
e = last hake ;
ly = Predef.tk 2 hak ; ly = Predef.tk 2 hak ;
hd = Predef.dp 2 hak hd = Predef.dp 2 hak ;
in ifE : Str -> Str = \hant -> ifTok Str e "e" hant hak ;
hakk =
case hd of { case hd of {
"ng" => ha + "nk" ; "ng" => ha + "k" ;
"nn" => ha + "nt" ; "nn" => ha + "t" ;
"mm" => ha + "mp" ; "mm" => ha + "p" ;
"rr" => ha + "rt" ; "rr" => ha + "t" ;
"ll" => ha + "lt" ; "ll" => ha + "t" ;
"lj" => ha + "lk" ; "lj" => ifE (ha + "k") ; -- paljas-paljaan
"hk" | "sk" | "sp" | "st" => hak ; "hk" | "sk" | "sp" | "st" => hak ;
_ => -- vihje/pohje: impossible to infer _ => -- vihje/pohje: impossible to infer
case k of { case k of {
@@ -518,11 +521,12 @@ getHarmony : Str -> Str = \u -> case u of {
"p" => hak + "p" ; "p" => hak + "p" ;
"t" => hak + "t" ; "t" => hak + "t" ;
"d" => ha + "t" ; "d" => ha + "t" ;
"v" => ha + "p" ; "v" => ha + "p" ; -- rove/hyve impossible
"a" | "ä" => hak + "k" ; "a" | "ä" => hak + "k" ;
_ => hak _ => hak
} }
} ; }
in hakk + e ;
--3 Proper names --3 Proper names
@@ -833,7 +837,17 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
let { let {
a = Predef.dp 1 hukkua ; a = Predef.dp 1 hukkua ;
hukku = Predef.tk 1 hukkua ; hukku = Predef.tk 1 hukkua ;
u = Predef.dp 1 huku u = Predef.dp 1 huku ;
i = case u of {
"e" | "i" => [] ;
_ => u
} ;
y = case a of {
"a" => "u" ;
_ => "y"
} ;
hukkui = init hukku + i + "i" ;
hukui = init huku + i + "i" ;
} in } in
mkVerb mkVerb
hukkua hukkua
@@ -842,12 +856,12 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
(hukku + "v" + a + "t") (hukku + "v" + a + "t")
(hukku + (("k" + a) + a)) (hukku + (("k" + a) + a))
(huku + ((("t" + a) + a) + "n")) (huku + ((("t" + a) + a) + "n"))
(hukku + "i") (hukkui)
(huku + "in") (hukui + "n")
(hukku + "isi") (hukkui + "si")
(hukku + "n" + u + "t") (hukku + "n" + y + "t")
(huku + "tt" + u) (huku + "tt" + y)
(huku + "t" + u + "t") ; (huku + "t" + y + "t") ;
-- For cases with or without alternation: "sanoa", "valua", "kysyä". -- For cases with or without alternation: "sanoa", "valua", "kysyä".
@@ -891,27 +905,33 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
vOttaa poistaa ((Predef.tk 1 poistaa + "n")) ; vOttaa poistaa ((Predef.tk 1 poistaa + "n")) ;
-- For "osata", "lisätä" -- For "osata", "lisätä"; grade alternation is unpredictable, as seen
-- from "pelätä-pelkäsi" vs. "palata-palasi"
vOsata : Str -> Verb = \osata -> vOsata : Str -> Verb = \osata ->
vPalkata osata (Predef.tk 2 osata + "si") ;
vPalkata : Str -> Str -> Verb = \palkata,palkkasi ->
let let
a = Predef.dp 1 osata ; a = Predef.dp 1 palkata ;
osa = Predef.tk 2 osata ; palka = Predef.tk 2 palkata ;
palkka = Predef.tk 2 palkkasi ;
u = case a of {"a" => "u" ; _ => "y"} u = case a of {"a" => "u" ; _ => "y"}
in in
mkVerb mkVerb
osata palkata
(osa + a) (palkka + a)
(osa + (a + "n")) (palkka + (a + "n"))
(osa + (((a + "v") + a) + "t")) (palkka + (((a + "v") + a) + "t"))
(osa + ((("t" + "k") + a) + a)) (palka + ((("t" + "k") + a) + a))
(osata + (a + "n")) (palkata + (a + "n"))
(osa + "si") (palkka + "si")
(osa + "sin") (palkka + "sin")
(osa + "isi") (palkka + "isi")
(osa + "nn" + u + "t") (palka + "nn" + u + "t")
(osa + "tt" + u) (palka + "tt" + u)
(osa + "t" + u + "n") ; (palka + "t" + u + "n") ;
----- tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun ----- tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun

View File

@@ -296,64 +296,52 @@ regN = \vesi ->
(ves + "isiin") ; (ves + "isiin") ;
"is" => sNauris (vesi + ("t" + a)) ; "is" => sNauris (vesi + ("t" + a)) ;
"ut" | "yt" => sRae vesi (ves + ("en" + a)) ; "ut" | "yt" => sRae vesi (ves + ("en" + a)) ;
"as" | "äs" => sRae vesi (strongGrade ves + (a + "n" + a)) ;
"ar" | "är" => sRae vesi (strongGrade ves + ("ren" + a)) ;
"uus" | "yys" => sRakkaus vesi ; "uus" | "yys" => sRakkaus vesi ;
"us" | "ys" => sTilaus vesi (ves + ("ksen" + a)) ; "us" | "ys" => sTilaus vesi (ves + ("ksen" + a)) ;
_ => case i of { _ => case i of {
"i" => sBaari (vesi + a) ; "i" => sBaari (vesi + a) ;
"e" => sRae vesi (ves + ("een" + a)) ; "e" => sRae vesi (strongGrade (ves + "e") + "en" + a) ;
---- "e" => sRae vesi (strongGrade ves + ("een" + a)) ;
"a" | "o" | "u" | "y" | "ä" | "ö" => sLukko vesi ; "a" | "o" | "u" | "y" | "ä" | "ö" => sLukko vesi ;
_ => sLinux (vesi + "i" + a) _ => sLinux (vesi + "i" + a)
} }
} }
} ** {g = NonHuman ; lock_N = <>} ; } ** {g = NonHuman ; lock_N = <>} ;
reg2N : (savi,savia : Str) -> N = \savi,savia ->
let
savit = regN savi ;
ia = Predef.dp 2 savia ;
i = init ia ;
a = last ia
in
case ia of {
"ia" => sArpi savi ;
"iä" => sSylki savi ;
"ta" | "tä" => sPeruna savi ;
_ => savit
} ** {g = NonHuman ; lock_N = <>} ;
reg3N = \vesi,veden,vesiä -> reg3N = \vesi,veden,vesiä ->
let let
esi = Predef.dp 3 vesi ; -- analysis: suffixes vesit = reg2N vesi vesiä ;
si = Predef.dp 2 esi ; si = Predef.dp 2 vesi ;
i = last si ; i = last si ;
s = init si ; a = last vesiä ;
den = Predef.dp 3 veden ; s = last (Predef.tk 2 vesiä)
d = Predef.tk 2 den ;
esiä = Predef.dp 4 vesiä ;
a = last vesiä ;
ves = init vesi ; -- synthesis: prefixes
ve = init ves ;
ved = Predef.tk 2 veden ;
sRae_vesi = sRae vesi (veden + a) ;
in in
case si of { case si of {
"aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" => sPuu vesi ;
"ie" | "uo" | "yö" => sSuo vesi ;
"is" => sNauris (vesi + ("t" + a)) ;
"ut" | "yt" | "as" | "äs" => sRae_vesi ; ---- (ves + ("en" + a)) ;
"us" | "ys" => "us" | "ys" =>
ifTok CommonNoun d "s" ifTok CommonNoun (Predef.dp 3 veden) "den"
(sTilaus vesi (veden + a)) (sRakkaus vesi)
(sRakkaus vesi) ; (sTilaus vesi (veden + a)) ;
_ => case esi of { "si" => sSusi vesi veden (Predef.tk 2 vesi + ("ten" + a)) ;
"nen" => sNainen (Predef.tk 3 vesi + ("st" + a)) ; _ => case i of {
_ => case esiä of { "a" | "o" | "u" | "y" | "ä" | "ö" => sKukko vesi veden vesiä ;
"oita" | "öitä" => sPeruna vesi ; _ => vesit
_ => case den of { }
"een" => sRae_vesi ; } ** {g = NonHuman ; lock_N = <>} ;
_ => case i of {
"a" | "ä" => sKukko vesi veden vesiä ;
"i" => case (last (init vesiä)) of {
"i" => case s of {
"s" => sSusi vesi veden (ve + ("ten" + a)) ;
_ => sKorpi vesi veden (veden + a)
} ;
_ => sBaari (vesi + a)
} ;
"o" | "u" | "y" | "ö" => sKukko vesi veden vesiä ;
_ => sLinux (vesi + "i" + a)
}
}
}
}
} ** {g = NonHuman ; lock_N = <>} ;
nKukko = \a,b,c -> sKukko a b c ** {g = nonhuman ; lock_N = <>} ; nKukko = \a,b,c -> sKukko a b c ** {g = nonhuman ; lock_N = <>} ;
@@ -422,6 +410,24 @@ regV soutaa =
_ => vHukkua soutaa souda _ => vHukkua soutaa souda
}} ** {lock_V = <>} ; }} ** {lock_V = <>} ;
reg2V : (soutaa,souti : Str) -> V = \soutaa,souti ->
let
soudat = regV soutaa ;
soudan = weakGrade (init soutaa) + "n" ;
soudin = weakGrade souti + "n" ;
souden = init souti + "en" ;
juo = Predef.tk 2 soutaa ;
o = Predef.dp 1 juo ;
u = ifTok Str (last soutaa) "a" "u" "y" ;
taa = Predef.dp 3 soutaa
in
case taa of {
"taa" | "tää" => vHuoltaa soutaa soudan souti soudin ;
"ata" | "ätä" => vPalkata soutaa souti ;
"sta" | "stä" => vJuosta soutaa souden (juo + o+u+"t") (juo + "t"+u) ;
_ => soudat
} ** {lock_V = <>} ;
reg3V soutaa soudan soudin = reg3V soutaa soudan soudin =
let let
taa = Predef.dp 3 soutaa ; taa = Predef.dp 3 soutaa ;
@@ -434,7 +440,7 @@ reg3V soutaa soudan soudin =
u = ifTok Str a "a" "u" "y" ; u = ifTok Str a "a" "u" "y" ;
joi = init soudin joi = init soudin
in case ta of { in case ta of {
"ta" | "tä" => vOttaa soutaa soudan ; "ta" | "tä" => vHuoltaa soutaa soudan (init soudin) soudin ;
"st" => vJuosta soutaa soudan (juo + "s"+u+"t") (juo + "t"+u) ; "st" => vJuosta soutaa soudan (juo + "s"+u+"t") (juo + "t"+u) ;
"nn" | "rr" | "ll" => vJuosta soutaa soudan (juo + o+u+"t") (juo + "t"+u) ; "nn" | "rr" | "ll" => vJuosta soutaa soudan (juo + o+u+"t") (juo + "t"+u) ;
_ => case aa of { _ => case aa of {
@@ -451,6 +457,8 @@ reg3V soutaa soudan soudin =
vOlla = verbOlla ** {lock_V = <>} ; vOlla = verbOlla ** {lock_V = <>} ;
vEi = verbEi ** {lock_V = <>} ; vEi = verbEi ** {lock_V = <>} ;
vHuoltaa : (_,_,_,_ : Str) -> Verb = \ottaa,otan,otti,otin ->
SyntaxFin.vHuoltaa ottaa otan otti otin ** {lock_V = <>} ;
mkV2 = \v,c,p,o -> v ** {s3 = p ; s4 = o ; c = CCase c ; lock_V2 = <>} ; mkV2 = \v,c,p,o -> v ** {s3 = p ; s4 = o ; c = CCase c ; lock_V2 = <>} ;
caseV2 = \v,c -> mkV2 v c [] [] ; caseV2 = \v,c -> mkV2 v c [] [] ;
dirV2 v = mkTransVerbDir v ** {lock_V2 = <>} ; dirV2 v = mkTransVerbDir v ** {lock_V2 = <>} ;