def classify.go

emerging-ezjson@1.3.0.0 · src/lex.bend:52

import emerging-ezjson@1.3.0.0/src/lex.bend as Lex
import Base

52# a char's class, by code point. Written as comparisons rather than as
53# `case '[':` arms: a character literal in a pattern is a U32 literal inside a
54# constructor pattern, and bend's C backend pays about 90 MB for each one.
55def classify.go(+cp: U32) -> Class:
56  Bool.pick(Class, U32.is_eq(cp, 91), CPunct{TOpenArr{}},  # '['
57  Bool.pick(Class, U32.is_eq(cp, 93), CPunct{TCloseArr{}},  # ']'
58  Bool.pick(Class, U32.is_eq(cp, 123), CPunct{TOpenObj{}},  # '{'
59  Bool.pick(Class, U32.is_eq(cp, 125), CPunct{TCloseObj{}},  # '}'
60  Bool.pick(Class, U32.is_eq(cp, 58), CPunct{TColon{}},  # ':'
61  Bool.pick(Class, U32.is_eq(cp, 44), CPunct{TComma{}},  # ','
62  Bool.pick(Class, U32.is_eq(cp, 34), CQuote{},  # '"'
63  Bool.pick(Class, U32.is_eq(cp, 92), CBack{},  # '\\'
64  Bool.pick(Class, U32.is_eq(cp, 32), CSpace{},  # ' '
65  Bool.pick(Class, U32.is_eq(cp, 10), CSpace{},  # '\n'
66  Bool.pick(Class, U32.is_eq(cp, 13), CSpace{},  # '\r'
67  Bool.pick(Class, U32.is_eq(cp, 9), CSpace{},  # '\t'
68    COther{}))))))))))))

Uses (5)

Used by (1)