diff --git a/src/hungarian/LexiconHun.gf b/src/hungarian/LexiconHun.gf deleted file mode 100644 index 0e7cd31fd..000000000 --- a/src/hungarian/LexiconHun.gf +++ /dev/null @@ -1,418 +0,0 @@ -concrete LexiconHun of Lexicon = CatHun ** - open ParadigmsHun, ParamHun, Prelude in { - ----- --- A - --- lin add_V3 = mkV3 "" ; --- lin airplane_N = mkN "" ; --- lin alas_Interj = mkInterj "" ; --- lin already_Adv = mkA "" ; --- lin animal_N = mkN "" ; --- lin answer_V2S = mkV2S "válasz" ; --- lin apartment_N = mkN "" ; -lin apple_N = mkN "alma" ; -lin art_N = mkN "müvészet" ; --- lin ashes_N = mkN "" ; --- lin ask_V2Q = mkV2 "" ; - ----- --- B - -lin baby_N = mkN "bébi" ; --- lin back_N = mkN "" ; --- lin bad_A = mkA "" ; -lin bank_N = mkN "bank" ; --- lin bark_N = mkN "" ; --- lin beautiful_A = mkA "" ; --- lin become_VA = mkVA "" ; -lin beer_N = mkN "sör" ; --- lin beg_V2V = mkV2 "" ; -lin belly_N = mkN "has" ; --- lin big_A = mkA "" ; --- lin bike_N = mkN "" ; -lin bird_N = mkN "madár" ; --- lin bite_V2 = mkV2 "" ; --- lin black_A = mkA "" ; --- lin blood_N = mkN "" ; --- lin blow_V = mkV "" ; --- lin blue_A = mkA "" ; --- lin boat_N = mkN "" ; --- lin bone_N = mkN "" ; --- lin boot_N = mkN "" ; --- lin boss_N = mkN "" ; --- lin book_N = mkN "" ; -lin boy_N = mkN "fiú" ; --- lin bread_N = mkN "" ; --- lin break_V2 = mkV2 "" ; --- lin breast_N = mkN "" ; --- lin breathe_V = mkV "" ; --- lin broad_A = mkA "" ; --- lin brother_N2 = mkN "" ; --- lin brown_A = mkA "" ; --- lin burn_V = mkV "" ; --- lin butter_N = mkN "" ; --- lin buy_V2 = mkV2 "" ; - ----- --- C - --- lin camera_N = mkN "" ; --- lin cap_N = mkN "" ; --- lin car_N = mkN "" ; --- lin carpet_N = mkN "" ; -lin cat_N = mkN "macska" ; --- lin ceiling_N = mkN "" ; --- lin chair_N = mkN "" ; --- lin cheese_N = mkN "" ; -lin child_N = mkN "gyerek" ; --- lin church_N = mkN "" ; -lin city_N = mkN "város" ; --- lin clean_A = mkA "" ; --- lin clever_A = mkA "" ; --- lin close_V2 = mkV2 "" ; --- lin cloud_N = mkN "" ; --- lin coat_N = mkN "" ; --- lin cold_A = mkA "" ; --- lin come_V = mkV "" ; --- lin computer_N = mkN "" ; --- lin correct_A = mkA "" ; --- lin count_V2 = mkV2 "" ; -lin country_N = mkN "ország" ; --- lin cousin_N = mkN "" ; --- lin cow_N = mkN "" ; --- lin cut_V2 = mkV2 "" ; --- --- ---- --- -- D --- --- lin day_N = mkN "" ; --- lin die_V = mkV "" ; --- lin dig_V = mkV "" ; --- lin dirty_A = mkA "" ; --- lin distance_N3 = mkN "" ; --- lin do_V2 = mkV2 do_V ; --- lin doctor_N = mkN "" ; --- lin dog_N = mkN "" ; -lin door_N = mkN "ajtó" ; --- lin drink_V2 = mkV2 "" ; --- lin dry_A = mkA "" ; --- lin dull_A = mkA "" ; --- lin dust_N = mkN "" ; - ----- --- E - --- lin ear_N = mkN "" ; --- lin earth_N = mkN "" ; --- lin eat_V2 = mkV2 "" ; --- lin egg_N = mkN "" ; --- lin empty_A = mkA "" ; --- lin enemy_N = mkN "" ; -lin eye_N = mkN "szem" ; - ----- --- F - --- lin factory_N = mkN "" ; --- lin fall_V = mkV "" ; --- lin far_Adv = mkA "" ; --- lin fat_N = mkN "" ; --- lin father_N2 = mkN2 "" ; --- lin fear_V2 = mkV2 "" ; --- lin fear_VS = mkVS "" ; --- lin feather_N = mkN "" ; --- lin fight_V2 = mkV2 "" ; --- lin find_V2 = mkV2 "" ; --- lin fingernail_N = mkN "" ; --- lin fire_N = mkN "" ; -lin fish_N = mkN "hal" ; --- lin float_V = mkV "" ; --- lin floor_N = mkN "" ; --- lin flow_V = mkV "" ; --- lin flower_N = mkN "" ; -lin fly_V = mkV "repül" ; --- lin fog_N = mkN "" ; --- lin foot_N = mkN "" ; --- lin forest_N = mkN "" ; --- lin forget_V2 = mkV2 "" ; --- lin freeze_V = mkV "" ; --- lin fridge_N = mkN "" ; --- lin friend_N = mkN "" ; -lin fruit_N = mkN "gyümölcs" ; --- lin full_A = mkA "" ; --- --lin fun_AV - ----- --- G - -lin garden_N = mkN "kert" ; -lin girl_N = mkN "lány" ; --- lin give_V3 = mkV3 "" ; --- lin glove_N = mkN "" ; --- lin go_V = mkV "" ; -lin gold_N = mkN "arany" ; --- lin good_A = mkA "" ; --- lin grammar_N = mkN "" ; --- lin grass_N = mkN "" ; --- lin green_A = mkA "" ; - ----- --- H - --- lin hair_N = mkN "" ; -lin hand_N = mkN "kéz" ; --- lin harbour_N = mkN "" ; --- lin hat_N = mkN "" ; --- lin hate_V2 = mkV2 "" ; -lin head_N = mkN "fej" ; --- lin hear_V2 = mkV2 "" ; --- lin heart_N = mkN "" ; --- lin heavy_A = mkA "" ; --- lin hill_N = mkN "" ; --- lin hit_V2 = mkV2 "" ; --- lin hold_V2 = mkV2 "" ; --- lin hope_VS = mkV "" ; --- lin horn_N = mkN "" ; -lin horse_N = mkN "ló" ; --- lin hot_A = mkA "" ; -lin house_N = mkN "ház" ; --- lin hunt_V2 = mkV2 "" ; --- lin husband_N = mkN "" ; - --------- --- I - K - --- lin ice_N = mkN "" ; --- lin industry_N = mkN "" ; --- lin iron_N = mkN "" ; --- lin john_PN = mkPN "" ; --- lin jump_V = mkV "" ; --- lin kill_V2 = mkV2 "" ; --- lin king_N = mkN "" ; --- lin knee_N = mkN "" ; --- lin know_V2 = mkV2 "" ; --- lin know_VQ = mkVQ "" ; --- lin know_VS = mkV "" ; - - ----- --- L - --- lin lake_N = mkN "" ; --- lin lamp_N = mkN "" ; --- lin language_N = mkN "" ; --- lin laugh_V = mkV "" ; --- lin leaf_N = mkN "" ; --- lin learn_V2 = mkV2 "" ; --- lin leather_N = mkN "" ; --- lin leave_V2 = mkV2 "" ; --- lin leg_N = mkN "" ; --- lin lie_V = mkV "" ; --- lin like_V2 = mkV2 "" ; --- lin listen_V2 = mkV2 "" ; --- lin live_V = mkV ""; --- lin liver_N = mkN "" ; --- lin long_A = mkA "" ; --- lin lose_V2 = mkV2 "" ; --- lin louse_N = mkN "" ; --- lin love_N = mkN "" ; --- lin love_V2 = mkV2 "" ; - ----- --- M - -lin man_N = mkN "férfi" "ak" harmA ; -- force plural allomorph and a-harmony --- lin married_A2 = mkA "" ; --- lin meat_N = mkN "" ; --- lin milk_N = mkN "" ; --- lin moon_N = mkN "" ; -lin mother_N2 = mkN2 "anya" ; --- lin mountain_N = mkN "" ; --- lin mouth_N = mkN "" ; --- lin music_N = mkN "" ; - ----- --- N - -lin name_N = mkN "név" ; --- lin narrow_A = mkA "" ; --- lin near_A = mkA "" ; --- lin neck_N = mkN "" ; --- lin new_A = mkA "" ; --- lin newspaper_N = mkN "" ; --- lin night_N = mkN "" ; --- lin nose_N = mkN "" ; -lin now_Adv = mkAdv "most" ; --- lin number_N = mkN "" ; --- --- -------- --- -- O - P --- --- -lin oil_N = mkN "olaj" ; --- lin old_A = mkA "" ; --- lin open_V2 = mkV2 "" ; --- lin paint_V2A = mkV2A "" ; --- lin paper_N = mkN "" ; --- lin paris_PN = mkPN "Paris" ; -lin peace_N = mkN "béke" ; --- lin pen_N = mkN "" ; -lin person_N = mkN "ember" ; --- lin planet_N = mkN "" ; --- lin plastic_N = mkN "" ; --- lin play_V = mkV "" ; --- lin policeman_N = mkN "" ; --- lin priest_N = mkN "" ; --- lin pull_V2 = mkV2 "" ; --- lin push_V2 = mkV2 "" ; --- lin put_V2 = mkV2 "" ; --- --- -------- --- -- Q - R --- --- lin queen_N = mkN "" ; -lin question_N = mkN "kérdés" ; --- lin radio_N = mkN "" ; --- lin rain_N = mkN "" ; --- lin rain_V0 = mkV "" ; --- lin read_V2 = mkV2 "" ; --- lin ready_A = mkA "" ; --- lin reason_N = mkN "" ; -lin red_A = mkA "piros" ; --- lin religion_N = mkN "" ; --- lin restaurant_N = mkN "" ; --- lin river_N = mkN "" ; -lin road_N = mkN "út" ; --- lin rock_N = mkN "" ; --- lin roof_N = mkN "" ; --- lin root_N = mkN "" ; --- lin rope_N = mkN "" ; --- lin rotten_A = mkA "" ; --- lin round_A = mkA "" ; --- lin rub_V2 = mkV2 "" ; --- lin rubber_N = mkN "" ; --- lin rule_N = mkN "" ; --- lin run_V = mkV "" ; - ----- --- S - --- lin salt_N = mkN "" ; --- lin sand_N = mkN "" ; --- lin say_VS = mkVS "" ; --- lin school_N = mkN "" ; --- lin science_N = mkN "" ; --- lin scratch_V2 = mkV2 "" ; --- lin sea_N = mkN "" ; -lin see_V2 = mkV2 "lát" ; --- lin seed_N = mkN "" ; --- lin seek_V2 = mkV2 "" ; --- lin sell_V3 = mkV3 "" ; --- lin send_V3 = mkV3 "" ; --- lin sew_V = mkV "" ; --- lin sharp_A = mkA "" ; --- lin sheep_N = mkN "" fem ; --- lin ship_N = mkN "" ; --- lin shirt_N = mkN "" ; -lin shoe_N = mkN "cipő" ; --- lin shop_N = mkN "" ; --- lin short_A = mkA "" ; --- lin silver_N = mkN "" ; --- lin sing_V = mkV "" ; --- lin sister_N = mkN "" ; --- lin sit_V = mkV "" ; --- lin skin_N = mkN "" ; --- lin sky_N = mkN "" ; --- lin sleep_V = mkV "" ; --- lin small_A = mkA "" ; --- lin smell_V = mkV "" ; --- lin smoke_N = mkN "" ; --- lin smooth_A = mkA "" ; --- lin snake_N = mkN "" ; --- lin snow_N = mkN "" ; --- lin sock_N = mkN "" ; --- lin song_N = mkN "" ; --- lin speak_V2 = mkV2 "" ; --- lin spit_V = mkV "" ; --- lin split_V2 = mkV2 "" ; --- lin squeeze_V2 = mkV2 "" ; --- lin stab_V2 = mkV2 "" ; --- lin stand_V = mkV "" ; --- lin star_N = mkN "" ; --- lin steel_N = mkN "" ; --- lin stick_N = mkN "" ; -lin stone_N = mkN "kő"; --- lin stop_V = mkV "" ; --- lin stove_N = mkN "" ; --- lin straight_A = mkA "" ; --- lin student_N = mkN "" ; --- lin stupid_A = mkA "" ; --- lin suck_V2 = mkV2 "" ; --- lin sun_N = mkN "" ; --- lin swell_V = mkV "" ; --- lin swim_V = mkV "" ; - ----- --- T - - -lin table_N = mkN "asztal" ; --- lin tail_N = mkN "" ; -lin talk_V3 = mkV3 "beszél" ; --- lin teach_V2 = mkV2 "" ; -lin teacher_N = mkN "tanár" ; --- lin television_N = mkN "" ; --- lin thick_A = mkA "" ; --- lin thin_A = mkA "" ; --- lin think_V = mkV "" ; --- lin throw_V2 = mkV2 "" ; --- lin tie_V2 = mkV2 "" ; -lin today_Adv = mkAdv "ma" ; --- lin tongue_N = mkN "" ; --- lin tooth_N = mkN "" ; --- lin train_N = mkN "" ; --- lin travel_V = mkV "" ; --- lin tree_N = mkN "" ; --- lin turn_V = mkV "" ; - --------- --- U - V - --- lin ugly_A = mkA "" ; --- lin uncertain_A = mkA "" ; --- lin understand_V2 = mkV2 "" ; --- lin university_N = mkN "" ; -lin village_N = mkN "falu" ; --- lin vomit_V = mkV2 "" ; - --------- --- W - Y - --- lin wait_V2 = mkV2 "" ; --- lin walk_V = mkV "" ; --- lin war_N = mkN "" ; --- lin warm_A = mkA "" ; --- lin wash_V2 = mkV2 "" ; --- lin watch_V2 = mkV2 "" ; -lin water_N = mkN "víz" ; --- lin wet_A = mkA "" ; --- lin white_A = mkA "" ; --- lin wide_A = mkA "" ; --- lin wife_N = mkN "" ; --- lin win_V2 = mkV2 "" ; --- lin wind_N = mkN "" ; -lin window_N = mkN "ablak" ; -lin wine_N = mkN "bor" ; --- lin wing_N = mkN "" ; --- lin wipe_V2 = mkV2 "" ; -lin woman_N = mkN "nő" "k" harmO ; --- lin wonder_VQ = mkVQ "" ; --- lin wood_N = mkN "" ; --- lin worm_N = mkN "" ; --- lin write_V2 = mkV2 "" ; --- lin year_N = mkN "" ; --- lin yellow_A = mkA "" ; --- lin young_A = mkA "" ; - -} diff --git a/src/hungarian/NounMorphoHun.gf b/src/hungarian/NounMorphoHun.gf index e06d02946..641f2fd34 100644 --- a/src/hungarian/NounMorphoHun.gf +++ b/src/hungarian/NounMorphoHun.gf @@ -29,7 +29,7 @@ oper mada = shorten madá ; -- shortens vowels a = last mada ; madara = mada + r + a ; - nMadara = mkNoun madara ; + nMadara = mkNounHarm (getHarm madara) "k" madara ; nMadár = mkNoun madár ; in {s = \\n,c => case of { -- All plural forms and Sg Acc use the "madara"/"neve" stem @@ -42,11 +42,6 @@ oper } ; } ; - -- TODO: actual paradigm - dSör : Str -> Noun = \sör -> - let foo : Str = "foo" ; - in mkNoun sör ; - --Handles words like "ló, kő" which are "lovak, kövek" in plural. dLó : Str -> Noun = \ló -> let lo = shorten ló ; @@ -77,10 +72,10 @@ oper let mo = last majom + last (init majom); maj = init (init majom) ; majmo = maj + mo ; - nMajmo = mkNoun majmo ; + nMajmo = mkNounHarm (getHarm majmo) "k" majmo ; nMajom = mkNoun majom ; in {s = \\n,c => case of { - => majmo + "kat" ; --Special case + -- => majmo + "kat" ; --Special case -- All plural forms and Sg Acc use the "majmo" stem | => nMajmo.s ! n ! c ; @@ -224,12 +219,15 @@ oper mkNounHarm (getHarm w) (pluralAllomorph w) w ; -- Harmony and plural allomorph given explicitly - mkNounHarm : Harm -> (plural : Str) -> Str -> Noun = \h,plural,w -> + mkNounHarm : Harm -> (plural : Str) -> Str -> Noun = mkNounHarmAcc True ; + + mkNounHarmAcc : (useAt : Bool) -> Harm -> (plural : Str) -> Str -> Noun = \useAt,h,plural,w -> let endCaseSg : Case -> HarmForms = case vowFinal w of { True => endCaseVow ; False => endCaseCons } ; - endCasePl : Case -> HarmForms = case plural of { - "ak" => endCaseConsAccAt ; -- TODO check + endCasePl : Case -> HarmForms = case of { + <"ak",_> => endCaseConsAccAt ; + <_,True> => endCaseConsAccAt ; _ => endCaseCons } ; -- Last consonant doubles before instrumental and translative lastCons : Str = case vowFinal w of {