def num.trans
bend-net-json@0.3.0.0 · json.bend:75
import bend-net-json@0.3.0.0/json.bend as Json
import Base
75def num.trans(+st: U32, +c: U32) -> U32:
76 +d = digit(c)
77 +z = U32.is_eq(c, 48)
78 +dot = U32.is_eq(c, 46)
79 +e = Bool.or(U32.is_eq(c, 101), U32.is_eq(c, 69))
80 +sign = Bool.or(U32.is_eq(c, 43), U32.is_eq(c, 45))
81 Bool.pick(U32, U32.is_eq(st, 0), Bool.pick(U32, U32.is_eq(c, 45), 1, Bool.pick(U32, z, 2, Bool.pick(U32, d, 3, 99))),
82 Bool.pick(U32, U32.is_eq(st, 1), Bool.pick(U32, z, 2, Bool.pick(U32, d, 3, 99)),
83 Bool.pick(U32, Bool.or(U32.is_eq(st, 2), U32.is_eq(st, 3)), Bool.pick(U32, Bool.and(d, U32.is_eq(st, 3)), 3, Bool.pick(U32, dot, 4, Bool.pick(U32, e, 6, 99))),
84 Bool.pick(U32, Bool.or(U32.is_eq(st, 4), U32.is_eq(st, 5)), Bool.pick(U32, d, 5, Bool.pick(U32, Bool.and(e, U32.is_eq(st, 5)), 6, 99)),
85 Bool.pick(U32, U32.is_eq(st, 6), Bool.pick(U32, sign, 7, Bool.pick(U32, d, 8, 99)),
86 Bool.pick(U32, Bool.or(U32.is_eq(st, 7), U32.is_eq(st, 8)), Bool.pick(U32, d, 8, 99), 99))))))