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))))))

Uses (6)

Used by (1)