changed regN to be always of type Str -> N

This commit is contained in:
aarne
2006-03-07 10:59:39 +00:00
parent 21202641a1
commit c168b6c489
8 changed files with 363 additions and 322 deletions

View File

@@ -112,90 +112,90 @@ concrete SwadeshFre of Swadesh = CatFre
-- Nouns
animal_N = regN "animal" masculine ;
ashes_N = regN "cendre" masculine ;
back_N = regN "dos" masculine ;
bark_N = regN "écorce" feminine ;
belly_N = regN "ventre" masculine ;
animal_N = regN "animal" ;
ashes_N = regGenN "cendre" masculine ;
back_N = regN "dos" ;
bark_N = regN "écorce" ;
belly_N = regGenN "ventre" masculine ;
bird_N = bird_N;
blood_N = regN "sang" masculine ;
bone_N = regN "os" masculine ;
breast_N = regN "sein" masculine ; --- poitrine
blood_N = regN "sang" ;
bone_N = regN "os" ;
breast_N = regN "sein" ; --- poitrine
child_N = child_N ;
cloud_N = regN "nuage" masculine ;
day_N = regN "jour" masculine ;
cloud_N = regGenN "nuage" masculine ;
day_N = regN "jour" ;
dog_N = dog_N ;
dust_N = regN "poussière" feminine ;
ear_N = regN "oreille" feminine ;
earth_N = regN "terre" feminine ;
egg_N = regN "oeuf" masculine ;
dust_N = regN "poussière" ;
ear_N = regN "oreille" ;
earth_N = regN "terre" ;
egg_N = regN "oeuf" ;
eye_N = mkN "oeil" "yeux" masculine ;
fat_N = regN "graisse" feminine ;
fat_N = regN "graisse" ;
father_N = UseN2 father_N2 ;
feather_N = regN "plume" feminine ;
fingernail_N = regN "ongle" masculine ;
fire_N = regN "feu" masculine ;
feather_N = regN "plume" ;
fingernail_N = regGenN "ongle" masculine ;
fire_N = regN "feu" ;
fish_N = fish_N ;
flower_N = regN "fleur" feminine ;
fog_N = regN "brouillard" masculine ;
foot_N = regN "pied" masculine ;
forest_N = regN "forêt" feminine ;
flower_N = regGenN "fleur" feminine ;
fog_N = regN "brouillard" ;
foot_N = regN "pied" ;
forest_N = regGenN "forêt" feminine ;
fruit_N = fruit_N ;
grass_N = regN "herbe" feminine ;
guts_N = regN "entraille" feminine ;
hair_N = regN "cheveu" masculine ;
hand_N = regN "main" feminine ;
head_N = regN "tête" feminine ;
heart_N = regN "coeur" masculine ;
horn_N = regN "corne" masculine ;
husband_N = regN "mari" masculine ;
ice_N = regN "glace" feminine ;
knee_N = regN "genou" masculine ;
grass_N = regN "herbe" ;
guts_N = regN "entraille" ;
hair_N = regN "cheveu" ;
hand_N = regGenN "main" feminine ;
head_N = regN "tête" ;
heart_N = regN "coeur" ;
horn_N = regGenN "corne" masculine ;
husband_N = regN "mari" ;
ice_N = regN "glace" ;
knee_N = regN "genou" ;
lake_N = lake_N ;
leaf_N = regN "feuille" feminine ;
leg_N = regN "jambe" feminine ;
liver_N = regN "foie" masculine ;
louse_N = regN "pou" masculine ;
leaf_N = regN "feuille" ;
leg_N = regN "jambe" ;
liver_N = regGenN "foie" masculine ;
louse_N = regN "pou" ;
man_N = man_N ;
meat_N = meat_N ;
moon_N = moon_N ;
mother_N = UseN2 mother_N2 ;
mountain_N = mountain_N ;
mouth_N = regN "bouche" feminine ;
name_N = regN "nom" masculine ;
mouth_N = regN "bouche" ;
name_N = regN "nom" ;
neck_N = mkN "cou" "cous" masculine ;
night_N = regN "nuit" feminine ;
nose_N = regN "nez" masculine ;
person_N = regN "personne" feminine ;
rain_N = regN "pluie" feminine ;
night_N = regGenN "nuit" feminine ;
nose_N = regN "nez" ;
person_N = regN "personne" ;
rain_N = regN "pluie" ;
river_N = river_N ;
road_N = regN "route" feminine ;
root_N = regN "racine" feminine ;
rope_N = regN "corde" feminine ;
salt_N = regN "sel" masculine ;
sand_N = regN "sable" masculine ;
road_N = regN "route" ;
root_N = regN "racine" ;
rope_N = regN "corde" ;
salt_N = regN "sel" ;
sand_N = regGenN "sable" masculine ;
sea_N = sea_N ;
seed_N = regN "graine" feminine ;
skin_N = regN "peau" masculine ;
seed_N = regN "graine" ;
skin_N = regN "peau" ;
sky_N = mkN "ciel" "cieux" masculine ;
smoke_N = regN "fumée" feminine ;
smoke_N = regN "fumée" ;
snake_N = snake_N ;
snow_N = regN "neige" feminine ;
snow_N = regN "neige" ;
star_N = star_N ;
stick_N = regN "bâton" masculine ;
stick_N = regN "bâton" ;
stone_N = stone_N ;
sun_N = sun_N ;
tail_N = regN "queue" feminine ;
tongue_N = regN "langue" feminine ;
tooth_N = regN "dent" feminine ;
tail_N = regN "queue" ;
tongue_N = regN "langue" ;
tooth_N = regGenN "dent" feminine ;
tree_N = tree_N ;
water_N = water_N ;
wife_N = regN "femme" feminine ;
wind_N = regN "vent" masculine ;
wing_N = regN "aile" feminine ;
wife_N = regN "femme" ;
wind_N = regN "vent" ;
wing_N = regN "aile" ;
woman_N = woman_N ;
worm_N = regN "ver" masculine ;
year_N = regN "an" masculine ; --- année
worm_N = regN "ver" ;
year_N = regN "an" ; --- année
-- Verbs

View File

@@ -42,6 +42,8 @@ concrete SwadeshNor of Swadesh = CatNor
when_IAdv = when_IAdv ;
how_IAdv = how_IAdv ;
far_Adv = mkAdv "fjern" ;
-- not : Adv ; -- ?
-- Conjunctions

View File

