scfg/test/fuzz/gen.ml

22 lines
495 B
OCaml
Raw Permalink Normal View History

2022-01-17 18:10:12 +01:00
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