From 703695b2cb8f69ece4b8d5241fa1a0fdf76b3736 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Mon, 23 Mar 2020 14:23:54 +0100 Subject: [PATCH] (Kor) Add param Phono for combining particles with nouns --- src/korean/CatKor.gf | 2 +- src/korean/NounKor.gf | 2 +- src/korean/ParamKor.gf | 2 ++ src/korean/ResKor.gf | 6 ++++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/korean/CatKor.gf b/src/korean/CatKor.gf index 55c38df2..0038c46f 100644 --- a/src/korean/CatKor.gf +++ b/src/korean/CatKor.gf @@ -62,7 +62,7 @@ concrete CatKor of Cat = CommonX ** open ResKor, Prelude in { NP = ResKor.NounPhrase ; Pron = ResKor.Pronoun ; --Pronouns need enough info to turn it into NP or Quant. Det = ResKor.Determiner ; - Predet = SS ; + Predet = {s : Phono => Str ; p : Phono} ; Quant = ResKor.Quant ; Num = ResKor.Num ; Ord = { diff --git a/src/korean/NounKor.gf b/src/korean/NounKor.gf index ab79d4f0..c472c68a 100644 --- a/src/korean/NounKor.gf +++ b/src/korean/NounKor.gf @@ -7,7 +7,7 @@ concrete NounKor of Noun = CatKor ** open ResKor, Prelude in { --2 Noun phrases -- : Det -> CN -> NP - DetCN det cn = {s = \\c => det.s ++ cn.s ! c} ; + DetCN det cn = cn ** {s = \\c => det.s ++ cn.s ! c} ; -- : PN -> NP ; -- UsePN pn = pn ** { diff --git a/src/korean/ParamKor.gf b/src/korean/ParamKor.gf index 544e38ad..ba92398a 100644 --- a/src/korean/ParamKor.gf +++ b/src/korean/ParamKor.gf @@ -37,6 +37,8 @@ param | Object -- 을 or 를 ; + Phono = Vowel | Consonant ; -- Whether the word ends in vowel or consonant. + oper allomorph : NForm -> Str -> Str = \nf,s -> diff --git a/src/korean/ResKor.gf b/src/korean/ResKor.gf index 8182bb47..8c3f6c97 100644 --- a/src/korean/ResKor.gf +++ b/src/korean/ResKor.gf @@ -5,7 +5,8 @@ resource ResKor = ParamKor ** open Prelude, Predef, ParamKor in { oper Noun : Type = { - s : NForm => Str + s : NForm => Str ; + p : Phono } ; Noun2 : Type = Noun ; -- TODO eventually more parameters? Noun3 : Type = Noun ; @@ -16,7 +17,8 @@ oper PNoun : Type = Noun ; mkNoun : Str -> Noun = \str -> { - s = \\cas => str + allomorph cas str + s = \\cas => str + allomorph cas str ; + p = if_then_else Phono (vowFinal str) Vowel Consonant ; } ; useN : Noun -> CNoun = \n -> n ;