def number.finish
gralha-text-scan@0.1.0.1 · scan.bend:177
import gralha-text-scan@0.1.0.1/scan.bend as Scan
import Base
177
178def number.finish(rest: String, mark: String, +stage: U32, +sign: F32, +mant: F32, +div: F32, +esign: F32, +ev: U32, +digits: Bool, +edigits: Bool) -> Number:
179 +dangling = U32.is_ge(stage, 3) && Bool.not(edigits)
180 +scale = number.pow10(U32.to_nat(choose(U32, dangling, 0, ev)), 1.0)
181 +v = (sign * mant / choose(F32, F32.is_gt(div, 0.0), div, 1.0) : F32)
182 Number{choose(F32, F32.is_lt(esign, 0.0), (v / scale : F32), (v * scale : F32)), number.tail(dangling, mark, rest), digits}