OCaml wire format DSL with EverParse 3D output for verified parsers
1(test
2 (name test)
3 (modules test test_wire)
4 (libraries wire alcotest re fmt))
5
6(executable
7 (name gen_3d)
8 (modules gen_3d)
9 (libraries wire))
10
11; EverParse integration tests
12; First generate .3d files, then run EverParse on them
13
14(rule
15 (targets Bitfields.3d Enumerations.3d FieldDependence.3d)
16 (deps gen_3d.exe)
17 (action
18 (run ./gen_3d.exe)))
19
20; EverParse 3D validation - runs 3d on generated .3d files
21; Requires 3d to be in PATH (e.g., via ~/.local/bin/3d)
22
23(rule
24 (alias 3d)
25 (deps Bitfields.3d Enumerations.3d FieldDependence.3d)
26 (action
27 (bash
28 "~/.local/everparse/bin/3d.exe --version && for f in *.3d; do ~/.local/everparse/bin/3d.exe --batch \"$f\" || exit 1; done")))
29
30; Note: C code generation for differential testing is in the diff/ directory