forked from GitHub/gf-rgl
comma instead of dot and space separator in Romance decimals
This commit is contained in:
@@ -140,11 +140,12 @@ param
|
|||||||
Dig = TDigit ;
|
Dig = TDigit ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
IDig d = d ;
|
IDig d = d ** {tail = T1} ;
|
||||||
|
|
||||||
IIDig d i = {
|
IIDig d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++ BIND ++ i.s ! o ;
|
s = \\o => d.s ! NCard Masc ++ spaceIf i.tail ++ i.s ! o ;
|
||||||
n = Pl
|
n = Pl ;
|
||||||
|
tail = inc i.tail
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
D_0 = mkDig "0" ;
|
D_0 = mkDig "0" ;
|
||||||
@@ -166,12 +167,24 @@ param
|
|||||||
} ;
|
} ;
|
||||||
IFrac d i = {
|
IFrac d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++
|
s = \\o => d.s ! NCard Masc ++
|
||||||
if_then_Str d.hasDot BIND (BIND++"."++BIND) ++
|
if_then_Str d.hasDot BIND (BIND++","++BIND) ++
|
||||||
i.s ! o ;
|
i.s ! o ;
|
||||||
n = Pl ;
|
n = Pl ;
|
||||||
hasDot=True
|
hasDot=True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
spaceIf : DTail -> Str = \t -> case t of {
|
||||||
|
T3 => SOFT_SPACE ;
|
||||||
|
_ => BIND
|
||||||
|
} ;
|
||||||
|
|
||||||
|
inc : DTail -> DTail = \t -> case t of {
|
||||||
|
T1 => T2 ;
|
||||||
|
T2 => T3 ;
|
||||||
|
T3 => T1
|
||||||
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
|
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
|
||||||
mkDig : Str -> TDigit = \c -> mk2Dig c (c + ":o") ;
|
mkDig : Str -> TDigit = \c -> mk2Dig c (c + ":o") ;
|
||||||
|
|||||||
@@ -153,11 +153,12 @@ oper hyphen = BIND ++ "-" ++ BIND ;
|
|||||||
Dig = TDigit ;
|
Dig = TDigit ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
IDig d = d ;
|
IDig d = d ** {tail = T1} ;
|
||||||
|
|
||||||
IIDig d i = {
|
IIDig d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++ BIND ++ i.s ! o ;
|
s = \\o => d.s ! NCard Masc ++ spaceIf i.tail ++ i.s ! o ;
|
||||||
n = Pl
|
n = Pl ;
|
||||||
|
tail = inc i.tail
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
D_0 = mkDig "0" ;
|
D_0 = mkDig "0" ;
|
||||||
@@ -179,12 +180,24 @@ oper hyphen = BIND ++ "-" ++ BIND ;
|
|||||||
} ;
|
} ;
|
||||||
IFrac d i = {
|
IFrac d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++
|
s = \\o => d.s ! NCard Masc ++
|
||||||
if_then_Str d.hasDot BIND (BIND++"."++BIND) ++
|
if_then_Str d.hasDot BIND (BIND++","++BIND) ++
|
||||||
i.s ! o ;
|
i.s ! o ;
|
||||||
n = Pl ;
|
n = Pl ;
|
||||||
hasDot=True
|
hasDot=True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
spaceIf : DTail -> Str = \t -> case t of {
|
||||||
|
T3 => SOFT_SPACE ;
|
||||||
|
_ => BIND
|
||||||
|
} ;
|
||||||
|
|
||||||
|
inc : DTail -> DTail = \t -> case t of {
|
||||||
|
T1 => T2 ;
|
||||||
|
T2 => T3 ;
|
||||||
|
T3 => T1
|
||||||
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
|
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
|
||||||
mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ème") ;
|
mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ème") ;
|
||||||
|
|||||||
@@ -120,11 +120,12 @@ param Pred = pred | indip ;
|
|||||||
Dig = TDigit ;
|
Dig = TDigit ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
IDig d = d ;
|
IDig d = d ** {tail = T1} ;
|
||||||
|
|
||||||
IIDig d i = {
|
IIDig d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++ BIND ++ i.s ! o ;
|
s = \\o => d.s ! NCard Masc ++ spaceIf i.tail ++ i.s ! o ;
|
||||||
n = Pl
|
n = Pl ;
|
||||||
|
tail = inc i.tail
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
D_0 = mkDig "0" ;
|
D_0 = mkDig "0" ;
|
||||||
@@ -146,12 +147,24 @@ param Pred = pred | indip ;
|
|||||||
} ;
|
} ;
|
||||||
IFrac d i = {
|
IFrac d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++
|
s = \\o => d.s ! NCard Masc ++
|
||||||
if_then_Str d.hasDot BIND (BIND++"."++BIND) ++
|
if_then_Str d.hasDot BIND (BIND++","++BIND) ++
|
||||||
i.s ! o;
|
i.s ! o;
|
||||||
n = Pl ;
|
n = Pl ;
|
||||||
hasDot=True
|
hasDot=True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
spaceIf : DTail -> Str = \t -> case t of {
|
||||||
|
T3 => SOFT_SPACE ;
|
||||||
|
_ => BIND
|
||||||
|
} ;
|
||||||
|
|
||||||
|
inc : DTail -> DTail = \t -> case t of {
|
||||||
|
T1 => T2 ;
|
||||||
|
T2 => T3 ;
|
||||||
|
T3 => T1
|
||||||
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mkDig : Str -> TDigit = \c -> mk2Dig c Pl ;
|
mkDig : Str -> TDigit = \c -> mk2Dig c Pl ;
|
||||||
|
|
||||||
|
|||||||
@@ -189,11 +189,12 @@ concrete NumeralPor of Numeral = CatPor [Numeral,Digits,Decimal] **
|
|||||||
Dig = TDigit ;
|
Dig = TDigit ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
IDig d = d ;
|
IDig d = d ** {tail = T1} ;
|
||||||
|
|
||||||
IIDig d i = {
|
IIDig d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++ BIND ++ i.s ! o ;
|
s = \\o => d.s ! NCard Masc ++ spaceIf i.tail ++ i.s ! o ;
|
||||||
n = Pl
|
n = Pl ;
|
||||||
|
tail = inc i.tail
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
D_0 = mkDig "0" Sg ;
|
D_0 = mkDig "0" Sg ;
|
||||||
@@ -215,12 +216,24 @@ concrete NumeralPor of Numeral = CatPor [Numeral,Digits,Decimal] **
|
|||||||
} ;
|
} ;
|
||||||
IFrac d i = {
|
IFrac d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++
|
s = \\o => d.s ! NCard Masc ++
|
||||||
if_then_Str d.hasDot BIND (BIND++"."++BIND) ++
|
if_then_Str d.hasDot BIND (BIND++","++BIND) ++
|
||||||
i.s ! o;
|
i.s ! o;
|
||||||
n = Pl ;
|
n = Pl ;
|
||||||
hasDot=True
|
hasDot=True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
spaceIf : DTail -> Str = \t -> case t of {
|
||||||
|
T3 => SOFT_SPACE ;
|
||||||
|
_ => BIND
|
||||||
|
} ;
|
||||||
|
|
||||||
|
inc : DTail -> DTail = \t -> case t of {
|
||||||
|
T1 => T2 ;
|
||||||
|
T2 => T3 ;
|
||||||
|
T3 => T1
|
||||||
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mk4Dig : Str -> Str -> Str -> Number -> TDigit = \c,o,a,n -> {
|
mk4Dig : Str -> Str -> Str -> Number -> TDigit = \c,o,a,n -> {
|
||||||
s = table {
|
s = table {
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol,MU]
|
|||||||
-- Numeral
|
-- Numeral
|
||||||
|
|
||||||
Numeral = {s : CardOrd => Str ; n : Number} ;
|
Numeral = {s : CardOrd => Str ; n : Number} ;
|
||||||
Digits = {s : CardOrd => Str ; n : Number} ;
|
Digits = {s : CardOrd => Str ; n : Number ; tail : DTail} ;
|
||||||
Decimal = {s : CardOrd => Str ; n : Number ; hasDot : Bool} ;
|
Decimal = {s : CardOrd => Str ; n : Number ; hasDot : Bool} ;
|
||||||
|
|
||||||
-- Structural
|
-- Structural
|
||||||
|
|||||||
@@ -114,11 +114,12 @@ param
|
|||||||
Dig = TDigit ;
|
Dig = TDigit ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
IDig d = d ;
|
IDig d = d ** {tail = T1} ;
|
||||||
|
|
||||||
IIDig d i = {
|
IIDig d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++ BIND ++ i.s ! o ;
|
s = \\o => d.s ! NCard Masc ++ spaceIf i.tail ++ i.s ! o ;
|
||||||
n = Pl
|
n = Pl ;
|
||||||
|
tail = inc i.tail
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
D_0 = mkDig "0" ;
|
D_0 = mkDig "0" ;
|
||||||
@@ -140,12 +141,24 @@ param
|
|||||||
} ;
|
} ;
|
||||||
IFrac d i = {
|
IFrac d i = {
|
||||||
s = \\o => d.s ! NCard Masc ++
|
s = \\o => d.s ! NCard Masc ++
|
||||||
if_then_Str d.hasDot BIND (BIND++"."++BIND) ++
|
if_then_Str d.hasDot BIND (BIND++","++BIND) ++
|
||||||
i.s ! o ;
|
i.s ! o ;
|
||||||
n = Pl ;
|
n = Pl ;
|
||||||
hasDot=True
|
hasDot=True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
spaceIf : DTail -> Str = \t -> case t of {
|
||||||
|
T3 => SOFT_SPACE ;
|
||||||
|
_ => BIND
|
||||||
|
} ;
|
||||||
|
|
||||||
|
inc : DTail -> DTail = \t -> case t of {
|
||||||
|
T1 => T2 ;
|
||||||
|
T2 => T3 ;
|
||||||
|
T3 => T1
|
||||||
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
|
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
|
||||||
mkDig : Str -> TDigit = \c -> mk2Dig c (c + ":o") ;
|
mkDig : Str -> TDigit = \c -> mk2Dig c (c + ":o") ;
|
||||||
|
|||||||
Reference in New Issue
Block a user