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

Uses (13)

Used by (1)