diff --git a/src/korean/ResKor.gf b/src/korean/ResKor.gf index 925f28c20..dca524386 100644 --- a/src/korean/ResKor.gf +++ b/src/korean/ResKor.gf @@ -13,9 +13,12 @@ oper origin = NK } ; - Noun : Type = { + BaseNoun : Type = { s : NForm => Str ; p : Phono ; + } ; + + Noun : Type = BaseNoun ** { c : Counter ; } ; Noun2 : Type = Noun ; -- TODO eventually more parameters? @@ -25,8 +28,6 @@ oper rs : Str ; -- Relative clause comes before determiner } ; - PNoun : Type = Noun ; - mkNoun : Str -> Noun = \str -> { s = \\cas => str + allomorph cas str ; p = if_then_else Phono (vowFinal str) Vowel Consonant ; @@ -40,34 +41,25 @@ oper --------------------------------------------- -- NP - -- BaseNP : Type = { - -- a : Agreement ; - -- isPron : Bool ; - -- empty : Str ; -- standard trick for pro-drop - -- } ; - -- - -- emptyNP : NounPhrase = { - -- s = \\_ => [] ; - -- a = Sg3 Masc ; - -- isPron = False ; - -- empty = [] ; - -- } ; - -- - -- indeclNP : Str -> NounPhrase = \s -> emptyNP ** {s = \\c => s} ; - - --NounPhrase : Type = BaseNP ** {s : NForm => Str} ; - NounPhrase = Noun ; + NounPhrase = BaseNoun ** { + -- empty : Str ; -- standard trick for pro-drop + } ; -------------------------------------------------------------------------------- -- Pronouns - Pronoun : Type = NounPhrase ** { - -- poss : { -- for PossPron : Pron -> Quant - -- } ; - sp : NForm => Str ; + Pronoun : Type = BaseNoun ** { + poss : Quant ; } ; - + mkPron = overload { + mkPron : (stem,poss : Str) -> Pronoun = \s,poss -> mkNoun s ** { + poss = mkQuant poss (poss ++ "것") ; + } ; + mkPron : (stem : Str) -> Pronoun = \s -> mkNoun s ** { + poss = mkQuant (s + "의") (s + "의" ++ "것") ; + } + } ; -------------------------------------------------------------------------------- -- Det, Quant, Card, Ord diff --git a/src/korean/StructuralKor.gf b/src/korean/StructuralKor.gf index ec2587720..4123c7e21 100644 --- a/src/korean/StructuralKor.gf +++ b/src/korean/StructuralKor.gf @@ -129,13 +129,15 @@ lin to_Prep = mkPrep "에"; -- Pronouns are closed class, no constructor in ParadigmsKor. -- it_Pron = - -- i_Pron = - -- youPol_Pron, - -- youSg_Pron = - -- he_Pron = - -- she_Pron = + i_Pron = let iReg : Pronoun = mkPron "저" "제" in + iReg ** {s = table {Subj => "제가"; nf => iReg.s ! nf} + } ; + youPol_Pron = mkPron "당신" ; + youSg_Pron = mkPron "너" ; -- NB. this is very informal, best not used + he_Pron = mkPron "그" ; + she_Pron = mkPron "그녀" ; -- we_Pron = - -- youPl_Pron = + youPl_Pron = mkPron "너희" ; -- they_Pron = --lin whatPl_IP = ;