@@ -6,210 +6,210 @@ flags
optimize=values ;
lin
airplane_N = regN "avion" masculine ;
airplane_N = regGenN "avion" masculine ;
answer_V2S = mkV2S (v2V répondre_V2) dative ;
apartment_N = regN "apartement" masculine ;
apple_N = regN "pomme" feminine ;
art_N = regN "art" feminine ;
apartment_N = regGenN "apartement" masculine ;
apple_N = regGenN "pomme" feminine ;
art_N = regGenN "art" feminine ;
ask_V2Q = mkV2Q (regV "demander") dative ;
baby_N = regN "bébé" masculine ;
baby_N = regGenN "bébé" masculine ;
bad_A = prefA (mkADeg (regA "mauvais") (regA "pire")) ;
bank_N = regN "banque" feminine ;
bank_N = regGenN "banque" feminine ;
beautiful_A = prefA (regA "joli") ; ---- beau
become_VA = mkVA devenir_V ;
beer_N = regN "bière" feminine ;
beer_N = regGenN "bière" feminine ;
beg_V2V = mkV2V (regV "demander") accusative dative ;
big_A = prefA (regA "grand") ;
bike_N = regN "vélo" masculine ;
bird_N = regN "oiseau" masculine ;
bike_N = regGenN "vélo" masculine ;
bird_N = regGenN "oiseau" masculine ;
black_A = regA "noir" ;
blue_A = regA "bleu" ;
boat_N = regN "bateau" masculine ;
book_N = regN "livre" masculine ;
boot_N = regN "botte" feminine ;
boss_N = regN "chef" masculine ;
boy_N = regN "garçon" masculine ;
bread_N = regN "pain" masculine ;
boat_N = regGenN "bateau" masculine ;
book_N = regGenN "livre" masculine ;
boot_N = regGenN "botte" feminine ;
boss_N = regGenN "chef" masculine ;
boy_N = regGenN "garçon" masculine ;
bread_N = regGenN "pain" masculine ;
break_V2 = dirV2 (regV "casser") ;
broad_A = regA "large" ;
brother_N2 = deN2 (regN "frère" masculine) ;
brother_N2 = deN2 (regGenN "frère" masculine) ;
brown_A = regA "brun" ;
butter_N = regN "beurre" masculine ;
butter_N = regGenN "beurre" masculine ;
buy_V2 = dirV2 (reg3V "acheter" "achète" "achètera") ;
camera_N = compN (regN "appareil" masculine) ["de photo"] ;
cap_N = regN "casquette" feminine ;
car_N = regN "voiture" feminine ;
carpet_N = regN "tapis" masculine ;
cat_N = regN "chat" masculine ;
ceiling_N = regN "plafond" masculine ;
chair_N = regN "chaise" feminine ;
cheese_N = regN "fromage" masculine ;
child_N = regN "enfant" masculine ;
church_N = regN "église" feminine ;
city_N = regN "ville" feminine ;
camera_N = compN (regGenN "appareil" masculine) ["de photo"] ;
cap_N = regGenN "casquette" feminine ;
car_N = regGenN "voiture" feminine ;
carpet_N = regGenN "tapis" masculine ;
cat_N = regGenN "chat" masculine ;
ceiling_N = regGenN "plafond" masculine ;
chair_N = regGenN "chaise" feminine ;
cheese_N = regGenN "fromage" masculine ;
child_N = regGenN "enfant" masculine ;
church_N = regGenN "église" feminine ;
city_N = regGenN "ville" feminine ;
clean_A = regA "propre" ;
clever_A = regA "sage" ; ----
close_V2 = dirV2 (regV "fermer") ;
coat_N = regN "manteau" masculine ;
coat_N = regGenN "manteau" masculine ;
cold_A = regA "froid" ;
come_V = venir_V ;
computer_N = regN "ordinateur" masculine ;
country_N = regN "pays" masculine ;
cousin_N = regN "cousin" masculine ; ---- cousine
cow_N = regN "vache" feminine ;
computer_N = regGenN "ordinateur" masculine ;
country_N = regGenN "pays" masculine ;
cousin_N = regGenN "cousin" masculine ; ---- cousine
cow_N = regGenN "vache" feminine ;
die_V = mourir_V ;
dirty_A = regA "sale" ;
distance_N3 = mkN3 (regN "distance" feminine) genitive dative ;
doctor_N = regN "médecin" masculine ;
dog_N = regN "chien" masculine ;
door_N = regN "porte" feminine ;
distance_N3 = mkN3 (regGenN "distance" feminine) genitive dative ;
doctor_N = regGenN "médecin" masculine ;
dog_N = regGenN "chien" masculine ;
door_N = regGenN "porte" feminine ;
drink_V2 = boire_V2 ;
easy_A2V = mkA2V (regA "facile") dative genitive ;
eat_V2 = dirV2 (regV "manger") ;
empty_A = regA "vide" ;
enemy_N = regN "ennemi" masculine ;
factory_N = regN "usine" feminine ;
father_N2 = deN2 (regN "père" masculine) ;
enemy_N = regGenN "ennemi" masculine ;
factory_N = regGenN "usine" feminine ;
father_N2 = deN2 (regGenN "père" masculine) ;
fear_VS = mkVS (v2V craindre_V2) ;
find_V2 = dirV2 (regV "trouver") ;
fish_N = regN "poisson" masculine ;
floor_N = regN "plancher" masculine ;
fish_N = regGenN "poisson" masculine ;
floor_N = regGenN "plancher" masculine ;
forget_V2 = dirV2 (regV "oublier") ;
fridge_N = regN "frigo" masculine ;
friend_N = regN "ami" masculine ;
fruit_N = regN "fruit" masculine ;
fridge_N = regGenN "frigo" masculine ;
friend_N = regGenN "ami" masculine ;
fruit_N = regGenN "fruit" masculine ;
fun_AV = mkAV (regA "marrant") genitive ;
garden_N = regN "jardin" masculine ;
girl_N = regN "fille" feminine ;
glove_N = regN "gant" masculine ;
gold_N = regN "or" masculine ;
garden_N = regGenN "jardin" masculine ;
girl_N = regGenN "fille" feminine ;
glove_N = regGenN "gant" masculine ;
gold_N = regGenN "or" masculine ;
good_A = prefA (mkADeg (mkA "bon" "bonne" "bons" "bien")
(mkA "meilleur" "meilleure" "meilleurs" "mieux")) ;
go_V = aller_V ;
green_A = regA "vert" ;
harbour_N = regN "port" masculine ;
harbour_N = regGenN "port" masculine ;
hate_V2 = haïr_V2 ;
hat_N = regN "chapeau" masculine ;
hat_N = regGenN "chapeau" masculine ;
have_V2 = avoir_V2 ;
hear_V2 = entendre_V2 ;
hill_N = regN "colline" feminine ;
hill_N = regGenN "colline" feminine ;
hope_VS = mkVS (reg3V "espérer" "espère" "espérera") ;
horse_N = regN "cheval" masculine ;
horse_N = regGenN "cheval" masculine ;
hot_A = regA "chaud" ;
house_N = regN "maison" feminine ;
house_N = regGenN "maison" feminine ;
important_A = regA "important" ;
industry_N = regN "industrie" feminine ;
iron_N = regN "fer" masculine ;
king_N = regN "roi" masculine ;
industry_N = regGenN "industrie" feminine ;
iron_N = regGenN "fer" masculine ;
king_N = regGenN "roi" masculine ;
know_V2 = connaître_V2 ; ---- savoir_V2 : VS
lake_N = regN "lac" masculine ;
lamp_N = regN "lampe" feminine ;
lake_N = regGenN "lac" masculine ;
lamp_N = regGenN "lampe" feminine ;
learn_V2 = apprendre_V2 ;
leather_N = regN "cuir" masculine ;
leather_N = regGenN "cuir" masculine ;
leave_V2 = dirV2 (regV "quitter") ;
like_V2 = dirV2 (regV "aimer") ;
listen_V2 = dirV2 (regV "écouter") ;
live_V = v2V vivre_V2 ;
long_A = compADeg (mkA "long" "longue" "longs" "longuement") ;
lose_V2 = perdre_V2 ;
love_N = regN "amour" masculine ;
love_N = regGenN "amour" masculine ;
love_V2 = dirV2 (regV "aimer") ;
man_N = regN "homme" masculine ;
man_N = regGenN "homme" masculine ;
married_A2 = mkA2 (regA "marié") dative ;
meat_N = regN "viande" feminine ;
milk_N = regN "lait" masculine ;
moon_N = regN "lune" feminine ;
mother_N2 = deN2 (regN "mère" feminine) ;
mountain_N = regN "montagne" feminine ;
music_N = regN "musique" feminine ;
meat_N = regGenN "viande" feminine ;
milk_N = regGenN "lait" masculine ;
moon_N = regGenN "lune" feminine ;
mother_N2 = deN2 (regGenN "mère" feminine) ;
mountain_N = regGenN "montagne" feminine ;
music_N = regGenN "musique" feminine ;
narrow_A = regA "étroit" ;
new_A = prefA (compADeg (mkA "nouveau" "nouvelle" "nouveaux" "nouvellement")) ;
newspaper_N = regN "journal" masculine ;
oil_N = regN "huile" feminine ;
newspaper_N = regGenN "journal" masculine ;
oil_N = regGenN "huile" feminine ;
old_A =
prefA (compADeg (mkA "vieux" "vieille" "vieux" "vieillement")) ; ---- vieil
open_V2 = ouvrir_V2 ;
paint_V2A = mkV2A (v2V peindre_V2) accusative (mkPreposition "en") ;
paper_N = regN "papier" masculine ;
paper_N = regGenN "papier" masculine ;
paris_PN = mkPN "Paris" masculine ;
peace_N = regN "paix" feminine ;
pen_N = regN "stylo" masculine ;
planet_N = regN "planète" feminine ;
plastic_N = regN "plastic" masculine ;
peace_N = regGenN "paix" feminine ;
pen_N = regGenN "stylo" masculine ;
planet_N = regGenN "planète" feminine ;
plastic_N = regGenN "plastic" masculine ;
play_V2 = dirV2 (regV "jouer") ;
policeman_N = regN "policier" masculine ;
priest_N = regN "prêtre" masculine ;
policeman_N = regGenN "policier" masculine ;
priest_N = regGenN "prêtre" masculine ;
probable_AS = mkAS (regA "probable") ;
queen_N = regN "reine" feminine ;
radio_N = regN "radio" feminine ;
queen_N = regGenN "reine" feminine ;
radio_N = regGenN "radio" feminine ;
rain_V0 = mkV0 (pleuvoir_V) ;
read_V2 = lire_V2 ;
red_A = regA "rouge" ;
religion_N = regN "religion" feminine ;
restaurant_N = regN "restaurant" masculine ;
river_N = regN "rivière" feminine ;
rock_N = regN "rocher" masculine ;
roof_N = regN "toit" masculine ;
rubber_N = regN "caoutchuc" masculine ;
religion_N = regGenN "religion" feminine ;
restaurant_N = regGenN "restaurant" masculine ;
river_N = regGenN "rivière" feminine ;
rock_N = regGenN "rocher" masculine ;
roof_N = regGenN "toit" masculine ;
rubber_N = regGenN "caoutchuc" masculine ;
run_V = v2V courir_V2 ;
say_VS = mkVS (v2V dire_V2) ;
school_N = regN "école" feminine ;
science_N = regN "science" feminine ;
sea_N = regN "mer" feminine ;
school_N = regGenN "école" feminine ;
science_N = regGenN "science" feminine ;
sea_N = regGenN "mer" feminine ;
seek_V2 = dirV2 (regV "chercher") ;
see_V2 = voir_V2 ;
sell_V3 = dirV3 (v2V vendre_V2) dative ;
send_V3 = dirV3 (v2V envoyer_V2) dative ;
sheep_N = regN "mouton" masculine ;
ship_N = regN "bateau" masculine ;
shirt_N = regN "chemise" feminine ;
shoe_N = regN "chaussure" feminine ;
shop_N = regN "magasin" masculine ;
sheep_N = regGenN "mouton" masculine ;
ship_N = regGenN "bateau" masculine ;
shirt_N = regGenN "chemise" feminine ;
shoe_N = regGenN "chaussure" feminine ;
shop_N = regGenN "magasin" masculine ;
short_A = regA "court" ; ---- bref
silver_N = regN "argent" masculine ;
sister_N = regN "soeur" feminine ;
silver_N = regGenN "argent" masculine ;
sister_N = regGenN "soeur" feminine ;
sleep_V = v2V dormir_V2 ;
small_A = prefA (regA "petit") ;
snake_N = regN "serpent" masculine ;
sock_N = regN "chaussette" feminine ;
snake_N = regGenN "serpent" masculine ;
sock_N = regGenN "chaussette" feminine ;
speak_V2 = dirV2 (regV "parler") ;
star_N = regN "étoile" feminine ;
steel_N = regN "acier" masculine ;
stone_N = regN "pierre" feminine ;
stove_N = regN "four" masculine ;
student_N = regN "étudiant" masculine ;
star_N = regGenN "étoile" feminine ;
steel_N = regGenN "acier" masculine ;
stone_N = regGenN "pierre" feminine ;
stove_N = regGenN "four" masculine ;
student_N = regGenN "étudiant" masculine ;
stupid_A = regA "stupide" ;
sun_N = regN "soleil" masculine ;
sun_N = regGenN "soleil" masculine ;
switch8off_V2 = éteindre_V2 ;
switch8on_V2 = dirV2 (regV "allumer") ; ----
table_N = regN "table" feminine ;
table_N = regGenN "table" feminine ;
talk_V3 = mkV3 (regV "parler") dative genitive ;
teacher_N = regN "professeur" masculine ;
teacher_N = regGenN "professeur" masculine ;
teach_V2 = dirV2 (regV "enseigner") ;
television_N = regN "télévision" feminine ;
television_N = regGenN "télévision" feminine ;
thick_A = compADeg (mkA "épais" "épaisse" "épais" "épaissement") ;
thin_A = regA "fin" ;
train_N = regN "train" masculine ;
train_N = regGenN "train" masculine ;
travel_V = regV "voyager" ;
tree_N = regN "arbre" masculine ;
---- trousers_N = regN "pantalon" masculine ;
tree_N = regGenN "arbre" masculine ;
---- trousers_N = regGenN "pantalon" masculine ;
ugly_A = regA "laide" ;
understand_V2 = comprendre_V2 ;
university_N = regN "université" feminine ;
village_N = regN "village" masculine ;
university_N = regGenN "université" feminine ;
village_N = regGenN "village" masculine ;
wait_V2 = attendre_V2 ; ---- dative?
walk_V = regV "marcher" ;
warm_A = regA "chaud" ;
war_N = regN "guerre" masculine ;
war_N = regGenN "guerre" masculine ;
watch_V2 = dirV2 (regV "regarder") ;
water_N = regN "eau" feminine ;
water_N = regGenN "eau" feminine ;
white_A = compADeg (mkA "blanc" "blanche" "blancs" "blanchement") ;
window_N = regN "fenêtre" feminine ;
wine_N = regN "vin" masculine ;
window_N = regGenN "fenêtre" feminine ;
wine_N = regGenN "vin" masculine ;
win_V2 = dirV2 (regV "gagner") ; ---- vaincre
woman_N = regN "femme" feminine ;
woman_N = regGenN "femme" feminine ;
wonder_VQ = mkVQ (reflV (regV "étonner")) ;
wood_N = regN "bois" masculine ;
wood_N = regGenN "bois" masculine ;
write_V2 = écrire_V2 ;
yellow_A = regA "jaune" ;
young_A = prefA (regA "jeune") ;
@@ -217,9 +217,9 @@ lin
do_V2 = faire_V2 ;
now_Adv = mkAdv "maintenant" ;
already_Adv = mkAdv "déjà" ;
song_N = regN "chanson" feminine ;
song_N = regGenN "chanson" feminine ;
add_V3 = dirV3 (regV "ajouter") dative ;
number_N = regN "nombre" masculine ; ---- numéro
number_N = regGenN "nombre" masculine ; ---- numéro
put_V2 = mettre_V2 ;
stop_V = reflV (regV "arrêter") ;
jump_V = regV "sauter" ;

