From 93bc02834a74f38b52e21d4603176b9f8a668cfd Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 21 Sep 2026 14:16:05 +0200 Subject: [PATCH] added gender forms of one --- src/telugu/CatTel.gf | 7 +++-- src/telugu/NounTel.gf | 25 ++++++---------- src/telugu/NumeralTel.gf | 63 ++++++++++++++++++++------------------- src/telugu/PhraseTel.gf | 1 + src/telugu/QuestionTel.gf | 2 +- 5 files changed, 48 insertions(+), 50 deletions(-) diff --git a/src/telugu/CatTel.gf b/src/telugu/CatTel.gf index 1428a84a..aed352a4 100644 --- a/src/telugu/CatTel.gf +++ b/src/telugu/CatTel.gf @@ -47,15 +47,16 @@ concrete CatTel of Cat = CommonX ** open ResTel, Prelude in { Pron = {s : PronCase => Str ; a : Agr} ; Det = {s : Gender => Case => Str ; n : Number} ; Predet, Ord = {s : Str} ; - Num = {s : Str ; n : Number} ; - Card, ACard = {s : Str; n : Number} ; + Num, Card = {s : Gender => Str ; n : Number} ; + ACard = {s : Str; n : Number} ; DAP = {s : Gender => Case => Str ; n : Number} ; Quant = {s : Number => Gender => Case => Str} ; Art = {s : Str} ; -- ---- Numeral -- - Numeral, Digits, Decimal = {s : Str ; n : Number} ; + Numeral = {s : Gender => Str ; n : Number} ; + Digits, Decimal = {s : Str ; n : Number} ; LN, GN, SN = {s : Str} ; -- ---- Structural diff --git a/src/telugu/NounTel.gf b/src/telugu/NounTel.gf index 15987041..c5a35626 100644 --- a/src/telugu/NounTel.gf +++ b/src/telugu/NounTel.gf @@ -30,35 +30,28 @@ concrete NounTel of Noun = CatTel ** open ResTel, Prelude in { } ; DetQuantOrd quant num ord = { - s = \\g,c => quant.s ! num.n ! g ! c ++ num.s ++ ord.s ; + s = \\g,c => quant.s ! num.n ! g ! c ++ num.s ! Neutr ++ ord.s ; n = num.n } ; DetQuant quant num = { - s = \\g,c => quant.s ! num.n ! g ! c ++ num.s ; + s = \\g,c => quant.s ! num.n ! g ! c ++ num.s ! g ; n = num.n } ; PossPron p = {s = \\_,_,_ => p.s ! PPoss} ; - NumSg = {s = []; n = Sg} ; - NumPl = {s = []; n = Pl} ; + NumSg = {s = \\_ => [] ; n = Sg} ; + NumPl = {s = \\_ => [] ; n = Pl} ; OrdSuperl a = {s = "అత్యంత" ++ a.s ! Masc ! Sg ! Dir} ; - NumCard n = {s = n.s ; n = Pl} ; - NumDecimal n = {s = n.s ; n = n.n} ; - AdNum adn card = {s = adn.s ++ card.s ; n = card.n} ; - OrdNumeral numeral = {s = numeral.s} ; + NumCard n = n ; + NumDecimal n = {s = \\_ => n.s ; n = n.n} ; + AdNum adn card = {s = \\g => adn.s ++ card.s ! g ; n = card.n} ; + OrdNumeral numeral = {s = numeral.s ! Neutr} ; OrdDigits digits = {s = digits.s ++ "వ"} ; - NumNumeral numeral = {s = numeral.s ; n = Pl} ; - - DetArtOrd art num ord = { - s = art.s ++ num.s ++ ord.s ; - n = num.n - } ; --- - DetArtCard art card = {s = art.s ++ card.s ; n = card.n} ; + NumNumeral numeral = numeral ; DetDAP det = {s = det.s ; n = det.n} ; AdjDAP dap ap = { diff --git a/src/telugu/NumeralTel.gf b/src/telugu/NumeralTel.gf index 98924bd0..72796753 100644 --- a/src/telugu/NumeralTel.gf +++ b/src/telugu/NumeralTel.gf @@ -1,47 +1,50 @@ concrete NumeralTel of Numeral = CatTel [Numeral,Digits] ** open ResTel in { lincat Digit, Sub10, Sub100, Sub1000, Sub1000000, - Sub1000000000, Sub1000000000000 = {s : Str ; n : Number} ; + Sub1000000000, Sub1000000000000 = {s : Gender => Str ; n : Number} ; Dig = {s : Str} ; lin num x = x ; - n2 = {s = "రెండు" ; n = Pl} ; - n3 = {s = "మూడు" ; n = Pl} ; - n4 = {s = "నాలుగు" ; n = Pl} ; - n5 = {s = "ఐదు" ; n = Pl} ; - n6 = {s = "ఆరు" ; n = Pl} ; - n7 = {s = "ఏడు" ; n = Pl} ; - n8 = {s = "ఎనిమిది" ; n = Pl} ; - n9 = {s = "తొమ్మిది" ; n = Pl} ; + n2 = {s = \\_ => "రెండు" ; n = Pl} ; + n3 = {s = \\_ => "మూడు" ; n = Pl} ; + n4 = {s = \\_ => "నాలుగు" ; n = Pl} ; + n5 = {s = \\_ => "ఐదు" ; n = Pl} ; + n6 = {s = \\_ => "ఆరు" ; n = Pl} ; + n7 = {s = \\_ => "ఏడు" ; n = Pl} ; + n8 = {s = \\_ => "ఎనిమిది" ; n = Pl} ; + n9 = {s = \\_ => "తొమ్మిది" ; n = Pl} ; - pot01 = {s = "ఒకటి" ; n = Sg} ; + pot01 = { + s = table {Masc => "ఒకడు" ; Fem => "ఒకతె" ; Neutr => "ఒక"} ; + n = Sg + } ; pot0 d = d ; pot0as1 x = x ; - pot110 = {s = "పది" ; n = Pl} ; - pot111 = {s = "పదకొండు" ; n = Pl} ; - pot1to19 d = {s = "పది" ++ d.s ; n = Pl} ; - pot1 d = {s = d.s ++ "పది" ; n = Pl} ; - pot1plus d x = {s = d.s ++ "పది" ++ x.s ; n = Pl} ; + pot110 = {s = \\_ => "పది" ; n = Pl} ; + pot111 = {s = \\_ => "పదకొండు" ; n = Pl} ; + pot1to19 d = {s = \\_ => ("పది" ++ d.s ! Neutr) ; n = Pl} ; + pot1 d = {s = \\_ => (d.s ! Neutr ++ "పది") ; n = Pl} ; + pot1plus d x = {s = \\_ => (d.s ! Neutr ++ "పది" ++ x.s ! Neutr) ; n = Pl} ; pot1as2 x = x ; - pot21 = {s = "వంద" ; n = Pl} ; - pot2 x = {s = x.s ++ "వందలు" ; n = Pl} ; - pot2plus x y = {s = x.s ++ "వందలు" ++ y.s ; n = Pl} ; + pot21 = {s = \\_ => "వంద" ; n = Pl} ; + pot2 x = {s = \\_ => (x.s ! Neutr ++ "వందలు") ; n = Pl} ; + pot2plus x y = {s = \\_ => (x.s ! Neutr ++ "వందలు" ++ y.s ! Neutr) ; n = Pl} ; pot2as3 x = x ; - pot31 = {s = "వెయ్యి" ; n = Pl} ; - pot3 x = {s = x.s ++ "వేలు" ; n = Pl} ; - pot3plus x y = {s = x.s ++ "వేలు" ++ y.s ; n = Pl} ; + pot31 = {s = \\_ => "వెయ్యి" ; n = Pl} ; + pot3 x = {s = \\_ => (x.s ! Neutr ++ "వేలు") ; n = Pl} ; + pot3plus x y = {s = \\_ => (x.s ! Neutr ++ "వేలు" ++ y.s ! Neutr) ; n = Pl} ; pot3as4 x = x ; - pot3decimal x = {s = x.s ++ "వేలు" ; n = Pl} ; - pot41 = {s = "పది లక్షలు" ; n = Pl} ; - pot4 x = {s = x.s ++ "పది లక్షలు" ; n = Pl} ; - pot4plus x y = {s = x.s ++ "పది లక్షలు" ++ y.s ; n = Pl} ; + pot3decimal x = {s = \\_ => (x.s ++ "వేలు") ; n = Pl} ; + pot41 = {s = \\_ => "పది లక్షలు" ; n = Pl} ; + pot4 x = {s = \\_ => (x.s ! Neutr ++ "పది లక్షలు") ; n = Pl} ; + pot4plus x y = {s = \\_ => (x.s ! Neutr ++ "పది లక్షలు" ++ y.s ! Neutr) ; n = Pl} ; pot4as5 x = x ; - pot4decimal x = {s = x.s ++ "పది లక్షలు" ; n = Pl} ; - pot51 = {s = "వంద కోట్లు" ; n = Pl} ; - pot5 x = {s = x.s ++ "వంద కోట్లు" ; n = Pl} ; - pot5plus x y = {s = x.s ++ "వంద కోట్లు" ++ y.s ; n = Pl} ; - pot5decimal x = {s = x.s ++ "వంద కోట్లు" ; n = Pl} ; + pot4decimal x = {s = \\_ => (x.s ++ "పది లక్షలు") ; n = Pl} ; + pot51 = {s = \\_ => "వంద కోట్లు" ; n = Pl} ; + pot5 x = {s = \\_ => (x.s ! Neutr ++ "వంద కోట్లు") ; n = Pl} ; + pot5plus x y = {s = \\_ => (x.s ! Neutr ++ "వంద కోట్లు" ++ y.s ! Neutr) ; n = Pl} ; + pot5decimal x = {s = \\_ => (x.s ++ "వంద కోట్లు") ; n = Pl} ; IDig d = {s = d.s ; n = Pl} ; IIDig d ds = {s = d.s ++ ds.s ; n = Pl} ; diff --git a/src/telugu/PhraseTel.gf b/src/telugu/PhraseTel.gf index 38cd01aa..7e48f1b0 100644 --- a/src/telugu/PhraseTel.gf +++ b/src/telugu/PhraseTel.gf @@ -10,6 +10,7 @@ concrete PhraseTel of Phrase = CatTel ** open Prelude, ResTel in { UttVP vp = {s = let f = vp.s ! Pos ! VPInf in f.inf ++ f.fin} ; UttAdv adv = adv ; UttIP ip = {s = ip.s ! Dir} ; + UttCard card = {s = card.s ! Neutr} ; UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! Sg} ; UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ; UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ; diff --git a/src/telugu/QuestionTel.gf b/src/telugu/QuestionTel.gf index 11f66e07..1ec1d462 100644 --- a/src/telugu/QuestionTel.gf +++ b/src/telugu/QuestionTel.gf @@ -14,7 +14,7 @@ concrete QuestionTel of Question = CatTel ** open ResTel, Prelude in { AdvIAdv iadv adv = {s = adv.s ++ iadv.s} ; IdetCN idet cn = {s = \\c => idet.s ++ cn.s ! idet.n ! c ; n = idet.n} ; IdetIP idet = {s = \\_ => idet.s ; n = idet.n} ; - IdetQuant iq num = {s = iq.s ! num.n ++ num.s ; n = num.n} ; + IdetQuant iq num = {s = iq.s ! num.n ++ num.s ! Neutr ; n = num.n} ; CompIAdv adv = {s = adv.s} ; CompIP ip = {s = ip.s ! Dir} ; }