scfg/test/fuzz/gen.ml
2026-03-16 23:53:42 +01:00

21 lines
495 B
OCaml

open Crowbar
let ( let* ) = dynamic_bind
let ( let+ ) = map
let unicode_bytes =
let+ values = [ list1 uchar ] in
let buf = Buffer.create (List.length values) in
List.iter (fun u -> Buffer.add_utf_8_uchar buf u) values;
Buffer.contents buf
let directive =
fix (fun directive ->
let* name = unicode_bytes in
let* params = list unicode_bytes in
let+ children = [ list directive ] in
let open Scfg.Types in
{ name; params; children } )
let config = list directive