def wf.flo.step

emerging-eztoml@0.9.0.0 · main.bend:6174

import emerging-eztoml@0.9.0.0/main.bend as EmergingEztoml
import Base

6174# one character of a float's spelling
6175def wf.flo.step(st: Fl, +cc: Char) -> Fl:
6176  match st:
6177    case FlStart{}:
6178      Bool.pick(Fl, Char.is_eq(cc, '0'), FlZero{}, Bool.pick(Fl, Char.is_digit(cc), FlInt{}, FlNo{}))
6179    case FlZero{}:
6180      wf.flo.tail(cc)
6181    case FlInt{}:
6182      Bool.pick(Fl, Char.is_digit(cc), FlInt{}, wf.flo.tail(cc))
6183    case FlDot{}:
6184      Bool.pick(Fl, Char.is_digit(cc), FlFrac{}, FlNo{})
6185    case FlFrac{}:
6186      Bool.pick(Fl, Char.is_digit(cc), FlFrac{}, Bool.pick(Fl, wf.flo.is_e(cc), FlE{}, FlNo{}))
6187    case FlE{}:
6188      Bool.pick(Fl, Bool.or(Char.is_eq(cc, '+'), Char.is_eq(cc, '-')), FlESign{},
6189        Bool.pick(Fl, Char.is_digit(cc), FlExp{}, FlNo{}))
6190    case FlESign{}:
6191      Bool.pick(Fl, Char.is_digit(cc), FlExp{}, FlNo{})
6192    case FlExp{}:
6193      Bool.pick(Fl, Char.is_digit(cc), FlExp{}, FlNo{})
6194    case FlNo{}:
6195      FlNo{}

Uses (8)

Used by (1)