diff options
| author | krasimir <krasimir@chalmers.se> | 2009-02-05 21:34:55 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-02-05 21:34:55 +0000 |
| commit | e158ed0f1c480e8d7a4cfe8cf277ec3f105fb2c4 (patch) | |
| tree | 97f4be5ffdb79df5e13c395ce30ece4548f6b2dd /next-lib/src/bulgarian/ResBul.gf | |
| parent | 11f9f5169796c721ec2ea527adfe8163b9271180 (diff) | |
Bulgarian: formal and informal numerals + small bugfix
Diffstat (limited to 'next-lib/src/bulgarian/ResBul.gf')
| -rw-r--r-- | next-lib/src/bulgarian/ResBul.gf | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/next-lib/src/bulgarian/ResBul.gf b/next-lib/src/bulgarian/ResBul.gf index 09072eda0..c26a92824 100644 --- a/next-lib/src/bulgarian/ResBul.gf +++ b/next-lib/src/bulgarian/ResBul.gf @@ -101,7 +101,8 @@ resource ResBul = ParamX ** open Prelude in { ; CardOrd = NCard DGenderSpecies | NOrd AForm ; - DForm = unit | teen | ten | hundred ; + NumF = Formal | Informal ; + DForm = unit | teen NumF | ten NumF | hundred ; --2 Transformations between parameter types @@ -475,18 +476,24 @@ resource ResBul = ParamX ** open Prelude in { -- For $Numeral$. - mkDigit : Str -> Str -> Str -> Str -> Str -> {s : DForm => CardOrd => Str} = - \dva, dvama, dve, vtori, dvesta -> + mkDigit : Str -> Str -> Str -> Str -> Str -> Str -> {s : DForm => CardOrd => Str} = + \dva, dvama, dve, vtori, dvaiset, dvesta -> {s = table { unit => mkCardOrd dva dvama dve vtori ; - teen => mkCardOrd (dva+"надесет") (dva+"надесетима") (dva+"надесет") (dva+"надесети") ; - ten => mkCardOrd (dva+"десет") (dva+"десетима") (dva+"десет") (dva+"десети") ; + teen nf => case nf of { + Formal => mkCardOrd (dva+"надесет") (dva+"надесетима") (dva+"надесет") (dva+"надесети") ; + Informal => mkCardOrd (dva+"найсет") (dva+"найсет") (dva+"найсет") (dva+"найсти") + } ; + ten nf => case nf of { + Formal => mkCardOrd (dva+"десет") (dva+"десетима") (dva+"десет") (dva+"десети") ; + Informal => mkCardOrd dvaiset dvaiset dvaiset (dvaiset+"и") + } ; hundred => let dvesten : Str = case dvesta of { dvest+"а" => dvest+"ен" ; chetiristot+"ин" => chetiristot+"ен" } - in mkCardOrd dvesta dvesta dvesta dvesten + in mkCardOrd100 dvesta dvesten } } ; @@ -509,6 +516,24 @@ resource ResBul = ParamX ** open Prelude in { } } ; + mkCardOrd100 : Str -> Str -> CardOrd => Str = + \sto, stoten -> + table { + NCard dg => sto ; + NOrd aform => let stotn = init (init stoten) + last stoten ; + in case aform of { + ASg Masc Indef => stoten ; + ASg Masc Def => stotn+"ия" ; + ASgMascDefNom => stotn+"ият" ; + ASg Fem Indef => stotn+"а" ; + ASg Fem Def => stotn+"ата" ; + ASg Neut Indef => stotn+"о" ; + ASg Neut Def => stotn+"ото" ; + APl Indef => stotn+"и" ; + APl Def => stotn+"ите" + } + } ; + digitGenderSpecies : Str -> Str -> Str -> DGenderSpecies => Str = \dva, dvama, dve -> let addDef : Str -> Str = |
