mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-21 17:12:50 -06:00
add numerals
This commit is contained in:
@@ -60,6 +60,12 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
| AFullDef
|
||||
;
|
||||
|
||||
--2 For $Numeral$
|
||||
|
||||
DGender = DMasc | DMascPersonal | DFem | DNeut ;
|
||||
CardOrd = NCard DGender Species | NOrd AForm ;
|
||||
DForm = unit | teen | ten | hundred ;
|
||||
|
||||
--2 Transformations between parameter types
|
||||
|
||||
oper
|
||||
@@ -293,6 +299,53 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
OQuest => subj ++ verb ++ "ëè" ++ compl
|
||||
}
|
||||
} ;
|
||||
|
||||
-- For $Numeral$.
|
||||
|
||||
mkDigit : Str -> Str -> Str -> Str -> Str -> {s : DForm => CardOrd => Str} =
|
||||
\dva, dvama, dve, vtori, dvesta ->
|
||||
{s = table {
|
||||
unit => mkCardOrd dva dvama dve vtori ;
|
||||
teen => mkCardOrd (dva+"íàäåñåò") (dva+"íàäåñåòèìà") (dva+"íàäåñåò") (dva+"íàäåñåòè") ;
|
||||
ten => mkCardOrd (dva+"äåñåò") (dva+"äåñåòèìà") (dva+"äåñåò") (dva+"äåñåòè") ;
|
||||
hundred => let dvesten : Str
|
||||
= case dvesta of {
|
||||
dvest+"à" => dvest+"åí" ;
|
||||
chetiristot+"èí" => chetiristot+"åí"
|
||||
}
|
||||
in mkCardOrd dvesta dvesta dvesta dvesten
|
||||
}
|
||||
} ;
|
||||
|
||||
mkCardOrd : Str -> Str -> Str -> Str -> CardOrd => Str =
|
||||
\dva, dvama, dve, vtori ->
|
||||
table {
|
||||
NCard dg Indef => digitGender dva dvama dve ! dg ;
|
||||
NCard dg Def => case digitGender dva dvama dve ! dg of {
|
||||
dves+"òà" => dves+"òàòå" ;
|
||||
dv+"à" => dv+"àòà" ;
|
||||
x => x+"òå"
|
||||
} ;
|
||||
NOrd aform => let vtora = init vtori + "à" ;
|
||||
vtoro = init vtori + "î"
|
||||
in (mkAdjective vtori
|
||||
(vtori+"ÿ")
|
||||
(vtori+"ÿò")
|
||||
vtora
|
||||
(vtora+"òà")
|
||||
vtoro
|
||||
(vtoro+"òî")
|
||||
vtori
|
||||
(vtori+"òå")).s ! aform
|
||||
} ;
|
||||
|
||||
digitGender : Str -> Str -> Str -> DGender => Str =
|
||||
\dva, dvama, dve
|
||||
-> table {
|
||||
DMasc => dva ;
|
||||
DMascPersonal => dvama ;
|
||||
_ => dve
|
||||
} ;
|
||||
|
||||
mkIP : Str -> GenNum -> {s : Str ; gn : GenNum} =
|
||||
\s,gn -> {
|
||||
|
||||
Reference in New Issue
Block a user