mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 08:58:55 -06:00
added pot5art and fixed inflection for large numerals
This commit is contained in:
@@ -63,6 +63,7 @@ data
|
||||
|
||||
pot51 : Sub1000000000000 ; -- a billion instead of one billion
|
||||
pot5 : Sub1000 -> Sub1000000000000 ; -- m * 1000000000
|
||||
pot5art : Sub1000000000000 ; -- a/an instead of one
|
||||
pot5plus : Sub1000 -> Sub1000000000 -> Sub1000000000000 ; -- m * 1000000000 + n
|
||||
pot5decimal : Decimal -> Sub1000000000000 ; -- 3.5 billion
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ lin pot41 = {
|
||||
lin pot4 n = {
|
||||
s = \\c,nf => case n.n of {
|
||||
Sg => mkCardOrd100 "милион" "милионите" "милионен" ! c ;
|
||||
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "милиони" "милионите" "милионен" ! c
|
||||
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "милиона" "милионите" "милионен" ! c
|
||||
} ;
|
||||
n = Pl
|
||||
} ;
|
||||
@@ -142,10 +142,14 @@ lin pot51 = {
|
||||
lin pot5 n = {
|
||||
s = \\c,nf => case n.n of {
|
||||
Sg => mkCardOrd100 "милиярд" "милиярдите" "милиярден" ! c ;
|
||||
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "милиярд" "милиярдите" "милиярден" ! c
|
||||
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "милиярда" "милиярдите" "милиярден" ! c
|
||||
} ;
|
||||
n = Pl
|
||||
} ;
|
||||
lin pot5art = {
|
||||
s = \\o,_ => "" ;
|
||||
n = Sg
|
||||
} ;
|
||||
lin pot5plus n1 n2 = {
|
||||
s = \\o,f => (pot5 n1).s ! o ! f ++ "и" ++ n2.s ! o ! f;
|
||||
n = Pl
|
||||
@@ -154,7 +158,7 @@ lin pot5decimal d = {
|
||||
s = \\c,nf => d.s ! NCard (CFFem Indef) ++
|
||||
case d.n of {
|
||||
Sg => mkCardOrd100 "милиярд" "милиярда" "милиярден" ! c ;
|
||||
Pl => mkCardOrd100 "милиярди" "милиярдите" "милиярден" ! c
|
||||
Pl => mkCardOrd100 "милиярда" "милиярдите" "милиярден" ! c
|
||||
} ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
@@ -86,6 +86,10 @@ lin pot5 n = {
|
||||
s = \\d,o,c => n.s ! d ! NCard ! Nom ++ pot51.s ! True ! o ! c ;
|
||||
n = Pl
|
||||
} ;
|
||||
lin pot5art = {
|
||||
s = \\d,o,c => case d of {True => []; False => artIndef};
|
||||
n = Sg
|
||||
} ;
|
||||
lin pot5plus n1 n2 = {
|
||||
s = \\d,o,c => n1.s ! d ! NCard ! Nom ++ pot51.s ! True ! NCard ! Nom ++ "and" ++ n2.s ! True ! o ! c;
|
||||
n = Pl
|
||||
|
||||
@@ -52,7 +52,12 @@ lin
|
||||
|
||||
pot41 = numPl (cardOrd "miljon" "miljonde") ;
|
||||
pot4 n =
|
||||
numPl (\\g => n.s ! NCard Utr ++ cardOrd "miljon" "miljonde" ! g) ;
|
||||
numPl (\\g => n.s ! NCard Utr ++
|
||||
cardOrd (case n.n of {
|
||||
Sg => "miljon" ;
|
||||
Pl => "miljoner"
|
||||
})
|
||||
"miljonde" ! g) ;
|
||||
pot4plus n m =
|
||||
{s = \\g => n.s ! NCard Utr ++ BIND ++ "miljon" ++ m.s ! g ; n = Pl} ;
|
||||
pot4as5 n = n ;
|
||||
@@ -60,8 +65,20 @@ lin
|
||||
numPl (\\g => d.s ! NCard Utr ++ cardOrd "miljoner" "miljonde" ! g) ;
|
||||
|
||||
pot51 = numPl (cardOrd "miljard" "miljarde") ;
|
||||
pot5art = {
|
||||
s = table {
|
||||
NCard g => case g of {Neutr => "ett" ; _ => "en"} ;
|
||||
_ => "första"
|
||||
} ;
|
||||
n = Sg
|
||||
} ;
|
||||
pot5 n =
|
||||
numPl (\\g => n.s ! NCard Utr ++ cardOrd "miljard" "miljarde" ! g) ;
|
||||
numPl (\\g => n.s ! NCard Utr ++
|
||||
cardOrd (case n.n of {
|
||||
Sg => "miljard" ;
|
||||
Pl => "miljarder"
|
||||
})
|
||||
"miljarde" ! g) ;
|
||||
pot5plus n m =
|
||||
{s = \\g => n.s ! NCard Utr ++ BIND ++ "miljard" ++ m.s ! g ; n = Pl} ;
|
||||
pot5decimal d =
|
||||
|
||||
Reference in New Issue
Block a user