From 9f59998ef219417196ad693246ca82109afded0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Madeleine=20Sydney=20=C5=9Alaga?= Date: Sat, 7 Feb 2026 18:57:59 -0700 Subject: [PATCH] --- .gitignore | 1 + lab1/grammar/korean/MicroLangKor.gf | 20 +++++++++----------- lab1/grammar/korean/MicroResKor.gf | 9 ++------- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 49d5a98..dd23b98 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.gfo +.gf-lsp .direnv \ No newline at end of file diff --git a/lab1/grammar/korean/MicroLangKor.gf b/lab1/grammar/korean/MicroLangKor.gf index c283951..356e8b8 100644 --- a/lab1/grammar/korean/MicroLangKor.gf +++ b/lab1/grammar/korean/MicroLangKor.gf @@ -10,7 +10,7 @@ concrete MicroLangKor of MicroLang = open MicroResKor, Prelude in { S = {s : Str} ; VP = {verb : Verb ; compl : Str} ; ---s special case of Mini - Comp = {s : Str} ; + Comp = Noun ; AP = Adjective ; CN = Noun ; NP = {s : Str} ; @@ -26,6 +26,7 @@ concrete MicroLangKor of MicroLang = open MicroResKor, Prelude in { lin UttS s = s ; UttNP np = {s = np.s} ; + -- PredVPS np vp = {s = np.s ++ vp.compl ++ vp.verb.s} ; UseV v = {verb = v ; compl = []} ; ComplV2 v2 np = {verb = v2 ; compl = np.s}; UseN n = n ; @@ -140,12 +141,8 @@ oper mkN : Str -> Noun = \s -> lin N {s = s} ; - mkA : Str -> A - = \stem -> lin A { - stem = stem ; - reg = Regular ; - t = Descriptive - } ; + -- mkA : Str -> A + -- = \stem -> lin A (mkV stem) ; mkAdv : Str -> Adv = \s -> lin Adv {s = s} ; @@ -155,9 +152,10 @@ oper mkV = overload { mkV : Str -> V = \stem -> lin V { - stem = stem ; - reg = Regular ; - t = Action - }; + s = table { + VPresent => stem + "어요" ; + VPast => stem + "었어요" + } + } } ; } diff --git a/lab1/grammar/korean/MicroResKor.gf b/lab1/grammar/korean/MicroResKor.gf index 9ed5279..1921938 100644 --- a/lab1/grammar/korean/MicroResKor.gf +++ b/lab1/grammar/korean/MicroResKor.gf @@ -1,15 +1,10 @@ resource MicroResKor = open Prelude in { param - Regularity = Regular | PieupIrregular ; - VerbType = Action | Descriptive ; + VForm = VPresent | VPast ; oper Noun : Type = {s : Str} ; - Verb : Type = { - reg : Regularity ; - stem : Str ; - t : VerbType - } ; + Verb : Type = {s : VForm => Str} ; Verb2 : Type = Verb ; Adjective : Type = Verb ; }