View File

@@ -72,13 +72,20 @@ oper
mkN : (oeil,yeux : Str) -> Gender -> N ;
-- The regular function takes the singular form and the gender,
-- and computes the plural by a heuristic. The heuristic currently
-- The regular function takes the singular form,
-- and computes the plural and the gender by a heuristic. The plural
-- heuristic currently
-- covers the cases "pas-pas", "prix-prix", "nez-nez",
-- "bijou-bijoux", "cheveu-cheveux", "plateau-plateaux", "cheval-chevaux".
-- The gender heuristic is less reliable: it treats as feminine all
-- nouns ending with "e" and "ion", all others as masculine.
-- If in doubt, use the $cc$ command to test!
regN : Str -> Gender -> N ;
regN : Str -> N ;
-- Adding gender information widens the scope of the foregoing function.
regGenN : Str -> Gender -> N ;
--3 Compound nouns
@@ -287,7 +294,13 @@ oper
mkPreposition p = {s = p ; c = Acc ; isDir = False} ;
mkN x y g = mkCNomIrreg x y g ** {lock_N = <>} ;
regN x g = mkNomReg x g ** {lock_N = <>} ;
regN x = regGenN x g where {
g = case <x : Str> of {
_ + ("e" | "ion") => Fem ;
_ => Masc
}
} ;
regGenN x g = mkNomReg x g ** {lock_N = <>} ;
compN x y = {s = \\n => x.s ! n ++ y ; g = x.g ; lock_N = <>} ;
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ;

