diff --git a/next-lib/src/german/LexiconGer.gf b/next-lib/src/german/LexiconGer.gf index ac8b68973..56fe72200 100644 --- a/next-lib/src/german/LexiconGer.gf +++ b/next-lib/src/german/LexiconGer.gf @@ -10,10 +10,10 @@ flags lin add_V3 = dirV3 (prefixV "hinzu" (regV "fügen")) zu_Prep ; - airplane_N = regN "Flugzeug" ; + airplane_N = mkN "Flugzeug" ; already_Adv = mkAdv "schon" ; answer_V2S = mkV2S (regV "antworten") datPrep ; - apartment_N = regN "Wohnung" ; + apartment_N = mkN "Wohnung" ; apple_N = reg2N "Apfel" "Äpfel" masculine ; art_N = reg2N "Kunst" "Künste" feminine ; ask_V2Q = mkV2Q (regV "fragen") accPrep ; @@ -43,20 +43,20 @@ lin butter_N = reg2N "Butter" "Butter" feminine ; ---- infl buy_V2 = dirV2 (regV "kaufen") ; camera_N = reg2N "Kamera" "Kameras" feminine ; - cap_N = regN "Mütze" ; - car_N = regN "Wagen" ; - carpet_N = regN "Teppich" ; - cat_N = regN "Katze" ; + cap_N = mkN "Mütze" ; + car_N = mkN "Wagen" ; + carpet_N = mkN "Teppich" ; + cat_N = mkN "Katze" ; ceiling_N = reg2N "Dach" "Dächer" neuter ; chair_N = reg2N "Stuhl" "Stühle" masculine ; - cheese_N = regN "Käse" ; + cheese_N = mkN "Käse" "Käse" masculine ; child_N = reg2N "Kind" "Kinder" neuter ; - church_N = regN "Kirche" ; + church_N = mkN "Kirche" ; city_N = reg2N "Stadt" "Städte" feminine ; clean_A = regA "rein" ; clever_A = mk3A "klug" "klüger" "klügste" ; close_V2 = dirV2 (irregV "schließen" "schließt" "schloß" "schlösse" "geschlossen") ; - coat_N = regN "Jacke" ; + coat_N = mkN "Jacke" ; cold_A = regA "kalt" ; come_V = seinV (mk6V "kommen" "kommt" "komm" "kam" "käme" "gekommen") ; computer_N = reg2N "Rechner" "Rechner" masculine ; @@ -64,31 +64,31 @@ lin cousin_N = reg2N "Vetter" "Vetter" masculine ; --- Kusine cow_N = reg2N "Kuh" "Kühe" feminine ; die_V = seinV (irregV "sterben" "stirbt" "starb" "stürbe" "gestorben") ; - distance_N3 = mkN3 (regN "Entfernung") von_Prep zu_Prep ; + distance_N3 = mkN3 (mkN "Entfernung") von_Prep zu_Prep ; dirty_A = regA "schmutzig" ; do_V2 = dirV2 (irregV "tun" "tut" "tat" "täte" "getan") ; doctor_N = reg2N "Arzt" "Ärzte" masculine ; - dog_N = regN "Hund" ; + dog_N = mkN "Hund" ; door_N = reg2N "Tür" "Türen" feminine ; drink_V2 = dirV2 (irregV "trinken" "trinkt" "trank" "tränke" "getrunken") ; easy_A2V = mkA2V (regA "leicht") (mkPrep "für" accusative) ; eat_V2 = dirV2 (irregV "essen" "ißt" "aß" "äße" "gegessen") ; empty_A = regA "leer" ; ---- check infl - enemy_N = regN "Feind" ; - factory_N = regN "Fabrik" ; + enemy_N = mkN "Feind" ; + factory_N = mkN "Fabrik" "Fabriken" feminine ; father_N2 = mkN2 (reg2N "Vater" "Väter" masculine) von_Prep ; fear_VS = mkVS (regV "fürchten") ; find_V2 = dirV2 (irregV "finden" "findet" "fand" "fände" "gefunden") ; - fish_N = regN "Fisch" ; + fish_N = mkN "Fisch" ; floor_N = reg2N "Fußboden" "Fußböden" masculine ; forget_V2 = dirV2 (irregV "vergessen" "vergißt" "vergaß" "vergäße" "vergessen") ; fridge_N = reg2N "Kühlschrank" "Kühlschränke" masculine ; - friend_N = regN "Freund" ; + friend_N = mkN "Freund" ; fruit_N = reg2N "Frucht" "Früchte" feminine ; fun_AV = mkAV (regA "toll") ; garden_N = reg2N "Garten" "Gärten" masculine ; girl_N = reg2N "Mädchen" "Mädchen" neuter ; - glove_N = regN "Handschuh" ; + glove_N = mkN "Handschuh" ; gold_N = reg2N "Gold" "Golde" neuter ; ---- infl good_A = mk3A "gut" "besser" "beste" ; go_V = seinV (irregV "gehen" "geht" "ging" "ginge" "gegangen") ; @@ -98,20 +98,20 @@ lin hat_N = reg2N "Hut" "Hüte" masculine ; have_V2 = dirV2 IrregGer.haben_V ; hear_V2 = dirV2 (regV "hören") ; - hill_N = regN "Hügel" ; + hill_N = mkN "Hügel" ; hope_VS = mkVS (regV "hoffen") ; horse_N = reg2N "Pferd" "Pferde" neuter ; hot_A = regA "heiß" ; house_N = reg2N "Haus" "Häuser" neuter ; important_A = regA "wichtig" ; - industry_N = regN "Industrie" ; + industry_N = mkN "Industrie" ; iron_N = reg2N "Eisen" "Eisen" neuter ; jump_V = seinV (irregV "springen" "springt" "sprang" "spränge" "gesprungen") ; - king_N = regN "König" ; + king_N = mkN "König" ; know_V2 = dirV2 (irregV "kennen" "kennt" "kannte" "kännte" "gekannt") ; ---- infl know_VS = mkVS (irregV "wissen" "weiß" "wußte" "wüßte" "gewußt") ; ---- infl lake_N = reg2N "See" "Seen" masculine ; --- infl - lamp_N = regN "Lampe"; + lamp_N = mkN "Lampe"; learn_V2 = dirV2 (regV "lernen") ; leather_N = reg2N "Leder" "Leder" neuter ; leave_V2 = dirV2 (irregV "verlassen" "verläßt" "verließ" "verließe" "verlassen") ; @@ -120,19 +120,19 @@ lin live_V = regV "leben" ; long_A = mk3A "lang" "länger" "längste" ; lose_V2 = dirV2 (irregV "verlieren" "verliert" "verlor" "verlöre" "verloren") ; - love_N = regN "Liebe" ; + love_N = mkN "Liebe" ; love_V2 = dirV2 (regV "lieben") ; man_N = reg2N "Mann" "Männer" masculine ; married_A2 = mkA2 (regA "verheiratet") (mkPrep "mit" dative) ; meat_N = reg2N "Fleisch" "Fleische" neuter ; ---- infl milk_N = reg2N "Milch" "Milche" feminine ; ---- infl - moon_N = regN "Mond" ; + moon_N = mkN "Mond" ; mother_N2 = mkN2 (reg2N "Mutter" "Mütter" feminine) von_Prep ; - mountain_N = regN "Berg" ; + mountain_N = mkN "Berg" ; music_N = reg2N "Musik" "Musiken" feminine ; narrow_A = regA "schmal" ; new_A = regA "neu" ; - newspaper_N = regN "Zeitung" ; + newspaper_N = mkN "Zeitung" ; now_Adv = mkAdv "jetzt" ; number_N = reg2N "Zahl" "Zahlen" feminine ; oil_N = reg2N "Öl" "Öle" neuter ; @@ -142,12 +142,12 @@ lin paper_N = reg2N "Papier" "Papiere" neuter ; paris_PN = mkPN "Paris" "Paris" ; peace_N = mk6N "Friede" "Frieden" "Frieden" "Friedens" "Frieden" "Frieden" masculine ; - pen_N = regN "Bleistift" ; ---- + pen_N = mkN "Bleistift" ; ---- planet_N = reg2N "Planet" "Planeten" masculine ; plastic_N = reg2N "Plastik" "Plastiken" feminine ; ---- play_V2 = dirV2 (regV "spielen") ; policeman_N = reg2N "Polizist" "Polizisten" masculine ; - priest_N = regN "Priester" ; + priest_N = mkN "Priester" ; probable_AS = mkAS (regA "wahrscheinlich") ; put_V2 = dirV2 (regV "setzen") ; queen_N = reg2N "Königin" "Königinnen" feminine ; @@ -155,15 +155,15 @@ lin rain_V0 = mkV0 (regV "regnen") ; read_V2 = dirV2 (irregV "lesen" "liest" "las" "läse" "gelesen") ; red_A = regA "rot" ; - religion_N = regN "Religion" ; + religion_N = mkN "Religion" ; restaurant_N = reg2N "Restaurant" "Restaurants" neuter ; river_N = reg2N "Fluß" "Flüsse" masculine ; - rock_N = regN "Stein" ; + rock_N = mkN "Stein" ; roof_N = reg2N "Dach" "Dächer" neuter ; rubber_N = reg2N "Gummi" "Gummis" neuter ; run_V = seinV (irregV "laufen" "läuft" "lief" "liefe" "gelaufen") ; say_VS = mkVS (regV "sagen") ; - school_N = regN "Schule"; + school_N = mkN "Schule"; science_N = reg2N "Wissenschaft" "Wissenschaften" feminine ; sea_N = reg2N "Meer" "Meere" neuter ; seek_V2 = dirV2 (regV "suchen") ; @@ -173,28 +173,28 @@ lin sheep_N = reg2N "Schaf" "Schafe" neuter ; ship_N = reg2N "Schiff" "Schiffe" neuter ; shirt_N = reg2N "Hemd" "Hemden" neuter ; ---- infl - shoe_N = regN "Schuh" ; + shoe_N = mkN "Schuh" ; shop_N = reg2N "Laden" "Läden" masculine ; short_A = mk3A "kurz" "kürzer" "kürzeste" ; silver_N = reg2N "Silber" "Silber" neuter ; ---- infl sister_N = reg2N "Schwester" "Schwestern" feminine ; sleep_V = irregV "schlafen" "schläft" "schlief" "schliefe" "geschlafen" ; small_A = regA "klein" ; - snake_N = regN "Schlange" ; + snake_N = mkN "Schlange" ; sock_N = reg2N "Strumpf" "Strümpfe" masculine ; song_N = reg2N "Lied" "Lieder" neuter ; speak_V2 = dirV2 (irregV "sprechen" "spricht" "sprach" "spräche" "gesprochen") ; - star_N = regN "Sterne" ; - steel_N = regN "Stahl" ; - stone_N = regN "Stein" ; + star_N = mkN "Sterne" ; + steel_N = mkN "Stahl" ; + stone_N = mkN "Stein" ; stop_V = seinV (irregV "halten" "hält" "hielt" "hielte" "gehalten") ; - stove_N = regN "Herd" ; + stove_N = mkN "Herd" ; student_N = reg2N "Student" "Studenten" masculine ; stupid_A = mk3A "dumm" "dümmer" "dümmste" ; ---- - sun_N = regN "Sonne" ; + sun_N = mkN "Sonne" ; switch8off_V2 = dirV2 (prefixV "aus" (regV "schalten")) ; switch8on_V2 = dirV2 (prefixV "ein" (regV "schalten")) ; - table_N = regN "Tisch" ; + table_N = mkN "Tisch" ; talk_V3 = mkV3 (regV "reden") datPrep von_Prep ; teacher_N = reg2N "Lehrer" "Lehrer" masculine ; teach_V2 = dirV2 (no_geV (regV "unterrichten")) ; @@ -204,7 +204,7 @@ lin train_N = reg2N "Zug" "Züge" masculine ; travel_V = regV "reisen" ; tree_N = reg2N "Baum" "Bäume" masculine ; - ---- trousers_N = regN "trousers" ; ---- pl t ! + ---- trousers_N = mkN "trousers" ; ---- pl t ! ugly_A = regA "häßlich" ; understand_V2 = dirV2 (irregV "verstehen" "versteht" "verstand" "verstände" "verstanden") ; @@ -213,12 +213,12 @@ lin wait_V2 = prepV2 (regV "warten") (mkPrep "auf" accusative) ; walk_V = seinV (irregV "gehen" "geht" "ging" "ginge" "gegangen") ; warm_A = mk3A "warm" "wärmer" "wärmste" ; - war_N = regN "Krieg" ; + war_N = mkN "Krieg" ; watch_V2 = prepV2 (regV "schauen") (mkPrep "an" accusative) ; water_N = reg2N "Wasser" "Wasser" neuter ; white_A = regA "weiß" ; window_N = reg2N "Fenster" "Fenster" neuter ; - wine_N = regN "Wein" ; + wine_N = mkN "Wein" ; win_V2 = dirV2 (irregV "gewinnen" "gewinnt" "gewann" "gewänne" "gewonnen") ; woman_N = reg2N "Frau" "Frauen" feminine ; wonder_VQ = mkVQ (reflV (regV "wundern") accusative) ; @@ -233,7 +233,7 @@ lin dry_A = regA "trocken" ; dull_A = regA "stumpf" ; full_A = regA "voll" ; - heavy_A = regA "schwer" ; + heavy_A = mkA "schwer" "schwere" "schwerer" "schwerste" ; near_A = mk3A "nahe" "näher" "nächste" ; rotten_A = regA "verdorben" ; round_A = regA "rund" ; @@ -243,68 +243,68 @@ lin wet_A = regA "naß" ; wide_A = regA "breit" ; animal_N = reg2N "Tier" "Tiere" neuter ; - ashes_N = regN "Asche" ; + ashes_N = mkN "Asche" ; back_N = reg2N "Rücken" "Rücken" masculine ; - bark_N = regN "Rinde" ; + bark_N = mkN "Rinde" ; belly_N = reg2N "Bauch" "Bäuche" masculine ; - blood_N = regN "Blut" ; + blood_N = mkN "Blut" "Blute" neuter ; bone_N = reg2N "Knochen" "Knochen" masculine ; breast_N = reg2N "Brust" "Brüste" feminine ; - cloud_N = regN "Wolke" ; - day_N = regN "Tag" ; + cloud_N = mkN "Wolke" ; + day_N = mkN "Tag" ; dust_N = reg2N "Staub" "Stäube" masculine ; - ear_N = regN "Ohr" ; - earth_N = regN "Erde" ; - egg_N = regN "Ei" ; - eye_N = regN "Auge" ; - fat_N = regN "Fett" ; - feather_N = regN "feather" ; + ear_N = mkN "Ohr" "Ohren" neuter ; + earth_N = mkN "Erde" ; + egg_N = mkN "Ei" "Eier" neuter ; + eye_N = mkN "Auge" "Augen" neuter; + fat_N = mkN "Fett" "Fetter" neuter ; + feather_N = mkN "Feder" "Federn" feminine ; fingernail_N = reg2N "Fingernagel" "Fingernägel" masculine ; - fire_N = regN "Feuer" ; - flower_N = regN "Blume" ; - fog_N = regN "Nebel" ; + fire_N = mkN "Feuer" "Feuer" neuter ; + flower_N = mkN "Blume" ; + fog_N = mkN "Nebel" "Nebel" masculine ; foot_N = reg2N "Fuß" "Füße" masculine ; forest_N = reg2N "Wald" "Wälder" masculine ; - grass_N = regN "Gras" ; - guts_N = regN "Eingeweide" ; - hair_N = regN "Haar" ; - hand_N = regN "Hand" ; - head_N = regN "Kopf" ; - heart_N = regN "Herz" ; - horn_N = regN "Horn" ; - husband_N = regN "Ehemann" ; - ice_N = regN "Eis" ; - knee_N = regN "Knie" ; + grass_N = mkN "Gras" "Gräser" neuter ; + guts_N = mkN "Eingeweide" ; + hair_N = mkN "Haar" "Haare" neuter ; + hand_N = mkN "Hand" "Hände" feminine ; + head_N = mkN "Kopf" "Köpfe" masculine ; + heart_N = mkN "Herz" "Herzen" neuter ; + horn_N = mkN "Horn" "Härner" neuter ; + husband_N = mkN "Ehemann" "Ehemänner" masculine ; + ice_N = mkN "Eis" "Eise" neuter ; + knee_N = mkN "Knie" "Knien" neuter ; leaf_N = reg2N "Blatt" "Blätter" neuter ; - leg_N = regN "Bein" ; - liver_N = regN "Leber" ; + leg_N = mkN "Bein" "Beine" neuter ; + liver_N = mkN "Leber" "Lebern" feminine ; louse_N = reg2N "Laus" "Läuse" feminine ; - mouth_N = regN "Mund" ; - name_N = regN "Name" ; - neck_N = regN "Nacken" ; + mouth_N = mkN "Mund" "Münder" masculine ; + name_N = mkN "Name" "Namen" "Namen" "Namens" "Namen" "Namen" masculine ; + neck_N = mkN "Nacken" "Nacken" masculine ; night_N = reg2N "Nacht" "Nächte" feminine ; - nose_N = regN "Nase" ; - person_N = regN "Person" ; - rain_N = regN "Regen" ; - road_N = regN "Straße" ; - root_N = regN "Wurzel" ; - rope_N = regN "Seil" ; - salt_N = regN "Salz" ; - sand_N = regN "Sand" ; - seed_N = regN "Same" ; - skin_N = regN "Haut" ; - sky_N = regN "Himmel" ; - smoke_N = regN "Rauch" ; - snow_N = regN "Schnee" ; - stick_N = regN "Stock" ; - tail_N = regN "Schwanz" ; - tongue_N = regN "Zunge" ; - tooth_N = regN "Zahn" ; - wife_N = regN "Ehefrau" ; - wind_N = regN "Wind" ; + nose_N = mkN "Nase" ; + person_N = mkN "Person" "Personen" feminine ; + rain_N = mkN "Regen" ; + road_N = mkN "Straße" ; + root_N = mkN "Wurzel" "Wurzeln" feminine ; + rope_N = mkN "Seil" "Seile" neuter ; + salt_N = mkN "Salz" "Salze" neuter ; + sand_N = mkN "Sand" ; + seed_N = mkN "Same" ; + skin_N = mkN "Haut" "Häute" feminine ; + sky_N = mkN "Himmel" ; ---- pl + smoke_N = mkN "Rauch" ; + snow_N = mkN "Schnee" "Schneen" masculine ; ---- pl + stick_N = mkN "Stock" "Stöcke" masculine ; + tail_N = mkN "Schwanz" "Schwänze" masculine ; + tongue_N = mkN "Zunge" ; + tooth_N = mkN "Zahn" "Zähne" masculine ; + wife_N = mkN "Ehefrau" "Ehefrauen" feminine ; + wind_N = mkN "Wind" ; wing_N = reg2N "Flügel" "Flügel" masculine ; - worm_N = regN "Wurm" ; - year_N = regN "Jahr" ; + worm_N = mkN "Wurm" "Würmer" masculine ; + year_N = mkN "Jahr" "Jahre" neuter ; blow_V = regV "blasen" ; breathe_V = regV "atmen" ; burn_V = regV "brennen" ; @@ -353,11 +353,11 @@ lin wipe_V2 = dirV2 (regV "wischen") ; grammar_N = reg2N "Grammatik" "Grammatiken" feminine ; - language_N = regN "Sprache" ; + language_N = mkN "Sprache" ; rule_N = reg2N "Regel" "Regeln" feminine ; john_PN = regPN "Johann" ; - question_N = regN "Frage" ; + question_N = mkN "Frage" ; ready_A = regA "fertig" ; reason_N = reg2N "Grund" "Gründe" masculine ; today_Adv = mkAdv "heute" ; diff --git a/next-lib/src/german/ParadigmsGer.gf b/next-lib/src/german/ParadigmsGer.gf index 03a70a946..ae93b5317 100644 --- a/next-lib/src/german/ParadigmsGer.gf +++ b/next-lib/src/german/ParadigmsGer.gf @@ -127,11 +127,15 @@ mkN : overload { mkA : Str -> A ; --- In the worst case, adjectives need three forms - one for each degree. +-- Irregular adjectives need three forms - one for each degree. - mkA : (gut,besser,beste : Str) -> A -- gut,besser,beste + mkA : (gut,besser,beste : Str) -> A ; - }; +-- Sometimes an extra form is needed for positive forms. + + mkA : (gut,gute,besser,beste : Str) -> A + + } ; -- Invariable adjective are a special case. @@ -358,6 +362,8 @@ mkV2 : overload { _ => a } in MorphoGer.mkA a aa b (init c) ** {lock_A = <>} ; + mk4A : (gut,gute,besser,beste : Str) -> A = \a,aa,b,c -> + MorphoGer.mkA a aa b (init c) ** {lock_A = <>} ; regA : Str -> A = \a -> case a of { teu + "er" => mk3A a (teu + "rer") (teu + "reste") ; @@ -476,7 +482,8 @@ mkV2 : overload { mkA = overload { mkA : Str -> A = regA ; - mkA : (gut,besser,beste : Str) -> A = mk3A + mkA : (gut,besser,beste : Str) -> A = mk3A ; + mkA : (gut,gute,besser,beste : Str) -> A = mk4A };