123456789101112131415161718192021222324252627282930313233343536373839404142434445464748openPpxlibopenExtension(* An expect declaration resembles [%%expect {tag|...|tag}]. We allow arbitrary tags so
that users can escape their strings properly if need be. *)letexpect=Expert.declare"expect"Context.expression(Ppx_expect_payload.pattern())(Ppx_expect_payload.make~kind:Normal);;(* An expect extension without pretty formatting *)letexpect_exact=Expert.declare"expect_exact"Context.expression(Ppx_expect_payload.pattern())(Ppx_expect_payload.make~kind:Exact);;letexpect_output=Expert.declare"@expect.output"Context.expression(Ppx_expect_payload.pattern())(Ppx_expect_payload.make~kind:Output);;letexpect_unreachable=Expert.declare"@expect.unreachable"Context.expression(Ppx_expect_payload.pattern())(Ppx_expect_payload.make~kind:Unreachable);;letexpectations=[expect;expect_exact;expect_output;expect_unreachable]letmatch_expectatione=matche.pexp_descwith|Pexp_extensionextension->(matchExpert.convertexpectations~loc:e.pexp_locextensionwith|None->None|Somef->Some(f~extension_id_loc:(fstextension).loc))|_->None;;