add numerals

This commit is contained in:
krasimir
2008-02-19 16:42:31 +00:00
parent e494274c07
commit f90ba44620
4 changed files with 187 additions and 0 deletions

View File

@@ -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 -> {