forked from GitHub/gf-core
added the rest of Romanian :-)
This commit is contained in:
@@ -1,16 +1,14 @@
|
||||
concrete NumeralRon of Numeral = CatRon **
|
||||
open MorphoRon, CatRon, Prelude in {
|
||||
|
||||
flags
|
||||
coding=cp1250;
|
||||
|
||||
param DForm = unit | teen | ten | teen_inf | attr;
|
||||
param DForm = unit | teen | ten | teen_inf ;
|
||||
param Place = indep | attr ;
|
||||
|
||||
lincat Digit = {s : CardOrd => DForm => Str ; size : Size} ;
|
||||
lincat Sub10 = {s : CardOrd => DForm => Str ; size : Size} ;
|
||||
lincat Sub100 = {s : CardOrd => NumF => Str ; size : Size} ;
|
||||
lincat Sub1000 = {s : CardOrd => NumF => Str ; size : Size} ;
|
||||
lincat Sub1000000 = { s : CardOrd => NumF => Str; size : Size } ;
|
||||
lincat Sub10 = {s : CardOrd => DForm => Place => Str ; size : Size} ;
|
||||
lincat Sub100 = {s : CardOrd => NumF => Place => Str ; size : Size} ;
|
||||
lincat Sub1000 = {s : CardOrd => NumF => Place => Str ; size : Size} ;
|
||||
lincat Sub1000000 = { s : CardOrd => NumF => Place => Str; size : Size } ;
|
||||
|
||||
|
||||
|
||||
@@ -22,10 +20,9 @@ oper mkOrdinalForm : Str -> Gender -> Str =
|
||||
_ => two+"lea"
|
||||
};
|
||||
Fem => case two of
|
||||
{ x + "a" => two ;
|
||||
x + ("ã"|"u") => x +"a";
|
||||
{ x + ("ã"|"u") => x +"a";
|
||||
x + "ei" => two + "a";
|
||||
x + "ii" => x + "ia" ;
|
||||
x + "ii" => x + "ia" ;
|
||||
x + "i" => x + "ea";
|
||||
x + "ie" => x +"a" ;
|
||||
_ => two +"a"
|
||||
@@ -37,41 +34,37 @@ oper mkOrdinal : Str -> Gender -> ACase -> Str =
|
||||
\two, g, fl -> mkOrd (mkOrdinalForm two g) g fl;
|
||||
|
||||
oper mkOrd : Str -> Gender -> ACase -> Str =
|
||||
\two, g, fl -> let cc = variants{(artPos g Sg)++ two ;
|
||||
(artDem g Sg ANomAcc) ++ "de-"+(artPos g Sg) ++ two
|
||||
} in
|
||||
\two, g, fl -> let cc = (artPos g Sg ANomAcc) ++ two
|
||||
in
|
||||
case fl of
|
||||
{ ANomAcc => cc ;
|
||||
AGenDat => (artDem g Sg AGenDat)++"de-"+(artPos g Sg)++ two ;
|
||||
AGenDat => (artDem g Sg AGenDat)++"de-"+(artPos g Sg ANomAcc)++ two ;
|
||||
AVoc => cc
|
||||
};
|
||||
|
||||
|
||||
oper mkNum : Str -> Str -> Str -> Str -> Digit =
|
||||
\two -> \twelve -> \twenty -> \doispe -> mkNumVSpc two twelve twelve twenty two doispe doispe (mkOrdinalForm two Masc) (mkOrdinalForm two Fem) two two;
|
||||
\two -> \twelve -> \twenty -> \doispe -> mkNumVSpc two twelve twelve twenty two doispe doispe (mkOrdinalForm two Masc) (mkOrdinalForm two Fem);
|
||||
|
||||
|
||||
oper mkNumVSpc : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Digit =
|
||||
\two -> \twelve -> \douasprezece -> \twenty -> \dou -> \doispe -> \douaspe -> \doilea -> \doua ->
|
||||
\unu -> \una ->
|
||||
oper mkNumVSpc : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Digit =
|
||||
\two -> \twelve -> \douasprezece -> \twenty -> \dou -> \doispe -> \douaspe -> \doilea -> \doua ->
|
||||
{s = table {
|
||||
NCard Masc => table {unit => two ; teen => twelve ;
|
||||
ten => twenty ; teen_inf => doispe ; attr => unu
|
||||
ten => twenty ; teen_inf => doispe
|
||||
} ;
|
||||
NCard Fem => table {unit => dou ; teen => douasprezece ;
|
||||
ten => twenty ; teen_inf => douaspe ; attr => una
|
||||
ten => twenty ; teen_inf => douaspe
|
||||
} ;
|
||||
NOrd Masc => table {unit => doilea ;
|
||||
teen => mkOrdinalForm twelve Masc ;
|
||||
ten => mkOrdinalForm twenty Masc ;
|
||||
teen_inf => mkOrdinalForm doispe Masc ;
|
||||
attr => mkOrdinalForm unu Masc
|
||||
teen_inf => mkOrdinalForm doispe Masc
|
||||
} ;
|
||||
NOrd Fem => table {unit => doua ;
|
||||
teen => mkOrdinalForm douasprezece Fem ;
|
||||
ten => mkOrdinalForm twenty Fem ;
|
||||
teen_inf => mkOrdinalForm douaspe Fem ;
|
||||
attr => mkOrdinalForm una Fem
|
||||
teen_inf => mkOrdinalForm douaspe Fem
|
||||
}
|
||||
} ;
|
||||
size = less20 ;
|
||||
@@ -84,11 +77,11 @@ oper regNum : Str -> Digit =
|
||||
|
||||
oper mkMidF : Str -> Str -> Sub100 =
|
||||
\unsprezece, unspe ->
|
||||
{ s = table {NCard g => table { Formal => unsprezece ;
|
||||
Informal => unspe
|
||||
{ s = table {NCard g => table { Formal => \\_ => unsprezece ;
|
||||
Informal => \\_ => unspe
|
||||
};
|
||||
NOrd g => table {Formal => mkOrdinalForm unsprezece g;
|
||||
Informal => mkOrdinalForm unspe g
|
||||
NOrd g => table {Formal => \\_ => mkOrdinalForm unsprezece g;
|
||||
Informal => \\_ => mkOrdinalForm unspe g
|
||||
}
|
||||
};
|
||||
|
||||
@@ -98,34 +91,46 @@ oper mkMidF : Str -> Str -> Sub100 =
|
||||
|
||||
|
||||
lin num = \d ->
|
||||
{ s = \\cse => table { NCard g => \\f => d.s ! (NCard g) ! f ;
|
||||
NOrd g => \\f => let ss = d.s ! (NOrd g) ! f
|
||||
{ s = \\cse => table { NCard g => \\f => d.s ! (NCard g) ! f ! indep ;
|
||||
NOrd g => \\f => let ss = d.s ! (NOrd g) ! f ! indep
|
||||
in
|
||||
case d.size of
|
||||
{ sg => (artDem g Sg cse) ++ ss ;
|
||||
_ => mkOrd ss g cse
|
||||
}
|
||||
};
|
||||
};
|
||||
sp = \\cse => table { NCard g => \\f => d.s ! (NCard g) ! f ! attr ;
|
||||
NOrd g => \\f => let ss = d.s ! (NOrd g) ! f ! indep
|
||||
in
|
||||
case d.size of
|
||||
{ sg => (artDem g Sg cse) ++ ss ;
|
||||
_ => mkOrd ss g cse
|
||||
}
|
||||
};
|
||||
size = d.size
|
||||
} ;
|
||||
-- Latin A Supplement chars
|
||||
|
||||
lin n2 = mkNumVSpc "doi" "doispreze" "douãsprezece" "douãzeci" "douã" "doiºpe" "douãºpe" "doilea" "doua" "doi" "douã";
|
||||
lin n2 = mkNumVSpc "doi" "doispreze" "douãsprezece" "douãzeci" "douã" "doiºpe" "douãºpe" "doilea" "doua";
|
||||
lin n3 = regNum "trei";
|
||||
lin n4 = mkNum "patru" "paisprezece" "patruzeci" "paiºpe";
|
||||
lin n5 = mkNum "cinci" "cinsprezece" "cincizeci" "cinºpe";
|
||||
lin n6 = mkNum "ºase" "ºaisprezece" "ºaizeci" "ºaiºpe";
|
||||
lin n7 = mkNum "ºapte" "ºaptesprezece" "ºaptezeci" "ºaptiºpe";
|
||||
lin n7 = mkNum "ºapte" "ºaptesprezece" "ºaptezeci" "ºaptispe";
|
||||
lin n8 = mkNum "opt" "optsprezece" "optzeci" "optiºpe";
|
||||
lin n9 = regNum "nouã";
|
||||
|
||||
lin pot01 = let num = mkNumVSpc "un" "unsprezece" "unsprezece" "zece" "o" "unºpe" "unºpe" "dintâi" "dintâi" "unu" "una"
|
||||
lin pot01 = let num = mkNumVSpc "un" "unsprezece" "unsprezece" "zece" "o" "unºpe" "unºpe" "dintâi" "dintâi" ;
|
||||
dep = mkNumVSpc "unu" "unsprezece" "unsprezece" "zece" "una" "unºpe" "unºpe" "unulea" "una"
|
||||
|
||||
in
|
||||
{ s = \\o,c => num.s ! o ! c ;
|
||||
{ s = \\o,c => table {indep => num.s ! o ! c ;
|
||||
attr => dep.s ! o ! c
|
||||
} ;
|
||||
size = sg
|
||||
};
|
||||
|
||||
lin pot0 d = { s = \\o, c => d.s ! o ! c ;
|
||||
lin pot0 d = { s = \\o, c => \\_ => d.s ! o ! c ;
|
||||
size = less20
|
||||
};
|
||||
|
||||
@@ -134,19 +139,19 @@ lin pot110 = mkMidF "zece" "zece" ;
|
||||
lin pot111 = mkMidF "unsprezece" "unºpe" ;
|
||||
|
||||
lin pot1to19 = \d ->
|
||||
{s = \\c => table { Formal => d.s ! c ! teen ;
|
||||
Informal => d.s ! c ! teen_inf
|
||||
{s = \\c => table { Formal => \\_ => d.s ! c ! teen ;
|
||||
Informal => \\_ => d.s ! c ! teen_inf
|
||||
};
|
||||
size = less20
|
||||
};
|
||||
|
||||
lin pot0as1 = \d ->
|
||||
{s = \\c,_ => d.s ! c ! unit ;
|
||||
{s = \\c,_,p => d.s ! c ! unit ! p ;
|
||||
size = d.size
|
||||
};
|
||||
|
||||
lin pot1 = \d ->
|
||||
{s = \\c,_ => d.s ! c ! ten ;
|
||||
{s = \\c => \\_,_ => d.s ! c ! ten ;
|
||||
size = pl
|
||||
};
|
||||
|
||||
@@ -154,8 +159,8 @@ lin pot1 = \d ->
|
||||
|
||||
lin pot1plus d e =
|
||||
{s = table {
|
||||
NCard g => \\_ => d.s ! (NCard g) ! ten ++ "ºi" ++ e.s ! (NCard g) ! attr ;
|
||||
NOrd g => \\_ => d.s ! (NCard g) ! ten ++ "ºi" ++ e.s ! (NOrd g) ! attr
|
||||
NCard g => \\_,_ => d.s ! (NCard g) ! ten ++ "ºi" ++ e.s ! (NCard g) ! unit ! attr ;
|
||||
NOrd g => \\_,_ => d.s ! (NCard g) ! ten ++ "ºi" ++ e.s ! (NOrd g) ! unit ! attr
|
||||
};
|
||||
size = pl
|
||||
};
|
||||
@@ -164,29 +169,29 @@ lin pot1as2 n = n ;
|
||||
|
||||
lin pot2 d =
|
||||
{s = table {
|
||||
NCard g => \\_ => d.s ! (NCard Fem) ! unit ++ (mksute d.size) ;
|
||||
NOrd g => \\_ => d.s ! (NCard Fem) ! unit ++ (mkSute d.size g)
|
||||
NCard g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ;
|
||||
NOrd g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mkSute d.size g)
|
||||
};
|
||||
|
||||
size = pl} ;
|
||||
|
||||
lin pot2plus d e =
|
||||
{s = \\c,f => d.s ! (NCard Fem) ! unit ++ (mksute d.size) ++ e.s ! c ! f ;
|
||||
{s = \\c,f,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ++ e.s ! c ! f ! attr ;
|
||||
size = pl} ;
|
||||
|
||||
lin pot2as3 n = n ;
|
||||
|
||||
lin pot3 n =
|
||||
{s = table {
|
||||
NCard g => \\f => mkmie n.size (n.s ! (NCard Fem) ! f ) ;
|
||||
NOrd g => \\f => mkMie n.size g (n.s ! (NCard Fem) ! f )
|
||||
NCard g => \\f,p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep) ;
|
||||
NOrd g => \\f,p => mkMie n.size g (n.s ! (NCard Fem) ! f ! indep)
|
||||
};
|
||||
size = pl
|
||||
} ;
|
||||
|
||||
|
||||
lin pot3plus n m =
|
||||
{s = \\c, f => mkmie n.size (n.s ! (NCard Fem) ! f ) ++ m.s ! c ! f ;
|
||||
{s = \\c, f, p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep) ++ m.s ! c ! f ! attr;
|
||||
size = pl
|
||||
};
|
||||
|
||||
@@ -226,7 +231,7 @@ lin
|
||||
} ;
|
||||
lin
|
||||
D_0 = mkDig "0" ;
|
||||
D_1 = mk3Dig "1" "1ul" "1a" sg ;
|
||||
D_1 = mk3Dig "1" "1ul" "1a" sg ; ---- gender
|
||||
D_2 = mkDig "2";
|
||||
D_3 = mkDig "3" ;
|
||||
D_4 = mkDig "4" ;
|
||||
|
||||
Reference in New Issue
Block a user