extended Numerals API. moved from the WordNet grammar

This commit is contained in:
Krasimir Angelov
2022-10-21 20:50:49 +02:00
parent 96f4543c4c
commit b066fb4d35
29 changed files with 351 additions and 69 deletions
+29
View File
@@ -14,6 +14,8 @@ concrete NumeralPor of Numeral = CatPor [Numeral,Digits] **
Sub100 = {s : CardOrd => Str ; n : Number} ;
Sub1000 = {s : CardOrd => Str ; n : Number} ;
Sub1000000 = {s : CardOrd => Str ; n : Number} ;
Sub1000000000 = {s : CardOrd => Str ; n : Number} ;
Sub1000000000000 = {s : CardOrd => Str ; n : Number} ;
lin
num x = x ;
@@ -111,6 +113,33 @@ concrete NumeralPor of Numeral = CatPor [Numeral,Digits] **
++ m.s ! co ;
n = Pl} ;
pot3as4 n = n ;
pot4 n = {s = table CardOrd {co => n.s ! NCard Masc ++ milhao ! co } ; n = Pl} ;
pot4plus n m = {s = \\co => n.s ! NCard Masc
++ milhao ! co
++ e_CardOrd co ++ m.s ! co ;
n = Pl
} ;
pot21 = mkNum "cem" "centésimo" ;
pot31 = mkNum "mil" "milésimo" ;
-- cem, mil, but um milhão, um bilhão
pot41 = mkNum "um milhão" "milhonésimo" ;
pot4as5 n = n ;
oper
milhao : CardOrd => Str ;
milhao = mkNumStr "milhão" "milhonésimo" ;
mkNum : Str -> Str -> {s : CardOrd => Str ; n : Number} ;
mkNum cem centesimo = spl (mkNumStr cem centesimo) ;
oper
mkTal : (_,_,_,_,_,_,_ : Str) -> {s : DForm => CardOrd => Str} =
\dois,doze,vinte,duzentos,segundo,vigesimo,duocentesimo ->