diff --git a/src/korean/LexiconKor.gf b/src/korean/LexiconKor.gf index 11e46d857..e2783bc58 100644 --- a/src/korean/LexiconKor.gf +++ b/src/korean/LexiconKor.gf @@ -59,7 +59,7 @@ lin bread_N = mkN "빵" ; -- lin camera_N = mkN "" ; -- lin cap_N = mkN "" ; --- lin car_N = mkN "" ; +lin car_N = mkN "자동차" "대" ; -- lin carpet_N = mkN "" ; lin cat_N = mkN "고양이" ; -- lin ceiling_N = mkN "" ; @@ -258,7 +258,7 @@ lin now_Adv = mkAdv "지금" ; -- lin paris_PN = mkPN "Paris" ; -- lin peace_N = mkN "" ; -- lin pen_N = mkN "" ; -lin person_N = mkN "사람" ; +lin person_N = mkN "사람" "명" ; -- lin planet_N = mkN "" ; -- lin plastic_N = mkN "" ; -- lin play_V = mkV "" ; @@ -314,7 +314,7 @@ lin see_V2 = mkV2 "보다" ; -- lin sharp_A = mkA "" ; -- lin sheep_N = mkN "" fem ; -- lin ship_N = mkN "" ; -lin shirt_N = mkN "셔츠" ; +lin shirt_N = mkN "셔츠" "벌" ; -- lin shoe_N = mkN "" ; -- lin shop_N = mkN "" ; lin short_A = mkA "키가" small_A ; -- "height is small" diff --git a/src/korean/NounKor.gf b/src/korean/NounKor.gf index 8c5693471..83f06e7df 100644 --- a/src/korean/NounKor.gf +++ b/src/korean/NounKor.gf @@ -10,8 +10,8 @@ concrete NounKor of Noun = CatKor ** open ResKor, Prelude in { DetCN det cn = cn ** {s = \\c => let cns : Str = case det.n of { - -- Pl => cn.s ! Bare ++ BIND ++ plural ! c ; - _Sg => cn.s ! c } ; + Pl => cn.s ! Bare ++ BIND ++ plural ! c ; + Sg => cn.s ! c } ; dets : Str = det.s ! cn.c.origin ; detnum : Str = case det.numtype of { IsNum => dets ++ cn.c.s ; diff --git a/src/korean/ParadigmsKor.gf b/src/korean/ParadigmsKor.gf index cfa77008b..185cb147d 100644 --- a/src/korean/ParadigmsKor.gf +++ b/src/korean/ParadigmsKor.gf @@ -15,11 +15,16 @@ oper object : CaseParticle ; -- 을 or 를 noCase : CaseParticle ; -- No case particle + NumOrigin : Type ; -- Arguments to give to N + nativeKorean : NumOrigin ; -- Native Korean variant of numerals: 하나, 둘, 셋 , … + sinoKorean : NumOrigin ; -- Sino-Korean variant of numerals: 일, 이, 삼 + --2 Nouns mkN : overload { - mkN : (noun : Str) -> N ; -- Predictable nouns with classifier 개 - mkN : (noun,counter : Str) -> N ; -- Noun and classifier given as arguments. + mkN : (noun : Str) -> N ; -- Predictable nouns with classifier 개. When quantified by a numeral, the numeral is of native Korean origin: 하나/둘/셋 , not 일/이/삼. + mkN : (noun,counter : Str) -> N ; -- Noun and classifier given as arguments. Takes numerals of native Korean origin. + mkN : (noun,counter : Str) -> NumOrigin -> N ; -- Noun, classifier and origin of numerals. E.g. `mkN "사람" "명" nativeKorean` } ; --2 Adjectives @@ -114,15 +119,20 @@ oper object = Object ; noCase = Bare ; + NumOrigin : Type = ResKor.NumOrigin ; + nativeKorean = NK ; + sinoKorean = SK ; + mkN = overload { mkN : Str -> N = \s -> lin N (mkNoun s) ; - mkN : (noun,counter : Str) -> N = \n,c -> - let noun : Noun = mkNoun n ; - counter : Counter = mkCounter c ; - in lin N (noun ** {c = counter}) ; - + mkN : (noun,counter : Str) -> N = \n,c -> mkNCounter n c nativeKorean ; + mkN : (noun,counter : Str) -> NumOrigin -> N = mkNCounter } ; + mkNCounter : (noun,counter : Str) -> NumOrigin -> N = \n,c,o -> + let noun : Noun = mkNoun n ; + counter : Counter = mkCounter c o ; + in lin N (noun ** {c = counter}) ; mkN2 = overload { mkN2 : Str -> N2 = \s -> lin N2 (mkNoun s) ; diff --git a/src/korean/ParamKor.gf b/src/korean/ParamKor.gf index b1811c199..24832b20a 100644 Binary files a/src/korean/ParamKor.gf and b/src/korean/ParamKor.gf differ diff --git a/src/korean/ResKor.gf b/src/korean/ResKor.gf index e8907c245..59bf669a1 100644 --- a/src/korean/ResKor.gf +++ b/src/korean/ResKor.gf @@ -13,8 +13,9 @@ oper origin = NK } ; - mkCounter : Str -> Counter = \s -> baseCounter ** { + mkCounter : Str -> NumOrigin -> Counter = \s,o -> baseCounter ** { s = s ; + origin = o ; } ; BaseNoun : Type = {