From bf33191c88a623396baeca3f508918e69652e994 Mon Sep 17 00:00:00 2001 From: Meowyam Date: Wed, 30 Mar 2022 17:13:03 +0800 Subject: [PATCH] add kedua-dua (the two, etc.) to Det --- src/malay/NounMay.gf | 6 ++++-- src/malay/QuestionMay.gf | 3 ++- src/malay/ResMay.gf | 8 +++++--- src/malay/StructuralMay.gf | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/malay/NounMay.gf b/src/malay/NounMay.gf index 3f3b4966..65a33612 100644 --- a/src/malay/NounMay.gf +++ b/src/malay/NounMay.gf @@ -68,7 +68,8 @@ concrete NounMay of Noun = CatMay ** open ResMay, Prelude in { DetQuant quant num = quant ** { pr = num.s ; -- if it's not a number or digit, num.s is empty s = quant.s ; - n = num.n + n = num.n ; + count = "ke" ++ BIND ++ num.s ++ BIND ++ "-" ++ BIND ++ num.s; } ; -- : Quant -> Num -> Ord -> Det ; @@ -76,6 +77,7 @@ concrete NounMay of Noun = CatMay ** open ResMay, Prelude in { pr = num.s ; n = num.n ; s = ord.s ++ quant.s ; + count = "" ; } ; -- Whether the resulting determiner is singular or plural depends on the @@ -208,7 +210,7 @@ concrete NounMay of Noun = CatMay ** open ResMay, Prelude in { -- : Det -> NP -> NP ; CountNP det np = np ** { - s = \\pos => "ke" ++ BIND ++ linDet det ++ BIND ++ "-" ++ BIND ++ linDet det ++ np.s ! pos; + s = \\pos => det.count ++ np.s ! pos; } ; -- Nonsense for DefArt or IndefArt diff --git a/src/malay/QuestionMay.gf b/src/malay/QuestionMay.gf index 9544c90b..17d03521 100644 --- a/src/malay/QuestionMay.gf +++ b/src/malay/QuestionMay.gf @@ -21,7 +21,8 @@ lin -- if isPre is True, then: "berapa kucing" s = case iquant.isPre of { False => iquant.s ; True => [] }; -- if isPre is False, use s: "kucing berapa" - n = num.n + n = num.n ; + count = "" ; } ; -- : IP -> ClSlash -> QCl ; -- whom does John love diff --git a/src/malay/ResMay.gf b/src/malay/ResMay.gf index 66e9da43..4487d40f 100644 --- a/src/malay/ResMay.gf +++ b/src/malay/ResMay.gf @@ -87,6 +87,7 @@ oper Determiner : Type = Quant ** { pr : Str ; -- prefix for numbers n : NumType ; -- number as in 5 (noun in singular), Sg or Pl + count: Str ; } ; CardNum : Type = { @@ -130,16 +131,17 @@ oper sp = \\_ => str } ; - mkDet : Str -> Number -> Determiner = \str, num -> mkQuant str ** { + mkDet : Str -> Str -> Number -> Determiner = \cnt, str, num -> mkQuant str ** { pr = "" ; n = NoNum num ; + count = "" ; } ; - mkIdet : Str -> Str -> Number -> Bool -> Determiner = \str, standalone, num, isPre -> mkDet str num ** { + mkIdet : Str -> Str -> Str -> Number -> Bool -> Determiner = \cnt, str, standalone, num, isPre -> mkDet cnt str num ** { pr = case isPre of {True => str ; False => [] } ; -- if isPre is True, then: "berapa kucing" s = case isPre of { False => str ; True => [] }; - + count = cnt ; sp = \\_ => standalone ; } ; diff --git a/src/malay/StructuralMay.gf b/src/malay/StructuralMay.gf index ff737ef3..a2cb1cb7 100644 --- a/src/malay/StructuralMay.gf +++ b/src/malay/StructuralMay.gf @@ -56,7 +56,7 @@ lin and_Conj = {s2 = "dan" ; s1 = [] ; n = Pl} ; -- *Det and Quant -lin how8many_IDet = mkIdet "berapa" "berapa banyak" Sg True; +lin how8many_IDet = mkIdet "berapa" "berapa banyak" "" Sg True; {-} lin all_Predet = {s = ""} ; lin not_Predet = { s = "" } ;