def css.score
gralha-css-style@0.1.0.1 · css.bend:240
import gralha-css-style@0.1.0.1/css.bend as Css
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
240def css.score(+fuel: Nat, +s: String) -> U32:
241 match fuel s:
242 case 0n _: 0
243 case 1n+d SNil{}: 0
244 case 1n+d SCon{Chr{c}, t}:
245 U.branch(U32, U32.is_eq(c, 42), _ => css.score(d, t),
246 _ => U.branch(U32, U32.is_eq(c, 35) || U32.is_eq(c, 46),
247 _ => css.score.scan(css.ident(t, ""), U.choose(U32, U32.is_eq(c, 35), 1000000, 1000), rest => css.score(d, rest)),
248 _ => U.branch(U32, U32.is_eq(c, 91),
249 _ => css.score.scan(css.scan(t, 93), 1000, rest => css.score(d, U.drop(rest, "]"))),
250 _ => U.branch(U32, U32.is_eq(c, 58),
251 _ => css.score.pseudo(css.ident(t, ""), rest => css.score(d, rest), arg => css.score(d, arg)),
252 _ => css.score.scan(css.ident(s, ""), 1, rest => css.score(d, rest))))))