mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-18 15:50:19 -06:00
The new Decimal API
This commit is contained in:
@@ -84,7 +84,8 @@ lincat
|
||||
Num = {s : Str ; sp : RCase => Str ; n : Number ; isNum : Bool} ;
|
||||
Card = {s : Str ; sp : RCase => Str ; n : Number} ;
|
||||
Numeral = {s : CardOrd => Str; n : Number} ;
|
||||
Digits = {s : CardOrd => Str ; n : Number} ;
|
||||
Digits = {s : CardOrd => Str ; n : Number} ;
|
||||
Decimal = {s : CardOrd => Str ; n : Number; hasDot : Bool} ;
|
||||
|
||||
-- Structural
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ lin
|
||||
|
||||
NumCard n = n ** {isNum = True} ;
|
||||
|
||||
NumDigits,NumNumeral = \numeral -> {
|
||||
NumDigits,NumNumeral,NumDecimal = \numeral -> {
|
||||
s = numeral.s ! NCard ;
|
||||
sp = \\_ => numeral.s ! NCard ;
|
||||
n = numeral.n
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--# -path=.:../abstract:../common:../prelude
|
||||
|
||||
concrete NumeralMon of Numeral = CatMon [Numeral,Digits] ** open ResMon, MorphoMon, Prelude in {
|
||||
concrete NumeralMon of Numeral = CatMon [Numeral,Digits,Decimal] ** open ResMon, MorphoMon, Prelude in {
|
||||
|
||||
flags coding=utf8 ;
|
||||
|
||||
@@ -158,6 +158,20 @@ lin
|
||||
D_8 = mkDig "8" ;
|
||||
D_9 = mkDig "9" ;
|
||||
|
||||
PosDecimal d = d ** {hasDot=False} ;
|
||||
NegDecimal d = {
|
||||
s = \\co => "-" ++ BIND ++ d.s ! co ;
|
||||
n = Pl ;
|
||||
hasDot=False
|
||||
} ;
|
||||
IFrac d i = {
|
||||
s = \\co => d.s ! NCard ++
|
||||
if_then_Str d.hasDot BIND (BIND++"."++BIND) ++
|
||||
i.s ! co;
|
||||
n = Pl ;
|
||||
hasDot=True
|
||||
} ;
|
||||
|
||||
oper
|
||||
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
|
||||
mkDig : Str -> TDigit = \c -> mk2Dig c (c + "-р") ;
|
||||
|
||||
Reference in New Issue
Block a user