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

Uses (6)

Used by (2)