def color.tokens.word
gralha-svg-render@0.1.0.1 · svg.bend:709
import gralha-svg-render@0.1.0.1/svg.bend as Svg
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
709def color.tokens.word(+scan: U.Scan, next: String -> List<&2, ColorToken>) -> List<&2, ColorToken>:
710 U.Scan{word, rest} = scan
711 +s = U.trim(rest)
712 +token = word
713 +comma = U.prefix(s, ",")
714 +slash = U.prefix(s, "/")
715 +end = U.prefix(s, ")") && U.string.equal(U.trim(U.drop(s, ")")), "")
716 +spaced = Bool.not(U.string.equal(rest, s))
717 +sep = U.choose(U32, end, 0, U.choose(U32, comma, 2, U.choose(U32, slash, 3, U.choose(U32, spaced, 1, 9))))
718 +tail = U.choose(String, comma, U.drop(s, ","), U.choose(String, slash, U.drop(s, "/"), s))
719 Con{color.token(token, sep), U.choose(Unit -> List<&2, ColorToken>, end || U32.is_eq(sep, 9), _ => Nil{}, _ => next(tail))(Unit{})}