nx_measurement_source_binding_gate.nx source
↩ module page · 48 lines · 4474 B
1// Read-only pure join gate, actual declaration ruler controls; no estate writes.
2import "nx_measurement_binding_lib.nx"
3import "nx_gate_verdict.nx"
4func pbg_valid(buf: *u8, scratch: *i64, sym: *i64) -> i64 { return pbm_validate(buf,bf_slen(buf),scratch,sym) }
5func pbg_count(buf: *u8, contract: *u8, scratch: *i64, sym: *i64) -> i64 { return pbm_count(buf,bf_slen(buf),contract,0,bf_slen(contract),scratch,sym) }
6func pbg_decl(buf: *u8) -> i64 { return sd_declared_buf(buf,bf_slen(buf),"target" as *u8) }
7func main() -> i64 {
8 let ctr: *i64=gv_ctr(); gv_head("SOURCE-BINDING" as *u8)
9 let sym: *i64=sys_mmap(3*8) as *i64; var scratch: i64=0
10 gv_check("identifier accepted" as *u8,pbm_ident("target" as *u8,0,6)==1,ctr)
11 gv_check("digit-leading identity refused" as *u8,pbm_ident("1target" as *u8,0,7)==0,ctr)
12 gv_check("empty identity refused" as *u8,pbm_ident("" as *u8,0,0)==0,ctr)
13 gv_check("punctuated identity refused" as *u8,pbm_ident("target()" as *u8,0,8)==0,ctr)
14 let one: *u8="label|runtime/a.nx|target|0|1|1|1|1|note\n" as *u8
15 gv_check("actual nine-field row shape accepted" as *u8,pbg_valid(one,&scratch,sym)==1,ctr)
16 gv_check("unique exact match" as *u8,pbg_count(one,"target" as *u8,&scratch,sym)==1,ctr)
17 gv_check("short prefix is not a match" as *u8,pbg_count(one,"tar" as *u8,&scratch,sym)==0,ctr)
18 gv_check("long prefix neighbor is not a match" as *u8,pbg_count(one,"targetx" as *u8,&scratch,sym)==0,ctr)
19 let two: *u8="one|runtime/a.nx|target\ntwo|runtime/_hdl_build/a.nx|target\n" as *u8
20 gv_check("same basename paths remain two rows" as *u8,pbg_count(two,"target" as *u8,&scratch,sym)==2,ctr)
21 let dup: *u8="one|runtime/a.nx|target\none|runtime/a.nx|target\n" as *u8
22 gv_check("identical duplicate rows are not collapsed" as *u8,pbg_count(dup,"target" as *u8,&scratch,sym)==2,ctr)
23 let watch: *u8="one|runtime/a.nx|_ABSENT_:target\n" as *u8
24 gv_check("watch effective symbol exact match" as *u8,pbg_count(watch,"target" as *u8,&scratch,sym)==1,ctr)
25 gv_check("watch form retained" as *u8,sym[2]==1,ctr)
26 let withheld: *u8="one|runtime/a.nx|_ABSENT_:target:knowledge/proof.json\n" as *u8
27 gv_check("withheld effective symbol exact match" as *u8,pbg_count(withheld,"target" as *u8,&scratch,sym)==1,ctr)
28 gv_check("withheld form retained" as *u8,sym[2]==2,ctr)
29 gv_check("bare absent has no join" as *u8,pbg_count("one|a.nx|_ABSENT_\n" as *u8,"target" as *u8,&scratch,sym)==0,ctr)
30 gv_check("empty watch refused" as *u8,pbg_valid("one|a.nx|_ABSENT_:\n" as *u8,&scratch,sym)<0,ctr)
31 gv_check("empty withheld precondition refused" as *u8,pbg_valid("one|a.nx|_ABSENT_:target:\n" as *u8,&scratch,sym)<0,ctr)
32 gv_check("malformed absence prefix refused" as *u8,pbg_valid("one|a.nx|_ABSENT_wrong\n" as *u8,&scratch,sym)<0,ctr)
33 gv_check("missing symbol field refused" as *u8,pbg_valid("one|a.nx\n" as *u8,&scratch,sym)<0,ctr)
34 gv_check("empty source field refused" as *u8,pbg_valid("one||target\n" as *u8,&scratch,sym)<0,ctr)
35 gv_check("empty matrix refuses negative census" as *u8,pbg_valid("" as *u8,&scratch,sym)<0,ctr)
36 gv_check("comment and metadata skipped" as *u8,pbg_valid("# prose\n@metadata\none|a.nx|target\n" as *u8,&scratch,sym)==1,ctr)
37 gv_check("CRLF accepted" as *u8,pbg_valid("one|a.nx|target\r\n" as *u8,&scratch,sym)==1,ctr)
38 gv_check("comment-only declaration mention is absent" as *u8,pbg_decl("// func target() -> i64 { return 1 }\n" as *u8)==0,ctr)
39 gv_check("call site is absent" as *u8,pbg_decl("func caller() -> i64 { return target() }\n" as *u8)==0,ctr)
40 gv_check("string mention is absent" as *u8,pbg_decl("const prose: *u8 = \"func target()\" as *u8\n" as *u8)==0,ctr)
41 gv_check("longer identifier declaration is absent" as *u8,pbg_decl("func targetx() -> i64 { return 1 }\n" as *u8)==0,ctr)
42 gv_check("exact declaration text is present" as *u8,pbg_decl("func target() -> i64 { return 1 }\n" as *u8)==1,ctr)
43 gv_check("constant presence illustrates declaration-not-function scope" as *u8,pbg_decl("const target: i64 = 1\n" as *u8)==1,ctr)
44 gv_check("multiline lexical ambiguity remains explicitly unverified" as *u8,pbg_decl("/*\nfunc target() -> i64 { return 1 }\n*/\n" as *u8)==1,ctr)
45 sys_munmap(sym as *u8,3*8)
46 let rc: i64=gv_verdict("SOURCE-BINDING" as *u8,ctr,"exact contract-to-row joins preserve gaps and ambiguity; declaration text is not syntax or behavior proof" as *u8)
47 sys_exit(rc); return rc
48}