View File

@@ -17,40 +17,40 @@ lin
bank_N = mk2N "bank" "banken" ;
beautiful_A = mk3ADeg "vakker" "vakkert" "vakra" ;
become_VA = mkVA bli_V ;
beer_N = regN "øl" neutrum ;
beer_N = regGenN "øl" neutrum ;
beg_V2V = mkV2V be_V [] "att" ;
big_A = irregADeg "stor" "større" "størst";
bike_N = mkN "sykkel" "sykkelen" "sykler" "syklene" ;
bird_N = mk2N "fugl" "fuglen" ;
black_A = mk2ADeg "svart" "svart" ;
blue_A = mk2ADeg "blå" "blått";
boat_N = regN "båt" masculine ;
boat_N = regGenN "båt" masculine ;
book_N = mkN "bok" "boka" "bøker" "bøkene" ;
boot_N = mkN "støvel" "støvelen" "støvler" "støvlene" ;
boss_N = mk2N "sjef" "sjefen" ;
boy_N = regN "gutt" masculine ;
bread_N = regN "brød" neutrum ;
boy_N = regGenN "gutt" masculine ;
bread_N = regGenN "brød" neutrum ;
break_V2 = dirV2 (mk2V "knuse" "knuste") ;
broad_A = regADeg "bred" ;
brother_N2 = mkN2 ( (mkN "bror" "broren" "brødre" "brødrene")) "til" ;
brown_A = regADeg "brun" ;
butter_N = regN "smør" neutrum ;
butter_N = regGenN "smør" neutrum ;
buy_V2 = dirV2 (mk2V "kjøpe" "kjøpte") ;
camera_N = mk2N "kamera" "kameraen" ; ----
cap_N = mk2N "lue" "lua" ;
car_N = regN "bil" masculine ;
carpet_N = regN "matte" feminine ;
car_N = regGenN "bil" masculine ;
carpet_N = regGenN "matte" feminine ;
cat_N = mk2N "katt" "katten" ;
ceiling_N = regN "tak" neutrum ;
chair_N = regN "stol" masculine ;
cheese_N = regN "ost" masculine ;
child_N = regN "barn" neutrum ;
church_N = regN "kirke" feminine ;
ceiling_N = regGenN "tak" neutrum ;
chair_N = regGenN "stol" masculine ;
cheese_N = regGenN "ost" masculine ;
child_N = regGenN "barn" neutrum ;
church_N = regGenN "kirke" feminine ;
city_N = mk2N "by" "byen" ;
clean_A = regADeg "rein" ;
clever_A = regADeg "klok" ;
close_V2 = dirV2 (mk2V "lukke" "lukket") ;
coat_N = regN "frakk" masculine ;
coat_N = regGenN "frakk" masculine ;
cold_A = regADeg "kald" ;
come_V = komme_V ;
computer_N = mk2N "datamaskin" "datamaskinen" ;
@@ -59,99 +59,99 @@ lin
cow_N = mkN "ku" "kua" "kyr" "kyrne" ; ----
die_V = dø_V ;
dirty_A = mk3ADeg "skitten" "skittent" "skitne" ; ----
distance_N3 = mkN3 (regN "avstand" masculine) "fra" "til" ;
distance_N3 = mkN3 (regGenN "avstand" masculine) "fra" "til" ;
doctor_N = mk2N "lege" "legen" ;
dog_N = regN "hund" masculine ;
door_N = regN "dør" feminine ;
dog_N = regGenN "hund" masculine ;
door_N = regGenN "dør" feminine ;
drink_V2 = dirV2 drikke_V ;
easy_A2V = mkA2V (regA "grei") "før" ;
eat_V2 = dirV2 (mk2V "spise" "spiste") ;
empty_A = mkADeg "tom" "tomt" "tomme" "tommere" "tommest" ;
enemy_N = regN "fiende" masculine ;
enemy_N = regGenN "fiende" masculine ;
factory_N = mk2N "fabrikk" "fabrikken" ;
father_N2 = mkN2 ( (mkN "far" "faren" "fedre" "fedrene")) "til" ;
fear_VS = mkVS (regV "frykte") ;
find_V2 = dirV2 (irregV "finne" "fann" "funnet") ;
fish_N = mk2N "fisk" "fisken" ;
floor_N = regN "golv" neutrum ;
floor_N = regGenN "golv" neutrum ;
forget_V2 = dirV2 (mkV "glemme" "glemmer" "glemmes" "glemte" "glemt" "glem") ;
fridge_N = regN "kjøleskap" neutrum ;
fridge_N = regGenN "kjøleskap" neutrum ;
friend_N = mkN "venn" "vennen" "venner" "vennene" ;
fruit_N = mk2N "frukt" "frukten" ;
fun_AV = mkAV (mkA "morsom" "morsomt" "morsomme") ;
garden_N = regN "hage" masculine ;
girl_N = regN "jente" feminine ;
glove_N = regN "hanske" masculine ;
gold_N = regN "gull" neutrum ;
garden_N = regGenN "hage" masculine ;
girl_N = regGenN "jente" feminine ;
glove_N = regGenN "hanske" masculine ;
gold_N = regGenN "gull" neutrum ;
good_A = mkADeg "god" "godt" "gode" "bedre" "best" ;
go_V = gå_V ;
green_A = mk2ADeg "grønn" "grønt" ;
harbour_N = regN "havn" feminine;
harbour_N = regGenN "havn" feminine;
hate_V2 = dirV2 (regV "hate") ;
hat_N = regN "hatt" masculine ;
hat_N = regGenN "hatt" masculine ;
have_V2 = dirV2 ha_V ;
hear_V2 = dirV2 (mk2V "høre" "hørte") ;
hill_N = regN "haug" masculine ;
hill_N = regGenN "haug" masculine ;
hope_VS = mkVS (regV "håpe") ;
horse_N = regN "hest" masculine ;
horse_N = regGenN "hest" masculine ;
hot_A = regADeg "heit" ;
house_N = regN "hus" neutrum ;
house_N = regGenN "hus" neutrum ;
important_A = regADeg "viktig" ;
industry_N = mk2N "industri" "industrien" ;
iron_N = regN "jern" neutrum ;
king_N = regN "konge" masculine ;
iron_N = regGenN "jern" neutrum ;
king_N = regGenN "konge" masculine ;
know_V2 = dirV2 vite_V ;
lake_N = regN "vann" neutrum ;
lamp_N = regN "lampe" feminine ;
lake_N = regGenN "vann" neutrum ;
lamp_N = regGenN "lampe" feminine ;
learn_V2 = dirV2 (mk2V "lære" "lærte") ;
leather_N = regN "lær" neutrum ;
leather_N = regGenN "lær" neutrum ;
leave_V2 = dirV2 forlate_V ;
like_V2 = dirV2 (mk2V "like" "likte") ;
listen_V2 = dirV2 (regV "lytte") ;
live_V = mk2V "leve" "levde" ;
long_A = irregADeg "lang" "lengre" "lengst" ;
lose_V2 = dirV2 (mk2V "tape" "tapte") ;
love_N = regN "kjærlighet" masculine ;
love_N = regGenN "kjærlighet" masculine ;
love_V2 = dirV2 (regV "elske") ;
man_N = (mkN "mann" "mannen" "menn" "mennen") ;
married_A2 = mkA2 (mk2A "gift" "gift") "med" ;
meat_N = regN "kjøtt" neutrum ;
milk_N = regN "melk" masculine ;
moon_N = regN "måne" masculine ;
meat_N = regGenN "kjøtt" neutrum ;
milk_N = regGenN "melk" masculine ;
moon_N = regGenN "måne" masculine ;
mother_N2 = mkN2 (mkN "mor" "moren" "mødre" "mødrene") "til" ; ---- fem
mountain_N = regN "berg" neutrum ;
mountain_N = regGenN "berg" neutrum ;
music_N = mk2N "musikk" "musikken" ;
narrow_A = regADeg "smal" ;
new_A = mkADeg "ny" "nytt" "nye" "nyere" "nyest" ;
newspaper_N = regN "avis" feminine ;
oil_N = regN "olje" masculine ;
newspaper_N = regGenN "avis" feminine ;
oil_N = regGenN "olje" masculine ;
old_A = mkADeg "gammel" "gammelt" "gamle" "eldre" "eldst" ;
open_V2 = dirV2 (regV "åpne") ;
paint_V2A = mkV2A (regV "male") [] ;
paper_N = regN "papir" neutrum ; ----
paper_N = regGenN "papir" neutrum ; ----
paris_PN = regPN "Paris" neutrum ;
peace_N = regN "fred" masculine ;
pen_N = regN "penn" masculine ;
peace_N = regGenN "fred" masculine ;
pen_N = regGenN "penn" masculine ;
planet_N = mk2N "planet" "planeten" ;
plastic_N = mk2N "plast" "plasten" ;
play_V2 = dirV2 (mk2V "spille" "spilte") ;
policeman_N = mk2N "politi" "politien" ;
priest_N = mk2N "prest" "presten" ;
probable_AS = mkAS (regA "sannsynlig") ;
queen_N = regN "dronning" feminine ;
radio_N = regN "radio" masculine ;
queen_N = regGenN "dronning" feminine ;
radio_N = regGenN "radio" masculine ;
rain_V0 = mkV0 (regV "regne") ;
read_V2 = dirV2 (mk2V "lese" "leste") ;
red_A = regADeg "rød" ;
religion_N = mk2N "religion" "religionen" ;
restaurant_N = mk2N "restaurant" "restauranten" ;
river_N = mk2N "elv" "elva" ;
rock_N = regN "stein" masculine ;
roof_N = regN "tak" neutrum ;
rock_N = regGenN "stein" masculine ;
roof_N = regGenN "tak" neutrum ;
rubber_N = mk2N "gummi" "gummien" ;
run_V = springe_V ;
say_VS = mkVS si_V ;
school_N = regN "skole" feminine;
school_N = regGenN "skole" feminine;
science_N = mk2N "vitenskap" "vitenskapen" ;
sea_N = mk2N "sjø" "sjøen" ;
seek_V2 = mkV2 (mk2V "lete" "lette") "etter" ;
@@ -159,53 +159,53 @@ lin
sell_V3 = dirV3 selge_V "til" ;
send_V3 = dirV3 (mk2V "sende" "sendte") "til" ;
sheep_N = mk2N "får" "fåret" ;
ship_N = regN "skip" neutrum ;
shirt_N = regN "skjorte" feminine ;
shoe_N = regN "sko" masculine ;
ship_N = regGenN "skip" neutrum ;
shirt_N = regGenN "skjorte" feminine ;
shoe_N = regGenN "sko" masculine ;
shop_N = mk2N "butikk" "butikken" ;
short_A = regADeg "kort" ;
silver_N = mk2N "sølv" "sølvet";
sister_N = mkN "søster" "søsteren" "søstrer" "søstrene" ;
sleep_V = irregV "sove" "sov" "sovet" ;
small_A = mkADeg "liten" "lite" "små" "mindre" "minst" ; ---- lille
snake_N = regN "orm" masculine ;
sock_N = regN "strømpe" masculine ;
snake_N = regGenN "orm" masculine ;
sock_N = regGenN "strømpe" masculine ;
speak_V2 = dirV2 (regV "snakke") ;
star_N = regN "stjerne" feminine ;
steel_N = regN "stål" neutrum ;
stone_N = regN "stein" masculine ;
stove_N = regN "komfyr" masculine ;
star_N = regGenN "stjerne" feminine ;
steel_N = regGenN "stål" neutrum ;
stone_N = regGenN "stein" masculine ;
stove_N = regGenN "komfyr" masculine ;
student_N = mk2N "student" "studenten" ;
stupid_A = mk3ADeg "dum" "dumt" "dumme" ;
sun_N = regN "sol" feminine ;
sun_N = regGenN "sol" feminine ;
switch8off_V2 = dirV2 (partV (irregV "slå" "slo" "slått") "av") ;
switch8on_V2 = dirV2 (partV (irregV "slå" "slo" "slått") "på") ;
table_N = regN "bord" neutrum ;
table_N = regGenN "bord" neutrum ;
talk_V3 = mkV3 (regV "snakke") "til" "om" ;
teacher_N = mkN "lærer" "læreren" "lærere" "lærerne" ;
teach_V2 = dirV2 (mk2V "undervise" "underviste") ;
television_N = mk2N "fjernsyn" "fjernsynet" ;
thick_A = mk2ADeg "tykk" "tykt" ;
thin_A = mk2ADeg "tynn" "tynt" ;
train_N = regN "tog" neutrum ;
train_N = regGenN "tog" neutrum ;
travel_V = mk2V "reise" "reiste" ;
tree_N = mkN "tre" "treet" "trær" "træne" ;
---- trousers_N = regN "trousers" ; ---- pl t !
---- trousers_N = regGenN "trousers" ; ---- pl t !
ugly_A = mk2ADeg "stygg" "stygt" ;
understand_V2 = dirV2 (irregV "forstå" "forstod" "forstått") ;
university_N = regN "universitet" neutrum ;
university_N = regGenN "universitet" neutrum ;
village_N = mk2N "grend" "grenda" ;
wait_V2 = mkV2 (regV "vente") "på" ;
walk_V = (irregV "gå" "gikk" "gått") ;
warm_A = regADeg "varm" ;
war_N = regN "krig" masculine ;
war_N = regGenN "krig" masculine ;
watch_V2 = mkV2 se_V "på" ;
water_N = mk2N "vatn" "vatnet" ;
white_A = regADeg "hvit" ;
window_N = mkN "vindu" "vinduet" "vinduer" "vinduene" ; ---- er?
wine_N = mk2N "vin" "vinen" ;
win_V2 = dirV2 (irregV "vinne" "vant" "vunnet") ;
woman_N = regN "kvinne" feminine ; ---- kvinnen
woman_N = regGenN "kvinne" feminine ; ---- kvinnen
wonder_VQ = mkVQ (regV "undre") ; ---- seg
wood_N = mkN "tre" "treet" "trær" "træne" ;
write_V2 = dirV2 (irregV "skrive" "skrev" "skrevet") ;

