added nominative determiner for numerals

This commit is contained in:
krasimir
2008-02-19 18:04:48 +00:00
parent f90ba44620
commit 07eab287ed
2 changed files with 50 additions and 28 deletions

View File

@@ -21,12 +21,14 @@ lin pot01 =
{s = table {
unit => table {
NCard DMascIndef => "åäèí" ;
NCard DMascPersonal Indef => "åäèí" ;
NCard DFem Indef => "åäíà" ;
NCard DNeut Indef => "åäíî" ;
NCard DMascDef => "åäèíèÿ" ;
NCard DMascNomDef => "åäèíèÿò" ;
NCard DMascPersonalIndef => "åäèí" ;
NCard DMascPersonalDef => "åäèíèÿ" ;
NCard DMascPersonalNomDef => "åäèíèÿò" ;
NCard DFemIndef => "åäíà" ;
NCard DFemDef => "åäíàòà" ;
NCard DNeutIndef => "åäíî" ;
NCard DNeutDef => "åäíîòî" ;
NOrd aform => (mkAdjective "ïúðâè"
"ïúðâèÿ"
@@ -117,7 +119,7 @@ lin pot3plus n m = {
mkDig : Str -> TDigit = \c -> mk2Dig c (c + "òè") ;
mk3Dig : Str -> Str -> Number -> TDigit = \c,o,n -> {
s = table {NCard _ _ => c ; NOrd aform => (regAdjective o).s ! aform} ;
s = table {NCard _ => c ; NOrd aform => (regAdjective o).s ! aform} ;
n = n
} ;

View File

@@ -62,7 +62,19 @@ resource ResBul = ParamX ** open Prelude in {
--2 For $Numeral$
DGender = DMasc | DMascPersonal | DFem | DNeut ;
DGenderSpecies =
DMascIndef
| DMascDef
| DMascNomDef
| DMascPersonalIndef
| DMascPersonalDef
| DMascPersonalNomDef
| DFemIndef
| DFemDef
| DNeutIndef
| DNeutDef
;
CardOrd = NCard DGenderSpecies | NOrd AForm ;
DForm = unit | teen | ten | hundred ;
@@ -320,12 +332,7 @@ resource ResBul = ParamX ** open Prelude in {
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+"òå"
} ;
NCard dg => digitGender dva dvama dve ! dg ;
NOrd aform => let vtora = init vtori + "à" ;
vtoro = init vtori + "î"
in (mkAdjective vtori
@@ -339,12 +346,25 @@ resource ResBul = ParamX ** open Prelude in {
(vtori+"òå")).s ! aform
} ;
digitGender : Str -> Str -> Str -> DGender => Str =
digitGender : Str -> Str -> Str -> DGenderSpecies => Str =
\dva, dvama, dve
-> table {
DMasc => dva ;
DMascPersonal => dvama ;
_ => dve
-> let addDef : Str -> Str =
\s -> case s of {
dves+"òà" => dves+"òàòå" ;
dv+"à" => dv+"àòà" ;
x => x+"òå"
}
in table {
DMascIndef => dva ;
DMascDef => addDef dva ;
DMascNomDef => addDef dva ;
DMascPersonalIndef => dvama ;
DMascPersonalDef => addDef dvama ;
DMascPersonalNomDef => addDef dvama ;
DFemIndef => dve ;
DFemDef => addDef dve ;
DNeutIndef => dve ;
DNeutDef => addDef dve
} ;
mkIP : Str -> GenNum -> {s : Str ; gn : GenNum} =