add kedua-dua (the two, etc.) to Det

This commit is contained in:
Meowyam
2022-03-30 17:13:03 +08:00
parent 9fa07fb22d
commit bf33191c88
4 changed files with 12 additions and 7 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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 ;
} ;

View File

@@ -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 = "" } ;