diff --git a/lab1/grammar/korean/MicroLangKor.gf b/lab1/grammar/korean/MicroLangKor.gf index 532b67f..685773e 100644 --- a/lab1/grammar/korean/MicroLangKor.gf +++ b/lab1/grammar/korean/MicroLangKor.gf @@ -70,7 +70,7 @@ lin city_N = mkN "city" ; -- lin clever_A = mkA "똑똑한" ; lin cloud_N = mkN "cloud" ; -- lin cold_A = mkA "차가운" ; --- lin come_V = mkV "come" "came" "come" ; +lin come_V = regVerb_ao "오다" ; lin computer_N = mkN "컴퓨터" ; lin cow_N = mkN "cow" ; -- lin dirty_A = mkA "더러운" ; @@ -114,7 +114,7 @@ lin river_N = mkN "river" ; lin sea_N = mkN "바다" ; -- lin see_V2 = mkV2 (mkV "see" "saw" "seen") ; lin ship_N = mkN "ship" ; --- lin sleep_V = mkV "자" ; +lin sleep_V = regVerb_ao "자다" ; -- lin small_A = mkA "작은" ; lin star_N = mkN "별" ; -- lin swim_V = mkV "swim" "swam" "swum" ; diff --git a/lab1/grammar/korean/MicroResKor.gf b/lab1/grammar/korean/MicroResKor.gf index a1fd20e..7501d1c 100644 --- a/lab1/grammar/korean/MicroResKor.gf +++ b/lab1/grammar/korean/MicroResKor.gf @@ -11,9 +11,28 @@ resource MicroResKor = open Prelude in { lemmaToStem : (lemma : Str) -> Str = \lemma -> case lemma of { stem + "다" => stem ; - _ => Predef.error ("lemmaToStem was applied to a non-lemma, " ++ lemma) + _ => Predef.error ("lemmaToStem was applied to a non-lemma," ++ lemma) } ; - -- regVerb_eo : (lemma : Str) -> Verb - + regVerb_eo : (lemma : Str) -> Verb + = \lemma -> + let stem = lemmaToStem lemma ; + in { + s = table { + Lemma => lemma ; + VPresent => stem + "어요" ; + VPast => stem + "었어요" + } + } ; + + regVerb_ao : (lemma : Str) -> Verb + = \lemma -> + let stem = lemmaToStem lemma ; + in { + s = table { + Lemma => lemma ; + VPresent => stem + "아요" ; + VPast => stem + "았어요" + } + } ; }