observe_pass -> ASM.pseudo_assembly_program -> ASM.labelled_object_code
Errors.res **)
let assembler observe p =
+prerr_endline "Y1";
Obj.magic
(Monad.m_bind0 (Monad.max_def Errors.res0)
(Obj.magic
(Errors.opt_to_res (Errors.msg ErrorMessages.Jump_expansion_failed)
(Policy.jump_expansion' p))) (fun sigma_pol ->
+prerr_endline "Y2";
let sigma = fun ppc -> (Types.pi1 sigma_pol).Types.fst ppc in
let pol = fun ppc -> (Types.pi1 sigma_pol).Types.snd ppc in
let i =
Obj.magic observe Assembly_pass { Types.fst = { Types.fst = p;
Types.snd = sigma }; Types.snd = pol }
in
+prerr_endline "Y3";
let p0 = Assembly.assembly p sigma pol in
+prerr_endline "Y4";
let i0 = Obj.magic observe Object_code_pass (Types.pi1 p0) in
+prerr_endline "Y5";
Obj.magic (Errors.OK (Types.pi1 p0))))
open StructuredTraces