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}