nx_docket.nx source
↩ module page · 45 lines · 2017 B
1// nx_docket.nx -- Nishi Office docketing (F507) CLI/MCP organ: self-verifying demo over
2// nx_docket_lib. Data-driven URCP deadline rules + Rule 6 weekend roll + business-day mode.
3// license_tier: ORIGINAL
4
5import "nx_docket_lib.nx"
6const K_MAGIC_1460: i64 = 1460
7const K_MAGIC_1561: i64 = 1561
8
9func main() -> i64 {
10 let p: *u8 = "/tmp/nx_docket_demo-" as *u8
11 dk_rule_put(p, "answer" as *u8, 21, 0, "URCP12 answer" as *u8)
12 dk_rule_put(p, "appeal" as *u8, 30, 0, "URAP4 appeal" as *u8)
13 dk_rule_put(p, "SOL-PI" as *u8, K_MAGIC_1460, 0, "4yr PI statute" as *u8)
14 dk_rule_put(p, "disc" as *u8, 28, 0, "discovery response" as *u8)
15 dk_rule_put(p, "biz5" as *u8, 5, 1, "5 business days" as *u8)
16 let t: i64 = 100
17 let a: i64 = dk_compute(p, "answer" as *u8, t)
18 if a != 121 { return __syscall(93, 61, 0, 0, 0, 0, 0) }
19 let ap: i64 = dk_compute(p, "appeal" as *u8, t)
20 if ap != 130 { return __syscall(93, 62, 0, 0, 0, 0, 0) }
21 let sol: i64 = dk_compute(p, "SOL-PI" as *u8, t)
22 if sol != K_MAGIC_1561 { return __syscall(93, 63, 0, 0, 0, 0, 0) }
23 let d: i64 = dk_compute(p, "disc" as *u8, t)
24 if d != 128 { return __syscall(93, 64, 0, 0, 0, 0, 0) }
25 let bz: i64 = dk_compute(p, "biz5" as *u8, t)
26 if bz != 107 { return __syscall(93, 65, 0, 0, 0, 0, 0) }
27 let out: *u8 = sys_mmap(512)
28 var o: i64 = 0
29 o = mt_catcopy(out, o, "NISHI-DOCKET OK rules=5(data-driven) trigger=day" as *u8)
30 o = mt_catn(out, o, t)
31 o = mt_catcopy(out, o, " answer(21cal)=day" as *u8)
32 o = mt_catn(out, o, a)
33 o = mt_catcopy(out, o, " appeal(30cal)=day" as *u8)
34 o = mt_catn(out, o, ap)
35 o = mt_catcopy(out, o, " SOL-PI(1460cal)=day" as *u8)
36 o = mt_catn(out, o, sol)
37 o = mt_catcopy(out, o, "[URCP-Rule6-rolled-from-Sun] disc(28cal)=day" as *u8)
38 o = mt_catn(out, o, d)
39 o = mt_catcopy(out, o, " biz5(5biz)=day" as *u8)
40 o = mt_catn(out, o, bz)
41 out[o] = 10 as u8
42 o = o + 1
43 sys_write(1, out, o)
44 return __syscall(93, 0, 0, 0, 0, 0, 0)
45}