code wiki / _hdl_build / nx_css_cascade_test.nx

nx_css_cascade_test.nx

buildroot/runtime/_hdl_build/nx_css_cascade_test.nx

6830 B136 linesdepth 6pulls 8 transitivereach 0 importersview sourcekind gate/prooftopic css
docsdependenciesstructsconstsfunctions

about

nx_css_cascade_test.nx -- styling rung 2: HTML + a UA stylesheet -> per-element COMPUTED styles. The cascade (nx_css_apply / nx_css_selector_match) requires rules + elements to share ONE src buffer, so we build a combined [HTML][CSS] buffer: element tag offsets land in the HTML part, rule selector offsets in the CSS part, one shared src -> selector "h1" byte-matches tag "h1". Composes the rung-1 extractor + nx_css_tokenize/parse + nx_css_apply. expect_exit: 0.

dependencies 7 imports · 0 importers

nx_syscalls.nx nx_html_tokenizer.nx nx_dom_query.nx nx_css_selector_match.nx nx_css_tokenize.nx nx_css_parse.nx nx_css_apply.nx nx_css_cascade_test.nx

imports: nx_syscalls.nxnx_html_tokenizer.nxnx_dom_query.nxnx_css_selector_match.nxnx_css_tokenize.nxnx_css_parse.nxnx_css_apply.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main cc_slen sys_mmap cc_extract sys_mmap ↻ nx_html_cursor_init nx_html_next_token _scan_name _is_name _is_void_element _lc nx_dom_find_attr _dq_strlen _dq_find_substr_ci _dq_byte_eq_ci _dq_lc nx_css_cursor_init nx_css_parse_state_init nx_css_parse _css_advance_skip_ws nx_css_next_token _css_peek _css_is_space _css_is_hex _css_is_digit _css_consume_hex_run _css_peek ↻ _css_is_hex ↻ _css_is_ident_start _css_is_alpha _css_consume_string _css_peek ↻ _css_is_digit ↻ _css_consume_number _css_peek ↻ _css_is_digit ↻ _css_consume_ident _css_peek ↻ _css_is_ident_continue _css_is_alpha ↻

structs

none

consts

none

functions

14func cc_slen(s: *u8) -> i64 { var k: i64 = 0; while s[k] != (0 as u8) { k = k + 1 } return k }
15func cc_puts(s: *u8) -> i64 { sys_write(1, s, cc_slen(s)); return 0 }
called by 1: main calls 2: sys_writecc_slen
16func cc_pn(v: i64) -> i64 { let b: *u8=sys_mmap(20); var m: i64=v; let t: *u8=sys_mmap(20); var k: i64=0; if m==0{t[0]=48;k=1}; while m>0{t[k]=48+(m%10);m=m/10;k=k+1}; var i: i64=0; while i<k{b[i]=t[k-1-i];i=i+1}; sys_write(1,b,k); return 0 }
called by 1: main calls 2: sys_mmapsys_write
19func cc_extract(html: *u8, hlen: i64, elements: *CssElement, maxn: i64) -> i64
49func cc_region_is(src: *u8, off: i64, len: i64, lit: *u8) -> i64
called by 1: main calls 1: cc_slen
57func main() -> i64