View File

@@ -69,11 +69,17 @@ oper
mkN : (dreng,drengen,drenger,drengene : Str) -> N ;
-- The regular function takes the singular indefinite form and the gender,
-- and computes the other forms by a heuristic.
-- The regular function takes the singular indefinite form
-- and computes the other forms and the gender by a heuristic.
-- The heuristic is that nouns ending "e" are feminine like "kvinne",
-- all others are masculine like "bil".
-- If in doubt, use the $cc$ command to test!
regN : Str -> Gender -> N ;
regN : Str -> N ;
-- Giving gender manually makes the heuristic more reliable.
regGenN : Str -> Gender -> N ;
-- This function takes the singular indefinite and definite forms; the
-- gender is computed from the definite form.
@@ -291,7 +297,14 @@ oper
mkN x y z u = mkSubstantive x y z u ** {g = extNGen y ; lock_N = <>} ;
regN x g = case last x of {
regN x = regGenN x g where {
g = case <x : Str> of {
_ + "e" => Utr Fem ;
_ => Utr Masc
}
} ;
regGenN x g = case last x of {
"e" => case g of {
Utr Masc => mkN x (x + "n") (x + "r") (x + "ne") ;
Utr Fem => mkN x (init x + "a") (x + "r") (x + "ne") ;
@@ -305,14 +318,14 @@ oper
} ;
mk2N x y = case last y of {
"n" => regN x masculine ;
"a" => regN x feminine ;
_ => regN x neutrum
"n" => regGenN x masculine ;
"a" => regGenN x feminine ;
_ => regGenN x neutrum
} ;
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ;
regN2 n g = mkN2 (regN n g) (mkPreposition "av") ;
regN2 n g = mkN2 (regGenN n g) (mkPreposition "av") ;
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
regPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;

View File

@@ -6,51 +6,51 @@ flags
optimize=values ;
lin
airplane_N = regN "flygplan" neutrum ;
airplane_N = regGenN "flygplan" neutrum ;
answer_V2S = mkV2S (regV "svarar") "till" ;
apartment_N = mk2N "lägenhet" "lägenheter" ;
apple_N = regN "äpple" neutrum ;
apple_N = regGenN "äpple" neutrum ;
art_N = mk2N "konst" "konster" ;
ask_V2Q = mkV2Q (regV "frågar") [] ;
baby_N = regN "bebis" utrum ;
baby_N = regGenN "bebis" utrum ;
bad_A = irregA "dålig" "sämre" "sämst";
bank_N = mk2N "bank" "banker" ;
beautiful_A = mk3A "vacker" "vackert" "vackrast" ;
become_VA = mkVA (mkV "bli" "blir""bli" "blev" "blivit" "bliven") ;
beer_N = regN "öl" neutrum ;
beer_N = regGenN "öl" neutrum ;
beg_V2V = mkV2V (mkV "be" "ber""be" "blad" "bett" "bedd") [] "att" ;
big_A = irregA "stor" "större" "störst";
bike_N = mk2N "cykel" "cyklar" ;
bird_N = mk2N "fågel" "fåglar" ;
black_A = mk2A "svart" "svart" ;
blue_A = mk2A "blå" "blått";
boat_N = regN "båt" utrum ;
boat_N = regGenN "båt" utrum ;
book_N = mkN "bok" "boken" "böcker" "böckerna" ;
boot_N = mk2N "stövel" "stövlar" ;
boss_N = mk2N "chef" "chefer" ;
boy_N = regN "pojke" utrum ;
bread_N = regN "bröd" neutrum ;
boy_N = regGenN "pojke" utrum ;
bread_N = regGenN "bröd" neutrum ;
break_V2 = dirV2 (partV (mkV "slå" "slår" "slå" "slog" "slagit" "slagen") "sönder") ;
broad_A = mk2A "bred" "brett" ;
brother_N2 = mkN2 ((mkN "bror" "brodern" "bröder" "bröderna")) "till" ;
brown_A = regA "brun" ;
butter_N = regN "smör" neutrum ;
butter_N = regGenN "smör" neutrum ;
buy_V2 = dirV2 (mk2V "köpa" "köpte") ;
camera_N = regN "kamera" utrum ;
cap_N = regN "mössa" utrum ;
car_N = regN "bil" utrum ;
carpet_N = regN "matta" utrum ;
camera_N = regGenN "kamera" utrum ;
cap_N = regGenN "mössa" utrum ;
car_N = regGenN "bil" utrum ;
carpet_N = regGenN "matta" utrum ;
cat_N = mk2N "katt" "katter" ;
ceiling_N = regN "tak" neutrum ;
chair_N = regN "stol" utrum ;
cheese_N = regN "ost" utrum ;
child_N = regN "barn" neutrum ;
church_N = regN "kyrka" utrum ;
ceiling_N = regGenN "tak" neutrum ;
chair_N = regGenN "stol" utrum ;
cheese_N = regGenN "ost" utrum ;
child_N = regGenN "barn" neutrum ;
church_N = regGenN "kyrka" utrum ;
city_N = mkN "stad" "staden" "städer" "städerna" ;
clean_A = regA "ren" ;
clever_A = regA "klok" ;
close_V2 = dirV2 (mk2V "stänga" "stängde") ;
coat_N = regN "rock" utrum ;
coat_N = regGenN "rock" utrum ;
cold_A = regA "kall" ;
come_V = komma_V ;
computer_N = mk2N "dator" "datorer" ;
@@ -61,49 +61,49 @@ lin
distance_N3 = mkN3 (mk2N "avstånd" "avstånd") "från" "till" ;
dirty_A = regA "smutsig" ;
doctor_N = mk2N "läkare" "läkare" ;
dog_N = regN "hund" utrum ;
door_N = regN "dörr" utrum ;
dog_N = regGenN "hund" utrum ;
door_N = regGenN "dörr" utrum ;
drink_V2 = dirV2 (irregV "dricka" "drack" "druckit") ;
easy_A2V = mkA2V (mk2A "lätt" "lätt") "för" ;
eat_V2 = dirV2 (irregV "äta" "åt" "ätit") ;
empty_A = mkA "tom" "tomt" "tomma" "tomma" "tommare" "tommast" "tommaste" ;
enemy_N = regN "fiende" neutrum ;
enemy_N = regGenN "fiende" neutrum ;
factory_N = mk2N "fabrik" "fabriker" ;
father_N2 = mkN2 ((mkN "far" "fadern" "fäder" "fäderna")) "till" ;
fear_VS = mkVS (regV "fruktar") ;
find_V2 = dirV2 (irregV "finna" "fann" "funnit") ;
fish_N = mk2N "fisk" "fiskar" ;
floor_N = regN "golv" neutrum ;
floor_N = regGenN "golv" neutrum ;
forget_V2 = dirV2 (mkV "glömma" "glömmer" "glöm" "glömde" "glömt" "glömd") ;
fridge_N = regN "kylskåp" neutrum ;
fridge_N = regGenN "kylskåp" neutrum ;
friend_N = mkN "vän" "vännen" "vänner" "vännerna" ;
fruit_N = mk2N "frukt" "frukter" ;
fun_AV = mkAV (regA "rolig") ;
garden_N = regN "trädgård" utrum ;
girl_N = regN "flicka" utrum ;
glove_N = regN "handske" utrum ;
gold_N = regN "guld" neutrum ;
garden_N = regGenN "trädgård" utrum ;
girl_N = regGenN "flicka" utrum ;
glove_N = regGenN "handske" utrum ;
gold_N = regGenN "guld" neutrum ;
good_A = mkA "god" "gott" "goda" "goda" "bättre" "bäst" "bästa" ;
go_V = (mkV "gå" "går" "gå" "gick" "gått" "gången") ;
green_A = regA "grön" ;
harbour_N = regN "hamn" utrum;
harbour_N = regGenN "hamn" utrum;
hate_V2 = dirV2 (regV "hatar") ;
hat_N = regN "hatt" utrum ;
hat_N = regGenN "hatt" utrum ;
have_V2 = dirV2 (mkV "ha" "har" "ha" "hade" "haft" "haft") ; ---- pp
hear_V2 = dirV2 (mkV "höra" "hör" "hör" "hörde" "hört" "hörd") ;
hill_N = regN "kulle" utrum ;
hill_N = regGenN "kulle" utrum ;
-- hope_VS = mkVS ((regV "önskar")) ;
hope_VS = mkVS (depV (regV "hoppar")) ;
horse_N = regN "häst" utrum ;
horse_N = regGenN "häst" utrum ;
hot_A = regA "het" ;
house_N = regN "hus" neutrum ;
house_N = regGenN "hus" neutrum ;
important_A = regA "viktig" ;
industry_N = mk2N "industri" "industrier" ; ---- "ien" ??
iron_N = regN "järn" neutrum ;
king_N = (regN "kung" utrum) ;
iron_N = regGenN "järn" neutrum ;
king_N = (regGenN "kung" utrum) ;
know_V2 = dirV2 (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ;
lake_N = mkN "sjö" "sjön" "sjöar" "sjöarna" ;
lamp_N = regN "lampa" utrum;
lamp_N = regGenN "lampa" utrum;
learn_V2 = dirV2 (reflV (mkV "lära" "lär" "lär" "lärde" "lärt" "lärd")) ;
leather_N = mkN "läder" "lädret" "läder" "lädren" ;
leave_V2 = dirV2 (regV "lämnar") ;
@@ -112,34 +112,34 @@ lin
live_V = (irregV "leva" "levde" "levt") ; ---- ?
long_A = irregA "lång" "längre" "längst" ;
lose_V2 = dirV2 (regV "förlora") ;
love_N = regN "kärlek" utrum ;
love_N = regGenN "kärlek" utrum ;
love_V2 = dirV2 (regV "älska") ;
man_N = (mkN "man" "mannen" "män" "männen") ;
married_A2 = mkA2 (mk2A "gift" "gift") "med" ;
meat_N = regN "kött" neutrum ;
milk_N = regN "mjölk" utrum ; ---- -ar?
moon_N = regN "måne" utrum ;
meat_N = regGenN "kött" neutrum ;
milk_N = regGenN "mjölk" utrum ; ---- -ar?
moon_N = regGenN "måne" utrum ;
mother_N2 = mkN2 (mkN "mor" "modern" "mödrar" "mödrarna") "till" ;
mountain_N = regN "berg" neutrum ;
mountain_N = regGenN "berg" neutrum ;
music_N = mk2N "musik" "musiker" ; ---- er ?
narrow_A = regA "smal" ;
new_A = mkA "ny" "nytt" "nya" "nya" "nyare" "nyast" "nyaste" ;
newspaper_N = regN "tidning" utrum ;
oil_N = regN "olja" utrum ;
newspaper_N = regGenN "tidning" utrum ;
oil_N = regGenN "olja" utrum ;
old_A = mkA "gammal" "gammalt" "gamla" "gamla" "äldre" "äldst" "äldsta" ;
open_V2 = dirV2 (regV "öppna") ;
paint_V2A = mkV2A (regV "måla") [] ;
paper_N = mkN "papper" "pappret" "papper" "pappren" ;
paris_PN = regPN "Paris" neutrum ;
peace_N = regN "fred" utrum ; ---- ar?
pen_N = regN "penna" utrum ;
peace_N = regGenN "fred" utrum ; ---- ar?
pen_N = regGenN "penna" utrum ;
planet_N = mk2N "planet" "planeter" ;
plastic_N = mk2N "plast" "plaster" ;
play_V2 = dirV2 (regV "spela") ;
policeman_N = mk2N "polis" "poliser" ;
priest_N = mk2N "präst" "präster" ;
probable_AS = mkAS (regA "sannolik") ;
queen_N = regN "drottning" utrum ;
queen_N = regGenN "drottning" utrum ;
radio_N = mkN "radio" "radion" "radioapparater" "radioapparaterna" ; -- SAOL
rain_V0 = mkV0 (regV "regna") ;
read_V2 = dirV2 (mk2V "läsa" "läste") ;
@@ -148,11 +148,11 @@ lin
restaurant_N = mk2N "restaurang" "restauranger" ;
river_N = mkN "å" "ån" "åar" "åarna" ;
rock_N = mkN "sten" "stenen" "stenar" "stenarna" ;
roof_N = regN "tak" neutrum ;
roof_N = regGenN "tak" neutrum ;
rubber_N = mkN "gummi" "gummit" "gummin" "gummina" ;
run_V = (irregV "springa" "sprang" "sprungit") ;
say_VS = mkVS (mkV "säga" "säger" "säg" "sade" "sagt" "sagd") ;
school_N = regN "skola" utrum;
school_N = regGenN "skola" utrum;
science_N = mk2N "vetenskap" "vetenskaper" ;
sea_N = mkN "sjö" "sjön" "sjöar" "sjöarna" ;
seek_V2 = dirV2 (mk2V "söka" "sökte") ;
@@ -160,8 +160,8 @@ lin
sell_V3 = dirV3 (irregV "sälja" "sålde" "sålt") "till" ;
send_V3 = dirV3 (regV "skicka") "till" ;
sheep_N = mk2N "får" "får" ;
ship_N = regN "skepp" neutrum ;
shirt_N = regN "skjorta" utrum ;
ship_N = regGenN "skepp" neutrum ;
shirt_N = regGenN "skjorta" utrum ;
shoe_N = mk2N "sko" "skor" ;
shop_N = mk2N "affär" "affären" ;
short_A = regA "kort" ;
@@ -169,44 +169,44 @@ lin
sister_N = mk2N "syster" "systrar" ;
sleep_V = (irregV "sova" "sov" "sovit") ;
small_A = mkA "liten" "litet" "lilla" "små" "mindre" "minst" "minsta" ;
snake_N = regN "orm" utrum ;
sock_N = regN "strumpa" utrum ;
snake_N = regGenN "orm" utrum ;
sock_N = regGenN "strumpa" utrum ;
speak_V2 = dirV2 (regV "tala") ;
star_N = regN "stjärna" utrum ;
steel_N = regN "stål" utrum ;
star_N = regGenN "stjärna" utrum ;
steel_N = regGenN "stål" utrum ;
stone_N = mkN "sten" "stenen" "stenar" "stenarna" ;
stove_N = regN "spis" utrum ;
stove_N = regGenN "spis" utrum ;
student_N = mk2N "student" "studenter" ;
stupid_A = mk3A "dum" "dumt" "dumma" ;
sun_N = regN "sol" utrum ;
sun_N = regGenN "sol" utrum ;
switch8off_V2 = dirV2 (partV (irregV "stänga" "stängde" "stängt") "av") ;
switch8on_V2 = dirV2 (partV (irregV "slå" "slog" "slagit") "på") ;
table_N = regN "bord" neutrum ;
table_N = regGenN "bord" neutrum ;
talk_V3 = mkV3 (regV "prata") "till" "om" ;
teacher_N = mk2N "lärare" "lärare" ;
teach_V2 = dirV2 (regV "undervisa") ;
television_N = mk2N "television" "televisioner" ;
thick_A = regA "tjock" ;
thin_A = mk2A "tunn" "tunt" ;
train_N = regN "tåg" neutrum ;
train_N = regGenN "tåg" neutrum ;
travel_V = mk2V "resa" "reste" ;
tree_N = regN "träd" neutrum ;
---- trousers_N = regN "trousers" ; ---- pl t !
tree_N = regGenN "träd" neutrum ;
---- trousers_N = regGenN "trousers" ; ---- pl t !
ugly_A = regA "ful" ;
understand_V2 = dirV2 (mkV "förstå" "förstår" "förstå" "förstod" "förstått" "förstådd") ;
university_N = regN "universitet" neutrum ;
university_N = regGenN "universitet" neutrum ;
village_N = mkN "by" "byn" "byar" "byarna" ;
wait_V2 = mkV2 (regV "vänta") "på" ;
walk_V = (mkV "gå" "går" "gå" "gick" "gått" "gången") ;
warm_A = regA "varm" ;
war_N = regN "krig" neutrum ;
war_N = regGenN "krig" neutrum ;
watch_V2 = mkV2 (regV "titta") "på" ;
water_N = mkN "vatten" "vattnet" "vatten" "vattnen" ;
white_A = regA "vit" ;
window_N = mkN "fönster" "fönstret" "fönster" "fönstren" ;
wine_N = mkN "vin" "vinet" "viner" "vinerna" ; ----
win_V2 = dirV2 (irregV "vinna" "vann" "vunnit") ;
woman_N = regN "kvinna" utrum ;
woman_N = regGenN "kvinna" utrum ;
wonder_VQ = mkVQ (regV "undra") ;
wood_N = mkN "trä" "träet" "träen" "träena" ; ---- ?
write_V2 = dirV2 (irregV "skriva" "skrev" "skrivit") ;

View File

@@ -68,11 +68,17 @@ oper
mkN : (apa,apan,apor,aporna : Str) -> N ;
-- The regular function takes the singular indefinite form and the gender,
-- and computes the other forms by a heuristic.
-- The regular function takes the singular indefinite form and computes the other
-- forms and the gender by a heuristic. The heuristic is currently
-- to treat all words ending with "a" like "flicka", with "e" like "rike",
-- and otherwise like "bil".
-- If in doubt, use the $cc$ command to test!
regN : Str -> Gender -> N ;
regN : Str -> N ;
-- Adding the gender manually greatly improves the correction of $regN$.
regGenN : Str -> Gender -> N ;
-- In practice the worst case is often just: give singular and plural indefinite.
@@ -290,7 +296,14 @@ oper
}
} ** {lock_N = <>} ;
regN bil g = case g of {
regN bil = regGenN bil g where {
g = case <bil : Str> of {
_ + "e" => Neutr ;
_ => Utr
}
} ;
regGenN bil g = case g of {
Utr => case last bil of {
"a" => decl1Noun bil ;
_ => decl2Noun bil
@@ -365,7 +378,7 @@ oper
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ;
regN2 n g = mkN2 (regN n g) (mkPreposition "av") ;
regN2 n g = mkN2 (regGenN n g) (mkPreposition "av") ;
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
regPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;