diff --git a/src/korean/NounKor.gf b/src/korean/NounKor.gf index e15361e5..c9e71d78 100644 --- a/src/korean/NounKor.gf +++ b/src/korean/NounKor.gf @@ -7,7 +7,11 @@ concrete NounKor of Noun = CatKor ** open ResKor, Prelude in { --2 Noun phrases -- : Det -> CN -> NP - DetCN det cn = cn ** {s = \\c => det.s ++ cn.s ! c} ; + DetCN det cn = cn ** {s = + \\c => case det.n of { + -- Pl => det.s ++ cn.s ! Bare ++ BIND ++ plural ! c ; + _ => det.s ++ cn.s ! c } ; + } ; -- : PN -> NP ; -- UsePN pn = pn ** { @@ -45,8 +49,9 @@ concrete NounKor of Noun = CatKor ** open ResKor, Prelude in { -- Determiners can form noun phrases directly. -- : Det -> NP ; - -- DetNP det = emptyNP ** { - -- } ; + DetNP det = det ** { + s = det.sp + } ; -- MassNP : CN -> NP ; -- MassNP cn = useN cn ** { @@ -60,6 +65,7 @@ concrete NounKor of Noun = CatKor ** open ResKor, Prelude in { -- : Quant -> Num -> Det ; DetQuant quant num = quant ** { + s = quant.s ++ num.s ! Indep ; n = num.n } ; diff --git a/src/korean/ResKor.gf b/src/korean/ResKor.gf index e7956feb..9e07ee37 100644 --- a/src/korean/ResKor.gf +++ b/src/korean/ResKor.gf @@ -59,7 +59,8 @@ oper BaseQuant : Type = { s : Str ; - isPoss : Bool + isPoss : Bool ; + p : Phono } ; Determiner : Type = BaseQuant ** { @@ -90,8 +91,19 @@ oper baseQuant : BaseQuant = { s = [] ; isPoss = False ; + p = Vowel ; } ; + mkQuant : (s,sp : Str) -> Quant = \s,sp -> baseQuant ** { + s = s ; + sp = (mkNoun sp).s ; + p = (mkNoun sp).p ; + } ; + + plural : NForm => Str = table { + Bare => "들" ; + nf => "들" + allomorph nf "들" + } ; -------------------------------------------------------------------------------- -- Postpositions diff --git a/src/korean/StructuralKor.gf b/src/korean/StructuralKor.gf index b3418aae..93e9c842 100644 --- a/src/korean/StructuralKor.gf +++ b/src/korean/StructuralKor.gf @@ -69,11 +69,11 @@ lin much_Det = R.indefDet "" sg ; lin somePl_Det = lin someSg_Det = - lin no_Quant = -lin that_Quant = -lin this_Quant = -lin which_IQuant = +-} +lin that_Quant = mkQuant "그" "그것" ; +lin this_Quant = mkQuant "이" "이것" ; +{-lin which_IQuant = -----