code wiki / _hdl_build / nx_workspace_parse_probe_t51.nx
nx_workspace_parse_probe_t51.nx source
↩ module page · 19 lines · 928 B
1import "../nx_js_parse.nx"
2import "nx_gate_verdict.nx"
3func main(argc:i64,argv:*i64)->i64{
4 if argc!=2{return 2}
5 let c:*i64=gv_ctr()
6 let box:*i64=sys_mmap(16) as *i64
7 jp_parse_source("const x=1;",10,box)
8 gv_check("valid control accepted",jp_err(box[0] as *i64)==0,c)
9 jp_parse_source("const x=;",9,box)
10 gv_check("balanced invalid control rejected",jp_err(box[0] as *i64)!=0,c)
11 let len:*i64=sys_mmap(16) as *i64
12 let src:*u8=sys_read_file(argv[1] as *u8,len)
13 if src==(0 as *u8)||len[0]<=0{return 3}
14 jp_parse_source(src,len[0],box)
15 let ctx:*i64=box[0] as *i64
16 jq_puts("source_bytes=");jq_putn(len[0]);jq_puts(" error=");jq_putn(jp_err(ctx));jq_puts(" first_error_byte=");jq_putn(jp_err_pos(ctx));jq_puts("\n")
17 gv_check("workspace parses with existing sovereign parser",jp_err(ctx)==0,c)
18 return gv_verdict("WORKSPACE-PARSER",c,"parser compatibility only; no DOM, execution, browser or ECMAScript completeness claim")
19}