forked from GitHub/gf-rgl
floating point numerals
This commit is contained in:
@@ -58,6 +58,7 @@ abstract Noun = Cat ** {
|
||||
|
||||
data
|
||||
NumDigits : Digits -> Card ; -- 51
|
||||
NumFloat : Digits -> Digits -> Card ; -- 3.14
|
||||
NumNumeral : Numeral -> Card ; -- fifty-one
|
||||
|
||||
-- The construction of numerals is defined in [Numeral Numeral.html].
|
||||
|
||||
@@ -77,6 +77,8 @@ concrete NounAfr of Noun = CatAfr ** open ResAfr, Prelude in {
|
||||
NumDigits numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
|
||||
OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ;
|
||||
|
||||
NumFloat n1 n2 = {s = \\g,c => n1.s ! NCard Neutr Nom ++ BIND ++ "." ++ BIND ++ n1.s ! NCard g c; n = Pl } ;
|
||||
|
||||
NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
|
||||
OrdNumeral numeral = {s = \\af => numeral.s ! NOrd af} ;
|
||||
|
||||
|
||||
@@ -118,6 +118,8 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
||||
NumDigits n = {s = \\gspec => n.s ! NCard gspec; nn = case n.n of {Sg => NNum Sg; Pl => NCountable}} ;
|
||||
OrdDigits n = {s = \\aform => n.s ! NOrd aform} ;
|
||||
|
||||
NumFloat n1 n2 = {s = \\gspec => n1.s ! NCard (CFMasc Indef NonHuman) ++ BIND ++ "." ++ BIND ++ n2.s ! NCard gspec ; nn = NCountable} ;
|
||||
|
||||
NumNumeral numeral = {s = \\gspec => numeral.s ! NCard gspec; nn = case numeral.n of {Sg => NNum Sg; Pl => NCountable}} ;
|
||||
OrdNumeral numeral = {s = \\aform => numeral.s ! NOrd aform} ;
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
concrete NamesChi of Names = CatChi ** {
|
||||
|
||||
lin GivenName, MaleSurname, FemaleSurname, PlSurname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname, PlSurname = \n -> n ** {det = []} ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s
|
||||
s = gn.s ++ sn.s ;
|
||||
det = []
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -85,6 +85,8 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in {
|
||||
NumDigits numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
|
||||
OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ;
|
||||
|
||||
NumFloat n1 n2 = {s = \\g,c => n1.s ! NCard Utr Nom ++ BIND ++ "." ++ BIND ++ n2.s ! NCard g c; n = Pl } ;
|
||||
|
||||
NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
|
||||
OrdNumeral numeral = {s = let tiende : AForm => Str = \\af => numeral.s ! NOrd af
|
||||
in table {APred => tiende ! AAttr Utr ;
|
||||
|
||||
@@ -77,6 +77,8 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in {
|
||||
NumDigits n = {s,sp = \\_ => n.s ! NCard ; n = n.n} ;
|
||||
OrdDigits n = {s = n.s ! NOrd} ;
|
||||
|
||||
NumFloat n1 n2 = {s,sp = \\_,c => n1.s ! NCard ! Nom ++ BIND ++ "." ++ BIND ++ n2.s ! NCard ! c ; n = Pl} ;
|
||||
|
||||
NumNumeral numeral = {s,sp = \\d => numeral.s ! d ! NCard; n = numeral.n} ;
|
||||
OrdNumeral numeral = {s = numeral.s ! True ! NOrd} ;
|
||||
|
||||
|
||||
@@ -120,6 +120,11 @@ concrete NounEst of Noun = CatEst ** open ResEst, HjkEst, MorphoEst, Prelude in
|
||||
} ;
|
||||
OrdDigits numeral = {s = \\nc => numeral.s ! NOrd nc} ;
|
||||
|
||||
NumFloat n1 n2 = {
|
||||
s = \\n,c => n1.s ! NCard (NCase Sg Nom) ++ BIND ++ "." ++ BIND ++ n2.s ! NCard (NCase n c) ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
NumNumeral numeral = {
|
||||
s = \\n,c => numeral.s ! NCard (NCase n c) ;
|
||||
n = numeral.n
|
||||
|
||||
@@ -143,6 +143,11 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in
|
||||
} ;
|
||||
OrdDigits numeral = {s = \\f => numeral.s ! NOrd f} ;
|
||||
|
||||
NumFloat n1 n2 = {
|
||||
s = \\n,c => n1.s ! NCard (NCase Sg Nom) ++ BIND ++ "." ++ BIND ++ n2.s ! NCard (NCase n c) ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
NumNumeral numeral = {
|
||||
s = \\n,c => numeral.s ! NCard (NCase n c) ;
|
||||
n = numeral.n
|
||||
|
||||
@@ -122,6 +122,8 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
||||
NumDigits numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
|
||||
OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ;
|
||||
|
||||
NumFloat dig1 dig2 = {s = \\g,c => dig1.s ! invNum ++ BIND ++ "." ++ BIND ++ dig2.s ! NCard g c ; n = Pl } ;
|
||||
|
||||
NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
|
||||
OrdNumeral numeral = {s = \\af => numeral.s ! NOrd af} ;
|
||||
|
||||
|
||||
@@ -107,6 +107,12 @@ concrete NounKor of Noun = CatKor ** open ResKor, Prelude in {
|
||||
numtype = IsDig
|
||||
} ;
|
||||
|
||||
NumFloat dig1 dig2 = baseNum ** {
|
||||
s = \\_,_ => dig1.s ! NCard ++ BIND ++ "." ++ BIND ++ dig2.s ! NCard ;
|
||||
n = Pl ;
|
||||
numtype = IsDig
|
||||
} ;
|
||||
|
||||
-- : Numeral -> Card ;
|
||||
NumNumeral num = num ;
|
||||
|
||||
|
||||
@@ -189,6 +189,10 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude, Maybe in {
|
||||
-- 51
|
||||
NumDigits d = {s = d.s ; n = d.n} ;
|
||||
|
||||
-- Digits -> Digits -> Card
|
||||
-- 3.14
|
||||
NumFloat d1 d2 = {s = \\c => d1.s ! NumNom ++ BIND ++ "." ++ BIND ++ d2.s ! c ; n = d1.n} ;
|
||||
|
||||
-- Digits -> Ord
|
||||
-- 51st
|
||||
OrdDigits d = {s = d.s} ;
|
||||
|
||||
@@ -164,6 +164,8 @@ concrete NounPol of Noun = CatPol ** open ResPol, Prelude, PronounMorphoPol, Mor
|
||||
-- NumDigits : Digits -> Card ; -- 51
|
||||
NumDigits n = { s=\\_,_ => n.s; a=n.a; n=n.n };
|
||||
|
||||
NumFloat n1 n2 = { s=\\_,_ => n1.s ++ BIND ++ "." ++ BIND ++ n2.s; a=n1.a; n=Pl };
|
||||
|
||||
-- NumCard : Card -> Num ;
|
||||
NumCard c = c ** { hasCard = True };
|
||||
|
||||
|
||||
@@ -96,6 +96,8 @@ incomplete concrete NounRomance of Noun =
|
||||
NumDigits nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
||||
OrdDigits nu = {s = \\a => nu.s ! NOrd a.g a.n} ;
|
||||
|
||||
NumFloat n1 n2 = {s = \\g => n1.s ! NCard Masc ++ BIND ++ "." ++ BIND ++ n2.s ! NCard g ; n = Pl} ;
|
||||
|
||||
NumNumeral nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
||||
OrdNumeral nu = {s = \\a => nu.s ! NOrd a.g a.n} ;
|
||||
|
||||
|
||||
@@ -172,6 +172,9 @@ in {
|
||||
isPre = True
|
||||
};
|
||||
|
||||
NumFloat n1 n2 = {s,sp = \\g => n1.s ! NCard g ++ BIND ++ "." ++ BIND ++ n2.s ! NCard g ;
|
||||
size = n1.n; n = Pl };
|
||||
|
||||
NumNumeral nu = {s = \\g => nu.s ! ANomAcc ! (NCard g) ! Formal ;
|
||||
sp = \\g => nu.sp ! ANomAcc ! (NCard g) ! Formal ;
|
||||
n = getNumber nu.size ; size = nu.size };
|
||||
|
||||
@@ -87,6 +87,8 @@ lin
|
||||
-- : Digits -> Card ; -- 51
|
||||
NumDigits n = {s = \\_,_,_ => n.s ; size = n.size } ;
|
||||
|
||||
NumFloat n1 n2 = {s = \\_,_,_ => n1.s ++ BIND ++ "." ++ BIND ++ n2.s ; size = n1.size } ;
|
||||
|
||||
-- : Quant -> Num -> Det ; -- these five
|
||||
DetQuant quant num = {
|
||||
s=\\g,anim,cas => quant.s ! (gennum g (numSizeNumber num.size)) ! anim ! cas ++ num.s ! g ! anim ! cas ;
|
||||
|
||||
@@ -110,6 +110,8 @@ incomplete concrete NounScand of Noun =
|
||||
NumDigits nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
||||
OrdDigits nu = {s = nu.s ! NOrd SupWeak} ;
|
||||
|
||||
NumFloat n1 n2 = {s = \\g => n1.s ! NCard neutrum ++ BIND ++ "." ++ BIND ++ n2.s ! NCard g ; n = Pl} ;
|
||||
|
||||
NumNumeral nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
||||
OrdNumeral nu = {s = nu.s ! NOrd SupWeak} ;
|
||||
|
||||
|
||||
@@ -176,6 +176,10 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude
|
||||
s = n.s ! NCard ; n = n.n
|
||||
} ;
|
||||
|
||||
NumFloat n1 n2 = {
|
||||
s = \\n,c => n1.s ! NCard ! Sg ! Nom ++ BIND ++ "." ++ BIND ++ n2.s ! NCard ! n ! c ; n = Pl
|
||||
} ;
|
||||
|
||||
OrdNumeralSuperl n a = {
|
||||
s = \\num,cs => (n.s ! NOrd ! Sg ! cs) ++ a.s ! Sg ! cs
|
||||
} ;
|
||||
|
||||
Reference in New Issue
Block a user