added gender forms of one

This commit is contained in:
Krasimir Angelov
2026-09-21 14:16:05 +02:00
parent 0196d3006f
commit 93bc02834a
5 changed files with 48 additions and 50 deletions
+4 -3
View File
@@ -47,15 +47,16 @@ concrete CatTel of Cat = CommonX ** open ResTel, Prelude in {
Pron = {s : PronCase => Str ; a : Agr} ; Pron = {s : PronCase => Str ; a : Agr} ;
Det = {s : Gender => Case => Str ; n : Number} ; Det = {s : Gender => Case => Str ; n : Number} ;
Predet, Ord = {s : Str} ; Predet, Ord = {s : Str} ;
Num = {s : Str ; n : Number} ; Num, Card = {s : Gender => Str ; n : Number} ;
Card, ACard = {s : Str; n : Number} ; ACard = {s : Str; n : Number} ;
DAP = {s : Gender => Case => Str ; n : Number} ; DAP = {s : Gender => Case => Str ; n : Number} ;
Quant = {s : Number => Gender => Case => Str} ; Quant = {s : Number => Gender => Case => Str} ;
Art = {s : Str} ; Art = {s : Str} ;
-- --
---- Numeral ---- 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} ; LN, GN, SN = {s : Str} ;
-- --
---- Structural ---- Structural
+9 -16
View File
@@ -30,35 +30,28 @@ concrete NounTel of Noun = CatTel ** open ResTel, Prelude in {
} ; } ;
DetQuantOrd quant num ord = { 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 n = num.n
} ; } ;
DetQuant quant num = { 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 n = num.n
} ; } ;
PossPron p = {s = \\_,_,_ => p.s ! PPoss} ; PossPron p = {s = \\_,_,_ => p.s ! PPoss} ;
NumSg = {s = []; n = Sg} ; NumSg = {s = \\_ => [] ; n = Sg} ;
NumPl = {s = []; n = Pl} ; NumPl = {s = \\_ => [] ; n = Pl} ;
OrdSuperl a = {s = "అత్యంత" ++ a.s ! Masc ! Sg ! Dir} ; OrdSuperl a = {s = "అత్యంత" ++ a.s ! Masc ! Sg ! Dir} ;
NumCard n = {s = n.s ; n = Pl} ; NumCard n = n ;
NumDecimal n = {s = n.s ; n = n.n} ; NumDecimal n = {s = \\_ => n.s ; n = n.n} ;
AdNum adn card = {s = adn.s ++ card.s ; n = card.n} ; AdNum adn card = {s = \\g => adn.s ++ card.s ! g ; n = card.n} ;
OrdNumeral numeral = {s = numeral.s} ; OrdNumeral numeral = {s = numeral.s ! Neutr} ;
OrdDigits digits = {s = digits.s ++ "వ"} ; OrdDigits digits = {s = digits.s ++ "వ"} ;
NumNumeral numeral = {s = numeral.s ; n = Pl} ; NumNumeral numeral = numeral ;
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} ;
DetDAP det = {s = det.s ; n = det.n} ; DetDAP det = {s = det.s ; n = det.n} ;
AdjDAP dap ap = { AdjDAP dap ap = {
+33 -30
View File
@@ -1,47 +1,50 @@
concrete NumeralTel of Numeral = CatTel [Numeral,Digits] ** open ResTel in { concrete NumeralTel of Numeral = CatTel [Numeral,Digits] ** open ResTel in {
lincat lincat
Digit, Sub10, Sub100, Sub1000, Sub1000000, Digit, Sub10, Sub100, Sub1000, Sub1000000,
Sub1000000000, Sub1000000000000 = {s : Str ; n : Number} ; Sub1000000000, Sub1000000000000 = {s : Gender => Str ; n : Number} ;
Dig = {s : Str} ; Dig = {s : Str} ;
lin lin
num x = x ; num x = x ;
n2 = {s = "రెండు" ; n = Pl} ; n2 = {s = \\_ => "రెండు" ; n = Pl} ;
n3 = {s = "మూడు" ; n = Pl} ; n3 = {s = \\_ => "మూడు" ; n = Pl} ;
n4 = {s = "నాలుగు" ; n = Pl} ; n4 = {s = \\_ => "నాలుగు" ; n = Pl} ;
n5 = {s = "ఐదు" ; n = Pl} ; n5 = {s = \\_ => "ఐదు" ; n = Pl} ;
n6 = {s = "ఆరు" ; n = Pl} ; n6 = {s = \\_ => "ఆరు" ; n = Pl} ;
n7 = {s = "ఏడు" ; n = Pl} ; n7 = {s = \\_ => "ఏడు" ; n = Pl} ;
n8 = {s = "ఎనిమిది" ; n = Pl} ; n8 = {s = \\_ => "ఎనిమిది" ; n = Pl} ;
n9 = {s = "తొమ్మిది" ; n = Pl} ; n9 = {s = \\_ => "తొమ్మిది" ; n = Pl} ;
pot01 = {s = "ఒకటి" ; n = Sg} ; pot01 = {
s = table {Masc => "ఒకడు" ; Fem => "ఒకతె" ; Neutr => "ఒక"} ;
n = Sg
} ;
pot0 d = d ; pot0 d = d ;
pot0as1 x = x ; pot0as1 x = x ;
pot110 = {s = "పది" ; n = Pl} ; pot110 = {s = \\_ => "పది" ; n = Pl} ;
pot111 = {s = "పదకొండు" ; n = Pl} ; pot111 = {s = \\_ => "పదకొండు" ; n = Pl} ;
pot1to19 d = {s = "పది" ++ d.s ; n = Pl} ; pot1to19 d = {s = \\_ => ("పది" ++ d.s ! Neutr) ; n = Pl} ;
pot1 d = {s = d.s ++ "పది" ; n = Pl} ; pot1 d = {s = \\_ => (d.s ! Neutr ++ "పది") ; n = Pl} ;
pot1plus d x = {s = d.s ++ "పది" ++ x.s ; n = Pl} ; pot1plus d x = {s = \\_ => (d.s ! Neutr ++ "పది" ++ x.s ! Neutr) ; n = Pl} ;
pot1as2 x = x ; pot1as2 x = x ;
pot21 = {s = "వంద" ; n = Pl} ; pot21 = {s = \\_ => "వంద" ; n = Pl} ;
pot2 x = {s = x.s ++ "వందలు" ; n = Pl} ; pot2 x = {s = \\_ => (x.s ! Neutr ++ "వందలు") ; n = Pl} ;
pot2plus x y = {s = x.s ++ "వందలు" ++ y.s ; n = Pl} ; pot2plus x y = {s = \\_ => (x.s ! Neutr ++ "వందలు" ++ y.s ! Neutr) ; n = Pl} ;
pot2as3 x = x ; pot2as3 x = x ;
pot31 = {s = "వెయ్యి" ; n = Pl} ; pot31 = {s = \\_ => "వెయ్యి" ; n = Pl} ;
pot3 x = {s = x.s ++ "వేలు" ; n = Pl} ; pot3 x = {s = \\_ => (x.s ! Neutr ++ "వేలు") ; n = Pl} ;
pot3plus x y = {s = x.s ++ "వేలు" ++ y.s ; n = Pl} ; pot3plus x y = {s = \\_ => (x.s ! Neutr ++ "వేలు" ++ y.s ! Neutr) ; n = Pl} ;
pot3as4 x = x ; pot3as4 x = x ;
pot3decimal x = {s = x.s ++ "వేలు" ; n = Pl} ; pot3decimal x = {s = \\_ => (x.s ++ "వేలు") ; n = Pl} ;
pot41 = {s = "పది లక్షలు" ; n = Pl} ; pot41 = {s = \\_ => "పది లక్షలు" ; n = Pl} ;
pot4 x = {s = x.s ++ "పది లక్షలు" ; n = Pl} ; pot4 x = {s = \\_ => (x.s ! Neutr ++ "పది లక్షలు") ; n = Pl} ;
pot4plus x y = {s = x.s ++ "పది లక్షలు" ++ y.s ; n = Pl} ; pot4plus x y = {s = \\_ => (x.s ! Neutr ++ "పది లక్షలు" ++ y.s ! Neutr) ; n = Pl} ;
pot4as5 x = x ; pot4as5 x = x ;
pot4decimal x = {s = x.s ++ "పది లక్షలు" ; n = Pl} ; pot4decimal x = {s = \\_ => (x.s ++ "పది లక్షలు") ; n = Pl} ;
pot51 = {s = "వంద కోట్లు" ; n = Pl} ; pot51 = {s = \\_ => "వంద కోట్లు" ; n = Pl} ;
pot5 x = {s = x.s ++ "వంద కోట్లు" ; n = Pl} ; pot5 x = {s = \\_ => (x.s ! Neutr ++ "వంద కోట్లు") ; n = Pl} ;
pot5plus x y = {s = x.s ++ "వంద కోట్లు" ++ y.s ; n = Pl} ; pot5plus x y = {s = \\_ => (x.s ! Neutr ++ "వంద కోట్లు" ++ y.s ! Neutr) ; n = Pl} ;
pot5decimal x = {s = x.s ++ "వంద కోట్లు" ; n = Pl} ; pot5decimal x = {s = \\_ => (x.s ++ "వంద కోట్లు") ; n = Pl} ;
IDig d = {s = d.s ; n = Pl} ; IDig d = {s = d.s ; n = Pl} ;
IIDig d ds = {s = d.s ++ ds.s ; n = Pl} ; IIDig d ds = {s = d.s ++ ds.s ; n = Pl} ;
+1
View File
@@ -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} ; UttVP vp = {s = let f = vp.s ! Pos ! VPInf in f.inf ++ f.fin} ;
UttAdv adv = adv ; UttAdv adv = adv ;
UttIP ip = {s = ip.s ! Dir} ; UttIP ip = {s = ip.s ! Dir} ;
UttCard card = {s = card.s ! Neutr} ;
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! Sg} ; UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! Sg} ;
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ; UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ;
UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ; UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ;
+1 -1
View File
@@ -14,7 +14,7 @@ concrete QuestionTel of Question = CatTel ** open ResTel, Prelude in {
AdvIAdv iadv adv = {s = adv.s ++ iadv.s} ; AdvIAdv iadv adv = {s = adv.s ++ iadv.s} ;
IdetCN idet cn = {s = \\c => idet.s ++ cn.s ! idet.n ! c ; n = idet.n} ; IdetCN idet cn = {s = \\c => idet.s ++ cn.s ! idet.n ! c ; n = idet.n} ;
IdetIP idet = {s = \\_ => idet.s ; 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} ; CompIAdv adv = {s = adv.s} ;
CompIP ip = {s = ip.s ! Dir} ; CompIP ip = {s = ip.s ! Dir} ;
} }