diff --git a/src/hungarian/LexiconHun.gf b/src/hungarian/LexiconHun.gf index 4d70bedf..deda0643 100644 --- a/src/hungarian/LexiconHun.gf +++ b/src/hungarian/LexiconHun.gf @@ -8,7 +8,7 @@ concrete LexiconHun of Lexicon = CatHun ** lin airplane_N = mkN "repülőgép" "repülőgépet" ; -- lin alas_Interj = mkInterj "" ; -- lin already_Adv = mkA "" ; -lin animal_N = mkN "állat" "állatot" ; +lin animal_N = mkN "állat" "állatot" "állatok" "állata" ; -- lin answer_V2S = mkV2S "válasz" ; lin apartment_N = mkN "lakás" "lakást" ; lin apple_N = mkN "alma" ; @@ -261,10 +261,10 @@ lin peace_N = mkN "béke" "békét"; lin pen_N = mkN "toll" "tollat" ; lin person_N = mkN "ember" "embert"; lin planet_N = mkN "bolygó" "bolygót" ; -lin plastic_N = mkN "műanyag" "műanyagot" ; +lin plastic_N = mkN "műanyag" "műanyagot" "műanyagok" "műanyaga" ; -- lin play_V = mkV "" ; lin policeman_N = mkN "rendőr" "rendőrt"; --the police "rendőrség" -lin priest_N = mkN "pap" "papot" ; +lin priest_N = mkN "pap" "papot" "papok" "papja" ; -- lin pull_V2 = mkV2 "" ; -- lin push_V2 = mkV2 "" ; -- lin put_V2 = mkV2 "" ; @@ -279,7 +279,7 @@ lin rain_N = mkN "eső" "esőt" ; -- lin rain_V0 = mkV "" ; -- lin read_V2 = mkV2 "" ; lin ready_A = mkA "kész" ; -lin reason_N = mkN "ok" "okot" ; +lin reason_N = mkN "ok" "okot" "okok" "oka" ; lin red_A = mkA "piros" ; lin religion_N = mkN "vallás" "vallást"; lin restaurant_N = mkN "étterem" "éttermet"; @@ -300,14 +300,14 @@ lin rule_N = mkN "szabály" "szabályt" ; -- S lin salt_N = mkN "só" "sót" ; -lin sand_N = mkN "homok" "homokot" ; +lin sand_N = mkN "homok" "homokot" "homokok" "homokja" ; -- lin say_VS = mkVS "" ; lin school_N = mkN "iskola" "iskolát"; lin science_N = mkN "tudomány" "tudományt" ; -- lin scratch_V2 = mkV2 "" ; lin sea_N = mkN "tenger" "tengert"; lin see_V2 = mkV2 "lát" ; -lin seed_N = mkN "mag" "magot" ; +lin seed_N = mkN "mag" "magot" "magok" "magja" ; -- lin seek_V2 = mkV2 "" ; -- lin sell_V3 = mkV3 "" ; -- lin send_V3 = mkV3 "" ; @@ -341,7 +341,7 @@ lin song_N = mkN "dal" "dalt" ; -- lin squeeze_V2 = mkV2 "" ; -- lin stab_V2 = mkV2 "" ; -- lin stand_V = mkV "" ; -lin star_N = mkN "csillag" "csillagot" ; +lin star_N = mkN "csillag" "csillagot" "csillagok" "csillaga" ; lin steel_N = mkN "acél" "ok" harmA ; lin stick_N = mkN "rúd" "rudat" ; lin stone_N = mkN "kő" "követ" ; @@ -373,7 +373,7 @@ lin thin_A = mkA "vekony" ; lin today_Adv = mkAdv "ma" ; lin tongue_N = mkN "nyelv" "nyelvet"; --same as language lin tooth_N = mkN "fog" "fogat" ; -lin train_N = mkN "vonat" "vonatot" ; +lin train_N = mkN "vonat" "vonatot" "vonatok" "vonata" ; -- lin travel_V = mkV "" ; lin tree_N = mkN "fa" "fát"; -- lin turn_V = mkV "" ; @@ -404,7 +404,7 @@ lin wide_A = mkA "széles" ; lin wife_N = mkN "feleség" "feleséget" ; -- lin win_V2 = mkV2 "" ; lin wind_N = mkN "szél" "szelet" ; -lin window_N = mkN "ablak" "ablakot" ; +lin window_N = mkN "ablak" "ablakot" "ablakok" "ablaka" ; lin wine_N = mkN "bor" "bort"; lin wing_N = mkN "szárny" "szárnyat"; -- lin wipe_V2 = mkV2 "" ; diff --git a/src/hungarian/NounMorphoHun.gf b/src/hungarian/NounMorphoHun.gf index d214fae3..5b08fb42 100644 --- a/src/hungarian/NounMorphoHun.gf +++ b/src/hungarian/NounMorphoHun.gf @@ -91,12 +91,17 @@ oper majm = init majmo ; nMajmo = mkNoun majmo ; nMajom = mkNoun majom ; + o = last (init majom) ; in nMajmo ** { s = \\nc => case nc of { - SgSup -- All plural forms and Sg Acc and Sg Sup use the "majmo" stem - | PlStem - | SgAccStem => nMajmo.s ! nc ; + -- All plural forms and Sg Acc use the "majmo" stem + PlStem | SgAccStem => nMajmo.s ! nc ; + + -- Sg Sup uses the same majm* stem, but vowel can be different: + -- sátor, sátrat -> sátron, not *sátran + -- vászon, vásznat -> vásznon, not *vásznan + SgSup => majm + o + "n" ; -- The plural morpheme before possessive suffixes: majmai PossdPl => majm + harm "a" "e" ! nMajmo.h + "i" ; @@ -296,8 +301,8 @@ oper -- Stem 1: Sg Nom -- Stem 2: Sg Gen, Sg Sup, Pl * - <_ + #shortv + #c, -- majom, majmot - _ + #c + #shortv + "t"> => dMajom n a ; + <_ + #c + #shortv + #c, -- majom, majmot + _ + #c + #c + #shortv + "t"> => dMajom n a ; -- Stem 1: Sg Nom -- Stem 2: Sg Sup @@ -443,7 +448,7 @@ oper x + "u" => x + "ú" ; x + "ö" => x + "ő" ; x + "ü" => x + "ű" ; - _ => Predef.error "Lengthening not applicable to" ++ str + _ => str -- Lengthening not applicable to str } ; shorten : Str -> Str = \str -> case str of { @@ -454,7 +459,7 @@ oper x + "ú" => x + "u" ; x + "ő" => x + "ö" ; x + "ű" => x + "ü" ; - _ => Predef.error "Shortening not applicable to" ++ str + _ => str -- Shortening not applicable to str } ; -- Function to get a harmony from a string