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

Uses (16)

Used by (1)