def num.trans
bend-kit-json@0.7.0.0 · json.bend:126
import bend-kit-json@0.7.0.0/json.bend as Json
import Base
126def num.trans(+st: U32, +c: U32) -> U32:
127 +d = digit(c)
128 +z = U32.is_eq(c, 48)
129 +dot = U32.is_eq(c, 46)
130 +e = Bool.or(U32.is_eq(c, 101), U32.is_eq(c, 69))
131 +sign = Bool.or(U32.is_eq(c, 43), U32.is_eq(c, 45))
132 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))),
133 Bool.pick(U32, U32.is_eq(st, 1), Bool.pick(U32, z, 2, Bool.pick(U32, d, 3, 99)),
134 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))),
135 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)),
136 Bool.pick(U32, U32.is_eq(st, 6), Bool.pick(U32, sign, 7, Bool.pick(U32, d, 8, 99)),
137 Bool.pick(U32, Bool.or(U32.is_eq(st, 7), U32.is_eq(st, 8)), Bool.pick(U32, d, 8, 99), 99))))))