diff --git a/CHANGES.md b/CHANGES.md index 6217c43fe6..cb0a415455 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -19,6 +19,7 @@ * Compiler: warn on joo_global_object * Compiler: revisit static env handling (#1708) * Compiler: Emit index source_map to avoid changing mappings (#1714, #1715) +* Compiler: improved source map generation (#1716) * Runtime: change Sys.os_type on windows (Cygwin -> Win32) * Runtime: backtraces are really expensive, they need to be be explicitly requested at compile time (--enable with-js-error) or at startup (OCAMLRUNPARAM=b=1) diff --git a/compiler/bin-js_of_ocaml/compile.ml b/compiler/bin-js_of_ocaml/compile.ml index 8f4e184c34..440648a896 100644 --- a/compiler/bin-js_of_ocaml/compile.ml +++ b/compiler/bin-js_of_ocaml/compile.ml @@ -79,7 +79,9 @@ let find_source file = match Builtins.find file with | Some f -> Some (Source_map.Source_content.create (Builtins.File.content f)) | None -> - if Sys.file_exists file && not (Sys.is_directory file) + if String.equal file Js_output.blackbox_filename + then Some (Source_map.Source_content.create "(* generated code *)") + else if Sys.file_exists file && not (Sys.is_directory file) then let content = Fs.read_file file in Some (Source_map.Source_content.create content) @@ -99,9 +101,18 @@ let sourcemap_section_of_info | None -> filename | Some _ -> Filename.concat "/builtin" filename) in + let ignore_list = + List.filter sources ~f:(fun filename -> String.is_prefix ~prefix:"/builtin/" filename) + in let offset, mappings = Source_map.Mappings.encode_with_offset mappings in let map = - { (base : Source_map.Standard.t) with sources; sources_content; names; mappings } + { (base : Source_map.Standard.t) with + sources + ; sources_content + ; names + ; mappings + ; ignore_list + } in { Source_map.Index.offset; map } diff --git a/compiler/lib/code.ml b/compiler/lib/code.ml index ee704a6a5c..2b2a0f84ec 100644 --- a/compiler/lib/code.ml +++ b/compiler/lib/code.ml @@ -75,10 +75,6 @@ module Var : sig val compare : t -> t -> int - val get_loc : t -> Parse_info.t option - - val loc : t -> Parse_info.t -> unit - val name : t -> string -> unit val get_name : t -> string option @@ -157,13 +153,10 @@ end = struct let printer = Var_printer.create Var_printer.Alphabet.javascript - let locations = Hashtbl.create 17 - let last_var = ref 0 let reset () = last_var := 0; - Hashtbl.clear locations; Var_printer.reset printer let to_string ?origin i = Var_printer.to_string printer ?origin i @@ -174,14 +167,6 @@ end = struct let name i nm = Var_printer.name printer i nm - let loc i pi = Hashtbl.add locations i pi - - (*; - Format.eprintf "loc for %d : %d-%d\n%!" - i pi.Parse_info.line pi.Parse_info.col - *) - let get_loc i = try Some (Hashtbl.find locations i) with Not_found -> None - let fresh () = incr last_var; !last_var @@ -199,11 +184,7 @@ end = struct let get_name i = Var_printer.get_name printer i - let propagate_name i j = - Var_printer.propagate_name printer i j; - match get_loc i with - | None -> () - | Some l -> loc j l + let propagate_name i j = Var_printer.propagate_name printer i j let set_pretty b = Var_printer.set_pretty printer b @@ -446,6 +427,7 @@ type instr = | Set_field of Var.t * int * field_type * Var.t | Offset_ref of Var.t * int | Array_set of Var.t * Var.t * Var.t + | Event of Parse_info.t type last = | Return of Var.t @@ -604,6 +586,7 @@ module Print = struct | Offset_ref (x, i) -> Format.fprintf f "%a[0] += %d" Var.print x i | Array_set (x, y, z) -> Format.fprintf f "%a[%a] = %a" Var.print x Var.print y Var.print z + | Event loc -> Format.fprintf f "event %s" (Parse_info.to_string loc) let last f (l, _loc) = match l with @@ -905,6 +888,13 @@ let invariant { blocks; start; _ } = | Set_field (_, _i, _, _) -> () | Offset_ref (_x, _i) -> () | Array_set (_x, _y, _z) -> () + | Event _ -> () + in + let rec check_events l = + match l with + | (Event _, _) :: (Event _, _) :: _ -> assert false + | _ :: r -> check_events r + | [] -> () in let check_last (l, _loc) = match l with @@ -925,5 +915,6 @@ let invariant { blocks; start; _ } = (fun _pc block -> List.iter block.params ~f:define; List.iter block.body ~f:check_instr; + check_events block.body; check_last block.branch) blocks) diff --git a/compiler/lib/code.mli b/compiler/lib/code.mli index 699aa220fb..38748e3a42 100644 --- a/compiler/lib/code.mli +++ b/compiler/lib/code.mli @@ -68,10 +68,6 @@ module Var : sig val compare : t -> t -> int - val loc : t -> Parse_info.t -> unit - - val get_loc : t -> Parse_info.t option - val get_name : t -> string option val name : t -> string -> unit @@ -229,6 +225,7 @@ type instr = | Set_field of Var.t * int * field_type * Var.t | Offset_ref of Var.t * int | Array_set of Var.t * Var.t * Var.t + | Event of Parse_info.t type last = | Return of Var.t diff --git a/compiler/lib/deadcode.ml b/compiler/lib/deadcode.ml index 23a7efc0e5..3cbc7ec68a 100644 --- a/compiler/lib/deadcode.ml +++ b/compiler/lib/deadcode.ml @@ -90,7 +90,7 @@ and mark_reachable st pc = List.iter block.body ~f:(fun (i, _loc) -> match i with | Let (_, e) -> if not (pure_expr st.pure_funs e) then mark_expr st e - | Assign _ -> () + | Event _ | Assign _ -> () | Set_field (x, _, _, y) -> ( match st.defs.(Var.idx x) with | [ Expr (Block _) ] when st.live.(Var.idx x) = 0 -> @@ -125,7 +125,7 @@ let live_instr st i = match i with | Let (x, e) -> st.live.(Var.idx x) > 0 || not (pure_expr st.pure_funs e) | Assign (x, _) | Set_field (x, _, _, _) -> st.live.(Var.idx x) > 0 - | Offset_ref _ | Array_set _ -> true + | Event _ | Offset_ref _ | Array_set _ -> true let rec filter_args st pl al = match pl, al with @@ -201,7 +201,8 @@ let f ({ blocks; _ } as p : Code.program) = match i with | Let (x, e) -> add_def defs x (Expr e) | Assign (x, y) -> add_def defs x (Var y) - | Set_field (_, _, _, _) | Array_set (_, _, _) | Offset_ref (_, _) -> ()); + | Event _ | Set_field (_, _, _, _) | Array_set (_, _, _) | Offset_ref (_, _) -> + ()); match fst block.branch with | Return _ | Raise _ | Stop -> () | Branch cont -> add_cont_dep blocks defs cont @@ -228,10 +229,16 @@ let f ({ blocks; _ } as p : Code.program) = pc { params = List.filter block.params ~f:(fun x -> st.live.(Var.idx x) > 0) ; body = - List.filter_map block.body ~f:(fun (i, loc) -> - if live_instr st i - then Some (filter_closure all_blocks st i, loc) - else None) + List.fold_left block.body ~init:[] ~f:(fun acc (i, loc) -> + match i, acc with + | Event _, (Event _, _) :: prev -> + (* Avoid consecutive events (keep just the last one) *) + (i, loc) :: prev + | _ -> + if live_instr st i + then (filter_closure all_blocks st i, loc) :: acc + else acc) + |> List.rev ; branch = filter_live_last all_blocks st block.branch } blocks) diff --git a/compiler/lib/duplicate.ml b/compiler/lib/duplicate.ml index 9ea4aefb59..37c80fb469 100644 --- a/compiler/lib/duplicate.ml +++ b/compiler/lib/duplicate.ml @@ -44,6 +44,7 @@ let instr s i = | Set_field (x, n, typ, y) -> Set_field (s x, n, typ, s y) | Offset_ref (x, n) -> Offset_ref (s x, n) | Array_set (x, y, z) -> Array_set (s x, s y, s z) + | Event _ -> i let instrs s l = List.map l ~f:(fun (i, loc) -> instr s i, loc) diff --git a/compiler/lib/effects.ml b/compiler/lib/effects.ml index 5cbaf29ac9..2c3d016c8b 100644 --- a/compiler/lib/effects.ml +++ b/compiler/lib/effects.ml @@ -139,6 +139,28 @@ let dominance_frontier g idom = g.preds; frontiers +(* Last instruction of a block, ignoring events *) +let rec last_instr l = + match l with + | [] -> None + | [ i ] | [ i; (Event _, _) ] -> Some i + | _ :: rem -> last_instr rem + +(* Split a block, separating the last instruction from the preceeding + ones, ignoring events *) +let block_split_last xs = + let rec aux acc = function + | [] -> None + | [ x ] | [ x; (Event _, _) ] -> Some (List.rev acc, x) + | x :: xs -> aux (x :: acc) xs + in + aux [] xs + +let empty_body b = + match b with + | [] | [ (Event _, _) ] -> true + | _ -> false + (****) (* @@ -176,7 +198,7 @@ let compute_needed_transformations ~cfg ~idom ~cps_needed ~blocks ~start = let block = Addr.Map.find pc blocks in (match fst block.branch with | Branch (dst, _) -> ( - match List.last block.body with + match last_instr block.body with | Some ( Let (x, (Apply _ | Prim (Extern ("%resume" | "%perform" | "%reperform"), _))) @@ -572,7 +594,7 @@ let cps_block ~st ~k pc block = in let rewritten_block = - match List.split_last block.body, block.branch with + match block_split_last block.body, block.branch with | Some (body_prefix, (Let (x, e), loc)), (Return ret, _loc_ret) -> Option.map (rewrite_instr x e loc) ~f:(fun f -> assert (List.is_empty alloc_jump_closures); @@ -593,7 +615,7 @@ let cps_block ~st ~k pc block = in let instrs, branch = f ~k:k' in body_prefix, constr_cont @ instrs, branch) - | Some (_, ((Set_field _ | Offset_ref _ | Array_set _ | Assign _), _)), _ + | Some (_, ((Event _ | Set_field _ | Offset_ref _ | Array_set _ | Assign _), _)), _ | Some _, ((Raise _ | Stop | Cond _ | Switch _ | Pushtrap _ | Poptrap _), _) | None, _ -> None in @@ -847,7 +869,7 @@ let split_blocks ~cps_needed (p : Code.program) = let is_split_point i r branch = match i with | Let (x, (Apply _ | Prim (Extern ("%resume" | "%perform" | "%reperform"), _))) -> - ((not (List.is_empty r)) + ((not (empty_body r)) || match fst branch with | Branch _ -> false @@ -904,7 +926,7 @@ let remove_empty_blocks ~live_vars (p : Code.program) : Code.program = Addr.Map.iter (fun pc block -> match block with - | { params; body = []; branch = Branch cont, _; _ } -> + | { params; body; branch = Branch cont, _; _ } when empty_body body -> let args = List.fold_left ~f:(fun args x -> Var.Set.add x args) diff --git a/compiler/lib/eval.ml b/compiler/lib/eval.ml index 113fe6432b..2d28851245 100644 --- a/compiler/lib/eval.ml +++ b/compiler/lib/eval.ml @@ -456,8 +456,11 @@ let rec do_not_raise pc visited blocks = let b = Addr.Map.find pc blocks in List.iter b.body ~f:(fun (i, _loc) -> match i with - | Array_set (_, _, _) | Offset_ref (_, _) | Set_field (_, _, _, _) | Assign _ -> - () + | Event _ + | Array_set (_, _, _) + | Offset_ref (_, _) + | Set_field (_, _, _, _) + | Assign _ -> () | Let (_, e) -> ( match e with | Block (_, _, _, _) | Field (_, _, _) | Constant _ | Closure _ -> () diff --git a/compiler/lib/flow.ml b/compiler/lib/flow.ml index d93b97389d..f18ea68093 100644 --- a/compiler/lib/flow.ml +++ b/compiler/lib/flow.ml @@ -122,7 +122,7 @@ let program_deps { blocks; _ } = | Assign (x, y) -> add_dep deps x y; add_assign_def vars defs x y - | Set_field _ | Array_set _ | Offset_ref _ -> ()); + | Event _ | Set_field _ | Array_set _ | Offset_ref _ -> ()); match fst block.branch with | Return _ | Raise _ | Stop -> () | Branch cont | Poptrap cont -> cont_deps blocks vars deps defs cont @@ -256,7 +256,7 @@ let program_escape defs known_origins { blocks; _ } = List.iter block.body ~f:(fun (i, _loc) -> match i with | Let (x, e) -> expr_escape st x e - | Assign _ -> () + | Event _ | Assign _ -> () | Set_field (x, _, _, y) | Array_set (x, _, y) -> Var.Set.iter (fun y -> Var.ISet.add possibly_mutable y) diff --git a/compiler/lib/freevars.ml b/compiler/lib/freevars.ml index 89fbf4da95..6ee8441135 100644 --- a/compiler/lib/freevars.ml +++ b/compiler/lib/freevars.ml @@ -55,6 +55,7 @@ let iter_instr_free_vars f i = f y; f z | Assign (_, y) -> f y + | Event _ -> () let iter_last_free_var f l = match l with @@ -79,7 +80,7 @@ let iter_block_free_vars f block = let iter_instr_bound_vars f i = match i with | Let (x, _) -> f x - | Set_field _ | Offset_ref _ | Array_set _ | Assign _ -> () + | Event _ | Set_field _ | Offset_ref _ | Array_set _ | Assign _ -> () let iter_last_bound_vars f l = match l with diff --git a/compiler/lib/generate.ml b/compiler/lib/generate.ml index e4d12aaf14..85883fa3a1 100644 --- a/compiler/lib/generate.ml +++ b/compiler/lib/generate.ml @@ -345,14 +345,11 @@ let bool e = J.ECond (e, one, zero) (****) -let source_location debug ?force (pc : Code.loc) = - match Parse_bytecode.Debug.find_loc debug ?force pc with +let source_location ctx position pc = + match Parse_bytecode.Debug.find_loc ctx.Ctx.debug ~position pc with | Some pi -> J.Pi pi | None -> J.N -let source_location_ctx ctx ?force (pc : Code.loc) = - source_location ctx.Ctx.debug ?force pc - (****) let float_const f = J.ENum (J.Num.of_float f) @@ -504,34 +501,23 @@ let constant ~ctx x level = type queue_elt = { prop : int ; ce : J.expression - ; loc : J.location + ; loc : J.location option ; deps : Code.Var.Set.t } let access_queue queue x = - try - let elt = List.assoc x queue in - ((elt.prop, elt.deps), elt.ce), List.remove_assoc x queue - with Not_found -> ((fst const_p, Code.Var.Set.singleton x), var x), queue - -let access_queue_loc queue x = try let elt = List.assoc x queue in ((elt.prop, elt.deps), elt.ce, elt.loc), List.remove_assoc x queue - with Not_found -> ((fst const_p, Code.Var.Set.singleton x), var x, J.N), queue + with Not_found -> ((fst const_p, Code.Var.Set.singleton x), var x, None), queue -let access_queue' ~ctx queue x = - match x with - | Pc c -> - let js, instrs = constant ~ctx c (Config.Param.constant_max_depth ()) in - assert (List.is_empty instrs); - (* We only have simple constants here *) - (const_p, js), queue - | Pv x -> access_queue queue x +let access_queue_loc queue loc' x = + let (prop, c, loc), queue = access_queue queue x in + (prop, c, Option.value ~default:loc' loc), queue let should_flush (cond, _) prop = cond <> fst const_p && cond + prop >= fst flush_p -let flush_queue expr_queue prop (l : J.statement_list) = +let flush_queue expr_queue prop loc (l : J.statement_list) = let instrs, expr_queue = if fst prop >= fst flush_p then expr_queue, [] @@ -539,20 +525,141 @@ let flush_queue expr_queue prop (l : J.statement_list) = in let instrs = List.map instrs ~f:(fun (x, elt) -> - J.variable_declaration [ J.V x, (elt.ce, elt.loc) ], elt.loc) + let loc = Option.value ~default:loc elt.loc in + J.variable_declaration [ J.V x, (elt.ce, loc) ], loc) in List.rev_append instrs l, expr_queue -let flush_all expr_queue l = fst (flush_queue expr_queue flush_p l) +let flush_all expr_queue loc l = fst (flush_queue expr_queue flush_p loc l) -let enqueue expr_queue prop x ce loc acc = +let enqueue expr_queue prop x ce flush_loc expr_loc acc = let instrs, expr_queue = if Config.Flag.compact () - then if is_mutable prop then flush_queue expr_queue prop acc else acc, expr_queue - else flush_queue expr_queue flush_p acc + then + if is_mutable prop + then flush_queue expr_queue prop flush_loc acc + else acc, expr_queue + else flush_queue expr_queue flush_p flush_loc acc in let prop, deps = prop in - instrs, (x, { prop; deps; ce; loc }) :: expr_queue + instrs, (x, { prop; deps; ce; loc = expr_loc }) :: expr_queue + +type queue = (Var.t * queue_elt) list + +type prop = int * Code.Var.Set.t + +module Expr_builder : sig + type 'a t + + val ( let* ) : 'a t -> ('a -> 'b t) -> 'b t + + val return : 'a -> 'a t + + val access : Var.t -> J.expression t + + val access' : ctx:Ctx.t -> prim_arg -> J.expression t + + val info : ?need_loc:bool -> prop -> unit t + + val statement_loc : J.location -> J.location t + + val flush_all : queue -> J.location -> J.statement_list t -> J.statement_list + + val flush_queue : queue -> J.location -> J.statement_list t -> J.statement_list * queue + + val enqueue : + queue + -> Var.t + -> J.location + -> (J.expression * J.statement_list) t + -> J.statement_list * queue + + val get : queue -> J.location -> 'a t -> 'a * J.location * queue + + val list_map : ('a -> 'b t) -> 'a list -> 'b list t +end = struct + type state = + { queue : queue + ; prop : prop + ; need_loc : bool + ; loc : J.location option + } + + type 'a t = state -> 'a * state + + let ( let* ) (type a b) (e : a t) (f : a -> b t) : b t = + fun st -> + let v, st = e st in + f v st + + let return x st = x, st + + let info ?(need_loc = false) prop st = + (), { st with prop = or_p st.prop prop; need_loc = need_loc || st.need_loc } + + let access x st = + let (prop, c, loc), queue = access_queue st.queue x in + ( c + , { st with + prop = or_p st.prop prop + ; queue + ; loc = + (match st.loc with + | None -> loc + | _ -> st.loc) + } ) + + let access' ~ctx x = + match x with + | Pc c -> + let js, instrs = constant ~ctx c (Config.Param.constant_max_depth ()) in + assert (List.is_empty instrs); + (* We only have simple constants here *) + fun st -> js, st + | Pv x -> access x + + let statement_loc loc st = + ( (match st.loc with + | None -> loc + | Some loc -> loc) + , st ) + + let initial_state queue = { queue; prop = const_p; loc = None; need_loc = false } + + let flush_queue queue loc instrs = + let v, { queue; prop; _ } = instrs (initial_state queue) in + flush_queue queue prop loc v + + let flush_all queue loc instrs = + let v, { queue; _ } = instrs (initial_state queue) in + flush_all queue loc v + + let enqueue queue x flush_loc expr = + let (ce, instrs), { queue; prop; loc; need_loc } = expr (initial_state queue) in + let expr_loc = + match loc with + | None when need_loc -> Some flush_loc + | _ -> loc + in + enqueue queue prop x ce flush_loc expr_loc instrs + + let get queue loc' x = + let x, { queue; loc; _ } = x (initial_state queue) in + let loc = + match loc with + | None -> loc' + | Some loc -> loc + in + x, loc, queue + + let rec list_map f l st = + match l with + | [] -> [], st + | x :: r -> + let x', st = f x st in + let r', st = list_map f r st in + x' :: r', st +end (****) @@ -561,6 +668,7 @@ type state = ; dom : Structure.graph ; visited_blocks : Addr.Set.t ref ; ctx : Ctx.t + ; pc : Addr.t } module DTree = struct @@ -681,7 +789,7 @@ let build_graph ctx pc = let visited_blocks = ref Addr.Set.empty in let structure = Structure.build_graph ctx.Ctx.blocks pc in let dom = Structure.dominator_tree structure in - { visited_blocks; structure; dom; ctx } + { visited_blocks; structure; dom; ctx; pc } (****) @@ -718,7 +826,7 @@ let visit_all params args = in l -let parallel_renaming back_edge params args continuation queue = +let parallel_renaming loc back_edge params args continuation queue = if back_edge && Config.Flag.es6 () (* This is likely slower than using explicit temp variable but let's experiment with es6 a bit *) @@ -728,22 +836,27 @@ let parallel_renaming back_edge params args continuation queue = |> List.filter_map ~f:(fun x -> x) |> List.split in - let args, _, queue = - List.fold_left args ~init:([], const_p, queue) ~f:(fun (acc, p, queue) a -> - let (px, cx), queue = access_queue queue a in - cx :: acc, or_p px p, queue) + let open Expr_builder in + let args, loc, queue = + get + queue + loc + (List.fold_left args ~init:(return []) ~f:(fun acc a -> + let* acc = acc in + let* cx = access a in + return (cx :: acc))) in let never, code = continuation queue in match params, args with | [ p ], [ a ] -> - never, (J.Expression_statement (J.EBin (J.Eq, J.EVar (J.V p), a)), J.N) :: code + never, (J.Expression_statement (J.EBin (J.Eq, J.EVar (J.V p), a)), loc) :: code | params, args -> let lhs = J.EAssignTarget (J.ArrayTarget (List.map params ~f:(fun p -> J.TargetElementId (J.V p, None)))) in let rhs = J.EArr (List.rev_map args ~f:(fun x -> J.Element x)) in - never, (J.Expression_statement (J.EBin (J.Eq, lhs, rhs)), J.N) :: code + never, (J.Expression_statement (J.EBin (J.Eq, lhs, rhs)), loc) :: code else let l = visit_all params args in (* if not back_edge @@ -753,7 +866,7 @@ let parallel_renaming back_edge params args continuation queue = l ~init:(queue, [], [], Code.Var.Set.empty) ~f:(fun (queue, before, renaming, seen) (y, x) -> - let ((_, deps_x), cx, locx), queue = access_queue_loc queue x in + let ((_, deps_x), cx, locx), queue = access_queue_loc queue loc x in let seen' = Code.Var.Set.add y seen in if not Code.Var.Set.(is_empty (inter seen deps_x)) then @@ -769,24 +882,24 @@ let parallel_renaming back_edge params args continuation queue = if back_edge then List.map renaming ~f:(fun (t, e) -> - J.Expression_statement (J.EBin (J.Eq, J.EVar (J.V t), e)), J.N) + J.Expression_statement (J.EBin (J.Eq, J.EVar (J.V t), e)), loc) else List.map renaming ~f:(fun (t, e) -> - J.variable_declaration [ J.V t, (e, J.N) ], J.N) + J.variable_declaration [ J.V t, (e, loc) ], loc) in let never, code = continuation queue in never, List.rev_append before (List.rev_append renaming code) (****) -let apply_fun_raw ctx f params exact trampolined = +let apply_fun_raw ctx f params exact trampolined loc = let n = List.length params in let apply_directly = (* Make sure we are performing a regular call, not a (slower) method call *) match f with - | J.EAccess _ | J.EDot _ -> J.call (J.ESeq (int 0, f)) params J.N - | _ -> J.call f params J.N + | J.EAccess _ | J.EDot _ -> J.call (J.ESeq (int 0, f)) params loc + | _ -> J.call f params loc in let apply = (* We skip the arity check when we know that we have the right @@ -805,7 +918,7 @@ let apply_fun_raw ctx f params exact trampolined = ) , int n ) , apply_directly - , J.call (runtime_fun ctx "caml_call_gen") [ f; J.array params ] J.N ) + , J.call (runtime_fun ctx "caml_call_gen") [ f; J.array params ] loc ) in if trampolined then ( @@ -815,9 +928,9 @@ let apply_fun_raw ctx f params exact trampolined = bounce to a trampoline if needed, to avoid a stack overflow. The trampoline then performs the call in an shorter stack. *) J.ECond - ( J.call (runtime_fun ctx "caml_stack_check_depth") [] J.N + ( J.call (runtime_fun ctx "caml_stack_check_depth") [] loc , apply - , J.call (runtime_fun ctx "caml_trampoline_return") [ f; J.array params ] J.N )) + , J.call (runtime_fun ctx "caml_trampoline_return") [ f; J.array params ] loc )) else apply let generate_apply_fun ctx { arity; exact; trampolined } = @@ -835,7 +948,9 @@ let generate_apply_fun ctx { arity; exact; trampolined } = ( None , J.fun_ (f :: params) - [ J.Return_statement (Some (apply_fun_raw ctx f' params' exact trampolined)), J.N + [ ( J.Return_statement + (Some (apply_fun_raw ctx f' params' exact trampolined J.N), J.N) + , J.N ) ] J.N ) @@ -847,7 +962,7 @@ let apply_fun ctx f params exact trampolined loc = since the function should get inlined by the JavaScript engines. *) if Config.Flag.inline_callgen () || (exact && not trampolined) - then apply_fun_raw ctx f params exact trampolined + then apply_fun_raw ctx f params exact trampolined loc else let y = Share.get_apply @@ -881,39 +996,47 @@ let invalid_arity name l ~loc ~expected = expected (List.length l)) -let register_un_prim name k f = - register_prim name k (fun l queue ctx loc -> +let register_un_prim name ?(need_loc = false) k f = + register_prim name k (fun l ctx loc -> match l with | [ x ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - f cx loc, or_p (kind k) px, queue + let open Expr_builder in + let* cx = access' ~ctx x in + let* () = info ~need_loc (kind k) in + return (f cx loc) | l -> invalid_arity name l ~loc ~expected:1) let register_un_prim_ctx name k f = - register_prim name k (fun l queue ctx loc -> + register_prim name k (fun l ctx loc -> match l with | [ x ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - f ctx cx loc, or_p (kind k) px, queue + let open Expr_builder in + let* cx = access' ~ctx x in + let* () = info (kind k) in + return (f ctx cx loc) | _ -> invalid_arity name l ~loc ~expected:1) let register_bin_prim name k f = - register_prim name k (fun l queue ctx loc -> + register_prim name k (fun l ctx loc -> match l with | [ x; y ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - let (py, cy), queue = access_queue' ~ctx queue y in - f cx cy loc, or_p (kind k) (or_p px py), queue + let open Expr_builder in + let* cx = access' ~ctx x in + let* cy = access' ~ctx y in + let* () = info (kind k) in + return (f cx cy loc) | _ -> invalid_arity name l ~loc ~expected:2) let register_tern_prim name f = - register_prim name `Mutator (fun l queue ctx loc -> + register_prim name `Mutator (fun l ctx loc -> match l with | [ x; y; z ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - let (py, cy), queue = access_queue' ~ctx queue y in - let (pz, cz), queue = access_queue' ~ctx queue z in - f cx cy cz loc, or_p mutator_p (or_p px (or_p py pz)), queue + let open Expr_builder in + let* cx = access' ~ctx x in + let* cy = access' ~ctx y in + let* cz = access' ~ctx z in + let* () = info mutator_p in + return (f cx cy cz loc) | _ -> invalid_arity name l ~loc ~expected:3) let register_un_math_prim name prim = @@ -973,7 +1096,7 @@ let _ = register_tern_prim "caml_array_unsafe_set" (fun cx cy cz _ -> J.EBin (J.Eq, Mlvalue.Array.field cx cy, cz)); register_un_prim "caml_alloc_dummy" `Pure (fun _ _ -> J.array []); - register_un_prim "caml_obj_dup" `Mutable (fun cx loc -> + register_un_prim "caml_obj_dup" ~need_loc:true `Mutable (fun cx loc -> J.call (J.dot cx (Utf8_string.of_string_exn "slice")) [] loc); register_un_prim "caml_int_of_float" `Pure (fun cx _loc -> to_int cx); register_un_math_prim "caml_abs_float" "abs"; @@ -1054,28 +1177,21 @@ let remove_unused_tail_args ctx exact trampolined args = else args else args -let rec translate_expr ctx queue loc x e level : _ * J.statement_list = +let rec translate_expr ctx loc x e level : (_ * J.statement_list) Expr_builder.t = + let open Expr_builder in match e with | Apply { f; args; exact } -> let trampolined = Var.Set.mem x ctx.Ctx.trampolined_calls in let args = remove_unused_tail_args ctx exact trampolined args in - let args, prop, queue = - List.fold_right - ~f:(fun x (args, prop, queue) -> - let (prop', cx), queue = access_queue queue x in - cx :: args, or_p prop prop', queue) - args - ~init:([], mutator_p, queue) - in - let (prop', f), queue = access_queue queue f in - let prop = or_p prop prop' in - let e = apply_fun ctx f args exact trampolined loc in - (e, prop, queue), [] + let* () = info ~need_loc:true mutator_p in + let* args = list_map access args in + let* f = access f in + return (apply_fun ctx f args exact trampolined loc, []) | Block (tag, a, array_or_not, _mut) -> - let contents, prop, queue = - List.fold_right - ~f:(fun x (args, prop, queue) -> - let (prop', cx), queue = access_queue queue x in + let* contents = + list_map + (fun x -> + let* cx = access x in let cx = match cx with | J.EVar (J.V v) -> @@ -1084,63 +1200,50 @@ let rec translate_expr ctx queue loc x e level : _ * J.statement_list = else J.Element cx | _ -> J.Element cx in - cx :: args, or_p prop prop', queue) + return cx) (Array.to_list a) - ~init:([], const_p, queue) in let x = match array_or_not with | Array -> Mlvalue.Array.make ~tag ~args:contents | NotArray | Unknown -> Mlvalue.Block.make ~tag ~args:contents in - (x, prop, queue), [] + return (x, []) | Field (x, n, _) -> - let (px, cx), queue = access_queue queue x in - (Mlvalue.Block.field cx n, or_p px mutable_p, queue), [] + let* cx = access x in + let* () = info mutable_p in + return (Mlvalue.Block.field cx n, []) | Closure (args, ((pc, _) as cont)) -> - let loc = source_location_ctx ctx ~force:After (After pc) in + let loc = source_location ctx After pc in let fv = Addr.Map.find pc ctx.freevars in let clo = compile_closure ctx cont in - let clo = - match clo with - | (st, x) :: rem -> - let loc = - match x, source_location_ctx ctx (Before pc) with - | (J.U | J.N), (J.U | J.N) -> J.U - | x, (J.U | J.N) -> x - | (J.U | J.N), x -> x - | _, x -> x - in - (st, loc) :: rem - | _ -> clo - in let clo = J.EFun ( None , J.fun_ (List.map args ~f:(fun v -> J.V v)) (Js_simpl.function_body clo) loc ) in - (clo, (fst const_p, fv), queue), [] - | Constant c -> - let js, instrs = constant ~ctx c level in - (js, const_p, queue), instrs + let* () = info (fst const_p, fv) in + return (clo, []) + | Constant c -> return (constant ~ctx c level) | Special (Alias_prim name) -> let prim = Share.get_prim (runtime_fun ctx) name ctx.Ctx.share in - (prim, const_p, queue), [] + return (prim, []) | Prim (Extern "debugger", _) -> let ins = if Config.Flag.debugger () then J.Debugger_statement else J.Empty_statement in - (int 0, const_p, queue), [ ins, loc ] + return (int 0, [ ins, loc ]) | Prim (p, l) -> - let res = + let* res = match p, l with | Vectlength, [ x ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - Mlvalue.Array.length cx, px, queue + let* cx = access' ~ctx x in + return (Mlvalue.Array.length cx) | Array_get, [ x; y ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - let (py, cy), queue = access_queue' ~ctx queue y in - Mlvalue.Array.field cx cy, or_p mutable_p (or_p px py), queue + let* cx = access' ~ctx x in + let* cy = access' ~ctx y in + let* () = info mutable_p in + return (Mlvalue.Array.field cx cy) | Extern "caml_js_var", [ Pc (String nm) ] | Extern ("caml_js_expr" | "caml_pure_js_expr"), [ Pc (String nm) ] -> ( try @@ -1162,8 +1265,7 @@ let rec translate_expr ctx queue loc x e level : _ * J.statement_list = | None -> None) in let lex = Parse_js.Lexer.of_string ?pos nm in - let e = Parse_js.parse_expr lex in - e, const_p, queue + return (Parse_js.parse_expr lex) with Parse_js.Parsing_error pi -> failwith (Printf.sprintf @@ -1175,77 +1277,51 @@ let rec translate_expr ctx queue loc x e level : _ * J.statement_list = pi.Parse_info.line pi.Parse_info.col)) | Extern "%js_array", l -> - let args, prop, queue = - List.fold_right - ~f:(fun x (args, prop, queue) -> - let (prop', cx), queue = access_queue' ~ctx queue x in - cx :: args, or_p prop prop', queue) - l - ~init:([], const_p, queue) - in - J.array args, prop, queue + let* args = list_map (fun x -> access' ~ctx x) l in + return (J.array args) | Extern "%caml_js_opt_call", f :: o :: l -> - let (pf, cf), queue = access_queue' ~ctx queue f in - let (po, co), queue = access_queue' ~ctx queue o in - let args, prop, queue = - List.fold_right - ~f:(fun x (args, prop, queue) -> - let (prop', cx), queue = access_queue' ~ctx queue x in - cx :: args, or_p prop prop', queue) - l - ~init:([], mutator_p, queue) - in - ( J.call (J.dot cf (Utf8_string.of_string_exn "call")) (co :: args) loc - , or_p (or_p pf po) prop - , queue ) + let* () = info ~need_loc:true mutator_p in + let* cf = access' ~ctx f in + let* co = access' ~ctx o in + let* args = list_map (fun x -> access' ~ctx x) l in + return (J.call (J.dot cf (Utf8_string.of_string_exn "call")) (co :: args) loc) | Extern "%caml_js_opt_fun_call", f :: l -> - let (pf, cf), queue = access_queue' ~ctx queue f in - let args, prop, queue = - List.fold_right - ~f:(fun x (args, prop, queue) -> - let (prop', cx), queue = access_queue' ~ctx queue x in - cx :: args, or_p prop prop', queue) - l - ~init:([], mutator_p, queue) - in - J.call cf args loc, or_p pf prop, queue + let* () = info ~need_loc:true mutator_p in + let* cf = access' ~ctx f in + let* args = list_map (fun x -> access' ~ctx x) l in + return (J.call cf args loc) | Extern "%caml_js_opt_meth_call", o :: Pc (NativeString (Utf m)) :: l -> - let (po, co), queue = access_queue' ~ctx queue o in - let args, prop, queue = - List.fold_right - ~f:(fun x (args, prop, queue) -> - let (prop', cx), queue = access_queue' ~ctx queue x in - cx :: args, or_p prop prop', queue) - l - ~init:([], mutator_p, queue) - in - J.call (J.dot co m) args loc, or_p po prop, queue + let* () = info ~need_loc:true mutator_p in + let* co = access' ~ctx o in + let* args = list_map (fun x -> access' ~ctx x) l in + return (J.call (J.dot co m) args loc) | Extern "%caml_js_opt_meth_call", _ -> assert false | Extern "%caml_js_opt_new", c :: l -> - let (pc, cc), queue = access_queue' ~ctx queue c in - let args, prop, queue = - List.fold_right - ~f:(fun x (args, prop, queue) -> - let (prop', cx), queue = access_queue' ~ctx queue x in - J.Arg cx :: args, or_p prop prop', queue) + let* () = info ~need_loc:true mutator_p in + let* cc = access' ~ctx c in + let* args = + list_map + (fun x -> + let* cx = access' ~ctx x in + return (J.Arg cx)) l - ~init:([], mutator_p, queue) in - ( J.ENew (cc, if List.is_empty args then None else Some args) - , or_p pc prop - , queue ) + return (J.ENew (cc, (if List.is_empty args then None else Some args), loc)) | Extern "caml_js_get", [ Pv o; Pc (NativeString (Utf f)) ] when J.is_ident' f -> - let (po, co), queue = access_queue queue o in - J.dot co f, or_p po mutable_p, queue + let* co = access o in + let* () = info mutable_p in + return (J.dot co f) | Extern "caml_js_set", [ Pv o; Pc (NativeString (Utf f)); v ] when J.is_ident' f -> - let (po, co), queue = access_queue queue o in - let (pv, cv), queue = access_queue' ~ctx queue v in - J.EBin (J.Eq, J.dot co f, cv), or_p (or_p po pv) mutator_p, queue + let* co = access o in + let* cv = access' ~ctx v in + let* () = info mutator_p in + return (J.EBin (J.Eq, J.dot co f, cv)) | Extern "caml_js_delete", [ Pv o; Pc (NativeString (Utf f)) ] when J.is_ident' f -> - let (po, co), queue = access_queue queue o in - J.EUn (J.Delete, J.dot co f), or_p po mutator_p, queue + let* co = access o in + let* () = info mutator_p in + return (J.EUn (J.Delete, J.dot co f)) (* This is only useful for debugging: {[ @@ -1255,24 +1331,25 @@ let rec translate_expr ctx queue loc x e level : _ * J.statement_list = ]} *) | Extern "%caml_js_opt_object", fields -> - let rec build_fields queue l = + let rec build_fields l = match l with - | [] -> const_p, [], queue + | [] -> return [] | Pc (NativeString (Utf nm)) :: x :: r -> - let (prop, cx), queue = access_queue' ~ctx queue x in - let prop', r', queue = build_fields queue r in + let* cx = access' ~ctx x in + let* r' = build_fields r in let p_name = if J.is_ident' nm then J.PNI nm else J.PNS nm in - or_p prop prop', J.Property (p_name, cx) :: r', queue + return (J.Property (p_name, cx) :: r') | _ -> assert false in - let prop, fields, queue = build_fields queue fields in - J.EObj fields, prop, queue + let* fields = build_fields fields in + return (J.EObj fields) | Extern "caml_alloc_dummy_function", [ _; size ] -> - let i, queue = - let (_px, cx), queue = access_queue' ~ctx queue size in - match cx with - | J.ENum i -> Targetint.to_int_exn (J.Num.to_targetint i), queue - | _ -> assert false + let* i = + let* cx = access' ~ctx size in + return + (match cx with + | J.ENum i -> Targetint.to_int_exn (J.Num.to_targetint i) + | _ -> assert false) in let args = Array.to_list (Array.init i ~f:(fun _ -> J.V (Var.fresh ()))) in let f = J.V (Var.fresh ()) in @@ -1283,9 +1360,9 @@ let rec translate_expr ctx queue loc x e level : _ * J.statement_list = loc in let e = - J.EFun (Some f, J.fun_ args [ J.Return_statement (Some call), J.N ] J.N) + J.EFun (Some f, J.fun_ args [ J.Return_statement (Some call, J.N), J.N ] J.N) in - e, const_p, queue + return e | Extern "caml_alloc_dummy_function", _ -> assert false | Extern ("%resume" | "%perform" | "%reperform"), _ -> if Config.Flag.effects () then assert false; @@ -1297,90 +1374,81 @@ let rec translate_expr ctx queue loc x e level : _ * J.statement_list = ctx.effect_warning := true); let name = "jsoo_effect_not_supported" in let prim = Share.get_prim (runtime_fun ctx) name ctx.Ctx.share in - let prim_kind = kind (Primitive.kind name) in - J.call prim [] loc, prim_kind, queue + let* () = info ~need_loc:true (kind (Primitive.kind name)) in + return (J.call prim [] loc) | Extern "caml_string_notequal", [ a; b ] when Config.Flag.use_js_string () -> - let (px, cx), queue = access_queue' ~ctx queue a in - let (py, cy), queue = access_queue' ~ctx queue b in - let prop = or_p px py in - bool (J.EBin (J.NotEqEq, cx, cy)), prop, queue + let* cx = access' ~ctx a in + let* cy = access' ~ctx b in + return (bool (J.EBin (J.NotEqEq, cx, cy))) | Extern "caml_string_equal", [ a; b ] when Config.Flag.use_js_string () -> - let (px, cx), queue = access_queue' ~ctx queue a in - let (py, cy), queue = access_queue' ~ctx queue b in - let prop = or_p px py in - bool (J.EBin (J.EqEqEq, cx, cy)), prop, queue + let* cx = access' ~ctx a in + let* cy = access' ~ctx b in + return (bool (J.EBin (J.EqEqEq, cx, cy))) | Extern "caml_string_concat", [ a; b ] when Config.Flag.use_js_string () -> - let (pa, ca), queue = access_queue' ~ctx queue a in - let (pb, cb), queue = access_queue' ~ctx queue b in - let prop = or_p pa pb in + let* ca = access' ~ctx a in + let* cb = access' ~ctx b in let rec add ca cb = match cb with | J.EBin (J.Plus, cb1, cb2) -> J.EBin (J.Plus, add ca cb1, cb2) | _ -> J.EBin (J.Plus, ca, cb) in - add ca cb, prop, queue + return (add ca cb) | Extern name, l -> ( let name = Primitive.resolve name in match internal_prim name with - | Some f -> f l queue ctx loc + | Some f -> f l ctx loc | None -> if String.is_prefix name ~prefix:"%" then failwith (Printf.sprintf "Unresolved internal primitive: %s" name); let prim = Share.get_prim (runtime_fun ctx) name ctx.Ctx.share in - let prim_kind = kind (Primitive.kind name) in - let args, prop, queue = - List.fold_right - ~f:(fun x (args, prop, queue) -> - let (prop', cx), queue = access_queue' ~ctx queue x in - cx :: args, or_p prop prop', queue) - l - ~init:([], prim_kind, queue) - in - J.call prim args loc, prop, queue) + let* () = info ~need_loc:true (kind (Primitive.kind name)) in + let* args = list_map (fun x -> access' ~ctx x) l in + return (J.call prim args loc)) | Not, [ x ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - J.EBin (J.Minus, one, cx), px, queue + let* cx = access' ~ctx x in + return (J.EBin (J.Minus, one, cx)) | Lt, [ x; y ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - let (py, cy), queue = access_queue' ~ctx queue y in - bool (J.EBin (J.LtInt, cx, cy)), or_p px py, queue + let* cx = access' ~ctx x in + let* cy = access' ~ctx y in + return (bool (J.EBin (J.LtInt, cx, cy))) | Le, [ x; y ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - let (py, cy), queue = access_queue' ~ctx queue y in - bool (J.EBin (J.LeInt, cx, cy)), or_p px py, queue + let* cx = access' ~ctx x in + let* cy = access' ~ctx y in + return (bool (J.EBin (J.LeInt, cx, cy))) | Eq, [ x; y ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - let (py, cy), queue = access_queue' ~ctx queue y in - bool (J.EBin (J.EqEqEq, cx, cy)), or_p px py, queue + let* cx = access' ~ctx x in + let* cy = access' ~ctx y in + return (bool (J.EBin (J.EqEqEq, cx, cy))) | Neq, [ x; y ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - let (py, cy), queue = access_queue' ~ctx queue y in - bool (J.EBin (J.NotEqEq, cx, cy)), or_p px py, queue + let* cx = access' ~ctx x in + let* cy = access' ~ctx y in + return (bool (J.EBin (J.NotEqEq, cx, cy))) | IsInt, [ x ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - bool (Mlvalue.is_immediate cx), px, queue + let* cx = access' ~ctx x in + return (bool (Mlvalue.is_immediate cx)) | Ult, [ x; y ] -> - let (px, cx), queue = access_queue' ~ctx queue x in - let (py, cy), queue = access_queue' ~ctx queue y in - bool (J.EBin (J.LtInt, unsigned cx, unsigned cy)), or_p px py, queue + let* cx = access' ~ctx x in + let* cy = access' ~ctx y in + return (bool (J.EBin (J.LtInt, unsigned cx, unsigned cy))) | (Vectlength | Array_get | Not | IsInt | Eq | Neq | Lt | Le | Ult), _ -> assert false in - res, [] + return (res, []) -and translate_instr ctx expr_queue instr = - let instr, pc = instr in +and translate_instr ctx expr_queue loc instr = + let open Expr_builder in + let instr, _ = instr in match instr with | Assign (x, y) -> - let loc = source_location_ctx ctx pc in - let (_py, cy), expr_queue = access_queue expr_queue y in flush_queue expr_queue - mutator_p - [ J.Expression_statement (J.EBin (J.Eq, J.EVar (J.V x), cy)), loc ] + loc + (let* cy = access y in + let* () = info mutator_p in + let* loc = statement_loc loc in + return [ J.Expression_statement (J.EBin (J.Eq, J.EVar (J.V x), cy)), loc ]) | Let (x, e) -> ( - let loc = source_location_ctx ctx pc in - let (ce, prop, expr_queue), instrs = translate_expr ctx expr_queue loc x e 0 in + let e' = translate_expr ctx loc x e 0 in let keep_name x = match Code.Var.get_name x with | None -> false @@ -1394,52 +1462,68 @@ and translate_instr ctx expr_queue instr = match ctx.Ctx.live.(Var.idx x), e with | 0, _ -> (* deadcode is off *) - flush_queue expr_queue prop (instrs @ [ J.Expression_statement ce, loc ]) + flush_queue + expr_queue + loc + (let* ce, instrs = e' in + let* loc = statement_loc loc in + return (instrs @ [ J.Expression_statement ce, loc ])) | 1, _ when Config.Flag.compact () && ((not (Config.Flag.pretty ())) || not (keep_name x)) - -> enqueue expr_queue prop x ce loc instrs - | 1, Constant (Int _ | Float _) -> enqueue expr_queue prop x ce loc instrs + -> enqueue expr_queue x loc e' + | 1, Constant (Int _ | Float _) -> enqueue expr_queue x loc e' | _ -> flush_queue expr_queue - prop - (instrs @ [ J.variable_declaration [ J.V x, (ce, loc) ], loc ])) + loc + (let* ce, instrs = e' in + let* loc = statement_loc loc in + return (instrs @ [ J.variable_declaration [ J.V x, (ce, loc) ], loc ]))) | Set_field (x, n, _, y) -> - let loc = source_location_ctx ctx pc in - let (_px, cx), expr_queue = access_queue expr_queue x in - let (_py, cy), expr_queue = access_queue expr_queue y in flush_queue expr_queue - mutator_p - [ J.Expression_statement (J.EBin (J.Eq, Mlvalue.Block.field cx n, cy)), loc ] + loc + (let* cx = access x in + let* cy = access y in + let* () = info mutator_p in + let* loc = statement_loc loc in + return + [ J.Expression_statement (J.EBin (J.Eq, Mlvalue.Block.field cx n, cy)), loc ]) | Offset_ref (x, n) -> - let loc = source_location_ctx ctx pc in (* FIX: may overflow.. *) - let (_px, cx), expr_queue = access_queue expr_queue x in - let expr = Mlvalue.Block.field cx 0 in - let expr' = - match n with - | 1 -> J.EUn (J.IncrA, expr) - | -1 -> J.EUn (J.DecrA, expr) - | n when n < 0 (* *) -> J.EBin (J.MinusEq, expr, int (-n)) - | n (* n > 0 *) -> J.EBin (J.PlusEq, expr, int n) - in - flush_queue expr_queue mutator_p [ J.Expression_statement expr', loc ] + flush_queue + expr_queue + loc + (let* cx = access x in + let expr = Mlvalue.Block.field cx 0 in + let expr' = + match n with + | 1 -> J.EUn (J.IncrA, expr) + | -1 -> J.EUn (J.DecrA, expr) + | n when n < 0 (* *) -> J.EBin (J.MinusEq, expr, int (-n)) + | n (* n > 0 *) -> J.EBin (J.PlusEq, expr, int n) + in + let* () = info mutator_p in + let* loc = statement_loc loc in + return [ J.Expression_statement expr', loc ]) | Array_set (x, y, z) -> - let loc = source_location_ctx ctx pc in - let (_px, cx), expr_queue = access_queue expr_queue x in - let (_py, cy), expr_queue = access_queue expr_queue y in - let (_pz, cz), expr_queue = access_queue expr_queue z in flush_queue expr_queue - mutator_p - [ J.Expression_statement (J.EBin (J.Eq, Mlvalue.Array.field cx cy, cz)), loc ] - -and translate_instrs_rev (ctx : Ctx.t) expr_queue instrs acc_rev muts_map : _ * _ = + loc + (let* cx = access x in + let* cy = access y in + let* cz = access z in + let* () = info mutator_p in + let* loc = statement_loc loc in + return + [ J.Expression_statement (J.EBin (J.Eq, Mlvalue.Array.field cx cy, cz)), loc ]) + | Event _ -> [], expr_queue + +and translate_instrs_rev (ctx : Ctx.t) loc expr_queue instrs acc_rev muts_map = match instrs with - | [] -> acc_rev, expr_queue + | [] -> loc, acc_rev, expr_queue | (Let (_, Closure _), _) :: _ -> - let names, pcs, all, rem = collect_closures instrs in + let names, pcs, all, rem, loc = collect_closures loc instrs in let fvs = List.fold_left pcs ~init:Code.Var.Set.empty ~f:(fun acc pc -> Code.Var.Set.union acc (Addr.Map.find pc ctx.freevars)) @@ -1491,7 +1575,7 @@ and translate_instrs_rev (ctx : Ctx.t) expr_queue instrs acc_rev muts_map : _ * Code.Var.Set.fold (fun v (expr_queue, vars, lets) -> assert (not (Code.Var.Set.mem v names)); - let (px, cx, locx), expr_queue = access_queue_loc expr_queue v in + let (px, cx, locx), expr_queue = access_queue_loc expr_queue loc v in let flushed = Code.Var.Set.(equal (snd px) (singleton v)) in match ( flushed @@ -1516,13 +1600,13 @@ and translate_instrs_rev (ctx : Ctx.t) expr_queue instrs acc_rev muts_map : _ * List.fold_left all ~init:([], [], expr_queue) - ~f:(fun (mut_rec, st_rev, expr_queue) i -> + ~f:(fun (mut_rec, st_rev, expr_queue) (i, loc) -> let x' = match i with | Let (x', _), _ -> x' | _ -> assert false in - let l, expr_queue = translate_instr ctx expr_queue i in + let l, expr_queue = translate_instr ctx expr_queue loc i in if Code.Var.Set.mem x' fvs then let mut_rec = @@ -1533,7 +1617,7 @@ and translate_instrs_rev (ctx : Ctx.t) expr_queue instrs acc_rev muts_map : _ * match l with | [ i ] -> mut_rec, i :: st_rev, expr_queue | [] -> - let (_px, cx, locx), expr_queue = access_queue_loc expr_queue x' in + let (_px, cx, locx), expr_queue = access_queue_loc expr_queue loc x' in ( mut_rec , (J.variable_declaration [ J.V x', (cx, locx) ], locx) :: st_rev , expr_queue ) @@ -1544,31 +1628,33 @@ and translate_instrs_rev (ctx : Ctx.t) expr_queue instrs acc_rev muts_map : _ * let acc_rev = vd Let bind_fvs_muts @ acc_rev in let acc_rev = funs_rev @ acc_rev in let acc_rev = vd Let bind_fvs_rec @ acc_rev in - translate_instrs_rev ctx expr_queue rem acc_rev muts_map + translate_instrs_rev ctx loc expr_queue rem acc_rev muts_map + | (Event loc, _) :: rem -> + translate_instrs_rev ctx (J.Pi loc) expr_queue rem acc_rev muts_map | instr :: rem -> - let st, expr_queue = translate_instr ctx expr_queue instr in + let st, expr_queue = translate_instr ctx expr_queue loc instr in let acc_rev = List.rev_append st acc_rev in - translate_instrs_rev ctx expr_queue rem acc_rev muts_map + translate_instrs_rev ctx loc expr_queue rem acc_rev muts_map -and translate_instrs (ctx : Ctx.t) expr_queue instrs = - let st_rev, expr_queue = - translate_instrs_rev (ctx : Ctx.t) expr_queue instrs [] Var.Map.empty +and translate_instrs (ctx : Ctx.t) loc expr_queue instrs = + let loc, st_rev, expr_queue = + translate_instrs_rev (ctx : Ctx.t) loc expr_queue instrs [] Var.Map.empty in - List.rev st_rev, expr_queue + loc, List.rev st_rev, expr_queue (* Compile loops. *) -and compile_block st queue (pc : Addr.t) scope_stack ~fall_through = +and compile_block st loc queue (pc : Addr.t) scope_stack ~fall_through = if (not (List.is_empty queue)) && (Structure.is_loop_header st.structure pc || (* Do not inline expressions across block boundaries when --no-inline is used Single-stepping in the debugger should work better this way (fixes #290). *) not (Config.Flag.inline ())) then - let never, code = compile_block st [] pc scope_stack ~fall_through in - never, flush_all queue code + let never, code = compile_block st loc [] pc scope_stack ~fall_through in + never, flush_all queue loc code else match Structure.is_loop_header st.structure pc with - | false -> compile_block_no_loop st queue pc scope_stack ~fall_through + | false -> compile_block_no_loop st loc queue pc scope_stack ~fall_through | true -> if debug () then Format.eprintf "@[for(;;) {@,"; let never_body, body = @@ -1583,12 +1669,11 @@ and compile_block st queue (pc : Addr.t) scope_stack ~fall_through = | Return -> scope_stack in let never_body, body = - compile_block_no_loop st queue pc scope_stack ~fall_through:(Block pc) + compile_block_no_loop st loc queue pc scope_stack ~fall_through:(Block pc) in if debug () then Format.eprintf "}@]@,"; let for_loop = - ( J.For_statement (J.Left None, None, None, Js_simpl.block body) - , source_location_ctx st.ctx (Code.location_of_pc pc) ) + J.For_statement (J.Left None, None, None, Js_simpl.block body), loc in let label = if !lab_used then Some lab else None in let for_loop = @@ -1601,7 +1686,7 @@ and compile_block st queue (pc : Addr.t) scope_stack ~fall_through = never_body, body (* Compile block. Loops have already been handled. *) -and compile_block_no_loop st queue (pc : Addr.t) ~fall_through scope_stack = +and compile_block_no_loop st loc queue (pc : Addr.t) ~fall_through scope_stack = if pc < 0 then assert false; if Addr.Set.mem pc !(st.visited_blocks) then ( @@ -1610,7 +1695,7 @@ and compile_block_no_loop st queue (pc : Addr.t) ~fall_through scope_stack = if debug () then Format.eprintf "Compiling block %d@;" pc; st.visited_blocks := Addr.Set.add pc !(st.visited_blocks); let block = Addr.Map.find pc st.ctx.blocks in - let seq, queue = translate_instrs st.ctx queue block.body in + let loc, seq, queue = translate_instrs st.ctx loc queue block.body in let nbbranch = match fst block.branch with | Switch (_, a) -> @@ -1632,13 +1717,13 @@ and compile_block_no_loop st queue (pc : Addr.t) ~fall_through scope_stack = in let rec loop ~scope_stack ~fall_through l = match l with - | [] -> compile_conditional st queue ~fall_through block.branch scope_stack + | [] -> compile_conditional st queue ~fall_through loc block.branch scope_stack | x :: xs -> ( let l = J.Label.fresh () in let used = ref false in let scope_stack = (x, (l, used, Forward)) :: scope_stack in let _never_inner, inner = loop ~scope_stack ~fall_through:(Block x) xs in - let never, code = compile_block st [] x scope_stack ~fall_through in + let never, code = compile_block st loc [] x scope_stack ~fall_through in match !used with | true -> never, [ J.Labelled_statement (l, (J.Block inner, J.N)), J.N ] @ code | false -> never, inner @ code) @@ -1646,10 +1731,11 @@ and compile_block_no_loop st queue (pc : Addr.t) ~fall_through scope_stack = let never_after, after = loop ~scope_stack ~fall_through new_scopes in never_after, seq @ after -and compile_decision_tree kind st scope_stack loc cx dtree ~fall_through = +and compile_decision_tree kind st scope_stack loc_before cx loc_after dtree ~fall_through + = (* Some changes here may require corresponding changes in function [DTree.fold_cont] above. *) - let rec loop cx scope_stack : _ -> bool * _ = function + let rec loop loc cx scope_stack : _ -> bool * _ = function | DTree.Branch (l, cont) -> if debug () then @@ -1661,12 +1747,12 @@ and compile_decision_tree kind st scope_stack loc cx dtree ~fall_through = ~pp_sep:(fun fmt () -> Format.pp_print_string fmt ", ") (fun fmt pc -> Format.fprintf fmt "%d" pc)) l; - let never, code = compile_branch st [] cont scope_stack ~fall_through in + let never, code = compile_branch st loc_after [] cont scope_stack ~fall_through in if debug () then Format.eprintf "}@]@;"; never, code | DTree.If (cond, cont1, cont2) -> - let never1, iftrue = loop cx scope_stack cont1 in - let never2, iffalse = loop cx scope_stack cont2 in + let never1, iftrue = loop loc_after cx scope_stack cont1 in + let never2, iffalse = loop loc_after cx scope_stack cont2 in let e' = match cond with | IsTrue -> cx @@ -1676,6 +1762,7 @@ and compile_decision_tree kind st scope_stack loc cx dtree ~fall_through = in ( never1 && never2 , Js_simpl.if_statement + ~function_end:(fun () -> source_location st.ctx After st.pc) e' loc (Js_simpl.block iftrue) @@ -1698,13 +1785,13 @@ and compile_decision_tree kind st scope_stack loc cx dtree ~fall_through = in let last = let case = a.(last_index) in - let never, code = loop cx scope_stack (Branch case) in + let never, code = loop loc_after cx scope_stack (Branch case) in if not never then all_never := false; code in let rec loop_cases pos acc = let ((ints, _cont) as case) = a.(pos) in - let never, code = loop cx scope_stack (Branch case) in + let never, code = loop loc_after cx scope_stack (Branch case) in if not never then all_never := false; let _, acc = List.fold_right ints ~init:(true, acc) ~f:(fun i (first, acc) -> @@ -1729,18 +1816,18 @@ and compile_decision_tree kind st scope_stack loc cx dtree ~fall_through = in (not !exit_branch_used) && !all_never, code in - let cx, binds = + let cx, binds, loc = match cx with - | (J.EVar _ | _) when DTree.nbcomp dtree <= 1 -> cx, [] + | (J.EVar _ | _) when DTree.nbcomp dtree <= 1 -> cx, [], loc_before | _ -> let v = J.V (Code.Var.fresh ()) in - J.EVar v, [ J.variable_declaration [ v, (cx, J.N) ], J.N ] + J.EVar v, [ J.variable_declaration [ v, (cx, loc_before) ], J.N ], loc_after in - let never, code = loop cx scope_stack dtree in + let never, code = loop loc cx scope_stack dtree in never, binds @ code -and compile_conditional st queue ~fall_through last scope_stack : _ * _ = - let last, pc = last in +and compile_conditional st queue ~fall_through loc last scope_stack : _ * _ = + let last, _ = last in (if debug () then match last with @@ -1751,28 +1838,49 @@ and compile_conditional st queue ~fall_through last scope_stack : _ * _ = | Stop -> Format.eprintf "stop;@;" | Cond (x, _, _) -> Format.eprintf "@[cond(%a){@;" Code.Var.print x | Switch (x, _) -> Format.eprintf "@[switch(%a){@;" Code.Var.print x); - let loc = source_location_ctx st.ctx pc in let res = match last with | Return x -> - let (_px, cx), queue = access_queue queue x in - let return_expr = - if Var.equal st.ctx.deadcode_sentinal x then None else Some cx + let open Expr_builder in + let instrs = + let* cx = access x in + let return_expr = + if Var.equal st.ctx.deadcode_sentinal x then None else Some cx + in + let loc' = + match cx with + | ECall _ -> ( + (* We usually don't have a good locations for tail + calls, so use the end of the function instead *) + match source_location st.ctx After st.pc with + | J.N -> loc + | loc -> loc) + | _ -> loc + in + let* loc = statement_loc loc in + return [ J.Return_statement (return_expr, loc'), loc ] in - true, flush_all queue [ J.Return_statement return_expr, loc ] + true, flush_all queue loc instrs | Raise (x, k) -> - let (_px, cx), queue = access_queue queue x in - true, flush_all queue (throw_statement st.ctx cx k loc) + let open Expr_builder in + let instrs = + let* cx = access x in + let* loc = statement_loc loc in + return (throw_statement st.ctx cx k loc) + in + true, flush_all queue loc instrs | Stop -> let e_opt = if st.ctx.Ctx.should_export then Some (s_var Global_constant.exports) else None in - true, flush_all queue [ J.Return_statement e_opt, loc ] - | Branch cont -> compile_branch st queue cont scope_stack ~fall_through + true, flush_all queue loc [ J.Return_statement (e_opt, loc), loc ] + | Branch cont -> compile_branch st loc queue cont scope_stack ~fall_through | Pushtrap (c1, x, e1) -> - let never_body, body = compile_branch st [] c1 scope_stack ~fall_through in + let never_body, body = compile_branch st J.N [] c1 scope_stack ~fall_through in if debug () then Format.eprintf "@,}@]@,@[catch {@;"; - let never_handler, handler = compile_branch st [] e1 scope_stack ~fall_through in + let never_handler, handler = + compile_branch st J.U [] e1 scope_stack ~fall_through + in let exn_var, handler = assert (not (List.mem x ~set:(snd e1))); let wrap_exn x = @@ -1786,45 +1894,52 @@ and compile_conditional st queue ~fall_through last scope_stack : _ * _ = | _ -> let handler_var = Code.Var.fork x in ( handler_var - , (J.variable_declaration [ J.V x, (wrap_exn handler_var, J.N) ], J.N) + , (J.variable_declaration [ J.V x, (wrap_exn handler_var, J.U) ], J.N) :: handler ) in ( never_body && never_handler , flush_all queue + loc [ ( J.Try_statement (body, Some (Some (J.param' (J.V exn_var)), handler), None) , loc ) ] ) | Poptrap cont -> - let never, code = compile_branch st [] cont scope_stack ~fall_through in - never, flush_all queue code + let never, code = compile_branch st J.N [] cont scope_stack ~fall_through in + never, flush_all queue loc code | Cond (x, c1, c2) -> - let (_px, cx), queue = access_queue queue x in + let cx, loc_before, queue = Expr_builder.get queue loc (Expr_builder.access x) in + (* We keep track of the location [loc_before] before the + expression is evaluated and of the location after [loc]. *) let never, b = compile_decision_tree "Bool" st scope_stack ~fall_through - loc + loc_before cx + loc (DTree.build_if c1 c2) in - never, flush_all queue b + never, flush_all queue loc_before b | Switch (x, a1) -> - let (_px, cx), queue = access_queue queue x in + let cx, loc_before, queue = Expr_builder.get queue loc (Expr_builder.access x) in + (* We keep track of the location [loc_before] before the + expression is evaluated and of the location after [loc]. *) let never, code = compile_decision_tree "Int" st scope_stack ~fall_through - loc + loc_before cx + loc (DTree.build_switch a1) in - never, flush_all queue code + never, flush_all queue loc_before code in (if debug () then @@ -1833,14 +1948,14 @@ and compile_conditional st queue ~fall_through last scope_stack : _ * _ = | Switch _ | Cond _ | Pushtrap _ -> Format.eprintf "}@]@;"); res -and compile_argument_passing ctx queue (pc, args) back_edge continuation = +and compile_argument_passing ctx loc queue (pc, args) back_edge continuation = if List.is_empty args then continuation queue else let block = Addr.Map.find pc ctx.Ctx.blocks in - parallel_renaming back_edge block.params args continuation queue + parallel_renaming loc back_edge block.params args continuation queue -and compile_branch st queue ((pc, _) as cont) scope_stack ~fall_through : bool * _ = +and compile_branch st loc queue ((pc, _) as cont) scope_stack ~fall_through : bool * _ = let scope = List.assoc_opt pc scope_stack in let back_edge = List.exists @@ -1849,11 +1964,11 @@ and compile_branch st queue ((pc, _) as cont) scope_stack ~fall_through : bool * | _ -> false) scope_stack in - compile_argument_passing st.ctx queue cont back_edge (fun queue -> + compile_argument_passing st.ctx loc queue cont back_edge (fun queue -> if match fall_through with | Block pc' -> pc' = pc | Return -> false - then false, flush_all queue [] + then false, flush_all queue loc [] else match scope with | Some (l, used, Loop) -> @@ -1878,7 +1993,7 @@ and compile_branch st queue ((pc, _) as cont) scope_stack ~fall_through : bool * if Option.is_none label then Format.eprintf "continue;@," else Format.eprintf "continue (%d);@," pc; - true, flush_all queue [ J.Continue_statement label, J.N ] + true, flush_all queue loc [ J.Continue_statement label, J.N ] | Some (l, used, (Exit_loop branch_used | Exit_switch branch_used)) -> (* Break out of a loop or switch (using Break) We can skip the label if we're not inside a nested loop or switch. @@ -1903,20 +2018,28 @@ and compile_branch st queue ((pc, _) as cont) scope_stack ~fall_through : bool * if Option.is_none label then Format.eprintf "break;@," else Format.eprintf "break (%d);@," pc; - true, flush_all queue [ J.Break_statement label, J.N ] + true, flush_all queue loc [ J.Break_statement label, J.N ] | Some (l, used, Forward) -> (* break outside a labelled statement. The label is mandatory in this case. *) if debug () then Format.eprintf "(br %d)@;" pc; used := true; - true, flush_all queue [ J.Break_statement (Some l), J.N ] - | None -> compile_block st queue pc scope_stack ~fall_through) + true, flush_all queue loc [ J.Break_statement (Some l), J.N ] + | None -> compile_block st loc queue pc scope_stack ~fall_through) and compile_closure ctx (pc, args) = let st = build_graph ctx pc in let current_blocks = Structure.get_nodes st.structure in if debug () then Format.eprintf "@[closure {@;"; let scope_stack = [] in - let _never, res = compile_branch st [] (pc, args) scope_stack ~fall_through:Return in + let start_loc = + let block = Addr.Map.find pc ctx.Ctx.blocks in + match block.body with + | (Event loc, _) :: _ -> J.Pi loc + | _ -> J.U + in + let _never, res = + compile_branch st start_loc [] (pc, args) scope_stack ~fall_through:Return + in if Addr.Set.cardinal !(st.visited_blocks) <> Addr.Set.cardinal current_blocks then ( let missing = Addr.Set.diff current_blocks !(st.visited_blocks) in @@ -1925,12 +2048,14 @@ and compile_closure ctx (pc, args) = if debug () then Format.eprintf "}@]@;"; res -and collect_closures l = +and collect_closures loc l = match l with + | (Event loc, _) :: ((Let (_, Closure _), _) :: _ as rem) -> + collect_closures (J.Pi loc) rem | ((Let (x, Closure (_, (pc, _))), _loc) as i) :: rem -> - let names', pcs', i', rem' = collect_closures rem in - x :: names', pc :: pcs', i :: i', rem' - | _ -> [], [], [], l + let names', pcs', i', rem', loc' = collect_closures loc rem in + x :: names', pc :: pcs', (i, loc) :: i', rem', loc' + | _ -> [], [], [], l, loc let generate_shared_value ctx = let strings = @@ -1943,17 +2068,17 @@ let generate_shared_value ctx = , ( J.dot (s_var Global_constant.global_object) (Utf8_string.of_string_exn "jsoo_runtime") - , J.N ) ) + , J.U ) ) ]) @ List.map (StringMap.bindings ctx.Ctx.share.Share.vars.Share.byte_strings) - ~f:(fun (s, v) -> v, (str_js_byte s, J.N)) + ~f:(fun (s, v) -> v, (str_js_byte s, J.U)) @ List.map (StringMap.bindings ctx.Ctx.share.Share.vars.Share.utf_strings) - ~f:(fun (s, v) -> v, (str_js_utf8 s, J.N)) + ~f:(fun (s, v) -> v, (str_js_utf8 s, J.U)) @ List.map (StringMap.bindings ctx.Ctx.share.Share.vars.Share.prims) - ~f:(fun (s, v) -> v, (runtime_fun ctx s, J.N))) + ~f:(fun (s, v) -> v, (runtime_fun ctx s, J.U))) , J.U ) in if not (Config.Flag.inline_callgen ()) diff --git a/compiler/lib/generate.mli b/compiler/lib/generate.mli index 60c98959fb..453cc2f445 100644 --- a/compiler/lib/generate.mli +++ b/compiler/lib/generate.mli @@ -30,9 +30,3 @@ val f : -> Javascript.program val init : unit -> unit - -val source_location : - Parse_bytecode.Debug.t - -> ?force:Parse_bytecode.Debug.force - -> Code.loc - -> Javascript.location diff --git a/compiler/lib/generate_closure.ml b/compiler/lib/generate_closure.ml index b6b22a05e6..683544abf5 100644 --- a/compiler/lib/generate_closure.ml +++ b/compiler/lib/generate_closure.ml @@ -133,7 +133,7 @@ module Trampoline = struct ; branch = Return return, loc } - let wrapper_block f ~args ~counter loc = + let wrapper_block f ~args ~counter loc loc' = let result1 = Code.Var.fresh () in let result2 = Code.Var.fresh () in let block = @@ -141,15 +141,19 @@ module Trampoline = struct ; body = (match counter with | None -> - [ Let (result1, Apply { f; args; exact = true }), loc + [ Event loc, noloc + ; Let (result1, Apply { f; args; exact = true }), loc' + ; Event Parse_info.zero, noloc ; Let (result2, Prim (Extern "caml_trampoline", [ Pv result1 ])), noloc ] | Some counter -> - [ Let (counter, Constant (Int Targetint.zero)), noloc - ; Let (result1, Apply { f; args = counter :: args; exact = true }), loc + [ Event loc, noloc + ; Let (counter, Constant (Int Targetint.zero)), noloc + ; Let (result1, Apply { f; args = counter :: args; exact = true }), loc' + ; Event Parse_info.zero, noloc ; Let (result2, Prim (Extern "caml_trampoline", [ Pv result1 ])), noloc ]) - ; branch = Return result2, loc + ; branch = Return result2, loc' } in block @@ -187,8 +191,14 @@ module Trampoline = struct let wrapper_pc = free_pc in let free_pc = free_pc + 1 in let new_counter = Option.map counter ~f:Code.Var.fork in + let start_loc = + let block = Addr.Map.find (fst ci.cont) blocks in + match block.body with + | (Event loc, _) :: _ -> loc + | _ -> Parse_info.zero + in let wrapper_block = - wrapper_block new_f ~args:new_args ~counter:new_counter ci.loc + wrapper_block new_f ~args:new_args ~counter:new_counter start_loc ci.loc in let blocks = Addr.Map.add wrapper_pc wrapper_block blocks in let instr_wrapper = Let (ci.f_name, wrapper_closure wrapper_pc new_args) in diff --git a/compiler/lib/global_deadcode.ml b/compiler/lib/global_deadcode.ml index 80136bc6f4..85252e38f1 100644 --- a/compiler/lib/global_deadcode.ml +++ b/compiler/lib/global_deadcode.ml @@ -116,7 +116,8 @@ let definitions prog = match i with | Let (x, e) -> set_def x (Expr e) | Assign (x, _) -> set_def x Param - | Set_field (_, _, _, _) | Offset_ref (_, _) | Array_set (_, _, _) -> ()) + | Event _ | Set_field (_, _, _, _) | Offset_ref (_, _) | Array_set (_, _, _) -> + ()) block.body) prog.blocks; defs @@ -214,7 +215,7 @@ let usages prog (global_info : Global_flow.info) scoped_live_vars : | Let (x, e) -> add_expr_uses scope x e (* For assignment, propagate liveness from new to old variable like a block parameter *) | Assign (x, y) -> add_use (Propagate { scope = []; src = x }) x y - | Set_field (_, _, _, _) | Offset_ref (_, _) | Array_set (_, _, _) -> ()) + | Event _ | Set_field (_, _, _, _) | Offset_ref (_, _) | Array_set (_, _, _) -> ()) block.body; (* Add uses from block branch *) match fst block.branch with @@ -336,7 +337,7 @@ let liveness prog pure_funs (global_info : Global_flow.info) = add_top scope z | Offset_ref (x, _) -> add_live_field scope x 0 (* Assignment can be ignored. Liveness of old variable is just propagated to new variable. See [usages]. *) - | Assign (_, _) -> () + | Event _ | Assign (_, _) -> () in let live_block scope block = List.iter ~f:(fun (i, _) -> live_instruction scope i) block.body; @@ -467,8 +468,11 @@ let zero prog sentinal live_table = Let (x, Apply { ap with args }) | Field (_, _, _) | Closure (_, _) | Constant _ | Prim (_, _) | Special _ -> instr ) - | Assign (_, _) | Set_field (_, _, _, _) | Offset_ref (_, _) | Array_set (_, _, _) -> - instr + | Event _ + | Assign (_, _) + | Set_field (_, _, _, _) + | Offset_ref (_, _) + | Array_set (_, _, _) -> instr in let zero_block block = (* Analyze block instructions *) diff --git a/compiler/lib/global_flow.ml b/compiler/lib/global_flow.ml index 66ce9fe395..9e6a536315 100644 --- a/compiler/lib/global_flow.ml +++ b/compiler/lib/global_flow.ml @@ -254,7 +254,7 @@ let program_deps st { start; blocks; _ } = | Set_field (x, _, _, y) | Array_set (x, _, y) -> possibly_mutable st x; do_escape st Escape y - | Offset_ref _ -> ()); + | Event _ | Offset_ref _ -> ()); match fst block.branch with | Return _ | Stop -> () | Raise (x, _) -> do_escape st Escape x diff --git a/compiler/lib/inline.ml b/compiler/lib/inline.ml index e6707e50d5..fbcf564151 100644 --- a/compiler/lib/inline.ml +++ b/compiler/lib/inline.ml @@ -34,7 +34,13 @@ type closure_info = } let block_size { branch; body; _ } = - List.length body + List.fold_left + ~f:(fun n (i, _) -> + match i with + | Event _ -> n + | _ -> n + 1) + ~init:0 + body + match fst branch with | Cond _ -> 2 @@ -303,7 +309,13 @@ let inline ~first_class_primitives live_vars closures name pc (outer, p) = | Let (x, Closure (l, (pc, []))), loc when first_class_primitives -> ( let block = Addr.Map.find pc p.blocks in match block with - | { body = [ (Let (y, Prim (Extern prim, args)), _loc) ] + | { body = + ( [ (Let (y, Prim (Extern prim, args)), _loc) ] + | [ (Event _, _); (Let (y, Prim (Extern prim, args)), _loc) ] + | [ (Event _, _) + ; (Let (y, Prim (Extern prim, args)), _loc) + ; (Event _, _) + ] ) ; branch = Return y', _ ; params = [] } -> diff --git a/compiler/lib/javascript.ml b/compiler/lib/javascript.ml index 952b196769..ca1c8be266 100644 --- a/compiler/lib/javascript.ml +++ b/compiler/lib/javascript.ml @@ -280,7 +280,7 @@ and expression = | EAccess of expression * access_kind * expression | EDot of expression * access_kind * identifier | EDotPrivate of expression * access_kind * identifier - | ENew of expression * arguments option + | ENew of expression * arguments option * location | EVar of ident | EFun of ident option * function_declaration | EClass of ident option * class_declaration @@ -347,7 +347,7 @@ and statement = * (statement * location) | Continue_statement of Label.t option | Break_statement of Label.t option - | Return_statement of expression option + | Return_statement of expression option * location | With_statement of expression * (statement * location) | Labelled_statement of Label.t * (statement * location) | Switch_statement of diff --git a/compiler/lib/javascript.mli b/compiler/lib/javascript.mli index af02260783..499393e3cc 100644 --- a/compiler/lib/javascript.mli +++ b/compiler/lib/javascript.mli @@ -197,7 +197,7 @@ and expression = | EAccess of expression * access_kind * expression | EDot of expression * access_kind * identifier | EDotPrivate of expression * access_kind * identifier - | ENew of expression * arguments option + | ENew of expression * arguments option * location | EVar of ident | EFun of ident option * function_declaration | EClass of ident option * class_declaration @@ -265,7 +265,7 @@ and statement = * (statement * location) | Continue_statement of Label.t option | Break_statement of Label.t option - | Return_statement of expression option + | Return_statement of expression option * location | With_statement of expression * (statement * location) | Labelled_statement of Label.t * (statement * location) | Switch_statement of diff --git a/compiler/lib/js_output.ml b/compiler/lib/js_output.ml index 6a44ee57b5..94174d2dff 100644 --- a/compiler/lib/js_output.ml +++ b/compiler/lib/js_output.ml @@ -39,6 +39,86 @@ throw v} *) + +(* +Source maps +=========== +Most of this information was obtained by running the Firefox and +Chrome debuggers on some test programs. + +The location of a declaration is determined by the first character of +the expression. + + var x = e + ^ + +The location of other statements is determined by looking at the first +character of the statement. + + return e + ^ + +Chrome will also stop at the very character after a return statement +before returning (which can be ambigous). + + return e;if ... + ^ + +The location of the end of the function is determined by the closing brace. +Firefox will always stop their. Chrome only if there is no return statement. + + function f() { ... } + ^ + +For an arrow function Firefox stops on the last character, while +Chrome stops on the character right after. + + (x)=>x+1 + ^^ + +In Chrome the location of a function call is at the start of the name +of the function when it is explicit. + + f(e) Math.cos(1.) + ^ ^ + +Otherwise, the location of the opening parenthesis is used. Firefox +always uses this location. + + (0,f)(e)(e') + ^ ^ + +Usually, Chrome stops at the begining of statements. + + if (e) { ... } + ^ + +Firefox will rather stop on the expression when there is one. + + if (e) { ... } + ^ + +The debugger don't stop at some statements, such as function +declarations, labelled statements, and block statements. + +Chrome uses the name associated to the location of each bound variable +to determine its name [1]. + + function f(x) { var y = ... } + ^ ^ ^ + +Chrome uses the location of the opening parenthesis of a function +declaration to determine the function name in the stack [2]. + + + function f() { ... } + ^ + +[1] https://github.com/ChromeDevTools/devtools-frontend/blob/11db398f811784395a6706cf3f800014d98171d9/front_end/models/source_map_scopes/NamesResolver.ts#L238-L243 + +[2] https://github.com/ChromeDevTools/devtools-frontend/blob/11db398f811784395a6706cf3f800014d98171d9/front_end/models/source_map_scopes/NamesResolver.ts#L765-L768 +*) + open! Stdlib let stats = Debug.find "output" @@ -53,6 +133,8 @@ module Make (D : sig val get_name_index : string -> int + val hidden_location : Source_map.map + val source_map_enabled : bool val accept_unnamed_var : bool @@ -66,79 +148,108 @@ struct let debug_enabled = Config.Flag.debuginfo () + let current_loc = ref U + + let last_mapping_has_a_name = ref false + let output_debug_info f loc = - (if debug_enabled - then - match loc with - | Pi { Parse_info.src = None | Some ""; name = None | Some ""; _ } | N -> () - | U -> - PP.non_breaking_space f; - PP.string f "/*<>*/"; - PP.non_breaking_space f - | Pi { Parse_info.src; name; line; col; _ } -> - let file = - match name, src with - | (None | Some ""), Some file -> file - | Some file, (None | Some "") -> file - | Some file, Some _file -> file - | None, None -> assert false - in - PP.non_breaking_space f; - PP.string f (Format.sprintf "/*<<%s:%d:%d>>*/" file line col); - PP.non_breaking_space f); - if source_map_enabled - then + let loc = + (* We force a new mapping after an identifier, to avoid its name + to bleed over other identifiers, using the current location + when none is provided. *) match loc with - | N -> () - | U | Pi { Parse_info.src = None | Some ""; _ } -> - push_mapping (PP.pos f) (Source_map.Gen { gen_line = -1; gen_col = -1 }) - | Pi { Parse_info.src = Some file; line; col; _ } -> - push_mapping - (PP.pos f) - (Source_map.Gen_Ori - { gen_line = -1 - ; gen_col = -1 - ; ori_source = get_file_index file - ; ori_line = line - ; ori_col = col - }) - - let output_debug_info_ident f nm loc = + | N when !last_mapping_has_a_name -> !current_loc + | _ -> loc + in + match loc with + | N -> () + | _ -> + let location_changed = Poly.(loc <> !current_loc) in + (if source_map_enabled && (!last_mapping_has_a_name || location_changed) + then + match loc with + | N | U | Pi { Parse_info.src = None | Some ""; _ } -> + push_mapping (PP.pos f) hidden_location + | Pi { Parse_info.src = Some file; line; col; _ } -> + push_mapping + (PP.pos f) + (Source_map.Gen_Ori + { gen_line = -1 + ; gen_col = -1 + ; ori_source = get_file_index file + ; ori_line = line + ; ori_col = col + })); + (if debug_enabled && location_changed + then + match loc with + | N | U -> + PP.non_breaking_space f; + PP.string f "/*<>*/"; + PP.non_breaking_space f + | Pi pi -> + PP.non_breaking_space f; + PP.string f (Format.sprintf "/*<<%s>>*/" (Parse_info.to_string pi)); + PP.non_breaking_space f); + current_loc := loc; + last_mapping_has_a_name := false + + let output_debug_info_ident f nm_opt = if source_map_enabled then - match loc with - | None | Some { Parse_info.src = Some "" | None; _ } -> () - | Some { Parse_info.src = Some file; line; col; _ } -> + match nm_opt with + | None -> + (* Make sure that the name of a previous identifier does not + bleed on this one. *) + output_debug_info f N + | Some nm -> + last_mapping_has_a_name := true; push_mapping (PP.pos f) - (Source_map.Gen_Ori_Name - { gen_line = -1 - ; gen_col = -1 - ; ori_source = get_file_index file - ; ori_line = line - ; ori_col = col - ; ori_name = get_name_index nm - }) - - let ident f = function + (match !current_loc with + | N | U | Pi { Parse_info.src = Some "" | None; _ } -> + (* Use a dummy location. It is going to be ignored anyway *) + let ori_source = + match hidden_location with + | Source_map.Gen_Ori { ori_source; _ } -> ori_source + | _ -> 0 + in + Source_map.Gen_Ori_Name + { gen_line = -1 + ; gen_col = -1 + ; ori_source + ; ori_line = 1 + ; ori_col = 0 + ; ori_name = get_name_index nm + } + | Pi { Parse_info.src = Some file; line; col; _ } -> + Source_map.Gen_Ori_Name + { gen_line = -1 + ; gen_col = -1 + ; ori_source = get_file_index file + ; ori_line = line + ; ori_col = col + ; ori_name = get_name_index nm + }) + + let ident f ~kind = function | S { name = Utf8 name; var = Some v; _ } -> - output_debug_info_ident f name (Code.Var.get_loc v); + (match kind with + | `Binding -> output_debug_info_ident f (Code.Var.get_name v) + | `Reference -> ()); if false then PP.string f (Printf.sprintf "/* %d */" (Code.Var.idx v)); PP.string f name - | S { name = Utf8 name; var = None; loc = Pi pi } -> - output_debug_info_ident f name (Some pi); - PP.string f name - | S { name = Utf8 name; var = None; loc = U | N } -> PP.string f name + | S { name = Utf8 name; var = None; _ } -> PP.string f name | V v -> assert accept_unnamed_var; PP.string f ("<" ^ Code.Var.to_string v ^ ">") - let opt_identifier f i = + let opt_identifier f ~kind i = match i with | None -> () | Some i -> PP.space f; - ident f i + ident f ~kind i let early_error _ = assert false @@ -384,6 +495,36 @@ struct in traverse l e + (* The debuggers do not stop on some statements, like function + declarations. So there is no point in outputting some debug + information there. *) + let stop_on_statement st = + match st with + | Block _ + | Variable_statement _ + | Function_declaration _ + | Class_declaration _ + | Empty_statement + | Labelled_statement _ + | Import _ + | Export _ -> false + | Expression_statement _ + | If_statement _ + | Do_while_statement _ + | While_statement _ + | For_statement _ + | ForIn_statement _ + | ForOf_statement _ + | ForAwaitOf_statement _ + | Continue_statement _ + | Break_statement _ + | Return_statement _ + | With_statement _ + | Switch_statement _ + | Throw_statement _ + | Try_statement _ + | Debugger_statement -> true + let best_string_quote s = let simple = ref 0 and double = ref 0 in for i = 0 to String.length s - 1 do @@ -468,7 +609,7 @@ struct let rec expression (l : prec) f e = match e with - | EVar v -> ident f v + | EVar v -> ident f ~kind:`Reference v | ESeq (e1, e2) -> if Prec.(l > Expression) then ( @@ -509,13 +650,14 @@ struct PP.end_group f); PP.end_group f; (match b, consise with - | [ (Return_statement (Some e), loc) ], true -> + | [ (Return_statement (Some e, loc), loc') ], true -> (* Should not starts with '{' *) PP.start_group f 1; PP.break1 f; - output_debug_info f loc; + output_debug_info f loc'; parenthesized_expression ~obj:true AssignementExpression f e; - PP.end_group f + PP.end_group f; + output_debug_info f loc | l, _ -> let b = match l with @@ -542,6 +684,8 @@ struct PP.start_group f 1; expression CallOrMemberExpression f e; PP.break f; + (* Make sure that the opening parenthesis has the appropriate info *) + output_debug_info f loc; PP.start_group f 1; (match access_kind with | ANormal -> PP.string f "(" @@ -740,9 +884,9 @@ struct | EAssignTarget t -> ( let property f p = match p with - | TargetPropertyId (Prop_and_ident id, None) -> ident f id + | TargetPropertyId (Prop_and_ident id, None) -> ident f ~kind:`Reference id | TargetPropertyId (Prop_and_ident id, Some (e, _)) -> - ident f id; + ident f ~kind:`Reference id; PP.space f; PP.string f "="; PP.space f; @@ -773,9 +917,9 @@ struct let element f p = match p with | TargetElementHole -> () - | TargetElementId (id, None) -> ident f id + | TargetElementId (id, None) -> ident f ~kind:`Reference id | TargetElementId (id, Some (e, _)) -> - ident f id; + ident f ~kind:`Reference id; PP.space f; PP.string f "="; PP.space f; @@ -853,12 +997,13 @@ struct | ANormal -> PP.string f ".#" | ANullish -> PP.string f "?.#"); PP.string f nm - | ENew (e, None) -> + | ENew (e, None, loc) -> if Prec.(l > NewExpression) then ( PP.start_group f 1; PP.string f "("); PP.start_group f 1; + output_debug_info f loc; PP.string f "new"; PP.space f; expression NewExpression f e; @@ -867,8 +1012,9 @@ struct then ( PP.string f ")"; PP.end_group f) - | ENew (e, Some el) -> + | ENew (e, Some el, loc) -> PP.start_group f 1; + output_debug_info f loc; PP.string f "new"; PP.space f; expression MemberExpression f e; @@ -1070,17 +1216,17 @@ struct and variable_declaration f ?(in_ = true) x = match x with - | DeclIdent (i, None) -> ident f i + | DeclIdent (i, None) -> ident f ~kind:`Binding i | DeclIdent (i, Some (e, loc)) -> PP.start_group f 1; - output_debug_info f loc; PP.start_group f 0; - ident f i; + ident f ~kind:`Binding i; PP.space f; PP.string f "="; PP.end_group f; PP.start_group f 1; PP.space f; + output_debug_info f loc; let p = (not in_) && contains ~in_:true Expression e in if p then ( @@ -1095,12 +1241,12 @@ struct PP.end_group f | DeclPattern (p, (e, loc)) -> PP.start_group f 1; - output_debug_info f loc; PP.start_group f 0; pattern f p; PP.space f; PP.string f "="; PP.end_group f; + output_debug_info f loc; PP.start_group f 1; PP.space f; let p = (not in_) && contains ~in_:true Expression e in @@ -1123,9 +1269,9 @@ struct PP.string f ":"; PP.space f; binding_element f e - | Prop_ident (Prop_and_ident i, None) -> ident f i + | Prop_ident (Prop_and_ident i, None) -> ident f ~kind:`Binding i | Prop_ident (Prop_and_ident i, Some (e, loc)) -> - ident f i; + ident f ~kind:`Binding i; PP.space f; PP.string f "="; PP.space f; @@ -1136,16 +1282,16 @@ struct match e with | None -> binding f b | Some (e, loc) -> - output_debug_info f loc; binding f b; PP.space f; PP.string f "="; PP.space f; + output_debug_info f loc; expression AssignementExpression f e and binding f x = match x with - | BindingIdent id -> ident f id + | BindingIdent id -> ident f ~kind:`Binding id | BindingPattern p -> pattern f p and binding_array_elt f x = @@ -1163,7 +1309,7 @@ struct ~force_last_comma:(fun _ -> false) binding_property list - ident + (ident ~kind:`Binding) rest; PP.string f "}"; PP.end_group f @@ -1201,14 +1347,7 @@ struct and variable_declaration_list ?in_ kind close f = function | [] -> () | [ x ] -> - let x, loc = - match x with - | DeclIdent (_, None) as x -> x, N - | DeclIdent (i, Some (e, loc)) -> DeclIdent (i, Some (e, N)), loc - | DeclPattern (p, (e, loc)) -> DeclPattern (p, (e, N)), loc - in PP.start_group f 1; - output_debug_info f loc; variable_declaration_kind f kind; PP.space f; variable_declaration f ?in_ x; @@ -1263,8 +1402,20 @@ struct and statement ?(last = false) f (s, loc) = let can_omit_semi = PP.compact f && last in - let last_semi () = if can_omit_semi then () else PP.string f ";" in - output_debug_info f loc; + let last_semi ?(ret = false) () = + if can_omit_semi + then () + else if ret && source_map_enabled && PP.compact f + then + (* In Chrome, the debugger will stop right after a return + statement. We want a whitespace between this statement and + the next one to avoid confusing this location and the + location of the next statement. When pretty-printing, this + is already the case. In compact mode, we add a newline. *) + PP.string f ";\n" + else PP.string f ";" + in + if stop_on_statement s then output_debug_info f loc; match s with | Block b -> block f b | Variable_statement (k, l) -> variable_declaration_list k (not can_omit_semi) f l @@ -1466,17 +1617,18 @@ struct let (Utf8 l) = nane_of_label s in PP.string f l; last_semi () - | Return_statement e -> ( + | Return_statement (e, loc) -> ( match e with | None -> PP.string f "return"; - last_semi () + output_debug_info f loc; + last_semi ~ret:true () | Some (EFun (i, ({ async = false; generator = false }, l, b, pc))) -> PP.start_group f 1; PP.start_group f 0; PP.start_group f 0; PP.string f "return function"; - opt_identifier f i; + opt_identifier f ~kind:`Binding i; PP.end_group f; PP.break f; PP.start_group f 1; @@ -1490,7 +1642,8 @@ struct function_body f b; output_debug_info f pc; PP.string f "}"; - last_semi (); + output_debug_info f loc; + last_semi ~ret:true (); PP.end_group f | Some e -> PP.start_group f 7; @@ -1498,7 +1651,8 @@ struct PP.non_breaking_space f; PP.start_group f 0; expression Expression f e; - last_semi (); + output_debug_info f loc; + last_semi ~ret:true (); PP.end_group f; PP.end_group f (* There MUST be a space between the return and its @@ -1615,19 +1769,19 @@ struct | SideEffect -> () | Default i -> PP.space f; - ident f i + ident f ~kind:`Binding i | Namespace (def, i) -> Option.iter def ~f:(fun def -> PP.space f; - ident f def; + ident f ~kind:`Binding def; PP.string f ","); PP.space f; PP.string f "* as "; - ident f i + ident f ~kind:`Binding i | Named (def, l) -> Option.iter def ~f:(fun def -> PP.space f; - ident f def; + ident f ~kind:`Binding def; PP.string f ","); PP.space f; PP.string f "{"; @@ -1639,11 +1793,11 @@ struct if match i with | S { name; _ } when Stdlib.Utf8_string.equal name s -> true | _ -> false - then ident f i + then ident f ~kind:`Binding i else ( pp_ident_or_string_lit f s; PP.string f " as "; - ident f i)) + ident f ~kind:`Binding i)) l; PP.space f; PP.string f "}"); @@ -1671,9 +1825,9 @@ struct if match i with | S { name; _ } when Stdlib.Utf8_string.equal name s -> true | _ -> false - then ident f i + then ident f ~kind:`Reference i else ( - ident f i; + ident f ~kind:`Reference i; PP.string f " as "; pp_ident_or_string_lit f s)) l; @@ -1800,7 +1954,7 @@ struct | { async = true; generator = true } -> "async function*" | { async = false; generator = true } -> "function*" in - function_declaration f prefix ident name l b loc' + function_declaration f prefix (ident ~kind:`Binding) name l b loc' and class_declaration f i x = PP.start_group f 1; @@ -1811,7 +1965,7 @@ struct | None -> () | Some i -> PP.space f; - ident f i); + ident f ~kind:`Binding i); PP.end_group f; Option.iter x.extends ~f:(fun e -> PP.space f; @@ -1899,6 +2053,8 @@ let hashtbl_to_list htb = |> List.sort ~cmp:(fun (_, a) (_, b) -> compare a b) |> List.map ~f:fst +let blackbox_filename = "/builtin/blackbox.ml" + let program ?(accept_unnamed_var = false) ?(source_map = false) f p = let temp_mappings = ref [] in let files = Hashtbl.create 17 in @@ -1918,6 +2074,15 @@ let program ?(accept_unnamed_var = false) ?(source_map = false) f p = Hashtbl.add names name pos; pos ) in + let hidden_location = + Source_map.Gen_Ori + { gen_line = -1 + ; gen_col = -1 + ; ori_source = get_file_index blackbox_filename + ; ori_line = 1 + ; ori_col = 0 + } + in let module O = Make (struct let push_mapping = push_mapping @@ -1925,6 +2090,8 @@ let program ?(accept_unnamed_var = false) ?(source_map = false) f p = let get_file_index = get_file_index + let hidden_location = hidden_location + let source_map_enabled = source_map let accept_unnamed_var = accept_unnamed_var @@ -1941,21 +2108,38 @@ let program ?(accept_unnamed_var = false) ?(source_map = false) f p = | true -> let sources = hashtbl_to_list files in let names = hashtbl_to_list names in + let relocate pos m = + let gen_line = pos.PP.p_line + 1 in + let gen_col = pos.PP.p_col in + match m with + | Source_map.Gen { gen_col = _; gen_line = _ } -> + Source_map.Gen { gen_col; gen_line } + | Source_map.Gen_Ori m -> Source_map.Gen_Ori { m with gen_line; gen_col } + | Source_map.Gen_Ori_Name m -> + Source_map.Gen_Ori_Name { m with gen_line; gen_col } + in + let rec build_mappings pos mapping prev_mappings = + match mapping with + | [] -> prev_mappings + | (pos', m) :: rem -> + (* Firefox assumes that a mapping stops at the end of a + line, which is inconvenient. When this happens, we + repeat the mapping on the next line. *) + if pos'.PP.p_line = pos.PP.p_line + || (pos'.p_line = pos.p_line - 1 && pos.p_col = 0) + then build_mappings pos' rem (relocate pos' m :: prev_mappings) + else if pos.p_col > 0 + then + let pos = { pos with p_col = 0 } in + build_mappings pos mapping (relocate pos m :: prev_mappings) + else + let pos = { pos with p_line = pos.p_line - 1 } in + build_mappings pos mapping (relocate pos m :: prev_mappings) + in let mappings = - List.rev_map !temp_mappings ~f:(fun (pos, m) -> - let gen_line = pos.PP.p_line + 1 in - let gen_col = pos.PP.p_col in - match m with - | Source_map.Gen { gen_col = _; gen_line = _ } -> - Source_map.Gen { gen_col; gen_line } - | Source_map.Gen_Ori - { gen_line = _; gen_col = _; ori_source; ori_line; ori_col } -> - Source_map.Gen_Ori { gen_line; gen_col; ori_source; ori_line; ori_col } - | Source_map.Gen_Ori_Name - { gen_line = _; gen_col = _; ori_source; ori_line; ori_col; ori_name } - -> - Source_map.Gen_Ori_Name - { gen_line; gen_col; ori_source; ori_line; ori_col; ori_name }) + match !temp_mappings with + | [] -> [] + | (pos, m) :: rem -> build_mappings pos rem [ relocate pos m ] in { Source_map.sources; names; mappings } in diff --git a/compiler/lib/js_output.mli b/compiler/lib/js_output.mli index dd74de8738..bcb0a6ab45 100644 --- a/compiler/lib/js_output.mli +++ b/compiler/lib/js_output.mli @@ -24,3 +24,5 @@ val program : -> Pretty_print.t -> Javascript.program -> Source_map.info + +val blackbox_filename : string diff --git a/compiler/lib/js_parser.mly b/compiler/lib/js_parser.mly index b649a8acd1..014f7f6526 100644 --- a/compiler/lib/js_parser.mly +++ b/compiler/lib/js_parser.mly @@ -736,7 +736,7 @@ break_stmt: | T_BREAK l=label? sc { (Break_statement (l)) } return_stmt: - | T_RETURN e=expr? sc { (Return_statement e) } + | T_RETURN e=expr? sc { (Return_statement (e, p $endpos(e))) } switch_stmt: | T_SWITCH "(" subject=expr ")" cb=case_block @@ -906,7 +906,7 @@ call_expr(x): new_expr(x): | e=member_expr(x) { e } - | T_NEW e=new_expr(d1) { (ENew (e,None)) } + | T_NEW e=new_expr(d1) { (ENew (e,None, p $symbolstartpos)) } access: | "." { ANormal } @@ -924,7 +924,7 @@ member_expr(x): | e1=member_expr(x) ak=access i=field_name { (EDot(e1,ak,i)) } | T_NEW e1=member_expr(d1) a=arguments - { (ENew(e1, Some a)) } + { (ENew(e1, Some a, p $symbolstartpos)) } | e=member_expr(x) t=template_literal { ECallTemplate(e, t, p $symbolstartpos) } | T_SUPER "[" e=expr "]" @@ -1100,7 +1100,7 @@ async_arrow_function: (* was called consise body in spec *) arrow_body: | "{" b=function_body "}" { b, false } - | e=assignment_expr_for_consise_body { [(Return_statement (Some e), p $symbolstartpos)], true } + | e=assignment_expr_for_consise_body { [(Return_statement (Some e, p $endpos), p $symbolstartpos)], true } (*----------------------------*) (* no in *) diff --git a/compiler/lib/js_simpl.ml b/compiler/lib/js_simpl.ml index efdb3137db..ef7181855c 100644 --- a/compiler/lib/js_simpl.ml +++ b/compiler/lib/js_simpl.ml @@ -110,13 +110,13 @@ exception Not_expression let rec expression_of_statement_list l = match l with - | (J.Return_statement (Some e), _) :: _ -> e + | (J.Return_statement (Some e, _), _) :: _ -> e | (J.Expression_statement e, _) :: rem -> J.ESeq (e, expression_of_statement_list rem) | _ -> raise Not_expression let expression_of_statement st = match fst st with - | J.Return_statement (Some e) -> e + | J.Return_statement (Some e, _) -> e | J.Block l -> expression_of_statement_list l | _ -> raise Not_expression @@ -194,7 +194,7 @@ and depth_class_block b = | J.CEField _ -> acc | J.CEStaticBLock b -> depth_block b + 2) -let rec if_statement_2 e loc iftrue truestop iffalse falsestop = +let rec if_statement_2 ~function_end e loc iftrue truestop iffalse falsestop = let e = simplify_condition e in match fst iftrue, fst iffalse with (* Empty blocks *) @@ -202,7 +202,8 @@ let rec if_statement_2 e loc iftrue truestop iffalse falsestop = match e with | J.EVar _ -> [] | _ -> [ J.Expression_statement e, loc ]) - | J.Block [], _ -> if_statement_2 (enot e) loc iffalse falsestop iftrue truestop + | J.Block [], _ -> + if_statement_2 ~function_end (enot e) loc iffalse falsestop iftrue truestop | _, J.Block [] -> [ J.If_statement (e, iftrue, None), loc ] | _ -> ( try @@ -226,7 +227,7 @@ let rec if_statement_2 e loc iftrue truestop iffalse falsestop = try let e1 = expression_of_statement iftrue in let e2 = expression_of_statement iffalse in - [ J.Return_statement (Some (J.ECond (e, e1, e2))), loc ] + [ J.Return_statement (Some (J.ECond (e, e1, e2)), function_end ()), loc ] with Not_expression -> let truestop, falsestop = if truestop && falsestop @@ -247,33 +248,48 @@ let unopt b = | Some b -> b | None -> J.Block [], J.N -let if_statement e loc iftrue truestop iffalse falsestop = +let if_statement ~function_end e loc iftrue truestop iffalse falsestop = (*FIX: should be done at an earlier stage*) let e = simplify_condition e in match iftrue, iffalse with (* Shared statements *) - | (J.If_statement (e', iftrue', iffalse'), loc), _ when Poly.(iffalse = unopt iffalse') - -> if_statement_2 (J.EBin (J.And, e, e')) loc iftrue' truestop iffalse falsestop - | (J.If_statement (e', iftrue', iffalse'), loc), _ when Poly.(iffalse = iftrue') -> + | (J.If_statement (e', iftrue', iffalse'), _), _ when Poly.(iffalse = unopt iffalse') -> if_statement_2 + ~function_end + (J.EBin (J.And, e, e')) + loc + iftrue' + truestop + iffalse + falsestop + | (J.If_statement (e', iftrue', iffalse'), _), _ when Poly.(iffalse = iftrue') -> + if_statement_2 + ~function_end (J.EBin (J.And, e, J.EUn (J.Not, e'))) loc (unopt iffalse') truestop iffalse falsestop - | _, (J.If_statement (e', iftrue', iffalse'), loc) when Poly.(iftrue = iftrue') -> - if_statement_2 (J.EBin (J.Or, e, e')) loc iftrue truestop (unopt iffalse') falsestop - | _, (J.If_statement (e', iftrue', iffalse'), loc) when Poly.(iftrue = unopt iffalse') - -> + | _, (J.If_statement (e', iftrue', iffalse'), _) when Poly.(iftrue = iftrue') -> + if_statement_2 + ~function_end + (J.EBin (J.Or, e, e')) + loc + iftrue + truestop + (unopt iffalse') + falsestop + | _, (J.If_statement (e', iftrue', iffalse'), _) when Poly.(iftrue = unopt iffalse') -> if_statement_2 + ~function_end (J.EBin (J.Or, e, J.EUn (J.Not, e'))) loc iftrue truestop iftrue' falsestop - | _ -> if_statement_2 e loc iftrue truestop iffalse falsestop + | _ -> if_statement_2 ~function_end e loc iftrue truestop iffalse falsestop let function_body b = (* We only check for a return at the end since it is by far the most @@ -282,7 +298,7 @@ let function_body b = let rec check l = match l with | [] -> false - | [ (J.Return_statement None, _) ] -> true + | [ (J.Return_statement (None, _), _) ] -> true | _ :: r -> check r in check b @@ -292,7 +308,7 @@ let function_body b = let rec remove acc l = match l with | [] -> acc - | [ (J.Return_statement None, _) ] -> acc + | [ (J.Return_statement (None, _), _) ] -> acc | i :: r -> remove (i :: acc) r in List.rev (remove [] b) diff --git a/compiler/lib/js_simpl.mli b/compiler/lib/js_simpl.mli index 4d81f4ef24..d640595c9a 100644 --- a/compiler/lib/js_simpl.mli +++ b/compiler/lib/js_simpl.mli @@ -21,7 +21,8 @@ open Javascript val if_statement : - expression + function_end:(unit -> location) + -> expression -> location -> statement * location -> bool diff --git a/compiler/lib/js_traverse.ml b/compiler/lib/js_traverse.ml index aea066c1e9..4636d70011 100644 --- a/compiler/lib/js_traverse.ml +++ b/compiler/lib/js_traverse.ml @@ -187,7 +187,7 @@ class map : mapper = ForAwaitOf_statement (e1, m#expression e2, (m#statement s, m#loc loc)) | Continue_statement s -> Continue_statement s | Break_statement s -> Break_statement s - | Return_statement e -> Return_statement (m#expression_o e) + | Return_statement (e, loc) -> Return_statement (m#expression_o e, m#loc loc) | Labelled_statement (l, (s, loc)) -> Labelled_statement (l, (m#statement s, m#loc loc)) | Throw_statement e -> Throw_statement (m#expression e) @@ -314,8 +314,8 @@ class map : mapper = | EAccess (e1, ak, e2) -> EAccess (m#expression e1, ak, m#expression e2) | EDot (e1, ak, id) -> EDot (m#expression e1, ak, id) | EDotPrivate (e1, ak, id) -> EDotPrivate (m#expression e1, ak, id) - | ENew (e1, args) -> - ENew (m#expression e1, Option.map ~f:(List.map ~f:m#argument) args) + | ENew (e1, args, loc) -> + ENew (m#expression e1, Option.map ~f:(List.map ~f:m#argument) args, m#loc loc) | EVar v -> EVar (m#ident v) | EFun (idopt, fun_decl) -> let idopt = Option.map ~f:m#ident idopt in @@ -549,7 +549,7 @@ class iter : iterator = m#statement s | Continue_statement _ -> () | Break_statement _ -> () - | Return_statement e -> m#expression_o e + | Return_statement (e, _) -> m#expression_o e | Labelled_statement (_, (s, _)) -> m#statement s | Throw_statement e -> m#expression e | Switch_statement (e, l, def, l') -> @@ -668,10 +668,10 @@ class iter : iterator = m#expression e2 | EDot (e1, _ak, _) -> m#expression e1 | EDotPrivate (e1, _, _) -> m#expression e1 - | ENew (e1, Some args) -> + | ENew (e1, Some args, _) -> m#expression e1; List.iter args ~f:m#argument - | ENew (e1, None) -> m#expression e1 + | ENew (e1, None, _) -> m#expression e1 | EVar v -> m#ident v | EFun (idopt, fun_decl) -> (match idopt with @@ -1750,8 +1750,16 @@ class simpl = | If_statement (ENum n, _, iffalse) when Num.is_zero n -> opt_cons iffalse rem (* if (e1) return e2 else return e3 --> return e1 ? e2 : e3 *) | If_statement - (cond, (Return_statement (Some e1), _), Some (Return_statement (Some e2), _)) - -> (Return_statement (Some (ECond (cond, e1, e2))), loc) :: rem + ( cond + , (Return_statement (Some e1, _), _) + , Some (Return_statement (Some e2, _), _) ) -> + ( Return_statement + ( Some (ECond (cond, e1, e2)) + , U + (*TODO: it would be better to use the location of the + end of the function, but we can't easily get it. *) ) + , loc ) + :: rem (* if (e1) v1 = e2 else v1 = e3 --> v1 = e1 ? e2 : e3 *) | If_statement ( cond diff --git a/compiler/lib/ocaml_compiler.ml b/compiler/lib/ocaml_compiler.ml index bad5b3cd89..f8cd33453e 100644 --- a/compiler/lib/ocaml_compiler.ml +++ b/compiler/lib/ocaml_compiler.ml @@ -46,27 +46,6 @@ let rec constant_of_const c : Code.constant = let l = Array.of_list (List.map l ~f:constant_of_const) in Tuple (tag, l, Unknown) -let rec find_loc_in_summary ident' = function - | Env.Env_empty -> None - | Env.Env_value (_summary, ident, description) when Poly.(ident = ident') -> - Some description.Types.val_loc - | Env.Env_value (summary, _, _) - | Env.Env_type (summary, _, _) - | Env.Env_extension (summary, _, _) - | Env.Env_module (summary, _, _, _) - | Env.Env_modtype (summary, _, _) - | Env.Env_class (summary, _, _) - | Env.Env_cltype (summary, _, _) - | Env.Env_open (summary, _) - | Env.Env_functor_arg (summary, _) - | Env.Env_constraints (summary, _) - | ((Env.Env_copy_types (summary, _)) [@if ocaml_version < (4, 10, 0)]) - | ((Env.Env_copy_types summary) [@if ocaml_version >= (4, 10, 0)]) - | Env.Env_persistent (summary, _) - | ((Env.Env_value_unbound (summary, _, _)) [@if ocaml_version >= (4, 10, 0)]) - | ((Env.Env_module_unbound (summary, _, _)) [@if ocaml_version >= (4, 10, 0)]) -> - find_loc_in_summary ident' summary - module Symtable = struct (* Copied from ocaml/bytecomp/symtable.ml *) module Num_tbl (M : Map.S) = struct diff --git a/compiler/lib/ocaml_compiler.mli b/compiler/lib/ocaml_compiler.mli index 227f1b9f31..afcb137b29 100644 --- a/compiler/lib/ocaml_compiler.mli +++ b/compiler/lib/ocaml_compiler.mli @@ -18,8 +18,6 @@ val constant_of_const : Lambda.structured_constant -> Code.constant -val find_loc_in_summary : Ident.t -> Env.summary -> Location.t option - module Symtable : sig module Global : sig type t = diff --git a/compiler/lib/parse_bytecode.ml b/compiler/lib/parse_bytecode.ml index 2068d2d233..420e7a1360 100644 --- a/compiler/lib/parse_bytecode.ml +++ b/compiler/lib/parse_bytecode.ml @@ -39,10 +39,9 @@ let new_closure_repr = Ocaml_version.compare Ocaml_version.current [ 4; 12 ] >= module Debug : sig type t - type force = + type position = | Before | After - | No val names : t -> bool @@ -58,14 +57,15 @@ module Debug : sig val find_rec : t -> Code.Addr.t -> (int * Ident.t) list - val find_loc : t -> ?force:force -> Code.loc -> Parse_info.t option + val find_loc : t -> position:position -> Code.Addr.t -> Parse_info.t option - val find_loc' : - t -> int -> (string option * Location.t * Instruct.debug_event_kind) option + val find_locs : t -> int -> (string option * Instruct.debug_event) list - val find_source : t -> string -> string option - - val mem : t -> int -> bool + val event_location : + position:position + -> source:string option + -> event:Instruct.debug_event + -> Parse_info.t val read_event : paths:string list @@ -109,22 +109,19 @@ end = struct ; source : path option } - module String_table = Hashtbl.Make (String) module Int_table = Hashtbl.Make (Int) type t = { events_by_pc : event_and_source Int_table.t ; units : (string * string option, ml_unit) Hashtbl.t - ; pos_fname_to_source : string String_table.t ; names : bool ; enabled : bool ; include_cmis : bool } - type force = + type position = | Before | After - | No let names t = t.names @@ -138,7 +135,6 @@ end = struct let names = enabled || Config.Flag.pretty () in { events_by_pc = Int_table.create 17 ; units = Hashtbl.create 17 - ; pos_fname_to_source = String_table.create 17 ; names ; enabled ; include_cmis @@ -156,7 +152,7 @@ end = struct ~paths ~crcs ~orig - { events_by_pc; units; pos_fname_to_source; names; enabled; include_cmis = _ } + { events_by_pc; units; names; enabled; include_cmis = _ } ev = let pos_fname = match ev.ev_loc.Location.loc_start.Lexing.pos_fname with @@ -201,10 +197,6 @@ end = struct | None -> "NONE" | Some x -> x); let u = { module_name = ev_module; crc; source; paths } in - (match pos_fname, source with - | None, _ | _, None -> () - | Some pos_fname, Some source -> - String_table.add pos_fname_to_source pos_fname source); Hashtbl.add units (ev_module, pos_fname) u; u in @@ -233,15 +225,6 @@ end = struct let paths = read_paths ic @ includes in List.iter evl ~f:(read_event ~paths ~crcs ~orig debug) - let find_source { pos_fname_to_source; _ } pos_fname = - match pos_fname with - | "_none_" -> None - | _ -> ( - match String_table.find_all pos_fname_to_source pos_fname with - | [ x ] -> Some x - | _ :: _ :: _ -> None - | [] -> None) - let read t ~crcs ~includes ic = let len = input_binary_int ic in for _i = 0 to len - 1 do @@ -297,37 +280,32 @@ end = struct with Not_found -> [] [@@if ocaml_version >= (5, 2, 0)] - let mem { events_by_pc; _ } pc = Int_table.mem events_by_pc pc + let dummy_location (loc : Location.t) = + loc.loc_start.pos_cnum = -1 || loc.loc_end.pos_cnum = -1 + + (* We can have several events at the same location when a function + application is followed by a branch target, typically due to some + code like [if ... then f(); ...] : the event after the function + application, and the event at the beginning of the continuation. + Both events are interesting. They are returned by this function + in the expected order: first after the function call, then before + the continuation. *) + let find_locs { events_by_pc; _ } pc = + List.filter_map (Int_table.find_all events_by_pc pc) ~f:(fun { event; source } -> + if dummy_location event.ev_loc then None else Some (source, event)) + + let event_location ~position ~source ~event = + let pos = + match position with + | After -> event.ev_loc.Location.loc_end + | Before -> event.ev_loc.Location.loc_start + in + Parse_info.t_of_position ~src:source pos - let find_loc' { events_by_pc; _ } pc = - try - let { event; source } = Int_table.find events_by_pc pc in - let loc = event.ev_loc in - Some (source, loc, event.ev_kind) - with Not_found -> None - - let find_loc { events_by_pc; _ } ?(force = No) x = - match x with - | Code.No -> None - | Code.Before pc | Code.After pc -> ( - try - let { event; source } = Int_table.find events_by_pc pc in - let loc = event.ev_loc in - if loc.Location.loc_ghost - then None - else - let pos = - match force with - | After -> loc.Location.loc_end - | Before -> loc.Location.loc_start - | No -> ( - match x with - | Code.Before _ -> loc.Location.loc_start - | Code.After _ -> loc.Location.loc_end - | _ -> assert false) - in - Some (Parse_info.t_of_position ~src:source pos) - with Not_found -> None) + let find_loc t ~position pc = + match find_locs t pc with + | [] -> None + | (source, event) :: _ -> Some (event_location ~position ~source ~event) let rec propagate l1 l2 = match l1, l2 with @@ -568,18 +546,18 @@ let resize_globals g size = (* State of the VM *) module State = struct type elt = - | Var of Var.t * loc + | Var of Var.t | Dummy of string | Unset let elt_to_var e = match e with - | Var (x, loc) -> x, loc + | Var x -> x | _ -> assert false let print_elt f v = match v with - | Var (x, _) -> Format.fprintf f "%a" Var.print x + | Var x -> Format.fprintf f "%a" Var.print x | Dummy _ -> Format.fprintf f "٭" | Unset -> Format.fprintf f "∅" @@ -594,9 +572,9 @@ module State = struct ; globals : globals } - let fresh_var state loc = + let fresh_var state = let x = Var.fresh () in - x, { state with accu = Var (x, loc) } + x, { state with accu = Var x } let globals st = st.globals @@ -619,32 +597,11 @@ module State = struct | [] -> assert false | _ :: r -> st_pop (n - 1) r - let push st loc = - match loc with - | No -> { st with stack = st.accu :: st.stack } - | _ -> - { st with - stack = - (match st.accu with - | Dummy x -> Dummy x - | Unset -> Unset - | Var (x, _) -> Var (x, loc)) - :: st.stack - } + let push st = { st with stack = st.accu :: st.stack } let pop n st = { st with stack = st_pop n st.stack } - let acc n st loc = - match loc with - | No -> { st with accu = List.nth st.stack n } - | _ -> - { st with - accu = - (match List.nth st.stack n with - | Dummy x -> Dummy x - | Unset -> Unset - | Var (x, _) -> Var (x, loc)) - } + let acc n st = { st with accu = List.nth st.stack n } let env_acc n st = { st with accu = st.env.(st.env_offset + n) } @@ -653,10 +610,10 @@ module State = struct let stack_vars st = List.fold_left (st.accu :: st.stack) ~init:[] ~f:(fun l e -> match e with - | Var (x, _) -> x :: l + | Var x -> x :: l | Dummy _ | Unset -> l) - let set_accu st x loc = { st with accu = Var (x, loc) } + let set_accu st x = { st with accu = Var x } let clear_accu st = { st with accu = Unset } @@ -680,15 +637,15 @@ module State = struct match e with | Dummy x -> Dummy x :: stack | Unset -> Unset :: stack - | Var (x, l) -> + | Var x -> let y = Var.fork x in - Var (y, l) :: stack) + Var y :: stack) in let state = { state with stack } in match state.accu with | Dummy _ | Unset -> state - | Var (x, loc) -> - let y, state = fresh_var state loc in + | Var x -> + let y, state = fresh_var state in Var.propagate_name x y; state @@ -721,18 +678,10 @@ module State = struct print_env st.env - let pi_of_loc debug location = - let pos = location.Location.loc_start in - let src = Debug.find_source debug pos.Lexing.pos_fname in - Parse_info.t_of_position ~src pos - let rec name_rec debug i l s summary = match l, s with | [], _ -> () - | (j, ident) :: lrem, Var (v, _) :: srem when i = j -> - (match Ocaml_compiler.find_loc_in_summary ident summary with - | None -> () - | Some loc -> Var.loc v (pi_of_loc debug loc)); + | (j, ident) :: lrem, Var v :: srem when i = j -> Var.name v (Ident.name ident); name_rec debug (i + 1) lrem srem summary | (j, _) :: _, _ :: srem when i < j -> name_rec debug (i + 1) l srem summary @@ -744,12 +693,12 @@ module State = struct let l, summary = Debug.find debug pc in name_rec debug 0 l st.stack summary - let rec make_stack i state loc = + let rec make_stack i state = if i = 0 then [], state else - let x, state = fresh_var state loc in - let params, state = make_stack (pred i) (push state loc) loc in + let x, state = fresh_var state in + let params, state = make_stack (pred i) (push state) in if debug_parser () then if i > 1 then Format.printf ", "; if debug_parser () then Format.printf "%a" Var.print x; x :: params, state @@ -818,12 +767,12 @@ let get_global state instrs i loc = | Some x -> (* Registered global *) if debug_parser () then Format.printf "(global access %a)@." Var.print x; - x, State.set_accu state x loc, instrs + x, State.set_accu state x, instrs | None -> ( if i < Array.length g.constants && Constants.inlined g.constants.(i) then (* Inlined constant *) - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in let cst = g.constants.(i) in x, state, (Let (x, Constant cst), loc) :: instrs else @@ -834,7 +783,7 @@ let get_global state instrs i loc = Some code is generated in a prelude to store the relevant module in variable [x]. *) g.is_const.(i) <- true; - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = CONST(%d)@." Var.print x i; g.vars.(i) <- Some x; x, state, instrs @@ -846,7 +795,7 @@ let get_global state instrs i loc = match g.named_value.(i) with | None -> assert false | Some name -> - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = get_global(%s)@." Var.print x name; ( x @@ -870,9 +819,9 @@ type compile_info = } let string_of_addr debug_data addr = - match Debug.find_loc' debug_data addr with - | None -> None - | Some (src, loc, kind) -> + List.map + (Debug.find_locs debug_data addr) + ~f:(fun (src, { Instruct.ev_loc = loc; ev_kind = kind; _ }) -> let pos (p : Lexing.position) = Printf.sprintf "%d:%d" p.pos_lnum (p.pos_cnum - p.pos_bol) in @@ -887,12 +836,7 @@ let string_of_addr debug_data addr = | Event_after _ -> "(after)" | Event_pseudo -> "(pseudo)" in - Some (Printf.sprintf "%s:%s-%s %s" file (pos loc.loc_start) (pos loc.loc_end) kind) - -let ( ||| ) x y = - match x with - | No -> y - | _ -> x + Printf.sprintf "%s:%s-%s %s" file (pos loc.loc_start) (pos loc.loc_end) kind) let rec compile_block blocks debug_data code pc state = match Addr.Map.find_opt pc !tagged_blocks with @@ -967,11 +911,58 @@ let rec compile_block blocks debug_data code pc state = and compile infos pc state instrs = if debug_parser () then State.print state; assert (pc <= infos.limit); - (if debug_parser () - then - match string_of_addr infos.debug pc with - | None -> () - | Some s -> Format.eprintf "@@@@ %s @@@@@." s); + if debug_parser () + then + List.iter (string_of_addr infos.debug pc) ~f:(fun s -> + Format.eprintf "@@@@ %s @@@@@." s); + + let instrs = + let push_event position source event instrs = + match instrs with + | (Event _, _) :: instrs | instrs -> + (Event (Debug.event_location ~position ~source ~event), noloc) :: instrs + in + List.fold_left + (Debug.find_locs infos.debug pc) + ~init:instrs + ~f:(fun instrs (source, event) -> + match event, instrs with + | { Instruct.ev_kind = Event_pseudo; ev_info = Event_other; _ }, _ -> + (* Ignore allocation events (not very interesting) *) + if debug_parser () then Format.eprintf "Ignored allocation event@."; + instrs + | ( { ev_kind = Event_pseudo | Event_after _; ev_info = Event_return _; _ } + , ((Let (_, (Apply _ | Prim _)), _) as i) :: rem ) -> + (* Event after a call. If it is followed by another event, + it may have been weaken to a pseudo-event but was kept + for stack traces *) + if debug_parser () then Format.eprintf "Added event across call@."; + push_event After source event (i :: push_event Before source event rem) + | { ev_kind = Event_pseudo; ev_info = Event_function; _ }, [] -> + (* At beginning of function *) + if debug_parser () then Format.eprintf "Added event at function start@."; + push_event Before source event instrs + | { ev_kind = Event_after _ | Event_pseudo; ev_info = Event_return _; _ }, _ -> + if debug_parser () + then + Format.eprintf "Ignored useless event (beginning of a block after a call)@."; + instrs + | { ev_kind = Event_after _; ev_info = Event_other; _ }, _ -> + if debug_parser () + then Format.eprintf "Ignored useless event (before a raise)@."; + (* We already have an event for the exception. The + compiler add these events for stack traces. *) + instrs + | { ev_kind = Event_before; ev_info = Event_other; _ }, _ + | { ev_kind = Event_before | Event_pseudo; ev_info = Event_function; _ }, _ -> + if debug_parser () then Format.eprintf "added event@."; + push_event Before source event instrs + | { ev_kind = Event_after _; ev_info = Event_function; _ }, _ + | { ev_kind = Event_before; ev_info = Event_return _; _ }, _ -> + (* Nonsensical events *) + assert false) + in + if pc = infos.limit then if (* stop if we reach end_of_code (ie when compiling cmo) *) @@ -990,86 +981,42 @@ and compile infos pc state instrs = let code = infos.code in let instr = get_instr_exn code pc in if debug_parser () then Format.eprintf "%08x %s@." instr.opcode instr.name; - let loc = - match instr.Instr.code with - | APPLY - | APPLY1 - | APPLY2 - | APPLY3 - | C_CALL1 - | C_CALL2 - | C_CALL3 - | C_CALL4 - | C_CALL5 - | C_CALLN - | PERFORM - | RESUME -> ( - let offset = - match instr.Instr.kind with - | KNullaryCall -> 1 - | KUnaryCall -> 2 - | KBinaryCall -> 3 - | _ -> assert false - in - match Debug.find_loc' infos.debug (pc + offset) with - | Some (_, _, (Event_pseudo | Event_after _)) -> Code.Before (pc + offset) - | Some _ | None -> if Debug.mem infos.debug pc then Code.Before pc else noloc) - (* bytegen.ml insert a pseudo event after the following instruction *) - | MAKEBLOCK | MAKEBLOCK1 | MAKEBLOCK2 | MAKEBLOCK3 | MAKEFLOATBLOCK | GETFLOATFIELD - -> ( - let offset = - match instr.Instr.kind with - | KUnary -> 2 - | KBinary -> 3 - | _ -> assert false - in - match Debug.find_loc' infos.debug (pc + offset) with - | Some (_, _, Event_pseudo) -> Code.Before (pc + offset) - | Some _ | _ -> if Debug.mem infos.debug pc then Code.Before pc else noloc) - | RAISE | RAISE_NOTRACE | RERAISE -> ( - match Debug.find_loc' infos.debug pc with - | Some (_, _, _) -> Code.Before pc - | None -> noloc) - | _ -> ( - match Debug.find_loc' infos.debug pc with - | Some (_, _, Event_after _) -> Code.Before pc - | Some (_, _, (Event_pseudo | Event_before)) -> Code.Before pc - | None -> noloc) - in + (* No longer used *) + let loc = noloc in match instr.Instr.code with - | ACC0 -> compile infos (pc + 1) (State.acc 0 state loc) instrs - | ACC1 -> compile infos (pc + 1) (State.acc 1 state loc) instrs - | ACC2 -> compile infos (pc + 1) (State.acc 2 state loc) instrs - | ACC3 -> compile infos (pc + 1) (State.acc 3 state loc) instrs - | ACC4 -> compile infos (pc + 1) (State.acc 4 state loc) instrs - | ACC5 -> compile infos (pc + 1) (State.acc 5 state loc) instrs - | ACC6 -> compile infos (pc + 1) (State.acc 6 state loc) instrs - | ACC7 -> compile infos (pc + 1) (State.acc 7 state loc) instrs + | ACC0 -> compile infos (pc + 1) (State.acc 0 state) instrs + | ACC1 -> compile infos (pc + 1) (State.acc 1 state) instrs + | ACC2 -> compile infos (pc + 1) (State.acc 2 state) instrs + | ACC3 -> compile infos (pc + 1) (State.acc 3 state) instrs + | ACC4 -> compile infos (pc + 1) (State.acc 4 state) instrs + | ACC5 -> compile infos (pc + 1) (State.acc 5 state) instrs + | ACC6 -> compile infos (pc + 1) (State.acc 6 state) instrs + | ACC7 -> compile infos (pc + 1) (State.acc 7 state) instrs | ACC -> let n = getu code (pc + 1) in - compile infos (pc + 2) (State.acc n state loc) instrs - | PUSH -> compile infos (pc + 1) (State.push state loc) instrs - | PUSHACC0 -> compile infos (pc + 1) (State.acc 0 (State.push state loc) loc) instrs - | PUSHACC1 -> compile infos (pc + 1) (State.acc 1 (State.push state loc) loc) instrs - | PUSHACC2 -> compile infos (pc + 1) (State.acc 2 (State.push state loc) loc) instrs - | PUSHACC3 -> compile infos (pc + 1) (State.acc 3 (State.push state loc) loc) instrs - | PUSHACC4 -> compile infos (pc + 1) (State.acc 4 (State.push state loc) loc) instrs - | PUSHACC5 -> compile infos (pc + 1) (State.acc 5 (State.push state loc) loc) instrs - | PUSHACC6 -> compile infos (pc + 1) (State.acc 6 (State.push state loc) loc) instrs - | PUSHACC7 -> compile infos (pc + 1) (State.acc 7 (State.push state loc) loc) instrs + compile infos (pc + 2) (State.acc n state) instrs + | PUSH -> compile infos (pc + 1) (State.push state) instrs + | PUSHACC0 -> compile infos (pc + 1) (State.acc 0 (State.push state)) instrs + | PUSHACC1 -> compile infos (pc + 1) (State.acc 1 (State.push state)) instrs + | PUSHACC2 -> compile infos (pc + 1) (State.acc 2 (State.push state)) instrs + | PUSHACC3 -> compile infos (pc + 1) (State.acc 3 (State.push state)) instrs + | PUSHACC4 -> compile infos (pc + 1) (State.acc 4 (State.push state)) instrs + | PUSHACC5 -> compile infos (pc + 1) (State.acc 5 (State.push state)) instrs + | PUSHACC6 -> compile infos (pc + 1) (State.acc 6 (State.push state)) instrs + | PUSHACC7 -> compile infos (pc + 1) (State.acc 7 (State.push state)) instrs | PUSHACC -> let n = getu code (pc + 1) in - compile infos (pc + 2) (State.acc n (State.push state loc) loc) instrs + compile infos (pc + 2) (State.acc n (State.push state)) instrs | POP -> let n = getu code (pc + 1) in compile infos (pc + 2) (State.pop n state) instrs | ASSIGN -> let n = getu code (pc + 1) in - let accu, _ = State.accu state in + let accu = State.accu state in let state = State.assign state n in let stack_size = List.length state.stack in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in let instrs = (* If the assigned variable is used in an exception handler, we register that from now on the parameter [dest] should @@ -1091,7 +1038,7 @@ and compile infos pc state instrs = let diff = stack_size - handler_stack_size in if n >= diff then - let dest, _ = State.elt_to_var (List.nth handler.stack (n - diff)) in + let dest = State.elt_to_var (List.nth handler.stack (n - diff)) in (Assign (dest, accu), loc) :: acc else acc) in @@ -1104,17 +1051,13 @@ and compile infos pc state instrs = | ENVACC -> let n = getu code (pc + 1) in compile infos (pc + 2) (State.env_acc n state) instrs - | PUSHENVACC1 -> - compile infos (pc + 1) (State.env_acc 1 (State.push state loc)) instrs - | PUSHENVACC2 -> - compile infos (pc + 1) (State.env_acc 2 (State.push state loc)) instrs - | PUSHENVACC3 -> - compile infos (pc + 1) (State.env_acc 3 (State.push state loc)) instrs - | PUSHENVACC4 -> - compile infos (pc + 1) (State.env_acc 4 (State.push state loc)) instrs + | PUSHENVACC1 -> compile infos (pc + 1) (State.env_acc 1 (State.push state)) instrs + | PUSHENVACC2 -> compile infos (pc + 1) (State.env_acc 2 (State.push state)) instrs + | PUSHENVACC3 -> compile infos (pc + 1) (State.env_acc 3 (State.push state)) instrs + | PUSHENVACC4 -> compile infos (pc + 1) (State.env_acc 4 (State.push state)) instrs | PUSHENVACC -> let n = getu code (pc + 1) in - compile infos (pc + 2) (State.env_acc n (State.push state loc)) instrs + compile infos (pc + 2) (State.env_acc n (State.push state)) instrs | PUSH_RETADDR -> compile infos @@ -1130,8 +1073,8 @@ and compile infos pc state instrs = instrs | APPLY -> let n = getu code (pc + 1) in - let f, _ = State.accu state in - let x, state = State.fresh_var state loc in + let f = State.accu state in + let x, state = State.fresh_var state in let args, state = State.grab n state in if debug_parser () @@ -1139,19 +1082,18 @@ and compile infos pc state instrs = Format.printf "%a = %a(" Var.print x Var.print f; for i = 0 to n - 1 do if i > 0 then Format.printf ", "; - Format.printf "%a" Var.print (fst (List.nth args i)) + Format.printf "%a" Var.print (List.nth args i) done; Format.printf ")@."); compile infos (pc + 2) (State.pop 3 state) - ((Let (x, Apply { f; args = List.map ~f:fst args; exact = false }), loc) - :: instrs) + ((Let (x, Apply { f; args; exact = false }), loc) :: instrs) | APPLY1 -> - let f, _ = State.accu state in - let x, state = State.fresh_var state loc in - let y, _ = State.peek 0 state in + let f = State.accu state in + let x, state = State.fresh_var state in + let y = State.peek 0 state in if debug_parser () then Format.printf "%a = %a(%a)@." Var.print x Var.print f Var.print y; @@ -1161,10 +1103,10 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Apply { f; args = [ y ]; exact = false }), loc) :: instrs) | APPLY2 -> - let f, _ = State.accu state in - let x, state = State.fresh_var state loc in - let y, _ = State.peek 0 state in - let z, _ = State.peek 1 state in + let f = State.accu state in + let x, state = State.fresh_var state in + let y = State.peek 0 state in + let z = State.peek 1 state in if debug_parser () then @@ -1184,11 +1126,11 @@ and compile infos pc state instrs = (State.pop 2 state) ((Let (x, Apply { f; args = [ y; z ]; exact = false }), loc) :: instrs) | APPLY3 -> - let f, _ = State.accu state in - let x, state = State.fresh_var state loc in - let y, _ = State.peek 0 state in - let z, _ = State.peek 1 state in - let t, _ = State.peek 2 state in + let f = State.accu state in + let x, state = State.fresh_var state in + let y = State.peek 0 state in + let z = State.peek 1 state in + let t = State.peek 2 state in if debug_parser () then @@ -1211,7 +1153,7 @@ and compile infos pc state instrs = ((Let (x, Apply { f; args = [ y; z; t ]; exact = false }), loc) :: instrs) | APPTERM -> let n = getu code (pc + 1) in - let f, loc_f = State.accu state in + let f = State.accu state in let l, state = State.grab n state in if debug_parser () @@ -1219,40 +1161,36 @@ and compile infos pc state instrs = Format.printf "return %a(" Var.print f; for i = 0 to n - 1 do if i > 0 then Format.printf ", "; - Format.printf "%a" Var.print (fst (List.nth l i)) + Format.printf "%a" Var.print (List.nth l i) done; Format.printf ")@."); - let x, state = State.fresh_var state loc in - let loc = snd (List.nth l (n - 1)) ||| loc_f in - ( (Let (x, Apply { f; args = List.map ~f:fst l; exact = false }), loc) :: instrs + let x, state = State.fresh_var state in + ( (Let (x, Apply { f; args = l; exact = false }), loc) :: instrs , (Return x, loc) , state ) | APPTERM1 -> - let f, loc_f = State.accu state in - let x, loc_x = State.peek 0 state in - let loc = loc_x ||| loc_f in + let f = State.accu state in + let x = State.peek 0 state in if debug_parser () then Format.printf "return %a(%a)@." Var.print f Var.print x; - let y, state = State.fresh_var state loc in + let y, state = State.fresh_var state in ( (Let (y, Apply { f; args = [ x ]; exact = false }), loc) :: instrs , (Return y, loc) , state ) | APPTERM2 -> - let f, loc_f = State.accu state in - let x, loc_x = State.peek 0 state in - let y, loc_y = State.peek 1 state in - let loc = loc_y ||| loc_x ||| loc_f in + let f = State.accu state in + let x = State.peek 0 state in + let y = State.peek 1 state in if debug_parser () then Format.printf "return %a(%a, %a)@." Var.print f Var.print x Var.print y; - let z, state = State.fresh_var state loc in + let z, state = State.fresh_var state in ( (Let (z, Apply { f; args = [ x; y ]; exact = false }), loc) :: instrs , (Return z, loc) , state ) | APPTERM3 -> - let f, loc_f = State.accu state in - let x, loc_x = State.peek 0 state in - let y, loc_y = State.peek 1 state in - let z, loc_z = State.peek 2 state in - let loc = loc_z ||| loc_y ||| loc_x ||| loc_f in + let f = State.accu state in + let x = State.peek 0 state in + let y = State.peek 1 state in + let z = State.peek 2 state in if debug_parser () then Format.printf @@ -1265,25 +1203,25 @@ and compile infos pc state instrs = y Var.print z; - let t, state = State.fresh_var state loc in + let t, state = State.fresh_var state in ( (Let (t, Apply { f; args = [ x; y; z ]; exact = false }), loc) :: instrs , (Return t, loc) , state ) | RETURN -> - let x, loc_x = State.accu state in + let x = State.accu state in if debug_parser () then Format.printf "return %a@." Var.print x; - instrs, (Return x, loc ||| loc_x), state + instrs, (Return x, loc), state | RESTART -> assert false | GRAB -> assert false | CLOSURE -> let nvars = getu code (pc + 1) in let addr = pc + gets code (pc + 2) + 2 in - let state = if nvars > 0 then State.push state loc else state in + let state = if nvars > 0 then State.push state else state in let vals, state = State.grab nvars state in - let x, state = State.fresh_var state loc in - let env = List.map vals ~f:(fun (x, loc) -> State.Var (x, loc)) in + let x, state = State.fresh_var state in + let env = List.map vals ~f:(fun x -> State.Var x) in let env = let code = State.Dummy "closure(code)" in let closure_info = State.Dummy "closure(info)" in @@ -1297,7 +1235,7 @@ and compile infos pc state instrs = | _ -> 1, addr in let state' = State.start_function state env 0 in - let params, state' = State.make_stack nparams state' loc in + let params, state' = State.make_stack nparams state' in if debug_parser () then Format.printf ") {@."; let state' = State.clear_accu state' in compile_block infos.blocks infos.debug code addr state'; @@ -1313,14 +1251,14 @@ and compile infos pc state instrs = | CLOSUREREC -> let nfuncs = getu code (pc + 1) in let nvars = getu code (pc + 2) in - let state = if nvars > 0 then State.push state loc else state in + let state = if nvars > 0 then State.push state else state in let vals, state = State.grab nvars state in let state = ref state in let vars = ref [] in let rec_names = ref (Debug.find_rec infos.debug (pc + 3 + gets code (pc + 3))) in for i = 0 to nfuncs - 1 do - let x, st = State.fresh_var !state loc in + let x, st = State.fresh_var !state in (match !rec_names with | (j, ident) :: rest -> assert (j = i); @@ -1328,11 +1266,11 @@ and compile infos pc state instrs = rec_names := rest | [] -> ()); vars := (i, x) :: !vars; - state := State.push st loc + state := State.push st done; - let env = ref (List.map vals ~f:(fun (x, loc) -> State.Var (x, loc))) in + let env = ref (List.map vals ~f:(fun x -> State.Var x)) in List.iter !vars ~f:(fun (i, x) -> - let code = State.Var (x, noloc) in + let code = State.Var x in let closure_info = State.Dummy "closurerec(info)" in if new_closure_repr then env := code :: closure_info :: !env @@ -1354,7 +1292,7 @@ and compile infos pc state instrs = in let offset = i * clo_offset_3 in let state' = State.start_function state env offset in - let params, state' = State.make_stack nparams state' loc in + let params, state' = State.make_stack nparams state' in if debug_parser () then Format.printf ") {@."; let state' = State.clear_accu state' in compile_block infos.blocks infos.debug code addr state'; @@ -1364,7 +1302,7 @@ and compile infos pc state instrs = Debug.propagate (State.stack_vars state'') args; (Let (x, Closure (List.rev params, (addr, args))), loc) :: instr) in - compile infos (pc + 3 + nfuncs) (State.acc (nfuncs - 1) state loc) instrs + compile infos (pc + 3 + nfuncs) (State.acc (nfuncs - 1) state) instrs | OFFSETCLOSUREM3 -> compile infos (pc + 1) (State.env_acc (-clo_offset_3) state) instrs | OFFSETCLOSURE0 -> compile infos (pc + 1) (State.env_acc 0 state) instrs @@ -1373,16 +1311,16 @@ and compile infos pc state instrs = let n = gets code (pc + 1) in compile infos (pc + 2) (State.env_acc n state) instrs | PUSHOFFSETCLOSUREM3 -> - let state = State.push state loc in + let state = State.push state in compile infos (pc + 1) (State.env_acc (-clo_offset_3) state) instrs | PUSHOFFSETCLOSURE0 -> - let state = State.push state loc in + let state = State.push state in compile infos (pc + 1) (State.env_acc 0 state) instrs | PUSHOFFSETCLOSURE3 -> - let state = State.push state loc in + let state = State.push state in compile infos (pc + 1) (State.env_acc clo_offset_3 state) instrs | PUSHOFFSETCLOSURE -> - let state = State.push state loc in + let state = State.push state in let n = gets code (pc + 1) in compile infos (pc + 2) (State.env_acc n state) instrs | GETGLOBAL -> @@ -1390,7 +1328,7 @@ and compile infos pc state instrs = let _, state, instrs = get_global state instrs i loc in compile infos (pc + 2) state instrs | PUSHGETGLOBAL -> - let state = State.push state loc in + let state = State.push state in let i = getu code (pc + 1) in let _, state, instrs = get_global state instrs i loc in compile infos (pc + 2) state instrs @@ -1398,22 +1336,22 @@ and compile infos pc state instrs = let i = getu code (pc + 1) in let x, state, instrs = get_global state instrs i loc in let j = getu code (pc + 2) in - let y, state = State.fresh_var state loc in + let y, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[%d]@." Var.print y Var.print x j; compile infos (pc + 3) state ((Let (y, Field (x, j, Non_float)), loc) :: instrs) | PUSHGETGLOBALFIELD -> - let state = State.push state loc in + let state = State.push state in let i = getu code (pc + 1) in let x, state, instrs = get_global state instrs i loc in let j = getu code (pc + 2) in - let y, state = State.fresh_var state loc in + let y, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[%d]@." Var.print y Var.print x j; compile infos (pc + 3) state ((Let (y, Field (x, j, Non_float)), loc) :: instrs) | SETGLOBAL -> let i = getu code (pc + 1) in State.size_globals state (i + 1); - let y, _ = State.accu state in + let y = State.accu state in let g = State.globals state in assert (Option.is_none g.vars.(i)); @@ -1428,12 +1366,12 @@ and compile infos pc state instrs = g.vars.(i) <- Some y; instrs in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = 0@." Var.print x; let instrs = register_global g i loc instrs in compile infos (pc + 2) state ((Let (x, const 0), loc) :: instrs) | ATOM0 -> - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = ATOM(0)@." Var.print x; compile @@ -1443,7 +1381,7 @@ and compile infos pc state instrs = ((Let (x, Block (0, [||], Unknown, Maybe_mutable)), loc) :: instrs) | ATOM -> let i = getu code (pc + 1) in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = ATOM(%d)@." Var.print x i; compile @@ -1452,8 +1390,8 @@ and compile infos pc state instrs = state ((Let (x, Block (i, [||], Unknown, Maybe_mutable)), loc) :: instrs) | PUSHATOM0 -> - let state = State.push state loc in - let x, state = State.fresh_var state loc in + let state = State.push state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = ATOM(0)@." Var.print x; compile @@ -1462,10 +1400,10 @@ and compile infos pc state instrs = state ((Let (x, Block (0, [||], Unknown, Maybe_mutable)), loc) :: instrs) | PUSHATOM -> - let state = State.push state loc in + let state = State.push state in let i = getu code (pc + 1) in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = ATOM(%d)@." Var.print x i; compile infos @@ -1475,32 +1413,27 @@ and compile infos pc state instrs = | MAKEBLOCK -> let size = getu code (pc + 1) in let tag = getu code (pc + 2) in - let state = State.push state loc in + let state = State.push state in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in let contents, state = State.grab size state in if debug_parser () then ( Format.printf "%a = { " Var.print x; for i = 0 to size - 1 do - Format.printf "%d = %a; " i Var.print (fst (List.nth contents i)) + Format.printf "%d = %a; " i Var.print (List.nth contents i) done; Format.printf "}@."); compile infos (pc + 3) state - (( Let - ( x - , Block - (tag, Array.of_list (List.map ~f:fst contents), Unknown, Maybe_mutable) - ) - , loc ) + ((Let (x, Block (tag, Array.of_list contents, Unknown, Maybe_mutable)), loc) :: instrs) | MAKEBLOCK1 -> let tag = getu code (pc + 1) in - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = { 0 = %a; }@." Var.print x Var.print y; compile @@ -1510,9 +1443,9 @@ and compile infos pc state instrs = ((Let (x, Block (tag, [| y |], Unknown, Maybe_mutable)), loc) :: instrs) | MAKEBLOCK2 -> let tag = getu code (pc + 1) in - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then @@ -1524,10 +1457,10 @@ and compile infos pc state instrs = ((Let (x, Block (tag, [| y; z |], Unknown, Maybe_mutable)), loc) :: instrs) | MAKEBLOCK3 -> let tag = getu code (pc + 1) in - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let t, _ = State.peek 1 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let t = State.peek 1 state in + let x, state = State.fresh_var state in if debug_parser () then @@ -1548,73 +1481,68 @@ and compile infos pc state instrs = ((Let (x, Block (tag, [| y; z; t |], Unknown, Maybe_mutable)), loc) :: instrs) | MAKEFLOATBLOCK -> let size = getu code (pc + 1) in - let state = State.push state loc in - let x, state = State.fresh_var state loc in + let state = State.push state in + let x, state = State.fresh_var state in let contents, state = State.grab size state in if debug_parser () then ( Format.printf "%a = { " Var.print x; for i = 0 to size - 1 do - Format.printf "%d = %a; " i Var.print (fst (List.nth contents i)) + Format.printf "%d = %a; " i Var.print (List.nth contents i) done; Format.printf "}@."); compile infos (pc + 2) state - (( Let - ( x - , Block - (254, Array.of_list (List.map ~f:fst contents), Unknown, Maybe_mutable) - ) - , loc ) + ((Let (x, Block (254, Array.of_list contents, Unknown, Maybe_mutable)), loc) :: instrs) | GETFIELD0 -> - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[0]@." Var.print x Var.print y; compile infos (pc + 1) state ((Let (x, Field (y, 0, Non_float)), loc) :: instrs) | GETFIELD1 -> - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[1]@." Var.print x Var.print y; compile infos (pc + 1) state ((Let (x, Field (y, 1, Non_float)), loc) :: instrs) | GETFIELD2 -> - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[2]@." Var.print x Var.print y; compile infos (pc + 1) state ((Let (x, Field (y, 2, Non_float)), loc) :: instrs) | GETFIELD3 -> - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[3]@." Var.print x Var.print y; compile infos (pc + 1) state ((Let (x, Field (y, 3, Non_float)), loc) :: instrs) | GETFIELD -> - let y, _ = State.accu state in + let y = State.accu state in let n = getu code (pc + 1) in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[%d]@." Var.print x Var.print y n; compile infos (pc + 2) state ((Let (x, Field (y, n, Non_float)), loc) :: instrs) | GETFLOATFIELD -> - let y, _ = State.accu state in + let y = State.accu state in let n = getu code (pc + 1) in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = FLOAT{%a[%d]}@." Var.print x Var.print y n; compile infos (pc + 2) state ((Let (x, Field (y, n, Float)), loc) :: instrs) | SETFIELD0 -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in + let y = State.accu state in + let z = State.peek 0 state in if debug_parser () then Format.printf "%a[0] = %a@." Var.print y Var.print z; - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = 0@." Var.print x; compile infos @@ -1622,11 +1550,11 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, const 0), loc) :: (Set_field (y, 0, Non_float, z), loc) :: instrs) | SETFIELD1 -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in + let y = State.accu state in + let z = State.peek 0 state in if debug_parser () then Format.printf "%a[1] = %a@." Var.print y Var.print z; - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = 0@." Var.print x; compile infos @@ -1634,11 +1562,11 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, const 0), loc) :: (Set_field (y, 1, Non_float, z), loc) :: instrs) | SETFIELD2 -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in + let y = State.accu state in + let z = State.peek 0 state in if debug_parser () then Format.printf "%a[2] = %a@." Var.print y Var.print z; - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = 0@." Var.print x; compile infos @@ -1646,11 +1574,11 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, const 0), loc) :: (Set_field (y, 2, Non_float, z), loc) :: instrs) | SETFIELD3 -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in + let y = State.accu state in + let z = State.peek 0 state in if debug_parser () then Format.printf "%a[3] = %a@." Var.print y Var.print z; - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = 0@." Var.print x; compile infos @@ -1658,12 +1586,12 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, const 0), loc) :: (Set_field (y, 3, Non_float, z), loc) :: instrs) | SETFIELD -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in + let y = State.accu state in + let z = State.peek 0 state in let n = getu code (pc + 1) in if debug_parser () then Format.printf "%a[%d] = %a@." Var.print y n Var.print z; - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = 0@." Var.print x; compile infos @@ -1671,13 +1599,13 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, const 0), loc) :: (Set_field (y, n, Non_float, z), loc) :: instrs) | SETFLOATFIELD -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in + let y = State.accu state in + let z = State.peek 0 state in let n = getu code (pc + 1) in if debug_parser () then Format.printf "FLOAT{%a[%d]} = %a@." Var.print y n Var.print z; - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = 0@." Var.print x; compile infos @@ -1685,8 +1613,8 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, const 0), loc) :: (Set_field (y, n, Float, z), loc) :: instrs) | VECTLENGTH -> - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a.length@." Var.print x Var.print y; compile @@ -1695,9 +1623,9 @@ and compile infos pc state instrs = state ((Let (x, Prim (Vectlength, [ Pv y ])), loc) :: instrs) | GETVECTITEM -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[%a]@." Var.print x Var.print y Var.print z; @@ -1707,19 +1635,27 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Array_get, [ Pv y; Pv z ])), loc) :: instrs) | SETVECTITEM -> - let x, _ = State.accu state in - let y, _ = State.peek 0 state in - let z, _ = State.peek 1 state in if debug_parser () - then Format.printf "%a[%a] = %a@." Var.print x Var.print y Var.print z; - let instrs = (Array_set (x, y, z), loc) :: instrs in - let x, state = State.fresh_var state loc in + then + Format.printf + "%a[%a] = %a@." + Var.print + (State.accu state) + Var.print + (State.peek 0 state) + Var.print + (State.peek 1 state); + let instrs = + (Array_set (State.accu state, State.peek 0 state, State.peek 1 state), loc) + :: instrs + in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = 0@." Var.print x; compile infos (pc + 1) (State.pop 2 state) ((Let (x, const 0), loc) :: instrs) | GETSTRINGCHAR -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[%a]@." Var.print x Var.print y Var.print z; @@ -1730,9 +1666,9 @@ and compile infos pc state instrs = ((Let (x, Prim (Extern "caml_string_unsafe_get", [ Pv y; Pv z ])), loc) :: instrs) | GETBYTESCHAR -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a[%a]@." Var.print x Var.print y Var.print z; @@ -1742,17 +1678,25 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "caml_bytes_unsafe_get", [ Pv y; Pv z ])), loc) :: instrs) | SETBYTESCHAR -> - let x, _ = State.accu state in - let y, _ = State.peek 0 state in - let z, _ = State.peek 1 state in if debug_parser () - then Format.printf "%a[%a] = %a@." Var.print x Var.print y Var.print z; - let t, state = State.fresh_var state loc in + then + Format.printf + "%a[%a] = %a@." + Var.print + (State.accu state) + Var.print + (State.peek 0 state) + Var.print + (State.peek 1 state); + let x = State.accu state in + let y = State.peek 0 state in + let z = State.peek 1 state in + let t, state = State.fresh_var state in let instrs = (Let (t, Prim (Extern "caml_bytes_unsafe_set", [ Pv x; Pv y; Pv z ])), loc) :: instrs in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = 0@." Var.print x; compile infos (pc + 1) (State.pop 2 state) ((Let (x, const 0), loc) :: instrs) | BRANCH -> @@ -1761,17 +1705,16 @@ and compile infos pc state instrs = instrs, (Branch (pc + offset + 1, []), loc), state | BRANCHIF -> let offset = gets code (pc + 1) in - let x, loc_x = State.accu state in - let loc = loc ||| loc_x in + let x = State.accu state in instrs, (Cond (x, (pc + offset + 1, []), (pc + 2, [])), loc), state | BRANCHIFNOT -> let offset = gets code (pc + 1) in - let x, _ = State.accu state in + let x = State.accu state in instrs, (Cond (x, (pc + 2, []), (pc + offset + 1, [])), loc), state | SWITCH -> ( if debug_parser () then Format.printf "switch ...@."; let sz = getu code (pc + 1) in - let x, _ = State.accu state in + let x = State.accu state in let isize = sz land 0XFFFF in let bsize = sz lsr 16 in let base = pc + 2 in @@ -1824,8 +1767,8 @@ and compile infos pc state instrs = , (Cond (isint_var, (isint_branch, []), (isblock_branch, [])), loc) , state )) | BOOLNOT -> - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = !%a@." Var.print x Var.print y; compile infos (pc + 1) state ((Let (x, Prim (Not, [ Pv y ])), loc) :: instrs) | PUSHTRAP -> @@ -1837,7 +1780,7 @@ and compile infos pc state instrs = let handler_ctx_state = State.start_block interm_addr state in let body_addr = pc + 2 in let handler_addr = pc + 1 + gets code (pc + 1) in - let x, handler_state = State.fresh_var handler_ctx_state loc in + let x, handler_state = State.fresh_var handler_ctx_state in tagged_blocks := Addr.Map.add interm_addr state !tagged_blocks; compiled_blocks := @@ -1877,7 +1820,6 @@ and compile infos pc state instrs = (State.pop 4 (State.pop_handler state)); instrs, (Poptrap (addr, []), loc), state | RERAISE | RAISE_NOTRACE | RAISE -> - let x, _ = State.accu state in let kind = match instr.Instr.code with | RERAISE -> `Reraise @@ -1885,8 +1827,8 @@ and compile infos pc state instrs = | RAISE -> `Normal | _ -> assert false in - if debug_parser () then Format.printf "throw(%a)@." Var.print x; - instrs, (Raise (x, kind), loc), state + if debug_parser () then Format.printf "throw(%a)@." Var.print (State.accu state); + instrs, (Raise (State.accu state, kind), loc), state | CHECK_SIGNALS -> compile infos (pc + 1) state instrs | C_CALL1 -> let prim = primitive_name state (getu code (pc + 1)) in @@ -1895,8 +1837,8 @@ and compile infos pc state instrs = then (* This is a no-op *) compile infos (pc + 2) state instrs else - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = ccall \"%s\" (%a)@." Var.print x prim Var.print y; compile @@ -1906,9 +1848,9 @@ and compile infos pc state instrs = ((Let (x, Prim (Extern prim, [ Pv y ])), loc) :: instrs) | C_CALL2 -> let prim = primitive_name state (getu code (pc + 1)) in - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then @@ -1928,10 +1870,10 @@ and compile infos pc state instrs = ((Let (x, Prim (Extern prim, [ Pv y; Pv z ])), loc) :: instrs) | C_CALL3 -> let prim = primitive_name state (getu code (pc + 1)) in - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let t, _ = State.peek 1 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let t = State.peek 1 state in + let x, state = State.fresh_var state in if debug_parser () then @@ -1954,8 +1896,8 @@ and compile infos pc state instrs = | C_CALL4 -> let nargs = 4 in let prim = primitive_name state (getu code (pc + 1)) in - let state = State.push state loc in - let x, state = State.fresh_var state loc in + let state = State.push state in + let x, state = State.fresh_var state in let args, state = State.grab nargs state in if debug_parser () @@ -1963,20 +1905,19 @@ and compile infos pc state instrs = Format.printf "%a = ccal \"%s\" (" Var.print x prim; for i = 0 to nargs - 1 do if i > 0 then Format.printf ", "; - Format.printf "%a" Var.print (fst (List.nth args i)) + Format.printf "%a" Var.print (List.nth args i) done; Format.printf ")@."); compile infos (pc + 2) state - ((Let (x, Prim (Extern prim, List.map args ~f:(fun (x, _) -> Pv x))), loc) - :: instrs) + ((Let (x, Prim (Extern prim, List.map args ~f:(fun x -> Pv x))), loc) :: instrs) | C_CALL5 -> let nargs = 5 in let prim = primitive_name state (getu code (pc + 1)) in - let state = State.push state loc in - let x, state = State.fresh_var state loc in + let state = State.push state in + let x, state = State.fresh_var state in let args, state = State.grab nargs state in if debug_parser () @@ -1984,20 +1925,19 @@ and compile infos pc state instrs = Format.printf "%a = ccal \"%s\" (" Var.print x prim; for i = 0 to nargs - 1 do if i > 0 then Format.printf ", "; - Format.printf "%a" Var.print (fst (List.nth args i)) + Format.printf "%a" Var.print (List.nth args i) done; Format.printf ")@."); compile infos (pc + 2) state - ((Let (x, Prim (Extern prim, List.map args ~f:(fun (x, _) -> Pv x))), loc) - :: instrs) + ((Let (x, Prim (Extern prim, List.map args ~f:(fun x -> Pv x))), loc) :: instrs) | C_CALLN -> let nargs = getu code (pc + 1) in let prim = primitive_name state (getu code (pc + 2)) in - let state = State.push state loc in - let x, state = State.fresh_var state loc in + let state = State.push state in + let x, state = State.fresh_var state in let args, state = State.grab nargs state in if debug_parser () @@ -2005,17 +1945,16 @@ and compile infos pc state instrs = Format.printf "%a = ccal \"%s\" (" Var.print x prim; for i = 0 to nargs - 1 do if i > 0 then Format.printf ", "; - Format.printf "%a" Var.print (fst (List.nth args i)) + Format.printf "%a" Var.print (List.nth args i) done; Format.printf ")@."); compile infos (pc + 3) state - ((Let (x, Prim (Extern prim, List.map args ~f:(fun (x, _) -> Pv x))), loc) - :: instrs) + ((Let (x, Prim (Extern prim, List.map args ~f:(fun x -> Pv x))), loc) :: instrs) | (CONST0 | CONST1 | CONST2 | CONST3) as cc -> - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in let n = match cc with | CONST0 -> 0 @@ -2029,13 +1968,13 @@ and compile infos pc state instrs = compile infos (pc + 1) state ((Let (x, const n), loc) :: instrs) | CONSTINT -> let n = gets32 code (pc + 1) in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %ld@." Var.print x n; compile infos (pc + 2) state ((Let (x, const32 n), loc) :: instrs) | (PUSHCONST0 | PUSHCONST1 | PUSHCONST2 | PUSHCONST3) as cc -> - let state = State.push state loc in - let x, state = State.fresh_var state loc in + let state = State.push state in + let x, state = State.fresh_var state in let n = match cc with | PUSHCONST0 -> 0 @@ -2048,15 +1987,15 @@ and compile infos pc state instrs = if debug_parser () then Format.printf "%a = %d@." Var.print x n; compile infos (pc + 1) state ((Let (x, const n), loc) :: instrs) | PUSHCONSTINT -> - let state = State.push state loc in + let state = State.push state in let n = gets32 code (pc + 1) in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %ld@." Var.print x n; compile infos (pc + 2) state ((Let (x, const32 n), loc) :: instrs) | NEGINT -> - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = -%a@." Var.print x Var.print y; compile @@ -2065,9 +2004,9 @@ and compile infos pc state instrs = state ((Let (x, Prim (Extern "%int_neg", [ Pv y ])), loc) :: instrs) | ADDINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a + %a@." Var.print x Var.print y Var.print z; @@ -2077,9 +2016,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_add", [ Pv y; Pv z ])), loc) :: instrs) | SUBINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a - %a@." Var.print x Var.print y Var.print z; @@ -2089,9 +2028,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_sub", [ Pv y; Pv z ])), loc) :: instrs) | MULINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a * %a@." Var.print x Var.print y Var.print z; @@ -2101,9 +2040,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_mul", [ Pv y; Pv z ])), loc) :: instrs) | DIVINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a / %a@." Var.print x Var.print y Var.print z; @@ -2113,9 +2052,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_div", [ Pv y; Pv z ])), loc) :: instrs) | MODINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a %% %a@." Var.print x Var.print y Var.print z; @@ -2125,9 +2064,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_mod", [ Pv y; Pv z ])), loc) :: instrs) | ANDINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a & %a@." Var.print x Var.print y Var.print z; @@ -2137,9 +2076,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_and", [ Pv y; Pv z ])), loc) :: instrs) | ORINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a | %a@." Var.print x Var.print y Var.print z; @@ -2149,9 +2088,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_or", [ Pv y; Pv z ])), loc) :: instrs) | XORINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a ^ %a@." Var.print x Var.print y Var.print z; @@ -2161,9 +2100,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_xor", [ Pv y; Pv z ])), loc) :: instrs) | LSLINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a << %a@." Var.print x Var.print y Var.print z; @@ -2173,9 +2112,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_lsl", [ Pv y; Pv z ])), loc) :: instrs) | LSRINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a >>> %a@." Var.print x Var.print y Var.print z; @@ -2185,9 +2124,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_lsr", [ Pv y; Pv z ])), loc) :: instrs) | ASRINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a >> %a@." Var.print x Var.print y Var.print z; @@ -2197,9 +2136,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Extern "%int_asr", [ Pv y; Pv z ])), loc) :: instrs) | EQ -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = mk_bool(%a == %a)@." Var.print x Var.print y Var.print z; @@ -2209,9 +2148,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Eq, [ Pv y; Pv z ])), loc) :: instrs) | NEQ -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = mk_bool(%a != %a)@." Var.print x Var.print y Var.print z; @@ -2221,21 +2160,29 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Neq, [ Pv y; Pv z ])), loc) :: instrs) | LTINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () - then Format.printf "%a = mk_bool(%a < %a)@." Var.print x Var.print y Var.print z; + then + Format.printf + "%a = mk_bool(%a < %a)@." + Var.print + x + Var.print + y + Var.print + (State.peek 0 state); compile infos (pc + 1) (State.pop 1 state) ((Let (x, Prim (Lt, [ Pv y; Pv z ])), loc) :: instrs) | LEINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = mk_bool(%a <= %a)@." Var.print x Var.print y Var.print z; @@ -2245,9 +2192,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Le, [ Pv y; Pv z ])), loc) :: instrs) | GTINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = mk_bool(%a > %a)@." Var.print x Var.print y Var.print z; @@ -2257,9 +2204,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Lt, [ Pv z; Pv y ])), loc) :: instrs) | GEINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = mk_bool(%a >= %a)@." Var.print x Var.print y Var.print z; @@ -2270,10 +2217,9 @@ and compile infos pc state instrs = ((Let (x, Prim (Le, [ Pv z; Pv y ])), loc) :: instrs) | OFFSETINT -> let n = gets32 code (pc + 1) in - let y, loc_y = State.accu state in - let loc = loc_y ||| loc in - let z, state = State.fresh_var state loc in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z, state = State.fresh_var state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %a + %ld@." Var.print x Var.print y n; compile infos @@ -2284,23 +2230,23 @@ and compile infos pc state instrs = :: instrs) | OFFSETREF -> let n = gets code (pc + 1) in - let x, _ = State.accu state in + let x = State.accu state in if debug_parser () then Format.printf "%a += %d@." Var.print x n; let instrs = (Offset_ref (x, n), loc) :: instrs in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "x = 0@."; compile infos (pc + 2) state ((Let (x, const 0), loc) :: instrs) | ISINT -> - let y, _ = State.accu state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = !%a@." Var.print x Var.print y; compile infos (pc + 1) state ((Let (x, Prim (IsInt, [ Pv y ])), loc) :: instrs) | BEQ -> let n = gets32 code (pc + 1) in let offset = gets code (pc + 2) in - let x, _ = State.accu state in + let x = State.accu state in let y = Var.fresh () in ( (Let (y, Prim (Eq, [ Pc (Int (Targetint.of_int32_exn n)); Pv x ])), loc) @@ -2310,7 +2256,7 @@ and compile infos pc state instrs = | BNEQ -> let n = gets32 code (pc + 1) in let offset = gets code (pc + 2) in - let x, _ = State.accu state in + let x = State.accu state in let y = Var.fresh () in ( (Let (y, Prim (Eq, [ Pc (Int (Targetint.of_int32_exn n)); Pv x ])), loc) @@ -2320,7 +2266,7 @@ and compile infos pc state instrs = | BLTINT -> let n = gets32 code (pc + 1) in let offset = gets code (pc + 2) in - let x, _ = State.accu state in + let x = State.accu state in let y = Var.fresh () in ( (Let (y, Prim (Lt, [ Pc (Int (Targetint.of_int32_exn n)); Pv x ])), loc) @@ -2330,7 +2276,7 @@ and compile infos pc state instrs = | BLEINT -> let n = gets32 code (pc + 1) in let offset = gets code (pc + 2) in - let x, _ = State.accu state in + let x = State.accu state in let y = Var.fresh () in ( (Let (y, Prim (Le, [ Pc (Int (Targetint.of_int32_exn n)); Pv x ])), loc) @@ -2340,7 +2286,7 @@ and compile infos pc state instrs = | BGTINT -> let n = gets32 code (pc + 1) in let offset = gets code (pc + 2) in - let x, _ = State.accu state in + let x = State.accu state in let y = Var.fresh () in ( (Let (y, Prim (Le, [ Pc (Int (Targetint.of_int32_exn n)); Pv x ])), loc) @@ -2350,7 +2296,7 @@ and compile infos pc state instrs = | BGEINT -> let n = gets32 code (pc + 1) in let offset = gets code (pc + 2) in - let x, _ = State.accu state in + let x = State.accu state in let y = Var.fresh () in ( (Let (y, Prim (Lt, [ Pc (Int (Targetint.of_int32_exn n)); Pv x ])), loc) @@ -2360,7 +2306,7 @@ and compile infos pc state instrs = | BULTINT -> let n = getu32 code (pc + 1) in let offset = gets code (pc + 2) in - let x, _ = State.accu state in + let x = State.accu state in let y = Var.fresh () in ( (Let (y, Prim (Ult, [ Pc (Int (Targetint.of_int32_exn n)); Pv x ])), loc) @@ -2370,16 +2316,16 @@ and compile infos pc state instrs = | BUGEINT -> let n = getu32 code (pc + 1) in let offset = gets code (pc + 2) in - let x, _ = State.accu state in + let x = State.accu state in let y = Var.fresh () in ( (Let (y, Prim (Ult, [ Pc (Int (Targetint.of_int32_exn n)); Pv x ])), loc) :: instrs , (Cond (y, (pc + 3, []), (pc + offset + 2, [])), loc) , state ) | ULTINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then @@ -2397,9 +2343,9 @@ and compile infos pc state instrs = (State.pop 1 state) ((Let (x, Prim (Ult, [ Pv y; Pv z ])), loc) :: instrs) | UGEINT -> - let y, _ = State.accu state in - let z, _ = State.peek 0 state in - let x, state = State.fresh_var state loc in + let y = State.accu state in + let z = State.peek 0 state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = mk_bool(%a >= %a)@." Var.print x Var.print y Var.print z; @@ -2412,10 +2358,10 @@ and compile infos pc state instrs = let n = gets32 code (pc + 1) in let cache = !method_cache_id in incr method_cache_id; - let obj, _ = State.accu state in - let state = State.push state loc in - let tag, state = State.fresh_var state loc in - let m, state = State.fresh_var state loc in + let obj = State.accu state in + let state = State.push state in + let tag, state = State.fresh_var state in + let m, state = State.fresh_var state in if debug_parser () then Format.printf "%a = %ld@." Var.print tag n; if debug_parser () @@ -2441,9 +2387,9 @@ and compile infos pc state instrs = :: (Let (tag, const32 n), loc) :: instrs) | GETDYNMET -> - let tag, _ = State.accu state in - let obj, _ = State.peek 0 state in - let m, state = State.fresh_var state loc in + let tag = State.accu state in + let obj = State.peek 0 state in + let m, state = State.fresh_var state in if debug_parser () then @@ -2467,10 +2413,10 @@ and compile infos pc state instrs = , loc ) :: instrs) | GETMETHOD -> - let lab, _ = State.accu state in - let obj, _ = State.peek 0 state in - let meths, state = State.fresh_var state loc in - let m, state = State.fresh_var state loc in + let lab = State.accu state in + let obj = State.peek 0 state in + let meths, state = State.fresh_var state in + let m, state = State.fresh_var state in if debug_parser () then Format.printf "%a = lookup(%a, %a)@." Var.print m Var.print obj Var.print lab; @@ -2483,10 +2429,10 @@ and compile infos pc state instrs = :: instrs) | STOP -> instrs, (Stop, loc), state | RESUME -> - let stack, _ = State.accu state in - let func, _ = State.peek 0 state in - let arg, _ = State.peek 1 state in - let x, state = State.fresh_var state loc in + let stack = State.accu state in + let func = State.peek 0 state in + let arg = State.peek 1 state in + let x, state = State.fresh_var state in if debug_parser () then @@ -2513,11 +2459,10 @@ and compile infos pc state instrs = ((Let (x, Prim (Extern "%resume", [ Pv stack; Pv func; Pv arg ])), loc) :: instrs) | RESUMETERM -> - let stack, _ = State.accu state in - let func, func_loc = State.peek 0 state in - let arg, arg_loc = State.peek 1 state in - let loc = loc ||| func_loc ||| arg_loc in - let x, state = State.fresh_var state loc in + let stack = State.accu state in + let func = State.peek 0 state in + let arg = State.peek 1 state in + let x, state = State.fresh_var state in if debug_parser () then @@ -2533,8 +2478,8 @@ and compile infos pc state instrs = , (Return x, loc) , state ) | PERFORM -> - let eff, _ = State.accu state in - let x, state = State.fresh_var state loc in + let eff = State.accu state in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "%a = perform(%a)@." Var.print x Var.print eff; @@ -2544,12 +2489,11 @@ and compile infos pc state instrs = state ((Let (x, Prim (Extern "%perform", [ Pv eff ])), loc) :: instrs) | REPERFORMTERM -> - let eff, _ = State.accu state in - let stack, _ = State.peek 0 state in - let _, loc' = State.peek 1 state in + let eff = State.accu state in + let stack = State.peek 0 state in + (* We don't need [State.peek 1 state] *) let state = State.pop 2 state in - let loc = loc ||| loc' in - let x, state = State.fresh_var state loc in + let x, state = State.fresh_var state in if debug_parser () then Format.printf "return reperform(%a, %a)@." Var.print eff Var.print stack; diff --git a/compiler/lib/parse_bytecode.mli b/compiler/lib/parse_bytecode.mli index 627f65fdd0..4289537eb7 100644 --- a/compiler/lib/parse_bytecode.mli +++ b/compiler/lib/parse_bytecode.mli @@ -23,14 +23,13 @@ open Stdlib module Debug : sig type t - type force = + type position = | Before | After - | No val create : include_cmis:bool -> bool -> t - val find_loc : t -> ?force:force -> Code.loc -> Parse_info.t option + val find_loc : t -> position:position -> Code.Addr.t -> Parse_info.t option val is_empty : t -> bool diff --git a/compiler/lib/parse_info.ml b/compiler/lib/parse_info.ml index 0dc7280353..33680362f1 100644 --- a/compiler/lib/parse_info.ml +++ b/compiler/lib/parse_info.ml @@ -51,3 +51,16 @@ let t_of_position ~src pos = ; col = pos.Lexing.pos_cnum - pos.Lexing.pos_bol ; idx = 0 } + +let to_string { name; src; line; col; _ } = + match name, src with + | (None | Some ""), (None | Some "") -> "?" + | _ -> + let file = + match name, src with + | (None | Some ""), Some file -> file + | Some file, (None | Some "") -> file + | Some file, Some _file -> file + | None, None -> assert false + in + Format.sprintf "%s:%d:%d" file line col diff --git a/compiler/lib/parse_info.mli b/compiler/lib/parse_info.mli index ed47c535e3..33e4970a6d 100644 --- a/compiler/lib/parse_info.mli +++ b/compiler/lib/parse_info.mli @@ -34,3 +34,5 @@ val t_of_pos : Lexing.position -> t val start_position : t -> Lexing.position val t_of_position : src:string option -> Lexing.position -> t + +val to_string : t -> string diff --git a/compiler/lib/partial_cps_analysis.ml b/compiler/lib/partial_cps_analysis.ml index e2424fac1e..ea4bfc2fc5 100644 --- a/compiler/lib/partial_cps_analysis.ml +++ b/compiler/lib/partial_cps_analysis.ml @@ -39,9 +39,18 @@ let add_tail_dep deps x y = (fun s -> Some (Var.Set.add x (Option.value ~default:Var.Set.empty s))) !deps +let rec block_iter_last ~f l = + match l with + | [] -> () + | [ i ] -> f true i + | [ i; (Event _, _) ] -> f true i + | i :: l -> + f false i; + block_iter_last ~f l + let block_deps ~info ~vars ~tail_deps ~deps ~blocks ~fun_name pc = let block = Addr.Map.find pc blocks in - List.iter_last block.body ~f:(fun is_last (i, _) -> + block_iter_last block.body ~f:(fun is_last (i, _) -> match i with | Let (x, Apply { f; _ }) -> ( add_var vars x; @@ -89,7 +98,7 @@ let block_deps ~info ~vars ~tail_deps ~deps ~blocks ~fun_name pc = add_dep deps f x) | Let (x, Closure _) -> add_var vars x | Let (_, (Prim _ | Block _ | Constant _ | Field _ | Special _)) - | Assign _ | Set_field _ | Offset_ref _ | Array_set _ -> ()) + | Event _ | Assign _ | Set_field _ | Offset_ref _ | Array_set _ -> ()) let program_deps ~info ~vars ~tail_deps ~deps p = fold_closures diff --git a/compiler/lib/phisimpl.ml b/compiler/lib/phisimpl.ml index 285bfec8df..bccff572e6 100644 --- a/compiler/lib/phisimpl.ml +++ b/compiler/lib/phisimpl.ml @@ -71,7 +71,7 @@ let program_deps { blocks; _ } = | Assign (x, y) -> add_dep deps x y; add_def vars defs x y - | Set_field _ | Array_set _ | Offset_ref _ -> ()); + | Event _ | Set_field _ | Array_set _ | Offset_ref _ -> ()); match fst block.branch with | Return _ | Raise _ | Stop -> () | Branch cont -> cont_deps blocks vars deps defs cont diff --git a/compiler/lib/pure_fun.ml b/compiler/lib/pure_fun.ml index fbb5bb9fb0..39d7d7873c 100644 --- a/compiler/lib/pure_fun.ml +++ b/compiler/lib/pure_fun.ml @@ -35,7 +35,7 @@ let pure_expr pure_funs e = let pure_instr pure_funs i = match i with | Let (_, e) -> pure_expr pure_funs e - | Assign _ -> true + | Event _ | Assign _ -> true | Set_field _ | Offset_ref _ | Array_set _ -> false (****) diff --git a/compiler/lib/source_map.ml b/compiler/lib/source_map.ml index 96fe0a22b6..64576d89dd 100644 --- a/compiler/lib/source_map.ml +++ b/compiler/lib/source_map.ml @@ -294,6 +294,11 @@ let string_of_stringlit (`Stringlit s) = | `String s -> s | _ -> invalid () +let int_of_intlit (`Intlit s) = + match Yojson.Safe.from_string s with + | `Int s -> s + | _ -> invalid () + let stringlit name rest : [ `Stringlit of string ] option = try match List.assoc name rest with @@ -325,6 +330,17 @@ let list_stringlit_opt name rest = | _ -> invalid () with Not_found -> None +let list_intlit name rest = + try + match List.assoc name rest with + | `List l -> + Some + (List.map l ~f:(function + | `Intlit _ as s -> s + | _ -> invalid ())) + | _ -> invalid () + with Not_found -> None + module Standard = struct type t = { version : int @@ -334,6 +350,7 @@ module Standard = struct ; sources_content : Source_content.t option list option ; names : string list ; mappings : Mappings.t + ; ignore_list : string list } let empty ~inline_source_content = @@ -344,6 +361,7 @@ module Standard = struct ; sources_content = (if inline_source_content then Some [] else None) ; names = [] ; mappings = Mappings.empty + ; ignore_list = [] } let maps ~sources_offset ~names_offset x = @@ -472,6 +490,21 @@ module Standard = struct (List.map l ~f:(function | None -> `Null | Some x -> Source_content.to_json x))) ) + ; ( "ignoreList" + , match t.ignore_list with + | [] -> None + | _ -> + Some + (`List + (let s = StringSet.of_list t.ignore_list in + List.filter_map + ~f:(fun x -> x) + (List.mapi + ~f:(fun i nm -> + if StringSet.mem nm s + then Some (`Intlit (string_of_int i)) + else None) + t.sources))) ) ]) let of_json (json : Yojson.Raw.t) = @@ -505,6 +538,17 @@ module Standard = struct | None -> Mappings.empty | Some s -> Mappings.of_string_unsafe s in + let ignore_list = + let s = + IntSet.of_list + (List.map + ~f:int_of_intlit + (Option.value ~default:[] (list_intlit "ignoreList" rest))) + in + List.filter_map + ~f:(fun x -> x) + (List.mapi ~f:(fun i nm -> if IntSet.mem i s then Some nm else None) sources) + in { version = int_of_string version ; file ; sourceroot @@ -512,6 +556,7 @@ module Standard = struct ; sources_content ; sources ; mappings + ; ignore_list } | _ -> invalid () @@ -520,9 +565,24 @@ module Standard = struct let to_file m file = Yojson.Raw.to_file file (json m) let invariant - { version; file = _; sourceroot = _; names; sources_content; sources; mappings } = + { version + ; file = _ + ; sourceroot = _ + ; names + ; sources_content + ; sources + ; mappings + ; ignore_list + } = if not (version_is_valid version) then invalid_arg "Source_map.Standard.invariant: invalid version"; + (if not (List.is_empty ignore_list) + then + let s = StringSet.of_list sources in + if List.exists ~f:(fun nm -> not (StringSet.mem nm s)) ignore_list + then + invalid_arg + "Source_map.Standard.invariant: ignore list should be a subset of sources"); match sources_content with | None -> () | Some x -> diff --git a/compiler/lib/source_map.mli b/compiler/lib/source_map.mli index 78c1972048..64954d0fd5 100644 --- a/compiler/lib/source_map.mli +++ b/compiler/lib/source_map.mli @@ -98,6 +98,7 @@ module Standard : sig (** Left uninterpreted, since most useful operations can be performed efficiently directly on the encoded form, and a full decoding can be costly for big sourcemaps. *) + ; ignore_list : string list } val filter_map : t -> f:(int -> int option) -> t diff --git a/compiler/lib/specialize.ml b/compiler/lib/specialize.ml index 2c7a7b1d2f..7d29ffe81a 100644 --- a/compiler/lib/specialize.ml +++ b/compiler/lib/specialize.ml @@ -49,20 +49,25 @@ let function_arity info x = in arity info x [] -let specialize_instr function_arity (acc, free_pc, extra) i = +let add_event loc instrs = + match loc with + | Some loc -> (Event loc, noloc) :: instrs + | None -> instrs + +let specialize_instr function_arity ((acc, free_pc, extra), loc) i = match i with - | Let (x, Apply { f; args; exact = false }), loc when Config.Flag.optcall () -> ( + | Let (x, Apply { f; args; exact = false }), loc' when Config.Flag.optcall () -> ( let n' = List.length args in match function_arity f with | None -> i :: acc, free_pc, extra | Some n when n = n' -> - (Let (x, Apply { f; args; exact = true }), loc) :: acc, free_pc, extra + (Let (x, Apply { f; args; exact = true }), loc') :: acc, free_pc, extra | Some n when n < n' -> let v = Code.Var.fresh () in let args, rest = List.take n args in - ( (Let (v, Apply { f; args; exact = true }), loc) - :: (Let (x, Apply { f = v; args = rest; exact = false }), loc) - :: acc + ( (* Reversed *) + (Let (x, Apply { f = v; args = rest; exact = false }), loc') + :: add_event loc ((Let (v, Apply { f; args; exact = true }), loc') :: acc) , free_pc , extra ) | Some n when n > n' -> @@ -74,11 +79,14 @@ let specialize_instr function_arity (acc, free_pc, extra) i = let return' = Code.Var.fresh () in { params = params' ; body = - [ Let (return', Apply { f; args = args @ params'; exact = true }), noloc ] + add_event + loc + [ Let (return', Apply { f; args = args @ params'; exact = true }), noloc + ] ; branch = Return return', noloc } in - ( (Let (x, Closure (missing, (free_pc, missing))), loc) :: acc + ( (Let (x, Closure (missing, (free_pc, missing))), loc') :: acc , free_pc + 1 , (free_pc, block) :: extra ) | _ -> i :: acc, free_pc, extra) @@ -88,15 +96,22 @@ let specialize_instrs ~function_arity p = let blocks, free_pc = Addr.Map.fold (fun pc block (blocks, free_pc) -> - let body, free_pc, extra = - List.fold_right block.body ~init:([], free_pc, []) ~f:(fun i acc -> - specialize_instr function_arity acc i) + let (body, free_pc, extra), _ = + List.fold_left + block.body + ~init:(([], free_pc, []), None) + ~f:(fun acc i -> + match fst i with + | Event loc -> + let (body, free_pc, extra), _ = acc in + (i :: body, free_pc, extra), Some loc + | _ -> specialize_instr function_arity acc i, None) in let blocks = List.fold_left extra ~init:blocks ~f:(fun blocks (pc, b) -> Addr.Map.add pc b blocks) in - Addr.Map.add pc { block with Code.body } blocks, free_pc) + Addr.Map.add pc { block with Code.body = List.rev body } blocks, free_pc) p.blocks (Addr.Map.empty, p.free_pc) in diff --git a/compiler/lib/specialize_js.ml b/compiler/lib/specialize_js.ml index 3e75f1a1f8..3dae4b3062 100644 --- a/compiler/lib/specialize_js.ml +++ b/compiler/lib/specialize_js.ml @@ -157,51 +157,95 @@ let specialize_instr ~target info i = | _ -> i) | _, _ -> i -let equal2 a b = Code.Var.equal a b +let skip_event cont ((Event _, _) :: l | l) = cont l -let equal3 a b c = Code.Var.equal a b && Code.Var.equal b c +let recognize_string_length cont = + skip_event + @@ fun l -> + match l with + | ((Let (len, Prim (Extern "caml_ml_string_length", [ Pv str ])), _) as i) :: l -> + cont i ~len ~str l + | _ -> None -let equal4 a b c d = Code.Var.equal a b && Code.Var.equal b c && Code.Var.equal c d +let recognize_int_add ~x ~y cont = + skip_event + @@ fun l -> + match l with + | ((Let (res, Prim (Extern "%int_add", [ Pv x'; Pv y' ])), _) as i) :: l + when Code.Var.equal x x' && Code.Var.equal y y' -> cont i ~res l + | _ -> None + +let recognize_create_bytes ~len cont = + skip_event + @@ fun l -> + match l with + | (Let (bytes, Prim (Extern "caml_create_bytes", [ Pv len' ])), _) :: l + when Code.Var.equal len len' -> cont ~bytes l + | _ -> None + +let recognize_blit_string ~str ~bytes ~ofs ~len cont = + skip_event + @@ fun l -> + match l with + | ( Let + ( _ + , Prim + ( Extern "caml_blit_string" + , [ Pv str'; Pc (Int zero); Pv bytes'; ofs'; Pv len' ] ) ) + , _ ) + :: l + when Code.Var.equal str str' + && Targetint.is_zero zero + && Code.Var.equal bytes bytes' + && Code.Var.equal len len' + && + match ofs, ofs' with + | Pc (Int ofs), Pc (Int ofs') -> Targetint.equal ofs ofs' + | Pv ofs, Pv ofs' -> Code.Var.equal ofs ofs' + | _ -> false -> cont l + | _ -> None + +let recognize_string_of_bytes ~bytes cont = + skip_event + @@ fun l -> + match l with + | (Let (str, Prim (Extern "caml_string_of_bytes", [ Pv bytes' ])), _) :: l + when Code.Var.equal bytes bytes' -> cont ~str l + | _ -> None + +let recognize_empty_body cont = + skip_event @@ fun l -> if List.is_empty l then cont () else None + +let specialize_string_concat l = + Option.value + ~default:l + (l + |> recognize_string_length + @@ fun len1 ~len:alen ~str:a -> + recognize_string_length + @@ fun len2 ~len:blen ~str:b -> + recognize_int_add ~x:alen ~y:blen + @@ fun len3 ~res:len -> + recognize_create_bytes ~len + @@ fun ~bytes -> + recognize_blit_string ~str:a ~bytes ~ofs:(Pc (Int Targetint.zero)) ~len:alen + @@ recognize_blit_string ~str:b ~bytes ~ofs:(Pv alen) ~len:blen + @@ recognize_string_of_bytes ~bytes + @@ fun ~str -> + recognize_empty_body + @@ fun () -> + Some + [ len1 + ; len2 + ; len3 + ; Let (str, Prim (Extern "caml_string_concat", [ Pv a; Pv b ])), No + ; Let (bytes, Prim (Extern "caml_bytes_of_string", [ Pv str ])), No + ]) let specialize_instrs ~target info l = let rec aux info checks l acc = match l with | [] -> List.rev acc - | [ ((Let (alen, Prim (Extern "caml_ml_string_length", [ Pv a ])), _) as len1) - ; ((Let (blen, Prim (Extern "caml_ml_string_length", [ Pv b ])), _) as len2) - ; ((Let (len, Prim (Extern "%int_add", [ Pv alen'; Pv blen' ])), _) as len3) - ; (Let (bytes, Prim (Extern "caml_create_bytes", [ Pv len' ])), _) - ; ( Let - ( u1 - , Prim - ( Extern "caml_blit_string" - , [ Pv a'; Pc (Int zero1); Pv bytes'; Pc (Int zero2); Pv alen'' ] ) ) - , _ ) - ; ( Let - ( u2 - , Prim - ( Extern "caml_blit_string" - , [ Pv b'; Pc (Int zero3); Pv bytes''; Pv alen'''; Pv blen'' ] ) ) - , _ ) - ; (Let (res, Prim (Extern "caml_string_of_bytes", [ Pv bytes''' ])), _) - ] - when Targetint.is_zero zero1 - && Targetint.is_zero zero2 - && Targetint.is_zero zero3 - && equal2 a a' - && equal2 b b' - && equal2 len len' - && equal4 alen alen' alen'' alen''' - && equal3 blen blen' blen'' - && equal4 bytes bytes' bytes'' bytes''' -> - [ len1 - ; len2 - ; len3 - ; Let (u1, Constant (Int Targetint.zero)), No - ; Let (u2, Constant (Int Targetint.zero)), No - ; Let (res, Prim (Extern "caml_string_concat", [ Pv a; Pv b ])), No - ; Let (bytes, Prim (Extern "caml_bytes_of_string", [ Pv res ])), No - ] | (i, loc) :: r -> ( (* We make bound checking explicit. Then, we can remove duplicated bound checks. Also, it appears to be more efficient to inline @@ -303,7 +347,10 @@ let specialize_instrs ~target info l = let specialize_all_instrs ~target info p = let blocks = Addr.Map.map - (fun block -> { block with Code.body = specialize_instrs ~target info block.body }) + (fun block -> + { block with + Code.body = specialize_instrs ~target info (specialize_string_concat block.body) + }) p.blocks in { p with blocks } diff --git a/compiler/lib/structure.ml b/compiler/lib/structure.ml index 5632cb7219..24181b0aad 100644 --- a/compiler/lib/structure.ml +++ b/compiler/lib/structure.ml @@ -47,13 +47,21 @@ let is_merge_node' block_order preds pc = in n > 1 +let empty_body body = + List.for_all + ~f:(fun (i, _) -> + match i with + | Event _ -> true + | _ -> false) + body + let rec leave_try_body block_order preds blocks pc = if is_merge_node' block_order preds pc then false else match Addr.Map.find pc blocks with - | { body = []; branch = (Return _ | Stop), _; _ } -> false - | { body = []; branch = Branch (pc', _), _; _ } -> + | { body; branch = (Return _ | Stop), _; _ } when empty_body body -> false + | { body; branch = Branch (pc', _), _; _ } when empty_body body -> leave_try_body block_order preds blocks pc' | _ -> true @@ -198,6 +206,7 @@ let rec measure blocks g pc limit = match x with (* A closure is never small *) | Let (_, Closure _), _ -> -1 + | Event _, _ -> acc | _ -> acc - 1) in if limit < 0 diff --git a/compiler/lib/subst.ml b/compiler/lib/subst.ml index bd1e41f411..a5bd5c6816 100644 --- a/compiler/lib/subst.ml +++ b/compiler/lib/subst.ml @@ -47,6 +47,7 @@ let instr s i = | Set_field (x, n, typ, y) -> Set_field (s x, n, typ, s y) | Offset_ref (x, n) -> Offset_ref (s x, n) | Array_set (x, y, z) -> Array_set (s x, s y, s z) + | Event _ -> i let instrs s l = List.map l ~f:(fun (i, loc) -> instr s i, loc) diff --git a/compiler/tests-compiler/build_path_prefix_map.ml b/compiler/tests-compiler/build_path_prefix_map.ml index 8dcd2b3c3c..3279aa0a92 100644 --- a/compiler/tests-compiler/build_path_prefix_map.ml +++ b/compiler/tests-compiler/build_path_prefix_map.ml @@ -48,5 +48,6 @@ let%expect_test _ = file: test.js sourceRoot: sources: + - /builtin/blackbox.ml - /dune-root/test.ml |}] diff --git a/compiler/tests-compiler/gh747.ml b/compiler/tests-compiler/gh747.ml index adbb4cc285..ea4050604a 100644 --- a/compiler/tests-compiler/gh747.ml +++ b/compiler/tests-compiler/gh747.ml @@ -62,12 +62,12 @@ print_endline(String.make 1 "Ɋ".[0] ^ String.make 1 "Ɋ".[1]);; 7: var 8: runtime = globalThis.jsoo_runtime, 9: caml_string_of_jsbytes = runtime.caml_string_of_jsbytes; - 10: /*<>*/ function caml_call1(f, a0){ + 10: function caml_call1(f, a0){ 11: return (f.l >= 0 ? f.l : f.l = f.length) === 1 12: ? f(a0) 13: : runtime.caml_call_gen(f, [a0]); 14: } - 15: /*<>*/ function caml_call2(f, a0, a1){ + 15: function caml_call2(f, a0, a1){ 16: return (f.l >= 0 ? f.l : f.l = f.length) === 2 17: ? f(a0, a1) 18: : runtime.caml_call_gen(f, [a0, a1]); @@ -79,38 +79,32 @@ print_endline(String.make 1 "Ɋ".[0] ^ String.make 1 "Ɋ".[1]);; 24: Stdlib = global_data.Stdlib, 25: Stdlib_Random = global_data.Stdlib__Random, 26: Stdlib_String = global_data.Stdlib__String; - 27: /*<>*/ /*<>*/ caml_call1(Stdlib[46], greeting); - 28: /*<>*/ /*<>*/ caml_call1 - 29: (Stdlib[46], greeting$0); - 30: /*<>*/ var - 31: /*<>*/ _a_ = - 32: /*<>*/ caml_call1(Stdlib_Random[5], 30), - 33: /*<>*/ unicodeLength = - 34: /*<>*/ runtime.caml_ml_string_length - 35: ( /*<>*/ caml_call2(Stdlib_String[1], _a_, 105)), - 36: /*<>*/ _b_ = - 37: /*<>*/ caml_call1(Stdlib[33], unicodeLength), - 38: /*<>*/ _c_ = - 39: /*<>*/ caml_call2 - 40: (Stdlib[28], - 41: caml_string_of_jsbytes('String.length("\xc9\x8a") should be two:'), - 42: _b_); - 43: /*<>*/ /*<>*/ caml_call1(Stdlib[46], _c_); - 44: /*<>*/ var - 45: /*<>*/ _d_ = - 46: /*<>*/ caml_call2(Stdlib_String[1], 1, 138), - 47: /*<>*/ _e_ = - 48: /*<>*/ caml_call2(Stdlib_String[1], 1, 201), - 49: /*<>*/ _f_ = - 50: /*<>*/ caml_call2(Stdlib[28], _e_, _d_); - 51: /*<>*/ /*<>*/ caml_call1(Stdlib[46], _f_); - 52: var Test = [0, greeting$0, unicodeLength]; - 53: runtime.caml_register_global(8, Test, "Test"); - 54: return; - 55: /*<>*/ } - 56: (globalThis)); - 57: - 58: //# sourceMappingURL=test.map + 27: /*<>*/ caml_call1(Stdlib[46], greeting); + 28: /*<>*/ caml_call1(Stdlib[46], greeting$0); + 29: var + 30: _a_ = /*<>*/ caml_call1(Stdlib_Random[5], 30), + 31: unicodeLength = + 32: /*<>*/ /*<>*/ runtime.caml_ml_string_length + 33: ( /*<>*/ caml_call2(Stdlib_String[1], _a_, 105)), + 34: _b_ = /*<>*/ caml_call1(Stdlib[33], unicodeLength), + 35: _c_ = + 36: /*<>*/ caml_call2 + 37: (Stdlib[28], + 38: caml_string_of_jsbytes('String.length("\xc9\x8a") should be two:'), + 39: _b_); + 40: /*<>*/ caml_call1(Stdlib[46], _c_); + 41: var + 42: _d_ = /*<>*/ caml_call2(Stdlib_String[1], 1, 138), + 43: _e_ = /*<>*/ caml_call2(Stdlib_String[1], 1, 201), + 44: _f_ = /*<>*/ caml_call2(Stdlib[28], _e_, _d_); + 45: /*<>*/ caml_call1(Stdlib[46], _f_); + 46: var Test = /*<>*/ [0, greeting$0, unicodeLength]; + 47: runtime.caml_register_global(8, Test, "Test"); + 48: return; + 49: /*<>*/ } + 50: (globalThis)); + 51: + 52: //# sourceMappingURL=test.map |}] let%expect_test _ = @@ -233,168 +227,169 @@ end 7: var 8: runtime = globalThis.jsoo_runtime, 9: caml_string_of_jsbytes = runtime.caml_string_of_jsbytes; - 10: /*<>*/ function caml_call2(f, a0, a1){ + 10: function caml_call2(f, a0, a1){ 11: return (f.l >= 0 ? f.l : f.l = f.length) === 2 12: ? f(a0, a1) 13: : runtime.caml_call_gen(f, [a0, a1]); 14: } - 15: /*<>*/ function caml_call3(f, a0, a1, a2){ + 15: function caml_call3(f, a0, a1, a2){ 16: return (f.l >= 0 ? f.l : f.l = f.length) === 3 17: ? f(a0, a1, a2) 18: : runtime.caml_call_gen(f, [a0, a1, a2]); 19: } - 20: /*<>*/ function caml_call8(f, a0, a1, a2, a3, a4, a5, a6, a7){ + 20: function caml_call8(f, a0, a1, a2, a3, a4, a5, a6, a7){ 21: return (f.l >= 0 ? f.l : f.l = f.length) === 8 22: ? f(a0, a1, a2, a3, a4, a5, a6, a7) 23: : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6, a7]); 24: } - 25: /*<>*/ var + 25: var 26: global_data = runtime.caml_get_global_data(), 27: cst = caml_string_of_jsbytes(""), 28: partial = [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, 0]]], 29: Stdlib_Printf = global_data.Stdlib__Printf, - 30: /*<>*/ executable_name = + 30: executable_name = 31: /*<>*/ runtime.caml_sys_executable_name(0), 32: os_type = /*<>*/ runtime.caml_sys_get_config(0)[1], - 33: backend_type = [0, caml_string_of_jsbytes("js_of_ocaml")], - 34: unix = runtime.caml_sys_const_ostype_unix(0), - 35: win32 = runtime.caml_sys_const_ostype_win32(0), - 36: cygwin = runtime.caml_sys_const_ostype_cygwin(0), - 37: max_array_length = runtime.caml_sys_const_max_wosize(0), - 38: max_floatarray_length = max_array_length / 2 | 0, - 39: max_string_length = (4 * max_array_length | 0) - 1 | 0, - 40: /*<>*/ Unhandled = - 41: [248, - 42: caml_string_of_jsbytes("Test.Unhandled"), - 43: runtime.caml_fresh_oo_id(0)], - 44: cst_Raised_at = caml_string_of_jsbytes("Raised at"), - 45: cst_Re_raised_at = caml_string_of_jsbytes("Re-raised at"), - 46: cst_Raised_by_primitive_operat = - 47: caml_string_of_jsbytes("Raised by primitive operation at"), - 48: cst_Called_from = caml_string_of_jsbytes("Called from"), - 49: cst_inlined = caml_string_of_jsbytes(" (inlined)"), - 50: _a_ = - 51: [0, - 52: [2, - 53: 0, - 54: [12, - 55: 32, - 56: [2, - 57: 0, - 58: [11, - 59: caml_string_of_jsbytes(' in file "'), - 60: [2, - 61: 0, - 62: [12, - 63: 34, - 64: [2, - 65: 0, - 66: [11, - 67: caml_string_of_jsbytes(", line "), - 68: [4, - 69: 0, + 33: backend_type = + 34: /*<>*/ [0, caml_string_of_jsbytes("js_of_ocaml")], + 35: unix = runtime.caml_sys_const_ostype_unix(0), + 36: win32 = runtime.caml_sys_const_ostype_win32(0), + 37: cygwin = runtime.caml_sys_const_ostype_cygwin(0), + 38: max_array_length = runtime.caml_sys_const_max_wosize(0), + 39: max_floatarray_length = max_array_length / 2 | 0, + 40: max_string_length = (4 * max_array_length | 0) - 1 | 0, + 41: Unhandled = + 42: [248, + 43: caml_string_of_jsbytes("Test.Unhandled"), + 44: runtime.caml_fresh_oo_id(0)], + 45: cst_Raised_at = caml_string_of_jsbytes("Raised at"), + 46: cst_Re_raised_at = caml_string_of_jsbytes("Re-raised at"), + 47: cst_Raised_by_primitive_operat = + 48: caml_string_of_jsbytes("Raised by primitive operation at"), + 49: cst_Called_from = caml_string_of_jsbytes("Called from"), + 50: cst_inlined = caml_string_of_jsbytes(" (inlined)"), + 51: _a_ = + 52: [0, + 53: [2, + 54: 0, + 55: [12, + 56: 32, + 57: [2, + 58: 0, + 59: [11, + 60: caml_string_of_jsbytes(' in file "'), + 61: [2, + 62: 0, + 63: [12, + 64: 34, + 65: [2, + 66: 0, + 67: [11, + 68: caml_string_of_jsbytes(", line "), + 69: [4, 70: 0, 71: 0, - 72: [11, caml_string_of_jsbytes(", characters "), partial]]]]]]]]]], - 73: caml_string_of_jsbytes - 74: ('%s %s in file "%s"%s, line %d, characters %d-%d')], - 75: _b_ = - 76: [0, - 77: [2, 0, [11, caml_string_of_jsbytes(" unknown location"), 0]], - 78: caml_string_of_jsbytes("%s unknown location")], - 79: _c_ = [0, [2, 0, [12, 10, 0]], caml_string_of_jsbytes("%s\n")], - 80: _d_ = - 81: [0, - 82: [11, - 83: caml_string_of_jsbytes - 84: ("(Program not linked with -g, cannot print stack backtrace)\n"), - 85: 0], - 86: caml_string_of_jsbytes - 87: ("(Program not linked with -g, cannot print stack backtrace)\n")]; - 88: function format_backtrace_slot(pos, slot){ - 89: function info(is_raise){ - 90: /*<>*/ return is_raise - 91: ? 0 === pos ? cst_Raised_at : cst_Re_raised_at - 92: : 0 === pos ? cst_Raised_by_primitive_operat : cst_Called_from; - 93: /*<>*/ } - 94: /*<>*/ if(0 === slot[0]){ - 95: /*<>*/ var - 96: _h_ = slot[5], - 97: _i_ = slot[4], - 98: _j_ = slot[3], - 99: _k_ = slot[6] ? cst_inlined : cst, - 100: _l_ = slot[2], - 101: _m_ = slot[7], - 102: /*<>*/ _n_ = info(slot[1]); - 103: /*<>*/ return [0, - 104: /*<>*/ caml_call8 - 105: (Stdlib_Printf[4], _a_, _n_, _m_, _l_, _k_, _j_, _i_, _h_)]; - 106: } - 107: if(slot[1]) /*<>*/ return 0; - 108: /*<>*/ /*<>*/ var _o_ = info(0); - 109: /*<>*/ return [0, - 110: /*<>*/ caml_call2(Stdlib_Printf[4], _b_, _o_)]; + 72: 0, + 73: [11, caml_string_of_jsbytes(", characters "), partial]]]]]]]]]], + 74: caml_string_of_jsbytes + 75: ('%s %s in file "%s"%s, line %d, characters %d-%d')], + 76: _b_ = + 77: [0, + 78: [2, 0, [11, caml_string_of_jsbytes(" unknown location"), 0]], + 79: caml_string_of_jsbytes("%s unknown location")], + 80: _c_ = [0, [2, 0, [12, 10, 0]], caml_string_of_jsbytes("%s\n")], + 81: _d_ = + 82: [0, + 83: [11, + 84: caml_string_of_jsbytes + 85: ("(Program not linked with -g, cannot print stack backtrace)\n"), + 86: 0], + 87: caml_string_of_jsbytes + 88: ("(Program not linked with -g, cannot print stack backtrace)\n")]; + 89: function format_backtrace_slot(pos, slot){ + 90: function info(is_raise){ + 91: /*<>*/ return is_raise + 92: ? 0 === pos ? cst_Raised_at : cst_Re_raised_at + 93: : 0 === pos ? cst_Raised_by_primitive_operat : cst_Called_from /*<>*/ ; + 94: } + 95: /*<>*/ if(0 === slot[0]){ + 96: var + 97: _h_ = /*<>*/ slot[5], + 98: _i_ = slot[4], + 99: _j_ = slot[3], + 100: _k_ = slot[6] ? cst_inlined : cst, + 101: _l_ = /*<>*/ slot[2], + 102: _m_ = slot[7], + 103: _n_ = info(slot[1]); + 104: /*<>*/ return [0, + 105: caml_call8 + 106: (Stdlib_Printf[4], _a_, _n_, _m_, _l_, _k_, _j_, _i_, _h_)] /*<>*/ ; + 107: } + 108: /*<>*/ if(slot[1]) /*<>*/ return 0; + 109: var _o_ = /*<>*/ info(0); + 110: /*<>*/ return [0, caml_call2(Stdlib_Printf[4], _b_, _o_)] /*<>*/ ; 111: /*<>*/ } 112: function print_exception_backtrace(outchan, backtrace){ 113: /*<>*/ if(! backtrace) - 114: /*<>*/ return /*<>*/ caml_call2 - 115: (Stdlib_Printf[1], outchan, _d_); - 116: var a = backtrace[1], _f_ = a.length - 2 | 0, _e_ = 0; - 117: if(_f_ >= 0){ - 118: var i = _e_; - 119: for(;;){ - 120: /*<>*/ /*<>*/ var - 121: match = format_backtrace_slot(i, runtime.caml_check_bound(a, i)[1 + i]); - 122: if(match){ - 123: var str = match[1]; - 124: /*<>*/ /*<>*/ caml_call3 - 125: (Stdlib_Printf[1], outchan, _c_, str); - 126: } - 127: /*<>*/ /*<>*/ var _g_ = i + 1 | 0; - 128: if(_f_ === i) break; - 129: i = _g_; - 130: } - 131: } - 132: return 0; - 133: /*<>*/ } - 134: function compare(left, right, e1, e2){ - 135: /*<>*/ if(0 === e1[0]){ - 136: var v1 = e1[1]; - 137: if(0 !== e2[0]) /*<>*/ return -1; - 138: var v2 = e2[1]; - 139: /*<>*/ return /*<>*/ caml_call2 - 140: (left, v1, v2); - 141: } - 142: var v1$0 = e1[1]; - 143: if(0 === e2[0]) /*<>*/ return 1; - 144: var v2$0 = e2[1]; - 145: /*<>*/ return /*<>*/ caml_call2 - 146: (right, v1$0, v2$0); - 147: /*<>*/ } - 148: /*<>*/ var - 149: /*<>*/ Either = [0, compare], - 150: Test = - 151: [0, - 152: executable_name, - 153: os_type, - 154: backend_type, - 155: 0, - 156: 32, + 114: /*<>*/ return caml_call2(Stdlib_Printf[1], outchan, _d_) /*<>*/ ; + 115: var + 116: a = /*<>*/ backtrace[1], + 117: _f_ = /*<>*/ a.length - 2 | 0, + 118: _e_ = 0; + 119: if(_f_ >= 0){ + 120: var i = _e_; + 121: for(;;){ + 122: var + 123: match = + 124: /*<>*/ /*<>*/ format_backtrace_slot + 125: (i, /*<>*/ runtime.caml_check_bound(a, i)[1 + i]); + 126: /*<>*/ if(match){ + 127: var str = match[1]; + 128: /*<>*/ caml_call3(Stdlib_Printf[1], outchan, _c_, str); + 129: } + 130: var _g_ = /*<>*/ i + 1 | 0; + 131: if(_f_ === i) break; + 132: i = _g_; + 133: } + 134: } + 135: /*<>*/ return 0; + 136: /*<>*/ } + 137: function compare(left, right, e1, e2){ + 138: /*<>*/ if(0 === e1[0]){ + 139: var v1 = e1[1]; + 140: if(0 !== e2[0]) /*<>*/ return -1; + 141: var v2 = /*<>*/ e2[1]; + 142: /*<>*/ return caml_call2(left, v1, v2) /*<>*/ ; + 143: } + 144: var v1$0 = /*<>*/ e1[1]; + 145: if(0 === e2[0]) /*<>*/ return 1; + 146: var v2$0 = /*<>*/ e2[1]; + 147: /*<>*/ return caml_call2(right, v1$0, v2$0) /*<>*/ ; + 148: } + 149: var + 150: Either = /*<>*/ [0, compare], + 151: Test = + 152: [0, + 153: executable_name, + 154: os_type, + 155: backend_type, + 156: 0, 157: 32, - 158: unix, - 159: win32, - 160: cygwin, - 161: max_array_length, - 162: max_floatarray_length, - 163: max_string_length, - 164: Unhandled, - 165: format_backtrace_slot, - 166: print_exception_backtrace, - 167: Either]; - 168: runtime.caml_register_global(12, Test, "Test"); - 169: return; - 170: /*<>*/ } - 171: (globalThis)); - 172: - 173: //# sourceMappingURL=test.map + 158: 32, + 159: unix, + 160: win32, + 161: cygwin, + 162: max_array_length, + 163: max_floatarray_length, + 164: max_string_length, + 165: Unhandled, + 166: format_backtrace_slot, + 167: print_exception_backtrace, + 168: Either]; + 169: runtime.caml_register_global(12, Test, "Test"); + 170: return; + 171: /*<>*/ } + 172: (globalThis)); + 173: + 174: //# sourceMappingURL=test.map |}] diff --git a/compiler/tests-compiler/global_deadcode.ml b/compiler/tests-compiler/global_deadcode.ml index ec3f6b1827..72e19e465d 100644 --- a/compiler/tests-compiler/global_deadcode.ml +++ b/compiler/tests-compiler/global_deadcode.ml @@ -21,15 +21,16 @@ let%expect_test "Eliminates unused functions from functor" = | Javascript.ECall (EVar (S { name = Utf8 name; _ }), _, _, _) -> ( let _, _, body, _ = find_function program name in match List.rev body with - | (Return_statement (Some (EArr return)), loc) :: rest -> + | (Return_statement (Some (EArr return), loc), loc') :: rest -> let return = ( Javascript.Return_statement - (Some - (EArr - (List.filter return ~f:(function - | Javascript.ElementHole -> false - | _ -> true)))) - , loc ) + ( Some + (EArr + (List.filter return ~f:(function + | Javascript.ElementHole -> false + | _ -> true))) + , loc ) + , loc' ) in print_program (List.rev (return :: rest)) | _ -> ()) diff --git a/compiler/tests-compiler/js_parser_printer.ml b/compiler/tests-compiler/js_parser_printer.ml index 79b879db9d..4fd903a984 100644 --- a/compiler/tests-compiler/js_parser_printer.ml +++ b/compiler/tests-compiler/js_parser_printer.ml @@ -75,7 +75,7 @@ let print ?(debuginfo = true) ?(report = false) ?(invalid = false) ~compact sour let%expect_test "spread operator survives round-trip" = print ~compact:true "f(...[1, 2, 3])"; - [%expect {| /*<>*/ /*<>*/f(...[1,2,3]); |}] + [%expect {| /*<>*/f(...[1,2,3]); |}] let%expect_test "no postfix addition coalesce" = print ~compact:true "a + +b"; @@ -104,14 +104,14 @@ let%expect_test "reserved words as fields" = |}; [%expect {| - /*<>*/ x.debugger; - /*<>*/ x.catch; - /*<>*/ x.for; - /*<>*/ x.continue; - /*<>*/ /*<>*/ var y = {debugger: 2}; - /*<>*/ /*<>*/ var y = {catch: 2}; - /*<>*/ /*<>*/ var y = {for: 2}; - /*<>*/ /*<>*/ var y = {continue: 2}; |}] + /*<>*/ x.debugger; + /*<>*/ x.catch; + /*<>*/ x.for; + /*<>*/ x.continue; + var y = /*<>*/ {debugger: 2}; + var y = /*<>*/ {catch: 2}; + var y = /*<>*/ {for: 2}; + var y = /*<>*/ {continue: 2}; |}] let%expect_test "preserve number literals" = print @@ -133,20 +133,20 @@ let%expect_test "preserve number literals" = var t = 1E+3; |}; [%expect {| - /*<>*/ /*<>*/ var x = 0xf_fff; - /*<>*/ /*<>*/ var x = 0Xffff; - /*<>*/ /*<>*/ var y = 0o7_1223; - /*<>*/ /*<>*/ var y = 0O7123; - /*<>*/ /*<>*/ var y = 0b1_1001; - /*<>*/ /*<>*/ var y = 0B11001; - /*<>*/ /*<>*/ var y = 071923; - /*<>*/ /*<>*/ var y = 07123; - /*<>*/ /*<>*/ var z = 0.0; - /*<>*/ /*<>*/ var z = 0.; - /*<>*/ /*<>*/ var t = 1.0e-3; - /*<>*/ /*<>*/ var t = 1.0E+3; - /*<>*/ /*<>*/ var t = 1e-3; - /*<>*/ /*<>*/ var t = 1E+3; |}] + var x = /*<>*/ 0xf_fff; + var x = /*<>*/ 0Xffff; + var y = /*<>*/ 0o7_1223; + var y = /*<>*/ 0O7123; + var y = /*<>*/ 0b1_1001; + var y = /*<>*/ 0B11001; + var y = /*<>*/ 071923; + var y = /*<>*/ 07123; + var z = /*<>*/ 0.0; + var z = /*<>*/ 0.; + var t = /*<>*/ 1.0e-3; + var t = /*<>*/ 1.0E+3; + var t = /*<>*/ 1e-3; + var t = /*<>*/ 1E+3; |}] let%expect_test "preserve number literals in property_name" = print @@ -157,10 +157,8 @@ let%expect_test "preserve number literals in property_name" = |}; [%expect {| - /*<>*/ /*<>*/ var - number_as_key = {100000000000000000000: 2}; - /*<>*/ /*<>*/ var - number_as_key = {100000000000000000000n: 2}; |}] + var number_as_key = /*<>*/ {100000000000000000000: 2}; + var number_as_key = /*<>*/ {100000000000000000000n: 2}; |}] let%expect_test "ops" = print @@ -204,7 +202,7 @@ let%expect_test "ops" = /*<>*/ y = a?.b?.s?.[a] ?? c ?? d; /*<>*/ a?.b; /*<>*/ a?.[b]; - /*<>*/ /*<>*/ a?.(b); |}] + /*<>*/ a?.(b); |}] let%expect_test "arrow" = print @@ -234,27 +232,34 @@ let%expect_test "arrow" = [%expect {| - /*<>*/ /*<>*/ var a = x=> /*<>*/ x + 2; - /*<>*/ /*<>*/ var a = ()=> /*<>*/ 2; - /*<>*/ /*<>*/ var a = x=> /*<>*/ x + 2; - /*<>*/ /*<>*/ var a = (x, y)=> /*<>*/ x + y; - /*<>*/ /*<>*/ var - a = x=>{ /*<>*/ x + 2; /*<>*/ }; - /*<>*/ /*<>*/ var - a = ()=>{ /*<>*/ 2; /*<>*/ }; - /*<>*/ /*<>*/ var - a = x=>{ /*<>*/ x + 2; /*<>*/ }; - /*<>*/ /*<>*/ var - a = ( /*<>*/ x = 1 / 2)=> /*<>*/ x + 10; - /*<>*/ /*<>*/ var - a = ( /*<>*/ x = /qwe/g)=> /*<>*/ x + 10; - /*<>*/ /*<>*/ var - a = x=> /*<>*/ y=> /*<>*/ x + y; - /*<>*/ /*<>*/ var - a = x=> /*<>*/ y=> /*<>*/ x + y; - /*<>*/ /*<>*/ var a = async x=> /*<>*/ y; - /*<>*/ /*<>*/ var - a = async (a, b)=> /*<>*/ a + b; |}] + var a = /*<>*/ x=> /*<>*/ x + 2 /*<>*/ ; + var a = /*<>*/ ()=> /*<>*/ 2 /*<>*/ ; + var a = /*<>*/ x=> /*<>*/ x + 2 /*<>*/ ; + var + a = /*<>*/ (x, y)=> /*<>*/ x + y /*<>*/ ; + var a = /*<>*/ x=>{ /*<>*/ x + 2; /*<>*/ }; + var a = /*<>*/ ()=>{ /*<>*/ 2; /*<>*/ }; + var a = /*<>*/ x=>{ /*<>*/ x + 2; /*<>*/ }; + var + a = + /*<>*/ (x = /*<>*/ 1 / 2)=> /*<>*/ x + 10 /*<>*/ ; + var + a = + /*<>*/ (x = /*<>*/ /qwe/g)=> /*<>*/ x + 10 /*<>*/ ; + var + a = + /*<>*/ x=> + /*<>*/ y=> /*<>*/ x + y /*<>*/ ; + var + a = + /*<>*/ x=> + /*<>*/ y=> /*<>*/ x + y /*<>*/ /*<>*/ ; + var + a = /*<>*/ async x=> /*<>*/ y /*<>*/ ; + var + a = + /*<>*/ async (a, b)=> + /*<>*/ a + b /*<>*/ ; |}] let%expect_test "trailing comma" = (* GH#989 *) @@ -286,21 +291,20 @@ function rehb_shape(_face /*: fk_face */, text /*: string */) { [%expect {| - /*<>*/ function rehb_new_face(_fontName){ - /*<>*/ return undefined; - /*<>*/ } - /*<>*/ function rehb_shape(_face, text){ - /*<>*/ /*<>*/ var - str = /*<>*/ caml_to_js_string(text); - /*<>*/ /*<>*/ var - ret = - /*<>*/ /*<>*/ str.split("").map - (function mapper(_char){ - /*<>*/ return [0, 0, 0]; - /*<>*/ }); - /*<>*/ /*<>*/ ret.unshift(0); - /*<>*/ return ret; - /*<>*/ } |}] + function rehb_new_face(_fontName){ + /*<>*/ return undefined /*<>*/ ; + /*<>*/ } + function rehb_shape(_face, text){ + var str = /*<>*/ /*<>*/ caml_to_js_string(text); + var + ret = + /*<>*/ /*<>*/ str.split("").map + (function mapper(_char){ + /*<>*/ return [0, 0, 0] /*<>*/ ; + /*<>*/ }); + /*<>*/ ret.unshift(0); + /*<>*/ return ret /*<>*/ ; + /*<>*/ } |}] let%expect_test "rest parameters" = (* GH#1031 *) @@ -319,12 +323,11 @@ let%expect_test "rest parameters" = {| /*<>*/ api_obj[key_module][key_func] = function(...args){ - /*<>*/ return /*<>*/ /*<>*/ checkIfInitialized - ().then + /*<>*/ return /*<>*/ checkIfInitialized().then (function(){ /*<>*/ return /*<>*/ callWithProto - (api_json[key_module][key_func], args); - /*<>*/ }); + (api_json[key_module][key_func], args) /*<>*/ ; + /*<>*/ }) /*<>*/ ; /*<>*/ }; |}] let%expect_test "async/await" = @@ -359,24 +362,25 @@ let%expect_test "async/await" = [%expect {| - /*<>*/ async function compile(src){ - /*<>*/ /*<>*/ const - glslangModule = - await - /*<>*/ import - ("https://unpkg.com/@webgpu/glslang@0.0.7/web/glslang.js"); - /*<>*/ /*<>*/ const - glslang = await /*<>*/ glslangModule.default(); - /*<>*/ return /*<>*/ glslang.compileGLSL - (src, "compute"); - /*<>*/ } - /*<>*/ async; - /*<>*/ function test(){ /*<>*/ } - /*<>*/ async function test(){ /*<>*/ } - /*<>*/ async; - /*<>*/ function* test(){ /*<>*/ } - /*<>*/ async function* test(){ /*<>*/ } - /*<>*/ 1 + async function* test(){ /*<>*/ }; |}] + async function compile(src){ + const + glslangModule = + /*<>*/ await + /*<>*/ import + ("https://unpkg.com/@webgpu/glslang@0.0.7/web/glslang.js"); + const + glslang = + /*<>*/ await /*<>*/ glslangModule.default(); + /*<>*/ return /*<>*/ glslang.compileGLSL + (src, "compute") /*<>*/ ; + /*<>*/ } + /*<>*/ async; + function test(){ /*<>*/ } + async function test(){ /*<>*/ } + /*<>*/ async; + function* test(){ /*<>*/ } + async function* test(){ /*<>*/ } + /*<>*/ 1 + async function* test(){ /*<>*/ }; |}] let%expect_test "get/set property" = (* GH#1017 *) @@ -399,16 +403,24 @@ let%expect_test "get/set property" = [%expect {| - /*<>*/ /*<>*/ var - x = - {get prop(){ /*<>*/ return 3; /*<>*/ }, - set prop(x){ /*<>*/ return x == 2; /*<>*/ }, - a: 4, - b(){ /*<>*/ return 5; /*<>*/ }, - * e(){ /*<>*/ return 5; /*<>*/ }, - async e(){ /*<>*/ return 5; /*<>*/ }, - async* e(){ /*<>*/ return 5; /*<>*/ }, - ["field" + 1]: 3}; |}] + var + x = + /*<>*/ {get prop(){ + /*<>*/ return 3 /*<>*/ ; + /*<>*/ }, + set prop(x){ + /*<>*/ return x == 2 /*<>*/ ; + /*<>*/ }, + a: 4, + b(){ /*<>*/ return 5 /*<>*/ ; /*<>*/ }, + * e(){ /*<>*/ return 5 /*<>*/ ; /*<>*/ }, + async e(){ + /*<>*/ return 5 /*<>*/ ; + /*<>*/ }, + async* e(){ + /*<>*/ return 5 /*<>*/ ; + /*<>*/ }, + ["field" + 1]: 3}; |}] let%expect_test "assignment pattern" = (* GH#1017 *) @@ -437,19 +449,17 @@ let%expect_test "assignment pattern" = [%expect {| - /*<>*/ var x, y, rest; - /*<>*/ /*<>*/ var [x, y] = [1, 2]; - /*<>*/ /*<>*/ var [x, y, ...rest] = [1, 2, ...o]; - /*<>*/ /*<>*/ var {x, y} = {x: 1, y: 2}; - /*<>*/ /*<>*/ var {x, y, ...rest} = {x: 1, y: 2, ...o}; - /*<>*/ [x, y] = [1, 2]; - /*<>*/ [x, y, ...rest] = [1, 2]; - /*<>*/ ({x, y} = {x: 1, y: 2}); - /*<>*/ ({x, y, ...rest} = {x: 1, y: 2}); - /*<>*/ for([a, b, {c, d = e, [f]: [g, h, a, i, j]}] in 3) - /*<>*/ ; - /*<>*/ for([a, b, {c, d = e, [f]: [g, h, a, i, j]}] of 3) - /*<>*/ ; |}] + var x, y, rest; + var [x, y] = /*<>*/ [1, 2]; + var [x, y, ...rest] = /*<>*/ [1, 2, ...o]; + var {x, y} = /*<>*/ {x: 1, y: 2}; + var {x, y, ...rest} = /*<>*/ {x: 1, y: 2, ...o}; + /*<>*/ [x, y] = [1, 2]; + /*<>*/ [x, y, ...rest] = [1, 2]; + /*<>*/ ({x, y} = {x: 1, y: 2}); + /*<>*/ ({x, y, ...rest} = {x: 1, y: 2}); + /*<>*/ for([a, b, {c, d = e, [f]: [g, h, a, i, j]}] in 3) ; + /*<>*/ for([a, b, {c, d = e, [f]: [g, h, a, i, j]}] of 3) ; |}] let%expect_test "for loops" = (* GH#1017 *) @@ -466,11 +476,9 @@ let%expect_test "for loops" = [%expect {| - /*<>*/ for(x in 3) /*<>*/ ; - /*<>*/ for(x of 3) /*<>*/ ; - /*<>*/ async function f(x){ - /*<>*/ for await(x of 3) /*<>*/ ; - /*<>*/ } |}] + /*<>*/ for(x in 3) ; + /*<>*/ for(x of 3) ; + async function f(x){ /*<>*/ for await(x of 3) ; /*<>*/ } |}] let%expect_test "string template" = (* GH#1017 *) @@ -488,12 +496,12 @@ let%expect_test "string template" = [%expect {| - /*<>*/ /*<>*/ var s = `asdte`; - /*<>*/ /*<>*/ var s = `asd ${test} te`; - /*<>*/ /*<>*/ var - s = /*<>*/ tag`asd ${test} te`; - /*<>*/ /*<>*/ var - s = `asd ${ /*<>*/ f(`space ${test} space`, 32)} te`; |}] + var s = /*<>*/ `asdte`; + var s = /*<>*/ `asd ${test} te`; + var s = /*<>*/ /*<>*/ tag`asd ${test} te`; + var + s = + /*<>*/ `asd ${ /*<>*/ f(`space ${test} space`, 32)} te`; |}] let%expect_test "from keyword" = (* GH#1017 *) @@ -513,13 +521,15 @@ let%expect_test "from keyword" = function from(field, get){ /*<>*/ if(! get) /*<>*/ get = - function get(x){ /*<>*/ return x; /*<>*/ }; + function get(x){ + /*<>*/ return x /*<>*/ ; + /*<>*/ }; /*<>*/ return /*<>*/ this.compute ([field], function(state){ /*<>*/ return /*<>*/ get - ( /*<>*/ state.field(field)); - /*<>*/ }); + ( /*<>*/ state.field(field)) /*<>*/ ; + /*<>*/ }) /*<>*/ ; /*<>*/ }}); |}] let%expect_test "new.target" = @@ -529,7 +539,7 @@ let%expect_test "new.target" = |}; [%expect {| - /*<>*/ /*<>*/ var s = new.target; |}] + var s = /*<>*/ new.target; |}] let%expect_test "super" = (* GH#1017 *) @@ -566,25 +576,23 @@ class x extends p { [%expect {| - /*<>*/ class x extends p { - constructor(){ - /*<>*/ /*<>*/ super(a, b, c); - /*<>*/ } - foo(){ - /*<>*/ /*<>*/ var s = super[d]; - /*<>*/ /*<>*/ var s = super.d; - /*<>*/ } - static - bar(){ - /*<>*/ /*<>*/ var s = super[d]; - /*<>*/ /*<>*/ var s = super.d; - /*<>*/ } - x = /*<>*/ 3; - static y = /*<>*/ 5; - #z = /*<>*/ 6; - static #t = /*<>*/ 2; - static { /*<>*/ /*<>*/ var x = 3;} - } |}] + class x extends p { + constructor(){ /*<>*/ super(a, b, c); /*<>*/ } + foo(){ + var s = /*<>*/ super[d]; + var s = /*<>*/ super.d; + /*<>*/ } + static + bar(){ + var s = /*<>*/ super[d]; + var s = /*<>*/ super.d; + /*<>*/ } + x = /*<>*/ 3; + static y = /*<>*/ 5; + #z = /*<>*/ 6; + static #t = /*<>*/ 2; + static {var x = /*<>*/ 3;} + } |}] let%expect_test "ite" = print diff --git a/compiler/tests-compiler/sourcemap.ml b/compiler/tests-compiler/sourcemap.ml index 704774fcd0..ad83ae7cc8 100644 --- a/compiler/tests-compiler/sourcemap.ml +++ b/compiler/tests-compiler/sourcemap.ml @@ -83,13 +83,16 @@ let%expect_test _ = 11: (globalThis)); 12: 13: //# sourceMappingURL=test.map - /dune-root/test.ml:1:4 -> 6:12 - /dune-root/test.ml:1:7 -> 6:15 + /builtin/blackbox.ml:1:0 -> 5:7 + /builtin/blackbox.ml:1:0 -> 5:17 + /builtin/blackbox.ml:1:0 -> 6:0 + /builtin/blackbox.ml:1:0 -> 6:12 + /builtin/blackbox.ml:1:0 -> 6:15 /dune-root/test.ml:1:11 -> 6:18 - /dune-root/test.ml:1:7 -> 6:25 /dune-root/test.ml:1:12 -> 6:27 - /dune-root/test.ml:1:4 -> 7:18 - null -> 10:2 + /dune-root/test.ml:1:12 -> 7:0 + /dune-root/test.ml:1:12 -> 7:7 + /builtin/blackbox.ml:1:0 -> 7:14 |}] let%expect_test _ = @@ -113,8 +116,8 @@ function x (a, b) { 3: return a + b; 4: } $ cat "test.min.js" - 1: /*<>*/ function x(a, b){ - 2: /*<>*/ return a + b; + 1: function x(a, b){ + 2: /*<>*/ return a + b /*<>*/ ; 3: /*<>*/ } |}] diff --git a/compiler/tests-full/stdlib.cma.expected.js b/compiler/tests-full/stdlib.cma.expected.js index ddd25fb271..099faef92e 100644 --- a/compiler/tests-full/stdlib.cma.expected.js +++ b/compiler/tests-full/stdlib.cma.expected.js @@ -5,301 +5,346 @@ "use strict"; var runtime = globalThis.jsoo_runtime; function erase_rel(param){ - /*<>*/ if(typeof param === "number") + /*<>*/ if(typeof param === "number") /*<>*/ return 0; - switch(param[0]){ + /*<>*/ switch(param[0]){ case 0: var rest = param[1]; - /*<>*/ return [0, erase_rel(rest)]; + /*<>*/ return [0, erase_rel(rest)] /*<>*/ ; case 1: - var rest$0 = param[1]; - /*<>*/ return [1, - erase_rel(rest$0)]; + var rest$0 = /*<>*/ param[1]; + /*<>*/ return [1, + erase_rel(rest$0)] /*<>*/ ; case 2: - var rest$1 = param[1]; - /*<>*/ return [2, - erase_rel(rest$1)]; + var rest$1 = /*<>*/ param[1]; + /*<>*/ return [2, + erase_rel(rest$1)] /*<>*/ ; case 3: - var rest$2 = param[1]; - /*<>*/ return [3, - erase_rel(rest$2)]; + var rest$2 = /*<>*/ param[1]; + /*<>*/ return [3, + erase_rel(rest$2)] /*<>*/ ; case 4: - var rest$3 = param[1]; - /*<>*/ return [4, - erase_rel(rest$3)]; + var rest$3 = /*<>*/ param[1]; + /*<>*/ return [4, + erase_rel(rest$3)] /*<>*/ ; case 5: - var rest$4 = param[1]; - /*<>*/ return [5, - erase_rel(rest$4)]; + var rest$4 = /*<>*/ param[1]; + /*<>*/ return [5, + erase_rel(rest$4)] /*<>*/ ; case 6: - var rest$5 = param[1]; - /*<>*/ return [6, - erase_rel(rest$5)]; + var rest$5 = /*<>*/ param[1]; + /*<>*/ return [6, + erase_rel(rest$5)] /*<>*/ ; case 7: - var rest$6 = param[1]; - /*<>*/ return [7, - erase_rel(rest$6)]; + var rest$6 = /*<>*/ param[1]; + /*<>*/ return [7, + erase_rel(rest$6)] /*<>*/ ; case 8: - var rest$7 = param[2], ty = param[1]; - /*<>*/ return [8, + var + rest$7 = /*<>*/ param[2], + ty = param[1]; + /*<>*/ return [8, ty, - erase_rel(rest$7)]; + erase_rel(rest$7)] /*<>*/ ; case 9: - var rest$8 = param[3], ty1 = param[1]; - /*<>*/ return [9, + var + rest$8 = /*<>*/ param[3], + ty1 = param[1]; + /*<>*/ return [9, ty1, ty1, - erase_rel(rest$8)]; + erase_rel(rest$8)] /*<>*/ ; case 10: - var rest$9 = param[1]; - /*<>*/ return [10, - erase_rel(rest$9)]; + var rest$9 = /*<>*/ param[1]; + /*<>*/ return [10, + erase_rel(rest$9)] /*<>*/ ; case 11: - var rest$10 = param[1]; - /*<>*/ return [11, - erase_rel(rest$10)]; + var rest$10 = /*<>*/ param[1]; + /*<>*/ return [11, + erase_rel(rest$10)] /*<>*/ ; case 12: - var rest$11 = param[1]; - /*<>*/ return [12, - erase_rel(rest$11)]; + var rest$11 = /*<>*/ param[1]; + /*<>*/ return [12, + erase_rel(rest$11)] /*<>*/ ; case 13: - var rest$12 = param[1]; - /*<>*/ return [13, - erase_rel(rest$12)]; + var rest$12 = /*<>*/ param[1]; + /*<>*/ return [13, + erase_rel(rest$12)] /*<>*/ ; default: - var rest$13 = param[1]; - /*<>*/ return [14, - erase_rel(rest$13)]; + var rest$13 = /*<>*/ param[1]; + /*<>*/ return [14, + erase_rel(rest$13)] /*<>*/ ; } - } + /*<>*/ } function concat_fmtty(fmtty1, fmtty2){ /*<>*/ if(typeof fmtty1 === "number") /*<>*/ return fmtty2; - switch(fmtty1[0]){ + /*<>*/ switch(fmtty1[0]){ case 0: var rest = fmtty1[1]; - /*<>*/ return [0, - concat_fmtty(rest, fmtty2)]; + /*<>*/ return [0, + concat_fmtty(rest, fmtty2)] /*<>*/ ; case 1: - var rest$0 = fmtty1[1]; - /*<>*/ return [1, - concat_fmtty(rest$0, fmtty2)]; + var rest$0 = /*<>*/ fmtty1[1]; + /*<>*/ return [1, + concat_fmtty(rest$0, fmtty2)] /*<>*/ ; case 2: - var rest$1 = fmtty1[1]; - /*<>*/ return [2, - concat_fmtty(rest$1, fmtty2)]; + var rest$1 = /*<>*/ fmtty1[1]; + /*<>*/ return [2, + concat_fmtty(rest$1, fmtty2)] /*<>*/ ; case 3: - var rest$2 = fmtty1[1]; - /*<>*/ return [3, - concat_fmtty(rest$2, fmtty2)]; + var rest$2 = /*<>*/ fmtty1[1]; + /*<>*/ return [3, + concat_fmtty(rest$2, fmtty2)] /*<>*/ ; case 4: - var rest$3 = fmtty1[1]; - /*<>*/ return [4, - concat_fmtty(rest$3, fmtty2)]; + var rest$3 = /*<>*/ fmtty1[1]; + /*<>*/ return [4, + concat_fmtty(rest$3, fmtty2)] /*<>*/ ; case 5: - var rest$4 = fmtty1[1]; - /*<>*/ return [5, - concat_fmtty(rest$4, fmtty2)]; + var rest$4 = /*<>*/ fmtty1[1]; + /*<>*/ return [5, + concat_fmtty(rest$4, fmtty2)] /*<>*/ ; case 6: - var rest$5 = fmtty1[1]; - /*<>*/ return [6, - concat_fmtty(rest$5, fmtty2)]; + var rest$5 = /*<>*/ fmtty1[1]; + /*<>*/ return [6, + concat_fmtty(rest$5, fmtty2)] /*<>*/ ; case 7: - var rest$6 = fmtty1[1]; - /*<>*/ return [7, - concat_fmtty(rest$6, fmtty2)]; + var rest$6 = /*<>*/ fmtty1[1]; + /*<>*/ return [7, + concat_fmtty(rest$6, fmtty2)] /*<>*/ ; case 8: - var rest$7 = fmtty1[2], ty = fmtty1[1]; - /*<>*/ return [8, + var + rest$7 = /*<>*/ fmtty1[2], + ty = fmtty1[1]; + /*<>*/ return [8, ty, - concat_fmtty(rest$7, fmtty2)]; + concat_fmtty(rest$7, fmtty2)] /*<>*/ ; case 9: - var rest$8 = fmtty1[3], ty2 = fmtty1[2], ty1 = fmtty1[1]; - /*<>*/ return [9, + var + rest$8 = /*<>*/ fmtty1[3], + ty2 = fmtty1[2], + ty1 = fmtty1[1]; + /*<>*/ return [9, ty1, ty2, - concat_fmtty(rest$8, fmtty2)]; + concat_fmtty(rest$8, fmtty2)] /*<>*/ ; case 10: - var rest$9 = fmtty1[1]; - /*<>*/ return [10, - concat_fmtty(rest$9, fmtty2)]; + var rest$9 = /*<>*/ fmtty1[1]; + /*<>*/ return [10, + concat_fmtty(rest$9, fmtty2)] /*<>*/ ; case 11: - var rest$10 = fmtty1[1]; - /*<>*/ return [11, - concat_fmtty(rest$10, fmtty2)]; + var rest$10 = /*<>*/ fmtty1[1]; + /*<>*/ return [11, + concat_fmtty(rest$10, fmtty2)] /*<>*/ ; case 12: - var rest$11 = fmtty1[1]; - /*<>*/ return [12, - concat_fmtty(rest$11, fmtty2)]; + var rest$11 = /*<>*/ fmtty1[1]; + /*<>*/ return [12, + concat_fmtty(rest$11, fmtty2)] /*<>*/ ; case 13: - var rest$12 = fmtty1[1]; - /*<>*/ return [13, - concat_fmtty(rest$12, fmtty2)]; + var rest$12 = /*<>*/ fmtty1[1]; + /*<>*/ return [13, + concat_fmtty(rest$12, fmtty2)] /*<>*/ ; default: - var rest$13 = fmtty1[1]; - /*<>*/ return [14, - concat_fmtty(rest$13, fmtty2)]; + var rest$13 = /*<>*/ fmtty1[1]; + /*<>*/ return [14, + concat_fmtty(rest$13, fmtty2)] /*<>*/ ; } /*<>*/ } function concat_fmt(fmt1, fmt2){ /*<>*/ if(typeof fmt1 === "number") /*<>*/ return fmt2; - switch(fmt1[0]){ + /*<>*/ switch(fmt1[0]){ case 0: var rest = fmt1[1]; - /*<>*/ return [0, - concat_fmt(rest, fmt2)]; + /*<>*/ return [0, + concat_fmt(rest, fmt2)] /*<>*/ ; case 1: - var rest$0 = fmt1[1]; - /*<>*/ return [1, - concat_fmt(rest$0, fmt2)]; + var rest$0 = /*<>*/ fmt1[1]; + /*<>*/ return [1, + concat_fmt(rest$0, fmt2)] /*<>*/ ; case 2: - var rest$1 = fmt1[2], pad = fmt1[1]; - /*<>*/ return [2, + var + rest$1 = /*<>*/ fmt1[2], + pad = fmt1[1]; + /*<>*/ return [2, pad, - concat_fmt(rest$1, fmt2)]; + concat_fmt(rest$1, fmt2)] /*<>*/ ; case 3: - var rest$2 = fmt1[2], pad$0 = fmt1[1]; - /*<>*/ return [3, + var + rest$2 = /*<>*/ fmt1[2], + pad$0 = fmt1[1]; + /*<>*/ return [3, pad$0, - concat_fmt(rest$2, fmt2)]; + concat_fmt(rest$2, fmt2)] /*<>*/ ; case 4: - var rest$3 = fmt1[4], prec = fmt1[3], pad$1 = fmt1[2], iconv = fmt1[1]; - /*<>*/ return [4, + var + rest$3 = /*<>*/ fmt1[4], + prec = fmt1[3], + pad$1 = fmt1[2], + iconv = fmt1[1]; + /*<>*/ return [4, iconv, pad$1, prec, - concat_fmt(rest$3, fmt2)]; + concat_fmt(rest$3, fmt2)] /*<>*/ ; case 5: var - rest$4 = fmt1[4], + rest$4 = /*<>*/ fmt1[4], prec$0 = fmt1[3], pad$2 = fmt1[2], iconv$0 = fmt1[1]; - /*<>*/ return [5, + /*<>*/ return [5, iconv$0, pad$2, prec$0, - concat_fmt(rest$4, fmt2)]; + concat_fmt(rest$4, fmt2)] /*<>*/ ; case 6: var - rest$5 = fmt1[4], + rest$5 = /*<>*/ fmt1[4], prec$1 = fmt1[3], pad$3 = fmt1[2], iconv$1 = fmt1[1]; - /*<>*/ return [6, + /*<>*/ return [6, iconv$1, pad$3, prec$1, - concat_fmt(rest$5, fmt2)]; + concat_fmt(rest$5, fmt2)] /*<>*/ ; case 7: var - rest$6 = fmt1[4], + rest$6 = /*<>*/ fmt1[4], prec$2 = fmt1[3], pad$4 = fmt1[2], iconv$2 = fmt1[1]; - /*<>*/ return [7, + /*<>*/ return [7, iconv$2, pad$4, prec$2, - concat_fmt(rest$6, fmt2)]; + concat_fmt(rest$6, fmt2)] /*<>*/ ; case 8: var - rest$7 = fmt1[4], + rest$7 = /*<>*/ fmt1[4], prec$3 = fmt1[3], pad$5 = fmt1[2], fconv = fmt1[1]; - /*<>*/ return [8, + /*<>*/ return [8, fconv, pad$5, prec$3, - concat_fmt(rest$7, fmt2)]; + concat_fmt(rest$7, fmt2)] /*<>*/ ; case 9: - var rest$8 = fmt1[2], pad$6 = fmt1[1]; - /*<>*/ return [9, + var + rest$8 = /*<>*/ fmt1[2], + pad$6 = fmt1[1]; + /*<>*/ return [9, pad$6, - concat_fmt(rest$8, fmt2)]; + concat_fmt(rest$8, fmt2)] /*<>*/ ; case 10: - var rest$9 = fmt1[1]; - /*<>*/ return [10, - concat_fmt(rest$9, fmt2)]; + var rest$9 = /*<>*/ fmt1[1]; + /*<>*/ return [10, + concat_fmt(rest$9, fmt2)] /*<>*/ ; case 11: - var rest$10 = fmt1[2], str = fmt1[1]; - /*<>*/ return [11, + var + rest$10 = /*<>*/ fmt1[2], + str = fmt1[1]; + /*<>*/ return [11, str, - concat_fmt(rest$10, fmt2)]; + concat_fmt(rest$10, fmt2)] /*<>*/ ; case 12: - var rest$11 = fmt1[2], chr = fmt1[1]; - /*<>*/ return [12, + var + rest$11 = /*<>*/ fmt1[2], + chr = fmt1[1]; + /*<>*/ return [12, chr, - concat_fmt(rest$11, fmt2)]; + concat_fmt(rest$11, fmt2)] /*<>*/ ; case 13: - var rest$12 = fmt1[3], fmtty = fmt1[2], pad$7 = fmt1[1]; - /*<>*/ return [13, + var + rest$12 = /*<>*/ fmt1[3], + fmtty = fmt1[2], + pad$7 = fmt1[1]; + /*<>*/ return [13, pad$7, fmtty, - concat_fmt(rest$12, fmt2)]; + concat_fmt(rest$12, fmt2)] /*<>*/ ; case 14: - var rest$13 = fmt1[3], fmtty$0 = fmt1[2], pad$8 = fmt1[1]; - /*<>*/ return [14, + var + rest$13 = /*<>*/ fmt1[3], + fmtty$0 = fmt1[2], + pad$8 = fmt1[1]; + /*<>*/ return [14, pad$8, fmtty$0, - concat_fmt(rest$13, fmt2)]; + concat_fmt(rest$13, fmt2)] /*<>*/ ; case 15: - var rest$14 = fmt1[1]; - /*<>*/ return [15, - concat_fmt(rest$14, fmt2)]; + var rest$14 = /*<>*/ fmt1[1]; + /*<>*/ return [15, + concat_fmt(rest$14, fmt2)] /*<>*/ ; case 16: - var rest$15 = fmt1[1]; - /*<>*/ return [16, - concat_fmt(rest$15, fmt2)]; + var rest$15 = /*<>*/ fmt1[1]; + /*<>*/ return [16, + concat_fmt(rest$15, fmt2)] /*<>*/ ; case 17: - var rest$16 = fmt1[2], fmting_lit = fmt1[1]; - /*<>*/ return [17, + var + rest$16 = /*<>*/ fmt1[2], + fmting_lit = fmt1[1]; + /*<>*/ return [17, fmting_lit, - concat_fmt(rest$16, fmt2)]; + concat_fmt(rest$16, fmt2)] /*<>*/ ; case 18: - var rest$17 = fmt1[2], fmting_gen = fmt1[1]; - /*<>*/ return [18, + var + rest$17 = /*<>*/ fmt1[2], + fmting_gen = fmt1[1]; + /*<>*/ return [18, fmting_gen, - concat_fmt(rest$17, fmt2)]; + concat_fmt(rest$17, fmt2)] /*<>*/ ; case 19: - var rest$18 = fmt1[1]; - /*<>*/ return [19, - concat_fmt(rest$18, fmt2)]; + var rest$18 = /*<>*/ fmt1[1]; + /*<>*/ return [19, + concat_fmt(rest$18, fmt2)] /*<>*/ ; case 20: - var rest$19 = fmt1[3], char_set = fmt1[2], width_opt = fmt1[1]; - /*<>*/ return [20, + var + rest$19 = /*<>*/ fmt1[3], + char_set = fmt1[2], + width_opt = fmt1[1]; + /*<>*/ return [20, width_opt, char_set, - concat_fmt(rest$19, fmt2)]; + concat_fmt(rest$19, fmt2)] /*<>*/ ; case 21: - var rest$20 = fmt1[2], counter = fmt1[1]; - /*<>*/ return [21, + var + rest$20 = /*<>*/ fmt1[2], + counter = fmt1[1]; + /*<>*/ return [21, counter, - concat_fmt(rest$20, fmt2)]; + concat_fmt(rest$20, fmt2)] /*<>*/ ; case 22: - var rest$21 = fmt1[1]; - /*<>*/ return [22, - concat_fmt(rest$21, fmt2)]; + var rest$21 = /*<>*/ fmt1[1]; + /*<>*/ return [22, + concat_fmt(rest$21, fmt2)] /*<>*/ ; case 23: - var rest$22 = fmt1[2], ign = fmt1[1]; - /*<>*/ return [23, + var + rest$22 = /*<>*/ fmt1[2], + ign = fmt1[1]; + /*<>*/ return [23, ign, - concat_fmt(rest$22, fmt2)]; + concat_fmt(rest$22, fmt2)] /*<>*/ ; default: - var rest$23 = fmt1[3], f = fmt1[2], arity = fmt1[1]; - /*<>*/ return [24, + var + rest$23 = /*<>*/ fmt1[3], + f = fmt1[2], + arity = fmt1[1]; + /*<>*/ return [24, arity, f, - concat_fmt(rest$23, fmt2)]; + concat_fmt(rest$23, fmt2)] /*<>*/ ; } /*<>*/ } - var CamlinternalFormatBasics = [0, concat_fmtty, erase_rel, concat_fmt]; + var + CamlinternalFormatBasics = + /*<>*/ [0, concat_fmtty, erase_rel, concat_fmt]; runtime.caml_register_global (0, CamlinternalFormatBasics, "CamlinternalFormatBasics"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib @@ -337,12 +382,12 @@ caml_string_of_bytes = runtime.caml_string_of_bytes, caml_sys_open = runtime.caml_sys_open, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -363,53 +408,50 @@ Sys_blocked_io = global_data.Sys_blocked_io, Undefined_recursive_module = global_data.Undefined_recursive_module; function failwith(s){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Failure, s], 1); /*<>*/ } function invalid_arg(s){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Invalid_argument, s], 1); /*<>*/ } - /*<>*/ /*<>*/ var - Exit = [248, "Stdlib.Exit", runtime.caml_fresh_oo_id(0)]; + var + Exit = + /*<>*/ [248, + "Stdlib.Exit", + runtime.caml_fresh_oo_id(0)]; function min(x, y){ - /*<>*/ return /*<>*/ runtime.caml_lessequal - (x, y) - ? x - : y; - /*<>*/ } + /*<>*/ return runtime.caml_lessequal(x, y) ? x : y /*<>*/ ; + } function max(x, y){ - /*<>*/ return /*<>*/ runtime.caml_greaterequal - (x, y) - ? x - : y; - /*<>*/ } + /*<>*/ return runtime.caml_greaterequal(x, y) ? x : y /*<>*/ ; + } function abs(x){ - /*<>*/ return 0 <= x ? x : - x | 0; - /*<>*/ } + /*<>*/ return 0 <= x ? x : - x | 0 /*<>*/ ; + } function lnot(x){ /*<>*/ return x ^ -1; /*<>*/ } - /*<>*/ var - /*<>*/ infinity = + var + infinity = /*<>*/ caml_int64_float_of_bits (runtime.caml_int64_create_lo_mi_hi(0, 0, 32752)), - /*<>*/ neg_infinity = + neg_infinity = /*<>*/ caml_int64_float_of_bits (runtime.caml_int64_create_lo_mi_hi(0, 0, 65520)), - /*<>*/ nan = + nan = /*<>*/ caml_int64_float_of_bits (runtime.caml_int64_create_lo_mi_hi(1, 0, 32760)), - /*<>*/ max_float = + max_float = /*<>*/ caml_int64_float_of_bits (runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32751)), - /*<>*/ min_float = + min_float = /*<>*/ caml_int64_float_of_bits (runtime.caml_int64_create_lo_mi_hi(0, 0, 16)), - /*<>*/ epsilon_float = + epsilon_float = /*<>*/ caml_int64_float_of_bits (runtime.caml_int64_create_lo_mi_hi(0, 0, 15536)), - symbol_concat = caml_string_concat, + symbol_concat = /*<>*/ caml_string_concat, cst_char_of_int = "char_of_int", cst_true = cst_true$0, cst_false = cst_false$0, @@ -419,114 +461,115 @@ function char_of_int(n){ /*<>*/ if(0 <= n && 255 >= n) /*<>*/ return n; - /*<>*/ return invalid_arg(cst_char_of_int); - /*<>*/ } + /*<>*/ return invalid_arg(cst_char_of_int) /*<>*/ ; + } function string_of_bool(b){ - /*<>*/ return b ? cst_true : cst_false; - /*<>*/ } + /*<>*/ return b ? cst_true : cst_false /*<>*/ ; + } function bool_of_string(param){ /*<>*/ return param !== cst_false$0 - ? param !== cst_true$0 ? invalid_arg(cst_bool_of_string) : 1 - : 0; - /*<>*/ } + ? param + !== cst_true$0 + ? /*<>*/ invalid_arg(cst_bool_of_string) + : 1 + : 0 /*<>*/ ; + } function bool_of_string_opt(param){ /*<>*/ return param !== cst_false$0 ? param !== cst_true$0 ? 0 : _a_ - : _b_; - /*<>*/ } - function string_of_int(n){ - /*<>*/ return "" + n; - /*<>*/ } + : _b_ /*<>*/ ; + } + function string_of_int(n){ /*<>*/ return "" + n;} function int_of_string_opt(s){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _w_ = [0, /*<>*/ caml_int_of_string(s)]; - /*<>*/ return _w_; + var _w_ = /*<>*/ [0, caml_int_of_string(s)]; + return _w_; } catch(_x_){ - var _v_ = caml_wrap_exception(_x_); + var _v_ = /*<>*/ caml_wrap_exception(_x_); if(_v_[1] === Failure) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_v_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_v_, 0); } /*<>*/ } function valid_float_lexem(s1){ - /*<>*/ var l = caml_ml_string_length(s1), i = 0; - /*<>*/ for(;;){ - if(l <= i) return s1 + "."; - /*<>*/ /*<>*/ var - match = /*<>*/ runtime.caml_string_get(s1, i); + var + l = /*<>*/ caml_ml_string_length(s1), + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(l <= i) + /*<>*/ return s1 + "."; + var match = /*<>*/ runtime.caml_string_get(s1, i); a: { - if(48 <= match){if(58 > match) break a;} else if(45 === match) break a; - /*<>*/ return s1; + /*<>*/ if(48 <= match){ + if(58 > match) break a; + } + else if(45 === match) break a; + /*<>*/ return s1; } - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function string_of_float(f){ - /*<>*/ return valid_float_lexem - ( /*<>*/ runtime.caml_format_float("%.12g", f)); - /*<>*/ } + /*<>*/ return /*<>*/ valid_float_lexem + ( /*<>*/ runtime.caml_format_float("%.12g", f)) /*<>*/ ; + } function float_of_string_opt(s){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _t_ = [0, /*<>*/ caml_float_of_string(s)]; - /*<>*/ return _t_; + var _t_ = /*<>*/ [0, caml_float_of_string(s)]; + return _t_; } catch(_u_){ - var _s_ = caml_wrap_exception(_u_); + var _s_ = /*<>*/ caml_wrap_exception(_u_); if(_s_[1] === Failure) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_s_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_s_, 0); } /*<>*/ } function symbol(l1, l2){ /*<>*/ if(! l1) /*<>*/ return l2; - var _q_ = l1[2], h1 = l1[1]; + var _q_ = /*<>*/ l1[2], h1 = l1[1]; if(! _q_) /*<>*/ return [0, h1, l2]; - var match = _q_[2], h2 = _q_[1]; + var match = /*<>*/ _q_[2], h2 = _q_[1]; if(! match) /*<>*/ return [0, h1, [0, h2, l2]]; - /*<>*/ var - tl = match[2], + var + tl = /*<>*/ match[2], h3 = match[1], - /*<>*/ block = [0, h3, 24029], - dst = block, + block = /*<>*/ [0, h3, 24029], + dst = /*<>*/ block, offset = 1, l1$0 = tl; - /*<>*/ for(;;){ - if(l1$0){ + for(;;){ + /*<>*/ if(l1$0){ var _r_ = l1$0[2], h1$0 = l1$0[1]; if(_r_){ var match$0 = _r_[2], h2$0 = _r_[1]; if(match$0){ - /*<>*/ var + var tl$0 = match$0[2], h3$0 = match$0[1], - /*<>*/ dst$0 = [0, h3$0, 24029]; + dst$0 = /*<>*/ [0, h3$0, 24029]; dst[1 + offset] = [0, h1$0, [0, h2$0, dst$0]]; dst = dst$0; offset = 1; l1$0 = tl$0; continue; } - dst[1 + offset] = [0, h1$0, [0, h2$0, l2]]; + /*<>*/ dst[1 + offset] = [0, h1$0, [0, h2$0, l2]]; } else - dst[1 + offset] = [0, h1$0, l2]; + /*<>*/ dst[1 + offset] = [0, h1$0, l2]; } else - dst[1 + offset] = l2; - /*<>*/ return [0, h1, [0, h2, block]]; - } - /*<>*/ } - /*<>*/ var - /*<>*/ stdin = - /*<>*/ caml_ml_open_descriptor_in(0), - /*<>*/ stdout = - /*<>*/ caml_ml_open_descriptor_out(1), - /*<>*/ stderr = - /*<>*/ caml_ml_open_descriptor_out(2), - _c_ = [0, 1, [0, 3, [0, 4, [0, 7, 0]]]], + /*<>*/ dst[1 + offset] = l2; + /*<>*/ return [0, h1, [0, h2, block]]; + } + } + var + stdin = /*<>*/ caml_ml_open_descriptor_in(0), + stdout = /*<>*/ caml_ml_open_descriptor_out(1), + stderr = /*<>*/ caml_ml_open_descriptor_out(2), + _c_ = /*<>*/ [0, 1, [0, 3, [0, 4, [0, 7, 0]]]], _d_ = [0, 1, [0, 3, [0, 4, [0, 6, 0]]]], cst_output = "output", cst_output_substring = "output_substring", @@ -535,111 +578,103 @@ cst_input = "input", cst_really_input = "really_input"; function open_out_gen(mode, perm, name){ - /*<>*/ /*<>*/ var + var c = - /*<>*/ caml_ml_open_descriptor_out + /*<>*/ /*<>*/ caml_ml_open_descriptor_out ( /*<>*/ caml_sys_open(name, mode, perm)); - /*<>*/ /*<>*/ caml_ml_set_channel_name - (c, name); - /*<>*/ return c; + /*<>*/ caml_ml_set_channel_name(c, name); + /*<>*/ return c; /*<>*/ } function open_out(name){ - /*<>*/ return open_out_gen(_c_, 438, name); - /*<>*/ } + /*<>*/ return open_out_gen(_c_, 438, name) /*<>*/ ; + } function open_out_bin(name){ - /*<>*/ return open_out_gen(_d_, 438, name); - /*<>*/ } + /*<>*/ return open_out_gen(_d_, 438, name) /*<>*/ ; + } function flush_all(param){ - /*<>*/ var - param$0 = /*<>*/ runtime.caml_ml_out_channels_list(0); - /*<>*/ for(;;){ - if(! param$0) /*<>*/ return 0; - var l = param$0[2], a = param$0[1]; - /*<>*/ try{ - /*<>*/ /*<>*/ caml_ml_flush(a); - } + var + param$0 = + /*<>*/ /*<>*/ runtime.caml_ml_out_channels_list + (0); + /*<>*/ for(;;){ + /*<>*/ if(! param$0) + /*<>*/ return 0; + var l = /*<>*/ param$0[2], a = param$0[1]; + /*<>*/ try{ /*<>*/ caml_ml_flush(a);} catch(_p_){ - var _o_ = caml_wrap_exception(_p_); + var _o_ = /*<>*/ caml_wrap_exception(_p_); if(_o_[1] !== Sys_error) throw caml_maybe_attach_backtrace(_o_, 0); } - param$0 = l; + /*<>*/ param$0 = l; } /*<>*/ } function output_bytes(oc, s){ - /*<>*/ return /*<>*/ caml_ml_output_bytes - (oc, s, 0, caml_ml_bytes_length(s)); - /*<>*/ } + /*<>*/ return caml_ml_output_bytes + (oc, s, 0, caml_ml_bytes_length(s)) /*<>*/ ; + } function output_string(oc, s){ - /*<>*/ return /*<>*/ caml_ml_output - (oc, s, 0, caml_ml_string_length(s)); - /*<>*/ } + /*<>*/ return caml_ml_output + (oc, s, 0, caml_ml_string_length(s)) /*<>*/ ; + } function output(oc, s, ofs, len){ /*<>*/ if (0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - /*<>*/ return /*<>*/ caml_ml_output_bytes - (oc, s, ofs, len); - /*<>*/ return invalid_arg(cst_output); - /*<>*/ } + /*<>*/ return caml_ml_output_bytes(oc, s, ofs, len) /*<>*/ ; + /*<>*/ return invalid_arg(cst_output) /*<>*/ ; + } function output_substring(oc, s, ofs, len){ /*<>*/ if (0 <= ofs && 0 <= len && (caml_ml_string_length(s) - len | 0) >= ofs) - /*<>*/ return /*<>*/ caml_ml_output - (oc, s, ofs, len); - /*<>*/ return invalid_arg(cst_output_substring); - /*<>*/ } + /*<>*/ return caml_ml_output(oc, s, ofs, len) /*<>*/ ; + /*<>*/ return invalid_arg(cst_output_substring) /*<>*/ ; + } function output_value(chan, v){ - /*<>*/ return /*<>*/ runtime.caml_output_value - (chan, v, 0); - /*<>*/ } + /*<>*/ return runtime.caml_output_value(chan, v, 0) /*<>*/ ; + } function close_out(oc){ - /*<>*/ /*<>*/ caml_ml_flush(oc); - /*<>*/ return /*<>*/ caml_ml_close_channel - (oc); - /*<>*/ } + /*<>*/ caml_ml_flush(oc); + /*<>*/ return caml_ml_close_channel(oc) /*<>*/ ; + } function close_out_noerr(oc){ - /*<>*/ try{ - /*<>*/ /*<>*/ caml_ml_flush(oc); - } + /*<>*/ try{ /*<>*/ caml_ml_flush(oc);} catch(_n_){} /*<>*/ try{ - /*<>*/ /*<>*/ var - _l_ = /*<>*/ caml_ml_close_channel(oc); - /*<>*/ return _l_; + var _l_ = /*<>*/ caml_ml_close_channel(oc); + return _l_; } catch(_m_){ /*<>*/ return 0;} /*<>*/ } function open_in_gen(mode, perm, name){ - /*<>*/ /*<>*/ var + var c = - /*<>*/ caml_ml_open_descriptor_in + /*<>*/ /*<>*/ caml_ml_open_descriptor_in ( /*<>*/ caml_sys_open(name, mode, perm)); - /*<>*/ /*<>*/ caml_ml_set_channel_name - (c, name); - /*<>*/ return c; + /*<>*/ caml_ml_set_channel_name(c, name); + /*<>*/ return c; /*<>*/ } function open_in(name){ - /*<>*/ return open_in_gen(_e_, 0, name); - /*<>*/ } + /*<>*/ return open_in_gen(_e_, 0, name) /*<>*/ ; + } function open_in_bin(name){ - /*<>*/ return open_in_gen(_f_, 0, name); - /*<>*/ } + /*<>*/ return open_in_gen(_f_, 0, name) /*<>*/ ; + } function input(ic, s, ofs, len){ /*<>*/ if (0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - /*<>*/ return /*<>*/ caml_ml_input - (ic, s, ofs, len); - /*<>*/ return invalid_arg(cst_input); - /*<>*/ } + /*<>*/ return caml_ml_input(ic, s, ofs, len) /*<>*/ ; + /*<>*/ return invalid_arg(cst_input) /*<>*/ ; + } function unsafe_really_input(ic, s, ofs, len){ - /*<>*/ var ofs$0 = ofs, len$0 = len; - /*<>*/ for(;;){ + var ofs$0 = /*<>*/ ofs, len$0 = len; + for(;;){ if(0 >= len$0) /*<>*/ return 0; - /*<>*/ /*<>*/ var - r = /*<>*/ caml_ml_input(ic, s, ofs$0, len$0); + var r = /*<>*/ caml_ml_input(ic, s, ofs$0, len$0); /*<>*/ if(0 === r) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (End_of_file, 1); - var len$1 = len$0 - r | 0, ofs$1 = ofs$0 + r | 0; + var + len$1 = /*<>*/ len$0 - r | 0, + ofs$1 = ofs$0 + r | 0; ofs$0 = ofs$1; len$0 = len$1; } @@ -647,223 +682,205 @@ function really_input(ic, s, ofs, len){ /*<>*/ if (0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - /*<>*/ return unsafe_really_input(ic, s, ofs, len); - /*<>*/ return invalid_arg(cst_really_input); - /*<>*/ } + /*<>*/ return unsafe_really_input(ic, s, ofs, len) /*<>*/ ; + /*<>*/ return invalid_arg(cst_really_input) /*<>*/ ; + } function really_input_string(ic, len){ - /*<>*/ /*<>*/ var - s = /*<>*/ caml_create_bytes(len); + var s = /*<>*/ caml_create_bytes(len); /*<>*/ really_input(ic, s, 0, len); - return caml_string_of_bytes(s); - /*<>*/ } + /*<>*/ return caml_string_of_bytes(s) /*<>*/ ; + } function input_line(chan){ - /*<>*/ function build_result(buf, pos, param){ - var pos$0 = pos, param$0 = param; + function build_result(buf, pos, param){ + var pos$0 = /*<>*/ pos, param$0 = param; for(;;){ if(! param$0) /*<>*/ return buf; - /*<>*/ var - tl = param$0[2], + var + tl = /*<>*/ param$0[2], hd = param$0[1], - /*<>*/ len = - /*<>*/ caml_ml_bytes_length(hd); - /*<>*/ /*<>*/ runtime.caml_blit_bytes + len = /*<>*/ caml_ml_bytes_length(hd); + /*<>*/ runtime.caml_blit_bytes (hd, 0, buf, pos$0 - len | 0, len); - var pos$1 = pos$0 - len | 0; + var pos$1 = /*<>*/ pos$0 - len | 0; pos$0 = pos$1; param$0 = tl; } - } - var accu = 0, len = 0; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - n = /*<>*/ runtime.caml_ml_input_scan_line(chan); + /*<>*/ } + var accu = /*<>*/ 0, len = 0; + for(;;){ + var n = /*<>*/ runtime.caml_ml_input_scan_line(chan); /*<>*/ if(0 === n){ - if(! accu) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! accu) + /*<>*/ throw caml_maybe_attach_backtrace (End_of_file, 1); var _k_ = - build_result + /*<>*/ build_result ( /*<>*/ caml_create_bytes(len), len, accu); } else{ - if(0 >= n){ - /*<>*/ /*<>*/ var - beg = /*<>*/ caml_create_bytes(- n | 0); - /*<>*/ /*<>*/ caml_ml_input - (chan, beg, 0, - n | 0); - /*<>*/ var - len$1 = len - n | 0, - /*<>*/ accu$0 = [0, beg, accu]; + /*<>*/ if(0 >= n){ + var beg = /*<>*/ caml_create_bytes(- n | 0); + /*<>*/ caml_ml_input(chan, beg, 0, - n | 0); + var + len$1 = /*<>*/ len - n | 0, + accu$0 = [0, beg, accu]; accu = accu$0; len = len$1; continue; } - /*<>*/ /*<>*/ var - res = /*<>*/ caml_create_bytes(n - 1 | 0); - /*<>*/ /*<>*/ caml_ml_input - (chan, res, 0, n - 1 | 0); - /*<>*/ /*<>*/ caml_ml_input_char - (chan); - if(accu) + var res = /*<>*/ caml_create_bytes(n - 1 | 0); + /*<>*/ caml_ml_input(chan, res, 0, n - 1 | 0); + /*<>*/ caml_ml_input_char(chan); + /*<>*/ if(accu) var - len$0 = (len + n | 0) - 1 | 0, + len$0 = /*<>*/ (len + n | 0) - 1 | 0, _k_ = - build_result + /*<>*/ build_result ( /*<>*/ caml_create_bytes(len$0), len$0, [0, res, accu]); else - var _k_ = res; + var _k_ = /*<>*/ res; } - /*<>*/ return /*<>*/ caml_string_of_bytes - (_k_); + /*<>*/ return caml_string_of_bytes(_k_); } - /*<>*/ } + } function close_in_noerr(ic){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _i_ = /*<>*/ caml_ml_close_channel(ic); - /*<>*/ return _i_; + var _i_ = /*<>*/ caml_ml_close_channel(ic); + return _i_; } catch(_j_){ /*<>*/ return 0;} /*<>*/ } function print_char(c){ - /*<>*/ return /*<>*/ caml_ml_output_char - (stdout, c); - /*<>*/ } + /*<>*/ return caml_ml_output_char(stdout, c) /*<>*/ ; + } function print_string(s){ - /*<>*/ return output_string(stdout, s); - /*<>*/ } + /*<>*/ return output_string(stdout, s) /*<>*/ ; + } function print_bytes(s){ - /*<>*/ return output_bytes(stdout, s); - /*<>*/ } + /*<>*/ return output_bytes(stdout, s) /*<>*/ ; + } function print_int(i){ - /*<>*/ return output_string(stdout, "" + i); - /*<>*/ } + /*<>*/ return output_string(stdout, "" + i); + } function print_float(f){ - /*<>*/ return output_string(stdout, string_of_float(f)); - /*<>*/ } + /*<>*/ return /*<>*/ output_string + (stdout, /*<>*/ string_of_float(f)) /*<>*/ ; + } function print_endline(s){ /*<>*/ output_string(stdout, s); - /*<>*/ /*<>*/ caml_ml_output_char - (stdout, 10); - /*<>*/ return /*<>*/ caml_ml_flush - (stdout); - /*<>*/ } + /*<>*/ caml_ml_output_char(stdout, 10); + /*<>*/ return caml_ml_flush(stdout) /*<>*/ ; + } function print_newline(param){ - /*<>*/ /*<>*/ caml_ml_output_char - (stdout, 10); - /*<>*/ return /*<>*/ caml_ml_flush - (stdout); - /*<>*/ } + /*<>*/ caml_ml_output_char(stdout, 10); + /*<>*/ return caml_ml_flush(stdout) /*<>*/ ; + } function prerr_char(c){ - /*<>*/ return /*<>*/ caml_ml_output_char - (stderr, c); - /*<>*/ } + /*<>*/ return caml_ml_output_char(stderr, c) /*<>*/ ; + } function prerr_string(s){ - /*<>*/ return output_string(stderr, s); - /*<>*/ } + /*<>*/ return output_string(stderr, s) /*<>*/ ; + } function prerr_bytes(s){ - /*<>*/ return output_bytes(stderr, s); - /*<>*/ } + /*<>*/ return output_bytes(stderr, s) /*<>*/ ; + } function prerr_int(i){ - /*<>*/ return output_string(stderr, "" + i); - /*<>*/ } + /*<>*/ return output_string(stderr, "" + i); + } function prerr_float(f){ - /*<>*/ return output_string(stderr, string_of_float(f)); - /*<>*/ } + /*<>*/ return /*<>*/ output_string + (stderr, /*<>*/ string_of_float(f)) /*<>*/ ; + } function prerr_endline(s){ /*<>*/ output_string(stderr, s); - /*<>*/ /*<>*/ caml_ml_output_char - (stderr, 10); - /*<>*/ return /*<>*/ caml_ml_flush - (stderr); - /*<>*/ } + /*<>*/ caml_ml_output_char(stderr, 10); + /*<>*/ return caml_ml_flush(stderr) /*<>*/ ; + } function prerr_newline(param){ - /*<>*/ /*<>*/ caml_ml_output_char - (stderr, 10); - /*<>*/ return /*<>*/ caml_ml_flush - (stderr); - /*<>*/ } + /*<>*/ caml_ml_output_char(stderr, 10); + /*<>*/ return caml_ml_flush(stderr) /*<>*/ ; + } function read_line(param){ - /*<>*/ /*<>*/ caml_ml_flush(stdout); - /*<>*/ return input_line(stdin); - /*<>*/ } + /*<>*/ caml_ml_flush(stdout); + /*<>*/ return input_line(stdin) /*<>*/ ; + } function read_int(param){ - /*<>*/ return /*<>*/ caml_int_of_string - (read_line(0)); - /*<>*/ } + /*<>*/ return /*<>*/ caml_int_of_string + ( /*<>*/ read_line(0)) /*<>*/ ; + } function read_int_opt(param){ - /*<>*/ return int_of_string_opt(read_line(0)); - /*<>*/ } + /*<>*/ return /*<>*/ int_of_string_opt + ( /*<>*/ read_line(0)) /*<>*/ ; + } function read_float(param){ - /*<>*/ return /*<>*/ caml_float_of_string - (read_line(0)); - /*<>*/ } + /*<>*/ return /*<>*/ caml_float_of_string + ( /*<>*/ read_line(0)) /*<>*/ ; + } function read_float_opt(param){ - /*<>*/ return float_of_string_opt(read_line(0)); - /*<>*/ } + /*<>*/ return /*<>*/ float_of_string_opt + ( /*<>*/ read_line(0)) /*<>*/ ; + } function string_of_format(param){ - var str = param[2]; + var str = /*<>*/ param[2]; /*<>*/ return str; - } + /*<>*/ } function symbol$0(_h_, param){ var - str2 = param[2], + str2 = /*<>*/ param[2], fmt2 = param[1], str1 = _h_[2], fmt1 = _h_[1], - s2 = "%," + str2; - /*<>*/ return [0, - /*<>*/ caml_call2 - (CamlinternalFormatBasics[3], fmt1, fmt2), - str1 + s2]; - } - /*<>*/ /*<>*/ var - exit_function = [0, flush_all]; + s2 = /*<>*/ "%," + str2; + /*<>*/ return [0, + caml_call2(CamlinternalFormatBasics[3], fmt1, fmt2), + str1 + s2] /*<>*/ ; + /*<>*/ } + var exit_function = /*<>*/ [0, flush_all]; function at_exit(f){ /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ f_yet_to_run = [0, 1], - /*<>*/ old_exit = - /*<>*/ caml_atomic_load(exit_function); - let f_yet_to_run$0 = f_yet_to_run, old_exit$0 = old_exit; - /*<>*/ var + var + f_yet_to_run = [0, 1], + old_exit = /*<>*/ caml_atomic_load(exit_function); + let + f_yet_to_run$0 = /*<>*/ f_yet_to_run, + old_exit$0 = old_exit; + var new_exit = function(param){ /*<>*/ if(caml_atomic_cas(f_yet_to_run$0, 1, 0)) - /*<>*/ /*<>*/ caml_call1(f, 0); - /*<>*/ return /*<>*/ caml_call1 - (old_exit$0, 0); - /*<>*/ }, - success = caml_atomic_cas(exit_function, old_exit, new_exit), - /*<>*/ _g_ = 1 - success; - if(! _g_) /*<>*/ return _g_; + /*<>*/ caml_call1(f, 0); + /*<>*/ return caml_call1(old_exit$0, 0) /*<>*/ ; + }, + success = + /*<>*/ caml_atomic_cas + (exit_function, old_exit, new_exit), + _g_ = /*<>*/ 1 - success; + if(! _g_) return _g_; } /*<>*/ } - /*<>*/ /*<>*/ var + var do_domain_local_at_exit = - [0, + /*<>*/ [0, function(param){ /*<>*/ return 0; /*<>*/ }]; function do_at_exit(param){ - /*<>*/ /*<>*/ caml_call1 - (do_domain_local_at_exit[1], 0); - /*<>*/ return /*<>*/ caml_call1 - (caml_atomic_load(exit_function), 0); - /*<>*/ } + /*<>*/ caml_call1(do_domain_local_at_exit[1], 0); + /*<>*/ return caml_call1 + (caml_atomic_load(exit_function), 0) /*<>*/ ; + } function exit(retcode){ /*<>*/ do_at_exit(0); - /*<>*/ return /*<>*/ runtime.caml_sys_exit - (retcode); - /*<>*/ } - /*<>*/ /*<>*/ runtime.caml_register_named_value + /*<>*/ return runtime.caml_sys_exit(retcode) /*<>*/ ; + } + /*<>*/ runtime.caml_register_named_value ("Pervasives.do_at_exit", do_at_exit); var Stdlib = - [0, + /*<>*/ [0, invalid_arg, failwith, Exit, @@ -983,12 +1000,12 @@ (function(globalThis){ "use strict"; var runtime = globalThis.jsoo_runtime; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -1000,70 +1017,62 @@ /*<>*/ return [1, v]; /*<>*/ } function is_left(param){ - /*<>*/ return 0 === param[0] ? 1 : 0; - /*<>*/ } + /*<>*/ return 0 === param[0] ? 1 : 0 /*<>*/ ; + } function is_right(param){ - /*<>*/ return 0 === param[0] ? 0 : 1; - /*<>*/ } + /*<>*/ return 0 === param[0] ? 0 : 1 /*<>*/ ; + } function find_left(param){ /*<>*/ if(0 !== param[0]) /*<>*/ return 0; - var v = param[1]; + var v = /*<>*/ param[1]; /*<>*/ return [0, v]; /*<>*/ } function find_right(param){ /*<>*/ if(0 === param[0]) /*<>*/ return 0; - var v = param[1]; + var v = /*<>*/ param[1]; /*<>*/ return [0, v]; /*<>*/ } function map_left(f, e){ - /*<>*/ if(0 !== e[0]) /*<>*/ return e; - var v = e[1]; - /*<>*/ return [0, - /*<>*/ caml_call1(f, v)]; - } + /*<>*/ if(0 !== e[0]) /*<>*/ return e; + var v = /*<>*/ e[1]; + /*<>*/ return [0, caml_call1(f, v)] /*<>*/ ; + /*<>*/ } function map_right(f, e){ - /*<>*/ if(0 === e[0]) /*<>*/ return e; - var v = e[1]; - /*<>*/ return [1, - /*<>*/ caml_call1(f, v)]; + /*<>*/ if(0 === e[0]) /*<>*/ return e; + var v = /*<>*/ e[1]; + /*<>*/ return [1, caml_call1(f, v)] /*<>*/ ; } function map(left, right, param){ - /*<>*/ if(0 === param[0]){ + /*<>*/ if(0 === param[0]){ var v = param[1]; - /*<>*/ return [0, - /*<>*/ caml_call1(left, v)]; + /*<>*/ return [0, caml_call1(left, v)] /*<>*/ ; } - var v$0 = param[1]; - /*<>*/ return [1, - /*<>*/ caml_call1(right, v$0)]; + var v$0 = /*<>*/ param[1]; + /*<>*/ return [1, caml_call1(right, v$0)] /*<>*/ ; } function fold(left, right, param){ - /*<>*/ if(0 === param[0]){ + /*<>*/ if(0 === param[0]){ var v = param[1]; - /*<>*/ return /*<>*/ caml_call1 - (left, v); + /*<>*/ return caml_call1(left, v) /*<>*/ ; } - var v$0 = param[1]; - /*<>*/ return /*<>*/ caml_call1 - (right, v$0); + var v$0 = /*<>*/ param[1]; + /*<>*/ return caml_call1(right, v$0) /*<>*/ ; } function equal(left, right, e1, e2){ /*<>*/ if(0 === e1[0]){ var v1 = e1[1]; if(0 === e2[0]){ var v2 = e2[1]; - /*<>*/ return /*<>*/ caml_call2 - (left, v1, v2); + /*<>*/ return caml_call2(left, v1, v2) /*<>*/ ; } } else{ - var v1$0 = e1[1]; + var v1$0 = /*<>*/ e1[1]; if(0 !== e2[0]){ var v2$0 = e2[1]; - /*<>*/ return /*<>*/ caml_call2 - (right, v1$0, v2$0); + /*<>*/ return caml_call2(right, v1$0, v2$0) /*<>*/ ; } } /*<>*/ return 0; @@ -1072,19 +1081,17 @@ /*<>*/ if(0 === e1[0]){ var v1 = e1[1]; if(0 !== e2[0]) /*<>*/ return -1; - var v2 = e2[1]; - /*<>*/ return /*<>*/ caml_call2 - (left, v1, v2); + var v2 = /*<>*/ e2[1]; + /*<>*/ return caml_call2(left, v1, v2) /*<>*/ ; } - var v1$0 = e1[1]; + var v1$0 = /*<>*/ e1[1]; if(0 === e2[0]) /*<>*/ return 1; - var v2$0 = e2[1]; - /*<>*/ return /*<>*/ caml_call2 - (right, v1$0, v2$0); - /*<>*/ } + var v2$0 = /*<>*/ e2[1]; + /*<>*/ return caml_call2(right, v1$0, v2$0) /*<>*/ ; + } var Stdlib_Either = - [0, + /*<>*/ [0, left, right, is_left, @@ -1101,7 +1108,7 @@ compare]; runtime.caml_register_global(0, Stdlib_Either, "Stdlib__Either"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Sys @@ -1109,7 +1116,7 @@ (function (globalThis){ "use strict"; - /*<>*/ var + var runtime = globalThis.jsoo_runtime, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_wrap_exception = runtime.caml_wrap_exception, @@ -1117,10 +1124,10 @@ ocaml_version = "5.2.0", ocaml_release = [0, 5, 2, 0, 0], Stdlib = global_data.Stdlib, - /*<>*/ executable_name = + executable_name = /*<>*/ runtime.caml_sys_executable_name(0), os_type = /*<>*/ runtime.caml_sys_get_config(0)[1], - backend_type = [0, "js_of_ocaml"], + backend_type = /*<>*/ [0, "js_of_ocaml"], unix = runtime.caml_sys_const_ostype_unix(0), win32 = runtime.caml_sys_const_ostype_win32(0), cygwin = runtime.caml_sys_const_ostype_cygwin(0), @@ -1129,27 +1136,28 @@ max_string_length = (4 * max_array_length | 0) - 1 | 0; function getenv_opt(s){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _d_ = [0, /*<>*/ runtime.caml_sys_getenv(s)]; - /*<>*/ return _d_; + var _d_ = /*<>*/ [0, runtime.caml_sys_getenv(s)]; + return _d_; } catch(_e_){ - var _c_ = caml_wrap_exception(_e_); + var _c_ = /*<>*/ caml_wrap_exception(_e_); if(_c_ === Stdlib[8]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_c_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_c_, 0); } /*<>*/ } - /*<>*/ /*<>*/ var interactive = [0, 0]; - function set_signal(sig_num, sig_beh){ /*<>*/ return 0; - /*<>*/ } - /*<>*/ /*<>*/ var - Break = [248, "Stdlib.Sys.Break", runtime.caml_fresh_oo_id(0)]; + var interactive = /*<>*/ [0, 0]; + function set_signal(sig_num, sig_beh){ /*<>*/ return 0;} + var + Break = + /*<>*/ [248, + "Stdlib.Sys.Break", + runtime.caml_fresh_oo_id(0)]; function catch_break(on){ - /*<>*/ return on ? 0 : 0; - /*<>*/ } - function Make(_b_, _a_){ /*<>*/ return [0, 1];} - /*<>*/ var - /*<>*/ Immediate64 = [0, Make], + /*<>*/ return on ? 0 : 0 /*<>*/ ; + } + function Make(_b_, _a_){ /*<>*/ return [0, 1];} + var + Immediate64 = /*<>*/ [0, Make], Stdlib_Sys = [0, executable_name, @@ -1218,7 +1226,7 @@ cst_Obj_extension_constructor$1 = "Obj.extension_constructor", caml_check_bound = runtime.caml_check_bound, caml_obj_tag = runtime.caml_obj_tag; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); @@ -1231,44 +1239,41 @@ /*<>*/ return 1 - (typeof a === "number" ? 1 : 0); /*<>*/ } function double_field(x, i){ - /*<>*/ return caml_check_bound(x, i)[1 + i]; - /*<>*/ } + /*<>*/ return caml_check_bound(x, i)[1 + i] /*<>*/ ; + } function set_double_field(x, i, v){ /*<>*/ caml_check_bound(x, i)[1 + i] = v; - /*<>*/ return 0; - /*<>*/ } + /*<>*/ return 0; + } var - cst_Obj_extension_constructor = cst_Obj_extension_constructor$1, + cst_Obj_extension_constructor = /*<>*/ cst_Obj_extension_constructor$1, cst_Obj_extension_constructor$0 = cst_Obj_extension_constructor$1; function of_val(x){ - /*<>*/ a: + a: { - if + /*<>*/ if (is_block(x) - && /*<>*/ caml_obj_tag(x) !== 248 && 1 <= x.length - 1){var slot = x[1]; break a;} - var slot = x; + && /*<>*/ caml_obj_tag(x) !== 248 && 1 <= x.length - 1){var slot = /*<>*/ x[1]; break a;} + var slot = /*<>*/ x; } a: { - if(is_block(slot) && /*<>*/ caml_obj_tag(slot) === 248){var name = slot[1]; break a;} + /*<>*/ if + (is_block(slot) && /*<>*/ caml_obj_tag(slot) === 248){var name = /*<>*/ slot[1]; break a;} var name = - /*<>*/ caml_call1 + /*<>*/ /*<>*/ caml_call1 (Stdlib[1], cst_Obj_extension_constructor$0); } - return /*<>*/ caml_obj_tag(name) === 252 + /*<>*/ return caml_obj_tag(name) === 252 ? slot : /*<>*/ caml_call1 - (Stdlib[1], cst_Obj_extension_constructor); - /*<>*/ } - function name(slot){ - /*<>*/ return slot[1]; - /*<>*/ } - function id(slot){ - /*<>*/ return slot[2]; - /*<>*/ } - /*<>*/ var - /*<>*/ Extension_constructor = [0, of_val, name, id], + (Stdlib[1], cst_Obj_extension_constructor) /*<>*/ ; + } + function name(slot){ /*<>*/ return slot[1];} + function id(slot){ /*<>*/ return slot[2];} + var + Extension_constructor = /*<>*/ [0, of_val, name, id], max_ephe_length = Stdlib_Sys[13] - 2 | 0, cst_Obj_Ephemeron_create = "Obj.Ephemeron.create", cst_Obj_Ephemeron_get_key = "Obj.Ephemeron.get_key", @@ -1278,76 +1283,71 @@ cst_Obj_Ephemeron_check_key = "Obj.Ephemeron.check_key", cst_Obj_Ephemeron_blit_key = "Obj.Ephemeron.blit_key"; function create(l){ - /*<>*/ var - _f_ = 0 <= l ? 1 : 0, + var + _f_ = /*<>*/ 0 <= l ? 1 : 0, _g_ = _f_ ? l <= max_ephe_length ? 1 : 0 : _f_; if(1 - _g_) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Obj_Ephemeron_create); - /*<>*/ return /*<>*/ runtime.caml_ephe_create - (l); - /*<>*/ } + /*<>*/ caml_call1(Stdlib[1], cst_Obj_Ephemeron_create); + /*<>*/ return runtime.caml_ephe_create(l) /*<>*/ ; + } function length(x){ /*<>*/ return x.length - 3 | 0; /*<>*/ } function raise_if_invalid_offset(e, o, msg){ - /*<>*/ var - _c_ = 0 <= o ? 1 : 0, - _d_ = _c_ ? o < length(e) ? 1 : 0 : _c_, - _e_ = 1 - _d_; - return _e_ ? /*<>*/ caml_call1(Stdlib[1], msg) : _e_; - /*<>*/ } + var + _c_ = /*<>*/ 0 <= o ? 1 : 0, + _d_ = _c_ ? o < /*<>*/ length(e) ? 1 : 0 : _c_, + _e_ = /*<>*/ 1 - _d_; + return _e_ ? /*<>*/ caml_call1(Stdlib[1], msg) : _e_ /*<>*/ ; + } function get_key(e, o){ /*<>*/ raise_if_invalid_offset (e, o, cst_Obj_Ephemeron_get_key); - /*<>*/ return /*<>*/ runtime.caml_ephe_get_key - (e, o); - /*<>*/ } + /*<>*/ return runtime.caml_ephe_get_key(e, o) /*<>*/ ; + } function get_key_copy(e, o){ /*<>*/ raise_if_invalid_offset (e, o, cst_Obj_Ephemeron_get_key_copy); - /*<>*/ return /*<>*/ runtime.caml_ephe_get_key_copy - (e, o); - /*<>*/ } + /*<>*/ return runtime.caml_ephe_get_key_copy(e, o) /*<>*/ ; + } function set_key(e, o, x){ /*<>*/ raise_if_invalid_offset (e, o, cst_Obj_Ephemeron_set_key); - /*<>*/ return /*<>*/ runtime.caml_ephe_set_key - (e, o, x); - /*<>*/ } + /*<>*/ return runtime.caml_ephe_set_key(e, o, x) /*<>*/ ; + } function unset_key(e, o){ /*<>*/ raise_if_invalid_offset (e, o, cst_Obj_Ephemeron_unset_key); - /*<>*/ return /*<>*/ runtime.caml_ephe_unset_key - (e, o); - /*<>*/ } + /*<>*/ return runtime.caml_ephe_unset_key(e, o) /*<>*/ ; + } function check_key(e, o){ /*<>*/ raise_if_invalid_offset (e, o, cst_Obj_Ephemeron_check_key); - /*<>*/ return /*<>*/ runtime.caml_ephe_check_key - (e, o); - /*<>*/ } + /*<>*/ return runtime.caml_ephe_check_key(e, o) /*<>*/ ; + } function blit_key(e1, o1, e2, o2, l){ /*<>*/ if (0 <= l && 0 <= o1 - && (length(e1) - l | 0) >= o1 && 0 <= o2 && (length(e2) - l | 0) >= o2){ + && + ( /*<>*/ length(e1) - l | 0) >= o1 + && 0 <= o2 && ( /*<>*/ length(e2) - l | 0) >= o2){ var - _a_ = 0 !== l ? 1 : 0, + _a_ = /*<>*/ 0 !== l ? 1 : 0, _b_ = _a_ ? /*<>*/ runtime.caml_ephe_blit_key (e1, o1, e2, o2, l) : _a_; - /*<>*/ return _b_; + /*<>*/ return _b_; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Obj_Ephemeron_blit_key); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_Obj_Ephemeron_blit_key) /*<>*/ ; + } var Stdlib_Obj = - [0, + /*<>*/ [0, is_block, double_field, set_double_field, @@ -1388,7 +1388,7 @@ max_ephe_length]]; runtime.caml_register_global(11, Stdlib_Obj, "Stdlib__Obj"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Type @@ -1397,7 +1397,7 @@ (globalThis){ "use strict"; var runtime = globalThis.jsoo_runtime; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); @@ -1408,25 +1408,20 @@ cst_Id = "Id", _a_ = [0, 0]; function make(param){ - /*<>*/ /*<>*/ var - Id = [248, cst_Id, runtime.caml_fresh_oo_id(0)]; - /*<>*/ return [0, Id]; + var Id = /*<>*/ [248, cst_Id, runtime.caml_fresh_oo_id(0)]; + return [0, Id]; /*<>*/ } function uid(A){ - /*<>*/ /*<>*/ var - _b_ = /*<>*/ caml_call1(Stdlib_Obj[22][1], A[1]); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Obj[22][3], _b_); - /*<>*/ } + var _b_ = /*<>*/ caml_call1(Stdlib_Obj[22][1], A[1]); + /*<>*/ return caml_call1(Stdlib_Obj[22][3], _b_); + } function provably_equal(A, B){ - /*<>*/ return A[1] === B[1] ? _a_ : 0; - /*<>*/ } - /*<>*/ var - /*<>*/ Id = [0, make, uid, provably_equal], - Stdlib_Type = [0, Id]; + /*<>*/ return A[1] === B[1] ? _a_ : 0 /*<>*/ ; + } + var Id = /*<>*/ [0, make, uid, provably_equal], Stdlib_Type = [0, Id]; runtime.caml_register_global(3, Stdlib_Type, "Stdlib__Type"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Atomic @@ -1450,8 +1445,8 @@ /*<>*/ } var Stdlib_Atomic = - [0, - function(_a_){ /*<>*/ return [0, _a_];}, + /*<>*/ [0, + function(_a_){return [0, _a_];}, runtime.caml_atomic_make_contended, runtime.caml_atomic_load, set, @@ -1462,7 +1457,7 @@ decr]; runtime.caml_register_global(0, Stdlib_Atomic, "Stdlib__Atomic"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: CamlinternalLazy @@ -1475,76 +1470,70 @@ caml_lazy_update_to_forward = runtime.caml_lazy_update_to_forward, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ var + var global_data = runtime.caml_get_global_data(), Stdlib_Obj = global_data.Stdlib__Obj, - /*<>*/ Undefined = + Undefined = [248, "CamlinternalLazy.Undefined", runtime.caml_fresh_oo_id(0)]; function force_gen_lazy_block(only_val, blk){ - /*<>*/ if - (0 - !== - /*<>*/ runtime.caml_lazy_update_to_forcing - (blk)) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if + (0 !== runtime.caml_lazy_update_to_forcing(blk)) + /*<>*/ throw caml_maybe_attach_backtrace (Undefined, 1); - if(only_val){ - /*<>*/ /*<>*/ var - closure$0 = blk[1]; + /*<>*/ if(only_val){ + var closure$0 = /*<>*/ blk[1]; /*<>*/ blk[1] = 0; - /*<>*/ /*<>*/ var + var result$0 = /*<>*/ caml_call1(closure$0, 0); /*<>*/ blk[1] = result$0; - /*<>*/ /*<>*/ caml_lazy_update_to_forward - (blk); - /*<>*/ return result$0; + /*<>*/ caml_lazy_update_to_forward(blk); + /*<>*/ return result$0; } - /*<>*/ /*<>*/ var - closure = blk[1]; + var closure = /*<>*/ blk[1]; /*<>*/ blk[1] = 0; - /*<>*/ try{ - /*<>*/ /*<>*/ var - result = /*<>*/ caml_call1(closure, 0); + /*<>*/ try{ + var result = /*<>*/ caml_call1(closure, 0); /*<>*/ blk[1] = result; - /*<>*/ /*<>*/ caml_lazy_update_to_forward - (blk); - /*<>*/ return result; + /*<>*/ caml_lazy_update_to_forward(blk); + return result; } catch(e$0){ - var e = caml_wrap_exception(e$0); + var e = /*<>*/ caml_wrap_exception(e$0); /*<>*/ blk[1] = function(param){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (e, 0); /*<>*/ }; - /*<>*/ /*<>*/ runtime.caml_lazy_reset_to_lazy - (blk); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ runtime.caml_lazy_reset_to_lazy(blk); + /*<>*/ throw caml_maybe_attach_backtrace (e, 0); } /*<>*/ } function force_lazy_block(blk){ - /*<>*/ return force_gen_lazy_block(0, blk); - /*<>*/ } + /*<>*/ return force_gen_lazy_block(0, blk) /*<>*/ ; + } function force_gen(only_val, lzv){ - /*<>*/ /*<>*/ var - t = /*<>*/ runtime.caml_obj_tag(lzv); - if(t === Stdlib_Obj[12]) - /*<>*/ return lzv[1]; - if(t === Stdlib_Obj[6]) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var t = /*<>*/ runtime.caml_obj_tag(lzv); + /*<>*/ if(t === Stdlib_Obj[12]) + /*<>*/ return lzv[1]; + /*<>*/ if(t === Stdlib_Obj[6]) + /*<>*/ throw caml_maybe_attach_backtrace (Undefined, 1); - return t !== Stdlib_Obj[8] ? lzv : force_gen_lazy_block(only_val, lzv); - /*<>*/ } - var CamlinternalLazy = [0, Undefined, force_lazy_block, force_gen]; + /*<>*/ return t !== Stdlib_Obj[8] + ? lzv + : /*<>*/ force_gen_lazy_block + (only_val, lzv) /*<>*/ ; + } + var + CamlinternalLazy = /*<>*/ [0, Undefined, force_lazy_block, force_gen]; runtime.caml_register_global(2, CamlinternalLazy, "CamlinternalLazy"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Lazy @@ -1553,12 +1542,12 @@ (globalThis){ "use strict"; var runtime = globalThis.jsoo_runtime, caml_obj_tag = runtime.caml_obj_tag; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -1569,36 +1558,29 @@ Stdlib_Obj = global_data.Stdlib__Obj, Undefined = CamlinternalLazy[1]; function force_val(l){ - /*<>*/ return /*<>*/ caml_call2 - (CamlinternalLazy[3], 1, l); - /*<>*/ } + /*<>*/ return caml_call2(CamlinternalLazy[3], 1, l) /*<>*/ ; + } function from_fun(f){ - /*<>*/ /*<>*/ var - x = /*<>*/ runtime.caml_obj_block(Stdlib_Obj[8], 1); + var x = /*<>*/ runtime.caml_obj_block(Stdlib_Obj[8], 1); /*<>*/ x[1] = f; - /*<>*/ return x; + /*<>*/ return x; /*<>*/ } function from_val(v){ - /*<>*/ /*<>*/ var - t = /*<>*/ caml_obj_tag(v); - if + var t = /*<>*/ caml_obj_tag(v); + /*<>*/ if (t !== Stdlib_Obj[12] && t !== Stdlib_Obj[8] && t !== Stdlib_Obj[6] && t !== Stdlib_Obj[16]) /*<>*/ return v; - /*<>*/ return /*<>*/ runtime.caml_lazy_make_forward - (v); - /*<>*/ } + /*<>*/ return runtime.caml_lazy_make_forward(v) /*<>*/ ; + } function is_val(l){ - /*<>*/ /*<>*/ var _i_ = Stdlib_Obj[8]; - /*<>*/ return /*<>*/ caml_obj_tag(l) - !== _i_ - ? 1 - : 0; + var _i_ = /*<>*/ Stdlib_Obj[8]; + return caml_obj_tag(l) !== _i_ ? 1 : 0 /*<>*/ ; /*<>*/ } function map(f, x){ /*<>*/ return [246, function(_f_){ - var _g_ = caml_obj_tag(x); + var _g_ = /*<>*/ caml_obj_tag(x); a: if(250 === _g_) var _h_ = x[1]; @@ -1606,15 +1588,14 @@ if(246 !== _g_ && 244 !== _g_){var _h_ = x; break a;} var _h_ = caml_call1(CamlinternalLazy[2], x); } - /*<>*/ return /*<>*/ caml_call1 - (f, _h_); - }]; + return caml_call1(f, _h_); + }] /*<>*/ ; /*<>*/ } function map_val(f, x){ - /*<>*/ if(! is_val(x)) - /*<>*/ return [246, + /*<>*/ if(! is_val(x)) + /*<>*/ return [246, function(_c_){ - var _d_ = caml_obj_tag(x); + var _d_ = /*<>*/ caml_obj_tag(x); a: if(250 === _d_) var _e_ = x[1]; @@ -1622,10 +1603,9 @@ if(246 !== _d_ && 244 !== _d_){var _e_ = x; break a;} var _e_ = caml_call1(CamlinternalLazy[2], x); } - /*<>*/ return /*<>*/ caml_call1 - (f, _e_); - }]; - var _a_ = caml_obj_tag(x); + return caml_call1(f, _e_); + }] /*<>*/ ; + var _a_ = /*<>*/ caml_obj_tag(x); a: if(250 === _a_) var _b_ = x[1]; @@ -1633,15 +1613,22 @@ if(246 !== _a_ && 244 !== _a_){var _b_ = x; break a;} var _b_ = caml_call1(CamlinternalLazy[2], x); } - /*<>*/ return from_val - ( /*<>*/ caml_call1(f, _b_)); - /*<>*/ } + /*<>*/ return /*<>*/ from_val + ( /*<>*/ caml_call1(f, _b_)) /*<>*/ ; + } var Stdlib_Lazy = - [0, Undefined, map, is_val, from_val, map_val, from_fun, force_val]; + /*<>*/ [0, + Undefined, + map, + is_val, + from_val, + map_val, + from_fun, + force_val]; runtime.caml_register_global(2, Stdlib_Lazy, "Stdlib__Lazy"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Seq @@ -1652,17 +1639,17 @@ var runtime = globalThis.jsoo_runtime, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); @@ -1687,347 +1674,328 @@ /*<>*/ return [0, x, next]; /*<>*/ } function append(seq1, seq2, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(seq1, 0); - if(! match) - /*<>*/ return /*<>*/ caml_call1(seq2, 0); - var next = match[2], x = match[1]; - /*<>*/ return [0, + var match = /*<>*/ caml_call1(seq1, 0); + /*<>*/ if(! match) + /*<>*/ return caml_call1(seq2, 0) /*<>*/ ; + var next = /*<>*/ match[2], x = match[1]; + /*<>*/ return [0, x, - function(_au_){ /*<>*/ return append(next, seq2, _au_);}]; + function(_au_){ + /*<>*/ return append(next, seq2, _au_); + }] /*<>*/ ; /*<>*/ } function map(f, seq, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(seq, 0); - if(! match) /*<>*/ return 0; - var next = match[2], x = match[1]; - /*<>*/ return [0, - /*<>*/ caml_call1(f, x), - function(_at_){ /*<>*/ return map(f, next, _at_);}]; + var match = /*<>*/ caml_call1(seq, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var next = /*<>*/ match[2], x = match[1]; + /*<>*/ return [0, + caml_call1(f, x), + function(_at_){ /*<>*/ return map(f, next, _at_);}] /*<>*/ ; /*<>*/ } function filter_map(f, seq, param){ - /*<>*/ var seq$0 = seq; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(seq$0, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - next = match[2], + var seq$0 = /*<>*/ seq; + for(;;){ + var match = /*<>*/ caml_call1(seq$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + next = /*<>*/ match[2], x = match[1], - /*<>*/ match$0 = /*<>*/ caml_call1(f, x); - if(match$0){ + match$0 = /*<>*/ caml_call1(f, x); + /*<>*/ if(match$0){ var y = match$0[1]; - /*<>*/ return [0, + /*<>*/ return [0, y, - function(_as_){ /*<>*/ return filter_map(f, next, _as_);}]; + function(_as_){ + /*<>*/ return filter_map(f, next, _as_); + }] /*<>*/ ; } - seq$0 = next; + /*<>*/ seq$0 = next; } /*<>*/ } function filter(f, seq, param){ - /*<>*/ var seq$0 = seq; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(seq$0, 0); - if(! match) /*<>*/ return 0; - var next = match[2], x = match[1]; - /*<>*/ if( /*<>*/ caml_call1(f, x)) - /*<>*/ return [0, + var seq$0 = /*<>*/ seq; + for(;;){ + var match = /*<>*/ caml_call1(seq$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var next = /*<>*/ match[2], x = match[1]; + /*<>*/ if(caml_call1(f, x)) + /*<>*/ return [0, x, - function(_ar_){ /*<>*/ return filter(f, next, _ar_);}]; - seq$0 = next; + function(_ar_){ + /*<>*/ return filter(f, next, _ar_); + }] /*<>*/ ; + /*<>*/ seq$0 = next; } /*<>*/ } function concat(seq, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(seq, 0); - if(! match) /*<>*/ return 0; - var next = match[2], x = match[1]; - /*<>*/ return append - (x, function(_aq_){ /*<>*/ return concat(next, _aq_);}, 0); - /*<>*/ } + var match = /*<>*/ caml_call1(seq, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var next = /*<>*/ match[2], x = match[1]; + /*<>*/ return append + (x, + function(_aq_){ /*<>*/ return concat(next, _aq_);}, + 0) /*<>*/ ; + } function flat_map(f, seq, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(seq, 0); - if(! match) /*<>*/ return 0; - var next = match[2], x = match[1]; - /*<>*/ return append + var match = /*<>*/ caml_call1(seq, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var next = /*<>*/ match[2], x = match[1]; + /*<>*/ return /*<>*/ append ( /*<>*/ caml_call1(f, x), - function(_ap_){ /*<>*/ return flat_map(f, next, _ap_);}, - 0); - /*<>*/ } + function(_ap_){ + /*<>*/ return flat_map(f, next, _ap_); + }, + 0) /*<>*/ ; + } function fold_left(f, acc, seq){ - /*<>*/ var acc$0 = acc, seq$0 = seq; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(seq$0, 0); - if(! match) /*<>*/ return acc$0; - /*<>*/ var - next = match[2], + var acc$0 = /*<>*/ acc, seq$0 = seq; + for(;;){ + var match = /*<>*/ caml_call1(seq$0, 0); + /*<>*/ if(! match) /*<>*/ return acc$0; + var + next = /*<>*/ match[2], x = match[1], - /*<>*/ acc$1 = - /*<>*/ caml_call2(f, acc$0, x); - acc$0 = acc$1; + acc$1 = /*<>*/ caml_call2(f, acc$0, x); + /*<>*/ acc$0 = acc$1; seq$0 = next; } /*<>*/ } function iter(f, seq){ - /*<>*/ var seq$0 = seq; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(seq$0, 0); - if(! match) /*<>*/ return 0; - var next = match[2], x = match[1]; - /*<>*/ /*<>*/ caml_call1(f, x); - seq$0 = next; + var seq$0 = /*<>*/ seq; + for(;;){ + var match = /*<>*/ caml_call1(seq$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var next = /*<>*/ match[2], x = match[1]; + /*<>*/ caml_call1(f, x); + /*<>*/ seq$0 = next; } /*<>*/ } function unfold(f, u, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(f, u); - if(! match) /*<>*/ return 0; - var match$0 = match[1], u$0 = match$0[2], x = match$0[1]; - /*<>*/ return [0, + var match = /*<>*/ caml_call1(f, u); + /*<>*/ if(! match) /*<>*/ return 0; + var + match$0 = /*<>*/ match[1], + u$0 = match$0[2], + x = match$0[1]; + /*<>*/ return [0, x, - function(_ao_){ /*<>*/ return unfold(f, u$0, _ao_);}]; + function(_ao_){ /*<>*/ return unfold(f, u$0, _ao_);}] /*<>*/ ; /*<>*/ } function is_empty(xs){ - /*<>*/ return /*<>*/ caml_call1(xs, 0) ? 0 : 1; - /*<>*/ } + /*<>*/ return caml_call1(xs, 0) ? 0 : 1 /*<>*/ ; + } function uncons(xs){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - var xs$0 = match[2], x = match[1]; + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xs$0 = /*<>*/ match[2], x = match[1]; /*<>*/ return [0, [0, x, xs$0]]; /*<>*/ } function length(xs$1){ - /*<>*/ var accu = 0, xs = xs$1; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return accu; - /*<>*/ var - xs$0 = match[2], - /*<>*/ accu$0 = accu + 1 | 0; + var accu = /*<>*/ 0, xs = xs$1; + for(;;){ + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return accu; + var + xs$0 = /*<>*/ match[2], + accu$0 = /*<>*/ accu + 1 | 0; accu = accu$0; xs = xs$0; } /*<>*/ } function iteri(f, xs$1){ - /*<>*/ var i = 0, xs = xs$1; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - var xs$0 = match[2], x = match[1]; - /*<>*/ /*<>*/ caml_call2(f, i, x); - var i$0 = i + 1 | 0; + var i = /*<>*/ 0, xs = xs$1; + for(;;){ + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xs$0 = /*<>*/ match[2], x = match[1]; + /*<>*/ caml_call2(f, i, x); + var i$0 = /*<>*/ i + 1 | 0; i = i$0; xs = xs$0; } /*<>*/ } function fold_lefti(f, accu$1, xs$1){ - /*<>*/ var accu = accu$1, i = 0, xs = xs$1; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return accu; - /*<>*/ var - xs$0 = match[2], + var accu = /*<>*/ accu$1, i = 0, xs = xs$1; + for(;;){ + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return accu; + var + xs$0 = /*<>*/ match[2], x = match[1], - /*<>*/ accu$0 = - /*<>*/ caml_call3(f, accu, i, x), - /*<>*/ i$0 = i + 1 | 0; + accu$0 = /*<>*/ caml_call3(f, accu, i, x), + i$0 = /*<>*/ i + 1 | 0; accu = accu$0; i = i$0; xs = xs$0; } /*<>*/ } function for_all(p, xs){ - /*<>*/ var xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 1; - /*<>*/ var - xs$1 = match[2], + var xs$0 = /*<>*/ xs; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 1; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ _an_ = /*<>*/ caml_call1(p, x); - /*<>*/ if(! _an_) /*<>*/ return _an_; + _an_ = /*<>*/ caml_call1(p, x); + /*<>*/ if(! _an_) return _an_; xs$0 = xs$1; } /*<>*/ } function exists(p, xs){ - /*<>*/ var xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$1 = match[2], + var xs$0 = /*<>*/ xs; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ _am_ = /*<>*/ caml_call1(p, x); - /*<>*/ if(_am_) /*<>*/ return _am_; + _am_ = /*<>*/ caml_call1(p, x); + /*<>*/ if(_am_) return _am_; xs$0 = xs$1; } /*<>*/ } function find(p, xs){ - /*<>*/ var xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - var xs$1 = match[2], x = match[1]; - /*<>*/ if( /*<>*/ caml_call1(p, x)) + var xs$0 = /*<>*/ xs; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xs$1 = /*<>*/ match[2], x = match[1]; + /*<>*/ if(caml_call1(p, x)) /*<>*/ return [0, x]; - xs$0 = xs$1; + /*<>*/ xs$0 = xs$1; } /*<>*/ } function find_index(p, xs){ - /*<>*/ var i = 0, xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - var xs$1 = match[2], x = match[1]; - /*<>*/ if( /*<>*/ caml_call1(p, x)) + var i = /*<>*/ 0, xs$0 = xs; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xs$1 = /*<>*/ match[2], x = match[1]; + /*<>*/ if(caml_call1(p, x)) /*<>*/ return [0, i]; - var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; xs$0 = xs$1; } /*<>*/ } function find_map(f, xs){ - /*<>*/ var xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$1 = match[2], + var xs$0 = /*<>*/ xs; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ result = /*<>*/ caml_call1(f, x); - if(result) /*<>*/ return result; - xs$0 = xs$1; + result = /*<>*/ caml_call1(f, x); + /*<>*/ if(result) /*<>*/ return result; + /*<>*/ xs$0 = xs$1; } /*<>*/ } function find_mapi(f, xs){ - /*<>*/ var i = 0, xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$1 = match[2], + var i = /*<>*/ 0, xs$0 = xs; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ result = - /*<>*/ caml_call2(f, i, x); - if(result) /*<>*/ return result; - var i$0 = i + 1 | 0; + result = /*<>*/ caml_call2(f, i, x); + /*<>*/ if(result) /*<>*/ return result; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; xs$0 = xs$1; } /*<>*/ } function iter2(f, xs, ys){ - /*<>*/ var xs$0 = xs, ys$0 = ys; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$1 = match[2], + var xs$0 = /*<>*/ xs, ys$0 = ys; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ match$0 = - /*<>*/ caml_call1(ys$0, 0); - if(! match$0) /*<>*/ return 0; - var ys$1 = match$0[2], y = match$0[1]; - /*<>*/ /*<>*/ caml_call2(f, x, y); - xs$0 = xs$1; + match$0 = /*<>*/ caml_call1(ys$0, 0); + /*<>*/ if(! match$0) /*<>*/ return 0; + var ys$1 = /*<>*/ match$0[2], y = match$0[1]; + /*<>*/ caml_call2(f, x, y); + /*<>*/ xs$0 = xs$1; ys$0 = ys$1; } /*<>*/ } function fold_left2(f, accu, xs, ys){ - /*<>*/ var accu$0 = accu, xs$0 = xs, ys$0 = ys; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return accu$0; - /*<>*/ var - xs$1 = match[2], + var accu$0 = /*<>*/ accu, xs$0 = xs, ys$0 = ys; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return accu$0; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ match$0 = - /*<>*/ caml_call1(ys$0, 0); - if(! match$0) /*<>*/ return accu$0; - /*<>*/ var - ys$1 = match$0[2], + match$0 = /*<>*/ caml_call1(ys$0, 0); + /*<>*/ if(! match$0) + /*<>*/ return accu$0; + var + ys$1 = /*<>*/ match$0[2], y = match$0[1], - /*<>*/ accu$1 = - /*<>*/ caml_call3(f, accu$0, x, y); - accu$0 = accu$1; + accu$1 = /*<>*/ caml_call3(f, accu$0, x, y); + /*<>*/ accu$0 = accu$1; xs$0 = xs$1; ys$0 = ys$1; } /*<>*/ } function for_all2(f, xs, ys){ - /*<>*/ var xs$0 = xs, ys$0 = ys; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 1; - /*<>*/ var - xs$1 = match[2], + var xs$0 = /*<>*/ xs, ys$0 = ys; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 1; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ match$0 = - /*<>*/ caml_call1(ys$0, 0); - if(! match$0) /*<>*/ return 1; - /*<>*/ var - ys$1 = match$0[2], + match$0 = /*<>*/ caml_call1(ys$0, 0); + /*<>*/ if(! match$0) /*<>*/ return 1; + var + ys$1 = /*<>*/ match$0[2], y = match$0[1], - /*<>*/ _al_ = /*<>*/ caml_call2(f, x, y); - /*<>*/ if(! _al_) /*<>*/ return _al_; + _al_ = /*<>*/ caml_call2(f, x, y); + /*<>*/ if(! _al_) return _al_; xs$0 = xs$1; ys$0 = ys$1; } /*<>*/ } function exists2(f, xs, ys){ - /*<>*/ var xs$0 = xs, ys$0 = ys; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$1 = match[2], + var xs$0 = /*<>*/ xs, ys$0 = ys; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ match$0 = - /*<>*/ caml_call1(ys$0, 0); - if(! match$0) /*<>*/ return 0; - /*<>*/ var - ys$1 = match$0[2], + match$0 = /*<>*/ caml_call1(ys$0, 0); + /*<>*/ if(! match$0) /*<>*/ return 0; + var + ys$1 = /*<>*/ match$0[2], y = match$0[1], - /*<>*/ _ak_ = /*<>*/ caml_call2(f, x, y); - /*<>*/ if(_ak_) /*<>*/ return _ak_; + _ak_ = /*<>*/ caml_call2(f, x, y); + /*<>*/ if(_ak_) return _ak_; xs$0 = xs$1; ys$0 = ys$1; } /*<>*/ } function equal(eq, xs, ys){ - /*<>*/ var xs$0 = xs, ys$0 = ys; - /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ match = /*<>*/ caml_call1(xs$0, 0), - /*<>*/ match$0 = - /*<>*/ caml_call1(ys$0, 0); - if(match){ + var xs$0 = /*<>*/ xs, ys$0 = ys; + for(;;){ + var + match = /*<>*/ caml_call1(xs$0, 0), + match$0 = /*<>*/ caml_call1(ys$0, 0); + /*<>*/ if(match){ if(match$0){ - /*<>*/ var + var ys$1 = match$0[2], y = match$0[1], xs$1 = match[2], x = match[1], - /*<>*/ _aj_ = - /*<>*/ caml_call2(eq, x, y); - /*<>*/ if(! _aj_) /*<>*/ return _aj_; + _aj_ = /*<>*/ caml_call2(eq, x, y); + /*<>*/ if(! _aj_) return _aj_; xs$0 = xs$1; ys$0 = ys$1; continue; @@ -2038,132 +2006,135 @@ } /*<>*/ } function compare(cmp, xs, ys){ - /*<>*/ var xs$0 = xs, ys$0 = ys; - /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ match = /*<>*/ caml_call1(xs$0, 0), - /*<>*/ match$0 = - /*<>*/ caml_call1(ys$0, 0); - if(! match) return match$0 ? -1 : 0; - var xs$1 = match[2], x = match[1]; + var xs$0 = /*<>*/ xs, ys$0 = ys; + for(;;){ + var + match = /*<>*/ caml_call1(xs$0, 0), + match$0 = /*<>*/ caml_call1(ys$0, 0); + /*<>*/ if(! match) + return match$0 ? -1 : 0 /*<>*/ ; + var xs$1 = /*<>*/ match[2], x = match[1]; if(! match$0) /*<>*/ return 1; - /*<>*/ var - ys$1 = match$0[2], + var + ys$1 = /*<>*/ match$0[2], y = match$0[1], - /*<>*/ c = /*<>*/ caml_call2(cmp, x, y); + c = /*<>*/ caml_call2(cmp, x, y); /*<>*/ if(0 !== c) /*<>*/ return c; - xs$0 = xs$1; + /*<>*/ xs$0 = xs$1; ys$0 = ys$1; } /*<>*/ } function init_aux(f, i, j, param){ /*<>*/ if(i >= j) /*<>*/ return 0; - var _ah_ = i + 1 | 0; - /*<>*/ return [0, - /*<>*/ caml_call1(f, i), - function(_ai_){ /*<>*/ return init_aux(f, _ah_, j, _ai_);}]; + var _ah_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, + caml_call1(f, i), + function(_ai_){ + /*<>*/ return init_aux(f, _ah_, j, _ai_); + }] /*<>*/ ; /*<>*/ } function init(n, f){ /*<>*/ if(0 > n) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Seq_init); - var _af_ = 0; - /*<>*/ return function(_ag_){ - /*<>*/ return init_aux(f, _af_, n, _ag_);}; + /*<>*/ return caml_call1(Stdlib[1], cst_Seq_init) /*<>*/ ; + var _af_ = /*<>*/ 0; + return function(_ag_){ + /*<>*/ return init_aux(f, _af_, n, _ag_);} /*<>*/ ; /*<>*/ } function repeat(x, param){ - /*<>*/ return [0, + /*<>*/ return [0, x, - function(_ae_){ /*<>*/ return repeat(x, _ae_);}]; + function(_ae_){ /*<>*/ return repeat(x, _ae_);}] /*<>*/ ; /*<>*/ } function forever(f, param){ - /*<>*/ return [0, - /*<>*/ caml_call1(f, 0), - function(_ad_){ /*<>*/ return forever(f, _ad_);}]; + /*<>*/ return [0, + caml_call1(f, 0), + function(_ad_){ /*<>*/ return forever(f, _ad_);}] /*<>*/ ; /*<>*/ } function cycle_nonempty(xs, param){ - /*<>*/ return append + /*<>*/ return append (xs, - function(_ac_){ /*<>*/ return cycle_nonempty(xs, _ac_);}, - 0); - /*<>*/ } + function(_ac_){ + /*<>*/ return cycle_nonempty(xs, _ac_); + }, + 0) /*<>*/ ; + } function cycle(xs, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - var xs$0 = match[2], x = match[1]; - /*<>*/ function _$_(_ab_){ - /*<>*/ return cycle_nonempty(xs, _ab_); - } - /*<>*/ return [0, + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xs$0 = /*<>*/ match[2], x = match[1]; + function _$_(_ab_){ + /*<>*/ return cycle_nonempty(xs, _ab_); + } + /*<>*/ return [0, x, - function(_aa_){ /*<>*/ return append(xs$0, _$_, _aa_);}]; + function(_aa_){ + /*<>*/ return append(xs$0, _$_, _aa_); + }] /*<>*/ ; /*<>*/ } function iterate1(f, x, param){ - /*<>*/ /*<>*/ var - y = /*<>*/ caml_call1(f, x); - /*<>*/ return [0, + var y = /*<>*/ caml_call1(f, x); + /*<>*/ return [0, y, - function(___){ /*<>*/ return iterate1(f, y, ___);}]; + function(___){ /*<>*/ return iterate1(f, y, ___);}] /*<>*/ ; /*<>*/ } function iterate(f, x){ - /*<>*/ function next(_Z_){ - /*<>*/ return iterate1(f, x, _Z_); - } - /*<>*/ return function(_Y_){ - /*<>*/ return [0, x, next];}; - /*<>*/ } + function next(_Z_){ /*<>*/ return iterate1(f, x, _Z_);} + /*<>*/ return function(_Y_){ + /*<>*/ return [0, x, next];} /*<>*/ ; + } function mapi_aux(f, i, xs, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - var xs$0 = match[2], x = match[1], /*<>*/ _W_ = i + 1 | 0; - /*<>*/ return [0, - /*<>*/ caml_call2(f, i, x), - function(_X_){ /*<>*/ return mapi_aux(f, _W_, xs$0, _X_);}]; + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$0 = /*<>*/ match[2], + x = match[1], + _W_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, + caml_call2(f, i, x), + function(_X_){ + /*<>*/ return mapi_aux(f, _W_, xs$0, _X_); + }] /*<>*/ ; /*<>*/ } function mapi(f, xs){ - /*<>*/ var _U_ = 0; - /*<>*/ return function(_V_){ - /*<>*/ return mapi_aux(f, _U_, xs, _V_);}; + var _U_ = /*<>*/ 0; + return function(_V_){ + /*<>*/ return mapi_aux(f, _U_, xs, _V_);} /*<>*/ ; /*<>*/ } function tail_scan(f, s, xs, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$0 = match[2], + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$0 = /*<>*/ match[2], x = match[1], - /*<>*/ s$0 = /*<>*/ caml_call2(f, s, x); - /*<>*/ return [0, + s$0 = /*<>*/ caml_call2(f, s, x); + /*<>*/ return [0, s$0, - function(_T_){ /*<>*/ return tail_scan(f, s$0, xs$0, _T_);}]; + function(_T_){ + /*<>*/ return tail_scan(f, s$0, xs$0, _T_); + }] /*<>*/ ; /*<>*/ } function scan(f, s, xs){ - /*<>*/ function next(_S_){ - /*<>*/ return tail_scan(f, s, xs, _S_); - } - /*<>*/ return function(_R_){ - /*<>*/ return [0, s, next];}; - /*<>*/ } + function next(_S_){ /*<>*/ return tail_scan(f, s, xs, _S_);} + /*<>*/ return function(_R_){ + /*<>*/ return [0, s, next];} /*<>*/ ; + } function take_aux(n, xs){ /*<>*/ return 0 === n ? empty : function (param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - var xs$0 = match[2], x = match[1]; - /*<>*/ return [0, x, take_aux(n - 1 | 0, xs$0)]; + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) + /*<>*/ return 0; + var xs$0 = /*<>*/ match[2], x = match[1]; + /*<>*/ return [0, x, take_aux(n - 1 | 0, xs$0)] /*<>*/ ; /*<>*/ }; - /*<>*/ } + } function take(n, xs){ /*<>*/ if(n < 0) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Seq_take); - /*<>*/ return take_aux(n, xs); - /*<>*/ } + /*<>*/ caml_call1(Stdlib[1], cst_Seq_take); + /*<>*/ return take_aux(n, xs) /*<>*/ ; + } function drop(n, xs){ /*<>*/ return 0 <= n ? 0 @@ -2171,362 +2142,359 @@ ? xs : function (param){ - /*<>*/ var n$0 = n, xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$1 = match[2], - /*<>*/ n$1 = n$0 - 1 | 0; + var n$0 = /*<>*/ n, xs$0 = xs; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) + /*<>*/ return 0; + var + xs$1 = /*<>*/ match[2], + n$1 = /*<>*/ n$0 - 1 | 0; /*<>*/ if(0 === n$1) - /*<>*/ return /*<>*/ caml_call1 - (xs$1, 0); - n$0 = n$1; + /*<>*/ return caml_call1(xs$1, 0) /*<>*/ ; + /*<>*/ n$0 = n$1; xs$0 = xs$1; } /*<>*/ } - : /*<>*/ caml_call1(Stdlib[1], cst_Seq_drop); - /*<>*/ } + : /*<>*/ caml_call1(Stdlib[1], cst_Seq_drop) /*<>*/ ; + } function take_while(p, xs, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - var xs$0 = match[2], x = match[1]; - /*<>*/ return /*<>*/ caml_call1(p, x) + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xs$0 = /*<>*/ match[2], x = match[1]; + /*<>*/ return caml_call1(p, x) ? [0, x, - function(_Q_){ /*<>*/ return take_while(p, xs$0, _Q_);}] - : 0; - /*<>*/ } + function(_Q_){ + /*<>*/ return take_while(p, xs$0, _Q_); + }] + : 0 /*<>*/ ; + } function drop_while(p, xs, param){ - /*<>*/ var xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - node = /*<>*/ caml_call1(xs$0, 0); - if(! node) /*<>*/ return 0; - var xs$1 = node[2], x = node[1]; - /*<>*/ if(! /*<>*/ caml_call1(p, x)) + var xs$0 = /*<>*/ xs; + for(;;){ + var node = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! node) /*<>*/ return 0; + var xs$1 = /*<>*/ node[2], x = node[1]; + /*<>*/ if(! caml_call1(p, x)) /*<>*/ return node; - xs$0 = xs$1; + /*<>*/ xs$0 = xs$1; } /*<>*/ } function group(eq, xs, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; var - xs$0 = match[2], + xs$0 = /*<>*/ match[2], x = match[1], - /*<>*/ _J_ = /*<>*/ caml_call1(eq, x); - /*<>*/ function _K_(_P_){ - /*<>*/ return drop_while(_J_, xs$0, _P_); + _J_ = /*<>*/ caml_call1(eq, x); + function _K_(_P_){ + /*<>*/ return drop_while(_J_, xs$0, _P_); } - /*<>*/ var _L_ = /*<>*/ caml_call1(eq, x); - /*<>*/ function next(_O_){ - /*<>*/ return take_while(_L_, xs$0, _O_); + var _L_ = /*<>*/ caml_call1(eq, x); + function next(_O_){ + /*<>*/ return take_while(_L_, xs$0, _O_); } - /*<>*/ return [0, + /*<>*/ return [0, function(_N_){ /*<>*/ return [0, x, next];}, - function(_M_){ /*<>*/ return group(eq, _K_, _M_);}]; + function(_M_){ /*<>*/ return group(eq, _K_, _M_);}] /*<>*/ ; /*<>*/ } - /*<>*/ var - /*<>*/ Forced_twice = - [248, "Stdlib.Seq.Forced_twice", runtime.caml_fresh_oo_id(0)], - /*<>*/ to_lazy = Stdlib_Lazy[6], + var + Forced_twice = + /*<>*/ [248, "Stdlib.Seq.Forced_twice", runtime.caml_fresh_oo_id(0)], + to_lazy = Stdlib_Lazy[6], _a_ = [0, "seq.ml", 616, 4]; function failure(param){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Forced_twice, 1); + /*<>*/ throw caml_maybe_attach_backtrace(Forced_twice, 1); /*<>*/ } function memoize(xs){ function s$0(param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - var xs$0 = match[2], x = match[1]; - /*<>*/ return [0, x, memoize(xs$0)]; + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xs$0 = /*<>*/ match[2], x = match[1]; + /*<>*/ return [0, x, memoize(xs$0)] /*<>*/ ; /*<>*/ } - /*<>*/ /*<>*/ var - s = /*<>*/ caml_call1(to_lazy, s$0); + var s = /*<>*/ caml_call1(to_lazy, s$0); /*<>*/ return function(param){ - /*<>*/ var _I_ = runtime.caml_obj_tag(s); + var _I_ = /*<>*/ runtime.caml_obj_tag(s); if(250 === _I_) return s[1]; - if(246 !== _I_ && 244 !== _I_) /*<>*/ return s; - /*<>*/ return /*<>*/ caml_call1 - (CamlinternalLazy[2], s); /*<>*/ }; + if(246 !== _I_ && 244 !== _I_) return s; + return caml_call1(CamlinternalLazy[2], s) /*<>*/ ;} /*<>*/ ; /*<>*/ } function once(xs){ function f(param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - var xs$0 = match[2], x = match[1]; - /*<>*/ return [0, x, once(xs$0)]; + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xs$0 = /*<>*/ match[2], x = match[1]; + /*<>*/ return [0, x, once(xs$0)] /*<>*/ ; /*<>*/ } - /*<>*/ /*<>*/ var - action = /*<>*/ caml_call1(Stdlib_Atomic[1], f); + var action = /*<>*/ caml_call1(Stdlib_Atomic[1], f); /*<>*/ return function(param){ - /*<>*/ /*<>*/ var + var f = /*<>*/ caml_call2(Stdlib_Atomic[5], action, failure); - /*<>*/ return /*<>*/ caml_call1(f, 0); /*<>*/ }; + /*<>*/ return caml_call1(f, 0) /*<>*/ ;} /*<>*/ ; /*<>*/ } function zip(xs, ys, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$0 = match[2], + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$0 = /*<>*/ match[2], x = match[1], - /*<>*/ match$0 = /*<>*/ caml_call1(ys, 0); - if(! match$0) /*<>*/ return 0; - var ys$0 = match$0[2], y = match$0[1]; - /*<>*/ return [0, + match$0 = /*<>*/ caml_call1(ys, 0); + /*<>*/ if(! match$0) /*<>*/ return 0; + var ys$0 = /*<>*/ match$0[2], y = match$0[1]; + /*<>*/ return [0, [0, x, y], - function(_H_){ /*<>*/ return zip(xs$0, ys$0, _H_);}]; + function(_H_){ /*<>*/ return zip(xs$0, ys$0, _H_);}] /*<>*/ ; /*<>*/ } function map2(f, xs, ys, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$0 = match[2], + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$0 = /*<>*/ match[2], x = match[1], - /*<>*/ match$0 = /*<>*/ caml_call1(ys, 0); - if(! match$0) /*<>*/ return 0; - var ys$0 = match$0[2], y = match$0[1]; - /*<>*/ return [0, - /*<>*/ caml_call2(f, x, y), - function(_G_){ /*<>*/ return map2(f, xs$0, ys$0, _G_);}]; + match$0 = /*<>*/ caml_call1(ys, 0); + /*<>*/ if(! match$0) /*<>*/ return 0; + var ys$0 = /*<>*/ match$0[2], y = match$0[1]; + /*<>*/ return [0, + caml_call2(f, x, y), + function(_G_){ + /*<>*/ return map2(f, xs$0, ys$0, _G_); + }] /*<>*/ ; /*<>*/ } function interleave(xs, ys, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) - /*<>*/ return /*<>*/ caml_call1(ys, 0); - var xs$0 = match[2], x = match[1]; - /*<>*/ return [0, + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) + /*<>*/ return caml_call1(ys, 0) /*<>*/ ; + var xs$0 = /*<>*/ match[2], x = match[1]; + /*<>*/ return [0, x, - function(_F_){ /*<>*/ return interleave(ys, xs$0, _F_);}]; + function(_F_){ + /*<>*/ return interleave(ys, xs$0, _F_); + }] /*<>*/ ; /*<>*/ } function sorted_merge1(cmp, x, xs, y, ys){ - /*<>*/ return 0 - < /*<>*/ caml_call2(cmp, x, y) + /*<>*/ return 0 < caml_call2(cmp, x, y) ? [0, y, function(_D_){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(ys, 0); - if(! match) /*<>*/ return [0, x, xs]; - var ys$0 = match[2], y = match[1]; + var match = /*<>*/ caml_call1(ys, 0); + /*<>*/ if(! match) + /*<>*/ return [0, x, xs]; + var ys$0 = /*<>*/ match[2], y = match[1]; /*<>*/ return sorted_merge1(cmp, x, xs, y, ys$0); }] : [0, x, function(_E_){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs, 0); - if(! match) /*<>*/ return [0, y, ys]; - var xs$0 = match[2], x = match[1]; + var match = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(! match) + /*<>*/ return [0, y, ys]; + var xs$0 = /*<>*/ match[2], x = match[1]; /*<>*/ return sorted_merge1(cmp, x, xs$0, y, ys); - }]; - /*<>*/ } + }] /*<>*/ ; + } function sorted_merge(cmp, xs, ys, param){ - /*<>*/ var - /*<>*/ match = /*<>*/ caml_call1(xs, 0), - /*<>*/ match$0 = /*<>*/ caml_call1(ys, 0); - if(match){ + var + match = /*<>*/ caml_call1(xs, 0), + match$0 = /*<>*/ caml_call1(ys, 0); + /*<>*/ if(match){ if(match$0){ var ys$0 = match$0[2], y = match$0[1], xs$0 = match[2], x = match[1]; - /*<>*/ return sorted_merge1(cmp, x, xs$0, y, ys$0); + /*<>*/ return sorted_merge1(cmp, x, xs$0, y, ys$0) /*<>*/ ; } - var c = match; + var c = /*<>*/ match; + } + else{ + if(! match$0) /*<>*/ return 0; + var c = /*<>*/ match$0; } - else{if(! match$0) /*<>*/ return 0; var c = match$0;} /*<>*/ return c; /*<>*/ } function map_fst(xys, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xys, 0); - if(! match) /*<>*/ return 0; - var xys$0 = match[2], x = match[1][1]; - /*<>*/ return [0, + var match = /*<>*/ caml_call1(xys, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xys$0 = /*<>*/ match[2], x = match[1][1]; + /*<>*/ return [0, x, - function(_C_){ /*<>*/ return map_fst(xys$0, _C_);}]; + function(_C_){ /*<>*/ return map_fst(xys$0, _C_);}] /*<>*/ ; /*<>*/ } function map_snd(xys, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xys, 0); - if(! match) /*<>*/ return 0; - var xys$0 = match[2], y = match[1][2]; - /*<>*/ return [0, + var match = /*<>*/ caml_call1(xys, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xys$0 = /*<>*/ match[2], y = match[1][2]; + /*<>*/ return [0, y, - function(_B_){ /*<>*/ return map_snd(xys$0, _B_);}]; + function(_B_){ /*<>*/ return map_snd(xys$0, _B_);}] /*<>*/ ; /*<>*/ } function unzip(xys){ - /*<>*/ return [0, - function(_A_){ /*<>*/ return map_fst(xys, _A_);}, - function(_z_){ /*<>*/ return map_snd(xys, _z_);}]; + /*<>*/ return [0, + function(_A_){ /*<>*/ return map_fst(xys, _A_);}, + function(_z_){ /*<>*/ return map_snd(xys, _z_);}] /*<>*/ ; /*<>*/ } function filter_map_find_left_map(f, xs, param){ - /*<>*/ var xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$1 = match[2], + var xs$0 = /*<>*/ xs; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ match$0 = /*<>*/ caml_call1(f, x); - if(0 === match$0[0]){ + match$0 = /*<>*/ caml_call1(f, x); + /*<>*/ if(0 === match$0[0]){ var y = match$0[1]; - /*<>*/ return [0, + /*<>*/ return [0, y, function(_y_){ - /*<>*/ return filter_map_find_left_map(f, xs$1, _y_); - }]; + /*<>*/ return filter_map_find_left_map + (f, xs$1, _y_); + }] /*<>*/ ; } - xs$0 = xs$1; + /*<>*/ xs$0 = xs$1; } /*<>*/ } function filter_map_find_right_map(f, xs, param){ - /*<>*/ var xs$0 = xs; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xs$0, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - xs$1 = match[2], + var xs$0 = /*<>*/ xs; + for(;;){ + var match = /*<>*/ caml_call1(xs$0, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + xs$1 = /*<>*/ match[2], x = match[1], - /*<>*/ match$0 = /*<>*/ caml_call1(f, x); - if(0 !== match$0[0]){ + match$0 = /*<>*/ caml_call1(f, x); + /*<>*/ if(0 !== match$0[0]){ var z = match$0[1]; - /*<>*/ return [0, + /*<>*/ return [0, z, function(_x_){ - /*<>*/ return filter_map_find_right_map(f, xs$1, _x_); - }]; + /*<>*/ return filter_map_find_right_map + (f, xs$1, _x_); + }] /*<>*/ ; } - xs$0 = xs$1; + /*<>*/ xs$0 = xs$1; } /*<>*/ } function partition_map(f, xs){ - /*<>*/ return [0, + /*<>*/ return [0, function(_w_){ - /*<>*/ return filter_map_find_left_map(f, xs, _w_); + /*<>*/ return filter_map_find_left_map(f, xs, _w_); }, function(_v_){ - /*<>*/ return filter_map_find_right_map(f, xs, _v_); - }]; + /*<>*/ return filter_map_find_right_map + (f, xs, _v_); + }] /*<>*/ ; /*<>*/ } function partition(p, xs){ function _s_(x){ - /*<>*/ return 1 - /*<>*/ caml_call1(p, x); - /*<>*/ } - /*<>*/ return [0, - function(_u_){ /*<>*/ return filter(p, xs, _u_);}, - function(_t_){ /*<>*/ return filter(_s_, xs, _t_);}]; + /*<>*/ return 1 - caml_call1(p, x) /*<>*/ ; + } + /*<>*/ return [0, + function(_u_){ /*<>*/ return filter(p, xs, _u_);}, + function(_t_){ /*<>*/ return filter(_s_, xs, _t_);}] /*<>*/ ; /*<>*/ } function peel(xss){ - /*<>*/ return unzip - (function(_r_){ /*<>*/ return filter_map(uncons, xss, _r_);}); - /*<>*/ } + /*<>*/ return unzip + (function(_r_){ + /*<>*/ return filter_map(uncons, xss, _r_); + }) /*<>*/ ; + } function transpose(xss, param){ - /*<>*/ var - /*<>*/ match = peel(xss), - tails = match[2], + var + match = /*<>*/ peel(xss), + tails = /*<>*/ match[2], heads = match[1]; /*<>*/ if(! is_empty(heads)) - /*<>*/ return [0, + /*<>*/ return [0, heads, - function(_q_){ /*<>*/ return transpose(tails, _q_);}]; + function(_q_){ + /*<>*/ return transpose(tails, _q_); + }] /*<>*/ ; /*<>*/ if(is_empty(tails)) /*<>*/ return 0; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _a_], 1); /*<>*/ } function _b_(remainders, xss, param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(xss, 0); - if(! match) /*<>*/ return transpose(remainders, 0); - /*<>*/ var - xss$0 = match[2], + var match = /*<>*/ caml_call1(xss, 0); + /*<>*/ if(! match) + /*<>*/ return transpose(remainders, 0) /*<>*/ ; + var + xss$0 = /*<>*/ match[2], xs = match[1], - /*<>*/ match$0 = /*<>*/ caml_call1(xs, 0); - if(match$0){ - /*<>*/ var + match$0 = /*<>*/ caml_call1(xs, 0); + /*<>*/ if(match$0){ + var xs$0 = match$0[2], x = match$0[1], - /*<>*/ match$1 = peel(remainders), - tails = match$1[2], + match$1 = /*<>*/ peel(remainders), + tails = /*<>*/ match$1[2], heads = match$1[1], - /*<>*/ _l_ = - function(_p_){ /*<>*/ return [0, xs$0, tails];}; - /*<>*/ return [0, + _l_ = + /*<>*/ function(_p_){ + /*<>*/ return [0, xs$0, tails]; + }; + /*<>*/ return [0, function(_o_){ /*<>*/ return [0, x, heads];}, - function(_n_){ /*<>*/ return _b_(_l_, xss$0, _n_);}]; + function(_n_){ + /*<>*/ return _b_(_l_, xss$0, _n_); + }] /*<>*/ ; } - /*<>*/ var - /*<>*/ match$2 = peel(remainders), - tails$0 = match$2[2], + var + match$2 = /*<>*/ peel(remainders), + tails$0 = /*<>*/ match$2[2], heads$0 = match$2[1]; - /*<>*/ return [0, + /*<>*/ return [0, heads$0, - function(_m_){ /*<>*/ return _b_(tails$0, xss$0, _m_);}]; + function(_m_){ + /*<>*/ return _b_(tails$0, xss$0, _m_); + }] /*<>*/ ; /*<>*/ } function map_product(f, xs, ys){ function _f_(x){ function _j_(y){ - /*<>*/ return /*<>*/ caml_call2(f, x, y); - /*<>*/ } - /*<>*/ return function(_k_){ - /*<>*/ return map(_j_, ys, _k_);}; + /*<>*/ return caml_call2(f, x, y) /*<>*/ ; + } + /*<>*/ return function(_k_){ + /*<>*/ return map(_j_, ys, _k_);} /*<>*/ ; /*<>*/ } - /*<>*/ function xss(_i_){ - /*<>*/ return map(_f_, xs, _i_); - } - /*<>*/ function _e_(_h_){ - /*<>*/ return _b_(empty, xss, _h_); - } - /*<>*/ return function(_g_){ - /*<>*/ return concat(_e_, _g_);}; - /*<>*/ } + function xss(_i_){ /*<>*/ return map(_f_, xs, _i_);} + function _e_(_h_){ /*<>*/ return _b_(empty, xss, _h_);} + /*<>*/ return function(_g_){return concat(_e_, _g_);}; + } function product(xs, ys){ /*<>*/ return map_product (function(x, y){ /*<>*/ return [0, x, y]; /*<>*/ }, xs, - ys); - /*<>*/ } + ys) /*<>*/ ; + } function of_dispenser(it){ function c(param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(it, 0); - if(! match) /*<>*/ return 0; - var x = match[1]; + var match = /*<>*/ caml_call1(it, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var x = /*<>*/ match[1]; /*<>*/ return [0, x, c]; /*<>*/ } /*<>*/ return c; /*<>*/ } function to_dispenser(xs){ - /*<>*/ /*<>*/ var s = [0, xs]; + var s = /*<>*/ [0, xs]; /*<>*/ return function(param){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(s[1], 0); - if(! match) /*<>*/ return 0; - var xs = match[2], x = match[1]; - s[1] = xs; - /*<>*/ return [0, x]; /*<>*/ }; + var match = /*<>*/ caml_call1(s[1], 0); + /*<>*/ if(! match) /*<>*/ return 0; + var xs = /*<>*/ match[2], x = match[1]; + /*<>*/ s[1] = xs; + /*<>*/ return [0, x]; /*<>*/ } /*<>*/ ; /*<>*/ } function ints(i, param){ - /*<>*/ /*<>*/ var _c_ = i + 1 | 0; - /*<>*/ return [0, + var _c_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, i, - function(_d_){ /*<>*/ return ints(_c_, _d_);}]; + function(_d_){ /*<>*/ return ints(_c_, _d_);}] /*<>*/ ; /*<>*/ } var Stdlib_Seq = - [0, + /*<>*/ [0, is_empty, uncons, length, @@ -2588,7 +2556,7 @@ ints]; runtime.caml_register_global(10, Stdlib_Seq, "Stdlib__Seq"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Option @@ -2597,12 +2565,12 @@ (globalThis){ "use strict"; var runtime = globalThis.jsoo_runtime; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -2618,88 +2586,84 @@ function value(o, default$0){ /*<>*/ if(! o) /*<>*/ return default$0; - var v = o[1]; + var v = /*<>*/ o[1]; /*<>*/ return v; /*<>*/ } function get(param){ /*<>*/ if(! param) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_option_is_None); - var v = param[1]; + /*<>*/ return caml_call1(Stdlib[1], cst_option_is_None) /*<>*/ ; + var v = /*<>*/ param[1]; /*<>*/ return v; /*<>*/ } function bind(o, f){ /*<>*/ if(! o) /*<>*/ return 0; - var v = o[1]; - /*<>*/ return /*<>*/ caml_call1(f, v); - /*<>*/ } + var v = /*<>*/ o[1]; + /*<>*/ return caml_call1(f, v) /*<>*/ ; + } function join(param){ /*<>*/ if(! param) /*<>*/ return 0; - var o = param[1]; + var o = /*<>*/ param[1]; /*<>*/ return o; /*<>*/ } function map(f, o){ /*<>*/ if(! o) /*<>*/ return 0; - var v = o[1]; - /*<>*/ return [0, - /*<>*/ caml_call1(f, v)]; - /*<>*/ } + var v = /*<>*/ o[1]; + /*<>*/ return [0, caml_call1(f, v)] /*<>*/ ; + } function fold(none, some, param){ - /*<>*/ if(! param) /*<>*/ return none; - var v = param[1]; - /*<>*/ return /*<>*/ caml_call1 - (some, v); + /*<>*/ if(! param) /*<>*/ return none; + var v = /*<>*/ param[1]; + /*<>*/ return caml_call1(some, v) /*<>*/ ; } function iter(f, param){ - /*<>*/ if(! param) /*<>*/ return 0; - var v = param[1]; - /*<>*/ return /*<>*/ caml_call1(f, v); + /*<>*/ if(! param) /*<>*/ return 0; + var v = /*<>*/ param[1]; + /*<>*/ return caml_call1(f, v) /*<>*/ ; } function is_none(param){ - /*<>*/ return param ? 0 : 1; - /*<>*/ } + /*<>*/ return param ? 0 : 1 /*<>*/ ; + } function is_some(param){ - /*<>*/ return param ? 1 : 0; - /*<>*/ } + /*<>*/ return param ? 1 : 0 /*<>*/ ; + } function equal(eq, o0, o1){ /*<>*/ if(o0){ if(o1){ var v1 = o1[1], v0 = o0[1]; - /*<>*/ return /*<>*/ caml_call2 - (eq, v0, v1); + /*<>*/ return caml_call2(eq, v0, v1) /*<>*/ ; } } else if(! o1) /*<>*/ return 1; /*<>*/ return 0; /*<>*/ } function compare(cmp, o0, o1){ - /*<>*/ if(! o0) return o1 ? -1 : 0; - var v0 = o0[1]; + /*<>*/ if(! o0) + return o1 ? -1 : 0 /*<>*/ ; + var v0 = /*<>*/ o0[1]; if(! o1) /*<>*/ return 1; - var v1 = o1[1]; - /*<>*/ return /*<>*/ caml_call2 - (cmp, v0, v1); - /*<>*/ } + var v1 = /*<>*/ o1[1]; + /*<>*/ return caml_call2(cmp, v0, v1) /*<>*/ ; + } function to_result(none, param){ - /*<>*/ if(! param) /*<>*/ return [1, none]; - var v = param[1]; + /*<>*/ if(! param) + /*<>*/ return [1, none]; + var v = /*<>*/ param[1]; /*<>*/ return [0, v]; - } + /*<>*/ } function to_list(param){ /*<>*/ if(! param) /*<>*/ return 0; - var v = param[1]; + var v = /*<>*/ param[1]; /*<>*/ return [0, v, 0]; /*<>*/ } function to_seq(param){ /*<>*/ if(! param) /*<>*/ return Stdlib_Seq[20]; - var v = param[1]; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Seq[21], v); - /*<>*/ } + var v = /*<>*/ param[1]; + /*<>*/ return caml_call1(Stdlib_Seq[21], v) /*<>*/ ; + } var Stdlib_Option = - [0, + /*<>*/ [0, 0, some, value, @@ -2718,7 +2682,7 @@ to_seq]; runtime.caml_register_global(3, Stdlib_Option, "Stdlib__Option"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Result @@ -2727,12 +2691,12 @@ (globalThis){ "use strict"; var runtime = globalThis.jsoo_runtime; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -2752,86 +2716,81 @@ function value(r, default$0){ /*<>*/ if(0 !== r[0]) /*<>*/ return default$0; - var v = r[1]; + var v = /*<>*/ r[1]; /*<>*/ return v; /*<>*/ } function get_ok(param){ /*<>*/ if(0 !== param[0]) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_result_is_Error); - var v = param[1]; + /*<>*/ return caml_call1 + (Stdlib[1], cst_result_is_Error) /*<>*/ ; + var v = /*<>*/ param[1]; /*<>*/ return v; /*<>*/ } function get_error(param){ /*<>*/ if(0 === param[0]) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_result_is_Ok); - var e = param[1]; + /*<>*/ return caml_call1(Stdlib[1], cst_result_is_Ok) /*<>*/ ; + var e = /*<>*/ param[1]; /*<>*/ return e; /*<>*/ } function bind(r, f){ /*<>*/ if(0 !== r[0]) /*<>*/ return r; - var v = r[1]; - /*<>*/ return /*<>*/ caml_call1(f, v); - /*<>*/ } + var v = /*<>*/ r[1]; + /*<>*/ return caml_call1(f, v) /*<>*/ ; + } function join(e){ /*<>*/ if(0 !== e[0]) /*<>*/ return e; - var r = e[1]; + var r = /*<>*/ e[1]; /*<>*/ return r; /*<>*/ } function map(f, e){ - /*<>*/ if(0 !== e[0]) /*<>*/ return e; - var v = e[1]; - /*<>*/ return [0, - /*<>*/ caml_call1(f, v)]; - } + /*<>*/ if(0 !== e[0]) /*<>*/ return e; + var v = /*<>*/ e[1]; + /*<>*/ return [0, caml_call1(f, v)] /*<>*/ ; + /*<>*/ } function map_error(f, v){ - /*<>*/ if(0 === v[0]) /*<>*/ return v; - var e = v[1]; - /*<>*/ return [1, - /*<>*/ caml_call1(f, e)]; - } + /*<>*/ if(0 === v[0]) /*<>*/ return v; + var e = /*<>*/ v[1]; + /*<>*/ return [1, caml_call1(f, e)] /*<>*/ ; + /*<>*/ } function fold(ok, error, param){ - /*<>*/ if(0 === param[0]){ + /*<>*/ if(0 === param[0]){ var v = param[1]; - /*<>*/ return /*<>*/ caml_call1 - (ok, v); + /*<>*/ return caml_call1(ok, v) /*<>*/ ; } - var e = param[1]; - /*<>*/ return /*<>*/ caml_call1 - (error, e); + var e = /*<>*/ param[1]; + /*<>*/ return caml_call1(error, e) /*<>*/ ; } function iter(f, param){ - /*<>*/ if(0 !== param[0]) /*<>*/ return 0; - var v = param[1]; - /*<>*/ return /*<>*/ caml_call1(f, v); + /*<>*/ if(0 !== param[0]) + /*<>*/ return 0; + var v = /*<>*/ param[1]; + /*<>*/ return caml_call1(f, v) /*<>*/ ; } function iter_error(f, param){ - /*<>*/ if(0 === param[0]) /*<>*/ return 0; - var e = param[1]; - /*<>*/ return /*<>*/ caml_call1(f, e); + /*<>*/ if(0 === param[0]) + /*<>*/ return 0; + var e = /*<>*/ param[1]; + /*<>*/ return caml_call1(f, e) /*<>*/ ; } function is_ok(param){ - /*<>*/ return 0 === param[0] ? 1 : 0; - /*<>*/ } + /*<>*/ return 0 === param[0] ? 1 : 0 /*<>*/ ; + } function is_error(param){ - /*<>*/ return 0 === param[0] ? 0 : 1; - /*<>*/ } + /*<>*/ return 0 === param[0] ? 0 : 1 /*<>*/ ; + } function equal(ok, error, r0, r1){ /*<>*/ if(0 === r0[0]){ var v0 = r0[1]; if(0 === r1[0]){ var v1 = r1[1]; - /*<>*/ return /*<>*/ caml_call2 - (ok, v0, v1); + /*<>*/ return caml_call2(ok, v0, v1) /*<>*/ ; } } else{ - var e0 = r0[1]; + var e0 = /*<>*/ r0[1]; if(0 !== r1[0]){ var e1 = r1[1]; - /*<>*/ return /*<>*/ caml_call2 - (error, e0, e1); + /*<>*/ return caml_call2(error, e0, e1) /*<>*/ ; } } /*<>*/ return 0; @@ -2840,38 +2799,35 @@ /*<>*/ if(0 === r0[0]){ var v0 = r0[1]; if(0 !== r1[0]) /*<>*/ return -1; - var v1 = r1[1]; - /*<>*/ return /*<>*/ caml_call2 - (ok, v0, v1); + var v1 = /*<>*/ r1[1]; + /*<>*/ return caml_call2(ok, v0, v1) /*<>*/ ; } - var e0 = r0[1]; + var e0 = /*<>*/ r0[1]; if(0 === r1[0]) /*<>*/ return 1; - var e1 = r1[1]; - /*<>*/ return /*<>*/ caml_call2 - (error, e0, e1); - /*<>*/ } + var e1 = /*<>*/ r1[1]; + /*<>*/ return caml_call2(error, e0, e1) /*<>*/ ; + } function to_option(param){ /*<>*/ if(0 !== param[0]) /*<>*/ return 0; - var v = param[1]; + var v = /*<>*/ param[1]; /*<>*/ return [0, v]; /*<>*/ } function to_list(param){ /*<>*/ if(0 !== param[0]) /*<>*/ return 0; - var v = param[1]; + var v = /*<>*/ param[1]; /*<>*/ return [0, v, 0]; /*<>*/ } function to_seq(param){ /*<>*/ if(0 !== param[0]) /*<>*/ return Stdlib_Seq[20]; - var v = param[1]; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Seq[21], v); - /*<>*/ } + var v = /*<>*/ param[1]; + /*<>*/ return caml_call1(Stdlib_Seq[21], v) /*<>*/ ; + } var Stdlib_Result = - [0, + /*<>*/ [0, ok, error, value, @@ -2893,46 +2849,44 @@ to_seq]; runtime.caml_register_global(4, Stdlib_Result, "Stdlib__Result"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Bool (function(globalThis){ "use strict"; var runtime = globalThis.jsoo_runtime, caml_hash = runtime.caml_hash; - function equal(_d_, _c_){ /*<>*/ return _d_ === _c_ ? 1 : 0;} + function equal(_d_, _c_){return _d_ === _c_ ? 1 : 0;} var compare = runtime.caml_int_compare, cst_true = "true", cst_false = "false"; function to_float(param){ - /*<>*/ return param ? 1. : 0.; - /*<>*/ } + /*<>*/ return param ? 1. : 0. /*<>*/ ; + } function to_string(param){ - /*<>*/ return param ? cst_true : cst_false; - /*<>*/ } + /*<>*/ return param ? cst_true : cst_false /*<>*/ ; + } function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, seed, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, seed, x) /*<>*/ ; + } function hash(x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, 0, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, 0, x) /*<>*/ ; + } var Stdlib_Bool = - [0, - function(_b_){ /*<>*/ return 1 - _b_;}, + /*<>*/ [0, + function(_b_){return 1 - _b_;}, equal, compare, - function(_a_){ /*<>*/ return _a_;}, + function(_a_){return _a_;}, to_float, to_string, seeded_hash, hash]; runtime.caml_register_global(4, Stdlib_Bool, "Stdlib__Bool"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Char @@ -2946,7 +2900,7 @@ caml_create_bytes = runtime.caml_create_bytes, caml_hash = runtime.caml_hash, caml_string_of_bytes = runtime.caml_string_of_bytes; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); @@ -2964,19 +2918,18 @@ function chr(n){ /*<>*/ if(0 <= n && 255 >= n) /*<>*/ return n; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Char_chr); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[1], cst_Char_chr) /*<>*/ ; + } function escaped(c){ - /*<>*/ a: + a: { - if(40 <= c){ + /*<>*/ if(40 <= c){ if(92 === c) /*<>*/ return cst; - if(127 > c) break a; + /*<>*/ if(127 > c) break a; } else{ if(32 <= c){if(39 <= c) /*<>*/ return cst$0; break a;} - if(14 > c) + /*<>*/ if(14 > c) switch(c){ case 8: /*<>*/ return cst_b; @@ -2988,42 +2941,39 @@ /*<>*/ return cst_r; } } - /*<>*/ /*<>*/ var - s = /*<>*/ caml_create_bytes(4); - caml_bytes_unsafe_set(s, 0, 92); - caml_bytes_unsafe_set(s, 1, 48 + (c / 100 | 0) | 0); - caml_bytes_unsafe_set(s, 2, 48 + ((c / 10 | 0) % 10 | 0) | 0); - caml_bytes_unsafe_set(s, 3, 48 + (c % 10 | 0) | 0); - return caml_string_of_bytes(s); - } - /*<>*/ /*<>*/ var - s$0 = /*<>*/ caml_create_bytes(1); - caml_bytes_unsafe_set(s$0, 0, c); - return caml_string_of_bytes(s$0); - /*<>*/ } + var s = /*<>*/ caml_create_bytes(4); + /*<>*/ caml_bytes_unsafe_set(s, 0, 92); + /*<>*/ caml_bytes_unsafe_set(s, 1, 48 + (c / 100 | 0) | 0); + /*<>*/ caml_bytes_unsafe_set + (s, 2, 48 + ((c / 10 | 0) % 10 | 0) | 0); + /*<>*/ caml_bytes_unsafe_set(s, 3, 48 + (c % 10 | 0) | 0); + /*<>*/ return caml_string_of_bytes(s) /*<>*/ ; + } + var s$0 = /*<>*/ caml_create_bytes(1); + /*<>*/ caml_bytes_unsafe_set(s$0, 0, c); + /*<>*/ return caml_string_of_bytes(s$0) /*<>*/ ; + } function lowercase_ascii(c){ - /*<>*/ return 25 < c - 65 >>> 0 ? c : c + 32 | 0; - /*<>*/ } + /*<>*/ return 25 < c - 65 >>> 0 ? c : c + 32 | 0 /*<>*/ ; + } function uppercase_ascii(c){ - /*<>*/ return 25 < c - 97 >>> 0 ? c : c - 32 | 0; - /*<>*/ } + /*<>*/ return 25 < c - 97 >>> 0 ? c : c - 32 | 0 /*<>*/ ; + } function compare(c1, c2){ /*<>*/ return c1 - c2 | 0; /*<>*/ } function equal(c1, c2){ - /*<>*/ return 0 === (c1 - c2 | 0) ? 1 : 0; + /*<>*/ return 0 === (c1 - c2 | 0) ? 1 : 0; /*<>*/ } function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, seed, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, seed, x) /*<>*/ ; + } function hash(x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, 0, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, 0, x) /*<>*/ ; + } var Stdlib_Char = - [0, + /*<>*/ [0, chr, escaped, lowercase_ascii, @@ -3034,7 +2984,7 @@ hash]; runtime.caml_register_global(8, Stdlib_Char, "Stdlib__Char"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Uchar @@ -3047,12 +2997,12 @@ cst_uchar_ml = "uchar.ml", caml_format_int = runtime.caml_format_int, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -3071,16 +3021,22 @@ function succ(u){ /*<>*/ return u === 55295 ? hi_bound - : u === 1114111 ? caml_call1(Stdlib[1], err_no_succ) : u + 1 | 0; - /*<>*/ } + : u + === 1114111 + ? /*<>*/ caml_call1(Stdlib[1], err_no_succ) + : u + 1 | 0 /*<>*/ ; + } function pred(u){ /*<>*/ return u === 57344 ? lo_bound - : u === 0 ? caml_call1(Stdlib[1], err_no_pred) : u - 1 | 0; - /*<>*/ } + : u + === 0 + ? /*<>*/ caml_call1(Stdlib[1], err_no_pred) + : u - 1 | 0 /*<>*/ ; + } function is_valid(i){ - /*<>*/ var - _n_ = 0 <= i ? 1 : 0, + var + _n_ = /*<>*/ 0 <= i ? 1 : 0, _o_ = _n_ ? i <= 55295 ? 1 : 0 : _n_; if(_o_) var _p_ = _o_; @@ -3089,16 +3045,15 @@ return _p_; /*<>*/ } function of_int(i){ - /*<>*/ if(is_valid(i)) /*<>*/ return i; - /*<>*/ /*<>*/ var + /*<>*/ if(is_valid(i)) /*<>*/ return i; + var _m_ = - /*<>*/ caml_call2 + /*<>*/ /*<>*/ caml_call2 (Stdlib[28], /*<>*/ caml_format_int("%X", i), cst_is_not_an_Unicode_scalar_v); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], _m_); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[1], _m_); + } function is_char(u){ /*<>*/ return u < 256 ? 1 : 0; /*<>*/ } @@ -3107,26 +3062,24 @@ /*<>*/ } function to_char(u){ /*<>*/ if(255 >= u) /*<>*/ return u; - /*<>*/ var - /*<>*/ _k_ = + var + _k_ = /*<>*/ caml_call2 (Stdlib[28], - /*<>*/ caml_format_int("%04X", u), + caml_format_int("%04X", u), cst_is_not_a_latin1_character), - /*<>*/ _l_ = - /*<>*/ caml_call2(Stdlib[28], cst_U, _k_); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], _l_); - /*<>*/ } + _l_ = /*<>*/ caml_call2(Stdlib[28], cst_U, _k_); + /*<>*/ return caml_call1(Stdlib[1], _l_) /*<>*/ ; + } function unsafe_to_char(_j_){ /*<>*/ return _j_;} - function equal(_i_, _h_){ /*<>*/ return _i_ === _h_ ? 1 : 0;} + function equal(_i_, _h_){return _i_ === _h_ ? 1 : 0;} var compare = runtime.caml_int_compare, _a_ = [0, cst_uchar_ml, 85, 7], _b_ = [0, cst_uchar_ml, 80, 18], _c_ = [0, cst_uchar_ml, 91, 7], _d_ = [0, cst_uchar_ml, 88, 18]; - function hash(_g_){ /*<>*/ return _g_;} + function hash(_g_){return _g_;} function utf_decode_is_valid(d){ /*<>*/ return 1 === (d >>> 27 | 0) ? 1 : 0; /*<>*/ } @@ -3143,30 +3096,30 @@ /*<>*/ return n << 24 | 65533; /*<>*/ } function utf_8_byte_length(u){ - /*<>*/ if(0 > u) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(0 > u) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _b_], 1); /*<>*/ if(127 >= u) /*<>*/ return 1; /*<>*/ if(2047 >= u) /*<>*/ return 2; /*<>*/ if(65535 >= u) /*<>*/ return 3; /*<>*/ if(1114111 < u) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _a_], 1); /*<>*/ return 4; /*<>*/ } function utf_16_byte_length(u){ - /*<>*/ if(0 > u) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(0 > u) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _d_], 1); /*<>*/ if(65535 >= u) /*<>*/ return 2; /*<>*/ if(1114111 < u) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _c_], 1); /*<>*/ return 4; /*<>*/ } var Stdlib_Uchar = - [0, + /*<>*/ [0, 0, 1114111, 65279, @@ -3175,8 +3128,8 @@ pred, is_valid, of_int, - function(_f_){ /*<>*/ return _f_;}, - function(_e_){ /*<>*/ return _e_;}, + function(_f_){return _f_;}, + function(_e_){return _e_;}, is_char, of_char, to_char, @@ -3193,7 +3146,7 @@ utf_16_byte_length]; runtime.caml_register_global(13, Stdlib_Uchar, "Stdlib__Uchar"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__List @@ -3207,17 +3160,17 @@ cst_List_nth$1 = "List.nth", caml_compare = runtime.caml_compare, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); @@ -3231,12 +3184,12 @@ cst_List_nth = cst_List_nth$1, cst_List_nth$0 = cst_List_nth$1; function length(l$0){ - /*<>*/ var len = 0, param = l$0; + var len = /*<>*/ 0, param = l$0; for(;;){ - if(! param) /*<>*/ return len; - /*<>*/ var - l = param[2], - /*<>*/ len$0 = len + 1 | 0; + /*<>*/ if(! param) /*<>*/ return len; + var + l = /*<>*/ param[2], + len$0 = /*<>*/ len + 1 | 0; len = len$0; param = l; } @@ -3246,51 +3199,46 @@ /*<>*/ } function hd(param){ /*<>*/ if(! param) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[2], cst_hd); - var a = param[1]; + /*<>*/ return caml_call1(Stdlib[2], cst_hd) /*<>*/ ; + var a = /*<>*/ param[1]; /*<>*/ return a; /*<>*/ } function tl(param){ /*<>*/ if(! param) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[2], cst_tl); - var l = param[2]; + /*<>*/ return caml_call1(Stdlib[2], cst_tl) /*<>*/ ; + var l = /*<>*/ param[2]; /*<>*/ return l; /*<>*/ } function nth(l, n){ /*<>*/ if(0 > n) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_nth); - var l$0 = l, n$0 = n; - /*<>*/ for(;;){ - if(! l$0) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[2], cst_nth); - var l$1 = l$0[2], a = l$0[1]; + /*<>*/ return caml_call1(Stdlib[1], cst_List_nth) /*<>*/ ; + var l$0 = /*<>*/ l, n$0 = n; + for(;;){ + /*<>*/ if(! l$0) + /*<>*/ return caml_call1(Stdlib[2], cst_nth) /*<>*/ ; + var l$1 = /*<>*/ l$0[2], a = l$0[1]; /*<>*/ if(0 === n$0) /*<>*/ return a; - /*<>*/ /*<>*/ var n$1 = n$0 - 1 | 0; + var n$1 = /*<>*/ n$0 - 1 | 0; l$0 = l$1; n$0 = n$1; } /*<>*/ } function nth_opt(l, n){ /*<>*/ if(0 > n) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_nth$0); - var l$0 = l, n$0 = n; - /*<>*/ for(;;){ - if(! l$0) /*<>*/ return 0; - var l$1 = l$0[2], a = l$0[1]; + /*<>*/ return caml_call1(Stdlib[1], cst_List_nth$0) /*<>*/ ; + var l$0 = /*<>*/ l, n$0 = n; + for(;;){ + /*<>*/ if(! l$0) /*<>*/ return 0; + var l$1 = /*<>*/ l$0[2], a = l$0[1]; /*<>*/ if(0 === n$0) /*<>*/ return [0, a]; - /*<>*/ /*<>*/ var n$1 = n$0 - 1 | 0; + var n$1 = /*<>*/ n$0 - 1 | 0; l$0 = l$1; n$0 = n$1; } /*<>*/ } var - append = Stdlib[37], + append = /*<>*/ Stdlib[37], cst_List_init = "List.init", cst_List_map2 = cst_List_map2$1, cst_List_map2$0 = cst_List_map2$1, @@ -3303,47 +3251,43 @@ _a_ = [0, 0, 0], cst_List_combine = "List.combine"; function rev_append(l1, l2){ - /*<>*/ var l1$0 = l1, l2$0 = l2; - /*<>*/ for(;;){ + var l1$0 = /*<>*/ l1, l2$0 = l2; + for(;;){ if(! l1$0) /*<>*/ return l2$0; - /*<>*/ var - l1$1 = l1$0[2], + var + l1$1 = /*<>*/ l1$0[2], a = l1$0[1], - /*<>*/ l2$1 = [0, a, l2$0]; + l2$1 = /*<>*/ [0, a, l2$0]; l1$0 = l1$1; l2$0 = l2$1; } /*<>*/ } function rev(l){ - /*<>*/ return rev_append(l, 0); - /*<>*/ } + /*<>*/ return rev_append(l, 0) /*<>*/ ; + } function init(len, f){ /*<>*/ if(0 > len) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_init); - var last = len - 1 | 0, i$1 = 0; - if(last < 0) /*<>*/ return 0; - if(0 === last) - /*<>*/ return [0, - /*<>*/ caml_call1(f, i$1), - 0]; - /*<>*/ var - /*<>*/ r1 = /*<>*/ caml_call1(f, i$1), - /*<>*/ r2 = /*<>*/ caml_call1(f, 1), - /*<>*/ block = [0, r2, 24029], - dst = block, + /*<>*/ return caml_call1(Stdlib[1], cst_List_init) /*<>*/ ; + var last = /*<>*/ len - 1 | 0, i$1 = 0; + /*<>*/ if(last < 0) /*<>*/ return 0; + /*<>*/ if(0 === last) + /*<>*/ return [0, caml_call1(f, i$1), 0] /*<>*/ ; + var + r1 = /*<>*/ caml_call1(f, i$1), + r2 = /*<>*/ caml_call1(f, 1), + block = /*<>*/ [0, r2, 24029], + dst = /*<>*/ block, offset = 1, i = 2; - /*<>*/ for(;;){ - if(last < i) - dst[1 + offset] = 0; + for(;;){ + /*<>*/ if(last < i) + /*<>*/ dst[1 + offset] = 0; else{ - if(i !== last){ - /*<>*/ var - /*<>*/ r1$0 = /*<>*/ caml_call1(f, i), - /*<>*/ r2$0 = - /*<>*/ caml_call1(f, i + 1 | 0), - /*<>*/ dst$0 = [0, r2$0, 24029]; + /*<>*/ if(i !== last){ + var + r1$0 = /*<>*/ caml_call1(f, i), + r2$0 = /*<>*/ caml_call1(f, i + 1 | 0), + dst$0 = /*<>*/ [0, r2$0, 24029]; dst[1 + offset] = [0, r1$0, dst$0]; var i$0 = i + 2 | 0; dst = dst$0; @@ -3351,95 +3295,87 @@ i = i$0; continue; } - dst[1 + offset] = [0, /*<>*/ caml_call1(f, i), 0]; + /*<>*/ dst[1 + offset] = [0, caml_call1(f, i), 0]; } - /*<>*/ return [0, r1, block]; + /*<>*/ return [0, r1, block]; } /*<>*/ } function flatten(param){ /*<>*/ if(! param) /*<>*/ return 0; - /*<>*/ var - r = param[2], + var + r = /*<>*/ param[2], l = param[1], - /*<>*/ _I_ = flatten(r); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[37], l, _I_); - /*<>*/ } + _I_ = /*<>*/ flatten(r); + /*<>*/ return caml_call2(Stdlib[37], l, _I_); + } function map(f, param){ - /*<>*/ if(! param) /*<>*/ return 0; - var match = param[2], a1 = param[1]; + /*<>*/ if(! param) /*<>*/ return 0; + var match = /*<>*/ param[2], a1 = param[1]; if(! match){ - /*<>*/ /*<>*/ var - r1$0 = /*<>*/ caml_call1(f, a1); + var r1$0 = /*<>*/ caml_call1(f, a1); /*<>*/ return [0, r1$0, 0]; } - /*<>*/ var - l = match[2], + var + l = /*<>*/ match[2], a2 = match[1], - /*<>*/ r1 = /*<>*/ caml_call1(f, a1), - /*<>*/ r2 = /*<>*/ caml_call1(f, a2), - /*<>*/ block = [0, r2, 24029], - dst = block, + r1 = /*<>*/ caml_call1(f, a1), + r2 = /*<>*/ caml_call1(f, a2), + block = /*<>*/ [0, r2, 24029], + dst = /*<>*/ block, offset = 1, param$0 = l; for(;;){ - if(param$0){ + /*<>*/ if(param$0){ var match$0 = param$0[2], a1$0 = param$0[1]; if(match$0){ - /*<>*/ var + var l$0 = match$0[2], a2$0 = match$0[1], - /*<>*/ r1$1 = - /*<>*/ caml_call1(f, a1$0), - /*<>*/ r2$0 = - /*<>*/ caml_call1(f, a2$0), - /*<>*/ dst$0 = [0, r2$0, 24029]; + r1$1 = /*<>*/ caml_call1(f, a1$0), + r2$0 = /*<>*/ caml_call1(f, a2$0), + dst$0 = /*<>*/ [0, r2$0, 24029]; dst[1 + offset] = [0, r1$1, dst$0]; dst = dst$0; offset = 1; param$0 = l$0; continue; } - /*<>*/ /*<>*/ var - r1$2 = /*<>*/ caml_call1(f, a1$0); - dst[1 + offset] = [0, r1$2, 0]; + var r1$2 = /*<>*/ caml_call1(f, a1$0); + /*<>*/ dst[1 + offset] = [0, r1$2, 0]; } else - dst[1 + offset] = 0; - /*<>*/ return [0, r1, block]; + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return [0, r1, block]; } } function mapi(f, l$1){ - /*<>*/ var i$1 = 0; - if(! l$1) /*<>*/ return 0; - var match = l$1[2], a1 = l$1[1]; + var i$1 = /*<>*/ 0; + /*<>*/ if(! l$1) /*<>*/ return 0; + var match = /*<>*/ l$1[2], a1 = l$1[1]; if(! match){ - /*<>*/ /*<>*/ var - r1$0 = /*<>*/ caml_call2(f, i$1, a1); + var r1$0 = /*<>*/ caml_call2(f, i$1, a1); /*<>*/ return [0, r1$0, 0]; } - /*<>*/ var - l = match[2], + var + l = /*<>*/ match[2], a2 = match[1], - /*<>*/ r1 = /*<>*/ caml_call2(f, i$1, a1), - /*<>*/ r2 = /*<>*/ caml_call2(f, 1, a2), - /*<>*/ block = [0, r2, 24029], - dst = block, + r1 = /*<>*/ caml_call2(f, i$1, a1), + r2 = /*<>*/ caml_call2(f, 1, a2), + block = /*<>*/ [0, r2, 24029], + dst = /*<>*/ block, offset = 1, i = 2, param = l; for(;;){ - if(param){ + /*<>*/ if(param){ var match$0 = param[2], a1$0 = param[1]; if(match$0){ - /*<>*/ var + var l$0 = match$0[2], a2$0 = match$0[1], - /*<>*/ r1$1 = - /*<>*/ caml_call2(f, i, a1$0), - /*<>*/ r2$0 = - /*<>*/ caml_call2(f, i + 1 | 0, a2$0), - /*<>*/ dst$0 = [0, r2$0, 24029]; + r1$1 = /*<>*/ caml_call2(f, i, a1$0), + r2$0 = /*<>*/ caml_call2(f, i + 1 | 0, a2$0), + dst$0 = /*<>*/ [0, r2$0, 24029]; dst[1 + offset] = [0, r1$1, dst$0]; var i$0 = i + 2 | 0; dst = dst$0; @@ -3448,67 +3384,64 @@ param = l$0; continue; } - /*<>*/ /*<>*/ var - r1$2 = /*<>*/ caml_call2(f, i, a1$0); - dst[1 + offset] = [0, r1$2, 0]; + var r1$2 = /*<>*/ caml_call2(f, i, a1$0); + /*<>*/ dst[1 + offset] = [0, r1$2, 0]; } else - dst[1 + offset] = 0; - /*<>*/ return [0, r1, block]; + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return [0, r1, block]; } /*<>*/ } function rev_map(f, l){ - /*<>*/ var accu = 0, param = l; + var accu = /*<>*/ 0, param = l; for(;;){ - if(! param) /*<>*/ return accu; - /*<>*/ var - l$0 = param[2], + /*<>*/ if(! param) /*<>*/ return accu; + var + l$0 = /*<>*/ param[2], a = param[1], - /*<>*/ accu$0 = - [0, /*<>*/ caml_call1(f, a), accu]; - accu = accu$0; + accu$0 = /*<>*/ [0, caml_call1(f, a), accu]; + /*<>*/ accu = accu$0; param = l$0; } /*<>*/ } function iter(f, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[2], a = param$0[1]; - /*<>*/ /*<>*/ caml_call1(f, a); - param$0 = l; + var l = /*<>*/ param$0[2], a = param$0[1]; + /*<>*/ caml_call1(f, a); + /*<>*/ param$0 = l; } - } + /*<>*/ } function iteri(f, l$0){ - /*<>*/ var i = 0, param = l$0; + var i = /*<>*/ 0, param = l$0; for(;;){ - if(! param) /*<>*/ return 0; - var l = param[2], a = param[1]; - /*<>*/ /*<>*/ caml_call2(f, i, a); - var i$0 = i + 1 | 0; + /*<>*/ if(! param) /*<>*/ return 0; + var l = /*<>*/ param[2], a = param[1]; + /*<>*/ caml_call2(f, i, a); + var i$0 = /*<>*/ i + 1 | 0; i = i$0; param = l; } /*<>*/ } function fold_left(f, accu, l){ - /*<>*/ var accu$0 = accu, l$0 = l; - /*<>*/ for(;;){ + var accu$0 = /*<>*/ accu, l$0 = l; + for(;;){ if(! l$0) /*<>*/ return accu$0; - /*<>*/ var - l$1 = l$0[2], + var + l$1 = /*<>*/ l$0[2], a = l$0[1], - /*<>*/ accu$1 = - /*<>*/ caml_call2(f, accu$0, a); - accu$0 = accu$1; + accu$1 = /*<>*/ caml_call2(f, accu$0, a); + /*<>*/ accu$0 = accu$1; l$0 = l$1; } /*<>*/ } function fold_right(f, l, accu){ /*<>*/ if(! l) /*<>*/ return accu; - var l$0 = l[2], a = l[1]; - /*<>*/ return /*<>*/ caml_call2 - (f, a, fold_right(f, l$0, accu)); - /*<>*/ } + var l$0 = /*<>*/ l[2], a = l[1]; + /*<>*/ return /*<>*/ caml_call2 + (f, a, /*<>*/ fold_right(f, l$0, accu)) /*<>*/ ; + } function map2(f, l1, l2){ /*<>*/ if(l1){ var _G_ = l1[2], a1 = l1[1]; @@ -3516,41 +3449,37 @@ if(l2){ var match = l2[2]; if(match){ - /*<>*/ var + var l2$0 = match[2], b2 = match[1], b1 = l2[1], l1$0 = _G_[2], a2 = _G_[1], - /*<>*/ r1 = - /*<>*/ caml_call2(f, a1, b1), - /*<>*/ r2 = - /*<>*/ caml_call2(f, a2, b2), - /*<>*/ block = [0, r2, 24029], - dst = block, + r1 = /*<>*/ caml_call2(f, a1, b1), + r2 = /*<>*/ caml_call2(f, a2, b2), + block = /*<>*/ [0, r2, 24029], + dst = /*<>*/ block, offset = 1, l1$1 = l1$0, l2$1 = l2$0; - /*<>*/ for(;;){ + for(;;){ a: { - if(l1$1){ + /*<>*/ if(l1$1){ var _H_ = l1$1[2], a1$0 = l1$1[1]; if(_H_){ if(l2$1){ var match$0 = l2$1[2]; if(match$0){ - /*<>*/ var + var l2$2 = match$0[2], b2$0 = match$0[1], b1$1 = l2$1[1], l1$2 = _H_[2], a2$0 = _H_[1], - /*<>*/ r1$1 = - /*<>*/ caml_call2(f, a1$0, b1$1), - /*<>*/ r2$0 = - /*<>*/ caml_call2(f, a2$0, b2$0), - /*<>*/ dst$0 = [0, r2$0, 24029]; + r1$1 = /*<>*/ caml_call2(f, a1$0, b1$1), + r2$0 = /*<>*/ caml_call2(f, a2$0, b2$0), + dst$0 = /*<>*/ [0, r2$0, 24029]; dst[1 + offset] = [0, r1$1, dst$0]; dst = dst$0; offset = 1; @@ -3561,558 +3490,567 @@ } } else if(l2$1 && ! l2$1[2]){ - /*<>*/ var - b1$2 = l2$1[1], - /*<>*/ r1$2 = - /*<>*/ caml_call2(f, a1$0, b1$2); - dst[1 + offset] = [0, r1$2, 0]; + var + b1$2 = /*<>*/ l2$1[1], + r1$2 = /*<>*/ caml_call2(f, a1$0, b1$2); + /*<>*/ dst[1 + offset] = [0, r1$2, 0]; break a; } } - else if(! l2$1){dst[1 + offset] = 0; break a;} - dst[1 + offset] = caml_call1(Stdlib[1], cst_List_map2$0); + else if(! l2$1){ + /*<>*/ dst[1 + offset] = 0; + break a; + } + /*<>*/ dst[1 + offset] = + caml_call1(Stdlib[1], cst_List_map2$0); } - /*<>*/ return [0, r1, block]; + /*<>*/ return [0, r1, block]; } } } } else if(l2 && ! l2[2]){ - /*<>*/ var - b1$0 = l2[1], - /*<>*/ r1$0 = - /*<>*/ caml_call2(f, a1, b1$0); + var + b1$0 = /*<>*/ l2[1], + r1$0 = /*<>*/ caml_call2(f, a1, b1$0); /*<>*/ return [0, r1$0, 0]; } } else if(! l2) /*<>*/ return 0; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_map2); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[1], cst_List_map2) /*<>*/ ; + } function rev_map2(f, l1, l2){ - /*<>*/ var accu = 0, l1$0 = l1, l2$0 = l2; - /*<>*/ for(;;){ - if(l1$0){ + var accu = /*<>*/ 0, l1$0 = l1, l2$0 = l2; + for(;;){ + /*<>*/ if(l1$0){ if(l2$0){ - /*<>*/ var + var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1], - /*<>*/ accu$0 = - [0, /*<>*/ caml_call2(f, a1, a2), accu]; - accu = accu$0; + accu$0 = /*<>*/ [0, caml_call2(f, a1, a2), accu]; + /*<>*/ accu = accu$0; l1$0 = l1$1; l2$0 = l2$1; continue; } } else if(! l2$0) /*<>*/ return accu; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_rev_map2); + /*<>*/ return caml_call1(Stdlib[1], cst_List_rev_map2) /*<>*/ ; } - /*<>*/ } + } function iter2(f, l1, l2){ - /*<>*/ var l1$0 = l1, l2$0 = l2; - /*<>*/ for(;;){ + var l1$0 = /*<>*/ l1, l2$0 = l2; + for(;;){ if(l1$0){ if(l2$0){ var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1]; - /*<>*/ /*<>*/ caml_call2(f, a1, a2); - l1$0 = l1$1; + /*<>*/ caml_call2(f, a1, a2); + /*<>*/ l1$0 = l1$1; l2$0 = l2$1; continue; } } else if(! l2$0) /*<>*/ return 0; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_iter2); + /*<>*/ return caml_call1(Stdlib[1], cst_List_iter2) /*<>*/ ; } - /*<>*/ } + } function fold_left2(f, accu, l1, l2){ - /*<>*/ var accu$0 = accu, l1$0 = l1, l2$0 = l2; - /*<>*/ for(;;){ + var accu$0 = /*<>*/ accu, l1$0 = l1, l2$0 = l2; + for(;;){ if(l1$0){ if(l2$0){ - /*<>*/ var + var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1], - /*<>*/ accu$1 = - /*<>*/ caml_call3(f, accu$0, a1, a2); - accu$0 = accu$1; + accu$1 = /*<>*/ caml_call3(f, accu$0, a1, a2); + /*<>*/ accu$0 = accu$1; l1$0 = l1$1; l2$0 = l2$1; continue; } } else if(! l2$0) /*<>*/ return accu$0; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_fold_left2); + /*<>*/ return caml_call1(Stdlib[1], cst_List_fold_left2) /*<>*/ ; } - /*<>*/ } + } function fold_right2(f, l1, l2, accu){ /*<>*/ if(l1){ if(l2){ var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; - /*<>*/ return /*<>*/ caml_call3 - (f, a1, a2, fold_right2(f, l1$0, l2$0, accu)); + /*<>*/ return /*<>*/ caml_call3 + (f, + a1, + a2, + /*<>*/ fold_right2(f, l1$0, l2$0, accu)) /*<>*/ ; } } else if(! l2) /*<>*/ return accu; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_fold_right2); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[1], cst_List_fold_right2) /*<>*/ ; + } function for_all(p, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 1; - /*<>*/ var - l = param$0[2], + var + l = /*<>*/ param$0[2], a = param$0[1], - /*<>*/ _F_ = /*<>*/ caml_call1(p, a); - /*<>*/ if(! _F_) /*<>*/ return _F_; + _F_ = /*<>*/ caml_call1(p, a); + /*<>*/ if(! _F_) return _F_; param$0 = l; } - } + /*<>*/ } function exists(p, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - l = param$0[2], + var + l = /*<>*/ param$0[2], a = param$0[1], - /*<>*/ _E_ = /*<>*/ caml_call1(p, a); - /*<>*/ if(_E_) /*<>*/ return _E_; + _E_ = /*<>*/ caml_call1(p, a); + /*<>*/ if(_E_) return _E_; param$0 = l; } - } + /*<>*/ } function for_all2(p, l1, l2){ - /*<>*/ var l1$0 = l1, l2$0 = l2; - /*<>*/ for(;;){ + var l1$0 = /*<>*/ l1, l2$0 = l2; + for(;;){ if(l1$0){ if(l2$0){ - /*<>*/ var + var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1], - /*<>*/ _D_ = - /*<>*/ caml_call2(p, a1, a2); - /*<>*/ if(! _D_) /*<>*/ return _D_; + _D_ = /*<>*/ caml_call2(p, a1, a2); + /*<>*/ if(! _D_) return _D_; l1$0 = l1$1; l2$0 = l2$1; continue; } } else if(! l2$0) /*<>*/ return 1; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_for_all2); + /*<>*/ return caml_call1(Stdlib[1], cst_List_for_all2) /*<>*/ ; } - /*<>*/ } + } function exists2(p, l1, l2){ - /*<>*/ var l1$0 = l1, l2$0 = l2; - /*<>*/ for(;;){ + var l1$0 = /*<>*/ l1, l2$0 = l2; + for(;;){ if(l1$0){ if(l2$0){ - /*<>*/ var + var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1], - /*<>*/ _C_ = - /*<>*/ caml_call2(p, a1, a2); - /*<>*/ if(_C_) /*<>*/ return _C_; + _C_ = /*<>*/ caml_call2(p, a1, a2); + /*<>*/ if(_C_) return _C_; l1$0 = l1$1; l2$0 = l2$1; continue; } } else if(! l2$0) /*<>*/ return 0; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_exists2); + /*<>*/ return caml_call1(Stdlib[1], cst_List_exists2) /*<>*/ ; } - /*<>*/ } + } function mem(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; var - l = param$0[2], + l = /*<>*/ param$0[2], a = param$0[1], - _B_ = 0 === /*<>*/ caml_compare(a, x) ? 1 : 0; - if(_B_) return _B_; + _B_ = /*<>*/ 0 === caml_compare(a, x) ? 1 : 0; + /*<>*/ if(_B_) return _B_; param$0 = l; } - } + /*<>*/ } function memq(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[2], a = param$0[1], _A_ = a === x ? 1 : 0; + var + l = /*<>*/ param$0[2], + a = param$0[1], + _A_ = /*<>*/ a === x ? 1 : 0; if(_A_) return _A_; param$0 = l; } - } + /*<>*/ } function assoc(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Stdlib[8], 1); - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - /*<>*/ if - (0 === /*<>*/ caml_compare(a, x)) + /*<>*/ throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + l = /*<>*/ param$0[2], + match = param$0[1], + b = match[2], + a = match[1]; + /*<>*/ if(0 === caml_compare(a, x)) /*<>*/ return b; - param$0 = l; + /*<>*/ param$0 = l; } - } + /*<>*/ } function assoc_opt(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - /*<>*/ if - (0 === /*<>*/ caml_compare(a, x)) + var + l = /*<>*/ param$0[2], + match = param$0[1], + b = match[2], + a = match[1]; + /*<>*/ if(0 === caml_compare(a, x)) /*<>*/ return [0, b]; - param$0 = l; + /*<>*/ param$0 = l; } - } + /*<>*/ } function assq(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Stdlib[8], 1); - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(a === x) /*<>*/ return b; - param$0 = l; - } - } + /*<>*/ throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + l = /*<>*/ param$0[2], + match = param$0[1], + b = match[2], + a = match[1]; + /*<>*/ if(a === x) /*<>*/ return b; + /*<>*/ param$0 = l; + } + /*<>*/ } function assq_opt(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(a === x) /*<>*/ return [0, b]; - param$0 = l; - } - } + var + l = /*<>*/ param$0[2], + match = param$0[1], + b = match[2], + a = match[1]; + /*<>*/ if(a === x) + /*<>*/ return [0, b]; + /*<>*/ param$0 = l; + } + /*<>*/ } function mem_assoc(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; var - l = param$0[2], + l = /*<>*/ param$0[2], a = param$0[1][1], - _z_ = 0 === /*<>*/ caml_compare(a, x) ? 1 : 0; - if(_z_) return _z_; + _z_ = /*<>*/ 0 === caml_compare(a, x) ? 1 : 0; + /*<>*/ if(_z_) return _z_; param$0 = l; } - } + /*<>*/ } function mem_assq(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[2], a = param$0[1][1], _y_ = a === x ? 1 : 0; + var + l = /*<>*/ param$0[2], + a = param$0[1][1], + _y_ = /*<>*/ a === x ? 1 : 0; if(_y_) return _y_; param$0 = l; } - } + /*<>*/ } function remove_assoc(x, param){ - /*<>*/ if(! param) /*<>*/ return 0; - var l = param[2], pair = param[1], a = pair[1]; - /*<>*/ return 0 - === /*<>*/ caml_compare(a, x) + /*<>*/ if(! param) /*<>*/ return 0; + var l = /*<>*/ param[2], pair = param[1], a = pair[1]; + /*<>*/ return 0 === caml_compare(a, x) ? l - : [0, pair, remove_assoc(x, l)]; + : [0, pair, /*<>*/ remove_assoc(x, l)] /*<>*/ ; } function remove_assq(x, param){ - /*<>*/ if(! param) /*<>*/ return 0; - var l = param[2], pair = param[1], a = pair[1]; - return a === x ? l : [0, pair, remove_assq(x, l)]; + /*<>*/ if(! param) /*<>*/ return 0; + var l = /*<>*/ param[2], pair = param[1], a = pair[1]; + /*<>*/ return a === x + ? l + : [0, pair, /*<>*/ remove_assq(x, l)] /*<>*/ ; } function find(p, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Stdlib[8], 1); - var l = param$0[2], x = param$0[1]; - /*<>*/ if( /*<>*/ caml_call1(p, x)) + /*<>*/ throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = /*<>*/ param$0[2], x = param$0[1]; + /*<>*/ if(caml_call1(p, x)) /*<>*/ return x; - param$0 = l; + /*<>*/ param$0 = l; } - } + /*<>*/ } function find_opt(p, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[2], x = param$0[1]; - /*<>*/ if( /*<>*/ caml_call1(p, x)) + var l = /*<>*/ param$0[2], x = param$0[1]; + /*<>*/ if(caml_call1(p, x)) /*<>*/ return [0, x]; - param$0 = l; + /*<>*/ param$0 = l; } - } + /*<>*/ } function find_index(p){ - /*<>*/ /*<>*/ var i = 0; - /*<>*/ return function(param$0){ - var i$0 = i, param = param$0; + var i = /*<>*/ 0; + return function(param$0){ + var i$0 = /*<>*/ i, param = param$0; for(;;){ - if(! param) /*<>*/ return 0; - var l = param[2], a = param[1]; - /*<>*/ if( /*<>*/ caml_call1(p, a)) + /*<>*/ if(! param) /*<>*/ return 0; + var l = /*<>*/ param[2], a = param[1]; + /*<>*/ if(caml_call1(p, a)) /*<>*/ return [0, i$0]; - var i$1 = i$0 + 1 | 0; + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; param = l; - }}; + }} /*<>*/ ; /*<>*/ } function find_map(f, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - l = param$0[2], + var + l = /*<>*/ param$0[2], x = param$0[1], - /*<>*/ result = - /*<>*/ caml_call1(f, x); - if(result) /*<>*/ return result; - param$0 = l; + result = /*<>*/ caml_call1(f, x); + /*<>*/ if(result) /*<>*/ return result; + /*<>*/ param$0 = l; } - } + /*<>*/ } function find_mapi(f){ - /*<>*/ /*<>*/ var i = 0; - /*<>*/ return function(param$0){ - var i$0 = i, param = param$0; + var i = /*<>*/ 0; + return function(param$0){ + var i$0 = /*<>*/ i, param = param$0; for(;;){ - if(! param) /*<>*/ return 0; - /*<>*/ var - l = param[2], + /*<>*/ if(! param) /*<>*/ return 0; + var + l = /*<>*/ param[2], x = param[1], - /*<>*/ result = - /*<>*/ caml_call2(f, i$0, x); - if(result) /*<>*/ return result; - var i$1 = i$0 + 1 | 0; + result = /*<>*/ caml_call2(f, i$0, x); + /*<>*/ if(result) + /*<>*/ return result; + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; param = l; - }}; + }} /*<>*/ ; /*<>*/ } function find_all(p, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[2], x = param$0[1]; - /*<>*/ if( /*<>*/ caml_call1(p, x)){ - /*<>*/ var - /*<>*/ block = [0, x, 24029], - dst = block, + var l = /*<>*/ param$0[2], x = param$0[1]; + /*<>*/ if(caml_call1(p, x)){ + var + block = /*<>*/ [0, x, 24029], + dst = /*<>*/ block, offset = 1, param$1 = l; for(;;){ - if(! param$1){ - dst[1 + offset] = 0; - /*<>*/ return block; + /*<>*/ if(! param$1){ + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return block; } - var l$0 = param$1[2], x$0 = param$1[1]; - /*<>*/ if( /*<>*/ caml_call1(p, x$0)){ - /*<>*/ /*<>*/ var - dst$0 = [0, x$0, 24029]; + var l$0 = /*<>*/ param$1[2], x$0 = param$1[1]; + /*<>*/ if(caml_call1(p, x$0)){ + var dst$0 = /*<>*/ [0, x$0, 24029]; dst[1 + offset] = dst$0; dst = dst$0; offset = 1; param$1 = l$0; } else - param$1 = l$0; + /*<>*/ param$1 = l$0; } } else param$0 = l; } - } + /*<>*/ } function filteri(p, l$1){ - /*<>*/ var i = 0, param = l$1; + var i = /*<>*/ 0, param = l$1; for(;;){ - if(! param) /*<>*/ return 0; - /*<>*/ var - l = param[2], + /*<>*/ if(! param) /*<>*/ return 0; + var + l = /*<>*/ param[2], x = param[1], - /*<>*/ i$0 = i + 1 | 0; - /*<>*/ if( /*<>*/ caml_call2(p, i, x)) - break; - i = i$0; + i$0 = /*<>*/ i + 1 | 0; + /*<>*/ if(caml_call2(p, i, x)) break; + /*<>*/ i = i$0; param = l; } - /*<>*/ var - /*<>*/ block = [0, x, 24029], - dst = block, + var + block = /*<>*/ [0, x, 24029], + dst = /*<>*/ block, offset = 1, i$1 = i$0, param$0 = l; for(;;){ - if(! param$0){dst[1 + offset] = 0; /*<>*/ return block;} - /*<>*/ var - l$0 = param$0[2], + /*<>*/ if(! param$0){ + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return block; + } + var + l$0 = /*<>*/ param$0[2], x$0 = param$0[1], - /*<>*/ i$2 = i$1 + 1 | 0; - /*<>*/ if( /*<>*/ caml_call2(p, i$1, x$0)){ - /*<>*/ /*<>*/ var - dst$0 = [0, x$0, 24029]; + i$2 = /*<>*/ i$1 + 1 | 0; + /*<>*/ if(caml_call2(p, i$1, x$0)){ + var dst$0 = /*<>*/ [0, x$0, 24029]; dst[1 + offset] = dst$0; dst = dst$0; offset = 1; i$1 = i$2; param$0 = l$0; } - else{i$1 = i$2; param$0 = l$0;} + else{ /*<>*/ i$1 = i$2; param$0 = l$0;} } /*<>*/ } function filter_map(f, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - l = param$0[2], + var + l = /*<>*/ param$0[2], x = param$0[1], - /*<>*/ match = /*<>*/ caml_call1(f, x); - if(match){ - /*<>*/ var + match = /*<>*/ caml_call1(f, x); + /*<>*/ if(match){ + var v = match[1], - /*<>*/ block = [0, v, 24029], - dst = block, + block = /*<>*/ [0, v, 24029], + dst = /*<>*/ block, offset = 1, param$1 = l; for(;;){ - if(! param$1){ - dst[1 + offset] = 0; - /*<>*/ return block; + /*<>*/ if(! param$1){ + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return block; } - /*<>*/ var - l$0 = param$1[2], + var + l$0 = /*<>*/ param$1[2], x$0 = param$1[1], - /*<>*/ match$0 = - /*<>*/ caml_call1(f, x$0); - if(match$0){ - /*<>*/ var - v$0 = match$0[1], - /*<>*/ dst$0 = [0, v$0, 24029]; + match$0 = /*<>*/ caml_call1(f, x$0); + /*<>*/ if(match$0){ + var v$0 = match$0[1], dst$0 = /*<>*/ [0, v$0, 24029]; dst[1 + offset] = dst$0; dst = dst$0; offset = 1; param$1 = l$0; } else - param$1 = l$0; + /*<>*/ param$1 = l$0; } } else param$0 = l; } - } + /*<>*/ } function concat_map(f, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - xs = param$0[2], + var + xs = /*<>*/ param$0[2], x = param$0[1], - /*<>*/ ys = /*<>*/ caml_call1(f, x); - if(ys){ - /*<>*/ var + ys = /*<>*/ caml_call1(f, x); + /*<>*/ if(ys){ + var ys$1 = ys[2], y = ys[1], - /*<>*/ block = [0, y, 24029], - dst = block, + block = /*<>*/ [0, y, 24029], + dst = /*<>*/ block, offset = 1, ys$2 = ys$1, xs$1 = xs; - /*<>*/ for(;;) - if(ys$2){ - /*<>*/ var + for(;;) + /*<>*/ if(ys$2){ + var ys$3 = ys$2[2], y$0 = ys$2[1], - /*<>*/ dst$0 = [0, y$0, 24029]; + dst$0 = /*<>*/ [0, y$0, 24029]; dst[1 + offset] = dst$0; dst = dst$0; offset = 1; ys$2 = ys$3; } else{ - if(! xs$1){dst[1 + offset] = 0; /*<>*/ return block;} - /*<>*/ var - xs$0 = xs$1[2], + /*<>*/ if(! xs$1){ + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return block; + } + var + xs$0 = /*<>*/ xs$1[2], x$0 = xs$1[1], - /*<>*/ ys$0 = - /*<>*/ caml_call1(f, x$0); - ys$2 = ys$0; + ys$0 = /*<>*/ caml_call1(f, x$0); + /*<>*/ ys$2 = ys$0; xs$1 = xs$0; } } else - param$0 = xs; + /*<>*/ param$0 = xs; } - } + /*<>*/ } function fold_left_map(f, accu, l){ - /*<>*/ var accu$0 = accu, l_accu = 0, param = l; + var accu$0 = /*<>*/ accu, l_accu = 0, param = l; for(;;){ - if(! param) /*<>*/ return [0, accu$0, rev(l_accu)]; - /*<>*/ var - l$0 = param[2], + /*<>*/ if(! param) + /*<>*/ return [0, accu$0, rev(l_accu)] /*<>*/ ; + var + l$0 = /*<>*/ param[2], x = param[1], - /*<>*/ match = - /*<>*/ caml_call2(f, accu$0, x), - x$0 = match[2], + match = /*<>*/ caml_call2(f, accu$0, x), + x$0 = /*<>*/ match[2], accu$1 = match[1], - /*<>*/ l_accu$0 = [0, x$0, l_accu]; + l_accu$0 = /*<>*/ [0, x$0, l_accu]; accu$0 = accu$1; l_accu = l_accu$0; param = l$0; } /*<>*/ } function partition(p, l){ - /*<>*/ var yes = 0, no = 0, param = l; + var yes = /*<>*/ 0, no = 0, param = l; for(;;){ - if(! param){ - /*<>*/ /*<>*/ var _x_ = rev(no); - /*<>*/ return [0, rev(yes), _x_]; + /*<>*/ if(! param){ + var _x_ = /*<>*/ rev(no); + /*<>*/ return [0, rev(yes), _x_] /*<>*/ ; } - var l$0 = param[2], x = param[1]; - /*<>*/ if( /*<>*/ caml_call1(p, x)){ - /*<>*/ /*<>*/ var yes$0 = [0, x, yes]; + var l$0 = /*<>*/ param[2], x = param[1]; + /*<>*/ if(caml_call1(p, x)){ + var yes$0 = /*<>*/ [0, x, yes]; yes = yes$0; param = l$0; } else{ - /*<>*/ /*<>*/ var no$0 = [0, x, no]; + var no$0 = /*<>*/ [0, x, no]; no = no$0; param = l$0; } } /*<>*/ } function partition_map(p, l){ - /*<>*/ var left = 0, right = 0, param = l; + var left = /*<>*/ 0, right = 0, param = l; for(;;){ - if(! param){ - /*<>*/ /*<>*/ var _w_ = rev(right); - /*<>*/ return [0, rev(left), _w_]; + /*<>*/ if(! param){ + var _w_ = /*<>*/ rev(right); + /*<>*/ return [0, rev(left), _w_] /*<>*/ ; } - /*<>*/ var - l$0 = param[2], + var + l$0 = /*<>*/ param[2], x = param[1], - /*<>*/ match = /*<>*/ caml_call1(p, x); - if(0 === match[0]){ - /*<>*/ var - v = match[1], - /*<>*/ left$0 = [0, v, left]; + match = /*<>*/ caml_call1(p, x); + /*<>*/ if(0 === match[0]){ + var v = match[1], left$0 = /*<>*/ [0, v, left]; left = left$0; param = l$0; } else{ - /*<>*/ var - v$0 = match[1], - /*<>*/ right$0 = [0, v$0, right]; + var + v$0 = /*<>*/ match[1], + right$0 = /*<>*/ [0, v$0, right]; right = right$0; param = l$0; } @@ -4120,13 +4058,13 @@ /*<>*/ } function split(param){ /*<>*/ if(! param) /*<>*/ return _a_; - /*<>*/ var - l = param[2], + var + l = /*<>*/ param[2], match = param[1], y = match[2], x = match[1], - /*<>*/ match$0 = split(l), - ry = match$0[2], + match$0 = /*<>*/ split(l), + ry = /*<>*/ match$0[2], rx = match$0[1]; /*<>*/ return [0, [0, x, rx], [0, y, ry]]; /*<>*/ } @@ -4134,34 +4072,32 @@ /*<>*/ if(l1){ if(l2){ var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; - /*<>*/ return [0, [0, a1, a2], combine(l1$0, l2$0)]; + /*<>*/ return [0, [0, a1, a2], combine(l1$0, l2$0)] /*<>*/ ; } } else if(! l2) /*<>*/ return 0; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_List_combine); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[1], cst_List_combine) /*<>*/ ; + } function merge(cmp, l1, l2){ /*<>*/ if(! l1) /*<>*/ return l2; - if(! l2) /*<>*/ return l1; - var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; - /*<>*/ return 0 - < /*<>*/ caml_call2(cmp, h1, h2) - ? [0, h2, merge(cmp, l1, t2)] - : [0, h1, merge(cmp, t1, l2)]; - /*<>*/ } + /*<>*/ if(! l2) /*<>*/ return l1; + var t2 = /*<>*/ l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; + /*<>*/ return 0 < caml_call2(cmp, h1, h2) + ? [0, h2, /*<>*/ merge(cmp, l1, t2)] + : [0, h1, /*<>*/ merge(cmp, t1, l2)] /*<>*/ ; + } function stable_sort(cmp, l){ function sort(n, l){ /*<>*/ if(2 === n){ if(l){ var match = l[2]; if(match){ - /*<>*/ var + var tl = match[2], x2 = match[1], x1 = l[1], - /*<>*/ s = - 0 < /*<>*/ caml_call2(cmp, x1, x2) + s = + /*<>*/ 0 < caml_call2(cmp, x1, x2) ? [0, x2, [0, x1, 0]] : [0, x1, [0, x2, 0]]; /*<>*/ return [0, s, tl]; @@ -4169,17 +4105,17 @@ } } else if(3 === n && l){ - var _v_ = l[2]; + var _v_ = /*<>*/ l[2]; if(_v_){ var match$2 = _v_[2]; if(match$2){ - /*<>*/ var + var tl$1 = match$2[2], x3 = match$2[1], x2$0 = _v_[1], x1$0 = l[1], - /*<>*/ s$0 = - 0 < /*<>*/ caml_call2(cmp, x1$0, x2$0) + s$0 = + /*<>*/ 0 < caml_call2(cmp, x1$0, x2$0) ? 0 < /*<>*/ caml_call2(cmp, x1$0, x3) ? 0 @@ -4198,41 +4134,38 @@ } } } - /*<>*/ var - n1 = n >> 1, - n2 = n - n1 | 0, - /*<>*/ match$0 = rev_sort(n1, l), - l2$0 = match$0[2], + var + n1 = /*<>*/ n >> 1, + n2 = /*<>*/ n - n1 | 0, + match$0 = /*<>*/ rev_sort(n1, l), + l2$0 = /*<>*/ match$0[2], s1 = match$0[1], - /*<>*/ match$1 = rev_sort(n2, l2$0), - tl$0 = match$1[2], + match$1 = /*<>*/ rev_sort(n2, l2$0), + tl$0 = /*<>*/ match$1[2], s2 = match$1[1], - l1 = s1, + l1 = /*<>*/ s1, l2 = s2, accu = 0; - /*<>*/ for(;;){ - if(l1){ + for(;;){ + /*<>*/ if(l1){ if(l2){ var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; - /*<>*/ if - (0 < /*<>*/ caml_call2(cmp, h1, h2)){ - /*<>*/ /*<>*/ var - accu$0 = [0, h1, accu]; + /*<>*/ if(0 < caml_call2(cmp, h1, h2)){ + var accu$0 = /*<>*/ [0, h1, accu]; l1 = t1; accu = accu$0; continue; } - /*<>*/ /*<>*/ var - accu$1 = [0, h2, accu]; + var accu$1 = /*<>*/ [0, h2, accu]; l2 = t2; accu = accu$1; continue; } - var _u_ = rev_append(l1, accu); + var _u_ = /*<>*/ rev_append(l1, accu); } else - var _u_ = rev_append(l2, accu); - /*<>*/ return [0, _u_, tl$0]; + var _u_ = /*<>*/ rev_append(l2, accu); + /*<>*/ return [0, _u_, tl$0]; } /*<>*/ } function rev_sort(n, l){ @@ -4240,12 +4173,12 @@ if(l){ var match = l[2]; if(match){ - /*<>*/ var + var tl = match[2], x2 = match[1], x1 = l[1], - /*<>*/ s = - 0 < /*<>*/ caml_call2(cmp, x1, x2) + s = + /*<>*/ 0 < caml_call2(cmp, x1, x2) ? [0, x1, [0, x2, 0]] : [0, x2, [0, x1, 0]]; /*<>*/ return [0, s, tl]; @@ -4253,17 +4186,17 @@ } } else if(3 === n && l){ - var _t_ = l[2]; + var _t_ = /*<>*/ l[2]; if(_t_){ var match$2 = _t_[2]; if(match$2){ - /*<>*/ var + var tl$1 = match$2[2], x3 = match$2[1], x2$0 = _t_[1], x1$0 = l[1], - /*<>*/ s$0 = - 0 < /*<>*/ caml_call2(cmp, x1$0, x2$0) + s$0 = + /*<>*/ 0 < caml_call2(cmp, x1$0, x2$0) ? 0 < /*<>*/ caml_call2(cmp, x2$0, x3) ? [0, x1$0, [0, x2$0, [0, x3, 0]]] @@ -4282,60 +4215,58 @@ } } } - /*<>*/ var - n1 = n >> 1, - n2 = n - n1 | 0, - /*<>*/ match$0 = sort(n1, l), - l2$0 = match$0[2], + var + n1 = /*<>*/ n >> 1, + n2 = /*<>*/ n - n1 | 0, + match$0 = /*<>*/ sort(n1, l), + l2$0 = /*<>*/ match$0[2], s1 = match$0[1], - /*<>*/ match$1 = sort(n2, l2$0), - tl$0 = match$1[2], + match$1 = /*<>*/ sort(n2, l2$0), + tl$0 = /*<>*/ match$1[2], s2 = match$1[1], - l1 = s1, + l1 = /*<>*/ s1, l2 = s2, accu = 0; - /*<>*/ for(;;){ - if(l1){ + for(;;){ + /*<>*/ if(l1){ if(l2){ var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; - /*<>*/ if - (0 < /*<>*/ caml_call2(cmp, h1, h2)){ - /*<>*/ /*<>*/ var - accu$0 = [0, h2, accu]; + /*<>*/ if(0 < caml_call2(cmp, h1, h2)){ + var accu$0 = /*<>*/ [0, h2, accu]; l2 = t2; accu = accu$0; continue; } - /*<>*/ /*<>*/ var - accu$1 = [0, h1, accu]; + var accu$1 = /*<>*/ [0, h1, accu]; l1 = t1; accu = accu$1; continue; } - var _s_ = rev_append(l1, accu); + var _s_ = /*<>*/ rev_append(l1, accu); } else - var _s_ = rev_append(l2, accu); - /*<>*/ return [0, _s_, tl$0]; + var _s_ = /*<>*/ rev_append(l2, accu); + /*<>*/ return [0, _s_, tl$0]; } /*<>*/ } - /*<>*/ /*<>*/ var len = length(l); - /*<>*/ return 2 <= len ? sort(len, l)[1] : l; - /*<>*/ } + var len = /*<>*/ length(l); + /*<>*/ return 2 <= len + ? /*<>*/ sort(len, l)[1] + : l /*<>*/ ; + } function sort_uniq(cmp, l){ function sort(n, l){ /*<>*/ if(2 === n){ if(l){ var match = l[2]; if(match){ - /*<>*/ var + var tl = match[2], x2 = match[1], x1 = l[1], - /*<>*/ c$0 = - /*<>*/ caml_call2(cmp, x1, x2), - /*<>*/ s = - 0 === c$0 + c$0 = /*<>*/ caml_call2(cmp, x1, x2), + s = + /*<>*/ 0 === c$0 ? [0, x1, 0] : 0 <= c$0 ? [0, x2, [0, x1, 0]] : [0, x1, [0, x2, 0]]; /*<>*/ return [0, s, tl]; @@ -4343,37 +4274,33 @@ } } else if(3 === n && l){ - var _m_ = l[2]; + var _m_ = /*<>*/ l[2]; if(_m_){ var match$2 = _m_[2]; if(match$2){ - /*<>*/ var + var tl$1 = match$2[2], x3 = match$2[1], x2$0 = _m_[1], x1$0 = l[1], - /*<>*/ c$1 = - /*<>*/ caml_call2(cmp, x1$0, x2$0); + c$1 = /*<>*/ caml_call2(cmp, x1$0, x2$0); /*<>*/ if(0 === c$1) - /*<>*/ var - /*<>*/ c$2 = - /*<>*/ caml_call2(cmp, x2$0, x3), - /*<>*/ _n_ = - 0 === c$2 + var + c$2 = /*<>*/ caml_call2(cmp, x2$0, x3), + _n_ = + /*<>*/ 0 === c$2 ? [0, x2$0, 0] : 0 <= c$2 ? [0, x3, [0, x2$0, 0]] : [0, x2$0, [0, x3, 0]], s$0 = _n_; else if(0 <= c$1){ - /*<>*/ /*<>*/ var - c$3 = /*<>*/ caml_call2(cmp, x1$0, x3); + var c$3 = /*<>*/ caml_call2(cmp, x1$0, x3); /*<>*/ if(0 === c$3) - var _o_ = [0, x2$0, [0, x1$0, 0]]; + var _o_ = /*<>*/ [0, x2$0, [0, x1$0, 0]]; else if(0 <= c$3) - /*<>*/ var - /*<>*/ c$4 = - /*<>*/ caml_call2(cmp, x2$0, x3), - /*<>*/ _p_ = - 0 === c$4 + var + c$4 = /*<>*/ caml_call2(cmp, x2$0, x3), + _p_ = + /*<>*/ 0 === c$4 ? [0, x2$0, [0, x1$0, 0]] : 0 <= c$4 @@ -4381,20 +4308,18 @@ : [0, x2$0, [0, x3, [0, x1$0, 0]]], _o_ = _p_; else - var _o_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; - var s$0 = _o_; + var _o_ = /*<>*/ [0, x2$0, [0, x1$0, [0, x3, 0]]]; + var s$0 = /*<>*/ _o_; } else{ - /*<>*/ /*<>*/ var - c$5 = /*<>*/ caml_call2(cmp, x2$0, x3); + var c$5 = /*<>*/ caml_call2(cmp, x2$0, x3); /*<>*/ if(0 === c$5) - var _q_ = [0, x1$0, [0, x2$0, 0]]; + var _q_ = /*<>*/ [0, x1$0, [0, x2$0, 0]]; else if(0 <= c$5) - /*<>*/ var - /*<>*/ c$6 = - /*<>*/ caml_call2(cmp, x1$0, x3), - /*<>*/ _r_ = - 0 === c$6 + var + c$6 = /*<>*/ caml_call2(cmp, x1$0, x3), + _r_ = + /*<>*/ 0 === c$6 ? [0, x1$0, [0, x2$0, 0]] : 0 <= c$6 @@ -4402,61 +4327,57 @@ : [0, x1$0, [0, x3, [0, x2$0, 0]]], _q_ = _r_; else - var _q_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; - var s$0 = _q_; + var _q_ = /*<>*/ [0, x1$0, [0, x2$0, [0, x3, 0]]]; + var s$0 = /*<>*/ _q_; } /*<>*/ return [0, s$0, tl$1]; } } } - /*<>*/ var - n1 = n >> 1, - n2 = n - n1 | 0, - /*<>*/ match$0 = rev_sort(n1, l), - l2$0 = match$0[2], + var + n1 = /*<>*/ n >> 1, + n2 = /*<>*/ n - n1 | 0, + match$0 = /*<>*/ rev_sort(n1, l), + l2$0 = /*<>*/ match$0[2], s1 = match$0[1], - /*<>*/ match$1 = rev_sort(n2, l2$0), - tl$0 = match$1[2], + match$1 = /*<>*/ rev_sort(n2, l2$0), + tl$0 = /*<>*/ match$1[2], s2 = match$1[1], - l1 = s1, + l1 = /*<>*/ s1, l2 = s2, accu = 0; - /*<>*/ for(;;){ - if(l1){ + for(;;){ + /*<>*/ if(l1){ if(l2){ - /*<>*/ var + var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1], - /*<>*/ c = - /*<>*/ caml_call2(cmp, h1, h2); + c = /*<>*/ caml_call2(cmp, h1, h2); /*<>*/ if(0 === c){ - /*<>*/ /*<>*/ var - accu$0 = [0, h1, accu]; + var accu$0 = /*<>*/ [0, h1, accu]; l1 = t1; l2 = t2; accu = accu$0; continue; } - if(0 < c){ - /*<>*/ /*<>*/ var - accu$1 = [0, h1, accu]; + /*<>*/ if(0 < c){ + var accu$1 = /*<>*/ [0, h1, accu]; l1 = t1; accu = accu$1; continue; } - /*<>*/ /*<>*/ var - accu$2 = [0, h2, accu]; + var accu$2 = /*<>*/ [0, h2, accu]; l2 = t2; accu = accu$2; continue; } - var _l_ = rev_append(l1, accu); + var _l_ = /*<>*/ rev_append(l1, accu); } else - var _l_ = rev_append(l2, accu); - /*<>*/ return [0, _l_, tl$0]; + var _l_ = /*<>*/ rev_append(l2, accu); + /*<>*/ return [0, _l_, tl$0]; } /*<>*/ } function rev_sort(n, l){ @@ -4464,14 +4385,13 @@ if(l){ var match = l[2]; if(match){ - /*<>*/ var + var tl = match[2], x2 = match[1], x1 = l[1], - /*<>*/ c$0 = - /*<>*/ caml_call2(cmp, x1, x2), - /*<>*/ s = - 0 === c$0 + c$0 = /*<>*/ caml_call2(cmp, x1, x2), + s = + /*<>*/ 0 === c$0 ? [0, x1, 0] : 0 < c$0 ? [0, x1, [0, x2, 0]] : [0, x2, [0, x1, 0]]; /*<>*/ return [0, s, tl]; @@ -4479,162 +4399,154 @@ } } else if(3 === n && l){ - var _f_ = l[2]; + var _f_ = /*<>*/ l[2]; if(_f_){ var match$2 = _f_[2]; if(match$2){ - /*<>*/ var + var tl$1 = match$2[2], x3 = match$2[1], x2$0 = _f_[1], x1$0 = l[1], - /*<>*/ c$1 = - /*<>*/ caml_call2(cmp, x1$0, x2$0); + c$1 = /*<>*/ caml_call2(cmp, x1$0, x2$0); /*<>*/ if(0 === c$1) - /*<>*/ var - /*<>*/ c$2 = - /*<>*/ caml_call2(cmp, x2$0, x3), - /*<>*/ _g_ = - 0 === c$2 + var + c$2 = /*<>*/ caml_call2(cmp, x2$0, x3), + _g_ = + /*<>*/ 0 === c$2 ? [0, x2$0, 0] : 0 < c$2 ? [0, x2$0, [0, x3, 0]] : [0, x3, [0, x2$0, 0]], s$0 = _g_; else if(0 < c$1){ - /*<>*/ /*<>*/ var - c$3 = /*<>*/ caml_call2(cmp, x2$0, x3); + var c$3 = /*<>*/ caml_call2(cmp, x2$0, x3); /*<>*/ if(0 === c$3) - var _h_ = [0, x1$0, [0, x2$0, 0]]; + var _h_ = /*<>*/ [0, x1$0, [0, x2$0, 0]]; else if(0 < c$3) - var _h_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; + var _h_ = /*<>*/ [0, x1$0, [0, x2$0, [0, x3, 0]]]; else - /*<>*/ var - /*<>*/ c$4 = - /*<>*/ caml_call2(cmp, x1$0, x3), - /*<>*/ _i_ = - 0 === c$4 + var + c$4 = /*<>*/ caml_call2(cmp, x1$0, x3), + _i_ = + /*<>*/ 0 === c$4 ? [0, x1$0, [0, x2$0, 0]] : 0 < c$4 ? [0, x1$0, [0, x3, [0, x2$0, 0]]] : [0, x3, [0, x1$0, [0, x2$0, 0]]], _h_ = _i_; - var s$0 = _h_; + var s$0 = /*<>*/ _h_; } else{ - /*<>*/ /*<>*/ var - c$5 = /*<>*/ caml_call2(cmp, x1$0, x3); + var c$5 = /*<>*/ caml_call2(cmp, x1$0, x3); /*<>*/ if(0 === c$5) - var _j_ = [0, x2$0, [0, x1$0, 0]]; + var _j_ = /*<>*/ [0, x2$0, [0, x1$0, 0]]; else if(0 < c$5) - var _j_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; + var _j_ = /*<>*/ [0, x2$0, [0, x1$0, [0, x3, 0]]]; else - /*<>*/ var - /*<>*/ c$6 = - /*<>*/ caml_call2(cmp, x2$0, x3), - /*<>*/ _k_ = - 0 === c$6 + var + c$6 = /*<>*/ caml_call2(cmp, x2$0, x3), + _k_ = + /*<>*/ 0 === c$6 ? [0, x2$0, [0, x1$0, 0]] : 0 < c$6 ? [0, x2$0, [0, x3, [0, x1$0, 0]]] : [0, x3, [0, x2$0, [0, x1$0, 0]]], _j_ = _k_; - var s$0 = _j_; + var s$0 = /*<>*/ _j_; } /*<>*/ return [0, s$0, tl$1]; } } } - /*<>*/ var - n1 = n >> 1, - n2 = n - n1 | 0, - /*<>*/ match$0 = sort(n1, l), - l2$0 = match$0[2], + var + n1 = /*<>*/ n >> 1, + n2 = /*<>*/ n - n1 | 0, + match$0 = /*<>*/ sort(n1, l), + l2$0 = /*<>*/ match$0[2], s1 = match$0[1], - /*<>*/ match$1 = sort(n2, l2$0), - tl$0 = match$1[2], + match$1 = /*<>*/ sort(n2, l2$0), + tl$0 = /*<>*/ match$1[2], s2 = match$1[1], - l1 = s1, + l1 = /*<>*/ s1, l2 = s2, accu = 0; - /*<>*/ for(;;){ - if(l1){ + for(;;){ + /*<>*/ if(l1){ if(l2){ - /*<>*/ var + var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1], - /*<>*/ c = - /*<>*/ caml_call2(cmp, h1, h2); + c = /*<>*/ caml_call2(cmp, h1, h2); /*<>*/ if(0 === c){ - /*<>*/ /*<>*/ var - accu$0 = [0, h1, accu]; + var accu$0 = /*<>*/ [0, h1, accu]; l1 = t1; l2 = t2; accu = accu$0; continue; } - if(0 <= c){ - /*<>*/ /*<>*/ var - accu$1 = [0, h2, accu]; + /*<>*/ if(0 <= c){ + var accu$1 = /*<>*/ [0, h2, accu]; l2 = t2; accu = accu$1; continue; } - /*<>*/ /*<>*/ var - accu$2 = [0, h1, accu]; + var accu$2 = /*<>*/ [0, h1, accu]; l1 = t1; accu = accu$2; continue; } - var _e_ = rev_append(l1, accu); + var _e_ = /*<>*/ rev_append(l1, accu); } else - var _e_ = rev_append(l2, accu); - /*<>*/ return [0, _e_, tl$0]; + var _e_ = /*<>*/ rev_append(l2, accu); + /*<>*/ return [0, _e_, tl$0]; } /*<>*/ } - /*<>*/ /*<>*/ var len = length(l); - /*<>*/ return 2 <= len ? sort(len, l)[1] : l; - /*<>*/ } + var len = /*<>*/ length(l); + /*<>*/ return 2 <= len + ? /*<>*/ sort(len, l)[1] + : l /*<>*/ ; + } function compare_lengths(l1, l2){ - /*<>*/ var l1$0 = l1, l2$0 = l2; - /*<>*/ for(;;){ - if(! l1$0) return l2$0 ? -1 : 0; - if(! l2$0) /*<>*/ return 1; - var l2$1 = l2$0[2], l1$1 = l1$0[2]; - l1$0 = l1$1; + var l1$0 = /*<>*/ l1, l2$0 = l2; + for(;;){ + if(! l1$0) return l2$0 ? -1 : 0 /*<>*/ ; + /*<>*/ if(! l2$0) /*<>*/ return 1; + var l2$1 = /*<>*/ l2$0[2], l1$1 = l1$0[2]; + /*<>*/ l1$0 = l1$1; l2$0 = l2$1; } /*<>*/ } function compare_length_with(l, n){ - /*<>*/ var l$0 = l, n$0 = n; - /*<>*/ for(;;){ - if(! l$0) return 0 === n$0 ? 0 : 0 < n$0 ? -1 : 1; - var l$1 = l$0[2]; + var l$0 = /*<>*/ l, n$0 = n; + for(;;){ + if(! l$0) + /*<>*/ return 0 === n$0 ? 0 : 0 < n$0 ? -1 : 1 /*<>*/ ; + var l$1 = /*<>*/ l$0[2]; /*<>*/ if(0 >= n$0) /*<>*/ return 1; - /*<>*/ /*<>*/ var n$1 = n$0 - 1 | 0; + var n$1 = /*<>*/ n$0 - 1 | 0; l$0 = l$1; n$0 = n$1; } /*<>*/ } function is_empty(param){ - /*<>*/ return param ? 0 : 1; - /*<>*/ } + /*<>*/ return param ? 0 : 1 /*<>*/ ; + } function equal(eq, l1, l2){ - /*<>*/ var l1$0 = l1, l2$0 = l2; - /*<>*/ for(;;){ + var l1$0 = /*<>*/ l1, l2$0 = l2; + for(;;){ if(l1$0){ if(l2$0){ - /*<>*/ var + var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1], - /*<>*/ _d_ = - /*<>*/ caml_call2(eq, a1, a2); - /*<>*/ if(! _d_) /*<>*/ return _d_; + _d_ = /*<>*/ caml_call2(eq, a1, a2); + /*<>*/ if(! _d_) return _d_; l1$0 = l1$1; l2$0 = l2$1; continue; @@ -4645,79 +4557,74 @@ } /*<>*/ } function compare(cmp, l1, l2){ - /*<>*/ var l1$0 = l1, l2$0 = l2; - /*<>*/ for(;;){ - if(! l1$0) return l2$0 ? -1 : 0; - var l1$1 = l1$0[2], a1 = l1$0[1]; + var l1$0 = /*<>*/ l1, l2$0 = l2; + for(;;){ + if(! l1$0) return l2$0 ? -1 : 0 /*<>*/ ; + var l1$1 = /*<>*/ l1$0[2], a1 = l1$0[1]; if(! l2$0) /*<>*/ return 1; - /*<>*/ var - l2$1 = l2$0[2], + var + l2$1 = /*<>*/ l2$0[2], a2 = l2$0[1], - /*<>*/ c = - /*<>*/ caml_call2(cmp, a1, a2); + c = /*<>*/ caml_call2(cmp, a1, a2); /*<>*/ if(0 !== c) /*<>*/ return c; - l1$0 = l1$1; + /*<>*/ l1$0 = l1$1; l2$0 = l2$1; } /*<>*/ } function to_seq(l){ - /*<>*/ function aux(l, param){ + function aux(l, param){ /*<>*/ if(! l) /*<>*/ return 0; - var tail = l[2], x = l[1]; - /*<>*/ return [0, + var tail = /*<>*/ l[2], x = l[1]; + /*<>*/ return [0, x, - function(_c_){ /*<>*/ return aux(tail, _c_);}]; + function(_c_){ /*<>*/ return aux(tail, _c_);}] /*<>*/ ; /*<>*/ } - /*<>*/ return function(_b_){ - /*<>*/ return aux(l, _b_);}; + /*<>*/ return function(_b_){return aux(l, _b_);}; /*<>*/ } function of_seq(seq){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(seq, 0); - if(! match) /*<>*/ return 0; - /*<>*/ var - seq$0 = match[2], + var match = /*<>*/ caml_call1(seq, 0); + /*<>*/ if(! match) /*<>*/ return 0; + var + seq$0 = /*<>*/ match[2], x1 = match[1], - /*<>*/ match$0 = - /*<>*/ caml_call1(seq$0, 0); - if(! match$0) /*<>*/ return [0, x1, 0]; - /*<>*/ var - seq$1 = match$0[2], + match$0 = /*<>*/ caml_call1(seq$0, 0); + /*<>*/ if(! match$0) + /*<>*/ return [0, x1, 0]; + var + seq$1 = /*<>*/ match$0[2], x2 = match$0[1], - /*<>*/ block = [0, x2, 24029], - dst = block, + block = /*<>*/ [0, x2, 24029], + dst = /*<>*/ block, offset = 1, seq$2 = seq$1; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - match$1 = /*<>*/ caml_call1(seq$2, 0); - if(match$1){ - /*<>*/ var + for(;;){ + var match$1 = /*<>*/ caml_call1(seq$2, 0); + /*<>*/ if(match$1){ + var seq$3 = match$1[2], x1$0 = match$1[1], - /*<>*/ match$2 = - /*<>*/ caml_call1(seq$3, 0); - if(match$2){ - /*<>*/ var + match$2 = /*<>*/ caml_call1(seq$3, 0); + /*<>*/ if(match$2){ + var seq$4 = match$2[2], x2$0 = match$2[1], - /*<>*/ dst$0 = [0, x2$0, 24029]; + dst$0 = /*<>*/ [0, x2$0, 24029]; dst[1 + offset] = [0, x1$0, dst$0]; dst = dst$0; offset = 1; seq$2 = seq$4; continue; } - dst[1 + offset] = [0, x1$0, 0]; + /*<>*/ dst[1 + offset] = [0, x1$0, 0]; } else - dst[1 + offset] = 0; - /*<>*/ return [0, x1, block]; + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return [0, x1, block]; } /*<>*/ } var Stdlib_List = - [0, + /*<>*/ [0, length, compare_lengths, compare_length_with, @@ -4785,7 +4692,7 @@ of_seq]; runtime.caml_register_global(17, Stdlib_List, "Stdlib__List"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Int @@ -4793,33 +4700,29 @@ "use strict"; var runtime = globalThis.jsoo_runtime, caml_hash = runtime.caml_hash; function abs(x){ - /*<>*/ return 0 <= x ? x : - x | 0; - /*<>*/ } + /*<>*/ return 0 <= x ? x : - x | 0 /*<>*/ ; + } function lognot(x){ /*<>*/ return x ^ -1; /*<>*/ } function equal(_b_, _a_){ /*<>*/ return _b_ === _a_ ? 1 : 0;} var compare = runtime.caml_int_compare; function min(x, y){ - /*<>*/ return x <= y ? x : y; - /*<>*/ } + /*<>*/ return x <= y ? x : y /*<>*/ ; + } function max(x, y){ - /*<>*/ return y <= x ? x : y; - /*<>*/ } - function to_string(x){ - /*<>*/ return "" + x; - /*<>*/ } + /*<>*/ return y <= x ? x : y /*<>*/ ; + } + function to_string(x){ /*<>*/ return "" + x;} function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, seed, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, seed, x) /*<>*/ ; + } function hash(x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, 0, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, 0, x) /*<>*/ ; + } var Stdlib_Int = - [0, + /*<>*/ [0, 0, 1, -1, @@ -4836,7 +4739,7 @@ hash]; runtime.caml_register_global(1, Stdlib_Int, "Stdlib__Int"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Bytes @@ -4869,12 +4772,12 @@ caml_ml_bytes_length = runtime.caml_ml_bytes_length, caml_string_of_bytes = runtime.caml_string_of_bytes, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -4890,31 +4793,31 @@ Stdlib_Seq = global_data.Stdlib__Seq, Stdlib_Char = global_data.Stdlib__Char; function make(n, c){ - /*<>*/ /*<>*/ var - s = /*<>*/ caml_create_bytes(n); - /*<>*/ /*<>*/ caml_fill_bytes(s, 0, n, c); - /*<>*/ return s; + var s = /*<>*/ caml_create_bytes(n); + /*<>*/ caml_fill_bytes(s, 0, n, c); + /*<>*/ return s; /*<>*/ } function init(n, f){ - /*<>*/ var - /*<>*/ s = /*<>*/ caml_create_bytes(n), - /*<>*/ _ap_ = n - 1 | 0, - /*<>*/ _ao_ = 0; + var + s = /*<>*/ caml_create_bytes(n), + _ap_ = /*<>*/ n - 1 | 0, + _ao_ = 0; if(_ap_ >= 0){ var i = _ao_; for(;;){ - caml_bytes_unsafe_set(s, i, /*<>*/ caml_call1(f, i)); - /*<>*/ /*<>*/ var _aq_ = i + 1 | 0; + /*<>*/ /*<>*/ caml_bytes_unsafe_set + (s, i, /*<>*/ caml_call1(f, i)); + var _aq_ = /*<>*/ i + 1 | 0; if(_ap_ === i) break; i = _aq_; } } /*<>*/ return s; /*<>*/ } - /*<>*/ var - /*<>*/ empty = - /*<>*/ caml_create_bytes(0), - cst_String_sub_Bytes_sub = "String.sub / Bytes.sub", + var + empty = /*<>*/ caml_create_bytes(0), + cst_String_sub_Bytes_sub = + /*<>*/ "String.sub / Bytes.sub", cst_Bytes_extend = "Bytes.extend", cst_String_fill_Bytes_fill = "String.fill / Bytes.fill", cst_Bytes_blit = "Bytes.blit", @@ -4931,79 +4834,72 @@ cst_String_rcontains_from_Byte = "String.rcontains_from / Bytes.rcontains_from"; function copy(s){ - /*<>*/ var - len = caml_ml_bytes_length(s), - /*<>*/ r = - /*<>*/ caml_create_bytes(len); - /*<>*/ /*<>*/ caml_blit_bytes - (s, 0, r, 0, len); - /*<>*/ return r; + var + len = /*<>*/ caml_ml_bytes_length(s), + r = /*<>*/ caml_create_bytes(len); + /*<>*/ caml_blit_bytes(s, 0, r, 0, len); + /*<>*/ return r; /*<>*/ } function to_string(b){ - /*<>*/ return /*<>*/ caml_string_of_bytes - (copy(b)); - /*<>*/ } + /*<>*/ return /*<>*/ caml_string_of_bytes + ( /*<>*/ copy(b)) /*<>*/ ; + } function of_string(s){ - /*<>*/ return copy(caml_bytes_of_string(s)); - /*<>*/ } + /*<>*/ return copy(caml_bytes_of_string(s)) /*<>*/ ; + } function sub(s, ofs, len){ /*<>*/ if (0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs){ - /*<>*/ /*<>*/ var - r = /*<>*/ caml_create_bytes(len); - /*<>*/ /*<>*/ caml_blit_bytes - (s, ofs, r, 0, len); - /*<>*/ return r; - } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_sub_Bytes_sub); - /*<>*/ } + var r = /*<>*/ caml_create_bytes(len); + /*<>*/ caml_blit_bytes(s, ofs, r, 0, len); + /*<>*/ return r; + } + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_sub_Bytes_sub) /*<>*/ ; + } function sub_string(b, ofs, len){ - /*<>*/ return /*<>*/ caml_string_of_bytes - (sub(b, ofs, len)); - /*<>*/ } + /*<>*/ return /*<>*/ caml_string_of_bytes + ( /*<>*/ sub(b, ofs, len)) /*<>*/ ; + } function symbol(a, b){ - /*<>*/ var - c = a + b | 0, - _an_ = b < 0 ? 1 : 0, + var + c = /*<>*/ a + b | 0, + _an_ = /*<>*/ b < 0 ? 1 : 0, match = c < 0 ? 1 : 0; a: { if(a < 0){if(_an_ && ! match) break a;} else if(! _an_ && match) break a; /*<>*/ return c; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Bytes_extend); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[1], cst_Bytes_extend) /*<>*/ ; + } function extend(s, left, right){ - /*<>*/ var - /*<>*/ len = - symbol(symbol(caml_ml_bytes_length(s), left), right), - /*<>*/ r = - /*<>*/ caml_create_bytes(len); - if(0 <= left) - var dstoff = left, srcoff = 0; + var + len = + /*<>*/ /*<>*/ symbol + (symbol( /*<>*/ caml_ml_bytes_length(s), left), right), + r = /*<>*/ caml_create_bytes(len); + /*<>*/ if(0 <= left) + var dstoff = /*<>*/ left, srcoff = 0; else - var dstoff = 0, srcoff = - left | 0; - /*<>*/ /*<>*/ var + var dstoff = /*<>*/ 0, srcoff = - left | 0; + var cpylen = - /*<>*/ caml_call2 + /*<>*/ /*<>*/ caml_call2 (Stdlib_Int[10], - caml_ml_bytes_length(s) - srcoff | 0, + /*<>*/ caml_ml_bytes_length(s) - srcoff | 0, len - dstoff | 0); - if(0 < cpylen) - /*<>*/ /*<>*/ caml_blit_bytes - (s, srcoff, r, dstoff, cpylen); - /*<>*/ return r; + /*<>*/ if(0 < cpylen) + /*<>*/ caml_blit_bytes(s, srcoff, r, dstoff, cpylen); + /*<>*/ return r; /*<>*/ } function fill(s, ofs, len, c){ /*<>*/ if (0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - /*<>*/ return /*<>*/ caml_fill_bytes - (s, ofs, len, c); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_fill_Bytes_fill); - /*<>*/ } + /*<>*/ return caml_fill_bytes(s, ofs, len, c) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_fill_Bytes_fill) /*<>*/ ; + } function blit(s1, ofs1, s2, ofs2, len){ /*<>*/ if (0 <= len @@ -5012,11 +4908,9 @@ && (caml_ml_bytes_length(s1) - len | 0) >= ofs1 && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) - /*<>*/ return /*<>*/ caml_blit_bytes - (s1, ofs1, s2, ofs2, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Bytes_blit); - /*<>*/ } + /*<>*/ return caml_blit_bytes(s1, ofs1, s2, ofs2, len) /*<>*/ ; + /*<>*/ return caml_call1(Stdlib[1], cst_Bytes_blit) /*<>*/ ; + } function blit_string(s1, ofs1, s2, ofs2, len){ /*<>*/ if (0 <= len @@ -5025,109 +4919,113 @@ && (runtime.caml_ml_string_length(s1) - len | 0) >= ofs1 && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) - /*<>*/ return /*<>*/ runtime.caml_blit_string - (s1, ofs1, s2, ofs2, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_blit_Bytes_blit_str); - /*<>*/ } + /*<>*/ return runtime.caml_blit_string + (s1, ofs1, s2, ofs2, len) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_blit_Bytes_blit_str) /*<>*/ ; + } function iter(f, a){ - /*<>*/ var - _al_ = caml_ml_bytes_length(a) - 1 | 0, - /*<>*/ _ak_ = 0; + var + _al_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0, + _ak_ = 0; if(_al_ >= 0){ var i = _ak_; for(;;){ - /*<>*/ /*<>*/ caml_call1 - (f, caml_bytes_unsafe_get(a, i)); - /*<>*/ /*<>*/ var _am_ = i + 1 | 0; + /*<>*/ caml_call1(f, caml_bytes_unsafe_get(a, i)); + var _am_ = /*<>*/ i + 1 | 0; if(_al_ === i) break; i = _am_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function iteri(f, a){ - /*<>*/ var - _ai_ = caml_ml_bytes_length(a) - 1 | 0, - /*<>*/ _ah_ = 0; + var + _ai_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0, + _ah_ = 0; if(_ai_ >= 0){ var i = _ah_; for(;;){ - /*<>*/ /*<>*/ caml_call2 - (f, i, caml_bytes_unsafe_get(a, i)); - /*<>*/ /*<>*/ var _aj_ = i + 1 | 0; + /*<>*/ caml_call2(f, i, caml_bytes_unsafe_get(a, i)); + var _aj_ = /*<>*/ i + 1 | 0; if(_ai_ === i) break; i = _aj_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function concat(sep, l){ - /*<>*/ if(! l) /*<>*/ return empty; - var seplen = caml_ml_bytes_length(sep); + /*<>*/ if(! l) /*<>*/ return empty; + var seplen = /*<>*/ caml_ml_bytes_length(sep); a: { b: { - var acc = 0, param = l, pos$1 = 0; + var acc = /*<>*/ 0, param = l, pos$1 = 0; for(;;){ - if(! param) break; + /*<>*/ if(! param) break; var hd = param[1]; if(! param[2]) break b; var tl = param[2], - x = (caml_ml_bytes_length(hd) + seplen | 0) + acc | 0, + x = + /*<>*/ (caml_ml_bytes_length(hd) + seplen | 0) + + acc + | 0, acc$0 = - acc <= x + /*<>*/ acc <= x ? x : /*<>*/ caml_call1(Stdlib[1], cst_Bytes_concat); - acc = acc$0; + /*<>*/ acc = acc$0; param = tl; } - var _ag_ = acc; + var _ag_ = /*<>*/ acc; break a; } - var _ag_ = caml_ml_bytes_length(hd) + acc | 0; + var _ag_ = /*<>*/ caml_ml_bytes_length(hd) + acc | 0; } - /*<>*/ var - /*<>*/ dst = - /*<>*/ caml_create_bytes(_ag_), - pos = pos$1, + var + dst = /*<>*/ caml_create_bytes(_ag_), + pos = /*<>*/ pos$1, param$0 = l; for(;;){ - if(! param$0) /*<>*/ return dst; - var hd$0 = param$0[1]; + /*<>*/ if(! param$0) + /*<>*/ return dst; + var hd$0 = /*<>*/ param$0[1]; if(! param$0[2]){ - /*<>*/ /*<>*/ caml_blit_bytes + /*<>*/ caml_blit_bytes (hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); - /*<>*/ return dst; - } - var tl$0 = param$0[2]; - /*<>*/ /*<>*/ caml_blit_bytes - (hd$0, 0, dst, pos, /*<>*/ caml_ml_bytes_length(hd$0)); - /*<>*/ /*<>*/ caml_blit_bytes - (sep, 0, dst, pos + caml_ml_bytes_length(hd$0) | 0, seplen); - var pos$0 = (pos + caml_ml_bytes_length(hd$0) | 0) + seplen | 0; + /*<>*/ return dst; + } + var tl$0 = /*<>*/ param$0[2]; + /*<>*/ caml_blit_bytes + (hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); + /*<>*/ /*<>*/ caml_blit_bytes + (sep, + 0, + dst, + pos + /*<>*/ caml_ml_bytes_length(hd$0) | 0, + seplen); + var + pos$0 = + /*<>*/ (pos + caml_ml_bytes_length(hd$0) | 0) + + seplen + | 0; pos = pos$0; param$0 = tl$0; } - } + /*<>*/ } function cat(s1, s2){ - /*<>*/ var - l1 = caml_ml_bytes_length(s1), - /*<>*/ l2 = - /*<>*/ caml_ml_bytes_length(s2), - /*<>*/ r = - /*<>*/ caml_create_bytes(l1 + l2 | 0); - /*<>*/ /*<>*/ caml_blit_bytes - (s1, 0, r, 0, l1); - /*<>*/ /*<>*/ caml_blit_bytes - (s2, 0, r, l1, l2); - /*<>*/ return r; + var + l1 = /*<>*/ caml_ml_bytes_length(s1), + l2 = /*<>*/ caml_ml_bytes_length(s2), + r = /*<>*/ caml_create_bytes(l1 + l2 | 0); + /*<>*/ caml_blit_bytes(s1, 0, r, 0, l1); + /*<>*/ caml_blit_bytes(s2, 0, r, l1, l2); + /*<>*/ return r; /*<>*/ } function is_space(param){ - /*<>*/ /*<>*/ var - _af_ = param - 9 | 0; + var _af_ = /*<>*/ param - 9 | 0; a: { if(4 < _af_ >>> 0){if(23 !== _af_) break a;} else if(2 === _af_) break a; @@ -5136,32 +5034,39 @@ /*<>*/ return 0; /*<>*/ } function trim(s){ - /*<>*/ var - len = caml_ml_bytes_length(s), - /*<>*/ i = [0, 0]; - for(;;){ + var + len = /*<>*/ caml_ml_bytes_length(s), + i = /*<>*/ [0, 0]; + /*<>*/ for(;;){ if(i[1] >= len) break; - /*<>*/ if(! is_space(caml_bytes_unsafe_get(s, i[1]))) + if + (! + /*<>*/ is_space + ( /*<>*/ caml_bytes_unsafe_get(s, i[1]))) break; - i[1]++; + /*<>*/ i[1]++; } - /*<>*/ /*<>*/ var - j = [0, len - 1 | 0]; - for(;;){ - /*<>*/ if - (i[1] <= j[1] && is_space(caml_bytes_unsafe_get(s, j[1]))){j[1]--; continue;} - return i[1] <= j[1] ? sub(s, i[1], (j[1] - i[1] | 0) + 1 | 0) : empty; + var j = /*<>*/ [0, len - 1 | 0]; + /*<>*/ for(;;){ + if + (i[1] <= j[1] + && + /*<>*/ is_space + ( /*<>*/ caml_bytes_unsafe_get(s, j[1]))){ /*<>*/ j[1]--; continue;} + /*<>*/ return i[1] <= j[1] + ? /*<>*/ sub(s, i[1], (j[1] - i[1] | 0) + 1 | 0) + : empty /*<>*/ ; } - /*<>*/ } + } function unsafe_escape(s){ - /*<>*/ var - /*<>*/ n = [0, 0], - ___ = caml_ml_bytes_length(s) - 1 | 0, - /*<>*/ _Z_ = 0; + var + n = /*<>*/ [0, 0], + ___ = /*<>*/ caml_ml_bytes_length(s) - 1 | 0, + _Z_ = 0; if(___ >= 0){ var i$0 = _Z_; for(;;){ - var match = caml_bytes_unsafe_get(s, i$0); + var match = /*<>*/ caml_bytes_unsafe_get(s, i$0); a: { b: @@ -5174,36 +5079,36 @@ if(93 <= _ac_) break c; } else if(56 < _ac_ - 1 >>> 0) break b; - var _ad_ = 1; + var _ad_ = /*<>*/ 1; break a; } - if(11 <= match){ + /*<>*/ if(11 <= match){ if(13 === match) break b; } else if(8 <= match) break b; } - var _ad_ = 4; + var _ad_ = /*<>*/ 4; break a; } - var _ad_ = 2; + var _ad_ = /*<>*/ 2; } - n[1] = n[1] + _ad_ | 0; - /*<>*/ /*<>*/ var _ae_ = i$0 + 1 | 0; + /*<>*/ n[1] = n[1] + _ad_ | 0; + var _ae_ = i$0 + 1 | 0; if(___ === i$0) break; i$0 = _ae_; } } - if(n[1] === caml_ml_bytes_length(s)) /*<>*/ return s; - /*<>*/ /*<>*/ var - s$0 = /*<>*/ caml_create_bytes(n[1]); - n[1] = 0; - /*<>*/ var - _aa_ = caml_ml_bytes_length(s) - 1 | 0, - /*<>*/ _$_ = 0; + /*<>*/ if(n[1] === caml_ml_bytes_length(s)) + /*<>*/ return s; + var s$0 = /*<>*/ caml_create_bytes(n[1]); + /*<>*/ n[1] = 0; + var + _aa_ = /*<>*/ caml_ml_bytes_length(s) - 1 | 0, + _$_ = 0; if(_aa_ >= 0){ var i = _$_; for(;;){ - var c = caml_bytes_unsafe_get(s, i); + var c = /*<>*/ caml_bytes_unsafe_get(s, i); a: { b: @@ -5218,48 +5123,51 @@ if(14 <= c) break c; switch(c){ case 8: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 98); + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); + /*<>*/ n[1]++; + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 98); break a; case 9: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 116); + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); + /*<>*/ n[1]++; + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 116); break a; case 10: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 110); + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); + /*<>*/ n[1]++; + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 110); break a; case 13: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 114); + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); + /*<>*/ n[1]++; + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 114); break a; default: break c; } } - if(34 > c) break b; + /*<>*/ if(34 > c) break b; } - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], c); + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); + /*<>*/ n[1]++; + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], c); break a; } - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 48 + (c / 100 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 48 + ((c / 10 | 0) % 10 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 48 + (c % 10 | 0) | 0); + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); + /*<>*/ n[1]++; + /*<>*/ caml_bytes_unsafe_set + (s$0, n[1], 48 + (c / 100 | 0) | 0); + /*<>*/ n[1]++; + /*<>*/ caml_bytes_unsafe_set + (s$0, n[1], 48 + ((c / 10 | 0) % 10 | 0) | 0); + /*<>*/ n[1]++; + /*<>*/ caml_bytes_unsafe_set + (s$0, n[1], 48 + (c % 10 | 0) | 0); break a; } - caml_bytes_unsafe_set(s$0, n[1], c); + /*<>*/ caml_bytes_unsafe_set(s$0, n[1], c); } - n[1]++; - /*<>*/ /*<>*/ var _ab_ = i + 1 | 0; + /*<>*/ n[1]++; + var _ab_ = i + 1 | 0; if(_aa_ === i) break; i = _ab_; } @@ -5267,25 +5175,25 @@ /*<>*/ return s$0; /*<>*/ } function escaped(b){ - /*<>*/ /*<>*/ var b$0 = copy(b); - /*<>*/ return unsafe_escape(b$0); - /*<>*/ } + var b$0 = /*<>*/ copy(b); + /*<>*/ return unsafe_escape(b$0) /*<>*/ ; + } function map(f, s){ - /*<>*/ var l = caml_ml_bytes_length(s); + var l = /*<>*/ caml_ml_bytes_length(s); /*<>*/ if(0 === l) /*<>*/ return s; - /*<>*/ var - /*<>*/ r = - /*<>*/ caml_create_bytes(l), - /*<>*/ _X_ = l - 1 | 0, - /*<>*/ _W_ = 0; + var + r = /*<>*/ caml_create_bytes(l), + _X_ = /*<>*/ l - 1 | 0, + _W_ = 0; if(_X_ >= 0){ var i = _W_; for(;;){ - caml_bytes_unsafe_set + /*<>*/ /*<>*/ caml_bytes_unsafe_set (r, i, - /*<>*/ caml_call1(f, caml_bytes_unsafe_get(s, i))); - /*<>*/ /*<>*/ var _Y_ = i + 1 | 0; + /*<>*/ caml_call1 + (f, /*<>*/ caml_bytes_unsafe_get(s, i))); + var _Y_ = /*<>*/ i + 1 | 0; if(_X_ === i) break; i = _Y_; } @@ -5293,21 +5201,21 @@ /*<>*/ return r; /*<>*/ } function mapi(f, s){ - /*<>*/ var l = caml_ml_bytes_length(s); + var l = /*<>*/ caml_ml_bytes_length(s); /*<>*/ if(0 === l) /*<>*/ return s; - /*<>*/ var - /*<>*/ r = - /*<>*/ caml_create_bytes(l), - /*<>*/ _U_ = l - 1 | 0, - /*<>*/ _T_ = 0; + var + r = /*<>*/ caml_create_bytes(l), + _U_ = /*<>*/ l - 1 | 0, + _T_ = 0; if(_U_ >= 0){ var i = _T_; for(;;){ - caml_bytes_unsafe_set + /*<>*/ /*<>*/ caml_bytes_unsafe_set (r, i, - /*<>*/ caml_call2(f, i, caml_bytes_unsafe_get(s, i))); - /*<>*/ /*<>*/ var _V_ = i + 1 | 0; + /*<>*/ caml_call2 + (f, i, /*<>*/ caml_bytes_unsafe_get(s, i))); + var _V_ = /*<>*/ i + 1 | 0; if(_U_ === i) break; i = _V_; } @@ -5315,449 +5223,450 @@ /*<>*/ return r; /*<>*/ } function fold_left(f, x, a){ - /*<>*/ var - /*<>*/ r = [0, x], - _R_ = caml_ml_bytes_length(a) - 1 | 0, - /*<>*/ _Q_ = 0; + var + r = /*<>*/ [0, x], + _R_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0, + _Q_ = 0; if(_R_ >= 0){ var i = _Q_; for(;;){ - r[1] = + /*<>*/ r[1] = /*<>*/ caml_call2 - (f, r[1], caml_bytes_unsafe_get(a, i)); - /*<>*/ /*<>*/ var _S_ = i + 1 | 0; + (f, r[1], /*<>*/ caml_bytes_unsafe_get(a, i)); + var _S_ = /*<>*/ i + 1 | 0; if(_R_ === i) break; i = _S_; } } - return r[1]; + /*<>*/ return r[1]; /*<>*/ } function fold_right(f, a, x){ - /*<>*/ var - /*<>*/ r = [0, x], - /*<>*/ _O_ = - /*<>*/ caml_ml_bytes_length(a) - 1 | 0; + var + r = /*<>*/ [0, x], + _O_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0; if(_O_ >= 0){ var i = _O_; for(;;){ - r[1] = + /*<>*/ r[1] = /*<>*/ caml_call2 - (f, caml_bytes_unsafe_get(a, i), r[1]); - /*<>*/ /*<>*/ var _P_ = i - 1 | 0; + (f, /*<>*/ caml_bytes_unsafe_get(a, i), r[1]); + var _P_ = /*<>*/ i - 1 | 0; if(0 === i) break; i = _P_; } } - return r[1]; + /*<>*/ return r[1]; /*<>*/ } function exists(p, s){ - /*<>*/ var n = caml_ml_bytes_length(s), i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ if - ( /*<>*/ caml_call1(p, caml_bytes_unsafe_get(s, i))) + var + n = /*<>*/ caml_ml_bytes_length(s), + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + /*<>*/ if + ( /*<>*/ caml_call1 + (p, /*<>*/ caml_bytes_unsafe_get(s, i))) /*<>*/ return 1; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function for_all(p, s){ - /*<>*/ var n = caml_ml_bytes_length(s), i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 1; - /*<>*/ if - (! /*<>*/ caml_call1(p, caml_bytes_unsafe_get(s, i))) + var + n = /*<>*/ caml_ml_bytes_length(s), + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 1; + /*<>*/ if + (! + /*<>*/ caml_call1 + (p, /*<>*/ caml_bytes_unsafe_get(s, i))) /*<>*/ return 0; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function uppercase_ascii(s){ - /*<>*/ return map(Stdlib_Char[4], s); - /*<>*/ } + /*<>*/ return map(Stdlib_Char[4], s) /*<>*/ ; + } function lowercase_ascii(s){ - /*<>*/ return map(Stdlib_Char[3], s); - /*<>*/ } + /*<>*/ return map(Stdlib_Char[3], s) /*<>*/ ; + } function apply1(f, s){ /*<>*/ if(0 === caml_ml_bytes_length(s)) /*<>*/ return s; - /*<>*/ /*<>*/ var r = copy(s); - caml_bytes_unsafe_set + var r = /*<>*/ copy(s); + /*<>*/ /*<>*/ caml_bytes_unsafe_set (r, 0, - /*<>*/ caml_call1(f, caml_bytes_unsafe_get(s, 0))); + /*<>*/ caml_call1 + (f, /*<>*/ caml_bytes_unsafe_get(s, 0))); /*<>*/ return r; /*<>*/ } function capitalize_ascii(s){ - /*<>*/ return apply1(Stdlib_Char[4], s); - /*<>*/ } + /*<>*/ return apply1(Stdlib_Char[4], s) /*<>*/ ; + } function uncapitalize_ascii(s){ - /*<>*/ return apply1(Stdlib_Char[3], s); - /*<>*/ } + /*<>*/ return apply1(Stdlib_Char[3], s) /*<>*/ ; + } function starts_with(prefix, s){ - /*<>*/ var - len_s = caml_ml_bytes_length(s), + var + len_s = /*<>*/ caml_ml_bytes_length(s), len_pre = caml_ml_bytes_length(prefix), - _N_ = len_pre <= len_s ? 1 : 0; + _N_ = /*<>*/ len_pre <= len_s ? 1 : 0; if(! _N_) return _N_; var i = 0; - /*<>*/ for(;;){ - if(i === len_pre) /*<>*/ return 1; - if(caml_bytes_unsafe_get(s, i) !== caml_bytes_unsafe_get(prefix, i)) + for(;;){ + /*<>*/ if(i === len_pre) + /*<>*/ return 1; + /*<>*/ if + (caml_bytes_unsafe_get(s, i) !== caml_bytes_unsafe_get(prefix, i)) /*<>*/ return 0; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function ends_with(suffix, s){ - /*<>*/ var - len_s = caml_ml_bytes_length(s), + var + len_s = /*<>*/ caml_ml_bytes_length(s), len_suf = caml_ml_bytes_length(suffix), - diff = len_s - len_suf | 0, - _M_ = 0 <= diff ? 1 : 0; + diff = /*<>*/ len_s - len_suf | 0, + _M_ = /*<>*/ 0 <= diff ? 1 : 0; if(! _M_) return _M_; var i = 0; - /*<>*/ for(;;){ - if(i === len_suf) /*<>*/ return 1; - if + for(;;){ + /*<>*/ if(i === len_suf) + /*<>*/ return 1; + /*<>*/ if (caml_bytes_unsafe_get(s, diff + i | 0) !== caml_bytes_unsafe_get(suffix, i)) /*<>*/ return 0; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function index_rec(s, lim, i, c){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(lim <= i$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Stdlib[8], 1); - if(caml_bytes_unsafe_get(s, i$0) === c) + /*<>*/ throw caml_maybe_attach_backtrace(Stdlib[8], 1); + /*<>*/ if(caml_bytes_unsafe_get(s, i$0) === c) /*<>*/ return i$0; - var i$1 = i$0 + 1 | 0; + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; } /*<>*/ } function index(s, c){ /*<>*/ return index_rec - (s, caml_ml_bytes_length(s), 0, c); - /*<>*/ } + (s, caml_ml_bytes_length(s), 0, c) /*<>*/ ; + } function index_rec_opt(s, lim, i, c){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(lim <= i$0) /*<>*/ return 0; - if(caml_bytes_unsafe_get(s, i$0) === c) + /*<>*/ if(caml_bytes_unsafe_get(s, i$0) === c) /*<>*/ return [0, i$0]; - var i$1 = i$0 + 1 | 0; + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; } /*<>*/ } function index_opt(s, c){ /*<>*/ return index_rec_opt - (s, caml_ml_bytes_length(s), 0, c); - /*<>*/ } + (s, caml_ml_bytes_length(s), 0, c) /*<>*/ ; + } function index_from(s, i, c){ - /*<>*/ var l = caml_ml_bytes_length(s); - if(0 <= i && l >= i) /*<>*/ return index_rec(s, l, i, c); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_index_from_Bytes_in); - /*<>*/ } + var l = /*<>*/ caml_ml_bytes_length(s); + /*<>*/ if(0 <= i && l >= i) + /*<>*/ return index_rec(s, l, i, c) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_index_from_Bytes_in) /*<>*/ ; + } function index_from_opt(s, i, c){ - /*<>*/ var l = caml_ml_bytes_length(s); - if(0 <= i && l >= i) - /*<>*/ return index_rec_opt(s, l, i, c); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_index_from_opt_Byte); - /*<>*/ } + var l = /*<>*/ caml_ml_bytes_length(s); + /*<>*/ if(0 <= i && l >= i) + /*<>*/ return index_rec_opt(s, l, i, c) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_index_from_opt_Byte) /*<>*/ ; + } function rindex_rec(s, i, c){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(0 > i$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Stdlib[8], 1); - if(caml_bytes_unsafe_get(s, i$0) === c) + /*<>*/ throw caml_maybe_attach_backtrace(Stdlib[8], 1); + /*<>*/ if(caml_bytes_unsafe_get(s, i$0) === c) /*<>*/ return i$0; - var i$1 = i$0 - 1 | 0; + var i$1 = /*<>*/ i$0 - 1 | 0; i$0 = i$1; } /*<>*/ } function rindex(s, c){ /*<>*/ return rindex_rec - (s, caml_ml_bytes_length(s) - 1 | 0, c); - /*<>*/ } + (s, caml_ml_bytes_length(s) - 1 | 0, c) /*<>*/ ; + } function rindex_from(s, i, c){ /*<>*/ if(-1 <= i && caml_ml_bytes_length(s) > i) - /*<>*/ return rindex_rec(s, i, c); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_rindex_from_Bytes_r); - /*<>*/ } + /*<>*/ return rindex_rec(s, i, c) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_rindex_from_Bytes_r) /*<>*/ ; + } function rindex_rec_opt(s, i, c){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(0 > i$0) /*<>*/ return 0; - if(caml_bytes_unsafe_get(s, i$0) === c) + /*<>*/ if(caml_bytes_unsafe_get(s, i$0) === c) /*<>*/ return [0, i$0]; - var i$1 = i$0 - 1 | 0; + var i$1 = /*<>*/ i$0 - 1 | 0; i$0 = i$1; } /*<>*/ } function rindex_opt(s, c){ /*<>*/ return rindex_rec_opt - (s, caml_ml_bytes_length(s) - 1 | 0, c); - /*<>*/ } + (s, caml_ml_bytes_length(s) - 1 | 0, c) /*<>*/ ; + } function rindex_from_opt(s, i, c){ /*<>*/ if(-1 <= i && caml_ml_bytes_length(s) > i) - /*<>*/ return rindex_rec_opt(s, i, c); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_rindex_from_opt_Byt); - /*<>*/ } + /*<>*/ return rindex_rec_opt(s, i, c) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_rindex_from_opt_Byt) /*<>*/ ; + } function contains_from(s, i, c){ - /*<>*/ var l = caml_ml_bytes_length(s); - if(0 <= i && l >= i) + var l = /*<>*/ caml_ml_bytes_length(s); + /*<>*/ if(0 <= i && l >= i) /*<>*/ try{ /*<>*/ index_rec(s, l, i, c); - /*<>*/ /*<>*/ var _K_ = 1; - /*<>*/ return _K_; + var _K_ = /*<>*/ 1; + return _K_; } catch(_L_){ - var _J_ = caml_wrap_exception(_L_); + var _J_ = /*<>*/ caml_wrap_exception(_L_); if(_J_ === Stdlib[8]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_J_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_J_, 0); } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_contains_from_Bytes); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_contains_from_Bytes) /*<>*/ ; + } function contains(s, c){ - /*<>*/ return contains_from(s, 0, c); - /*<>*/ } + /*<>*/ return contains_from(s, 0, c) /*<>*/ ; + } function rcontains_from(s, i, c){ /*<>*/ if(0 <= i && caml_ml_bytes_length(s) > i) /*<>*/ try{ /*<>*/ rindex_rec(s, i, c); - /*<>*/ /*<>*/ var _H_ = 1; - /*<>*/ return _H_; + var _H_ = /*<>*/ 1; + return _H_; } catch(_I_){ - var _G_ = caml_wrap_exception(_I_); + var _G_ = /*<>*/ caml_wrap_exception(_I_); if(_G_ === Stdlib[8]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_G_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_G_, 0); } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_rcontains_from_Byte); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_rcontains_from_Byte) /*<>*/ ; + } var - compare = runtime.caml_bytes_compare, + compare = /*<>*/ runtime.caml_bytes_compare, cst_Bytes_of_seq_cannot_grow_b = "Bytes.of_seq: cannot grow bytes"; function split_on_char(sep, s){ - /*<>*/ var - /*<>*/ r = [0, 0], - /*<>*/ j = - [0, /*<>*/ caml_ml_bytes_length(s)], - /*<>*/ _C_ = - /*<>*/ caml_ml_bytes_length(s) - 1 | 0; + var + r = /*<>*/ [0, 0], + j = /*<>*/ [0, caml_ml_bytes_length(s)], + _C_ = /*<>*/ caml_ml_bytes_length(s) - 1 | 0; if(_C_ >= 0){ var i = _C_; for(;;){ - if(caml_bytes_unsafe_get(s, i) === sep){ - var _E_ = r[1]; + /*<>*/ if(caml_bytes_unsafe_get(s, i) === sep){ + var _E_ = /*<>*/ r[1]; r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _E_]; - j[1] = i; + /*<>*/ j[1] = i; } - /*<>*/ /*<>*/ var _F_ = i - 1 | 0; + var _F_ = /*<>*/ i - 1 | 0; if(0 === i) break; i = _F_; } } - var _D_ = r[1]; - /*<>*/ return [0, sub(s, 0, j[1]), _D_]; + var _D_ = /*<>*/ r[1]; + return [0, sub(s, 0, j[1]), _D_] /*<>*/ ; /*<>*/ } function to_seq(s){ function aux(i, param){ /*<>*/ if(i === caml_ml_bytes_length(s)) /*<>*/ return 0; - /*<>*/ var - /*<>*/ x = - /*<>*/ caml_bytes_get(s, i), - /*<>*/ _A_ = i + 1 | 0; - /*<>*/ return [0, + var + x = /*<>*/ caml_bytes_get(s, i), + _A_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, x, - function(_B_){ /*<>*/ return aux(_A_, _B_);}]; + function(_B_){ /*<>*/ return aux(_A_, _B_);}] /*<>*/ ; /*<>*/ } - /*<>*/ var _y_ = 0; - /*<>*/ return function(_z_){ - /*<>*/ return aux(_y_, _z_);}; + var _y_ = /*<>*/ 0; + return function(_z_){ + /*<>*/ return aux(_y_, _z_);} /*<>*/ ; /*<>*/ } function to_seqi(s){ function aux(i, param){ /*<>*/ if(i === caml_ml_bytes_length(s)) /*<>*/ return 0; - /*<>*/ var - /*<>*/ x = - /*<>*/ caml_bytes_get(s, i), - /*<>*/ _w_ = i + 1 | 0; - /*<>*/ return [0, + var + x = /*<>*/ caml_bytes_get(s, i), + _w_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, [0, i, x], - function(_x_){ /*<>*/ return aux(_w_, _x_);}]; + function(_x_){ /*<>*/ return aux(_w_, _x_);}] /*<>*/ ; /*<>*/ } - /*<>*/ var _u_ = 0; - /*<>*/ return function(_v_){ - /*<>*/ return aux(_u_, _v_);}; + var _u_ = /*<>*/ 0; + return function(_v_){ + /*<>*/ return aux(_u_, _v_);} /*<>*/ ; /*<>*/ } function of_seq(i){ - /*<>*/ var - /*<>*/ n = [0, 0], - /*<>*/ buf = [0, make(256, 0)]; - /*<>*/ /*<>*/ caml_call2 + var + n = /*<>*/ [0, 0], + buf = /*<>*/ [0, make(256, 0)]; + /*<>*/ caml_call2 (Stdlib_Seq[4], function(c){ /*<>*/ if(n[1] === caml_ml_bytes_length(buf[1])){ - /*<>*/ /*<>*/ var + var new_len = - /*<>*/ caml_call2 + /*<>*/ /*<>*/ caml_call2 (Stdlib_Int[10], - 2 * caml_ml_bytes_length(buf[1]) | 0, + 2 * /*<>*/ caml_ml_bytes_length(buf[1]) | 0, Stdlib_Sys[12]); - if(caml_ml_bytes_length(buf[1]) === new_len) - /*<>*/ /*<>*/ caml_call1 + /*<>*/ if(caml_ml_bytes_length(buf[1]) === new_len) + /*<>*/ caml_call1 (Stdlib[2], cst_Bytes_of_seq_cannot_grow_b); - /*<>*/ /*<>*/ var - new_buf = make(new_len, 0); + var new_buf = /*<>*/ make(new_len, 0); /*<>*/ blit(buf[1], 0, new_buf, 0, n[1]); - buf[1] = new_buf; + /*<>*/ buf[1] = new_buf; } - /*<>*/ /*<>*/ caml_bytes_set - (buf[1], n[1], c); - n[1]++; + /*<>*/ caml_bytes_set(buf[1], n[1], c); + /*<>*/ n[1]++; return 0; /*<>*/ }, i); - return sub(buf[1], 0, n[1]); - /*<>*/ } + /*<>*/ return sub(buf[1], 0, n[1]) /*<>*/ ; + } function unsafe_get_uint16_le(b, i){ /*<>*/ return Stdlib_Sys[11] - ? /*<>*/ caml_bswap16 + ? /*<>*/ caml_bswap16 ( /*<>*/ caml_bytes_get16(b, i)) - : /*<>*/ caml_bytes_get16(b, i); - /*<>*/ } + : /*<>*/ caml_bytes_get16(b, i) /*<>*/ ; + } function unsafe_get_uint16_be(b, i){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_get16(b, i) - : /*<>*/ caml_bswap16 - ( /*<>*/ caml_bytes_get16(b, i)); - /*<>*/ } + : /*<>*/ caml_bswap16 + ( /*<>*/ caml_bytes_get16(b, i)) /*<>*/ ; + } function get_int8(b, i){ - /*<>*/ var - /*<>*/ _s_ = Stdlib_Sys[10] - 8 | 0, + var + _s_ = /*<>*/ Stdlib_Sys[10] - 8 | 0, _t_ = Stdlib_Sys[10] - 8 | 0; - return /*<>*/ caml_bytes_get(b, i) << _t_ >> _s_; + return caml_bytes_get(b, i) << _t_ >> _s_ /*<>*/ ; /*<>*/ } function get_uint16_le(b, i){ /*<>*/ return Stdlib_Sys[11] - ? /*<>*/ caml_bswap16 + ? /*<>*/ caml_bswap16 ( /*<>*/ caml_bytes_get16(b, i)) - : /*<>*/ caml_bytes_get16(b, i); - /*<>*/ } + : /*<>*/ caml_bytes_get16(b, i) /*<>*/ ; + } function get_uint16_be(b, i){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_get16(b, i) - : /*<>*/ caml_bswap16 - ( /*<>*/ caml_bytes_get16(b, i)); - /*<>*/ } + : /*<>*/ caml_bswap16 + ( /*<>*/ caml_bytes_get16(b, i)) /*<>*/ ; + } function get_int16_ne(b, i){ - /*<>*/ var - /*<>*/ _q_ = Stdlib_Sys[10] - 16 | 0, + var + _q_ = /*<>*/ Stdlib_Sys[10] - 16 | 0, _r_ = Stdlib_Sys[10] - 16 | 0; - return /*<>*/ caml_bytes_get16(b, i) << _r_ >> _q_; + return caml_bytes_get16(b, i) << _r_ >> _q_ /*<>*/ ; /*<>*/ } function get_int16_le(b, i){ - /*<>*/ var - /*<>*/ _o_ = Stdlib_Sys[10] - 16 | 0, + var + _o_ = /*<>*/ Stdlib_Sys[10] - 16 | 0, _p_ = Stdlib_Sys[10] - 16 | 0; - return get_uint16_le(b, i) << _p_ >> _o_; + return get_uint16_le(b, i) << _p_ >> _o_ /*<>*/ ; /*<>*/ } function get_int16_be(b, i){ - /*<>*/ var - /*<>*/ _m_ = Stdlib_Sys[10] - 16 | 0, + var + _m_ = /*<>*/ Stdlib_Sys[10] - 16 | 0, _n_ = Stdlib_Sys[10] - 16 | 0; - return get_uint16_be(b, i) << _n_ >> _m_; + return get_uint16_be(b, i) << _n_ >> _m_ /*<>*/ ; /*<>*/ } function get_int32_le(b, i){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_int32_bswap ( /*<>*/ caml_bytes_get32(b, i)) - : /*<>*/ caml_bytes_get32(b, i); - /*<>*/ } + : /*<>*/ caml_bytes_get32(b, i) /*<>*/ ; + } function get_int32_be(b, i){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_get32(b, i) : /*<>*/ caml_int32_bswap - ( /*<>*/ caml_bytes_get32(b, i)); - /*<>*/ } + ( /*<>*/ caml_bytes_get32(b, i)) /*<>*/ ; + } function get_int64_le(b, i){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_int64_bswap ( /*<>*/ caml_bytes_get64(b, i)) - : /*<>*/ caml_bytes_get64(b, i); - /*<>*/ } + : /*<>*/ caml_bytes_get64(b, i) /*<>*/ ; + } function get_int64_be(b, i){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_get64(b, i) : /*<>*/ caml_int64_bswap - ( /*<>*/ caml_bytes_get64(b, i)); - /*<>*/ } + ( /*<>*/ caml_bytes_get64(b, i)) /*<>*/ ; + } function unsafe_set_uint16_le(b, i, x){ /*<>*/ if(Stdlib_Sys[11]){ - /*<>*/ /*<>*/ caml_bytes_set16 - (b, i, caml_bswap16(x)); - /*<>*/ return; + /*<>*/ caml_bytes_set16(b, i, caml_bswap16(x)); + /*<>*/ return; } - /*<>*/ /*<>*/ caml_bytes_set16(b, i, x); + /*<>*/ caml_bytes_set16(b, i, x); /*<>*/ } function unsafe_set_uint16_be(b, i, x){ /*<>*/ if(Stdlib_Sys[11]){ - /*<>*/ /*<>*/ caml_bytes_set16(b, i, x); - /*<>*/ return; + /*<>*/ caml_bytes_set16(b, i, x); + /*<>*/ return; } - /*<>*/ /*<>*/ caml_bytes_set16 - (b, i, caml_bswap16(x)); + /*<>*/ caml_bytes_set16(b, i, caml_bswap16(x)); /*<>*/ } function set_int16_le(b, i, x){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_set16(b, i, caml_bswap16(x)) - : /*<>*/ caml_bytes_set16(b, i, x); - /*<>*/ } + : /*<>*/ caml_bytes_set16(b, i, x) /*<>*/ ; + } function set_int16_be(b, i, x){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_set16(b, i, x) - : /*<>*/ caml_bytes_set16(b, i, caml_bswap16(x)); - /*<>*/ } + : /*<>*/ caml_bytes_set16(b, i, caml_bswap16(x)) /*<>*/ ; + } function set_int32_le(b, i, x){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_set32 (b, i, /*<>*/ caml_int32_bswap(x)) - : /*<>*/ caml_bytes_set32(b, i, x); - /*<>*/ } + : /*<>*/ caml_bytes_set32(b, i, x) /*<>*/ ; + } function set_int32_be(b, i, x){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_set32(b, i, x) : /*<>*/ caml_bytes_set32 - (b, i, /*<>*/ caml_int32_bswap(x)); - /*<>*/ } + (b, i, /*<>*/ caml_int32_bswap(x)) /*<>*/ ; + } function set_int64_le(b, i, x){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_set64 (b, i, /*<>*/ caml_int64_bswap(x)) - : /*<>*/ caml_bytes_set64(b, i, x); - /*<>*/ } + : /*<>*/ caml_bytes_set64(b, i, x) /*<>*/ ; + } function set_int64_be(b, i, x){ /*<>*/ return Stdlib_Sys[11] ? /*<>*/ caml_bytes_set64(b, i, x) : /*<>*/ caml_bytes_set64 - (b, i, /*<>*/ caml_int64_bswap(x)); - /*<>*/ } + (b, i, /*<>*/ caml_int64_bswap(x)) /*<>*/ ; + } var - set_uint8 = caml_bytes_set, + set_uint8 = /*<>*/ caml_bytes_set, set_uint16_ne = caml_bytes_set16, dec_invalid = Stdlib_Uchar[22], _a_ = [0, cst_bytes_ml, 679, 9], @@ -5771,11 +5680,9 @@ _e_ = [0, cst_bytes_ml, 831, 9], _f_ = [0, cst_bytes_ml, 820, 20]; function dec_ret(n, u){ - /*<>*/ /*<>*/ var - _l_ = /*<>*/ caml_call1(Stdlib_Uchar[9], u); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Uchar[21], n, _l_); - /*<>*/ } + var _l_ = /*<>*/ caml_call1(Stdlib_Uchar[9], u); + /*<>*/ return caml_call2(Stdlib_Uchar[21], n, _l_); + } function not_in_x80_to_xBF(b){ /*<>*/ return 2 !== (b >>> 6 | 0) ? 1 : 0; /*<>*/ } @@ -5786,8 +5693,8 @@ /*<>*/ return 4 !== (b >>> 5 | 0) ? 1 : 0; /*<>*/ } function not_in_x90_to_xBF(b){ - /*<>*/ var - _j_ = b < 144 ? 1 : 0, + var + _j_ = /*<>*/ b < 144 ? 1 : 0, _k_ = _j_ || (191 < b ? 1 : 0); return _k_; /*<>*/ } @@ -5803,11 +5710,9 @@ | b3 & 63; /*<>*/ } function get_utf_8_uchar(b, i){ - /*<>*/ var - /*<>*/ b0 = - /*<>*/ caml_bytes_get(b, i), - /*<>*/ max = - /*<>*/ caml_ml_bytes_length(b) - 1 | 0; + var + b0 = /*<>*/ caml_bytes_get(b, i), + max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; a: { /*<>*/ if(224 <= b0){ @@ -5815,266 +5720,250 @@ if(245 <= b0) break a; switch(b0 - 237 | 0){ case 0: - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; - if(max < i$0) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - var b1$4 = caml_bytes_unsafe_get(b, i$0); + var i$0 = /*<>*/ i + 1 | 0; + /*<>*/ if(max < i$0) + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var b1$4 = /*<>*/ caml_bytes_unsafe_get(b, i$0); /*<>*/ if(not_in_x80_to_x9F(b1$4)) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - /*<>*/ /*<>*/ var - i$1 = i$0 + 1 | 0; - if(max < i$1) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - var b2$3 = caml_bytes_unsafe_get(b, i$1); + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var i$1 = /*<>*/ i$0 + 1 | 0; + /*<>*/ if(max < i$1) + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var b2$3 = /*<>*/ caml_bytes_unsafe_get(b, i$1); /*<>*/ return not_in_x80_to_xBF(b2$3) ? /*<>*/ caml_call1(dec_invalid, 2) - : dec_ret(3, utf_8_uchar_3(b0, b1$4, b2$3)); + : /*<>*/ dec_ret + (3, /*<>*/ utf_8_uchar_3(b0, b1$4, b2$3)) /*<>*/ ; case 3: - /*<>*/ /*<>*/ var i$4 = i + 1 | 0; - if(max < i$4) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - var b1$2 = caml_bytes_unsafe_get(b, i$4); + var i$4 = /*<>*/ i + 1 | 0; + /*<>*/ if(max < i$4) + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var b1$2 = /*<>*/ caml_bytes_unsafe_get(b, i$4); /*<>*/ if(not_in_x90_to_xBF(b1$2)) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - /*<>*/ /*<>*/ var - i$5 = i$4 + 1 | 0; - if(max < i$5) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - var b2$1 = caml_bytes_unsafe_get(b, i$5); + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var i$5 = /*<>*/ i$4 + 1 | 0; + /*<>*/ if(max < i$5) + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var b2$1 = /*<>*/ caml_bytes_unsafe_get(b, i$5); /*<>*/ if(not_in_x80_to_xBF(b2$1)) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - /*<>*/ /*<>*/ var - i$6 = i$5 + 1 | 0; - if(max < i$6) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 3); - var b3$1 = caml_bytes_unsafe_get(b, i$6); + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var i$6 = /*<>*/ i$5 + 1 | 0; + /*<>*/ if(max < i$6) + /*<>*/ return caml_call1(dec_invalid, 3) /*<>*/ ; + var b3$1 = /*<>*/ caml_bytes_unsafe_get(b, i$6); /*<>*/ return not_in_x80_to_xBF(b3$1) ? /*<>*/ caml_call1(dec_invalid, 3) - : dec_ret(4, utf_8_uchar_4(b0, b1$2, b2$1, b3$1)); + : /*<>*/ dec_ret + (4, + /*<>*/ utf_8_uchar_4(b0, b1$2, b2$1, b3$1)) /*<>*/ ; case 7: - /*<>*/ /*<>*/ var - i$10 = i + 1 | 0; - if(max < i$10) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - var b1$0 = caml_bytes_unsafe_get(b, i$10); + var i$10 = /*<>*/ i + 1 | 0; + /*<>*/ if(max < i$10) + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var b1$0 = /*<>*/ caml_bytes_unsafe_get(b, i$10); /*<>*/ if(not_in_x80_to_x8F(b1$0)) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - /*<>*/ /*<>*/ var - i$11 = i$10 + 1 | 0; - if(max < i$11) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - var b2 = caml_bytes_unsafe_get(b, i$11); + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var i$11 = /*<>*/ i$10 + 1 | 0; + /*<>*/ if(max < i$11) + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var b2 = /*<>*/ caml_bytes_unsafe_get(b, i$11); /*<>*/ if(not_in_x80_to_xBF(b2)) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - /*<>*/ /*<>*/ var - i$12 = i$11 + 1 | 0; - if(max < i$12) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 3); - var b3 = caml_bytes_unsafe_get(b, i$12); + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var i$12 = /*<>*/ i$11 + 1 | 0; + /*<>*/ if(max < i$12) + /*<>*/ return caml_call1(dec_invalid, 3) /*<>*/ ; + var b3 = /*<>*/ caml_bytes_unsafe_get(b, i$12); /*<>*/ return not_in_x80_to_xBF(b3) ? /*<>*/ caml_call1(dec_invalid, 3) - : dec_ret(4, utf_8_uchar_4(b0, b1$0, b2, b3)); + : /*<>*/ dec_ret + (4, + /*<>*/ utf_8_uchar_4(b0, b1$0, b2, b3)) /*<>*/ ; case 1: case 2: break; default: - /*<>*/ /*<>*/ var i$7 = i + 1 | 0; - if(max < i$7) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - var b1$1 = caml_bytes_unsafe_get(b, i$7); + var i$7 = /*<>*/ i + 1 | 0; + /*<>*/ if(max < i$7) + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var b1$1 = /*<>*/ caml_bytes_unsafe_get(b, i$7); /*<>*/ if(not_in_x80_to_xBF(b1$1)) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - /*<>*/ /*<>*/ var - i$8 = i$7 + 1 | 0; - if(max < i$8) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - var b2$0 = caml_bytes_unsafe_get(b, i$8); + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var i$8 = /*<>*/ i$7 + 1 | 0; + /*<>*/ if(max < i$8) + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var b2$0 = /*<>*/ caml_bytes_unsafe_get(b, i$8); /*<>*/ if(not_in_x80_to_xBF(b2$0)) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - /*<>*/ /*<>*/ var - i$9 = i$8 + 1 | 0; - if(max < i$9) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 3); - var b3$0 = caml_bytes_unsafe_get(b, i$9); + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var i$9 = /*<>*/ i$8 + 1 | 0; + /*<>*/ if(max < i$9) + /*<>*/ return caml_call1(dec_invalid, 3) /*<>*/ ; + var b3$0 = /*<>*/ caml_bytes_unsafe_get(b, i$9); /*<>*/ return not_in_x80_to_xBF(b3$0) ? /*<>*/ caml_call1(dec_invalid, 3) - : dec_ret(4, utf_8_uchar_4(b0, b1$1, b2$0, b3$0)); + : /*<>*/ dec_ret + (4, + /*<>*/ utf_8_uchar_4(b0, b1$1, b2$0, b3$0)) /*<>*/ ; } } else if(225 > b0){ - /*<>*/ /*<>*/ var i$13 = i + 1 | 0; - if(max < i$13) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - var b1$5 = caml_bytes_unsafe_get(b, i$13); + var i$13 = /*<>*/ i + 1 | 0; + /*<>*/ if(max < i$13) + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var b1$5 = /*<>*/ caml_bytes_unsafe_get(b, i$13); /*<>*/ if(not_in_xA0_to_xBF(b1$5)) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - /*<>*/ /*<>*/ var - i$14 = i$13 + 1 | 0; - if(max < i$14) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - var b2$4 = caml_bytes_unsafe_get(b, i$14); + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var i$14 = /*<>*/ i$13 + 1 | 0; + /*<>*/ if(max < i$14) + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var b2$4 = /*<>*/ caml_bytes_unsafe_get(b, i$14); /*<>*/ return not_in_x80_to_xBF(b2$4) ? /*<>*/ caml_call1(dec_invalid, 2) - : dec_ret(3, utf_8_uchar_3(b0, b1$5, b2$4)); + : /*<>*/ dec_ret + (3, /*<>*/ utf_8_uchar_3(b0, b1$5, b2$4)) /*<>*/ ; } - /*<>*/ /*<>*/ var i$2 = i + 1 | 0; - if(max < i$2) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - var b1$3 = caml_bytes_unsafe_get(b, i$2); + var i$2 = /*<>*/ i + 1 | 0; + /*<>*/ if(max < i$2) + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var b1$3 = /*<>*/ caml_bytes_unsafe_get(b, i$2); /*<>*/ if(not_in_x80_to_xBF(b1$3)) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - /*<>*/ /*<>*/ var i$3 = i$2 + 1 | 0; - if(max < i$3) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - var b2$2 = caml_bytes_unsafe_get(b, i$3); + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var i$3 = /*<>*/ i$2 + 1 | 0; + /*<>*/ if(max < i$3) + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var b2$2 = /*<>*/ caml_bytes_unsafe_get(b, i$3); /*<>*/ return not_in_x80_to_xBF(b2$2) ? /*<>*/ caml_call1(dec_invalid, 2) - : dec_ret(3, utf_8_uchar_3(b0, b1$3, b2$2)); - } - if(128 > b0) /*<>*/ return dec_ret(1, b0); - if(194 <= b0){ - /*<>*/ /*<>*/ var i$15 = i + 1 | 0; - if(max < i$15) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - var b1 = caml_bytes_unsafe_get(b, i$15); + : /*<>*/ dec_ret + (3, /*<>*/ utf_8_uchar_3(b0, b1$3, b2$2)) /*<>*/ ; + } + /*<>*/ if(128 > b0) + /*<>*/ return dec_ret(1, b0) /*<>*/ ; + /*<>*/ if(194 <= b0){ + var i$15 = /*<>*/ i + 1 | 0; + /*<>*/ if(max < i$15) + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var b1 = /*<>*/ caml_bytes_unsafe_get(b, i$15); /*<>*/ return not_in_x80_to_xBF(b1) ? /*<>*/ caml_call1(dec_invalid, 1) - : dec_ret(2, (b0 & 31) << 6 | b1 & 63); + : /*<>*/ dec_ret(2, (b0 & 31) << 6 | b1 & 63) /*<>*/ ; } } - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - /*<>*/ } + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + } function set_utf_8_uchar(b, i, u){ - /*<>*/ function set(_i_, _h_, _g_){ + function set(_i_, _h_, _g_){ /*<>*/ caml_bytes_unsafe_set(_i_, _h_, _g_); } - /*<>*/ var - /*<>*/ max = - /*<>*/ caml_ml_bytes_length(b) - 1 | 0, - /*<>*/ u$0 = - /*<>*/ caml_call1(Stdlib_Uchar[10], u); + var + max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0, + u$0 = /*<>*/ caml_call1(Stdlib_Uchar[10], u); /*<>*/ if(0 > u$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _b_], 1); /*<>*/ if(127 >= u$0){ - caml_bytes_set(b, i, u$0); - /*<>*/ return 1; + /*<>*/ caml_bytes_set(b, i, u$0); + /*<>*/ return 1; } /*<>*/ if(2047 >= u$0){ - /*<>*/ /*<>*/ var last$1 = i + 1 | 0; - return max < last$1 + var last$1 = /*<>*/ i + 1 | 0; + /*<>*/ return max < last$1 ? 0 - : (caml_bytes_set + : ( /*<>*/ caml_bytes_set (b, i, 192 | u$0 >>> 6 | 0), - set(b, last$1, 128 | u$0 & 63), - 2); + /*<>*/ set(b, last$1, 128 | u$0 & 63), + 2) /*<>*/ ; } /*<>*/ if(65535 >= u$0){ - /*<>*/ /*<>*/ var last$0 = i + 2 | 0; - return max < last$0 + var last$0 = /*<>*/ i + 2 | 0; + /*<>*/ return max < last$0 ? 0 - : (caml_bytes_set + : ( /*<>*/ caml_bytes_set (b, i, 224 | u$0 >>> 12 | 0), - set(b, i + 1 | 0, 128 | (u$0 >>> 6 | 0) & 63), - set(b, last$0, 128 | u$0 & 63), - 3); + /*<>*/ set + (b, i + 1 | 0, 128 | (u$0 >>> 6 | 0) & 63), + /*<>*/ set(b, last$0, 128 | u$0 & 63), + 3) /*<>*/ ; } /*<>*/ if(1114111 < u$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _a_], 1); - /*<>*/ /*<>*/ var last = i + 3 | 0; - return max < last + var last = /*<>*/ i + 3 | 0; + /*<>*/ return max < last ? 0 - : (caml_bytes_set + : ( /*<>*/ caml_bytes_set (b, i, 240 | u$0 >>> 18 | 0), - set(b, i + 1 | 0, 128 | (u$0 >>> 12 | 0) & 63), - set(b, i + 2 | 0, 128 | (u$0 >>> 6 | 0) & 63), - set(b, last, 128 | u$0 & 63), - 4); - /*<>*/ } + /*<>*/ set + (b, i + 1 | 0, 128 | (u$0 >>> 12 | 0) & 63), + /*<>*/ set + (b, i + 2 | 0, 128 | (u$0 >>> 6 | 0) & 63), + /*<>*/ set(b, last, 128 | u$0 & 63), + 4) /*<>*/ ; + } function is_valid_utf_8(b){ - /*<>*/ var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; - /*<>*/ for(;;){ - if(max < i) /*<>*/ return 1; - var match = caml_bytes_unsafe_get(b, i); + var max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0, i = 0; + for(;;){ + /*<>*/ if(max < i) /*<>*/ return 1; + var match = /*<>*/ caml_bytes_unsafe_get(b, i); a: { - if(224 <= match){ + /*<>*/ if(224 <= match){ if(237 <= match){ if(245 <= match) break a; switch(match - 237 | 0){ case 0: - /*<>*/ /*<>*/ var - last = i + 2 | 0; - /*<>*/ if + var last = /*<>*/ i + 2 | 0; + /*<>*/ if (max >= last && ! - not_in_x80_to_x9F(caml_bytes_unsafe_get(b, i + 1 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last))){ - /*<>*/ /*<>*/ var - i$0 = last + 1 | 0; + /*<>*/ not_in_x80_to_x9F + ( /*<>*/ caml_bytes_unsafe_get(b, i + 1 | 0)) + && + ! + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, last))){ + var i$0 = /*<>*/ last + 1 | 0; i = i$0; continue; } /*<>*/ return 0; case 3: - /*<>*/ /*<>*/ var - last$1 = i + 3 | 0; - /*<>*/ if + var last$1 = /*<>*/ i + 3 | 0; + /*<>*/ if (max >= last$1 && ! - not_in_x90_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + /*<>*/ not_in_x90_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, i + 1 | 0)) && ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$1))){ - /*<>*/ /*<>*/ var - i$2 = last$1 + 1 | 0; + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, i + 2 | 0)) + && + ! + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, last$1))){ + var i$2 = /*<>*/ last$1 + 1 | 0; i = i$2; continue; } /*<>*/ return 0; case 7: - /*<>*/ /*<>*/ var - last$3 = i + 3 | 0; - /*<>*/ if + var last$3 = /*<>*/ i + 3 | 0; + /*<>*/ if (max >= last$3 && ! - not_in_x80_to_x8F(caml_bytes_unsafe_get(b, i + 1 | 0)) + /*<>*/ not_in_x80_to_x8F + ( /*<>*/ caml_bytes_unsafe_get(b, i + 1 | 0)) && ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$3))){ - /*<>*/ /*<>*/ var - i$4 = last$3 + 1 | 0; + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, i + 2 | 0)) + && + ! + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, last$3))){ + var i$4 = /*<>*/ last$3 + 1 | 0; i = i$4; continue; } @@ -6082,19 +5971,22 @@ case 1: case 2: break; default: - /*<>*/ /*<>*/ var - last$2 = i + 3 | 0; - /*<>*/ if + var last$2 = /*<>*/ i + 3 | 0; + /*<>*/ if (max >= last$2 && ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, i + 1 | 0)) && ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$2))){ - /*<>*/ /*<>*/ var - i$3 = last$2 + 1 | 0; + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, i + 2 | 0)) + && + ! + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, last$2))){ + var i$3 = /*<>*/ last$2 + 1 | 0; i = i$3; continue; } @@ -6102,47 +5994,54 @@ } } else if(225 > match){ - /*<>*/ /*<>*/ var - last$4 = i + 2 | 0; - /*<>*/ if + var last$4 = /*<>*/ i + 2 | 0; + /*<>*/ if (max >= last$4 && ! - not_in_xA0_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$4))){ - /*<>*/ /*<>*/ var - i$5 = last$4 + 1 | 0; + /*<>*/ not_in_xA0_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, i + 1 | 0)) + && + ! + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, last$4))){ + var i$5 = /*<>*/ last$4 + 1 | 0; i = i$5; continue; } /*<>*/ return 0; } - /*<>*/ /*<>*/ var last$0 = i + 2 | 0; - /*<>*/ if + var last$0 = /*<>*/ i + 2 | 0; + /*<>*/ if (max >= last$0 && ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$0))){ - /*<>*/ /*<>*/ var - i$1 = last$0 + 1 | 0; + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, i + 1 | 0)) + && + ! + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, last$0))){ + var i$1 = /*<>*/ last$0 + 1 | 0; i = i$1; continue; } /*<>*/ return 0; } - if(128 > match){ - /*<>*/ /*<>*/ var i$7 = i + 1 | 0; + /*<>*/ if(128 > match){ + var i$7 = /*<>*/ i + 1 | 0; i = i$7; continue; } - if(194 <= match){ - /*<>*/ /*<>*/ var last$5 = i + 1 | 0; - /*<>*/ if + /*<>*/ if(194 <= match){ + var last$5 = /*<>*/ i + 1 | 0; + /*<>*/ if (max >= last$5 - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$5))){ - /*<>*/ /*<>*/ var - i$6 = last$5 + 1 | 0; + && + ! + /*<>*/ not_in_x80_to_xBF + ( /*<>*/ caml_bytes_unsafe_get(b, last$5))){ + var i$6 = /*<>*/ last$5 + 1 | 0; i = i$6; continue; } @@ -6153,174 +6052,168 @@ } /*<>*/ } function get_utf_16be_uchar(b, i){ - /*<>*/ /*<>*/ var - max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - if(i === max) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - /*<>*/ /*<>*/ var - hi = unsafe_get_uint16_be(b, i); - if(55296 <= hi && 57343 >= hi){ + var max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; + /*<>*/ if(0 <= i && max >= i){ + /*<>*/ if(i === max) + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var hi = /*<>*/ unsafe_get_uint16_be(b, i); + /*<>*/ if(55296 <= hi && 57343 >= hi){ /*<>*/ if(56319 < hi) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - /*<>*/ /*<>*/ var last = i + 3 | 0; - if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); - /*<>*/ /*<>*/ var - lo = unsafe_get_uint16_be(b, i + 2 | 0); - if(56320 <= lo && 57343 >= lo){ - var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; - /*<>*/ return dec_ret(4, u); + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var last = /*<>*/ i + 3 | 0; + /*<>*/ if(max < last) + /*<>*/ return caml_call1 + (dec_invalid, (max - i | 0) + 1 | 0) /*<>*/ ; + var lo = /*<>*/ unsafe_get_uint16_be(b, i + 2 | 0); + /*<>*/ if(56320 <= lo && 57343 >= lo){ + var + u = + /*<>*/ ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; + /*<>*/ return dec_ret(4, u) /*<>*/ ; } - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; } - /*<>*/ return dec_ret(2, hi); + /*<>*/ return dec_ret(2, hi) /*<>*/ ; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_index_out_of_bounds); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_index_out_of_bounds) /*<>*/ ; + } function set_utf_16be_uchar(b, i, u){ - /*<>*/ /*<>*/ var - max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - /*<>*/ /*<>*/ var - u$0 = /*<>*/ caml_call1(Stdlib_Uchar[10], u); + var max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; + /*<>*/ if(0 <= i && max >= i){ + var u$0 = /*<>*/ caml_call1(Stdlib_Uchar[10], u); /*<>*/ if(0 > u$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _d_], 1); /*<>*/ if(65535 >= u$0){ - /*<>*/ /*<>*/ var last$0 = i + 1 | 0; - return max < last$0 ? 0 : (unsafe_set_uint16_be(b, i, u$0), 2); + var last$0 = /*<>*/ i + 1 | 0; + /*<>*/ return max < last$0 + ? 0 + : ( /*<>*/ unsafe_set_uint16_be(b, i, u$0), 2) /*<>*/ ; } /*<>*/ if(1114111 < u$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _c_], 1); - /*<>*/ /*<>*/ var last = i + 3 | 0; - if(max < last) /*<>*/ return 0; - /*<>*/ var - /*<>*/ u$1 = u$0 - 65536 | 0, - hi = 55296 | u$1 >>> 10 | 0, - lo = 56320 | u$1 & 1023; + var last = /*<>*/ i + 3 | 0; + /*<>*/ if(max < last) /*<>*/ return 0; + var + u$1 = /*<>*/ u$0 - 65536 | 0, + hi = /*<>*/ 55296 | u$1 >>> 10 | 0, + lo = /*<>*/ 56320 | u$1 & 1023; /*<>*/ unsafe_set_uint16_be(b, i, hi); /*<>*/ unsafe_set_uint16_be(b, i + 2 | 0, lo); - /*<>*/ return 4; + /*<>*/ return 4; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_index_out_of_bounds$0); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_index_out_of_bounds$0) /*<>*/ ; + } function is_valid_utf_16be(b){ - /*<>*/ var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; - /*<>*/ for(;;){ - if(max < i) /*<>*/ return 1; - if(i === max) /*<>*/ return 0; - /*<>*/ /*<>*/ var - u = unsafe_get_uint16_be(b, i); - if(55296 <= u && 57343 >= u){ + var max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0, i = 0; + for(;;){ + /*<>*/ if(max < i) /*<>*/ return 1; + /*<>*/ if(i === max) /*<>*/ return 0; + var u = /*<>*/ unsafe_get_uint16_be(b, i); + /*<>*/ if(55296 <= u && 57343 >= u){ /*<>*/ if(56319 < u) /*<>*/ return 0; - /*<>*/ /*<>*/ var last = i + 3 | 0; - if(max < last) /*<>*/ return 0; - /*<>*/ /*<>*/ var - u$0 = unsafe_get_uint16_be(b, i + 2 | 0); - if(56320 <= u$0 && 57343 >= u$0){ - /*<>*/ /*<>*/ var i$1 = i + 4 | 0; + var last = /*<>*/ i + 3 | 0; + /*<>*/ if(max < last) + /*<>*/ return 0; + var u$0 = /*<>*/ unsafe_get_uint16_be(b, i + 2 | 0); + /*<>*/ if(56320 <= u$0 && 57343 >= u$0){ + var i$1 = /*<>*/ i + 4 | 0; i = i$1; continue; } /*<>*/ return 0; } - /*<>*/ /*<>*/ var i$0 = i + 2 | 0; + var i$0 = /*<>*/ i + 2 | 0; i = i$0; } /*<>*/ } function get_utf_16le_uchar(b, i){ - /*<>*/ /*<>*/ var - max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - if(i === max) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 1); - /*<>*/ /*<>*/ var - hi = unsafe_get_uint16_le(b, i); - if(55296 <= hi && 57343 >= hi){ + var max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; + /*<>*/ if(0 <= i && max >= i){ + /*<>*/ if(i === max) + /*<>*/ return caml_call1(dec_invalid, 1) /*<>*/ ; + var hi = /*<>*/ unsafe_get_uint16_le(b, i); + /*<>*/ if(55296 <= hi && 57343 >= hi){ /*<>*/ if(56319 < hi) - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); - /*<>*/ /*<>*/ var last = i + 3 | 0; - if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); - /*<>*/ /*<>*/ var - lo = unsafe_get_uint16_le(b, i + 2 | 0); - if(56320 <= lo && 57343 >= lo){ - var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; - /*<>*/ return dec_ret(4, u); + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; + var last = /*<>*/ i + 3 | 0; + /*<>*/ if(max < last) + /*<>*/ return caml_call1 + (dec_invalid, (max - i | 0) + 1 | 0) /*<>*/ ; + var lo = /*<>*/ unsafe_get_uint16_le(b, i + 2 | 0); + /*<>*/ if(56320 <= lo && 57343 >= lo){ + var + u = + /*<>*/ ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; + /*<>*/ return dec_ret(4, u) /*<>*/ ; } - /*<>*/ return /*<>*/ caml_call1 - (dec_invalid, 2); + /*<>*/ return caml_call1(dec_invalid, 2) /*<>*/ ; } - /*<>*/ return dec_ret(2, hi); + /*<>*/ return dec_ret(2, hi) /*<>*/ ; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_index_out_of_bounds$1); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_index_out_of_bounds$1) /*<>*/ ; + } function set_utf_16le_uchar(b, i, u){ - /*<>*/ /*<>*/ var - max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - /*<>*/ /*<>*/ var - u$0 = /*<>*/ caml_call1(Stdlib_Uchar[10], u); + var max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; + /*<>*/ if(0 <= i && max >= i){ + var u$0 = /*<>*/ caml_call1(Stdlib_Uchar[10], u); /*<>*/ if(0 > u$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _f_], 1); /*<>*/ if(65535 >= u$0){ - /*<>*/ /*<>*/ var last$0 = i + 1 | 0; - return max < last$0 ? 0 : (unsafe_set_uint16_le(b, i, u$0), 2); + var last$0 = /*<>*/ i + 1 | 0; + /*<>*/ return max < last$0 + ? 0 + : ( /*<>*/ unsafe_set_uint16_le(b, i, u$0), 2) /*<>*/ ; } /*<>*/ if(1114111 < u$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _e_], 1); - /*<>*/ /*<>*/ var last = i + 3 | 0; - if(max < last) /*<>*/ return 0; - /*<>*/ var - /*<>*/ u$1 = u$0 - 65536 | 0, - hi = 55296 | u$1 >>> 10 | 0, - lo = 56320 | u$1 & 1023; + var last = /*<>*/ i + 3 | 0; + /*<>*/ if(max < last) /*<>*/ return 0; + var + u$1 = /*<>*/ u$0 - 65536 | 0, + hi = /*<>*/ 55296 | u$1 >>> 10 | 0, + lo = /*<>*/ 56320 | u$1 & 1023; /*<>*/ unsafe_set_uint16_le(b, i, hi); /*<>*/ unsafe_set_uint16_le(b, i + 2 | 0, lo); - /*<>*/ return 4; + /*<>*/ return 4; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_index_out_of_bounds$2); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_index_out_of_bounds$2) /*<>*/ ; + } function is_valid_utf_16le(b){ - /*<>*/ var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; - /*<>*/ for(;;){ - if(max < i) /*<>*/ return 1; - if(i === max) /*<>*/ return 0; - /*<>*/ /*<>*/ var - u = unsafe_get_uint16_le(b, i); - if(55296 <= u && 57343 >= u){ + var max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0, i = 0; + for(;;){ + /*<>*/ if(max < i) /*<>*/ return 1; + /*<>*/ if(i === max) /*<>*/ return 0; + var u = /*<>*/ unsafe_get_uint16_le(b, i); + /*<>*/ if(55296 <= u && 57343 >= u){ /*<>*/ if(56319 < u) /*<>*/ return 0; - /*<>*/ /*<>*/ var last = i + 3 | 0; - if(max < last) /*<>*/ return 0; - /*<>*/ /*<>*/ var - u$0 = unsafe_get_uint16_le(b, i + 2 | 0); - if(56320 <= u$0 && 57343 >= u$0){ - /*<>*/ /*<>*/ var i$1 = i + 4 | 0; + var last = /*<>*/ i + 3 | 0; + /*<>*/ if(max < last) + /*<>*/ return 0; + var u$0 = /*<>*/ unsafe_get_uint16_le(b, i + 2 | 0); + /*<>*/ if(56320 <= u$0 && 57343 >= u$0){ + var i$1 = /*<>*/ i + 4 | 0; i = i$1; continue; } /*<>*/ return 0; } - /*<>*/ /*<>*/ var i$0 = i + 2 | 0; + var i$0 = /*<>*/ i + 2 | 0; i = i$0; } /*<>*/ } var Stdlib_Bytes = - [0, + /*<>*/ [0, make, init, empty, @@ -6428,17 +6321,17 @@ caml_string_hash = runtime.caml_string_hash, caml_string_unsafe_get = runtime.caml_string_unsafe_get, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); @@ -6452,82 +6345,88 @@ bts = Stdlib_Bytes[44], bos = Stdlib_Bytes[45]; function make(n, c){ - /*<>*/ return /*<>*/ caml_call1 - (bts, /*<>*/ caml_call2(Stdlib_Bytes[1], n, c)); - /*<>*/ } + /*<>*/ return /*<>*/ caml_call1 + (bts, /*<>*/ caml_call2(Stdlib_Bytes[1], n, c)) /*<>*/ ; + } function init(n, f){ - /*<>*/ return /*<>*/ caml_call1 - (bts, /*<>*/ caml_call2(Stdlib_Bytes[2], n, f)); - /*<>*/ } - var of_bytes = Stdlib_Bytes[6], to_bytes = Stdlib_Bytes[5]; + /*<>*/ return /*<>*/ caml_call1 + (bts, /*<>*/ caml_call2(Stdlib_Bytes[2], n, f)) /*<>*/ ; + } + var of_bytes = /*<>*/ Stdlib_Bytes[6], to_bytes = Stdlib_Bytes[5]; function sub(s, ofs, len){ - /*<>*/ /*<>*/ var - _X_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 + var _X_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return /*<>*/ caml_call1 (bts, /*<>*/ caml_call3 - (Stdlib_Bytes[7], _X_, ofs, len)); - /*<>*/ } - var blit = Stdlib_Bytes[12], cst_String_concat = "String.concat"; + (Stdlib_Bytes[7], _X_, ofs, len)) /*<>*/ ; + } + var + blit = /*<>*/ Stdlib_Bytes[12], + cst_String_concat = "String.concat"; function concat(sep, l){ - /*<>*/ if(! l) /*<>*/ return cst; - var seplen = caml_ml_string_length(sep); + /*<>*/ if(! l) /*<>*/ return cst; + var seplen = /*<>*/ caml_ml_string_length(sep); a: { b: { - var acc = 0, param = l, pos$1 = 0; + var acc = /*<>*/ 0, param = l, pos$1 = 0; for(;;){ - if(! param) break; + /*<>*/ if(! param) break; var hd = param[1]; if(! param[2]) break b; var tl = param[2], - x = (caml_ml_string_length(hd) + seplen | 0) + acc | 0, + x = + /*<>*/ (caml_ml_string_length(hd) + seplen | 0) + + acc + | 0, acc$0 = - acc <= x + /*<>*/ acc <= x ? x : /*<>*/ caml_call1(Stdlib[1], cst_String_concat); - acc = acc$0; + /*<>*/ acc = acc$0; param = tl; } - var _W_ = acc; + var _W_ = /*<>*/ acc; break a; } - var _W_ = caml_ml_string_length(hd) + acc | 0; + var _W_ = /*<>*/ caml_ml_string_length(hd) + acc | 0; } - /*<>*/ var - /*<>*/ dst = - /*<>*/ runtime.caml_create_bytes(_W_), - pos = pos$1, + var + dst = /*<>*/ runtime.caml_create_bytes(_W_), + pos = /*<>*/ pos$1, param$0 = l; for(;;){ - if(param$0){ + /*<>*/ if(param$0){ var hd$0 = param$0[1]; if(param$0[2]){ var tl$0 = param$0[2]; - /*<>*/ /*<>*/ caml_blit_string - (hd$0, + /*<>*/ caml_blit_string + (hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); + /*<>*/ /*<>*/ caml_blit_string + (sep, 0, dst, - pos, - /*<>*/ caml_ml_string_length(hd$0)); - /*<>*/ /*<>*/ caml_blit_string - (sep, 0, dst, pos + caml_ml_string_length(hd$0) | 0, seplen); - var pos$0 = (pos + caml_ml_string_length(hd$0) | 0) + seplen | 0; + pos + /*<>*/ caml_ml_string_length(hd$0) | 0, + seplen); + var + pos$0 = + /*<>*/ (pos + caml_ml_string_length(hd$0) | 0) + + seplen + | 0; pos = pos$0; param$0 = tl$0; continue; } - /*<>*/ /*<>*/ caml_blit_string + /*<>*/ caml_blit_string (hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); } - /*<>*/ return /*<>*/ caml_call1 - (bts, dst); + /*<>*/ return caml_call1(bts, dst); } } var - cat = Stdlib[28], + cat = /*<>*/ Stdlib[28], cst_String_index_from_Bytes_in = "String.index_from / Bytes.index_from", cst_String_index_from_opt_Byte = "String.index_from_opt / Bytes.index_from_opt", @@ -6539,77 +6438,65 @@ cst_String_rcontains_from_Byte = "String.rcontains_from / Bytes.rcontains_from"; function iter(f, s){ - /*<>*/ var - _U_ = caml_ml_string_length(s) - 1 | 0, - /*<>*/ _T_ = 0; + var + _U_ = /*<>*/ caml_ml_string_length(s) - 1 | 0, + _T_ = 0; if(_U_ >= 0){ var i = _T_; for(;;){ - /*<>*/ /*<>*/ caml_call1 - (f, caml_string_unsafe_get(s, i)); - /*<>*/ /*<>*/ var _V_ = i + 1 | 0; + /*<>*/ caml_call1(f, caml_string_unsafe_get(s, i)); + var _V_ = /*<>*/ i + 1 | 0; if(_U_ === i) break; i = _V_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function iteri(f, s){ - /*<>*/ var - _R_ = caml_ml_string_length(s) - 1 | 0, - /*<>*/ _Q_ = 0; + var + _R_ = /*<>*/ caml_ml_string_length(s) - 1 | 0, + _Q_ = 0; if(_R_ >= 0){ var i = _Q_; for(;;){ - /*<>*/ /*<>*/ caml_call2 - (f, i, caml_string_unsafe_get(s, i)); - /*<>*/ /*<>*/ var _S_ = i + 1 | 0; + /*<>*/ caml_call2(f, i, caml_string_unsafe_get(s, i)); + var _S_ = /*<>*/ i + 1 | 0; if(_R_ === i) break; i = _S_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function map(f, s){ - /*<>*/ /*<>*/ var - _P_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 + var _P_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return /*<>*/ caml_call1 (bts, - /*<>*/ caml_call2(Stdlib_Bytes[17], f, _P_)); - /*<>*/ } + /*<>*/ caml_call2(Stdlib_Bytes[17], f, _P_)) /*<>*/ ; + } function mapi(f, s){ - /*<>*/ /*<>*/ var - _O_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 + var _O_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return /*<>*/ caml_call1 (bts, - /*<>*/ caml_call2(Stdlib_Bytes[18], f, _O_)); - /*<>*/ } + /*<>*/ caml_call2(Stdlib_Bytes[18], f, _O_)) /*<>*/ ; + } function fold_right(f, x, a){ - /*<>*/ /*<>*/ var - _N_ = /*<>*/ caml_call1(bos, x); - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Bytes[20], f, _N_, a); - /*<>*/ } + var _N_ = /*<>*/ caml_call1(bos, x); + /*<>*/ return caml_call3(Stdlib_Bytes[20], f, _N_, a) /*<>*/ ; + } function fold_left(f, a, x){ - /*<>*/ /*<>*/ var - _M_ = /*<>*/ caml_call1(bos, x); - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Bytes[19], f, a, _M_); - /*<>*/ } + var _M_ = /*<>*/ caml_call1(bos, x); + /*<>*/ return caml_call3(Stdlib_Bytes[19], f, a, _M_); + } function exists(f, s){ - /*<>*/ /*<>*/ var - _L_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[22], f, _L_); - /*<>*/ } + var _L_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[22], f, _L_); + } function for_all(f, s){ - /*<>*/ /*<>*/ var - _K_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[21], f, _K_); - /*<>*/ } + var _K_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[21], f, _K_); + } function is_space(param){ - /*<>*/ /*<>*/ var _J_ = param - 9 | 0; + var _J_ = /*<>*/ param - 9 | 0; a: { if(4 < _J_ >>> 0){if(23 !== _J_) break a;} else if(2 === _J_) break a; @@ -6618,346 +6505,307 @@ /*<>*/ return 0; /*<>*/ } function trim(s){ - /*<>*/ if(s === cst$0) + /*<>*/ if(s === cst$0) /*<>*/ return s; - /*<>*/ if + /*<>*/ if (! - is_space(caml_string_unsafe_get(s, 0)) + /*<>*/ is_space + ( /*<>*/ caml_string_unsafe_get(s, 0)) && ! - is_space(caml_string_unsafe_get(s, caml_ml_string_length(s) - 1 | 0))) + /*<>*/ is_space + ( /*<>*/ caml_string_unsafe_get + (s, caml_ml_string_length(s) - 1 | 0))) /*<>*/ return s; - /*<>*/ /*<>*/ var - _I_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (bts, /*<>*/ caml_call1(Stdlib_Bytes[23], _I_)); - /*<>*/ } + var _I_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return /*<>*/ caml_call1 + (bts, /*<>*/ caml_call1(Stdlib_Bytes[23], _I_)) /*<>*/ ; + } function escaped(s){ - /*<>*/ /*<>*/ var - b = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (bts, /*<>*/ caml_call1(Stdlib_Bytes[87], b)); - /*<>*/ } + var b = /*<>*/ caml_call1(bos, s); + /*<>*/ return /*<>*/ caml_call1 + (bts, /*<>*/ caml_call1(Stdlib_Bytes[87], b)) /*<>*/ ; + } function index_rec(s, lim, i, c){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(lim <= i$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - if(caml_string_unsafe_get(s, i$0) === c) + /*<>*/ if(caml_string_unsafe_get(s, i$0) === c) /*<>*/ return i$0; - var i$1 = i$0 + 1 | 0; + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; } /*<>*/ } function index(s, c){ /*<>*/ return index_rec - (s, caml_ml_string_length(s), 0, c); - /*<>*/ } + (s, caml_ml_string_length(s), 0, c) /*<>*/ ; + } function index_rec_opt(s, lim, i, c){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(lim <= i$0) /*<>*/ return 0; - if(caml_string_unsafe_get(s, i$0) === c) + /*<>*/ if(caml_string_unsafe_get(s, i$0) === c) /*<>*/ return [0, i$0]; - var i$1 = i$0 + 1 | 0; + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; } /*<>*/ } function index_opt(s, c){ /*<>*/ return index_rec_opt - (s, caml_ml_string_length(s), 0, c); - /*<>*/ } + (s, caml_ml_string_length(s), 0, c) /*<>*/ ; + } function index_from(s, i, c){ - /*<>*/ var l = caml_ml_string_length(s); - if(0 <= i && l >= i) - /*<>*/ return index_rec(s, l, i, c); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_index_from_Bytes_in); - /*<>*/ } + var l = /*<>*/ caml_ml_string_length(s); + /*<>*/ if(0 <= i && l >= i) + /*<>*/ return index_rec(s, l, i, c) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_index_from_Bytes_in) /*<>*/ ; + } function index_from_opt(s, i, c){ - /*<>*/ var l = caml_ml_string_length(s); - if(0 <= i && l >= i) - /*<>*/ return index_rec_opt(s, l, i, c); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_index_from_opt_Byte); - /*<>*/ } + var l = /*<>*/ caml_ml_string_length(s); + /*<>*/ if(0 <= i && l >= i) + /*<>*/ return index_rec_opt(s, l, i, c) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_index_from_opt_Byte) /*<>*/ ; + } function rindex_rec(s, i, c){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(0 > i$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - if(caml_string_unsafe_get(s, i$0) === c) + /*<>*/ if(caml_string_unsafe_get(s, i$0) === c) /*<>*/ return i$0; - var i$1 = i$0 - 1 | 0; + var i$1 = /*<>*/ i$0 - 1 | 0; i$0 = i$1; } /*<>*/ } function rindex(s, c){ /*<>*/ return rindex_rec - (s, caml_ml_string_length(s) - 1 | 0, c); - /*<>*/ } + (s, caml_ml_string_length(s) - 1 | 0, c) /*<>*/ ; + } function rindex_from(s, i, c){ /*<>*/ if(-1 <= i && caml_ml_string_length(s) > i) - /*<>*/ return rindex_rec(s, i, c); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_rindex_from_Bytes_r); - /*<>*/ } + /*<>*/ return rindex_rec(s, i, c) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_rindex_from_Bytes_r) /*<>*/ ; + } function rindex_rec_opt(s, i, c){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(0 > i$0) /*<>*/ return 0; - if(caml_string_unsafe_get(s, i$0) === c) + /*<>*/ if(caml_string_unsafe_get(s, i$0) === c) /*<>*/ return [0, i$0]; - var i$1 = i$0 - 1 | 0; + var i$1 = /*<>*/ i$0 - 1 | 0; i$0 = i$1; } /*<>*/ } function rindex_opt(s, c){ /*<>*/ return rindex_rec_opt - (s, caml_ml_string_length(s) - 1 | 0, c); - /*<>*/ } + (s, caml_ml_string_length(s) - 1 | 0, c) /*<>*/ ; + } function rindex_from_opt(s, i, c){ /*<>*/ if(-1 <= i && caml_ml_string_length(s) > i) - /*<>*/ return rindex_rec_opt(s, i, c); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_rindex_from_opt_Byt); - /*<>*/ } + /*<>*/ return rindex_rec_opt(s, i, c) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_rindex_from_opt_Byt) /*<>*/ ; + } function contains_from(s, i, c){ - /*<>*/ var l = caml_ml_string_length(s); - if(0 <= i && l >= i) + var l = /*<>*/ caml_ml_string_length(s); + /*<>*/ if(0 <= i && l >= i) /*<>*/ try{ /*<>*/ index_rec(s, l, i, c); - /*<>*/ /*<>*/ var _G_ = 1; - /*<>*/ return _G_; + var _G_ = /*<>*/ 1; + return _G_; } catch(_H_){ - var _F_ = caml_wrap_exception(_H_); + var _F_ = /*<>*/ caml_wrap_exception(_H_); if(_F_ === Stdlib[8]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_F_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_F_, 0); } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_contains_from_Bytes); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_contains_from_Bytes) /*<>*/ ; + } function contains(s, c){ - /*<>*/ return contains_from(s, 0, c); - /*<>*/ } + /*<>*/ return contains_from(s, 0, c) /*<>*/ ; + } function rcontains_from(s, i, c){ /*<>*/ if(0 <= i && caml_ml_string_length(s) > i) /*<>*/ try{ /*<>*/ rindex_rec(s, i, c); - /*<>*/ /*<>*/ var _D_ = 1; - /*<>*/ return _D_; + var _D_ = /*<>*/ 1; + return _D_; } catch(_E_){ - var _C_ = caml_wrap_exception(_E_); + var _C_ = /*<>*/ caml_wrap_exception(_E_); if(_C_ === Stdlib[8]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_C_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_C_, 0); } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_String_rcontains_from_Byte); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_String_rcontains_from_Byte) /*<>*/ ; + } function uppercase_ascii(s){ - /*<>*/ /*<>*/ var - _B_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (bts, /*<>*/ caml_call1(Stdlib_Bytes[36], _B_)); - /*<>*/ } + var _B_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return /*<>*/ caml_call1 + (bts, /*<>*/ caml_call1(Stdlib_Bytes[36], _B_)) /*<>*/ ; + } function lowercase_ascii(s){ - /*<>*/ /*<>*/ var - _A_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (bts, /*<>*/ caml_call1(Stdlib_Bytes[37], _A_)); - /*<>*/ } + var _A_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return /*<>*/ caml_call1 + (bts, /*<>*/ caml_call1(Stdlib_Bytes[37], _A_)) /*<>*/ ; + } function capitalize_ascii(s){ - /*<>*/ /*<>*/ var - _z_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (bts, /*<>*/ caml_call1(Stdlib_Bytes[38], _z_)); - /*<>*/ } + var _z_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return /*<>*/ caml_call1 + (bts, /*<>*/ caml_call1(Stdlib_Bytes[38], _z_)) /*<>*/ ; + } function uncapitalize_ascii(s){ - /*<>*/ /*<>*/ var - _y_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (bts, /*<>*/ caml_call1(Stdlib_Bytes[39], _y_)); - /*<>*/ } + var _y_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return /*<>*/ caml_call1 + (bts, /*<>*/ caml_call1(Stdlib_Bytes[39], _y_)) /*<>*/ ; + } function starts_with(prefix, s){ - /*<>*/ var - len_s = caml_ml_string_length(s), + var + len_s = /*<>*/ caml_ml_string_length(s), len_pre = caml_ml_string_length(prefix), - _x_ = len_pre <= len_s ? 1 : 0; + _x_ = /*<>*/ len_pre <= len_s ? 1 : 0; if(! _x_) return _x_; var i = 0; - /*<>*/ for(;;){ - if(i === len_pre) /*<>*/ return 1; - if(caml_string_unsafe_get(s, i) !== caml_string_unsafe_get(prefix, i)) + for(;;){ + /*<>*/ if(i === len_pre) + /*<>*/ return 1; + /*<>*/ if + (caml_string_unsafe_get(s, i) !== caml_string_unsafe_get(prefix, i)) /*<>*/ return 0; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function ends_with(suffix, s){ - /*<>*/ var - len_s = caml_ml_string_length(s), + var + len_s = /*<>*/ caml_ml_string_length(s), len_suf = caml_ml_string_length(suffix), - diff = len_s - len_suf | 0, - _w_ = 0 <= diff ? 1 : 0; + diff = /*<>*/ len_s - len_suf | 0, + _w_ = /*<>*/ 0 <= diff ? 1 : 0; if(! _w_) return _w_; var i = 0; - /*<>*/ for(;;){ - if(i === len_suf) /*<>*/ return 1; - if + for(;;){ + /*<>*/ if(i === len_suf) + /*<>*/ return 1; + /*<>*/ if (caml_string_unsafe_get(s, diff + i | 0) !== caml_string_unsafe_get(suffix, i)) /*<>*/ return 0; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function hash(x){ - /*<>*/ return /*<>*/ caml_string_hash - (0, x); - /*<>*/ } + /*<>*/ return caml_string_hash(0, x) /*<>*/ ; + } function split_on_char(sep, s){ - /*<>*/ var - /*<>*/ r = [0, 0], - /*<>*/ j = - [0, /*<>*/ caml_ml_string_length(s)], - /*<>*/ _s_ = - /*<>*/ caml_ml_string_length(s) - 1 | 0; + var + r = /*<>*/ [0, 0], + j = /*<>*/ [0, caml_ml_string_length(s)], + _s_ = /*<>*/ caml_ml_string_length(s) - 1 | 0; if(_s_ >= 0){ var i = _s_; for(;;){ - if(caml_string_unsafe_get(s, i) === sep){ - var _u_ = r[1]; + /*<>*/ if(caml_string_unsafe_get(s, i) === sep){ + var _u_ = /*<>*/ r[1]; r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _u_]; - j[1] = i; + /*<>*/ j[1] = i; } - /*<>*/ /*<>*/ var _v_ = i - 1 | 0; + var _v_ = /*<>*/ i - 1 | 0; if(0 === i) break; i = _v_; } } - var _t_ = r[1]; - /*<>*/ return [0, sub(s, 0, j[1]), _t_]; + var _t_ = /*<>*/ r[1]; + return [0, sub(s, 0, j[1]), _t_] /*<>*/ ; /*<>*/ } - var compare = runtime.caml_string_compare; + var compare = /*<>*/ runtime.caml_string_compare; function to_seq(s){ - /*<>*/ /*<>*/ var - _r_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[47], _r_); - /*<>*/ } + var _r_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call1(Stdlib_Bytes[47], _r_) /*<>*/ ; + } function to_seqi(s){ - /*<>*/ /*<>*/ var - _q_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[48], _q_); - /*<>*/ } + var _q_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call1(Stdlib_Bytes[48], _q_) /*<>*/ ; + } function of_seq(g){ - /*<>*/ return /*<>*/ caml_call1 - (bts, /*<>*/ caml_call1(Stdlib_Bytes[49], g)); - /*<>*/ } + /*<>*/ return /*<>*/ caml_call1 + (bts, /*<>*/ caml_call1(Stdlib_Bytes[49], g)) /*<>*/ ; + } function get_utf_8_uchar(s, i){ - /*<>*/ /*<>*/ var - _p_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[50], _p_, i); - /*<>*/ } + var _p_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[50], _p_, i) /*<>*/ ; + } function is_valid_utf_8(s){ - /*<>*/ /*<>*/ var - _o_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[52], _o_); - /*<>*/ } + var _o_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call1(Stdlib_Bytes[52], _o_); + } function get_utf_16be_uchar(s, i){ - /*<>*/ /*<>*/ var - _n_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[53], _n_, i); - /*<>*/ } + var _n_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[53], _n_, i) /*<>*/ ; + } function is_valid_utf_16be(s){ - /*<>*/ /*<>*/ var - _m_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[55], _m_); - /*<>*/ } + var _m_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call1(Stdlib_Bytes[55], _m_); + } function get_utf_16le_uchar(s, i){ - /*<>*/ /*<>*/ var - _l_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[56], _l_, i); - /*<>*/ } + var _l_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[56], _l_, i) /*<>*/ ; + } function is_valid_utf_16le(s){ - /*<>*/ /*<>*/ var - _k_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[58], _k_); - /*<>*/ } + var _k_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call1(Stdlib_Bytes[58], _k_); + } function get_int8(s, i){ - /*<>*/ /*<>*/ var - _j_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[60], _j_, i); - /*<>*/ } + var _j_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[60], _j_, i) /*<>*/ ; + } function get_uint16_le(s, i){ - /*<>*/ /*<>*/ var - _i_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[63], _i_, i); - /*<>*/ } + var _i_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[63], _i_, i) /*<>*/ ; + } function get_uint16_be(s, i){ - /*<>*/ /*<>*/ var - _h_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[62], _h_, i); - /*<>*/ } + var _h_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[62], _h_, i) /*<>*/ ; + } function get_int16_ne(s, i){ - /*<>*/ /*<>*/ var - _g_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[64], _g_, i); - /*<>*/ } + var _g_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[64], _g_, i) /*<>*/ ; + } function get_int16_le(s, i){ - /*<>*/ /*<>*/ var - _f_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[66], _f_, i); - /*<>*/ } + var _f_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[66], _f_, i) /*<>*/ ; + } function get_int16_be(s, i){ - /*<>*/ /*<>*/ var - _e_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[65], _e_, i); - /*<>*/ } + var _e_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[65], _e_, i) /*<>*/ ; + } function get_int32_le(s, i){ - /*<>*/ /*<>*/ var - _d_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[69], _d_, i); - /*<>*/ } + var _d_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[69], _d_, i) /*<>*/ ; + } function get_int32_be(s, i){ - /*<>*/ /*<>*/ var - _c_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[68], _c_, i); - /*<>*/ } + var _c_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[68], _c_, i) /*<>*/ ; + } function get_int64_le(s, i){ - /*<>*/ /*<>*/ var - _b_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[72], _b_, i); - /*<>*/ } + var _b_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[72], _b_, i) /*<>*/ ; + } function get_int64_be(s, i){ - /*<>*/ /*<>*/ var - _a_ = /*<>*/ caml_call1(bos, s); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[71], _a_, i); - /*<>*/ } + var _a_ = /*<>*/ caml_call1(bos, s); + /*<>*/ return caml_call2(Stdlib_Bytes[71], _a_, i) /*<>*/ ; + } var Stdlib_String = - [0, + /*<>*/ [0, make, init, empty, @@ -7024,7 +6872,7 @@ get_int64_le]; runtime.caml_register_global(12, Stdlib_String, "Stdlib__String"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Unit @@ -7040,10 +6888,10 @@ function to_string(param){ /*<>*/ return cst; /*<>*/ } - var Stdlib_Unit = [0, equal, compare, to_string]; + var Stdlib_Unit = /*<>*/ [0, equal, compare, to_string]; runtime.caml_register_global(1, Stdlib_Unit, "Stdlib__Unit"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Marshal @@ -7056,7 +6904,7 @@ cst_Marshal_from_bytes$1 = "Marshal.from_bytes", caml_marshal_data_size = runtime.caml_marshal_data_size, caml_ml_bytes_length = runtime.caml_ml_bytes_length; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); @@ -7070,48 +6918,49 @@ function to_buffer(buff, ofs, len, v, flags){ /*<>*/ if (0 <= ofs && 0 <= len && (caml_ml_bytes_length(buff) - len | 0) >= ofs) - /*<>*/ return /*<>*/ runtime.caml_output_value_to_buffer - (buff, ofs, len, v, flags); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Marshal_to_buffer_substrin); - /*<>*/ } + /*<>*/ return runtime.caml_output_value_to_buffer + (buff, ofs, len, v, flags) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_Marshal_to_buffer_substrin) /*<>*/ ; + } var - cst_Marshal_data_size = "Marshal.data_size", + cst_Marshal_data_size = /*<>*/ "Marshal.data_size", cst_Marshal_from_bytes = cst_Marshal_from_bytes$1, cst_Marshal_from_bytes$0 = cst_Marshal_from_bytes$1; function data_size(buff, ofs){ /*<>*/ if (0 <= ofs && (caml_ml_bytes_length(buff) - 16 | 0) >= ofs) - /*<>*/ return /*<>*/ caml_marshal_data_size - (buff, ofs); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Marshal_data_size); - /*<>*/ } + /*<>*/ return caml_marshal_data_size(buff, ofs) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_Marshal_data_size) /*<>*/ ; + } function total_size(buff, ofs){ - /*<>*/ return 16 + data_size(buff, ofs) | 0; - /*<>*/ } + /*<>*/ return 16 + data_size(buff, ofs) | 0 /*<>*/ ; + } function from_bytes(buff, ofs){ /*<>*/ if (0 <= ofs && (caml_ml_bytes_length(buff) - 16 | 0) >= ofs){ - /*<>*/ /*<>*/ var - len = /*<>*/ caml_marshal_data_size(buff, ofs); - return (caml_ml_bytes_length(buff) - (16 + len | 0) | 0) < ofs + var len = /*<>*/ caml_marshal_data_size(buff, ofs); + /*<>*/ return (caml_ml_bytes_length(buff) + - (16 + len | 0) + | 0) + < ofs ? /*<>*/ caml_call1 (Stdlib[1], cst_Marshal_from_bytes$0) : /*<>*/ runtime.caml_input_value_from_bytes - (buff, ofs); + (buff, ofs) /*<>*/ ; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Marshal_from_bytes); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_Marshal_from_bytes) /*<>*/ ; + } function from_string(buff, ofs){ - /*<>*/ return from_bytes + /*<>*/ return /*<>*/ from_bytes ( /*<>*/ caml_call1(Stdlib_Bytes[45], buff), - ofs); - /*<>*/ } + ofs) /*<>*/ ; + } var Stdlib_Marshal = - [0, + /*<>*/ [0, runtime.caml_output_value, to_buffer, runtime.caml_input_value, @@ -7122,7 +6971,7 @@ total_size]; runtime.caml_register_global(6, Stdlib_Marshal, "Stdlib__Marshal"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Array @@ -7137,27 +6986,27 @@ caml_make_vect = runtime.caml_make_vect, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ var + var global_data = runtime.caml_get_global_data(), Stdlib_Seq = global_data.Stdlib__Seq, Assert_failure = global_data.Assert_failure, Stdlib = global_data.Stdlib, - /*<>*/ Floatarray = [0], + Floatarray = [0], cst_Array_init = "Array.init", cst_Array_make_matrix = "Array.make_matrix", cst_Array_init_matrix = "Array.init_matrix", @@ -7173,21 +7022,19 @@ cst_Array_combine = "Array.combine"; function init(l, f){ /*<>*/ if(0 === l) /*<>*/ return [0]; - if(0 > l) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Array_init); - /*<>*/ var - /*<>*/ res = - /*<>*/ caml_make_vect + /*<>*/ if(0 > l) + /*<>*/ return caml_call1(Stdlib[1], cst_Array_init) /*<>*/ ; + var + res = + /*<>*/ /*<>*/ caml_make_vect (l, /*<>*/ caml_call1(f, 0)), - /*<>*/ _aE_ = l - 1 | 0, - /*<>*/ _aD_ = 1; + _aE_ = /*<>*/ l - 1 | 0, + _aD_ = 1; if(_aE_ >= 1){ var i = _aD_; for(;;){ - /*<>*/ res[1 + i] = - /*<>*/ caml_call1(f, i); - /*<>*/ /*<>*/ var _aF_ = i + 1 | 0; + /*<>*/ res[1 + i] = caml_call1(f, i); + var _aF_ = /*<>*/ i + 1 | 0; if(_aE_ === i) break; i = _aF_; } @@ -7196,19 +7043,15 @@ /*<>*/ } function make_matrix(sx, sy, init){ /*<>*/ if(sy < 0) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Array_make_matrix); - /*<>*/ /*<>*/ var - res = /*<>*/ caml_make_vect(sx, [0]); - if(0 < sy){ - /*<>*/ var - _aB_ = sx - 1 | 0, - /*<>*/ _aA_ = 0; + /*<>*/ caml_call1(Stdlib[1], cst_Array_make_matrix); + var res = /*<>*/ caml_make_vect(sx, [0]); + /*<>*/ if(0 < sy){ + var _aB_ = /*<>*/ sx - 1 | 0, _aA_ = 0; if(_aB_ >= 0){ var x = _aA_; for(;;){ - res[1 + x] = /*<>*/ caml_make_vect(sy, init); - /*<>*/ /*<>*/ var _aC_ = x + 1 | 0; + /*<>*/ res[1 + x] = caml_make_vect(sy, init); + var _aC_ = /*<>*/ x + 1 | 0; if(_aB_ === x) break; x = _aC_; } @@ -7218,35 +7061,30 @@ /*<>*/ } function init_matrix(sx, sy, f){ /*<>*/ if(sy < 0) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Array_init_matrix); - /*<>*/ /*<>*/ var - res = /*<>*/ caml_make_vect(sx, [0]); - if(0 < sy){ - /*<>*/ var - _av_ = sx - 1 | 0, - /*<>*/ _au_ = 0; + /*<>*/ caml_call1(Stdlib[1], cst_Array_init_matrix); + var res = /*<>*/ caml_make_vect(sx, [0]); + /*<>*/ if(0 < sy){ + var _av_ = /*<>*/ sx - 1 | 0, _au_ = 0; if(_av_ >= 0){ var x = _au_; for(;;){ - /*<>*/ var - /*<>*/ row = - /*<>*/ caml_make_vect + var + row = + /*<>*/ /*<>*/ caml_make_vect (sy, /*<>*/ caml_call2(f, x, 0)), - /*<>*/ _ax_ = sy - 1 | 0, - /*<>*/ _aw_ = 1; + _ax_ = /*<>*/ sy - 1 | 0, + _aw_ = 1; if(_ax_ >= 1){ var y = _aw_; for(;;){ - /*<>*/ row[1 + y] = - /*<>*/ caml_call2(f, x, y); - /*<>*/ /*<>*/ var _az_ = y + 1 | 0; + /*<>*/ row[1 + y] = caml_call2(f, x, y); + var _az_ = /*<>*/ y + 1 | 0; if(_ax_ === y) break; y = _az_; } } - res[1 + x] = row; - /*<>*/ /*<>*/ var _ay_ = x + 1 | 0; + /*<>*/ res[1 + x] = row; + var _ay_ = x + 1 | 0; if(_av_ === x) break; x = _ay_; } @@ -7255,36 +7093,32 @@ /*<>*/ return res; /*<>*/ } function copy(a){ - /*<>*/ var l = a.length - 1; + var l = /*<>*/ a.length - 1; /*<>*/ return 0 === l ? [0] - : /*<>*/ caml_array_sub(a, 0, l); - /*<>*/ } + : /*<>*/ caml_array_sub(a, 0, l) /*<>*/ ; + } function append(a1, a2){ - /*<>*/ var l1 = a1.length - 1; + var l1 = /*<>*/ a1.length - 1; /*<>*/ return 0 === l1 - ? copy(a2) + ? /*<>*/ copy(a2) : 0 === a2.length - 1 ? /*<>*/ caml_array_sub(a1, 0, l1) - : /*<>*/ runtime.caml_array_append(a1, a2); - /*<>*/ } + : /*<>*/ runtime.caml_array_append(a1, a2) /*<>*/ ; + } function sub(a, ofs, len){ /*<>*/ if (0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) - /*<>*/ return /*<>*/ caml_array_sub - (a, ofs, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Array_sub); - /*<>*/ } + /*<>*/ return caml_array_sub(a, ofs, len) /*<>*/ ; + /*<>*/ return caml_call1(Stdlib[1], cst_Array_sub) /*<>*/ ; + } function fill(a, ofs, len, v){ /*<>*/ if (0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) - /*<>*/ return /*<>*/ runtime.caml_array_fill - (a, ofs, len, v); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Array_fill); - /*<>*/ } + /*<>*/ return runtime.caml_array_fill(a, ofs, len, v) /*<>*/ ; + /*<>*/ return caml_call1(Stdlib[1], cst_Array_fill) /*<>*/ ; + } function blit(a1, ofs1, a2, ofs2, len){ /*<>*/ if (0 <= len @@ -7293,61 +7127,53 @@ && (a1.length - 1 - len | 0) >= ofs1 && 0 <= ofs2 && (a2.length - 1 - len | 0) >= ofs2) - /*<>*/ return /*<>*/ runtime.caml_array_blit - (a1, ofs1, a2, ofs2, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Array_blit); - /*<>*/ } + /*<>*/ return runtime.caml_array_blit + (a1, ofs1, a2, ofs2, len) /*<>*/ ; + /*<>*/ return caml_call1(Stdlib[1], cst_Array_blit) /*<>*/ ; + } function iter(f, a){ - /*<>*/ var - _as_ = a.length - 2 | 0, - /*<>*/ _ar_ = 0; + var _as_ = /*<>*/ a.length - 2 | 0, _ar_ = 0; if(_as_ >= 0){ var i = _ar_; for(;;){ - /*<>*/ /*<>*/ caml_call1 - (f, a[1 + i]); - /*<>*/ /*<>*/ var _at_ = i + 1 | 0; + /*<>*/ caml_call1(f, a[1 + i]); + var _at_ = /*<>*/ i + 1 | 0; if(_as_ === i) break; i = _at_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function iter2(f, a, b){ /*<>*/ if(a.length - 1 !== b.length - 1) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Array_iter2_arrays_must_ha); - /*<>*/ var - _ap_ = a.length - 2 | 0, - /*<>*/ _ao_ = 0; + /*<>*/ return caml_call1 + (Stdlib[1], cst_Array_iter2_arrays_must_ha) /*<>*/ ; + var _ap_ = /*<>*/ a.length - 2 | 0, _ao_ = 0; if(_ap_ >= 0){ var i = _ao_; for(;;){ - /*<>*/ /*<>*/ caml_call2 - (f, a[1 + i], b[1 + i]); - /*<>*/ /*<>*/ var _aq_ = i + 1 | 0; + /*<>*/ caml_call2(f, a[1 + i], b[1 + i]); + var _aq_ = /*<>*/ i + 1 | 0; if(_ap_ === i) break; i = _aq_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function map(f, a){ - /*<>*/ var l = a.length - 1; + var l = /*<>*/ a.length - 1; /*<>*/ if(0 === l) /*<>*/ return [0]; - /*<>*/ var - /*<>*/ r = - /*<>*/ caml_make_vect + var + r = + /*<>*/ /*<>*/ caml_make_vect (l, /*<>*/ caml_call1(f, a[1])), - /*<>*/ _am_ = l - 1 | 0, - /*<>*/ _al_ = 1; + _am_ = /*<>*/ l - 1 | 0, + _al_ = 1; if(_am_ >= 1){ var i = _al_; for(;;){ - /*<>*/ r[1 + i] = - /*<>*/ caml_call1(f, a[1 + i]); - /*<>*/ /*<>*/ var _an_ = i + 1 | 0; + /*<>*/ r[1 + i] = caml_call1(f, a[1 + i]); + var _an_ = /*<>*/ i + 1 | 0; if(_am_ === i) break; i = _an_; } @@ -7355,57 +7181,50 @@ /*<>*/ return r; /*<>*/ } function map_inplace(f, a){ - /*<>*/ var - _aj_ = a.length - 2 | 0, - /*<>*/ _ai_ = 0; + var _aj_ = /*<>*/ a.length - 2 | 0, _ai_ = 0; if(_aj_ >= 0){ var i = _ai_; for(;;){ - /*<>*/ a[1 + i] = - /*<>*/ caml_call1(f, a[1 + i]); - /*<>*/ /*<>*/ var _ak_ = i + 1 | 0; + /*<>*/ a[1 + i] = caml_call1(f, a[1 + i]); + var _ak_ = /*<>*/ i + 1 | 0; if(_aj_ === i) break; i = _ak_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function mapi_inplace(f, a){ - /*<>*/ var - _ag_ = a.length - 2 | 0, - /*<>*/ _af_ = 0; + var _ag_ = /*<>*/ a.length - 2 | 0, _af_ = 0; if(_ag_ >= 0){ var i = _af_; for(;;){ - /*<>*/ a[1 + i] = - /*<>*/ caml_call2(f, i, a[1 + i]); - /*<>*/ /*<>*/ var _ah_ = i + 1 | 0; + /*<>*/ a[1 + i] = caml_call2(f, i, a[1 + i]); + var _ah_ = /*<>*/ i + 1 | 0; if(_ag_ === i) break; i = _ah_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function map2(f, a, b){ - /*<>*/ var - la = a.length - 1, - /*<>*/ lb = b.length - 1; - if(la !== lb) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Array_map2_arrays_must_hav); - if(0 === la) /*<>*/ return [0]; - /*<>*/ var - /*<>*/ r = - /*<>*/ caml_make_vect + var + la = /*<>*/ a.length - 1, + lb = /*<>*/ b.length - 1; + /*<>*/ if(la !== lb) + /*<>*/ return caml_call1 + (Stdlib[1], cst_Array_map2_arrays_must_hav) /*<>*/ ; + /*<>*/ if(0 === la) /*<>*/ return [0]; + var + r = + /*<>*/ /*<>*/ caml_make_vect (la, /*<>*/ caml_call2(f, a[1], b[1])), - /*<>*/ _ad_ = la - 1 | 0, - /*<>*/ _ac_ = 1; + _ad_ = /*<>*/ la - 1 | 0, + _ac_ = 1; if(_ad_ >= 1){ var i = _ac_; for(;;){ - /*<>*/ r[1 + i] = - /*<>*/ caml_call2(f, a[1 + i], b[1 + i]); - /*<>*/ /*<>*/ var _ae_ = i + 1 | 0; + /*<>*/ r[1 + i] = caml_call2(f, a[1 + i], b[1 + i]); + var _ae_ = /*<>*/ i + 1 | 0; if(_ad_ === i) break; i = _ae_; } @@ -7413,36 +7232,32 @@ /*<>*/ return r; /*<>*/ } function iteri(f, a){ - /*<>*/ var - _aa_ = a.length - 2 | 0, - /*<>*/ _$_ = 0; + var _aa_ = /*<>*/ a.length - 2 | 0, _$_ = 0; if(_aa_ >= 0){ var i = _$_; for(;;){ - /*<>*/ /*<>*/ caml_call2 - (f, i, a[1 + i]); - /*<>*/ /*<>*/ var _ab_ = i + 1 | 0; + /*<>*/ caml_call2(f, i, a[1 + i]); + var _ab_ = /*<>*/ i + 1 | 0; if(_aa_ === i) break; i = _ab_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function mapi(f, a){ - /*<>*/ var l = a.length - 1; + var l = /*<>*/ a.length - 1; /*<>*/ if(0 === l) /*<>*/ return [0]; - /*<>*/ var - /*<>*/ r = - /*<>*/ caml_make_vect + var + r = + /*<>*/ /*<>*/ caml_make_vect (l, /*<>*/ caml_call2(f, 0, a[1])), - /*<>*/ _Z_ = l - 1 | 0, - /*<>*/ _Y_ = 1; + _Z_ = /*<>*/ l - 1 | 0, + _Y_ = 1; if(_Z_ >= 1){ var i = _Y_; for(;;){ - /*<>*/ r[1 + i] = - /*<>*/ caml_call2(f, i, a[1 + i]); - /*<>*/ /*<>*/ var ___ = i + 1 | 0; + /*<>*/ r[1 + i] = caml_call2(f, i, a[1 + i]); + var ___ = /*<>*/ i + 1 | 0; if(_Z_ === i) break; i = ___; } @@ -7450,86 +7265,83 @@ /*<>*/ return r; /*<>*/ } function to_list(a){ - /*<>*/ var i$1 = a.length - 2 | 0, i = i$1, res = 0; - /*<>*/ for(;;){ - if(0 > i) /*<>*/ return res; - /*<>*/ var - /*<>*/ res$0 = [0, a[1 + i], res], - /*<>*/ i$0 = i - 1 | 0; + var i$1 = /*<>*/ a.length - 2 | 0, i = i$1, res = 0; + for(;;){ + /*<>*/ if(0 > i) /*<>*/ return res; + var res$0 = /*<>*/ [0, a[1 + i], res], i$0 = i - 1 | 0; i = i$0; res = res$0; } /*<>*/ } function list_length(accu, param){ - var accu$0 = accu, param$0 = param; + var accu$0 = /*<>*/ accu, param$0 = param; for(;;){ if(! param$0) /*<>*/ return accu$0; - /*<>*/ var - t = param$0[2], - /*<>*/ accu$1 = accu$0 + 1 | 0; + var + t = /*<>*/ param$0[2], + accu$1 = /*<>*/ accu$0 + 1 | 0; accu$0 = accu$1; param$0 = t; } - } + /*<>*/ } function of_list(l){ /*<>*/ if(! l) /*<>*/ return [0]; - /*<>*/ var - tl = l[2], + var + tl = /*<>*/ l[2], hd = l[1], - /*<>*/ a = - /*<>*/ caml_make_vect(list_length(0, l), hd), - i = 1, + a = + /*<>*/ /*<>*/ caml_make_vect + ( /*<>*/ list_length(0, l), hd), + i = /*<>*/ 1, param = tl; for(;;){ - if(! param) /*<>*/ return a; - var tl$0 = param[2], hd$0 = param[1]; + /*<>*/ if(! param) /*<>*/ return a; + var tl$0 = /*<>*/ param[2], hd$0 = param[1]; /*<>*/ a[1 + i] = hd$0; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; param = tl$0; } /*<>*/ } function fold_left(f, x, a){ - /*<>*/ var - /*<>*/ r = [0, x], - _W_ = a.length - 2 | 0, - /*<>*/ _V_ = 0; + var + r = /*<>*/ [0, x], + _W_ = /*<>*/ a.length - 2 | 0, + _V_ = 0; if(_W_ >= 0){ var i = _V_; for(;;){ - r[1] = /*<>*/ caml_call2(f, r[1], a[1 + i]); - /*<>*/ /*<>*/ var _X_ = i + 1 | 0; + /*<>*/ r[1] = caml_call2(f, r[1], a[1 + i]); + var _X_ = /*<>*/ i + 1 | 0; if(_W_ === i) break; i = _X_; } } - return r[1]; + /*<>*/ return r[1]; /*<>*/ } function fold_left_map(f, acc, input_array){ - /*<>*/ var len = input_array.length - 1; + var len = /*<>*/ input_array.length - 1; /*<>*/ if(0 === len) /*<>*/ return [0, acc, [0]]; - /*<>*/ var - /*<>*/ match = - /*<>*/ caml_call2(f, acc, input_array[1]), - elt = match[2], + var + match = /*<>*/ caml_call2(f, acc, input_array[1]), + elt = /*<>*/ match[2], acc$0 = match[1], - /*<>*/ output_array = - /*<>*/ caml_make_vect(len, elt), - /*<>*/ acc$1 = [0, acc$0], - /*<>*/ _T_ = len - 1 | 0, - /*<>*/ _S_ = 1; + output_array = /*<>*/ caml_make_vect(len, elt), + acc$1 = /*<>*/ [0, acc$0], + _T_ = /*<>*/ len - 1 | 0, + _S_ = 1; if(_T_ >= 1){ var i = _S_; for(;;){ - /*<>*/ var - /*<>*/ match$0 = + var + match$0 = /*<>*/ caml_call2(f, acc$1[1], input_array[1 + i]), - elt$0 = match$0[2], + elt$0 = /*<>*/ match$0[2], acc$2 = match$0[1]; - acc$1[1] = acc$2; + /*<>*/ acc$1[1] = acc$2; /*<>*/ output_array[1 + i] = elt$0; - /*<>*/ /*<>*/ var _U_ = i + 1 | 0; + var _U_ = /*<>*/ i + 1 | 0; if(_T_ === i) break; i = _U_; } @@ -7537,158 +7349,165 @@ /*<>*/ return [0, acc$1[1], output_array]; /*<>*/ } function fold_right(f, a, x){ - /*<>*/ var - /*<>*/ r = [0, x], - /*<>*/ _Q_ = a.length - 2 | 0; + var + r = /*<>*/ [0, x], + _Q_ = /*<>*/ a.length - 2 | 0; if(_Q_ >= 0){ var i = _Q_; for(;;){ - r[1] = /*<>*/ caml_call2(f, a[1 + i], r[1]); - /*<>*/ /*<>*/ var _R_ = i - 1 | 0; + /*<>*/ r[1] = caml_call2(f, a[1 + i], r[1]); + var _R_ = /*<>*/ i - 1 | 0; if(0 === i) break; i = _R_; } } - return r[1]; + /*<>*/ return r[1]; /*<>*/ } function exists(p, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ if - ( /*<>*/ caml_call1(p, a[1 + i])) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + /*<>*/ if(caml_call1(p, a[1 + i])) /*<>*/ return 1; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function for_all(p, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 1; - /*<>*/ if - (! /*<>*/ caml_call1(p, a[1 + i])) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 1; + /*<>*/ if(! caml_call1(p, a[1 + i])) /*<>*/ return 0; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function for_all2(p, l1, l2){ - /*<>*/ var n1 = l1.length - 1, n2 = l2.length - 1; - if(n1 !== n2) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Array_for_all2); - var i = 0; - /*<>*/ for(;;){ - if(i === n1) /*<>*/ return 1; - /*<>*/ if - (! /*<>*/ caml_call2(p, l1[1 + i], l2[1 + i])) + var n1 = /*<>*/ l1.length - 1, n2 = l2.length - 1; + /*<>*/ if(n1 !== n2) + /*<>*/ return caml_call1(Stdlib[1], cst_Array_for_all2) /*<>*/ ; + var i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n1) /*<>*/ return 1; + /*<>*/ if(! caml_call2(p, l1[1 + i], l2[1 + i])) /*<>*/ return 0; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function exists2(p, l1, l2){ - /*<>*/ var n1 = l1.length - 1, n2 = l2.length - 1; - if(n1 !== n2) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Array_exists2); - var i = 0; - /*<>*/ for(;;){ - if(i === n1) /*<>*/ return 0; - /*<>*/ if - ( /*<>*/ caml_call2(p, l1[1 + i], l2[1 + i])) + var n1 = /*<>*/ l1.length - 1, n2 = l2.length - 1; + /*<>*/ if(n1 !== n2) + /*<>*/ return caml_call1(Stdlib[1], cst_Array_exists2) /*<>*/ ; + var i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n1) /*<>*/ return 0; + /*<>*/ if(caml_call2(p, l1[1 + i], l2[1 + i])) /*<>*/ return 1; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function mem(x, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ if - (0 === /*<>*/ runtime.caml_compare(a[1 + i], x)) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + /*<>*/ if(0 === runtime.caml_compare(a[1 + i], x)) /*<>*/ return 1; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function memq(x, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - if(x === a[1 + i]) /*<>*/ return 1; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + /*<>*/ if(x === a[1 + i]) + /*<>*/ return 1; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function find_opt(p, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ /*<>*/ var x = a[1 + i]; - /*<>*/ if( /*<>*/ caml_call1(p, x)) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + var x = /*<>*/ a[1 + i]; + /*<>*/ if(caml_call1(p, x)) /*<>*/ return [0, x]; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function find_index(p, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ if - ( /*<>*/ caml_call1(p, a[1 + i])) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + /*<>*/ if(caml_call1(p, a[1 + i])) /*<>*/ return [0, i]; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function find_map(f, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ /*<>*/ var - r = /*<>*/ caml_call1(f, a[1 + i]); - if(r) /*<>*/ return r; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + var r = /*<>*/ caml_call1(f, a[1 + i]); + /*<>*/ if(r) /*<>*/ return r; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function find_mapi(f, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ /*<>*/ var - r = /*<>*/ caml_call2(f, i, a[1 + i]); - if(r) /*<>*/ return r; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + var r = /*<>*/ caml_call2(f, i, a[1 + i]); + /*<>*/ if(r) /*<>*/ return r; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function split(x){ - /*<>*/ if - ( /*<>*/ runtime.caml_equal(x, [0])) + /*<>*/ if(runtime.caml_equal(x, [0])) /*<>*/ return [0, [0], [0]]; - /*<>*/ var - match = x[1], + var + match = /*<>*/ x[1], b0 = match[2], a0 = match[1], - /*<>*/ n = x.length - 1, - /*<>*/ a = - /*<>*/ caml_make_vect(n, a0), - /*<>*/ b = - /*<>*/ caml_make_vect(n, b0), - /*<>*/ _O_ = n - 1 | 0, - /*<>*/ _N_ = 1; + n = /*<>*/ x.length - 1, + a = /*<>*/ caml_make_vect(n, a0), + b = /*<>*/ caml_make_vect(n, b0), + _O_ = /*<>*/ n - 1 | 0, + _N_ = 1; if(_O_ >= 1){ var i = _N_; for(;;){ - var match$0 = x[1 + i], bi = match$0[2], ai = match$0[1]; + var + match$0 = /*<>*/ x[1 + i], + bi = match$0[2], + ai = match$0[1]; /*<>*/ a[1 + i] = ai; /*<>*/ b[1 + i] = bi; - /*<>*/ /*<>*/ var _P_ = i + 1 | 0; + var _P_ = /*<>*/ i + 1 | 0; if(_O_ === i) break; i = _P_; } @@ -7696,321 +7515,330 @@ /*<>*/ return [0, a, b]; /*<>*/ } function combine(a, b){ - /*<>*/ var - na = a.length - 1, - /*<>*/ nb = b.length - 1; - if(na !== nb) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Array_combine); - if(0 === na) /*<>*/ return [0]; - /*<>*/ var - /*<>*/ x = - /*<>*/ caml_make_vect(na, [0, a[1], b[1]]), - /*<>*/ _L_ = na - 1 | 0, - /*<>*/ _K_ = 1; + var + na = /*<>*/ a.length - 1, + nb = /*<>*/ b.length - 1; + /*<>*/ if(na !== nb) + /*<>*/ caml_call1(Stdlib[1], cst_Array_combine); + /*<>*/ if(0 === na) /*<>*/ return [0]; + var + x = /*<>*/ caml_make_vect(na, [0, a[1], b[1]]), + _L_ = /*<>*/ na - 1 | 0, + _K_ = 1; if(_L_ >= 1){ var i = _K_; for(;;){ - x[1 + i] = [0, a[1 + i], b[1 + i]]; - /*<>*/ /*<>*/ var _M_ = i + 1 | 0; + /*<>*/ x[1 + i] = [0, a[1 + i], b[1 + i]]; + var _M_ = i + 1 | 0; if(_L_ === i) break; i = _M_; } } /*<>*/ return x; /*<>*/ } - /*<>*/ var - /*<>*/ Bottom = - [248, "Stdlib.Array.Bottom", runtime.caml_fresh_oo_id(0)], + var + Bottom = + /*<>*/ [248, "Stdlib.Array.Bottom", runtime.caml_fresh_oo_id(0)], _a_ = [0, "array.ml", 369, 4]; function sort(cmp, a){ function maxson(l, i){ - /*<>*/ var - i31 = ((i + i | 0) + i | 0) + 1 | 0, - /*<>*/ x = [0, i31]; - if((i31 + 2 | 0) < l){ - /*<>*/ var - /*<>*/ _D_ = i31 + 1 | 0, - /*<>*/ _E_ = caml_check_bound(a, _D_)[1 + _D_]; - if + var + i31 = /*<>*/ ((i + i | 0) + i | 0) + 1 | 0, + x = /*<>*/ [0, i31]; + /*<>*/ if((i31 + 2 | 0) < l){ + var + _D_ = /*<>*/ i31 + 1 | 0, + _E_ = /*<>*/ caml_check_bound(a, _D_)[1 + _D_]; + /*<>*/ if ( /*<>*/ caml_call2 - (cmp, caml_check_bound(a, i31)[1 + i31], _E_) + (cmp, + /*<>*/ caml_check_bound(a, i31)[1 + i31], + _E_) < 0) - x[1] = i31 + 1 | 0; - /*<>*/ var - /*<>*/ _F_ = i31 + 2 | 0, - /*<>*/ _G_ = caml_check_bound(a, _F_)[1 + _F_], - _H_ = x[1]; - if + /*<>*/ x[1] = i31 + 1 | 0; + var + _F_ = /*<>*/ i31 + 2 | 0, + _G_ = /*<>*/ caml_check_bound(a, _F_)[1 + _F_], + _H_ = /*<>*/ x[1]; + /*<>*/ if ( /*<>*/ caml_call2 - (cmp, caml_check_bound(a, _H_)[1 + _H_], _G_) + (cmp, + /*<>*/ caml_check_bound(a, _H_)[1 + _H_], + _G_) < 0) - x[1] = i31 + 2 | 0; - return x[1]; + /*<>*/ x[1] = i31 + 2 | 0; + /*<>*/ return x[1]; } - if((i31 + 1 | 0) < l){ - /*<>*/ var + /*<>*/ if((i31 + 1 | 0) < l){ + var _I_ = i31 + 1 | 0, - /*<>*/ _J_ = caml_check_bound(a, _I_)[1 + _I_]; - /*<>*/ if + _J_ = /*<>*/ caml_check_bound(a, _I_)[1 + _I_]; + /*<>*/ if (0 > /*<>*/ caml_call2 - (cmp, caml_check_bound(a, i31)[1 + i31], _J_)) + (cmp, + /*<>*/ caml_check_bound(a, i31)[1 + i31], + _J_)) /*<>*/ return i31 + 1 | 0; } - if(i31 < l) /*<>*/ return i31; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(i31 < l) /*<>*/ return i31; + /*<>*/ throw caml_maybe_attach_backtrace ([0, Bottom, i], 1); /*<>*/ } - var l = a.length - 1, _x_ = ((l + 1 | 0) / 3 | 0) - 1 | 0; + var + l = /*<>*/ a.length - 1, + _x_ = /*<>*/ ((l + 1 | 0) / 3 | 0) - 1 | 0; if(_x_ >= 0){ var i$6 = _x_; for(;;){ - /*<>*/ /*<>*/ var - e$1 = caml_check_bound(a, i$6)[1 + i$6]; + var e$1 = /*<>*/ caml_check_bound(a, i$6)[1 + i$6]; /*<>*/ try{ - var i = i$6; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - j = maxson(l, i); - /*<>*/ if + var i = /*<>*/ i$6; + for(;;){ + var j = /*<>*/ maxson(l, i); + /*<>*/ if (0 >= /*<>*/ caml_call2 - (cmp, caml_check_bound(a, j)[1 + j], e$1)) + (cmp, /*<>*/ caml_check_bound(a, j)[1 + j], e$1)) break; - /*<>*/ /*<>*/ var - _u_ = caml_check_bound(a, j)[1 + j]; + var _u_ = /*<>*/ caml_check_bound(a, j)[1 + j]; /*<>*/ caml_check_bound(a, i)[1 + i] = _u_; - i = j; + /*<>*/ i = j; } /*<>*/ caml_check_bound(a, i)[1 + i] = e$1; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); if(exn[1] !== Bottom) throw caml_maybe_attach_backtrace(exn, 0); var i$0 = exn[2]; /*<>*/ caml_check_bound(a, i$0)[1 + i$0] = e$1; } - /*<>*/ /*<>*/ var _C_ = i$6 - 1 | 0; + var _C_ = /*<>*/ i$6 - 1 | 0; if(0 === i$6) break; i$6 = _C_; } } - /*<>*/ /*<>*/ var _y_ = l - 1 | 0; + var _y_ = /*<>*/ l - 1 | 0; if(_y_ >= 2){ var i$4 = _y_; for(;;){ - /*<>*/ /*<>*/ var - e$0 = caml_check_bound(a, i$4)[1 + i$4]; - /*<>*/ a[1 + i$4] = caml_check_bound(a, 0)[1]; - var i$5 = 0; - /*<>*/ try{ - var i$1 = i$5; - /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ j$0 = maxson(i$4, i$1), - /*<>*/ _v_ = caml_check_bound(a, j$0)[1 + j$0]; + var e$0 = /*<>*/ caml_check_bound(a, i$4)[1 + i$4]; + /*<>*/ a[1 + i$4] = caml_check_bound(a, 0)[1]; + var i$5 = /*<>*/ 0; + try{ + var i$1 = /*<>*/ i$5; + for(;;){ + var + j$0 = /*<>*/ maxson(i$4, i$1), + _v_ = /*<>*/ caml_check_bound(a, j$0)[1 + j$0]; /*<>*/ caml_check_bound(a, i$1)[1 + i$1] = _v_; - i$1 = j$0; + /*<>*/ i$1 = j$0; } } catch(exn){ - var exn$0 = caml_wrap_exception(exn); + var exn$0 = /*<>*/ caml_wrap_exception(exn); if(exn$0[1] !== Bottom) throw caml_maybe_attach_backtrace(exn$0, 0); var i$2 = exn$0[2]; a: { b: { - var i$3 = i$2; - /*<>*/ for(;;){ - var father = (i$3 - 1 | 0) / 3 | 0; - if(i$3 === father) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - ([0, Assert_failure, _a_], 1); - /*<>*/ if + var i$3 = /*<>*/ i$2; + for(;;){ + var father = /*<>*/ (i$3 - 1 | 0) / 3 | 0; + /*<>*/ if(i$3 === father) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + /*<>*/ if (0 <= /*<>*/ caml_call2 - (cmp, caml_check_bound(a, father)[1 + father], e$0)) + (cmp, + /*<>*/ caml_check_bound(a, father) + [1 + father], + e$0)) break; - /*<>*/ /*<>*/ var - _w_ = caml_check_bound(a, father)[1 + father]; + var + _w_ = + /*<>*/ caml_check_bound(a, father)[1 + father]; /*<>*/ caml_check_bound(a, i$3)[1 + i$3] = _w_; - if(0 >= father) break b; - i$3 = father; + /*<>*/ if(0 >= father) break b; + /*<>*/ i$3 = father; } /*<>*/ caml_check_bound(a, i$3)[1 + i$3] = e$0; break a; } /*<>*/ caml_check_bound(a, 0)[1] = e$0; } - /*<>*/ /*<>*/ var _B_ = i$4 - 1 | 0; + var _B_ = /*<>*/ i$4 - 1 | 0; if(2 === i$4) break; i$4 = _B_; } } } - var _z_ = 1 < l ? 1 : 0; + var _z_ = /*<>*/ 1 < l ? 1 : 0; if(_z_){ - /*<>*/ /*<>*/ var - e = caml_check_bound(a, 1)[2]; - /*<>*/ a[2] = caml_check_bound(a, 0)[1]; + var e = /*<>*/ caml_check_bound(a, 1)[2]; + /*<>*/ a[2] = caml_check_bound(a, 0)[1]; /*<>*/ a[1] = e; - var _A_ = 0; + var _A_ = /*<>*/ 0; } else - var _A_ = _z_; - /*<>*/ return _A_; + var _A_ = /*<>*/ _z_; + return _A_; /*<>*/ } function stable_sort(cmp, a){ function merge(src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs){ - /*<>*/ var - src1r = src1ofs + src1len | 0, + var + src1r = /*<>*/ src1ofs + src1len | 0, src2r = src2ofs + src2len | 0, - /*<>*/ s2$1 = - caml_check_bound(src2, src2ofs)[1 + src2ofs], - /*<>*/ s1$1 = - caml_check_bound(a, src1ofs)[1 + src1ofs], - i1 = src1ofs, + s2$1 = + /*<>*/ caml_check_bound(src2, src2ofs)[1 + src2ofs], + s1$1 = + /*<>*/ caml_check_bound(a, src1ofs)[1 + src1ofs], + i1 = /*<>*/ src1ofs, s1 = s1$1, i2 = src2ofs, s2 = s2$1, d = dstofs; - /*<>*/ for(;;) - /*<>*/ if - (0 < /*<>*/ caml_call2(cmp, s1, s2)){ + for(;;) + /*<>*/ if(0 < caml_call2(cmp, s1, s2)){ /*<>*/ caml_check_bound(dst, d)[1 + d] = s2; - /*<>*/ /*<>*/ var i2$0 = i2 + 1 | 0; - if(i2$0 >= src2r) return blit(a, i1, dst, d + 1 | 0, src1r - i1 | 0); - /*<>*/ var - /*<>*/ d$0 = d + 1 | 0, - /*<>*/ s2$0 = caml_check_bound(src2, i2$0)[1 + i2$0]; - i2 = i2$0; + var i2$0 = /*<>*/ i2 + 1 | 0; + /*<>*/ if(i2$0 >= src2r) + /*<>*/ return blit + (a, i1, dst, d + 1 | 0, src1r - i1 | 0) /*<>*/ ; + var + d$0 = /*<>*/ d + 1 | 0, + s2$0 = /*<>*/ caml_check_bound(src2, i2$0)[1 + i2$0]; + /*<>*/ i2 = i2$0; s2 = s2$0; d = d$0; } else{ /*<>*/ caml_check_bound(dst, d)[1 + d] = s1; - /*<>*/ /*<>*/ var i1$0 = i1 + 1 | 0; - if(i1$0 >= src1r) - return blit(src2, i2, dst, d + 1 | 0, src2r - i2 | 0); - /*<>*/ var - /*<>*/ d$1 = d + 1 | 0, - /*<>*/ s1$0 = caml_check_bound(a, i1$0)[1 + i1$0]; - i1 = i1$0; + var i1$0 = /*<>*/ i1 + 1 | 0; + /*<>*/ if(i1$0 >= src1r) + /*<>*/ return blit + (src2, i2, dst, d + 1 | 0, src2r - i2 | 0) /*<>*/ ; + var + d$1 = /*<>*/ d + 1 | 0, + s1$0 = /*<>*/ caml_check_bound(a, i1$0)[1 + i1$0]; + /*<>*/ i1 = i1$0; s1 = s1$0; d = d$1; } /*<>*/ } function isortto(srcofs, dst, dstofs, len){ - /*<>*/ var - _m_ = len - 1 | 0, - /*<>*/ _l_ = 0; + var _m_ = /*<>*/ len - 1 | 0, _l_ = 0; if(_m_ >= 0){ var i = _l_; for(;;){ - /*<>*/ var - _n_ = srcofs + i | 0, - /*<>*/ e = caml_check_bound(a, _n_)[1 + _n_], - /*<>*/ j = [0, (dstofs + i | 0) - 1 | 0]; - for(;;){ + var + _n_ = /*<>*/ srcofs + i | 0, + e = /*<>*/ caml_check_bound(a, _n_)[1 + _n_], + j = /*<>*/ [0, (dstofs + i | 0) - 1 | 0]; + /*<>*/ for(;;){ if(dstofs > j[1]) break; var _o_ = j[1]; - /*<>*/ if + /*<>*/ if (0 >= /*<>*/ caml_call2 - (cmp, caml_check_bound(dst, _o_)[1 + _o_], e)) + (cmp, + /*<>*/ caml_check_bound(dst, _o_)[1 + _o_], + e)) break; - /*<>*/ var - _p_ = j[1], - /*<>*/ _q_ = caml_check_bound(dst, _p_)[1 + _p_], - _r_ = j[1] + 1 | 0; + var + _p_ = /*<>*/ j[1], + _q_ = /*<>*/ caml_check_bound(dst, _p_)[1 + _p_], + _r_ = /*<>*/ j[1] + 1 | 0; /*<>*/ caml_check_bound(dst, _r_)[1 + _r_] = _q_; - j[1]--; + /*<>*/ j[1]--; } - var _s_ = j[1] + 1 | 0; - /*<>*/ caml_check_bound(dst, _s_)[1 + _s_] = e; - /*<>*/ /*<>*/ var _t_ = i + 1 | 0; + var _s_ = /*<>*/ j[1] + 1 | 0; + caml_check_bound(dst, _s_)[1 + _s_] = e; + var _t_ = /*<>*/ i + 1 | 0; if(_m_ === i) break; i = _t_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function sortto(srcofs, dst, dstofs, len){ /*<>*/ if(len <= 5) - /*<>*/ return isortto(srcofs, dst, dstofs, len); - var l1 = len / 2 | 0, l2 = len - l1 | 0; + /*<>*/ return isortto(srcofs, dst, dstofs, len) /*<>*/ ; + var + l1 = /*<>*/ len / 2 | 0, + l2 = /*<>*/ len - l1 | 0; /*<>*/ sortto(srcofs + l1 | 0, dst, dstofs + l1 | 0, l2); /*<>*/ sortto(srcofs, a, srcofs + l2 | 0, l1); - /*<>*/ return merge - (srcofs + l2 | 0, l1, dst, dstofs + l1 | 0, l2, dst, dstofs); - /*<>*/ } - var l = a.length - 1; - if(l <= 5) /*<>*/ return isortto(0, a, 0, l); - /*<>*/ var - l1 = l / 2 | 0, - l2 = l - l1 | 0, - /*<>*/ t = - /*<>*/ caml_make_vect(l2, caml_check_bound(a, 0)[1]); + /*<>*/ return merge + (srcofs + l2 | 0, l1, dst, dstofs + l1 | 0, l2, dst, dstofs) /*<>*/ ; + } + var l = /*<>*/ a.length - 1; + /*<>*/ if(l <= 5) + /*<>*/ return isortto(0, a, 0, l) /*<>*/ ; + var + l1 = /*<>*/ l / 2 | 0, + l2 = /*<>*/ l - l1 | 0, + t = + /*<>*/ /*<>*/ caml_make_vect + (l2, /*<>*/ caml_check_bound(a, 0)[1]); /*<>*/ sortto(l1, t, 0, l2); /*<>*/ sortto(0, a, l2, l1); - /*<>*/ return merge(l2, l1, t, 0, l2, a, 0); - /*<>*/ } + /*<>*/ return merge(l2, l1, t, 0, l2, a, 0) /*<>*/ ; + } function shuffle(rand, a){ - /*<>*/ var _j_ = a.length - 2 | 0; + var _j_ = /*<>*/ a.length - 2 | 0; if(_j_ >= 1){ var i = _j_; for(;;){ - /*<>*/ var - /*<>*/ j = - /*<>*/ caml_call1(rand, i + 1 | 0), - /*<>*/ v = a[1 + i]; - /*<>*/ a[1 + i] = caml_check_bound(a, j)[1 + j]; + var + j = /*<>*/ caml_call1(rand, i + 1 | 0), + v = /*<>*/ a[1 + i]; + /*<>*/ a[1 + i] = caml_check_bound(a, j)[1 + j]; /*<>*/ a[1 + j] = v; - var _k_ = i - 1 | 0; + var _k_ = /*<>*/ i - 1 | 0; if(1 === i) break; i = _k_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function to_seq(a){ function aux(i, param){ /*<>*/ if(i >= a.length - 1) /*<>*/ return 0; - /*<>*/ var - /*<>*/ x = a[1 + i], - /*<>*/ _h_ = i + 1 | 0; - /*<>*/ return [0, + var + x = /*<>*/ a[1 + i], + _h_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, x, - function(_i_){ /*<>*/ return aux(_h_, _i_);}]; + function(_i_){ /*<>*/ return aux(_h_, _i_);}] /*<>*/ ; /*<>*/ } - /*<>*/ var _f_ = 0; - /*<>*/ return function(_g_){ - /*<>*/ return aux(_f_, _g_);}; + var _f_ = /*<>*/ 0; + return function(_g_){ + /*<>*/ return aux(_f_, _g_);} /*<>*/ ; /*<>*/ } function to_seqi(a){ function aux(i, param){ /*<>*/ if(i >= a.length - 1) /*<>*/ return 0; - /*<>*/ var - /*<>*/ x = a[1 + i], - /*<>*/ _d_ = i + 1 | 0; - /*<>*/ return [0, + var + x = /*<>*/ a[1 + i], + _d_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, [0, i, x], - function(_e_){ /*<>*/ return aux(_d_, _e_);}]; + function(_e_){ /*<>*/ return aux(_d_, _e_);}] /*<>*/ ; /*<>*/ } - /*<>*/ var _b_ = 0; - /*<>*/ return function(_c_){ - /*<>*/ return aux(_b_, _c_);}; + var _b_ = /*<>*/ 0; + return function(_c_){ + /*<>*/ return aux(_b_, _c_);} /*<>*/ ; /*<>*/ } function of_seq(i$2){ - /*<>*/ /*<>*/ var + var l = /*<>*/ caml_call3 (Stdlib_Seq[5], @@ -8019,28 +7847,27 @@ /*<>*/ }, 0, i$2); - if(! l) /*<>*/ return [0]; - /*<>*/ var - tl = l[2], + /*<>*/ if(! l) /*<>*/ return [0]; + var + tl = /*<>*/ l[2], hd = l[1], - /*<>*/ len = list_length(0, l), - /*<>*/ a = - /*<>*/ caml_make_vect(len, hd), - /*<>*/ i$1 = len - 2 | 0, + len = /*<>*/ list_length(0, l), + a = /*<>*/ caml_make_vect(len, hd), + i$1 = /*<>*/ len - 2 | 0, i = i$1, param = tl; for(;;){ - if(! param) /*<>*/ return a; - var tl$0 = param[2], hd$0 = param[1]; + /*<>*/ if(! param) /*<>*/ return a; + var tl$0 = /*<>*/ param[2], hd$0 = param[1]; /*<>*/ a[1 + i] = hd$0; - /*<>*/ /*<>*/ var i$0 = i - 1 | 0; + var i$0 = /*<>*/ i - 1 | 0; i = i$0; param = tl$0; } /*<>*/ } var Stdlib_Array = - [0, + /*<>*/ [0, init, make_matrix, init_matrix, @@ -8085,7 +7912,7 @@ Floatarray]; runtime.caml_register_global(16, Stdlib_Array, "Stdlib__Array"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Float @@ -8107,22 +7934,22 @@ caml_nextafter_float = runtime.caml_nextafter_float, caml_signbit_float = runtime.caml_signbit_float, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ var + var global_data = runtime.caml_get_global_data(), Stdlib_Seq = global_data.Stdlib__Seq, Stdlib_List = global_data.Stdlib__List, @@ -8131,20 +7958,20 @@ infinity = Stdlib[22], neg_infinity = Stdlib[23], nan = Stdlib[24], - /*<>*/ signaling_nan = + signaling_nan = /*<>*/ runtime.caml_int64_float_of_bits (runtime.caml_int64_create_lo_mi_hi(1, 0, 32752)); function is_finite(x){ - /*<>*/ return x - x === 0. ? 1 : 0; + /*<>*/ return x - x === 0. ? 1 : 0; /*<>*/ } function is_infinite(x){ - /*<>*/ return 1. / x === 0. ? 1 : 0; + /*<>*/ return 1. / x === 0. ? 1 : 0; /*<>*/ } function is_nan(x){ /*<>*/ return x !== x ? 1 : 0; /*<>*/ } var - max_float = Stdlib[25], + max_float = /*<>*/ Stdlib[25], min_float = Stdlib[26], epsilon = Stdlib[27], of_string_opt = Stdlib[36], @@ -8163,52 +7990,50 @@ cst_Float_Array_map2_arrays_mu = "Float.Array.map2: arrays must have the same length"; function is_integer(x){ - /*<>*/ var - _aX_ = x === /*<>*/ runtime.caml_trunc_float(x) ? 1 : 0; - return _aX_ ? is_finite(x) : _aX_; - /*<>*/ } + var + _aX_ = /*<>*/ x === runtime.caml_trunc_float(x) ? 1 : 0; + /*<>*/ return _aX_ ? is_finite(x) : _aX_ /*<>*/ ; + } function succ(x){ - /*<>*/ return /*<>*/ caml_nextafter_float - (x, infinity); - /*<>*/ } + /*<>*/ return caml_nextafter_float(x, infinity) /*<>*/ ; + } function pred(x){ - /*<>*/ return /*<>*/ caml_nextafter_float - (x, neg_infinity); - /*<>*/ } + /*<>*/ return caml_nextafter_float(x, neg_infinity) /*<>*/ ; + } function equal(x, y){ /*<>*/ return 0 === caml_float_compare(x, y) ? 1 : 0; /*<>*/ } function min(x, y){ - /*<>*/ a: + a: if(! (x < y)){ - /*<>*/ if + /*<>*/ if (! - /*<>*/ caml_signbit_float(y) + caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) break a; - /*<>*/ return x !== x ? x : y; + /*<>*/ return x !== x ? x : y /*<>*/ ; } - /*<>*/ return y !== y ? y : x; - /*<>*/ } + /*<>*/ return y !== y ? y : x /*<>*/ ; + } function max(x, y){ - /*<>*/ a: + a: if(! (x < y)){ - /*<>*/ if + /*<>*/ if (! - /*<>*/ caml_signbit_float(y) + caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) break a; - /*<>*/ return y !== y ? y : x; + /*<>*/ return y !== y ? y : x /*<>*/ ; } - /*<>*/ return x !== x ? x : y; - /*<>*/ } + /*<>*/ return x !== x ? x : y /*<>*/ ; + } function min_max(x, y){ - /*<>*/ if(x === x && y === y){ + /*<>*/ if(x === x && y === y){ a: if(! (x < y)){ - /*<>*/ if + /*<>*/ if (! - /*<>*/ caml_signbit_float(y) + caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) break a; /*<>*/ return [0, y, x]; @@ -8218,39 +8043,39 @@ /*<>*/ return [0, nan, nan]; /*<>*/ } function min_num(x, y){ - /*<>*/ a: + a: if(! (x < y)){ - /*<>*/ if + /*<>*/ if (! - /*<>*/ caml_signbit_float(y) + caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) break a; - /*<>*/ return y !== y ? x : y; + /*<>*/ return y !== y ? x : y /*<>*/ ; } - /*<>*/ return x !== x ? y : x; - /*<>*/ } + /*<>*/ return x !== x ? y : x /*<>*/ ; + } function max_num(x, y){ - /*<>*/ a: + a: if(! (x < y)){ - /*<>*/ if + /*<>*/ if (! - /*<>*/ caml_signbit_float(y) + caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) break a; - /*<>*/ return x !== x ? y : x; + /*<>*/ return x !== x ? y : x /*<>*/ ; } - /*<>*/ return y !== y ? x : y; - /*<>*/ } + /*<>*/ return y !== y ? x : y /*<>*/ ; + } function min_max_num(x, y){ - /*<>*/ if(x !== x) + /*<>*/ if(x !== x) /*<>*/ return [0, y, y]; - /*<>*/ if(y !== y) + /*<>*/ if(y !== y) /*<>*/ return [0, x, x]; a: if(! (x < y)){ - /*<>*/ if + /*<>*/ if (! - /*<>*/ caml_signbit_float(y) + caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) break a; /*<>*/ return [0, y, x]; @@ -8258,28 +8083,26 @@ /*<>*/ return [0, x, y]; /*<>*/ } function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, seed, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, seed, x) /*<>*/ ; + } function hash(x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, 0, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, 0, x) /*<>*/ ; + } function unsafe_fill(a, ofs, len, v){ - /*<>*/ var _aV_ = (ofs + len | 0) - 1 | 0; + var _aV_ = /*<>*/ (ofs + len | 0) - 1 | 0; if(_aV_ >= ofs){ var i = ofs; for(;;){ /*<>*/ a[1 + i] = v; - /*<>*/ /*<>*/ var _aW_ = i + 1 | 0; + var _aW_ = /*<>*/ i + 1 | 0; if(_aV_ === i) break; i = _aW_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function check(a, ofs, len, msg){ - /*<>*/ var _aR_ = ofs < 0 ? 1 : 0; + var _aR_ = /*<>*/ ofs < 0 ? 1 : 0; if(_aR_) var _aS_ = _aR_; else{ @@ -8291,29 +8114,26 @@ _aU_ = (ofs + len | 0) < 0 ? 1 : 0, _aS_ = _aU_ || (a.length - 1 < (ofs + len | 0) ? 1 : 0); } - return _aS_ ? /*<>*/ caml_call1(Stdlib[1], msg) : _aS_; - /*<>*/ } + return _aS_ ? /*<>*/ caml_call1(Stdlib[1], msg) : _aS_ /*<>*/ ; + } function make(n, v){ - /*<>*/ /*<>*/ var - result = /*<>*/ caml_floatarray_create(n); + var result = /*<>*/ caml_floatarray_create(n); /*<>*/ unsafe_fill(result, 0, n, v); - /*<>*/ return result; + /*<>*/ return result; /*<>*/ } function init(l, f){ /*<>*/ if(0 > l) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Float_Array_init); - /*<>*/ var - /*<>*/ res = - /*<>*/ caml_floatarray_create(l), - /*<>*/ _aP_ = l - 1 | 0, - /*<>*/ _aO_ = 0; + /*<>*/ return caml_call1 + (Stdlib[1], cst_Float_Array_init) /*<>*/ ; + var + res = /*<>*/ caml_floatarray_create(l), + _aP_ = /*<>*/ l - 1 | 0, + _aO_ = 0; if(_aP_ >= 0){ var i = _aO_; for(;;){ - /*<>*/ res[1 + i] = - /*<>*/ caml_call1(f, i); - /*<>*/ /*<>*/ var _aQ_ = i + 1 | 0; + /*<>*/ res[1 + i] = caml_call1(f, i); + var _aQ_ = /*<>*/ i + 1 | 0; if(_aP_ === i) break; i = _aQ_; } @@ -8322,21 +8142,19 @@ /*<>*/ } function make_matrix(sx, sy, v){ /*<>*/ if(sy < 0) - /*<>*/ /*<>*/ caml_call1 + /*<>*/ caml_call1 (Stdlib[1], cst_Float_Array_make_matrix); - /*<>*/ /*<>*/ var + var res = - /*<>*/ caml_make_vect + /*<>*/ /*<>*/ caml_make_vect (sx, /*<>*/ caml_floatarray_create(0)); - if(0 < sy){ - /*<>*/ var - _aM_ = sx - 1 | 0, - /*<>*/ _aL_ = 0; + /*<>*/ if(0 < sy){ + var _aM_ = /*<>*/ sx - 1 | 0, _aL_ = 0; if(_aM_ >= 0){ var x = _aL_; for(;;){ - /*<>*/ res[1 + x] = make(sy, v); - /*<>*/ /*<>*/ var _aN_ = x + 1 | 0; + /*<>*/ res[1 + x] = make(sy, v); + var _aN_ = /*<>*/ x + 1 | 0; if(_aM_ === x) break; x = _aN_; } @@ -8346,37 +8164,32 @@ /*<>*/ } function init_matrix(sx, sy, f){ /*<>*/ if(sy < 0) - /*<>*/ /*<>*/ caml_call1 + /*<>*/ caml_call1 (Stdlib[1], cst_Float_Array_init_matrix); - /*<>*/ /*<>*/ var + var res = - /*<>*/ caml_make_vect + /*<>*/ /*<>*/ caml_make_vect (sx, /*<>*/ caml_floatarray_create(0)); - if(0 < sy){ - /*<>*/ var - _aG_ = sx - 1 | 0, - /*<>*/ _aF_ = 0; + /*<>*/ if(0 < sy){ + var _aG_ = /*<>*/ sx - 1 | 0, _aF_ = 0; if(_aG_ >= 0){ var x = _aF_; for(;;){ - /*<>*/ var - /*<>*/ row = - /*<>*/ caml_floatarray_create(sy), - /*<>*/ _aI_ = sy - 1 | 0, - /*<>*/ _aH_ = 0; + var + row = /*<>*/ caml_floatarray_create(sy), + _aI_ = /*<>*/ sy - 1 | 0, + _aH_ = 0; if(_aI_ >= 0){ var y = _aH_; for(;;){ - /*<>*/ row[1 + y] = - /*<>*/ caml_call2(f, x, y); - /*<>*/ /*<>*/ var - _aK_ = y + 1 | 0; + /*<>*/ row[1 + y] = caml_call2(f, x, y); + var _aK_ = /*<>*/ y + 1 | 0; if(_aI_ === y) break; y = _aK_; } } /*<>*/ res[1 + x] = row; - /*<>*/ /*<>*/ var _aJ_ = x + 1 | 0; + var _aJ_ = /*<>*/ x + 1 | 0; if(_aG_ === x) break; x = _aJ_; } @@ -8385,152 +8198,136 @@ /*<>*/ return res; /*<>*/ } function append(a1, a2){ - /*<>*/ var - l1 = a1.length - 1, - /*<>*/ l2 = a2.length - 1, - /*<>*/ result = - /*<>*/ caml_floatarray_create(l1 + l2 | 0); - /*<>*/ /*<>*/ caml_floatarray_blit - (a1, 0, result, 0, l1); - /*<>*/ /*<>*/ caml_floatarray_blit - (a2, 0, result, l1, l2); - /*<>*/ return result; + var + l1 = /*<>*/ a1.length - 1, + l2 = /*<>*/ a2.length - 1, + result = /*<>*/ caml_floatarray_create(l1 + l2 | 0); + /*<>*/ caml_floatarray_blit(a1, 0, result, 0, l1); + /*<>*/ caml_floatarray_blit(a2, 0, result, l1, l2); + /*<>*/ return result; /*<>*/ } function concat(l){ - /*<>*/ var acc = 0, param = l; + var acc = /*<>*/ 0, param = l; for(;;){ - if(! param) break; + /*<>*/ if(! param) break; var tl = param[2], hd = param[1], - x = hd.length - 1 + acc | 0, + x = /*<>*/ hd.length - 1 + acc | 0, acc$0 = - acc <= x + /*<>*/ acc <= x ? x : /*<>*/ caml_call1 (Stdlib[1], cst_Float_Array_concat); - acc = acc$0; + /*<>*/ acc = acc$0; param = tl; } - /*<>*/ var - /*<>*/ result = - /*<>*/ caml_floatarray_create(acc), - l$0 = l, + var + result = /*<>*/ caml_floatarray_create(acc), + l$0 = /*<>*/ l, i = 0; - /*<>*/ for(;;){ - if(! l$0){ - if(i === acc) /*<>*/ return result; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + for(;;){ + /*<>*/ if(! l$0){ + /*<>*/ if(i === acc) + /*<>*/ return result; + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _a_], 1); } - /*<>*/ var - tl$0 = l$0[2], + var + tl$0 = /*<>*/ l$0[2], hd$0 = l$0[1], - /*<>*/ hlen = hd$0.length - 1; - /*<>*/ /*<>*/ caml_floatarray_blit - (hd$0, 0, result, i, hlen); - var i$0 = i + hlen | 0; + hlen = /*<>*/ hd$0.length - 1; + /*<>*/ caml_floatarray_blit(hd$0, 0, result, i, hlen); + var i$0 = /*<>*/ i + hlen | 0; l$0 = tl$0; i = i$0; } /*<>*/ } function sub(a, ofs, len){ /*<>*/ check(a, ofs, len, cst_Float_Array_sub); - /*<>*/ /*<>*/ var - result = /*<>*/ caml_floatarray_create(len); - /*<>*/ /*<>*/ caml_floatarray_blit - (a, ofs, result, 0, len); - /*<>*/ return result; + var result = /*<>*/ caml_floatarray_create(len); + /*<>*/ caml_floatarray_blit(a, ofs, result, 0, len); + /*<>*/ return result; /*<>*/ } function copy(a){ - /*<>*/ var - l = a.length - 1, - /*<>*/ result = - /*<>*/ caml_floatarray_create(l); - /*<>*/ /*<>*/ caml_floatarray_blit - (a, 0, result, 0, l); - /*<>*/ return result; + var + l = /*<>*/ a.length - 1, + result = /*<>*/ caml_floatarray_create(l); + /*<>*/ caml_floatarray_blit(a, 0, result, 0, l); + /*<>*/ return result; /*<>*/ } function fill(a, ofs, len, v){ /*<>*/ check(a, ofs, len, cst_Float_Array_fill); - /*<>*/ return unsafe_fill(a, ofs, len, v); - /*<>*/ } + /*<>*/ return unsafe_fill(a, ofs, len, v) /*<>*/ ; + } function blit(src, sofs, dst, dofs, len){ /*<>*/ check(src, sofs, len, cst_Float_array_blit); /*<>*/ check(dst, dofs, len, cst_Float_array_blit$0); - /*<>*/ return /*<>*/ caml_floatarray_blit - (src, sofs, dst, dofs, len); - /*<>*/ } + /*<>*/ return caml_floatarray_blit + (src, sofs, dst, dofs, len) /*<>*/ ; + } function to_list(a){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_List[11], a.length - 1, - function(_aE_){ /*<>*/ return a[1 + _aE_];}); - /*<>*/ } + function(_aE_){ /*<>*/ return a[1 + _aE_];}) /*<>*/ ; + } function of_list(l){ - /*<>*/ var - /*<>*/ result = - /*<>*/ caml_floatarray_create + var + result = + /*<>*/ /*<>*/ caml_floatarray_create ( /*<>*/ caml_call1(Stdlib_List[1], l)), - i = 0, + i = /*<>*/ 0, l$0 = l; - /*<>*/ for(;;){ - if(! l$0) /*<>*/ return result; - var t = l$0[2], h = l$0[1]; + for(;;){ + /*<>*/ if(! l$0) /*<>*/ return result; + var t = /*<>*/ l$0[2], h = l$0[1]; /*<>*/ result[1 + i] = h; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; l$0 = t; } /*<>*/ } function iter(f, a){ - /*<>*/ var - _aC_ = a.length - 2 | 0, - /*<>*/ _aB_ = 0; + var _aC_ = /*<>*/ a.length - 2 | 0, _aB_ = 0; if(_aC_ >= 0){ var i = _aB_; for(;;){ - /*<>*/ /*<>*/ caml_call1 - (f, a[1 + i]); - /*<>*/ /*<>*/ var _aD_ = i + 1 | 0; + /*<>*/ caml_call1(f, a[1 + i]); + var _aD_ = /*<>*/ i + 1 | 0; if(_aC_ === i) break; i = _aD_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function iter2(f, a, b){ /*<>*/ if(a.length - 1 !== b.length - 1) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Float_Array_iter2_arrays_m); - /*<>*/ var - _az_ = a.length - 2 | 0, - /*<>*/ _ay_ = 0; + /*<>*/ return caml_call1 + (Stdlib[1], cst_Float_Array_iter2_arrays_m) /*<>*/ ; + var _az_ = /*<>*/ a.length - 2 | 0, _ay_ = 0; if(_az_ >= 0){ var i = _ay_; for(;;){ - /*<>*/ /*<>*/ caml_call2 - (f, a[1 + i], b[1 + i]); - /*<>*/ /*<>*/ var _aA_ = i + 1 | 0; + /*<>*/ caml_call2(f, a[1 + i], b[1 + i]); + var _aA_ = /*<>*/ i + 1 | 0; if(_az_ === i) break; i = _aA_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function map(f, a){ - /*<>*/ var - l = a.length - 1, - /*<>*/ r = - /*<>*/ caml_floatarray_create(l), - /*<>*/ _aw_ = l - 1 | 0, - /*<>*/ _av_ = 0; + var + l = /*<>*/ a.length - 1, + r = /*<>*/ caml_floatarray_create(l), + _aw_ = /*<>*/ l - 1 | 0, + _av_ = 0; if(_aw_ >= 0){ var i = _av_; for(;;){ - /*<>*/ r[1 + i] = - /*<>*/ caml_call1(f, a[1 + i]); - /*<>*/ /*<>*/ var _ax_ = i + 1 | 0; + /*<>*/ r[1 + i] = caml_call1(f, a[1 + i]); + var _ax_ = /*<>*/ i + 1 | 0; if(_aw_ === i) break; i = _ax_; } @@ -8538,39 +8335,34 @@ /*<>*/ return r; /*<>*/ } function map_inplace(f, a){ - /*<>*/ var - _at_ = a.length - 2 | 0, - /*<>*/ _as_ = 0; + var _at_ = /*<>*/ a.length - 2 | 0, _as_ = 0; if(_at_ >= 0){ var i = _as_; for(;;){ - /*<>*/ a[1 + i] = - /*<>*/ caml_call1(f, a[1 + i]); - /*<>*/ /*<>*/ var _au_ = i + 1 | 0; + /*<>*/ a[1 + i] = caml_call1(f, a[1 + i]); + var _au_ = /*<>*/ i + 1 | 0; if(_at_ === i) break; i = _au_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function map2(f, a, b){ - /*<>*/ var - la = a.length - 1, - /*<>*/ lb = b.length - 1; - if(la !== lb) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Float_Array_map2_arrays_mu); - /*<>*/ var - /*<>*/ r = - /*<>*/ caml_floatarray_create(la), - /*<>*/ _aq_ = la - 1 | 0, - /*<>*/ _ap_ = 0; + var + la = /*<>*/ a.length - 1, + lb = /*<>*/ b.length - 1; + /*<>*/ if(la !== lb) + /*<>*/ return caml_call1 + (Stdlib[1], cst_Float_Array_map2_arrays_mu) /*<>*/ ; + var + r = /*<>*/ caml_floatarray_create(la), + _aq_ = /*<>*/ la - 1 | 0, + _ap_ = 0; if(_aq_ >= 0){ var i = _ap_; for(;;){ - /*<>*/ r[1 + i] = - /*<>*/ caml_call2(f, a[1 + i], b[1 + i]); - /*<>*/ /*<>*/ var _ar_ = i + 1 | 0; + /*<>*/ r[1 + i] = caml_call2(f, a[1 + i], b[1 + i]); + var _ar_ = /*<>*/ i + 1 | 0; if(_aq_ === i) break; i = _ar_; } @@ -8578,34 +8370,29 @@ /*<>*/ return r; /*<>*/ } function iteri(f, a){ - /*<>*/ var - _an_ = a.length - 2 | 0, - /*<>*/ _am_ = 0; + var _an_ = /*<>*/ a.length - 2 | 0, _am_ = 0; if(_an_ >= 0){ var i = _am_; for(;;){ - /*<>*/ /*<>*/ caml_call2 - (f, i, a[1 + i]); - /*<>*/ /*<>*/ var _ao_ = i + 1 | 0; + /*<>*/ caml_call2(f, i, a[1 + i]); + var _ao_ = /*<>*/ i + 1 | 0; if(_an_ === i) break; i = _ao_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function mapi(f, a){ - /*<>*/ var - l = a.length - 1, - /*<>*/ r = - /*<>*/ caml_floatarray_create(l), - /*<>*/ _ak_ = l - 1 | 0, - /*<>*/ _aj_ = 0; + var + l = /*<>*/ a.length - 1, + r = /*<>*/ caml_floatarray_create(l), + _ak_ = /*<>*/ l - 1 | 0, + _aj_ = 0; if(_ak_ >= 0){ var i = _aj_; for(;;){ - /*<>*/ r[1 + i] = - /*<>*/ caml_call2(f, i, a[1 + i]); - /*<>*/ /*<>*/ var _al_ = i + 1 | 0; + /*<>*/ r[1 + i] = caml_call2(f, i, a[1 + i]); + var _al_ = /*<>*/ i + 1 | 0; if(_ak_ === i) break; i = _al_; } @@ -8613,432 +8400,450 @@ /*<>*/ return r; /*<>*/ } function mapi_inplace(f, a){ - /*<>*/ var - _ah_ = a.length - 2 | 0, - /*<>*/ _ag_ = 0; + var _ah_ = /*<>*/ a.length - 2 | 0, _ag_ = 0; if(_ah_ >= 0){ var i = _ag_; for(;;){ - /*<>*/ a[1 + i] = - /*<>*/ caml_call2(f, i, a[1 + i]); - /*<>*/ /*<>*/ var _ai_ = i + 1 | 0; + /*<>*/ a[1 + i] = caml_call2(f, i, a[1 + i]); + var _ai_ = /*<>*/ i + 1 | 0; if(_ah_ === i) break; i = _ai_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function fold_left(f, x, a){ - /*<>*/ var - /*<>*/ r = [0, x], - _ae_ = a.length - 2 | 0, - /*<>*/ _ad_ = 0; + var + r = /*<>*/ [0, x], + _ae_ = /*<>*/ a.length - 2 | 0, + _ad_ = 0; if(_ae_ >= 0){ var i = _ad_; for(;;){ - r[1] = /*<>*/ caml_call2(f, r[1], a[1 + i]); - /*<>*/ /*<>*/ var _af_ = i + 1 | 0; + /*<>*/ r[1] = caml_call2(f, r[1], a[1 + i]); + var _af_ = /*<>*/ i + 1 | 0; if(_ae_ === i) break; i = _af_; } } - return r[1]; + /*<>*/ return r[1]; /*<>*/ } function fold_right(f, a, x){ - /*<>*/ var - /*<>*/ r = [0, x], - /*<>*/ _ab_ = a.length - 2 | 0; + var + r = /*<>*/ [0, x], + _ab_ = /*<>*/ a.length - 2 | 0; if(_ab_ >= 0){ var i = _ab_; for(;;){ - r[1] = /*<>*/ caml_call2(f, a[1 + i], r[1]); - /*<>*/ /*<>*/ var _ac_ = i - 1 | 0; + /*<>*/ r[1] = caml_call2(f, a[1 + i], r[1]); + var _ac_ = /*<>*/ i - 1 | 0; if(0 === i) break; i = _ac_; } } - return r[1]; + /*<>*/ return r[1]; /*<>*/ } function exists(p, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ if - ( /*<>*/ caml_call1(p, a[1 + i])) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + /*<>*/ if(caml_call1(p, a[1 + i])) /*<>*/ return 1; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function for_all(p, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 1; - /*<>*/ if - (! /*<>*/ caml_call1(p, a[1 + i])) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 1; + /*<>*/ if(! caml_call1(p, a[1 + i])) /*<>*/ return 0; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function mem(x, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - if(0 === /*<>*/ caml_float_compare(a[1 + i], x)) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + /*<>*/ if(0 === caml_float_compare(a[1 + i], x)) /*<>*/ return 1; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function mem_ieee(x, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - if(x === a[1 + i]) /*<>*/ return 1; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + /*<>*/ if(x === a[1 + i]) + /*<>*/ return 1; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function find_opt(p, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ /*<>*/ var x = a[1 + i]; - /*<>*/ if( /*<>*/ caml_call1(p, x)) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + var x = /*<>*/ a[1 + i]; + /*<>*/ if(caml_call1(p, x)) /*<>*/ return [0, x]; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function find_index(p, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ if - ( /*<>*/ caml_call1(p, a[1 + i])) + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + /*<>*/ if(caml_call1(p, a[1 + i])) /*<>*/ return [0, i]; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function find_map(f, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ /*<>*/ var - r = /*<>*/ caml_call1(f, a[1 + i]); - if(r) /*<>*/ return r; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + var r = /*<>*/ caml_call1(f, a[1 + i]); + /*<>*/ if(r) /*<>*/ return r; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } function find_mapi(f, a){ - /*<>*/ var n = a.length - 1, i = 0; - /*<>*/ for(;;){ - if(i === n) /*<>*/ return 0; - /*<>*/ /*<>*/ var - r = /*<>*/ caml_call2(f, i, a[1 + i]); - if(r) /*<>*/ return r; - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var + n = /*<>*/ a.length - 1, + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === n) /*<>*/ return 0; + var r = /*<>*/ caml_call2(f, i, a[1 + i]); + /*<>*/ if(r) /*<>*/ return r; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } /*<>*/ } - /*<>*/ var - /*<>*/ Bottom = - [248, "Stdlib.Float.Array.Bottom", runtime.caml_fresh_oo_id(0)], + var + Bottom = + /*<>*/ [248, + "Stdlib.Float.Array.Bottom", + runtime.caml_fresh_oo_id(0)], _b_ = [0, cst_float_ml, 484, 6]; function sort(cmp, a){ function maxson(l, i){ - /*<>*/ var - i31 = ((i + i | 0) + i | 0) + 1 | 0, - /*<>*/ x = [0, i31]; - if((i31 + 2 | 0) < l){ - /*<>*/ var - /*<>*/ _W_ = i31 + 1 | 0, - /*<>*/ _X_ = caml_check_bound(a, _W_)[1 + _W_]; - if + var + i31 = /*<>*/ ((i + i | 0) + i | 0) + 1 | 0, + x = /*<>*/ [0, i31]; + /*<>*/ if((i31 + 2 | 0) < l){ + var + _W_ = /*<>*/ i31 + 1 | 0, + _X_ = /*<>*/ caml_check_bound(a, _W_)[1 + _W_]; + /*<>*/ if ( /*<>*/ caml_call2 - (cmp, caml_check_bound(a, i31)[1 + i31], _X_) + (cmp, + /*<>*/ caml_check_bound(a, i31)[1 + i31], + _X_) < 0) - x[1] = i31 + 1 | 0; - /*<>*/ var - /*<>*/ _Y_ = i31 + 2 | 0, - /*<>*/ _Z_ = caml_check_bound(a, _Y_)[1 + _Y_], - ___ = x[1]; - if + /*<>*/ x[1] = i31 + 1 | 0; + var + _Y_ = /*<>*/ i31 + 2 | 0, + _Z_ = /*<>*/ caml_check_bound(a, _Y_)[1 + _Y_], + ___ = /*<>*/ x[1]; + /*<>*/ if ( /*<>*/ caml_call2 - (cmp, caml_check_bound(a, ___)[1 + ___], _Z_) + (cmp, + /*<>*/ caml_check_bound(a, ___)[1 + ___], + _Z_) < 0) - x[1] = i31 + 2 | 0; - return x[1]; + /*<>*/ x[1] = i31 + 2 | 0; + /*<>*/ return x[1]; } - if((i31 + 1 | 0) < l){ - /*<>*/ var + /*<>*/ if((i31 + 1 | 0) < l){ + var _$_ = i31 + 1 | 0, - /*<>*/ _aa_ = caml_check_bound(a, _$_)[1 + _$_]; - /*<>*/ if + _aa_ = /*<>*/ caml_check_bound(a, _$_)[1 + _$_]; + /*<>*/ if (0 > /*<>*/ caml_call2 - (cmp, caml_check_bound(a, i31)[1 + i31], _aa_)) + (cmp, + /*<>*/ caml_check_bound(a, i31)[1 + i31], + _aa_)) /*<>*/ return i31 + 1 | 0; } - if(i31 < l) /*<>*/ return i31; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(i31 < l) /*<>*/ return i31; + /*<>*/ throw caml_maybe_attach_backtrace ([0, Bottom, i], 1); /*<>*/ } - var l = a.length - 1, _Q_ = ((l + 1 | 0) / 3 | 0) - 1 | 0; + var + l = /*<>*/ a.length - 1, + _Q_ = /*<>*/ ((l + 1 | 0) / 3 | 0) - 1 | 0; if(_Q_ >= 0){ var i$6 = _Q_; for(;;){ - /*<>*/ /*<>*/ var - e$1 = caml_check_bound(a, i$6)[1 + i$6]; + var e$1 = /*<>*/ caml_check_bound(a, i$6)[1 + i$6]; /*<>*/ try{ - var i = i$6; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - j = maxson(l, i); - /*<>*/ if + var i = /*<>*/ i$6; + for(;;){ + var j = /*<>*/ maxson(l, i); + /*<>*/ if (0 >= /*<>*/ caml_call2 - (cmp, caml_check_bound(a, j)[1 + j], e$1)) + (cmp, /*<>*/ caml_check_bound(a, j)[1 + j], e$1)) break; - /*<>*/ /*<>*/ var - _N_ = caml_check_bound(a, j)[1 + j]; + var _N_ = /*<>*/ caml_check_bound(a, j)[1 + j]; /*<>*/ caml_check_bound(a, i)[1 + i] = _N_; - i = j; + /*<>*/ i = j; } /*<>*/ caml_check_bound(a, i)[1 + i] = e$1; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); if(exn[1] !== Bottom) throw caml_maybe_attach_backtrace(exn, 0); var i$0 = exn[2]; /*<>*/ caml_check_bound(a, i$0)[1 + i$0] = e$1; } - /*<>*/ /*<>*/ var _V_ = i$6 - 1 | 0; + var _V_ = /*<>*/ i$6 - 1 | 0; if(0 === i$6) break; i$6 = _V_; } } - /*<>*/ /*<>*/ var _R_ = l - 1 | 0; + var _R_ = /*<>*/ l - 1 | 0; if(_R_ >= 2){ var i$4 = _R_; for(;;){ - /*<>*/ /*<>*/ var - e$0 = caml_check_bound(a, i$4)[1 + i$4]; - /*<>*/ a[1 + i$4] = caml_check_bound(a, 0)[1]; - var i$5 = 0; - /*<>*/ try{ - var i$1 = i$5; - /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ j$0 = maxson(i$4, i$1), - /*<>*/ _O_ = caml_check_bound(a, j$0)[1 + j$0]; + var e$0 = /*<>*/ caml_check_bound(a, i$4)[1 + i$4]; + /*<>*/ a[1 + i$4] = caml_check_bound(a, 0)[1]; + var i$5 = /*<>*/ 0; + try{ + var i$1 = /*<>*/ i$5; + for(;;){ + var + j$0 = /*<>*/ maxson(i$4, i$1), + _O_ = /*<>*/ caml_check_bound(a, j$0)[1 + j$0]; /*<>*/ caml_check_bound(a, i$1)[1 + i$1] = _O_; - i$1 = j$0; + /*<>*/ i$1 = j$0; } } catch(exn){ - var exn$0 = caml_wrap_exception(exn); + var exn$0 = /*<>*/ caml_wrap_exception(exn); if(exn$0[1] !== Bottom) throw caml_maybe_attach_backtrace(exn$0, 0); var i$2 = exn$0[2]; a: { b: { - var i$3 = i$2; - /*<>*/ for(;;){ - var father = (i$3 - 1 | 0) / 3 | 0; - if(i$3 === father) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - ([0, Assert_failure, _b_], 1); - /*<>*/ if + var i$3 = /*<>*/ i$2; + for(;;){ + var father = /*<>*/ (i$3 - 1 | 0) / 3 | 0; + /*<>*/ if(i$3 === father) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + /*<>*/ if (0 <= /*<>*/ caml_call2 - (cmp, caml_check_bound(a, father)[1 + father], e$0)) + (cmp, + /*<>*/ caml_check_bound(a, father) + [1 + father], + e$0)) break; - /*<>*/ /*<>*/ var - _P_ = caml_check_bound(a, father)[1 + father]; + var + _P_ = + /*<>*/ caml_check_bound(a, father)[1 + father]; /*<>*/ caml_check_bound(a, i$3)[1 + i$3] = _P_; - if(0 >= father) break b; - i$3 = father; + /*<>*/ if(0 >= father) break b; + /*<>*/ i$3 = father; } /*<>*/ caml_check_bound(a, i$3)[1 + i$3] = e$0; break a; } /*<>*/ caml_check_bound(a, 0)[1] = e$0; } - /*<>*/ /*<>*/ var _U_ = i$4 - 1 | 0; + var _U_ = /*<>*/ i$4 - 1 | 0; if(2 === i$4) break; i$4 = _U_; } } } - var _S_ = 1 < l ? 1 : 0; + var _S_ = /*<>*/ 1 < l ? 1 : 0; if(_S_){ - /*<>*/ /*<>*/ var - e = caml_check_bound(a, 1)[2]; - /*<>*/ a[2] = caml_check_bound(a, 0)[1]; + var e = /*<>*/ caml_check_bound(a, 1)[2]; + /*<>*/ a[2] = caml_check_bound(a, 0)[1]; /*<>*/ a[1] = e; - var _T_ = 0; + var _T_ = /*<>*/ 0; } else - var _T_ = _S_; - /*<>*/ return _T_; + var _T_ = /*<>*/ _S_; + return _T_; /*<>*/ } function stable_sort(cmp, a){ function merge(src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs){ - /*<>*/ var - src1r = src1ofs + src1len | 0, + var + src1r = /*<>*/ src1ofs + src1len | 0, src2r = src2ofs + src2len | 0, - /*<>*/ s2$1 = - caml_check_bound(src2, src2ofs)[1 + src2ofs], - /*<>*/ s1$1 = - caml_check_bound(a, src1ofs)[1 + src1ofs], - i1 = src1ofs, + s2$1 = + /*<>*/ caml_check_bound(src2, src2ofs)[1 + src2ofs], + s1$1 = + /*<>*/ caml_check_bound(a, src1ofs)[1 + src1ofs], + i1 = /*<>*/ src1ofs, s1 = s1$1, i2 = src2ofs, s2 = s2$1, d = dstofs; - /*<>*/ for(;;) - /*<>*/ if - (0 < /*<>*/ caml_call2(cmp, s1, s2)){ + for(;;) + /*<>*/ if(0 < caml_call2(cmp, s1, s2)){ /*<>*/ caml_check_bound(dst, d)[1 + d] = s2; - /*<>*/ /*<>*/ var - i2$0 = i2 + 1 | 0; - if(i2$0 >= src2r) return blit(a, i1, dst, d + 1 | 0, src1r - i1 | 0); - /*<>*/ var - /*<>*/ d$0 = d + 1 | 0, - /*<>*/ s2$0 = caml_check_bound(src2, i2$0)[1 + i2$0]; - i2 = i2$0; + var i2$0 = /*<>*/ i2 + 1 | 0; + /*<>*/ if(i2$0 >= src2r) + /*<>*/ return blit + (a, i1, dst, d + 1 | 0, src1r - i1 | 0) /*<>*/ ; + var + d$0 = /*<>*/ d + 1 | 0, + s2$0 = /*<>*/ caml_check_bound(src2, i2$0)[1 + i2$0]; + /*<>*/ i2 = i2$0; s2 = s2$0; d = d$0; } else{ /*<>*/ caml_check_bound(dst, d)[1 + d] = s1; - /*<>*/ /*<>*/ var - i1$0 = i1 + 1 | 0; - if(i1$0 >= src1r) - return blit(src2, i2, dst, d + 1 | 0, src2r - i2 | 0); - /*<>*/ var - /*<>*/ d$1 = d + 1 | 0, - /*<>*/ s1$0 = caml_check_bound(a, i1$0)[1 + i1$0]; - i1 = i1$0; + var i1$0 = /*<>*/ i1 + 1 | 0; + /*<>*/ if(i1$0 >= src1r) + /*<>*/ return blit + (src2, i2, dst, d + 1 | 0, src2r - i2 | 0) /*<>*/ ; + var + d$1 = /*<>*/ d + 1 | 0, + s1$0 = /*<>*/ caml_check_bound(a, i1$0)[1 + i1$0]; + /*<>*/ i1 = i1$0; s1 = s1$0; d = d$1; } /*<>*/ } function isortto(srcofs, dst, dstofs, len){ - /*<>*/ var - _F_ = len - 1 | 0, - /*<>*/ _E_ = 0; + var _F_ = /*<>*/ len - 1 | 0, _E_ = 0; if(_F_ >= 0){ var i = _E_; for(;;){ - /*<>*/ var - _G_ = srcofs + i | 0, - /*<>*/ e = caml_check_bound(a, _G_)[1 + _G_], - /*<>*/ j = [0, (dstofs + i | 0) - 1 | 0]; - for(;;){ + var + _G_ = /*<>*/ srcofs + i | 0, + e = /*<>*/ caml_check_bound(a, _G_)[1 + _G_], + j = /*<>*/ [0, (dstofs + i | 0) - 1 | 0]; + /*<>*/ for(;;){ if(dstofs > j[1]) break; var _H_ = j[1]; - /*<>*/ if + /*<>*/ if (0 >= /*<>*/ caml_call2 - (cmp, caml_check_bound(dst, _H_)[1 + _H_], e)) + (cmp, + /*<>*/ caml_check_bound(dst, _H_)[1 + _H_], + e)) break; - /*<>*/ var - _I_ = j[1], - /*<>*/ _J_ = caml_check_bound(dst, _I_)[1 + _I_], - _K_ = j[1] + 1 | 0; + var + _I_ = /*<>*/ j[1], + _J_ = /*<>*/ caml_check_bound(dst, _I_)[1 + _I_], + _K_ = /*<>*/ j[1] + 1 | 0; /*<>*/ caml_check_bound(dst, _K_)[1 + _K_] = _J_; - j[1]--; + /*<>*/ j[1]--; } - var _L_ = j[1] + 1 | 0; - /*<>*/ caml_check_bound(dst, _L_)[1 + _L_] = e; - /*<>*/ /*<>*/ var _M_ = i + 1 | 0; + var _L_ = /*<>*/ j[1] + 1 | 0; + caml_check_bound(dst, _L_)[1 + _L_] = e; + var _M_ = /*<>*/ i + 1 | 0; if(_F_ === i) break; i = _M_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function sortto(srcofs, dst, dstofs, len){ /*<>*/ if(len <= 5) - /*<>*/ return isortto(srcofs, dst, dstofs, len); - var l1 = len / 2 | 0, l2 = len - l1 | 0; + /*<>*/ return isortto(srcofs, dst, dstofs, len) /*<>*/ ; + var + l1 = /*<>*/ len / 2 | 0, + l2 = /*<>*/ len - l1 | 0; /*<>*/ sortto(srcofs + l1 | 0, dst, dstofs + l1 | 0, l2); /*<>*/ sortto(srcofs, a, srcofs + l2 | 0, l1); - /*<>*/ return merge - (srcofs + l2 | 0, l1, dst, dstofs + l1 | 0, l2, dst, dstofs); - /*<>*/ } - var l = a.length - 1; - if(l <= 5) /*<>*/ return isortto(0, a, 0, l); - /*<>*/ var - l1 = l / 2 | 0, - l2 = l - l1 | 0, - /*<>*/ t = - /*<>*/ caml_floatarray_create(l2); + /*<>*/ return merge + (srcofs + l2 | 0, l1, dst, dstofs + l1 | 0, l2, dst, dstofs) /*<>*/ ; + } + var l = /*<>*/ a.length - 1; + /*<>*/ if(l <= 5) + /*<>*/ return isortto(0, a, 0, l) /*<>*/ ; + var + l1 = /*<>*/ l / 2 | 0, + l2 = /*<>*/ l - l1 | 0, + t = /*<>*/ caml_floatarray_create(l2); /*<>*/ sortto(l1, t, 0, l2); /*<>*/ sortto(0, a, l2, l1); - /*<>*/ return merge(l2, l1, t, 0, l2, a, 0); - /*<>*/ } + /*<>*/ return merge(l2, l1, t, 0, l2, a, 0) /*<>*/ ; + } function shuffle(rand, a){ - /*<>*/ var _C_ = a.length - 2 | 0; + var _C_ = /*<>*/ a.length - 2 | 0; if(_C_ >= 1){ var i = _C_; for(;;){ - /*<>*/ var - /*<>*/ j = - /*<>*/ caml_call1(rand, i + 1 | 0), - /*<>*/ v = a[1 + i]; - /*<>*/ a[1 + i] = caml_check_bound(a, j)[1 + j]; + var + j = /*<>*/ caml_call1(rand, i + 1 | 0), + v = /*<>*/ a[1 + i]; + /*<>*/ a[1 + i] = caml_check_bound(a, j)[1 + j]; /*<>*/ a[1 + j] = v; - var _D_ = i - 1 | 0; + var _D_ = /*<>*/ i - 1 | 0; if(1 === i) break; i = _D_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function to_seq(a){ function aux(i, param){ /*<>*/ if(i >= a.length - 1) /*<>*/ return 0; - /*<>*/ var - /*<>*/ x = a[1 + i], - /*<>*/ _A_ = i + 1 | 0; - /*<>*/ return [0, + var + x = /*<>*/ a[1 + i], + _A_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, x, - function(_B_){ /*<>*/ return aux(_A_, _B_);}]; + function(_B_){ /*<>*/ return aux(_A_, _B_);}] /*<>*/ ; /*<>*/ } - /*<>*/ var _y_ = 0; - /*<>*/ return function(_z_){ - /*<>*/ return aux(_y_, _z_);}; + var _y_ = /*<>*/ 0; + return function(_z_){ + /*<>*/ return aux(_y_, _z_);} /*<>*/ ; /*<>*/ } function to_seqi(a){ function aux(i, param){ /*<>*/ if(i >= a.length - 1) /*<>*/ return 0; - /*<>*/ var - /*<>*/ x = a[1 + i], - /*<>*/ _w_ = i + 1 | 0; - /*<>*/ return [0, + var + x = /*<>*/ a[1 + i], + _w_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, [0, i, x], - function(_x_){ /*<>*/ return aux(_w_, _x_);}]; + function(_x_){ /*<>*/ return aux(_w_, _x_);}] /*<>*/ ; /*<>*/ } - /*<>*/ var _u_ = 0; - /*<>*/ return function(_v_){ - /*<>*/ return aux(_u_, _v_);}; + var _u_ = /*<>*/ 0; + return function(_v_){ + /*<>*/ return aux(_u_, _v_);} /*<>*/ ; /*<>*/ } function of_seq(i$2){ - /*<>*/ var - /*<>*/ l = + var + l = /*<>*/ caml_call3 (Stdlib_Seq[5], function(acc, x){ @@ -9046,37 +8851,34 @@ /*<>*/ }, 0, i$2), - /*<>*/ len = - /*<>*/ caml_call1(Stdlib_List[1], l), - /*<>*/ a = - /*<>*/ caml_floatarray_create(len), - /*<>*/ i$1 = len - 1 | 0, + len = /*<>*/ caml_call1(Stdlib_List[1], l), + a = /*<>*/ caml_floatarray_create(len), + i$1 = /*<>*/ len - 1 | 0, i = i$1, param = l; for(;;){ - if(! param) /*<>*/ return a; - var tl = param[2], hd = param[1]; + /*<>*/ if(! param) /*<>*/ return a; + var tl = /*<>*/ param[2], hd = param[1]; /*<>*/ a[1 + i] = hd; - /*<>*/ /*<>*/ var i$0 = i - 1 | 0; + var i$0 = /*<>*/ i - 1 | 0; i = i$0; param = tl; } /*<>*/ } function map_to_array(f, a){ - /*<>*/ var l = a.length - 1; + var l = /*<>*/ a.length - 1; /*<>*/ if(0 === l) /*<>*/ return [0]; - /*<>*/ var - /*<>*/ r = - /*<>*/ caml_make_vect + var + r = + /*<>*/ /*<>*/ caml_make_vect (l, /*<>*/ caml_call1(f, a[1])), - /*<>*/ _s_ = l - 1 | 0, - /*<>*/ _r_ = 1; + _s_ = /*<>*/ l - 1 | 0, + _r_ = 1; if(_s_ >= 1){ var i = _r_; for(;;){ - /*<>*/ r[1 + i] = - /*<>*/ caml_call1(f, a[1 + i]); - /*<>*/ /*<>*/ var _t_ = i + 1 | 0; + /*<>*/ r[1 + i] = caml_call1(f, a[1 + i]); + var _t_ = /*<>*/ i + 1 | 0; if(_s_ === i) break; i = _t_; } @@ -9084,18 +8886,16 @@ /*<>*/ return r; /*<>*/ } function map_from_array(f, a){ - /*<>*/ var - l = a.length - 1, - /*<>*/ r = - /*<>*/ caml_floatarray_create(l), - /*<>*/ _p_ = l - 1 | 0, - /*<>*/ _o_ = 0; + var + l = /*<>*/ a.length - 1, + r = /*<>*/ caml_floatarray_create(l), + _p_ = /*<>*/ l - 1 | 0, + _o_ = 0; if(_p_ >= 0){ var i = _o_; for(;;){ - /*<>*/ r[1 + i] = - /*<>*/ caml_call1(f, a[1 + i]); - /*<>*/ /*<>*/ var _q_ = i + 1 | 0; + /*<>*/ r[1 + i] = caml_call1(f, a[1 + i]); + var _q_ = /*<>*/ i + 1 | 0; if(_p_ === i) break; i = _q_; } @@ -9104,7 +8904,7 @@ /*<>*/ } var Stdlib_Float = - [0, + /*<>*/ [0, 0., 1., -1., @@ -9137,11 +8937,9 @@ hash, [0, function(_n_){ /*<>*/ return _n_.length - 1;}, - function(_m_, _l_){ - /*<>*/ return caml_check_bound(_m_, _l_)[1 + _l_]; - }, + function(_m_, _l_){return caml_check_bound(_m_, _l_)[1 + _l_];}, function(_k_, _j_, _i_){ - /*<>*/ caml_check_bound(_k_, _j_)[1 + _j_] = _i_; + caml_check_bound(_k_, _j_)[1 + _j_] = _i_; return 0; }, make, @@ -9185,12 +8983,10 @@ map_to_array, map_from_array], [0, - function(_h_){ /*<>*/ return _h_.length - 1;}, - function(_g_, _f_){ - /*<>*/ return caml_check_bound(_g_, _f_)[1 + _f_]; - }, + function(_h_){return _h_.length - 1;}, + function(_g_, _f_){return caml_check_bound(_g_, _f_)[1 + _f_];}, function(_e_, _d_, _c_){ - /*<>*/ caml_check_bound(_e_, _d_)[1 + _d_] = _c_; + caml_check_bound(_e_, _d_)[1 + _d_] = _c_; return 0; }, make, @@ -9233,7 +9029,8 @@ of_seq, map_to_array, map_from_array]]; - runtime.caml_register_global(25, Stdlib_Float, "Stdlib__Float"); + /*<>*/ runtime.caml_register_global + (25, Stdlib_Float, "Stdlib__Float"); return; /*<>*/ } (globalThis)); @@ -9259,114 +9056,94 @@ Assert_failure = global_data.Assert_failure, zero = 0, one = 1; - function succ(n){ - /*<>*/ return n + 1 | 0; - /*<>*/ } - function pred(n){ - /*<>*/ return n - 1 | 0; - /*<>*/ } + function succ(n){ /*<>*/ return n + 1 | 0;} + function pred(n){ /*<>*/ return n - 1 | 0;} function abs(n){ - /*<>*/ return /*<>*/ caml_greaterequal - (n, 0) - ? n - : - n | 0; - /*<>*/ } - function lognot(n){ - /*<>*/ return n ^ -1; - /*<>*/ } + /*<>*/ return caml_greaterequal(n, 0) ? n : - n | 0 /*<>*/ ; + } + function lognot(n){ /*<>*/ return n ^ -1;} var - _a_ = Stdlib_Sys[9], + _a_ = /*<>*/ Stdlib_Sys[9], _b_ = [0, "int32.ml", 69, 6], minus_one = -1, min_int = -2147483648, max_int = 2147483647; if(32 === _a_) - /*<>*/ var - /*<>*/ max_int$0 = Stdlib[19], + var + max_int$0 = /*<>*/ Stdlib[19], unsigned_to_int = - function(n){ - /*<>*/ if - ( /*<>*/ caml_greaterequal(n, 0) + /*<>*/ function(n){ + /*<>*/ if + (caml_greaterequal(n, 0) && /*<>*/ caml_lessequal(n, max_int$0)) /*<>*/ return [0, n]; /*<>*/ return 0; /*<>*/ }; else{ - if(64 !== _a_) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(64 !== _a_) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _b_], 1); var unsigned_to_int = - function(n){ + /*<>*/ function(n){ /*<>*/ return [0, n & -1]; /*<>*/ }; } function to_string(n){ - /*<>*/ return /*<>*/ runtime.caml_format_int - ("%d", n); - /*<>*/ } + /*<>*/ return runtime.caml_format_int("%d", n) /*<>*/ ; + } function of_string_opt(s){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _d_ = [0, /*<>*/ runtime.caml_int_of_string(s)]; - /*<>*/ return _d_; + var _d_ = /*<>*/ [0, runtime.caml_int_of_string(s)]; + return _d_; } catch(_e_){ - var _c_ = caml_wrap_exception(_e_); + var _c_ = /*<>*/ caml_wrap_exception(_e_); if(_c_[1] === Stdlib[7]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_c_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_c_, 0); } /*<>*/ } - var compare = caml_int_compare, equal = runtime.caml_equal; + var compare = /*<>*/ caml_int_compare, equal = runtime.caml_equal; function unsigned_compare(n, m){ - /*<>*/ var - /*<>*/ y = m + 2147483648 | 0, - /*<>*/ x = n + 2147483648 | 0; - /*<>*/ return /*<>*/ caml_int_compare - (x, y); - /*<>*/ } + var + y = /*<>*/ m + 2147483648 | 0, + x = /*<>*/ n + 2147483648 | 0; + /*<>*/ return caml_int_compare(x, y) /*<>*/ ; + } function unsigned_lt(n, m){ - /*<>*/ return /*<>*/ caml_lessthan - (n + 2147483648 | 0, m + 2147483648 | 0); - /*<>*/ } + /*<>*/ return caml_lessthan + (n + 2147483648 | 0, m + 2147483648 | 0) /*<>*/ ; + } function min(x, y){ - /*<>*/ return /*<>*/ caml_lessequal - (x, y) - ? x - : y; - /*<>*/ } + /*<>*/ return caml_lessequal(x, y) ? x : y /*<>*/ ; + } function max(x, y){ - /*<>*/ return /*<>*/ caml_greaterequal - (x, y) - ? x - : y; - /*<>*/ } + /*<>*/ return caml_greaterequal(x, y) ? x : y /*<>*/ ; + } function unsigned_div(n, d){ - /*<>*/ if( /*<>*/ caml_lessthan(d, 0)) - /*<>*/ return unsigned_lt(n, d) ? zero : one; - /*<>*/ var - /*<>*/ q = - /*<>*/ runtime.caml_div(n >>> 1 | 0, d) << 1, - /*<>*/ r = - n - /*<>*/ caml_mul(q, d) | 0; - /*<>*/ return unsigned_lt(r, d) ? q : q + 1 | 0; - /*<>*/ } + /*<>*/ if(caml_lessthan(d, 0)) + /*<>*/ return unsigned_lt(n, d) ? zero : one /*<>*/ ; + var + q = /*<>*/ runtime.caml_div(n >>> 1 | 0, d) << 1, + r = /*<>*/ n - caml_mul(q, d) | 0; + /*<>*/ return unsigned_lt(r, d) ? q : q + 1 | 0 /*<>*/ ; + } function unsigned_rem(n, d){ - /*<>*/ return n - - /*<>*/ caml_mul(unsigned_div(n, d), d) - | 0; - /*<>*/ } + /*<>*/ return n + - + /*<>*/ caml_mul + ( /*<>*/ unsigned_div(n, d), d) + | 0 /*<>*/ ; + } function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, seed, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, seed, x) /*<>*/ ; + } function hash(x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, 0, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, 0, x) /*<>*/ ; + } var Stdlib_Int32 = - [0, + /*<>*/ [0, zero, one, minus_one, @@ -9390,7 +9167,7 @@ hash]; runtime.caml_register_global(15, Stdlib_Int32, "Stdlib__Int32"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Int64 @@ -9422,114 +9199,98 @@ _c_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), _d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535); function succ(n){ - /*<>*/ return /*<>*/ caml_int64_add - (n, _a_); - /*<>*/ } + /*<>*/ return caml_int64_add(n, _a_) /*<>*/ ; + } function pred(n){ - /*<>*/ return /*<>*/ caml_int64_sub - (n, _b_); - /*<>*/ } + /*<>*/ return caml_int64_sub(n, _b_) /*<>*/ ; + } function abs(n){ - /*<>*/ return /*<>*/ caml_greaterequal - (n, _c_) + /*<>*/ return caml_greaterequal(n, _c_) ? n - : /*<>*/ runtime.caml_int64_neg(n); - /*<>*/ } + : /*<>*/ runtime.caml_int64_neg(n) /*<>*/ ; + } function lognot(n){ - /*<>*/ return /*<>*/ runtime.caml_int64_xor - (n, _d_); - /*<>*/ } - /*<>*/ var - /*<>*/ max_int$0 = + /*<>*/ return runtime.caml_int64_xor(n, _d_) /*<>*/ ; + } + var + max_int$0 = /*<>*/ runtime.caml_int64_of_int32(Stdlib[19]), - _e_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0); - /*<>*/ function unsigned_to_int(n){ - /*<>*/ if - ( /*<>*/ caml_greaterequal(n, _e_) + _e_ = /*<>*/ runtime.caml_int64_create_lo_mi_hi(0, 0, 0); + function unsigned_to_int(n){ + /*<>*/ if + (caml_greaterequal(n, _e_) && /*<>*/ caml_lessequal(n, max_int$0)) /*<>*/ return [0, runtime.caml_int64_to_int32(n)]; /*<>*/ return 0; /*<>*/ } function to_string(n){ - /*<>*/ return /*<>*/ runtime.caml_int64_format - ("%d", n); - /*<>*/ } + /*<>*/ return runtime.caml_int64_format("%d", n) /*<>*/ ; + } function of_string_opt(s){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _g_ = [0, /*<>*/ runtime.caml_int64_of_string(s)]; - /*<>*/ return _g_; + var _g_ = /*<>*/ [0, runtime.caml_int64_of_string(s)]; + return _g_; } catch(_h_){ - var _f_ = caml_wrap_exception(_h_); + var _f_ = /*<>*/ caml_wrap_exception(_h_); if(_f_[1] === Stdlib[7]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_f_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_f_, 0); } /*<>*/ } function compare(x, y){ - /*<>*/ return /*<>*/ caml_int64_compare - (x, y); - /*<>*/ } - var equal = runtime.caml_equal; + /*<>*/ return caml_int64_compare(x, y) /*<>*/ ; + } + var equal = /*<>*/ runtime.caml_equal; function unsigned_compare(n, m){ - /*<>*/ var - /*<>*/ y = - /*<>*/ caml_int64_sub(m, min_int), - /*<>*/ x = - /*<>*/ caml_int64_sub(n, min_int); - /*<>*/ return /*<>*/ caml_int64_compare - (x, y); - /*<>*/ } + var + y = /*<>*/ caml_int64_sub(m, min_int), + x = /*<>*/ caml_int64_sub(n, min_int); + /*<>*/ return caml_int64_compare(x, y) /*<>*/ ; + } function unsigned_lt(n, m){ - /*<>*/ return /*<>*/ caml_lessthan - ( /*<>*/ caml_int64_sub(n, min_int), - /*<>*/ caml_int64_sub(m, min_int)); - /*<>*/ } + /*<>*/ return caml_lessthan + (caml_int64_sub(n, min_int), + /*<>*/ caml_int64_sub(m, min_int)) /*<>*/ ; + } function min(x, y){ - /*<>*/ return /*<>*/ caml_lessequal - (x, y) - ? x - : y; - /*<>*/ } + /*<>*/ return caml_lessequal(x, y) ? x : y /*<>*/ ; + } function max(x, y){ - /*<>*/ return /*<>*/ caml_greaterequal - (x, y) - ? x - : y; - /*<>*/ } + /*<>*/ return caml_greaterequal(x, y) ? x : y /*<>*/ ; + } function unsigned_div(n, d){ - /*<>*/ if( /*<>*/ caml_lessthan(d, zero)) - /*<>*/ return unsigned_lt(n, d) ? zero : one; - /*<>*/ var - /*<>*/ q = - /*<>*/ runtime.caml_int64_shift_left + /*<>*/ if(caml_lessthan(d, zero)) + /*<>*/ return unsigned_lt(n, d) ? zero : one /*<>*/ ; + var + q = + /*<>*/ /*<>*/ runtime.caml_int64_shift_left ( /*<>*/ runtime.caml_int64_div ( /*<>*/ runtime.caml_int64_shift_right_unsigned (n, 1), d), 1), - /*<>*/ r = - /*<>*/ caml_int64_sub + r = + /*<>*/ /*<>*/ caml_int64_sub (n, /*<>*/ caml_int64_mul(q, d)); /*<>*/ return unsigned_lt(r, d) ? q - : /*<>*/ caml_int64_add(q, _a_); - /*<>*/ } + : /*<>*/ caml_int64_add(q, _a_) /*<>*/ ; + } function unsigned_rem(n, d){ - /*<>*/ return /*<>*/ caml_int64_sub - (n, /*<>*/ caml_int64_mul(unsigned_div(n, d), d)); - /*<>*/ } + /*<>*/ return /*<>*/ caml_int64_sub + (n, + /*<>*/ caml_int64_mul + ( /*<>*/ unsigned_div(n, d), d)) /*<>*/ ; + } function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, seed, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, seed, x) /*<>*/ ; + } function hash(x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, 0, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, 0, x) /*<>*/ ; + } var Stdlib_Int64 = - [0, + /*<>*/ [0, zero, one, minus_one, @@ -9576,106 +9337,82 @@ Stdlib_Sys = global_data.Stdlib__Sys, zero = 0, one = 1; - function succ(n){ - /*<>*/ return n + 1 | 0; - /*<>*/ } - function pred(n){ - /*<>*/ return n - 1 | 0; - /*<>*/ } + function succ(n){ /*<>*/ return n + 1 | 0;} + function pred(n){ /*<>*/ return n - 1 | 0;} function abs(n){ - /*<>*/ return /*<>*/ caml_greaterequal - (n, 0) - ? n - : - n | 0; - /*<>*/ } - /*<>*/ var - size = Stdlib_Sys[9], - /*<>*/ min_int = 1 << (size - 1 | 0), - /*<>*/ max_int = min_int - 1 | 0; - function lognot(n){ - /*<>*/ return n ^ -1; - /*<>*/ } - var max_int$0 = Stdlib[19]; - /*<>*/ function unsigned_to_int(n){ - /*<>*/ if - ( /*<>*/ caml_greaterequal(n, 0) + /*<>*/ return caml_greaterequal(n, 0) ? n : - n | 0 /*<>*/ ; + } + var + size = /*<>*/ Stdlib_Sys[9], + min_int = /*<>*/ 1 << (size - 1 | 0), + max_int = /*<>*/ min_int - 1 | 0; + function lognot(n){ /*<>*/ return n ^ -1;} + var max_int$0 = /*<>*/ Stdlib[19]; + function unsigned_to_int(n){ + /*<>*/ if + (caml_greaterequal(n, 0) && /*<>*/ caml_lessequal(n, max_int$0)) /*<>*/ return [0, n]; /*<>*/ return 0; /*<>*/ } function to_string(n){ - /*<>*/ return /*<>*/ runtime.caml_format_int - ("%d", n); - /*<>*/ } + /*<>*/ return runtime.caml_format_int("%d", n) /*<>*/ ; + } function of_string_opt(s){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _b_ = [0, /*<>*/ runtime.caml_int_of_string(s)]; - /*<>*/ return _b_; + var _b_ = /*<>*/ [0, runtime.caml_int_of_string(s)]; + return _b_; } catch(_c_){ - var _a_ = caml_wrap_exception(_c_); + var _a_ = /*<>*/ caml_wrap_exception(_c_); if(_a_[1] === Stdlib[7]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_a_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_a_, 0); } /*<>*/ } - var compare = caml_int_compare; + var compare = /*<>*/ caml_int_compare; function equal(x, y){ - /*<>*/ return 0 - === /*<>*/ caml_int_compare(x, y) - ? 1 - : 0; + /*<>*/ return 0 === caml_int_compare(x, y) ? 1 : 0 /*<>*/ ; /*<>*/ } function unsigned_compare(n, m){ - /*<>*/ var - /*<>*/ y = m - min_int | 0, - /*<>*/ x = n - min_int | 0; - /*<>*/ return /*<>*/ caml_int_compare - (x, y); - /*<>*/ } + var + y = /*<>*/ m - min_int | 0, + x = /*<>*/ n - min_int | 0; + /*<>*/ return caml_int_compare(x, y) /*<>*/ ; + } function unsigned_lt(n, m){ - /*<>*/ return /*<>*/ caml_lessthan - (n - min_int | 0, m - min_int | 0); - /*<>*/ } + /*<>*/ return caml_lessthan + (n - min_int | 0, m - min_int | 0) /*<>*/ ; + } function min(x, y){ - /*<>*/ return /*<>*/ caml_lessequal - (x, y) - ? x - : y; - /*<>*/ } + /*<>*/ return caml_lessequal(x, y) ? x : y /*<>*/ ; + } function max(x, y){ - /*<>*/ return /*<>*/ caml_greaterequal - (x, y) - ? x - : y; - /*<>*/ } + /*<>*/ return caml_greaterequal(x, y) ? x : y /*<>*/ ; + } function unsigned_div(n, d){ - /*<>*/ if - ( /*<>*/ caml_lessthan(d, 0)) - /*<>*/ return unsigned_lt(n, d) ? zero : one; - /*<>*/ var - /*<>*/ q = - /*<>*/ runtime.caml_div(n >>> 1 | 0, d) << 1, - /*<>*/ r = - n - /*<>*/ caml_mul(q, d) | 0; - /*<>*/ return unsigned_lt(r, d) ? q : q + 1 | 0; - /*<>*/ } + /*<>*/ if(caml_lessthan(d, 0)) + /*<>*/ return unsigned_lt(n, d) ? zero : one /*<>*/ ; + var + q = /*<>*/ runtime.caml_div(n >>> 1 | 0, d) << 1, + r = /*<>*/ n - caml_mul(q, d) | 0; + /*<>*/ return unsigned_lt(r, d) ? q : q + 1 | 0 /*<>*/ ; + } function unsigned_rem(n, d){ - /*<>*/ return n - - /*<>*/ caml_mul(unsigned_div(n, d), d) - | 0; - /*<>*/ } + /*<>*/ return n + - + /*<>*/ caml_mul + ( /*<>*/ unsigned_div(n, d), d) + | 0 /*<>*/ ; + } function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, seed, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, seed, x) /*<>*/ ; + } function hash(x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, 0, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, 0, x) /*<>*/ ; + } var Stdlib_Nativeint = - [0, + /*<>*/ [0, zero, one, -1, @@ -9715,27 +9452,27 @@ caml_check_bound = runtime.caml_check_bound, caml_create_bytes = runtime.caml_create_bytes, caml_ml_bytes_length = runtime.caml_ml_bytes_length; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); @@ -9750,50 +9487,52 @@ Stdlib_Int = global_data.Stdlib__Int, cst_Lexing_lex_refill_cannot_g = "Lexing.lex_refill: cannot grow buffer"; function engine(tbl, state, buf){ - /*<>*/ var - /*<>*/ result = + var + result = /*<>*/ runtime.caml_lex_engine(tbl, state, buf), - _n_ = 0 <= result ? 1 : 0, + _n_ = /*<>*/ 0 <= result ? 1 : 0, _o_ = _n_ ? buf[12] !== dummy_pos ? 1 : 0 : _n_; if(_o_){ - buf[11] = buf[12]; - var _p_ = buf[12]; + /*<>*/ buf[11] = buf[12]; + var _p_ = /*<>*/ buf[12]; buf[12] = [0, _p_[1], _p_[2], _p_[3], buf[4] + buf[6] | 0]; } /*<>*/ return result; /*<>*/ } function new_engine(tbl, state, buf){ - /*<>*/ var - /*<>*/ result = + var + result = /*<>*/ runtime.caml_new_lex_engine(tbl, state, buf), - _k_ = 0 <= result ? 1 : 0, + _k_ = /*<>*/ 0 <= result ? 1 : 0, _l_ = _k_ ? buf[12] !== dummy_pos ? 1 : 0 : _k_; if(_l_){ - buf[11] = buf[12]; - var _m_ = buf[12]; + /*<>*/ buf[11] = buf[12]; + var _m_ = /*<>*/ buf[12]; buf[12] = [0, _m_[1], _m_[2], _m_[3], buf[4] + buf[6] | 0]; } /*<>*/ return result; /*<>*/ } function from_function(opt, read_fun){ - /*<>*/ var - with_positions = opt ? opt[1] : 1, - /*<>*/ _f_ = with_positions ? zero_pos : dummy_pos, + var + with_positions = /*<>*/ opt ? opt[1] : 1, + _f_ = /*<>*/ with_positions ? zero_pos : dummy_pos, _g_ = with_positions ? zero_pos : dummy_pos, - /*<>*/ aux_buffer = - /*<>*/ caml_create_bytes(512); - /*<>*/ return [0, + aux_buffer = /*<>*/ caml_create_bytes(512); + /*<>*/ return [0, function(lexbuf){ - /*<>*/ var - /*<>*/ read = - /*<>*/ caml_call2 - (read_fun, aux_buffer, caml_ml_bytes_length(aux_buffer)), - /*<>*/ n = 0 < read ? read : (lexbuf[9] = 1, 0); - if(caml_ml_bytes_length(lexbuf[2]) < (lexbuf[3] + n | 0)){ - if + var + read = + /*<>*/ /*<>*/ caml_call2 + (read_fun, + aux_buffer, + /*<>*/ caml_ml_bytes_length(aux_buffer)), + n = /*<>*/ 0 < read ? read : (lexbuf[9] = 1, 0); + /*<>*/ if + (caml_ml_bytes_length(lexbuf[2]) < (lexbuf[3] + n | 0)){ + /*<>*/ if (((lexbuf[3] - lexbuf[5] | 0) + n | 0) <= caml_ml_bytes_length(lexbuf[2])) - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_Bytes[11], lexbuf[2], lexbuf[5], @@ -9801,50 +9540,55 @@ 0, lexbuf[3] - lexbuf[5] | 0); else{ - /*<>*/ /*<>*/ var + var newlen = - /*<>*/ caml_call2 + /*<>*/ /*<>*/ caml_call2 (Stdlib_Int[10], - 2 * caml_ml_bytes_length(lexbuf[2]) | 0, + 2 + * /*<>*/ caml_ml_bytes_length(lexbuf[2]) + | 0, Stdlib_Sys[12]); - if(newlen < ((lexbuf[3] - lexbuf[5] | 0) + n | 0)) - /*<>*/ /*<>*/ caml_call1 + /*<>*/ if + (newlen < ((lexbuf[3] - lexbuf[5] | 0) + n | 0)) + /*<>*/ caml_call1 (Stdlib[2], cst_Lexing_lex_refill_cannot_g); - /*<>*/ /*<>*/ var + var newbuf = /*<>*/ caml_create_bytes(newlen); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_Bytes[11], lexbuf[2], lexbuf[5], newbuf, 0, lexbuf[3] - lexbuf[5] | 0); - lexbuf[2] = newbuf; + /*<>*/ lexbuf[2] = newbuf; } - var s = lexbuf[5]; - lexbuf[4] = lexbuf[4] + s | 0; - lexbuf[6] = lexbuf[6] - s | 0; - lexbuf[5] = 0; - lexbuf[7] = lexbuf[7] - s | 0; - lexbuf[3] = lexbuf[3] - s | 0; - var t = lexbuf[10], _i_ = t.length - 2 | 0, _h_ = 0; + var s = /*<>*/ lexbuf[5]; + /*<>*/ lexbuf[4] = lexbuf[4] + s | 0; + /*<>*/ lexbuf[6] = lexbuf[6] - s | 0; + /*<>*/ lexbuf[5] = 0; + /*<>*/ lexbuf[7] = lexbuf[7] - s | 0; + /*<>*/ lexbuf[3] = lexbuf[3] - s | 0; + var + t = /*<>*/ lexbuf[10], + _i_ = /*<>*/ t.length - 2 | 0, + _h_ = 0; if(_i_ >= 0){ var i = _h_; for(;;){ - /*<>*/ /*<>*/ var - v = caml_check_bound(t, i)[1 + i]; - if(0 <= v) + var + v = /*<>*/ caml_check_bound(t, i)[1 + i]; + /*<>*/ if(0 <= v) /*<>*/ caml_check_bound(t, i)[1 + i] = v - s | 0; - /*<>*/ /*<>*/ var - _j_ = i + 1 | 0; + var _j_ = /*<>*/ i + 1 | 0; if(_i_ === i) break; i = _j_; } } } - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_Bytes[11], aux_buffer, 0, lexbuf[2], lexbuf[3], n); - lexbuf[3] = lexbuf[3] + n | 0; + /*<>*/ lexbuf[3] = lexbuf[3] + n | 0; return 0; }, /*<>*/ caml_create_bytes(1024), @@ -9857,28 +9601,28 @@ 0, [0], _g_, - _f_]; - } + _f_] /*<>*/ ; + /*<>*/ } function from_channel(with_positions, ic){ /*<>*/ return from_function (with_positions, function(buf, n){ - /*<>*/ return /*<>*/ caml_call4 - (Stdlib[84], ic, buf, 0, n); - /*<>*/ }); - /*<>*/ } + /*<>*/ return caml_call4 + (Stdlib[84], ic, buf, 0, n) /*<>*/ ; + }) /*<>*/ ; + } function from_string(opt, s){ - /*<>*/ var - with_positions = opt ? opt[1] : 1, - /*<>*/ _d_ = with_positions ? zero_pos : dummy_pos, + var + with_positions = /*<>*/ opt ? opt[1] : 1, + _d_ = /*<>*/ with_positions ? zero_pos : dummy_pos, _e_ = with_positions ? zero_pos : dummy_pos; - /*<>*/ return [0, + /*<>*/ return [0, function(lexbuf){ /*<>*/ lexbuf[9] = 1; return 0; /*<>*/ }, /*<>*/ caml_call1(Stdlib_Bytes[5], s), - runtime.caml_ml_string_length(s), + /*<>*/ runtime.caml_ml_string_length(s), 0, 0, 0, @@ -9887,16 +9631,16 @@ 1, [0], _e_, - _d_]; - } + _d_] /*<>*/ ; + /*<>*/ } function set_position(lexbuf, position){ /*<>*/ lexbuf[12] = [0, lexbuf[12][1], position[2], position[3], position[4]]; - lexbuf[4] = position[4]; + /*<>*/ lexbuf[4] = position[4]; return 0; /*<>*/ } function set_filename(lexbuf, fname){ - /*<>*/ var _c_ = lexbuf[12]; + var _c_ = /*<>*/ lexbuf[12]; lexbuf[12] = [0, fname, _c_[2], _c_[3], _c_[4]]; return 0; /*<>*/ } @@ -9904,35 +9648,33 @@ /*<>*/ return lexbuf[12] !== dummy_pos ? 1 : 0; /*<>*/ } function lexeme(lexbuf){ - /*<>*/ var len = lexbuf[6] - lexbuf[5] | 0; - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len); - /*<>*/ } + var len = /*<>*/ lexbuf[6] - lexbuf[5] | 0; + /*<>*/ return caml_call3 + (Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len) /*<>*/ ; + } function sub_lexeme(lexbuf, i1, i2){ - /*<>*/ var len = i2 - i1 | 0; - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Bytes[8], lexbuf[2], i1, len); - /*<>*/ } + var len = /*<>*/ i2 - i1 | 0; + /*<>*/ return caml_call3 + (Stdlib_Bytes[8], lexbuf[2], i1, len) /*<>*/ ; + } function sub_lexeme_opt(lexbuf, i1, i2){ /*<>*/ if(0 > i1) /*<>*/ return 0; - var len = i2 - i1 | 0; - /*<>*/ return [0, - /*<>*/ caml_call3 - (Stdlib_Bytes[8], lexbuf[2], i1, len)]; + var len = /*<>*/ i2 - i1 | 0; + /*<>*/ return [0, + caml_call3(Stdlib_Bytes[8], lexbuf[2], i1, len)] /*<>*/ ; /*<>*/ } function sub_lexeme_char(lexbuf, i){ - /*<>*/ return /*<>*/ caml_bytes_get - (lexbuf[2], i); - /*<>*/ } + /*<>*/ return caml_bytes_get(lexbuf[2], i) /*<>*/ ; + } function sub_lexeme_char_opt(lexbuf, i){ /*<>*/ return 0 <= i ? [0, /*<>*/ caml_bytes_get(lexbuf[2], i)] - : 0; - /*<>*/ } + : 0 /*<>*/ ; + } function lexeme_char(lexbuf, i){ - /*<>*/ return /*<>*/ caml_bytes_get - (lexbuf[2], lexbuf[5] + i | 0); - /*<>*/ } + /*<>*/ return caml_bytes_get + (lexbuf[2], lexbuf[5] + i | 0) /*<>*/ ; + } function lexeme_start(lexbuf){ /*<>*/ return lexbuf[11][4]; /*<>*/ } @@ -9946,9 +9688,9 @@ /*<>*/ return lexbuf[12]; /*<>*/ } function new_line(lexbuf){ - /*<>*/ var - lcp = lexbuf[12], - _a_ = lcp !== dummy_pos ? 1 : 0, + var + lcp = /*<>*/ lexbuf[12], + _a_ = /*<>*/ lcp !== dummy_pos ? 1 : 0, _b_ = _a_ ? (lexbuf[12] = [0, lcp[1], lcp[2] + 1 | 0, lcp[4], lcp[4]], 0) @@ -9957,16 +9699,17 @@ /*<>*/ } function flush_input(lb){ /*<>*/ lb[6] = 0; - lb[4] = 0; - var lcp = lb[12]; - if(lcp !== dummy_pos) - lb[12] = [0, lcp[1], zero_pos[2], zero_pos[3], zero_pos[4]]; - lb[3] = 0; + /*<>*/ lb[4] = 0; + var lcp = /*<>*/ lb[12]; + /*<>*/ if(lcp !== dummy_pos) + /*<>*/ lb[12] = + [0, lcp[1], zero_pos[2], zero_pos[3], zero_pos[4]]; + /*<>*/ lb[3] = 0; return 0; /*<>*/ } var Stdlib_Lexing = - [0, + /*<>*/ [0, dummy_pos, from_channel, from_string, @@ -9990,7 +9733,7 @@ new_engine]; runtime.caml_register_global(7, Stdlib_Lexing, "Stdlib__Lexing"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Parsing @@ -10005,33 +9748,31 @@ caml_make_vect = runtime.caml_make_vect, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); } - /*<>*/ var + var global_data = runtime.caml_get_global_data(), Stdlib_Obj = global_data.Stdlib__Obj, Stdlib_Array = global_data.Stdlib__Array, Stdlib_Lexing = global_data.Stdlib__Lexing, - /*<>*/ YYexit = - [248, "Stdlib.Parsing.YYexit", caml_fresh_oo_id(0)], - /*<>*/ Parse_error = - [248, "Stdlib.Parsing.Parse_error", caml_fresh_oo_id(0)], - /*<>*/ env = - [0, - /*<>*/ caml_make_vect(100, 0), + YYexit = [248, "Stdlib.Parsing.YYexit", caml_fresh_oo_id(0)], + Parse_error = [248, "Stdlib.Parsing.Parse_error", caml_fresh_oo_id(0)], + env = + /*<>*/ [0, + caml_make_vect(100, 0), /*<>*/ caml_make_vect(100, 0), /*<>*/ caml_make_vect(100, Stdlib_Lexing[1]), /*<>*/ caml_make_vect(100, Stdlib_Lexing[1]), @@ -10047,199 +9788,194 @@ 0, 0, 0], - dummy = 0; + dummy = /*<>*/ 0; function grow_stacks(param){ - /*<>*/ var - oldsize = env[5], - newsize = oldsize * 2 | 0, - /*<>*/ new_s = - /*<>*/ caml_make_vect(newsize, 0), - /*<>*/ new_v = - /*<>*/ caml_make_vect(newsize, 0), - /*<>*/ new_start = + var + oldsize = /*<>*/ env[5], + newsize = /*<>*/ oldsize * 2 | 0, + new_s = /*<>*/ caml_make_vect(newsize, 0), + new_v = /*<>*/ caml_make_vect(newsize, 0), + new_start = /*<>*/ caml_make_vect(newsize, Stdlib_Lexing[1]), - /*<>*/ new_end = + new_end = /*<>*/ caml_make_vect(newsize, Stdlib_Lexing[1]); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_Array[9], env[1], 0, new_s, 0, oldsize); - env[1] = new_s; - /*<>*/ /*<>*/ caml_call5 + /*<>*/ env[1] = new_s; + /*<>*/ caml_call5 (Stdlib_Array[9], env[2], 0, new_v, 0, oldsize); - env[2] = new_v; - /*<>*/ /*<>*/ caml_call5 + /*<>*/ env[2] = new_v; + /*<>*/ caml_call5 (Stdlib_Array[9], env[3], 0, new_start, 0, oldsize); - env[3] = new_start; - /*<>*/ /*<>*/ caml_call5 + /*<>*/ env[3] = new_start; + /*<>*/ caml_call5 (Stdlib_Array[9], env[4], 0, new_end, 0, oldsize); - env[4] = new_end; - env[5] = newsize; + /*<>*/ env[4] = new_end; + /*<>*/ env[5] = newsize; /*<>*/ } function clear_parser(param){ - /*<>*/ /*<>*/ caml_call4 + /*<>*/ caml_call4 (Stdlib_Array[8], env[2], 0, env[5], 0); - env[8] = 0; + /*<>*/ env[8] = 0; return 0; /*<>*/ } - /*<>*/ var - /*<>*/ current_lookahead_fun = - [0, + var + current_lookahead_fun = + /*<>*/ [0, function(param){ /*<>*/ return 0; /*<>*/ }], - cst_syntax_error = "syntax error"; + cst_syntax_error = /*<>*/ "syntax error"; function yyparse(tables, start, lexer, lexbuf){ - /*<>*/ var - init_asp = env[11], + var + init_asp = /*<>*/ env[11], init_sp = env[14], init_stackbase = env[6], init_state = env[15], init_curr_char = env[7], init_lval = env[8], init_errflag = env[16]; - env[6] = env[14] + 1 | 0; - env[7] = start; - env[10] = lexbuf[12]; + /*<>*/ env[6] = env[14] + 1 | 0; + /*<>*/ env[7] = start; + /*<>*/ env[10] = lexbuf[12]; /*<>*/ try{ - var cmd = 0, arg = 0; - /*<>*/ for(;;) - switch - ( /*<>*/ runtime.caml_parse_engine - (tables, env, cmd, arg)){ + var cmd = /*<>*/ 0, arg = 0; + for(;;) + /*<>*/ switch + (runtime.caml_parse_engine(tables, env, cmd, arg)){ case 0: - /*<>*/ /*<>*/ var - arg$0 = /*<>*/ caml_call1(lexer, lexbuf); - env[9] = lexbuf[11]; - env[10] = lexbuf[12]; - cmd = 1; + var arg$0 = /*<>*/ caml_call1(lexer, lexbuf); + /*<>*/ env[9] = lexbuf[11]; + /*<>*/ env[10] = lexbuf[12]; + /*<>*/ cmd = 1; arg = arg$0; break; case 1: - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Parse_error, 1); case 2: - /*<>*/ grow_stacks(0); cmd = 2; arg = 0; break; + /*<>*/ grow_stacks(0); + /*<>*/ cmd = 2; + arg = 0; + break; case 3: - /*<>*/ grow_stacks(0); cmd = 3; arg = 0; break; + /*<>*/ grow_stacks(0); + /*<>*/ cmd = 3; + arg = 0; + break; case 4: - try{ - /*<>*/ var + /*<>*/ try{ + var _i_ = env[13], - /*<>*/ _j_ = + _j_ = /*<>*/ caml_call1 (caml_check_bound(tables[1], _i_)[1 + _i_], env), - /*<>*/ _k_ = 4, + _k_ = /*<>*/ 4, value = _j_, action = _k_; } catch(_m_){ - var _h_ = caml_wrap_exception(_m_); + var _h_ = /*<>*/ caml_wrap_exception(_m_); if(_h_ !== Parse_error) throw caml_maybe_attach_backtrace(_h_, 0); - var value = 0, action = 5; + var value = /*<>*/ 0, action = 5; } - cmd = action; + /*<>*/ cmd = action; arg = value; break; default: - /*<>*/ /*<>*/ caml_call1 - (tables[14], cst_syntax_error); - cmd = 5; + /*<>*/ caml_call1(tables[14], cst_syntax_error); + /*<>*/ cmd = 5; arg = 0; } } catch(exn$0){ - /*<>*/ var - exn = caml_wrap_exception(exn$0), - /*<>*/ curr_char = env[7]; - env[11] = init_asp; - env[14] = init_sp; - env[6] = init_stackbase; - env[15] = init_state; - env[7] = init_curr_char; - env[8] = init_lval; - env[16] = init_errflag; - if(exn[1] === YYexit){ + var + exn = /*<>*/ caml_wrap_exception(exn$0), + curr_char = /*<>*/ env[7]; + /*<>*/ env[11] = init_asp; + /*<>*/ env[14] = init_sp; + /*<>*/ env[6] = init_stackbase; + /*<>*/ env[15] = init_state; + /*<>*/ env[7] = init_curr_char; + /*<>*/ env[8] = init_lval; + /*<>*/ env[16] = init_errflag; + /*<>*/ if(exn[1] === YYexit){ var v = exn[2]; /*<>*/ return v; } - current_lookahead_fun[1] = + /*<>*/ current_lookahead_fun[1] = function(tok){ - /*<>*/ if - (! /*<>*/ caml_call1(Stdlib_Obj[1], tok)) + /*<>*/ if(! caml_call1(Stdlib_Obj[1], tok)) /*<>*/ return caml_check_bound(tables[2], tok) [1 + tok] === curr_char ? 1 - : 0; - /*<>*/ /*<>*/ var - _l_ = /*<>*/ runtime.caml_obj_tag(tok); + : 0 /*<>*/ ; + var _l_ = /*<>*/ runtime.caml_obj_tag(tok); /*<>*/ return caml_check_bound(tables[3], _l_) [1 + _l_] === curr_char ? 1 - : 0; + : 0 /*<>*/ ; /*<>*/ }; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (exn, 0); + /*<>*/ throw caml_maybe_attach_backtrace(exn, 0); } /*<>*/ } function peek_val(env, n){ - /*<>*/ var _g_ = env[11] - n | 0; - /*<>*/ return caml_check_bound(env[2], _g_)[1 + _g_]; - /*<>*/ } + var _g_ = /*<>*/ env[11] - n | 0; + /*<>*/ return caml_check_bound(env[2], _g_)[1 + _g_] /*<>*/ ; + } function symbol_start_pos(param){ - /*<>*/ var i$1 = env[12], i = i$1; - /*<>*/ for(;;){ - if(0 >= i){ - var _f_ = env[11]; - /*<>*/ return caml_check_bound(env[4], _f_)[1 + _f_]; - } - /*<>*/ var - _d_ = (env[11] - i | 0) + 1 | 0, - /*<>*/ st = caml_check_bound(env[3], _d_)[1 + _d_], - _e_ = (env[11] - i | 0) + 1 | 0, - /*<>*/ en = caml_check_bound(env[4], _e_)[1 + _e_]; - /*<>*/ if - ( /*<>*/ runtime.caml_notequal(st, en)) + var i$1 = /*<>*/ env[12], i = i$1; + for(;;){ + /*<>*/ if(0 >= i){ + var _f_ = /*<>*/ env[11]; + return caml_check_bound(env[4], _f_)[1 + _f_] /*<>*/ ; + } + var + _d_ = /*<>*/ (env[11] - i | 0) + 1 | 0, + st = /*<>*/ caml_check_bound(env[3], _d_)[1 + _d_], + _e_ = /*<>*/ (env[11] - i | 0) + 1 | 0, + en = /*<>*/ caml_check_bound(env[4], _e_)[1 + _e_]; + /*<>*/ if(runtime.caml_notequal(st, en)) /*<>*/ return st; - /*<>*/ /*<>*/ var - i$0 = i - 1 | 0; + var i$0 = /*<>*/ i - 1 | 0; i = i$0; } /*<>*/ } function symbol_end_pos(param){ - /*<>*/ var _c_ = env[11]; - /*<>*/ return caml_check_bound(env[4], _c_)[1 + _c_]; - /*<>*/ } + var _c_ = /*<>*/ env[11]; + return caml_check_bound(env[4], _c_)[1 + _c_] /*<>*/ ; + } function rhs_start_pos(n){ - /*<>*/ var _b_ = env[11] - (env[12] - n | 0) | 0; - /*<>*/ return caml_check_bound(env[3], _b_)[1 + _b_]; - /*<>*/ } + var _b_ = /*<>*/ env[11] - (env[12] - n | 0) | 0; + return caml_check_bound(env[3], _b_)[1 + _b_] /*<>*/ ; + } function rhs_end_pos(n){ - /*<>*/ var _a_ = env[11] - (env[12] - n | 0) | 0; - /*<>*/ return caml_check_bound(env[4], _a_)[1 + _a_]; - /*<>*/ } + var _a_ = /*<>*/ env[11] - (env[12] - n | 0) | 0; + return caml_check_bound(env[4], _a_)[1 + _a_] /*<>*/ ; + } function symbol_start(param){ - /*<>*/ return symbol_start_pos(0)[4]; + /*<>*/ return symbol_start_pos(0)[4] /*<>*/ ; /*<>*/ } function symbol_end(param){ - /*<>*/ return symbol_end_pos(0)[4]; + /*<>*/ return symbol_end_pos(0)[4] /*<>*/ ; /*<>*/ } function rhs_start(n){ - /*<>*/ return rhs_start_pos(n)[4]; + /*<>*/ return rhs_start_pos(n)[4] /*<>*/ ; /*<>*/ } function rhs_end(n){ - /*<>*/ return rhs_end_pos(n)[4]; + /*<>*/ return rhs_end_pos(n)[4] /*<>*/ ; /*<>*/ } function is_current_lookahead(tok){ - /*<>*/ return /*<>*/ caml_call1 - (current_lookahead_fun[1], tok); - /*<>*/ } + /*<>*/ return caml_call1(current_lookahead_fun[1], tok) /*<>*/ ; + } function parse_error(param){ /*<>*/ return 0; /*<>*/ } var Stdlib_Parsing = - [0, + /*<>*/ [0, symbol_start, symbol_end, rhs_start, @@ -10270,17 +10006,17 @@ runtime = globalThis.jsoo_runtime, cst_Set_bal$3 = "Set.bal", caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); @@ -10304,101 +10040,119 @@ function(Ord){ function height(param){ /*<>*/ if(! param) /*<>*/ return 0; - var h = param[4]; + var h = /*<>*/ param[4]; /*<>*/ return h; /*<>*/ } function create(l, v, r){ - /*<>*/ if(l) var h = l[4], hl = h; else var hl = 0; - /*<>*/ if(r) var h$0 = r[4], hr = h$0; else var hr = 0; - var _Y_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - /*<>*/ return [0, l, v, r, _Y_]; + /*<>*/ if(l) + var h = l[4], hl = /*<>*/ h; + else + var hl = /*<>*/ 0; + /*<>*/ if(r) + var h$0 = r[4], hr = /*<>*/ h$0; + else + var hr = /*<>*/ 0; + var _Y_ = /*<>*/ hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, v, r, _Y_]; /*<>*/ } function bal(l, v, r){ - /*<>*/ if(l) var h = l[4], hl = h; else var hl = 0; + /*<>*/ if(l) + var h = l[4], hl = /*<>*/ h; + else + var hl = /*<>*/ 0; /*<>*/ if(r) - var h$0 = r[4], hr = h$0; + var h$0 = r[4], hr = /*<>*/ h$0; else - var hr = 0; - if((hr + 2 | 0) < hl){ - if(! l) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Set_bal$0); - /*<>*/ var - lr = l[3], + var hr = /*<>*/ 0; + /*<>*/ if((hr + 2 | 0) < hl){ + /*<>*/ if(! l) + /*<>*/ return caml_call1(Stdlib[1], cst_Set_bal$0) /*<>*/ ; + var + lr = /*<>*/ l[3], lv = l[2], ll = l[1], - /*<>*/ _T_ = height(lr); - if(_T_ <= height(ll)) - /*<>*/ return create(ll, lv, create(lr, v, r)); - if(! lr) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Set_bal); - /*<>*/ var - lrr = lr[3], + _T_ = /*<>*/ height(lr); + /*<>*/ if(_T_ <= height(ll)) + /*<>*/ return /*<>*/ create + (ll, lv, /*<>*/ create(lr, v, r)) /*<>*/ ; + /*<>*/ if(! lr) + /*<>*/ return caml_call1(Stdlib[1], cst_Set_bal) /*<>*/ ; + var + lrr = /*<>*/ lr[3], lrv = lr[2], lrl = lr[1], - /*<>*/ _U_ = create(lrr, v, r); - /*<>*/ return create(create(ll, lv, lrl), lrv, _U_); + _U_ = /*<>*/ create(lrr, v, r); + /*<>*/ return /*<>*/ create + ( /*<>*/ create(ll, lv, lrl), lrv, _U_) /*<>*/ ; } - if((hl + 2 | 0) >= hr){ - var _X_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - /*<>*/ return [0, l, v, r, _X_]; + /*<>*/ if((hl + 2 | 0) >= hr){ + var _X_ = /*<>*/ hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, v, r, _X_]; } - if(! r) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Set_bal$2); - /*<>*/ var - rr = r[3], + /*<>*/ if(! r) + /*<>*/ return caml_call1(Stdlib[1], cst_Set_bal$2) /*<>*/ ; + var + rr = /*<>*/ r[3], rv = r[2], rl = r[1], - /*<>*/ _V_ = height(rl); - if(_V_ <= height(rr)) - /*<>*/ return create(create(l, v, rl), rv, rr); - if(! rl) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Set_bal$1); - /*<>*/ var - rlr = rl[3], + _V_ = /*<>*/ height(rl); + /*<>*/ if(_V_ <= height(rr)) + /*<>*/ return /*<>*/ create + ( /*<>*/ create(l, v, rl), rv, rr) /*<>*/ ; + /*<>*/ if(! rl) + /*<>*/ return caml_call1(Stdlib[1], cst_Set_bal$1) /*<>*/ ; + var + rlr = /*<>*/ rl[3], rlv = rl[2], rll = rl[1], - /*<>*/ _W_ = create(rlr, rv, rr); - /*<>*/ return create(create(l, v, rll), rlv, _W_); - /*<>*/ } + _W_ = /*<>*/ create(rlr, rv, rr); + /*<>*/ return /*<>*/ create + ( /*<>*/ create(l, v, rll), rlv, _W_) /*<>*/ ; + } function add(x, t){ - /*<>*/ if(! t) /*<>*/ return [0, 0, x, 0, 1]; - /*<>*/ var - r = t[3], + /*<>*/ if(! t) + /*<>*/ return [0, 0, x, 0, 1]; + var + r = /*<>*/ t[3], v = t[2], l = t[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) /*<>*/ return t; - if(0 <= c){ - /*<>*/ /*<>*/ var rr = add(x, r); - return r === rr ? t : bal(l, v, rr); + /*<>*/ if(0 <= c){ + var rr = /*<>*/ add(x, r); + /*<>*/ return r === rr + ? t + : /*<>*/ bal(l, v, rr) /*<>*/ ; } - /*<>*/ /*<>*/ var ll = add(x, l); - return l === ll ? t : bal(ll, v, r); + var ll = /*<>*/ add(x, l); + /*<>*/ return l === ll + ? t + : /*<>*/ bal(ll, v, r) /*<>*/ ; } function singleton(x){ /*<>*/ return [0, 0, x, 0, 1]; /*<>*/ } function add_min_element(x, param){ - /*<>*/ if(! param) /*<>*/ return singleton(x); - var r = param[3], v = param[2], l = param[1]; - /*<>*/ return bal(add_min_element(x, l), v, r); + /*<>*/ if(! param) + /*<>*/ return singleton(x) /*<>*/ ; + var r = /*<>*/ param[3], v = param[2], l = param[1]; + /*<>*/ return /*<>*/ bal + ( /*<>*/ add_min_element(x, l), v, r) /*<>*/ ; } function add_max_element(x, param){ - /*<>*/ if(! param) /*<>*/ return singleton(x); - var r = param[3], v = param[2], l = param[1]; - /*<>*/ return bal(l, v, add_max_element(x, r)); + /*<>*/ if(! param) + /*<>*/ return singleton(x) /*<>*/ ; + var r = /*<>*/ param[3], v = param[2], l = param[1]; + /*<>*/ return /*<>*/ bal + (l, v, /*<>*/ add_max_element(x, r)) /*<>*/ ; } function join(l, v, r){ /*<>*/ if(! l) - /*<>*/ return add_min_element(v, r); - if(! r) /*<>*/ return add_max_element(v, l); + /*<>*/ return add_min_element(v, r) /*<>*/ ; + /*<>*/ if(! r) + /*<>*/ return add_max_element(v, l) /*<>*/ ; var - rh = r[4], + rh = /*<>*/ r[4], rr = r[3], rv = r[2], rl = r[1], @@ -10406,153 +10160,156 @@ lr = l[3], lv = l[2], ll = l[1]; - return (rh + 2 | 0) < lh - ? bal(ll, lv, join(lr, v, r)) + /*<>*/ return (rh + 2 | 0) < lh + ? /*<>*/ bal + (ll, lv, /*<>*/ join(lr, v, r)) : (lh + 2 | 0) < rh - ? bal(join(l, v, rl), rv, rr) - : create(l, v, r); - /*<>*/ } + ? /*<>*/ bal + ( /*<>*/ join(l, v, rl), rv, rr) + : /*<>*/ create(l, v, r) /*<>*/ ; + } function min_elt(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var l = param$0[1]; + var l = /*<>*/ param$0[1]; if(! l){var v = param$0[2]; /*<>*/ return v;} - param$0 = l; + /*<>*/ param$0 = l; } /*<>*/ } function min_elt_opt(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[1]; + var l = /*<>*/ param$0[1]; if(! l){var v = param$0[2]; /*<>*/ return [0, v];} - param$0 = l; + /*<>*/ param$0 = l; } /*<>*/ } function max_elt(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - if(! param$0[3]){ + /*<>*/ if(! param$0[3]){ var v = param$0[2]; /*<>*/ return v; } - var r = param$0[3]; - param$0 = r; + var r = /*<>*/ param$0[3]; + /*<>*/ param$0 = r; } /*<>*/ } function max_elt_opt(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) /*<>*/ return 0; - if(! param$0[3]){ + /*<>*/ if(! param$0[3]){ var v = param$0[2]; /*<>*/ return [0, v]; } - var r = param$0[3]; - param$0 = r; + var r = /*<>*/ param$0[3]; + /*<>*/ param$0 = r; } /*<>*/ } function remove_min_elt(param){ /*<>*/ if(! param) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Set_remove_min_elt); - var l = param[1]; + /*<>*/ return caml_call1 + (Stdlib[1], cst_Set_remove_min_elt) /*<>*/ ; + var l = /*<>*/ param[1]; if(l){ var r = param[3], v = param[2]; - /*<>*/ return bal(remove_min_elt(l), v, r); + /*<>*/ return /*<>*/ bal + ( /*<>*/ remove_min_elt(l), v, r) /*<>*/ ; } - var r$0 = param[3]; + var r$0 = /*<>*/ param[3]; /*<>*/ return r$0; /*<>*/ } function concat(t1, t2){ /*<>*/ if(! t1) /*<>*/ return t2; - if(! t2) /*<>*/ return t1; - /*<>*/ /*<>*/ var - _S_ = remove_min_elt(t2); - /*<>*/ return join(t1, min_elt(t2), _S_); - /*<>*/ } + /*<>*/ if(! t2) /*<>*/ return t1; + var _S_ = /*<>*/ remove_min_elt(t2); + /*<>*/ return /*<>*/ join + (t1, /*<>*/ min_elt(t2), _S_) /*<>*/ ; + } function split(x, param){ - /*<>*/ if(! param) /*<>*/ return _a_; - /*<>*/ var - r = param[3], + /*<>*/ if(! param) /*<>*/ return _a_; + var + r = /*<>*/ param[3], v = param[2], l = param[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) /*<>*/ return [0, l, 1, r]; - if(0 <= c){ - /*<>*/ var - /*<>*/ match = split(x, r), - rr = match[3], + /*<>*/ if(0 <= c){ + var + match = /*<>*/ split(x, r), + rr = /*<>*/ match[3], pres = match[2], lr = match[1]; - /*<>*/ return [0, join(l, v, lr), pres, rr]; + /*<>*/ return [0, join(l, v, lr), pres, rr] /*<>*/ ; } - /*<>*/ var - /*<>*/ match$0 = split(x, l), - rl = match$0[3], + var + match$0 = /*<>*/ split(x, l), + rl = /*<>*/ match$0[3], pres$0 = match$0[2], ll = match$0[1]; - /*<>*/ return [0, ll, pres$0, join(rl, v, r)]; - } - var empty = 0; + /*<>*/ return [0, ll, pres$0, join(rl, v, r)] /*<>*/ ; + /*<>*/ } + var empty = /*<>*/ 0; function is_empty(param){ - /*<>*/ return param ? 0 : 1; - /*<>*/ } + /*<>*/ return param ? 0 : 1 /*<>*/ ; + } function mem(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - r = param$0[3], + var + r = /*<>*/ param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v), - _R_ = 0 === c ? 1 : 0; + c = /*<>*/ caml_call2(Ord[1], x, v), + _R_ = /*<>*/ 0 === c ? 1 : 0; if(_R_) return _R_; var r$0 = 0 <= c ? r : l; param$0 = r$0; } - } + /*<>*/ } function remove(x, t){ - /*<>*/ if(! t) /*<>*/ return 0; - /*<>*/ var - t2 = t[3], + /*<>*/ if(! t) /*<>*/ return 0; + var + t2 = /*<>*/ t[3], v = t[2], t1 = t[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c){ - if(! t1) /*<>*/ return t2; - if(! t2) /*<>*/ return t1; - /*<>*/ /*<>*/ var - _Q_ = remove_min_elt(t2); - /*<>*/ return bal(t1, min_elt(t2), _Q_); + /*<>*/ if(! t1) /*<>*/ return t2; + /*<>*/ if(! t2) /*<>*/ return t1; + var _Q_ = /*<>*/ remove_min_elt(t2); + /*<>*/ return /*<>*/ bal + (t1, /*<>*/ min_elt(t2), _Q_) /*<>*/ ; } - if(0 <= c){ - /*<>*/ /*<>*/ var - rr = remove(x, t2); - return t2 === rr ? t : bal(t1, v, rr); + /*<>*/ if(0 <= c){ + var rr = /*<>*/ remove(x, t2); + /*<>*/ return t2 === rr + ? t + : /*<>*/ bal(t1, v, rr) /*<>*/ ; } - /*<>*/ /*<>*/ var ll = remove(x, t1); - return t1 === ll ? t : bal(ll, v, t2); + var ll = /*<>*/ remove(x, t1); + /*<>*/ return t1 === ll + ? t + : /*<>*/ bal(ll, v, t2) /*<>*/ ; } function union(s1, s2){ /*<>*/ if(! s1) /*<>*/ return s2; - if(! s2) /*<>*/ return s1; + /*<>*/ if(! s2) /*<>*/ return s1; var - h2 = s2[4], + h2 = /*<>*/ s2[4], r2 = s2[3], v2 = s2[2], l2 = s2[1], @@ -10560,90 +10317,92 @@ r1 = s1[3], v1 = s1[2], l1 = s1[1]; - if(h2 <= h1){ - if(1 === h2) /*<>*/ return add(v2, s1); - /*<>*/ var - /*<>*/ match = split(v1, s2), - r2$0 = match[3], + /*<>*/ if(h2 <= h1){ + /*<>*/ if(1 === h2) + /*<>*/ return add(v2, s1) /*<>*/ ; + var + match = /*<>*/ split(v1, s2), + r2$0 = /*<>*/ match[3], l2$0 = match[1], - /*<>*/ _O_ = union(r1, r2$0); - /*<>*/ return join(union(l1, l2$0), v1, _O_); + _O_ = /*<>*/ union(r1, r2$0); + /*<>*/ return /*<>*/ join + ( /*<>*/ union(l1, l2$0), v1, _O_) /*<>*/ ; } - if(1 === h1) /*<>*/ return add(v1, s2); - /*<>*/ var - /*<>*/ match$0 = split(v2, s1), - r1$0 = match$0[3], + /*<>*/ if(1 === h1) + /*<>*/ return add(v1, s2) /*<>*/ ; + var + match$0 = /*<>*/ split(v2, s1), + r1$0 = /*<>*/ match$0[3], l1$0 = match$0[1], - /*<>*/ _P_ = union(r1$0, r2); - /*<>*/ return join(union(l1$0, l2), v2, _P_); - /*<>*/ } + _P_ = /*<>*/ union(r1$0, r2); + /*<>*/ return /*<>*/ join + ( /*<>*/ union(l1$0, l2), v2, _P_) /*<>*/ ; + } function inter(s1, s2){ /*<>*/ if(! s1) /*<>*/ return 0; - if(! s2) /*<>*/ return 0; - /*<>*/ var - r1 = s1[3], + /*<>*/ if(! s2) /*<>*/ return 0; + var + r1 = /*<>*/ s1[3], v1 = s1[2], l1 = s1[1], - /*<>*/ _L_ = split(v1, s2), - l2 = _L_[1]; + _L_ = /*<>*/ split(v1, s2), + l2 = /*<>*/ _L_[1]; if(_L_[2]){ - /*<>*/ var - r2 = _L_[3], - /*<>*/ _M_ = inter(r1, r2); - /*<>*/ return join(inter(l1, l2), v1, _M_); + var r2 = _L_[3], _M_ = /*<>*/ inter(r1, r2); + /*<>*/ return /*<>*/ join + ( /*<>*/ inter(l1, l2), v1, _M_) /*<>*/ ; } - /*<>*/ var - r2$0 = _L_[3], - /*<>*/ _N_ = inter(r1, r2$0); - /*<>*/ return concat(inter(l1, l2), _N_); - /*<>*/ } + var + r2$0 = /*<>*/ _L_[3], + _N_ = /*<>*/ inter(r1, r2$0); + /*<>*/ return /*<>*/ concat + ( /*<>*/ inter(l1, l2), _N_) /*<>*/ ; + } function split_bis(x, param){ - /*<>*/ if(! param) + /*<>*/ if(! param) /*<>*/ return [0, 0, function(param){ /*<>*/ return 0; - /*<>*/ }]; - /*<>*/ var - r = param[3], + /*<>*/ }] /*<>*/ ; + var + r = /*<>*/ param[3], v = param[2], l = param[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) /*<>*/ return 0; - if(0 <= c){ - /*<>*/ /*<>*/ var - match = split_bis(x, r); - if(! match) /*<>*/ return 0; - var rr = match[2], lr = match[1]; - /*<>*/ return [0, join(l, v, lr), rr]; + /*<>*/ if(0 <= c){ + var match = /*<>*/ split_bis(x, r); + /*<>*/ if(! match) /*<>*/ return 0; + var rr = /*<>*/ match[2], lr = match[1]; + /*<>*/ return [0, join(l, v, lr), rr] /*<>*/ ; } - /*<>*/ /*<>*/ var - match$0 = split_bis(x, l); - if(! match$0) /*<>*/ return 0; - var rl = match$0[2], ll = match$0[1]; + var match$0 = /*<>*/ split_bis(x, l); + /*<>*/ if(! match$0) /*<>*/ return 0; + var rl = /*<>*/ match$0[2], ll = match$0[1]; /*<>*/ return [0, ll, function(param){ - /*<>*/ return join(rl(0), v, r); - /*<>*/ }]; - } + /*<>*/ return /*<>*/ join + ( /*<>*/ rl(0), v, r) /*<>*/ ; + }] /*<>*/ ; + /*<>*/ } function disjoint(s1, s2){ - /*<>*/ var s1$0 = s1, s2$0 = s2; - /*<>*/ for(;;){ + var s1$0 = /*<>*/ s1, s2$0 = s2; + for(;;){ if(s1$0 && s2$0){ var r1 = s1$0[3], v1 = s1$0[2], l1 = s1$0[1]; - if(s1$0 === s2$0) /*<>*/ return 0; - /*<>*/ /*<>*/ var - match = split_bis(v1, s2$0); - if(! match) /*<>*/ return 0; - /*<>*/ var - r2 = match[2], + /*<>*/ if(s1$0 === s2$0) + /*<>*/ return 0; + var match = /*<>*/ split_bis(v1, s2$0); + /*<>*/ if(! match) /*<>*/ return 0; + var + r2 = /*<>*/ match[2], l2 = match[1], - /*<>*/ _K_ = disjoint(l1, l2); - /*<>*/ if(! _K_) /*<>*/ return _K_; - /*<>*/ /*<>*/ var s2$1 = r2(0); - s1$0 = r1; + _K_ = /*<>*/ disjoint(l1, l2); + /*<>*/ if(! _K_) return _K_; + var s2$1 = /*<>*/ r2(0); + /*<>*/ s1$0 = r1; s2$0 = s2$1; continue; } @@ -10652,432 +10411,463 @@ /*<>*/ } function diff(s1, s2){ /*<>*/ if(! s1) /*<>*/ return 0; - if(! s2) /*<>*/ return s1; - /*<>*/ var - r1 = s1[3], + /*<>*/ if(! s2) /*<>*/ return s1; + var + r1 = /*<>*/ s1[3], v1 = s1[2], l1 = s1[1], - /*<>*/ _H_ = split(v1, s2), - l2 = _H_[1]; + _H_ = /*<>*/ split(v1, s2), + l2 = /*<>*/ _H_[1]; if(_H_[2]){ - /*<>*/ var - r2 = _H_[3], - /*<>*/ _I_ = diff(r1, r2); - /*<>*/ return concat(diff(l1, l2), _I_); + var r2 = _H_[3], _I_ = /*<>*/ diff(r1, r2); + /*<>*/ return /*<>*/ concat + ( /*<>*/ diff(l1, l2), _I_) /*<>*/ ; } - /*<>*/ var - r2$0 = _H_[3], - /*<>*/ _J_ = diff(r1, r2$0); - /*<>*/ return join(diff(l1, l2), v1, _J_); - /*<>*/ } + var + r2$0 = /*<>*/ _H_[3], + _J_ = /*<>*/ diff(r1, r2$0); + /*<>*/ return /*<>*/ join + ( /*<>*/ diff(l1, l2), v1, _J_) /*<>*/ ; + } function cons_enum(s, e){ - /*<>*/ var s$0 = s, e$0 = e; - /*<>*/ for(;;){ + var s$0 = /*<>*/ s, e$0 = e; + for(;;){ if(! s$0) /*<>*/ return e$0; - /*<>*/ var - r = s$0[3], + var + r = /*<>*/ s$0[3], v = s$0[2], l = s$0[1], - /*<>*/ e$1 = [0, v, r, e$0]; + e$1 = /*<>*/ [0, v, r, e$0]; s$0 = l; e$0 = e$1; } /*<>*/ } function compare(s1, s2){ - /*<>*/ var - /*<>*/ e2$2 = cons_enum(s2, 0), - /*<>*/ e1$2 = cons_enum(s1, 0), - e1 = e1$2, + var + e2$2 = /*<>*/ cons_enum(s2, 0), + e1$2 = /*<>*/ cons_enum(s1, 0), + e1 = /*<>*/ e1$2, e2 = e2$2; - /*<>*/ for(;;){ - if(! e1) return e2 ? -1 : 0; - if(! e2) /*<>*/ return 1; - /*<>*/ var - e2$0 = e2[3], + for(;;){ + /*<>*/ if(! e1) + return e2 ? -1 : 0 /*<>*/ ; + /*<>*/ if(! e2) /*<>*/ return 1; + var + e2$0 = /*<>*/ e2[3], r2 = e2[2], v2 = e2[1], e1$0 = e1[3], r1 = e1[2], v1 = e1[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], v1, v2); + c = /*<>*/ caml_call2(Ord[1], v1, v2); /*<>*/ if(0 !== c) /*<>*/ return c; - /*<>*/ var - /*<>*/ e2$1 = cons_enum(r2, e2$0), - /*<>*/ e1$1 = cons_enum(r1, e1$0); - e1 = e1$1; + var + e2$1 = /*<>*/ cons_enum(r2, e2$0), + e1$1 = /*<>*/ cons_enum(r1, e1$0); + /*<>*/ e1 = e1$1; e2 = e2$1; } /*<>*/ } function equal(s1, s2){ - /*<>*/ return 0 === compare(s1, s2) ? 1 : 0; + /*<>*/ return 0 === compare(s1, s2) ? 1 : 0 /*<>*/ ; /*<>*/ } function subset(s1, s2){ - /*<>*/ var s1$0 = s1, s2$0 = s2; - /*<>*/ for(;;){ + var s1$0 = /*<>*/ s1, s2$0 = s2; + for(;;){ if(! s1$0) /*<>*/ return 1; - if(! s2$0) /*<>*/ return 0; - /*<>*/ var - r2 = s2$0[3], + /*<>*/ if(! s2$0) /*<>*/ return 0; + var + r2 = /*<>*/ s2$0[3], v2 = s2$0[2], l2 = s2$0[1], r1 = s1$0[3], v1 = s1$0[2], l1 = s1$0[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], v1, v2); + c = /*<>*/ caml_call2(Ord[1], v1, v2); /*<>*/ if(0 === c){ - /*<>*/ /*<>*/ var - _E_ = subset(l1, l2); - /*<>*/ if(! _E_) /*<>*/ return _E_; + var _E_ = /*<>*/ subset(l1, l2); + /*<>*/ if(! _E_) return _E_; s1$0 = r1; s2$0 = r2; } else if(0 <= c){ - /*<>*/ /*<>*/ var - _F_ = subset([0, 0, v1, r1, 0], r2); - /*<>*/ if(! _F_) /*<>*/ return _F_; + var _F_ = /*<>*/ subset([0, 0, v1, r1, 0], r2); + /*<>*/ if(! _F_) return _F_; s1$0 = l1; } else{ - /*<>*/ /*<>*/ var - _G_ = subset([0, l1, v1, 0, 0], l2); - /*<>*/ if(! _G_) /*<>*/ return _G_; + var _G_ = /*<>*/ subset([0, l1, v1, 0, 0], l2); + /*<>*/ if(! _G_) return _G_; s1$0 = r1; } } /*<>*/ } function iter(f, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var r = param$0[3], v = param$0[2], l = param$0[1]; + var + r = /*<>*/ param$0[3], + v = param$0[2], + l = param$0[1]; /*<>*/ iter(f, l); - /*<>*/ /*<>*/ caml_call1(f, v); - param$0 = r; + /*<>*/ caml_call1(f, v); + /*<>*/ param$0 = r; } - } + /*<>*/ } function fold(f, s, accu){ - /*<>*/ var s$0 = s, accu$0 = accu; - /*<>*/ for(;;){ + var s$0 = /*<>*/ s, accu$0 = accu; + for(;;){ if(! s$0) /*<>*/ return accu$0; - /*<>*/ var - r = s$0[3], + var + r = /*<>*/ s$0[3], v = s$0[2], l = s$0[1], - /*<>*/ accu$1 = - /*<>*/ caml_call2(f, v, fold(f, l, accu$0)); - s$0 = r; + accu$1 = + /*<>*/ /*<>*/ caml_call2 + (f, v, /*<>*/ fold(f, l, accu$0)); + /*<>*/ s$0 = r; accu$0 = accu$1; } - /*<>*/ } + } function for_all(p, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 1; - /*<>*/ var - r = param$0[3], + var + r = /*<>*/ param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ _B_ = - /*<>*/ caml_call1(p, v); - /*<>*/ if(_B_){ - /*<>*/ /*<>*/ var - _C_ = for_all(p, l); - /*<>*/ if(_C_){param$0 = r; continue;} + _B_ = /*<>*/ caml_call1(p, v); + /*<>*/ if(_B_){ + var _C_ = /*<>*/ for_all(p, l); + /*<>*/ if(_C_){param$0 = r; continue;} var _D_ = _C_; } else - var _D_ = _B_; - /*<>*/ return _D_; + var _D_ = /*<>*/ _B_; + return _D_; } - } + /*<>*/ } function exists(p, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - r = param$0[3], + var + r = /*<>*/ param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ _y_ = - /*<>*/ caml_call1(p, v); - /*<>*/ if(_y_) + _y_ = /*<>*/ caml_call1(p, v); + /*<>*/ if(_y_) var _z_ = _y_; else{ - /*<>*/ /*<>*/ var - _A_ = exists(p, l); - /*<>*/ if(! _A_){param$0 = r; continue;} + var _A_ = /*<>*/ exists(p, l); + /*<>*/ if(! _A_){param$0 = r; continue;} var _z_ = _A_; } - /*<>*/ return _z_; + /*<>*/ return _z_; } - } + /*<>*/ } function filter(p, t){ - /*<>*/ if(! t) /*<>*/ return 0; - /*<>*/ var - r = t[3], + /*<>*/ if(! t) /*<>*/ return 0; + var + r = /*<>*/ t[3], v = t[2], l = t[1], - /*<>*/ l$0 = filter(p, l), - /*<>*/ pv = /*<>*/ caml_call1(p, v), - /*<>*/ r$0 = filter(p, r); + l$0 = /*<>*/ filter(p, l), + pv = /*<>*/ caml_call1(p, v), + r$0 = /*<>*/ filter(p, r); /*<>*/ if(! pv) - /*<>*/ return concat(l$0, r$0); - if(l === l$0 && r === r$0) /*<>*/ return t; - /*<>*/ return join(l$0, v, r$0); + /*<>*/ return concat(l$0, r$0) /*<>*/ ; + /*<>*/ if(l === l$0 && r === r$0) + /*<>*/ return t; + /*<>*/ return join(l$0, v, r$0) /*<>*/ ; } function partition(p, param){ - /*<>*/ if(! param) /*<>*/ return _b_; - /*<>*/ var - r = param[3], + /*<>*/ if(! param) /*<>*/ return _b_; + var + r = /*<>*/ param[3], v = param[2], l = param[1], - /*<>*/ match = partition(p, l), - lf = match[2], + match = /*<>*/ partition(p, l), + lf = /*<>*/ match[2], lt = match[1], - /*<>*/ pv = /*<>*/ caml_call1(p, v), - /*<>*/ match$0 = partition(p, r), - rf = match$0[2], + pv = /*<>*/ caml_call1(p, v), + match$0 = /*<>*/ partition(p, r), + rf = /*<>*/ match$0[2], rt = match$0[1]; /*<>*/ if(pv){ - /*<>*/ /*<>*/ var - _w_ = concat(lf, rf); - /*<>*/ return [0, join(lt, v, rt), _w_]; + var _w_ = /*<>*/ concat(lf, rf); + /*<>*/ return [0, join(lt, v, rt), _w_] /*<>*/ ; } - /*<>*/ /*<>*/ var - _x_ = join(lf, v, rf); - /*<>*/ return [0, concat(lt, rt), _x_]; - } + var _x_ = /*<>*/ join(lf, v, rf); + /*<>*/ return [0, concat(lt, rt), _x_] /*<>*/ ; + /*<>*/ } function cardinal(param){ /*<>*/ if(! param) /*<>*/ return 0; - /*<>*/ var - r = param[3], + var + r = /*<>*/ param[3], l = param[1], - /*<>*/ _v_ = cardinal(r); - return (cardinal(l) + 1 | 0) + _v_ | 0; + _v_ = /*<>*/ cardinal(r); + /*<>*/ return (cardinal(l) + 1 | 0) + _v_ | 0 /*<>*/ ; /*<>*/ } function elements_aux(accu, param){ - var accu$0 = accu, param$0 = param; + var accu$0 = /*<>*/ accu, param$0 = param; for(;;){ if(! param$0) /*<>*/ return accu$0; - /*<>*/ var - r = param$0[3], + var + r = /*<>*/ param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ accu$1 = [0, v, elements_aux(accu$0, r)]; - accu$0 = accu$1; + accu$1 = /*<>*/ [0, v, elements_aux(accu$0, r)]; + /*<>*/ accu$0 = accu$1; param$0 = l; } - } + /*<>*/ } function elements(s){ - /*<>*/ return elements_aux(0, s); - /*<>*/ } + /*<>*/ return elements_aux(0, s) /*<>*/ ; + } function find(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ var - r = param$0[3], + var + r = /*<>*/ param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) /*<>*/ return v; - var r$0 = 0 <= c ? r : l; + var r$0 = /*<>*/ 0 <= c ? r : l; param$0 = r$0; } - } + /*<>*/ } function find_first(f, param$0){ - var param$1 = param$0; + var param$1 = /*<>*/ param$0; for(;;){ if(! param$1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$1)){ - var v0 = v0$1, param = l$0; + var + r$0 = /*<>*/ param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + /*<>*/ if(caml_call1(f, v0$1)){ + var v0 = /*<>*/ v0$1, param = l$0; for(;;){ - if(! param) /*<>*/ return v0; - var r = param[3], v0$0 = param[2], l = param[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$0)){v0 = v0$0; param = l;} + /*<>*/ if(! param) + /*<>*/ return v0; + var + r = /*<>*/ param[3], + v0$0 = param[2], + l = param[1]; + /*<>*/ if(caml_call1(f, v0$0)){ + /*<>*/ v0 = v0$0; + param = l; + } else - param = r; + /*<>*/ param = r; } } else - param$1 = r$0; + /*<>*/ param$1 = r$0; } - } + /*<>*/ } function find_first_opt(f, param$0){ - var param$1 = param$0; + var param$1 = /*<>*/ param$0; for(;;){ if(! param$1) /*<>*/ return 0; - var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$1)){ - var v0 = v0$1, param = l$0; + var + r$0 = /*<>*/ param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + /*<>*/ if(caml_call1(f, v0$1)){ + var v0 = /*<>*/ v0$1, param = l$0; for(;;){ - if(! param) /*<>*/ return [0, v0]; - var r = param[3], v0$0 = param[2], l = param[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$0)){v0 = v0$0; param = l;} + /*<>*/ if(! param) + /*<>*/ return [0, v0]; + var + r = /*<>*/ param[3], + v0$0 = param[2], + l = param[1]; + /*<>*/ if(caml_call1(f, v0$0)){ + /*<>*/ v0 = v0$0; + param = l; + } else - param = r; + /*<>*/ param = r; } } else - param$1 = r$0; + /*<>*/ param$1 = r$0; } - } + /*<>*/ } function find_last(f, param$0){ - var param$1 = param$0; + var param$1 = /*<>*/ param$0; for(;;){ if(! param$1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$1)){ - var v0 = v0$1, param = r$0; + var + r$0 = /*<>*/ param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + /*<>*/ if(caml_call1(f, v0$1)){ + var v0 = /*<>*/ v0$1, param = r$0; for(;;){ - if(! param) /*<>*/ return v0; - var r = param[3], v0$0 = param[2], l = param[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$0)){v0 = v0$0; param = r;} + /*<>*/ if(! param) + /*<>*/ return v0; + var + r = /*<>*/ param[3], + v0$0 = param[2], + l = param[1]; + /*<>*/ if(caml_call1(f, v0$0)){ + /*<>*/ v0 = v0$0; + param = r; + } else - param = l; + /*<>*/ param = l; } } else - param$1 = l$0; + /*<>*/ param$1 = l$0; } - } + /*<>*/ } function find_last_opt(f, param$0){ - var param$1 = param$0; + var param$1 = /*<>*/ param$0; for(;;){ if(! param$1) /*<>*/ return 0; - var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$1)){ - var v0 = v0$1, param = r$0; + var + r$0 = /*<>*/ param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + /*<>*/ if(caml_call1(f, v0$1)){ + var v0 = /*<>*/ v0$1, param = r$0; for(;;){ - if(! param) /*<>*/ return [0, v0]; - var r = param[3], v0$0 = param[2], l = param[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$0)){v0 = v0$0; param = r;} + /*<>*/ if(! param) + /*<>*/ return [0, v0]; + var + r = /*<>*/ param[3], + v0$0 = param[2], + l = param[1]; + /*<>*/ if(caml_call1(f, v0$0)){ + /*<>*/ v0 = v0$0; + param = r; + } else - param = l; + /*<>*/ param = l; } } else - param$1 = l$0; + /*<>*/ param$1 = l$0; } - } + /*<>*/ } function find_opt(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - r = param$0[3], + var + r = /*<>*/ param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) /*<>*/ return [0, v]; - var r$0 = 0 <= c ? r : l; + var r$0 = /*<>*/ 0 <= c ? r : l; param$0 = r$0; } - } + /*<>*/ } function try_join(l, v, r){ - /*<>*/ a: + a: { - if(0 !== l){ - /*<>*/ /*<>*/ var _u_ = max_elt(l); - /*<>*/ if - (0 <= /*<>*/ caml_call2(Ord[1], _u_, v)) - break a; + /*<>*/ if(0 !== l){ + var _u_ = /*<>*/ max_elt(l); + /*<>*/ if(0 <= caml_call2(Ord[1], _u_, v)) break a; } - if(0 !== r){ - /*<>*/ /*<>*/ var _t_ = min_elt(r); - /*<>*/ if - (0 <= /*<>*/ caml_call2(Ord[1], v, _t_)) - break a; + /*<>*/ if(0 !== r){ + var _t_ = /*<>*/ min_elt(r); + /*<>*/ if(0 <= caml_call2(Ord[1], v, _t_)) break a; } - /*<>*/ return join(l, v, r); + /*<>*/ return join(l, v, r) /*<>*/ ; } - /*<>*/ return union(l, add(v, r)); - /*<>*/ } + /*<>*/ return /*<>*/ union + (l, /*<>*/ add(v, r)) /*<>*/ ; + } function map(f, t){ - /*<>*/ if(! t) /*<>*/ return 0; - /*<>*/ var - r = t[3], + /*<>*/ if(! t) /*<>*/ return 0; + var + r = /*<>*/ t[3], v = t[2], l = t[1], - /*<>*/ l$0 = map(f, l), - /*<>*/ v$0 = /*<>*/ caml_call1(f, v), - /*<>*/ r$0 = map(f, r); - if(l === l$0 && v === v$0 && r === r$0) + l$0 = /*<>*/ map(f, l), + v$0 = /*<>*/ caml_call1(f, v), + r$0 = /*<>*/ map(f, r); + /*<>*/ if(l === l$0 && v === v$0 && r === r$0) /*<>*/ return t; - /*<>*/ return try_join(l$0, v$0, r$0); + /*<>*/ return try_join(l$0, v$0, r$0) /*<>*/ ; } function filter_map(f, t){ - /*<>*/ if(! t) /*<>*/ return 0; - /*<>*/ var - r = t[3], + /*<>*/ if(! t) /*<>*/ return 0; + var + r = /*<>*/ t[3], v = t[2], l = t[1], - /*<>*/ t1 = filter_map(f, l), - /*<>*/ v$0 = /*<>*/ caml_call1(f, v), - /*<>*/ t2 = filter_map(f, r); + t1 = /*<>*/ filter_map(f, l), + v$0 = /*<>*/ caml_call1(f, v), + t2 = /*<>*/ filter_map(f, r); /*<>*/ if(v$0){ var v$1 = v$0[1]; - if(l === t1 && v === v$1 && r === t2) + /*<>*/ if(l === t1 && v === v$1 && r === t2) /*<>*/ return t; - /*<>*/ return try_join(t1, v$1, t2); + /*<>*/ return try_join(t1, v$1, t2) /*<>*/ ; } - if(! t1) /*<>*/ return t2; - if(! t2) /*<>*/ return t1; - /*<>*/ /*<>*/ var - _s_ = remove_min_elt(t2); - /*<>*/ return try_join(t1, min_elt(t2), _s_); + /*<>*/ if(! t1) /*<>*/ return t2; + /*<>*/ if(! t2) /*<>*/ return t1; + var _s_ = /*<>*/ remove_min_elt(t2); + /*<>*/ return /*<>*/ try_join + (t1, /*<>*/ min_elt(t2), _s_) /*<>*/ ; } function of_list(l){ - /*<>*/ if(! l) return empty; - var _n_ = l[2], x0 = l[1]; - if(! _n_) /*<>*/ return singleton(x0); - var _o_ = _n_[2], x1 = _n_[1]; - if(! _o_) /*<>*/ return add(x1, singleton(x0)); - var _p_ = _o_[2], x2 = _o_[1]; + /*<>*/ if(! l) /*<>*/ return empty; + var _n_ = /*<>*/ l[2], x0 = l[1]; + if(! _n_) + /*<>*/ return singleton(x0) /*<>*/ ; + var _o_ = /*<>*/ _n_[2], x1 = _n_[1]; + if(! _o_) + /*<>*/ return /*<>*/ add + (x1, /*<>*/ singleton(x0)) /*<>*/ ; + var _p_ = /*<>*/ _o_[2], x2 = _o_[1]; if(! _p_) - /*<>*/ return add(x2, add(x1, singleton(x0))); - var _q_ = _p_[2], x3 = _p_[1]; + /*<>*/ return /*<>*/ add + (x2, + /*<>*/ add + (x1, /*<>*/ singleton(x0))) /*<>*/ ; + var _q_ = /*<>*/ _p_[2], x3 = _p_[1]; if(! _q_) - /*<>*/ return add - (x3, add(x2, add(x1, singleton(x0)))); - if(_q_[2]){ - /*<>*/ var - /*<>*/ l$0 = - /*<>*/ caml_call2(Stdlib_List[62], Ord[1], l), + /*<>*/ return /*<>*/ add + (x3, + /*<>*/ add + (x2, + /*<>*/ add + (x1, /*<>*/ singleton(x0)))) /*<>*/ ; + /*<>*/ if(_q_[2]){ + var + l$0 = /*<>*/ caml_call2(Stdlib_List[62], Ord[1], l), sub = - function(n, l){ + /*<>*/ function(n, l){ /*<>*/ if(3 >= n >>> 0) switch(n){ case 0: /*<>*/ return [0, 0, l]; case 1: - if(l){ + /*<>*/ if(l){ var l$3 = l[2], x0 = l[1]; /*<>*/ return [0, [0, 0, x0, 0, 1], l$3]; } break; case 2: - if(l){ + /*<>*/ if(l){ var match$1 = l[2]; if(match$1){ var l$4 = match$1[2], x1 = match$1[1], x0$0 = l[1]; @@ -11088,7 +10878,7 @@ } break; default: - if(l){ + /*<>*/ if(l){ var _r_ = l[2]; if(_r_){ var match$2 = _r_[2]; @@ -11105,69 +10895,76 @@ } } } - /*<>*/ var - nl = n / 2 | 0, - /*<>*/ match = sub(nl, l), - l$0 = match[2], + var + nl = /*<>*/ n / 2 | 0, + match = /*<>*/ sub(nl, l), + l$0 = /*<>*/ match[2], left = match[1]; /*<>*/ if(! l$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _c_], 1); - /*<>*/ var - l$1 = l$0[2], + var + l$1 = /*<>*/ l$0[2], mid = l$0[1], - /*<>*/ match$0 = sub((n - nl | 0) - 1 | 0, l$1), - l$2 = match$0[2], + match$0 = /*<>*/ sub((n - nl | 0) - 1 | 0, l$1), + l$2 = /*<>*/ match$0[2], right = match$0[1]; - /*<>*/ return [0, create(left, mid, right), l$2]; + /*<>*/ return [0, create(left, mid, right), l$2] /*<>*/ ; /*<>*/ }; - /*<>*/ return sub + /*<>*/ return /*<>*/ sub ( /*<>*/ caml_call1(Stdlib_List[1], l$0), l$0) - [1]; + [1] /*<>*/ ; } - var x4 = _q_[1]; - /*<>*/ return add - (x4, add(x3, add(x2, add(x1, singleton(x0))))); - /*<>*/ } + var x4 = /*<>*/ _q_[1]; + /*<>*/ return /*<>*/ add + (x4, + /*<>*/ add + (x3, + /*<>*/ add + (x2, + /*<>*/ add + (x1, /*<>*/ singleton(x0))))) /*<>*/ ; + } function add_seq(i, m){ - /*<>*/ return /*<>*/ caml_call3 + /*<>*/ return caml_call3 (Stdlib_Seq[5], function(s, x){ - /*<>*/ return add(x, s); - /*<>*/ }, + /*<>*/ return add(x, s) /*<>*/ ; + }, m, - i); - /*<>*/ } + i) /*<>*/ ; + } function of_seq(i){ - /*<>*/ return add_seq(i, empty); - /*<>*/ } + /*<>*/ return add_seq(i, empty) /*<>*/ ; + } function seq_of_enum(c, param){ /*<>*/ if(! c) /*<>*/ return 0; var - rest = c[3], + rest = /*<>*/ c[3], t = c[2], x = c[1], - /*<>*/ _l_ = cons_enum(t, rest); - /*<>*/ return [0, + _l_ = /*<>*/ cons_enum(t, rest); + /*<>*/ return [0, x, - function(_m_){ /*<>*/ return seq_of_enum(_l_, _m_);}]; + function(_m_){ + /*<>*/ return seq_of_enum(_l_, _m_); + }] /*<>*/ ; /*<>*/ } function to_seq(c){ - /*<>*/ /*<>*/ var - _j_ = cons_enum(c, 0); - /*<>*/ return function(_k_){ - /*<>*/ return seq_of_enum(_j_, _k_);}; - /*<>*/ } + var _j_ = /*<>*/ cons_enum(c, 0); + /*<>*/ return function(_k_){ + return seq_of_enum(_j_, _k_);}; + } function snoc_enum(s, e){ - /*<>*/ var s$0 = s, e$0 = e; - /*<>*/ for(;;){ + var s$0 = /*<>*/ s, e$0 = e; + for(;;){ if(! s$0) /*<>*/ return e$0; - /*<>*/ var - r = s$0[3], + var + r = /*<>*/ s$0[3], v = s$0[2], l = s$0[1], - /*<>*/ e$1 = [0, v, l, e$0]; + e$1 = /*<>*/ [0, v, l, e$0]; s$0 = r; e$0 = e$1; } @@ -11175,53 +10972,52 @@ function rev_seq_of_enum(c, param){ /*<>*/ if(! c) /*<>*/ return 0; var - rest = c[3], + rest = /*<>*/ c[3], t = c[2], x = c[1], - /*<>*/ _h_ = snoc_enum(t, rest); - /*<>*/ return [0, + _h_ = /*<>*/ snoc_enum(t, rest); + /*<>*/ return [0, x, - function(_i_){ /*<>*/ return rev_seq_of_enum(_h_, _i_);}]; + function(_i_){ + /*<>*/ return rev_seq_of_enum(_h_, _i_); + }] /*<>*/ ; /*<>*/ } function to_rev_seq(c){ - /*<>*/ /*<>*/ var - _f_ = snoc_enum(c, 0); - /*<>*/ return function(_g_){ - /*<>*/ return rev_seq_of_enum(_f_, _g_);}; - /*<>*/ } + var _f_ = /*<>*/ snoc_enum(c, 0); + /*<>*/ return function(_g_){ + return rev_seq_of_enum(_f_, _g_);}; + } function to_seq_from(low, s){ - /*<>*/ a: + a: { b: { - var s$0 = s, c = 0; - /*<>*/ for(;;){ - if(! s$0) break; - /*<>*/ var + var s$0 = /*<>*/ s, c = 0; + for(;;){ + /*<>*/ if(! s$0) break; + var r = s$0[3], v = s$0[2], l = s$0[1], - /*<>*/ n = - /*<>*/ caml_call2(Ord[1], v, low); - if(0 === n) break b; - if(0 <= n){ - /*<>*/ /*<>*/ var - c$0 = [0, v, r, c]; + n = /*<>*/ caml_call2(Ord[1], v, low); + /*<>*/ if(0 === n) break b; + /*<>*/ if(0 <= n){ + var c$0 = /*<>*/ [0, v, r, c]; s$0 = l; c = c$0; } else - s$0 = r; + /*<>*/ s$0 = r; } - var _d_ = c; + var _d_ = /*<>*/ c; break a; } - var _d_ = [0, v, r, c]; + var _d_ = /*<>*/ [0, v, r, c]; } - /*<>*/ return function(_e_){ - /*<>*/ return seq_of_enum(_d_, _e_);}; - /*<>*/ } - return [0, + /*<>*/ return function(_e_){ + return seq_of_enum(_d_, _e_);}; + } + /*<>*/ return [0, empty, add, singleton, @@ -11268,7 +11064,7 @@ }]; runtime.caml_register_global(12, Stdlib_Set, "Stdlib__Set"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Map @@ -11280,17 +11076,17 @@ runtime = globalThis.jsoo_runtime, cst_Map_bal$3 = "Map.bal", caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); @@ -11314,500 +11110,550 @@ function(Ord){ function height(param){ /*<>*/ if(! param) /*<>*/ return 0; - var h = param[5]; + var h = /*<>*/ param[5]; /*<>*/ return h; /*<>*/ } function create(l, x, d, r){ - /*<>*/ var - /*<>*/ hl = height(l), - /*<>*/ hr = height(r), - _K_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - /*<>*/ return [0, l, x, d, r, _K_]; + var + hl = /*<>*/ height(l), + hr = /*<>*/ height(r), + _K_ = /*<>*/ hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, x, d, r, _K_]; /*<>*/ } function singleton(x, d){ /*<>*/ return [0, 0, x, d, 0, 1]; /*<>*/ } function bal(l, x, d, r){ - /*<>*/ if(l) var h = l[5], hl = h; else var hl = 0; - /*<>*/ if(r) var h$0 = r[5], hr = h$0; else var hr = 0; - if((hr + 2 | 0) < hl){ - if(! l) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Map_bal$0); - /*<>*/ var - lr = l[4], + /*<>*/ if(l) + var h = l[5], hl = /*<>*/ h; + else + var hl = /*<>*/ 0; + /*<>*/ if(r) + var h$0 = r[5], hr = /*<>*/ h$0; + else + var hr = /*<>*/ 0; + /*<>*/ if((hr + 2 | 0) < hl){ + /*<>*/ if(! l) + /*<>*/ return caml_call1(Stdlib[1], cst_Map_bal$0) /*<>*/ ; + var + lr = /*<>*/ l[4], ld = l[3], lv = l[2], ll = l[1], - /*<>*/ _F_ = height(lr); - if(_F_ <= height(ll)) - /*<>*/ return create - (ll, lv, ld, create(lr, x, d, r)); - if(! lr) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Map_bal); - /*<>*/ var - lrr = lr[4], + _F_ = /*<>*/ height(lr); + /*<>*/ if(_F_ <= height(ll)) + /*<>*/ return /*<>*/ create + (ll, lv, ld, /*<>*/ create(lr, x, d, r)) /*<>*/ ; + /*<>*/ if(! lr) + /*<>*/ return caml_call1(Stdlib[1], cst_Map_bal) /*<>*/ ; + var + lrr = /*<>*/ lr[4], lrd = lr[3], lrv = lr[2], lrl = lr[1], - /*<>*/ _G_ = create(lrr, x, d, r); - /*<>*/ return create - (create(ll, lv, ld, lrl), lrv, lrd, _G_); + _G_ = /*<>*/ create(lrr, x, d, r); + /*<>*/ return /*<>*/ create + ( /*<>*/ create(ll, lv, ld, lrl), + lrv, + lrd, + _G_) /*<>*/ ; } - if((hl + 2 | 0) >= hr){ - var _J_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - /*<>*/ return [0, l, x, d, r, _J_]; + /*<>*/ if((hl + 2 | 0) >= hr){ + var _J_ = /*<>*/ hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, x, d, r, _J_]; } - if(! r) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Map_bal$2); - /*<>*/ var - rr = r[4], + /*<>*/ if(! r) + /*<>*/ return caml_call1(Stdlib[1], cst_Map_bal$2) /*<>*/ ; + var + rr = /*<>*/ r[4], rd = r[3], rv = r[2], rl = r[1], - /*<>*/ _H_ = height(rl); - if(_H_ <= height(rr)) - /*<>*/ return create - (create(l, x, d, rl), rv, rd, rr); - if(! rl) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Map_bal$1); - /*<>*/ var - rlr = rl[4], + _H_ = /*<>*/ height(rl); + /*<>*/ if(_H_ <= height(rr)) + /*<>*/ return /*<>*/ create + ( /*<>*/ create(l, x, d, rl), rv, rd, rr) /*<>*/ ; + /*<>*/ if(! rl) + /*<>*/ return caml_call1(Stdlib[1], cst_Map_bal$1) /*<>*/ ; + var + rlr = /*<>*/ rl[4], rld = rl[3], rlv = rl[2], rll = rl[1], - /*<>*/ _I_ = create(rlr, rv, rd, rr); - /*<>*/ return create - (create(l, x, d, rll), rlv, rld, _I_); - /*<>*/ } - var empty = 0; + _I_ = /*<>*/ create(rlr, rv, rd, rr); + /*<>*/ return /*<>*/ create + ( /*<>*/ create(l, x, d, rll), rlv, rld, _I_) /*<>*/ ; + } + var empty = /*<>*/ 0; function is_empty(param){ - /*<>*/ return param ? 0 : 1; - /*<>*/ } + /*<>*/ return param ? 0 : 1 /*<>*/ ; + } function add(x, data, m){ - /*<>*/ if(! m) - /*<>*/ return [0, 0, x, data, 0, 1]; - /*<>*/ var - h = m[5], + /*<>*/ if(! m) + /*<>*/ return [0, 0, x, data, 0, 1]; + var + h = /*<>*/ m[5], r = m[4], d = m[3], v = m[2], l = m[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) - return d === data ? m : [0, l, x, data, r, h]; - if(0 <= c){ - /*<>*/ /*<>*/ var - rr = add(x, data, r); - return r === rr ? m : bal(l, v, d, rr); + /*<>*/ return d === data ? m : [0, l, x, data, r, h] /*<>*/ ; + /*<>*/ if(0 <= c){ + var rr = /*<>*/ add(x, data, r); + /*<>*/ return r === rr + ? m + : /*<>*/ bal(l, v, d, rr) /*<>*/ ; } - /*<>*/ /*<>*/ var - ll = add(x, data, l); - return l === ll ? m : bal(ll, v, d, r); + var ll = /*<>*/ add(x, data, l); + /*<>*/ return l === ll + ? m + : /*<>*/ bal(ll, v, d, r) /*<>*/ ; } function find(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ var - r = param$0[4], + var + r = /*<>*/ param$0[4], d = param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) /*<>*/ return d; - var r$0 = 0 <= c ? r : l; + var r$0 = /*<>*/ 0 <= c ? r : l; param$0 = r$0; } - } + /*<>*/ } function find_first(f, param$0){ - var param$1 = param$0; + var param$1 = /*<>*/ param$0; for(;;){ if(! param$1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); var - r$0 = param$1[4], + r$0 = /*<>*/ param$1[4], d0$1 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$1)){ - var v0 = v0$1, d0 = d0$1, param = l$0; + /*<>*/ if(caml_call1(f, v0$1)){ + var v0 = /*<>*/ v0$1, d0 = d0$1, param = l$0; for(;;){ - if(! param) /*<>*/ return [0, v0, d0]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$0)){v0 = v0$0; d0 = d0$0; param = l;} + /*<>*/ if(! param) + /*<>*/ return [0, v0, d0]; + var + r = /*<>*/ param[4], + d0$0 = param[3], + v0$0 = param[2], + l = param[1]; + /*<>*/ if(caml_call1(f, v0$0)){ + /*<>*/ v0 = v0$0; + d0 = d0$0; + param = l; + } else - param = r; + /*<>*/ param = r; } } else - param$1 = r$0; + /*<>*/ param$1 = r$0; } - } + /*<>*/ } function find_first_opt(f, param$0){ - var param$1 = param$0; + var param$1 = /*<>*/ param$0; for(;;){ if(! param$1) /*<>*/ return 0; var - r$0 = param$1[4], + r$0 = /*<>*/ param$1[4], d0$1 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$1)){ - var v0 = v0$1, d0 = d0$1, param = l$0; + /*<>*/ if(caml_call1(f, v0$1)){ + var v0 = /*<>*/ v0$1, d0 = d0$1, param = l$0; for(;;){ - if(! param) /*<>*/ return [0, [0, v0, d0]]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$0)){v0 = v0$0; d0 = d0$0; param = l;} + /*<>*/ if(! param) + /*<>*/ return [0, [0, v0, d0]]; + var + r = /*<>*/ param[4], + d0$0 = param[3], + v0$0 = param[2], + l = param[1]; + /*<>*/ if(caml_call1(f, v0$0)){ + /*<>*/ v0 = v0$0; + d0 = d0$0; + param = l; + } else - param = r; + /*<>*/ param = r; } } else - param$1 = r$0; + /*<>*/ param$1 = r$0; } - } + /*<>*/ } function find_last(f, param$0){ - var param$1 = param$0; + var param$1 = /*<>*/ param$0; for(;;){ if(! param$1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); var - r$0 = param$1[4], + r$0 = /*<>*/ param$1[4], d0$1 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$1)){ - var v0 = v0$1, d0 = d0$1, param = r$0; + /*<>*/ if(caml_call1(f, v0$1)){ + var v0 = /*<>*/ v0$1, d0 = d0$1, param = r$0; for(;;){ - if(! param) /*<>*/ return [0, v0, d0]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$0)){v0 = v0$0; d0 = d0$0; param = r;} + /*<>*/ if(! param) + /*<>*/ return [0, v0, d0]; + var + r = /*<>*/ param[4], + d0$0 = param[3], + v0$0 = param[2], + l = param[1]; + /*<>*/ if(caml_call1(f, v0$0)){ + /*<>*/ v0 = v0$0; + d0 = d0$0; + param = r; + } else - param = l; + /*<>*/ param = l; } } else - param$1 = l$0; + /*<>*/ param$1 = l$0; } - } + /*<>*/ } function find_last_opt(f, param$0){ - var param$1 = param$0; + var param$1 = /*<>*/ param$0; for(;;){ if(! param$1) /*<>*/ return 0; var - r$0 = param$1[4], + r$0 = /*<>*/ param$1[4], d0$1 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$1)){ - var v0 = v0$1, d0 = d0$1, param = r$0; + /*<>*/ if(caml_call1(f, v0$1)){ + var v0 = /*<>*/ v0$1, d0 = d0$1, param = r$0; for(;;){ - if(! param) /*<>*/ return [0, [0, v0, d0]]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - /*<>*/ if - ( /*<>*/ caml_call1(f, v0$0)){v0 = v0$0; d0 = d0$0; param = r;} + /*<>*/ if(! param) + /*<>*/ return [0, [0, v0, d0]]; + var + r = /*<>*/ param[4], + d0$0 = param[3], + v0$0 = param[2], + l = param[1]; + /*<>*/ if(caml_call1(f, v0$0)){ + /*<>*/ v0 = v0$0; + d0 = d0$0; + param = r; + } else - param = l; + /*<>*/ param = l; } } else - param$1 = l$0; + /*<>*/ param$1 = l$0; } - } + /*<>*/ } function find_opt(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - r = param$0[4], + var + r = /*<>*/ param$0[4], d = param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) /*<>*/ return [0, d]; - var r$0 = 0 <= c ? r : l; + var r$0 = /*<>*/ 0 <= c ? r : l; param$0 = r$0; } - } + /*<>*/ } function mem(x, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - r = param$0[4], + var + r = /*<>*/ param$0[4], v = param$0[2], l = param$0[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v), - _E_ = 0 === c ? 1 : 0; + c = /*<>*/ caml_call2(Ord[1], x, v), + _E_ = /*<>*/ 0 === c ? 1 : 0; if(_E_) return _E_; var r$0 = 0 <= c ? r : l; param$0 = r$0; } - } + /*<>*/ } function min_binding(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var l = param$0[1]; + var l = /*<>*/ param$0[1]; if(! l){ var d = param$0[3], v = param$0[2]; /*<>*/ return [0, v, d]; } - param$0 = l; + /*<>*/ param$0 = l; } /*<>*/ } function min_binding_opt(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[1]; + var l = /*<>*/ param$0[1]; if(! l){ var d = param$0[3], v = param$0[2]; /*<>*/ return [0, [0, v, d]]; } - param$0 = l; + /*<>*/ param$0 = l; } /*<>*/ } function max_binding(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - if(! param$0[4]){ + /*<>*/ if(! param$0[4]){ var d = param$0[3], v = param$0[2]; /*<>*/ return [0, v, d]; } - var r = param$0[4]; - param$0 = r; + var r = /*<>*/ param$0[4]; + /*<>*/ param$0 = r; } /*<>*/ } function max_binding_opt(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) /*<>*/ return 0; - if(! param$0[4]){ + /*<>*/ if(! param$0[4]){ var d = param$0[3], v = param$0[2]; /*<>*/ return [0, [0, v, d]]; } - var r = param$0[4]; - param$0 = r; + var r = /*<>*/ param$0[4]; + /*<>*/ param$0 = r; } /*<>*/ } function remove_min_binding(param){ /*<>*/ if(! param) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Map_remove_min_elt); - var l = param[1]; + /*<>*/ return caml_call1 + (Stdlib[1], cst_Map_remove_min_elt) /*<>*/ ; + var l = /*<>*/ param[1]; if(l){ var r = param[4], d = param[3], v = param[2]; - /*<>*/ return bal(remove_min_binding(l), v, d, r); + /*<>*/ return /*<>*/ bal + ( /*<>*/ remove_min_binding(l), v, d, r) /*<>*/ ; } - var r$0 = param[4]; + var r$0 = /*<>*/ param[4]; /*<>*/ return r$0; /*<>*/ } function _d_(t1, t2){ /*<>*/ if(! t1) /*<>*/ return t2; - if(! t2) /*<>*/ return t1; - /*<>*/ var - /*<>*/ match = min_binding(t2), - d = match[2], + /*<>*/ if(! t2) /*<>*/ return t1; + var + match = /*<>*/ min_binding(t2), + d = /*<>*/ match[2], x = match[1]; - /*<>*/ return bal(t1, x, d, remove_min_binding(t2)); - /*<>*/ } + /*<>*/ return /*<>*/ bal + (t1, x, d, /*<>*/ remove_min_binding(t2)) /*<>*/ ; + } function remove(x, m){ - /*<>*/ if(! m) /*<>*/ return 0; - /*<>*/ var - r = m[4], + /*<>*/ if(! m) /*<>*/ return 0; + var + r = /*<>*/ m[4], d = m[3], v = m[2], l = m[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) - /*<>*/ return _d_(l, r); - if(0 <= c){ - /*<>*/ /*<>*/ var rr = remove(x, r); - return r === rr ? m : bal(l, v, d, rr); + /*<>*/ return _d_(l, r) /*<>*/ ; + /*<>*/ if(0 <= c){ + var rr = /*<>*/ remove(x, r); + /*<>*/ return r === rr + ? m + : /*<>*/ bal(l, v, d, rr) /*<>*/ ; } - /*<>*/ /*<>*/ var ll = remove(x, l); - return l === ll ? m : bal(ll, v, d, r); + var ll = /*<>*/ remove(x, l); + /*<>*/ return l === ll + ? m + : /*<>*/ bal(ll, v, d, r) /*<>*/ ; } function update(x, f, m){ - /*<>*/ if(! m){ - /*<>*/ /*<>*/ var - match$0 = /*<>*/ caml_call1(f, 0); - if(! match$0) /*<>*/ return 0; - var data$0 = match$0[1]; - /*<>*/ return [0, 0, x, data$0, 0, 1]; + /*<>*/ if(! m){ + var match$0 = /*<>*/ caml_call1(f, 0); + /*<>*/ if(! match$0) + /*<>*/ return 0; + var data$0 = /*<>*/ match$0[1]; + /*<>*/ return [0, 0, x, data$0, 0, 1]; } - /*<>*/ var - h = m[5], + var + h = /*<>*/ m[5], r = m[4], d = m[3], v = m[2], l = m[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(f, [0, d]); - if(! match) /*<>*/ return _d_(l, r); - var data = match[1]; - return d === data ? m : [0, l, x, data, r, h]; + var match = /*<>*/ caml_call1(f, [0, d]); + /*<>*/ if(! match) + /*<>*/ return _d_(l, r) /*<>*/ ; + var data = /*<>*/ match[1]; + /*<>*/ return d === data ? m : [0, l, x, data, r, h] /*<>*/ ; } - if(0 <= c){ - /*<>*/ /*<>*/ var - rr = update(x, f, r); - return r === rr ? m : bal(l, v, d, rr); + /*<>*/ if(0 <= c){ + var rr = /*<>*/ update(x, f, r); + /*<>*/ return r === rr + ? m + : /*<>*/ bal(l, v, d, rr) /*<>*/ ; } - /*<>*/ /*<>*/ var - ll = update(x, f, l); - return l === ll ? m : bal(ll, v, d, r); + var ll = /*<>*/ update(x, f, l); + /*<>*/ return l === ll + ? m + : /*<>*/ bal(ll, v, d, r) /*<>*/ ; } function add_to_list(x, data, m){ function add(param){ /*<>*/ if(! param) /*<>*/ return [0, [0, data, 0]]; - var l = param[1]; + var l = /*<>*/ param[1]; /*<>*/ return [0, [0, data, l]]; /*<>*/ } - /*<>*/ return update(x, add, m); - /*<>*/ } + /*<>*/ return update(x, add, m) /*<>*/ ; + } function iter(f, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var r = param$0[4], d = param$0[3], v = param$0[2], l = param$0[1]; + var + r = /*<>*/ param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1]; /*<>*/ iter(f, l); - /*<>*/ /*<>*/ caml_call2(f, v, d); - param$0 = r; + /*<>*/ caml_call2(f, v, d); + /*<>*/ param$0 = r; } - } + /*<>*/ } function map(f, param){ - /*<>*/ if(! param) /*<>*/ return 0; - /*<>*/ var - h = param[5], + /*<>*/ if(! param) /*<>*/ return 0; + var + h = /*<>*/ param[5], r = param[4], d = param[3], v = param[2], l = param[1], - /*<>*/ l$0 = map(f, l), - /*<>*/ d$0 = /*<>*/ caml_call1(f, d), - /*<>*/ r$0 = map(f, r); - /*<>*/ return [0, l$0, v, d$0, r$0, h]; - } + l$0 = /*<>*/ map(f, l), + d$0 = /*<>*/ caml_call1(f, d), + r$0 = /*<>*/ map(f, r); + /*<>*/ return [0, l$0, v, d$0, r$0, h]; + /*<>*/ } function mapi(f, param){ - /*<>*/ if(! param) /*<>*/ return 0; - /*<>*/ var - h = param[5], + /*<>*/ if(! param) /*<>*/ return 0; + var + h = /*<>*/ param[5], r = param[4], d = param[3], v = param[2], l = param[1], - /*<>*/ l$0 = mapi(f, l), - /*<>*/ d$0 = - /*<>*/ caml_call2(f, v, d), - /*<>*/ r$0 = mapi(f, r); - /*<>*/ return [0, l$0, v, d$0, r$0, h]; - } + l$0 = /*<>*/ mapi(f, l), + d$0 = /*<>*/ caml_call2(f, v, d), + r$0 = /*<>*/ mapi(f, r); + /*<>*/ return [0, l$0, v, d$0, r$0, h]; + /*<>*/ } function fold(f, m, accu){ - /*<>*/ var m$0 = m, accu$0 = accu; - /*<>*/ for(;;){ + var m$0 = /*<>*/ m, accu$0 = accu; + for(;;){ if(! m$0) /*<>*/ return accu$0; - /*<>*/ var - r = m$0[4], + var + r = /*<>*/ m$0[4], d = m$0[3], v = m$0[2], l = m$0[1], - /*<>*/ accu$1 = - /*<>*/ caml_call3(f, v, d, fold(f, l, accu$0)); - m$0 = r; + accu$1 = + /*<>*/ /*<>*/ caml_call3 + (f, v, d, /*<>*/ fold(f, l, accu$0)); + /*<>*/ m$0 = r; accu$0 = accu$1; } - /*<>*/ } + } function for_all(p, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 1; - /*<>*/ var - r = param$0[4], + var + r = /*<>*/ param$0[4], d = param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ _B_ = - /*<>*/ caml_call2(p, v, d); - /*<>*/ if(_B_){ - /*<>*/ /*<>*/ var - _C_ = for_all(p, l); - /*<>*/ if(_C_){param$0 = r; continue;} + _B_ = /*<>*/ caml_call2(p, v, d); + /*<>*/ if(_B_){ + var _C_ = /*<>*/ for_all(p, l); + /*<>*/ if(_C_){param$0 = r; continue;} var _D_ = _C_; } else - var _D_ = _B_; - /*<>*/ return _D_; + var _D_ = /*<>*/ _B_; + return _D_; } - } + /*<>*/ } function exists(p, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - /*<>*/ var - r = param$0[4], + var + r = /*<>*/ param$0[4], d = param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ _y_ = - /*<>*/ caml_call2(p, v, d); - /*<>*/ if(_y_) + _y_ = /*<>*/ caml_call2(p, v, d); + /*<>*/ if(_y_) var _z_ = _y_; else{ - /*<>*/ /*<>*/ var - _A_ = exists(p, l); - /*<>*/ if(! _A_){param$0 = r; continue;} + var _A_ = /*<>*/ exists(p, l); + /*<>*/ if(! _A_){param$0 = r; continue;} var _z_ = _A_; } - /*<>*/ return _z_; + /*<>*/ return _z_; } - } + /*<>*/ } function add_min_binding(k, x, param){ - /*<>*/ if(! param) /*<>*/ return singleton(k, x); - var r = param[4], d = param[3], v = param[2], l = param[1]; - /*<>*/ return bal(add_min_binding(k, x, l), v, d, r); + /*<>*/ if(! param) + /*<>*/ return singleton(k, x) /*<>*/ ; + var + r = /*<>*/ param[4], + d = param[3], + v = param[2], + l = param[1]; + /*<>*/ return /*<>*/ bal + ( /*<>*/ add_min_binding(k, x, l), v, d, r) /*<>*/ ; } function add_max_binding(k, x, param){ - /*<>*/ if(! param) /*<>*/ return singleton(k, x); - var r = param[4], d = param[3], v = param[2], l = param[1]; - /*<>*/ return bal(l, v, d, add_max_binding(k, x, r)); + /*<>*/ if(! param) + /*<>*/ return singleton(k, x) /*<>*/ ; + var + r = /*<>*/ param[4], + d = param[3], + v = param[2], + l = param[1]; + /*<>*/ return /*<>*/ bal + (l, v, d, /*<>*/ add_max_binding(k, x, r)) /*<>*/ ; } function join(l, v, d, r){ /*<>*/ if(! l) - /*<>*/ return add_min_binding(v, d, r); - if(! r) /*<>*/ return add_max_binding(v, d, l); + /*<>*/ return add_min_binding(v, d, r) /*<>*/ ; + /*<>*/ if(! r) + /*<>*/ return add_max_binding(v, d, l) /*<>*/ ; var - rh = r[5], + rh = /*<>*/ r[5], rr = r[4], rd = r[3], rv = r[2], @@ -11817,91 +11663,91 @@ ld = l[3], lv = l[2], ll = l[1]; - return (rh + 2 | 0) < lh - ? bal(ll, lv, ld, join(lr, v, d, r)) + /*<>*/ return (rh + 2 | 0) < lh + ? /*<>*/ bal + (ll, lv, ld, /*<>*/ join(lr, v, d, r)) : (lh + 2 | 0) < rh - ? bal(join(l, v, d, rl), rv, rd, rr) - : create(l, v, d, r); - /*<>*/ } + ? /*<>*/ bal + ( /*<>*/ join(l, v, d, rl), rv, rd, rr) + : /*<>*/ create(l, v, d, r) /*<>*/ ; + } function concat(t1, t2){ /*<>*/ if(! t1) /*<>*/ return t2; - if(! t2) /*<>*/ return t1; - /*<>*/ var - /*<>*/ match = min_binding(t2), - d = match[2], + /*<>*/ if(! t2) /*<>*/ return t1; + var + match = /*<>*/ min_binding(t2), + d = /*<>*/ match[2], x = match[1]; - /*<>*/ return join(t1, x, d, remove_min_binding(t2)); - /*<>*/ } + /*<>*/ return /*<>*/ join + (t1, x, d, /*<>*/ remove_min_binding(t2)) /*<>*/ ; + } function concat_or_join(t1, v, d, t2){ /*<>*/ if(! d) - /*<>*/ return concat(t1, t2); - var d$0 = d[1]; - /*<>*/ return join(t1, v, d$0, t2); - /*<>*/ } + /*<>*/ return concat(t1, t2) /*<>*/ ; + var d$0 = /*<>*/ d[1]; + /*<>*/ return join(t1, v, d$0, t2) /*<>*/ ; + } function split(x, param){ - /*<>*/ if(! param) /*<>*/ return _a_; - /*<>*/ var - r = param[4], + /*<>*/ if(! param) /*<>*/ return _a_; + var + r = /*<>*/ param[4], d = param[3], v = param[2], l = param[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], x, v); + c = /*<>*/ caml_call2(Ord[1], x, v); /*<>*/ if(0 === c) /*<>*/ return [0, l, [0, d], r]; - if(0 <= c){ - /*<>*/ var - /*<>*/ match = split(x, r), - rr = match[3], + /*<>*/ if(0 <= c){ + var + match = /*<>*/ split(x, r), + rr = /*<>*/ match[3], pres = match[2], lr = match[1]; - /*<>*/ return [0, join(l, v, d, lr), pres, rr]; + /*<>*/ return [0, join(l, v, d, lr), pres, rr] /*<>*/ ; } - /*<>*/ var - /*<>*/ match$0 = split(x, l), - rl = match$0[3], + var + match$0 = /*<>*/ split(x, l), + rl = /*<>*/ match$0[3], pres$0 = match$0[2], ll = match$0[1]; - /*<>*/ return [0, ll, pres$0, join(rl, v, d, r)]; - } + /*<>*/ return [0, ll, pres$0, join(rl, v, d, r)] /*<>*/ ; + /*<>*/ } function merge(f, s1, s2){ /*<>*/ if(s1){ var h1 = s1[5], r1 = s1[4], d1 = s1[3], v1 = s1[2], l1 = s1[1]; - if(height(s2) <= h1){ - /*<>*/ var - /*<>*/ match = split(v1, s2), - r2 = match[3], + /*<>*/ if(height(s2) <= h1){ + var + match = /*<>*/ split(v1, s2), + r2 = /*<>*/ match[3], d2 = match[2], l2 = match[1], - /*<>*/ _u_ = merge(f, r1, r2), - /*<>*/ _v_ = - /*<>*/ caml_call3(f, v1, [0, d1], d2); - /*<>*/ return concat_or_join - (merge(f, l1, l2), v1, _v_, _u_); + _u_ = /*<>*/ merge(f, r1, r2), + _v_ = /*<>*/ caml_call3(f, v1, [0, d1], d2); + /*<>*/ return /*<>*/ concat_or_join + ( /*<>*/ merge(f, l1, l2), v1, _v_, _u_) /*<>*/ ; } } else if(! s2) /*<>*/ return 0; - if(! s2) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! s2) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _b_], 1); - /*<>*/ var - r2$0 = s2[4], + var + r2$0 = /*<>*/ s2[4], d2$0 = s2[3], v2 = s2[2], l2$0 = s2[1], - /*<>*/ match$0 = split(v2, s1), - r1$0 = match$0[3], + match$0 = /*<>*/ split(v2, s1), + r1$0 = /*<>*/ match$0[3], d1$0 = match$0[2], l1$0 = match$0[1], - /*<>*/ _w_ = merge(f, r1$0, r2$0), - /*<>*/ _x_ = - /*<>*/ caml_call3(f, v2, d1$0, [0, d2$0]); - /*<>*/ return concat_or_join - (merge(f, l1$0, l2$0), v2, _x_, _w_); - /*<>*/ } + _w_ = /*<>*/ merge(f, r1$0, r2$0), + _x_ = /*<>*/ caml_call3(f, v2, d1$0, [0, d2$0]); + /*<>*/ return /*<>*/ concat_or_join + ( /*<>*/ merge(f, l1$0, l2$0), v2, _x_, _w_) /*<>*/ ; + } function union(f, s1, s2){ /*<>*/ if(s1){ if(s2){ @@ -11916,126 +11762,123 @@ d1 = s1[3], v1 = s1[2], l1 = s1[1]; - if(h2 <= h1){ - /*<>*/ var - /*<>*/ match = split(v1, s2), - r2$0 = match[3], + /*<>*/ if(h2 <= h1){ + var + match = /*<>*/ split(v1, s2), + r2$0 = /*<>*/ match[3], d2$0 = match[2], l2$0 = match[1], - /*<>*/ l = union(f, l1, l2$0), - /*<>*/ r = union(f, r1, r2$0); + l = /*<>*/ union(f, l1, l2$0), + r = /*<>*/ union(f, r1, r2$0); /*<>*/ if(! d2$0) - /*<>*/ return join(l, v1, d1, r); - var d2$1 = d2$0[1]; - /*<>*/ return concat_or_join + /*<>*/ return join(l, v1, d1, r) /*<>*/ ; + var d2$1 = /*<>*/ d2$0[1]; + /*<>*/ return /*<>*/ concat_or_join (l, v1, /*<>*/ caml_call3(f, v1, d1, d2$1), - r); + r) /*<>*/ ; } - /*<>*/ var - /*<>*/ match$0 = split(v2, s1), - r1$0 = match$0[3], + var + match$0 = /*<>*/ split(v2, s1), + r1$0 = /*<>*/ match$0[3], d1$0 = match$0[2], l1$0 = match$0[1], - /*<>*/ l$0 = union(f, l1$0, l2), - /*<>*/ r$0 = union(f, r1$0, r2); + l$0 = /*<>*/ union(f, l1$0, l2), + r$0 = /*<>*/ union(f, r1$0, r2); /*<>*/ if(! d1$0) - /*<>*/ return join(l$0, v2, d2, r$0); - var d1$1 = d1$0[1]; - /*<>*/ return concat_or_join + /*<>*/ return join(l$0, v2, d2, r$0) /*<>*/ ; + var d1$1 = /*<>*/ d1$0[1]; + /*<>*/ return /*<>*/ concat_or_join (l$0, v2, /*<>*/ caml_call3(f, v2, d1$1, d2), - r$0); + r$0) /*<>*/ ; } - var s = s1; + var s = /*<>*/ s1; } else var s = s2; /*<>*/ return s; /*<>*/ } function filter(p, m){ - /*<>*/ if(! m) /*<>*/ return 0; - /*<>*/ var - r = m[4], + /*<>*/ if(! m) /*<>*/ return 0; + var + r = /*<>*/ m[4], d = m[3], v = m[2], l = m[1], - /*<>*/ l$0 = filter(p, l), - /*<>*/ pvd = - /*<>*/ caml_call2(p, v, d), - /*<>*/ r$0 = filter(p, r); + l$0 = /*<>*/ filter(p, l), + pvd = /*<>*/ caml_call2(p, v, d), + r$0 = /*<>*/ filter(p, r); /*<>*/ if(! pvd) - /*<>*/ return concat(l$0, r$0); - if(l === l$0 && r === r$0) /*<>*/ return m; - /*<>*/ return join(l$0, v, d, r$0); + /*<>*/ return concat(l$0, r$0) /*<>*/ ; + /*<>*/ if(l === l$0 && r === r$0) + /*<>*/ return m; + /*<>*/ return join(l$0, v, d, r$0) /*<>*/ ; } function filter_map(f, param){ - /*<>*/ if(! param) /*<>*/ return 0; - /*<>*/ var - r = param[4], + /*<>*/ if(! param) /*<>*/ return 0; + var + r = /*<>*/ param[4], d = param[3], v = param[2], l = param[1], - /*<>*/ l$0 = filter_map(f, l), - /*<>*/ fvd = - /*<>*/ caml_call2(f, v, d), - /*<>*/ r$0 = filter_map(f, r); + l$0 = /*<>*/ filter_map(f, l), + fvd = /*<>*/ caml_call2(f, v, d), + r$0 = /*<>*/ filter_map(f, r); /*<>*/ if(! fvd) - /*<>*/ return concat(l$0, r$0); - var d$0 = fvd[1]; - /*<>*/ return join(l$0, v, d$0, r$0); + /*<>*/ return concat(l$0, r$0) /*<>*/ ; + var d$0 = /*<>*/ fvd[1]; + /*<>*/ return join(l$0, v, d$0, r$0) /*<>*/ ; } function partition(p, param){ - /*<>*/ if(! param) /*<>*/ return _c_; - /*<>*/ var - r = param[4], + /*<>*/ if(! param) /*<>*/ return _c_; + var + r = /*<>*/ param[4], d = param[3], v = param[2], l = param[1], - /*<>*/ match = partition(p, l), - lf = match[2], + match = /*<>*/ partition(p, l), + lf = /*<>*/ match[2], lt = match[1], - /*<>*/ pvd = - /*<>*/ caml_call2(p, v, d), - /*<>*/ match$0 = partition(p, r), - rf = match$0[2], + pvd = /*<>*/ caml_call2(p, v, d), + match$0 = /*<>*/ partition(p, r), + rf = /*<>*/ match$0[2], rt = match$0[1]; /*<>*/ if(pvd){ - /*<>*/ /*<>*/ var - _s_ = concat(lf, rf); - /*<>*/ return [0, join(lt, v, d, rt), _s_]; + var _s_ = /*<>*/ concat(lf, rf); + /*<>*/ return [0, join(lt, v, d, rt), _s_] /*<>*/ ; } - /*<>*/ /*<>*/ var - _t_ = join(lf, v, d, rf); - /*<>*/ return [0, concat(lt, rt), _t_]; - } + var _t_ = /*<>*/ join(lf, v, d, rf); + /*<>*/ return [0, concat(lt, rt), _t_] /*<>*/ ; + /*<>*/ } function cons_enum(m, e){ - /*<>*/ var m$0 = m, e$0 = e; - /*<>*/ for(;;){ + var m$0 = /*<>*/ m, e$0 = e; + for(;;){ if(! m$0) /*<>*/ return e$0; - /*<>*/ var - r = m$0[4], + var + r = /*<>*/ m$0[4], d = m$0[3], v = m$0[2], l = m$0[1], - /*<>*/ e$1 = [0, v, d, r, e$0]; + e$1 = /*<>*/ [0, v, d, r, e$0]; m$0 = l; e$0 = e$1; } /*<>*/ } function compare(cmp, m1, m2){ - /*<>*/ var - /*<>*/ e2$2 = cons_enum(m2, 0), - /*<>*/ e1$2 = cons_enum(m1, 0), - e1 = e1$2, + var + e2$2 = /*<>*/ cons_enum(m2, 0), + e1$2 = /*<>*/ cons_enum(m1, 0), + e1 = /*<>*/ e1$2, e2 = e2$2; - /*<>*/ for(;;){ - if(! e1) return e2 ? -1 : 0; - if(! e2) /*<>*/ return 1; - /*<>*/ var - e2$0 = e2[4], + for(;;){ + /*<>*/ if(! e1) + return e2 ? -1 : 0 /*<>*/ ; + /*<>*/ if(! e2) /*<>*/ return 1; + var + e2$0 = /*<>*/ e2[4], r2 = e2[3], d2 = e2[2], v2 = e2[1], @@ -12043,31 +11886,30 @@ r1 = e1[3], d1 = e1[2], v1 = e1[1], - /*<>*/ c = - /*<>*/ caml_call2(Ord[1], v1, v2); + c = /*<>*/ caml_call2(Ord[1], v1, v2); /*<>*/ if(0 !== c) /*<>*/ return c; - /*<>*/ /*<>*/ var - c$0 = /*<>*/ caml_call2(cmp, d1, d2); + var c$0 = /*<>*/ caml_call2(cmp, d1, d2); /*<>*/ if(0 !== c$0) /*<>*/ return c$0; - /*<>*/ var - /*<>*/ e2$1 = cons_enum(r2, e2$0), - /*<>*/ e1$1 = cons_enum(r1, e1$0); - e1 = e1$1; + var + e2$1 = /*<>*/ cons_enum(r2, e2$0), + e1$1 = /*<>*/ cons_enum(r1, e1$0); + /*<>*/ e1 = e1$1; e2 = e2$1; } /*<>*/ } function equal(cmp, m1, m2){ - /*<>*/ var - /*<>*/ e2$2 = cons_enum(m2, 0), - /*<>*/ e1$2 = cons_enum(m1, 0), - e1 = e1$2, + var + e2$2 = /*<>*/ cons_enum(m2, 0), + e1$2 = /*<>*/ cons_enum(m1, 0), + e1 = /*<>*/ e1$2, e2 = e2$2; - /*<>*/ for(;;){ - if(! e1) return e2 ? 0 : 1; - if(! e2) /*<>*/ return 0; + for(;;){ + /*<>*/ if(! e1) + return e2 ? 0 : 1 /*<>*/ ; + /*<>*/ if(! e2) /*<>*/ return 0; var - e2$0 = e2[4], + e2$0 = /*<>*/ e2[4], r2 = e2[3], d2 = e2[2], v2 = e2[1], @@ -12076,102 +11918,102 @@ d1 = e1[2], v1 = e1[1], _p_ = - 0 === /*<>*/ caml_call2(Ord[1], v1, v2) ? 1 : 0; - if(_p_){ - /*<>*/ /*<>*/ var - _q_ = /*<>*/ caml_call2(cmp, d1, d2); - /*<>*/ if(_q_){ - /*<>*/ var - /*<>*/ e2$1 = cons_enum(r2, e2$0), - /*<>*/ e1$1 = cons_enum(r1, e1$0); - e1 = e1$1; + /*<>*/ 0 === caml_call2(Ord[1], v1, v2) ? 1 : 0; + /*<>*/ if(_p_){ + var _q_ = /*<>*/ caml_call2(cmp, d1, d2); + /*<>*/ if(_q_){ + var + e2$1 = /*<>*/ cons_enum(r2, e2$0), + e1$1 = /*<>*/ cons_enum(r1, e1$0); + /*<>*/ e1 = e1$1; e2 = e2$1; continue; } - var _r_ = _q_; + var _r_ = /*<>*/ _q_; } else - var _r_ = _p_; - /*<>*/ return _r_; + var _r_ = /*<>*/ _p_; + return _r_; } /*<>*/ } function cardinal(param){ /*<>*/ if(! param) /*<>*/ return 0; - /*<>*/ var - r = param[4], + var + r = /*<>*/ param[4], l = param[1], - /*<>*/ _o_ = cardinal(r); - return (cardinal(l) + 1 | 0) + _o_ | 0; + _o_ = /*<>*/ cardinal(r); + /*<>*/ return (cardinal(l) + 1 | 0) + _o_ | 0 /*<>*/ ; /*<>*/ } function bindings_aux(accu, param){ - var accu$0 = accu, param$0 = param; + var accu$0 = /*<>*/ accu, param$0 = param; for(;;){ if(! param$0) /*<>*/ return accu$0; - /*<>*/ var - r = param$0[4], + var + r = /*<>*/ param$0[4], d = param$0[3], v = param$0[2], l = param$0[1], - /*<>*/ accu$1 = - [0, [0, v, d], bindings_aux(accu$0, r)]; - accu$0 = accu$1; + accu$1 = + /*<>*/ [0, [0, v, d], bindings_aux(accu$0, r)]; + /*<>*/ accu$0 = accu$1; param$0 = l; } - } + /*<>*/ } function bindings(s){ - /*<>*/ return bindings_aux(0, s); - /*<>*/ } + /*<>*/ return bindings_aux(0, s) /*<>*/ ; + } function of_list(bs){ - /*<>*/ return /*<>*/ caml_call3 + /*<>*/ return caml_call3 (Stdlib_List[26], function(m, param){ - /*<>*/ var v = param[2], k = param[1]; - /*<>*/ return add(k, v, m); - /*<>*/ }, + var v = /*<>*/ param[2], k = param[1]; + /*<>*/ return add(k, v, m) /*<>*/ ; + }, empty, - bs); - /*<>*/ } + bs) /*<>*/ ; + } function add_seq(i, m){ - /*<>*/ return /*<>*/ caml_call3 + /*<>*/ return caml_call3 (Stdlib_Seq[5], function(m, param){ - /*<>*/ var v = param[2], k = param[1]; - /*<>*/ return add(k, v, m); - /*<>*/ }, + var v = /*<>*/ param[2], k = param[1]; + /*<>*/ return add(k, v, m) /*<>*/ ; + }, m, - i); - /*<>*/ } + i) /*<>*/ ; + } function of_seq(i){ - /*<>*/ return add_seq(i, empty); - /*<>*/ } + /*<>*/ return add_seq(i, empty) /*<>*/ ; + } function seq_of_enum(c, param){ /*<>*/ if(! c) /*<>*/ return 0; var - rest = c[4], + rest = /*<>*/ c[4], t = c[3], v = c[2], k = c[1], - /*<>*/ _m_ = cons_enum(t, rest); - /*<>*/ return [0, + _m_ = /*<>*/ cons_enum(t, rest); + /*<>*/ return [0, [0, k, v], - function(_n_){ /*<>*/ return seq_of_enum(_m_, _n_);}]; + function(_n_){ + /*<>*/ return seq_of_enum(_m_, _n_); + }] /*<>*/ ; /*<>*/ } function to_seq(m){ - /*<>*/ /*<>*/ var - _k_ = cons_enum(m, 0); - /*<>*/ return function(_l_){ - /*<>*/ return seq_of_enum(_k_, _l_);}; - /*<>*/ } + var _k_ = /*<>*/ cons_enum(m, 0); + /*<>*/ return function(_l_){ + return seq_of_enum(_k_, _l_);}; + } function snoc_enum(s, e){ - /*<>*/ var s$0 = s, e$0 = e; - /*<>*/ for(;;){ + var s$0 = /*<>*/ s, e$0 = e; + for(;;){ if(! s$0) /*<>*/ return e$0; - /*<>*/ var - r = s$0[4], + var + r = /*<>*/ s$0[4], d = s$0[3], v = s$0[2], l = s$0[1], - /*<>*/ e$1 = [0, v, d, l, e$0]; + e$1 = /*<>*/ [0, v, d, l, e$0]; s$0 = r; e$0 = e$1; } @@ -12179,55 +12021,54 @@ function rev_seq_of_enum(c, param){ /*<>*/ if(! c) /*<>*/ return 0; var - rest = c[4], + rest = /*<>*/ c[4], t = c[3], v = c[2], k = c[1], - /*<>*/ _i_ = snoc_enum(t, rest); - /*<>*/ return [0, + _i_ = /*<>*/ snoc_enum(t, rest); + /*<>*/ return [0, [0, k, v], - function(_j_){ /*<>*/ return rev_seq_of_enum(_i_, _j_);}]; + function(_j_){ + /*<>*/ return rev_seq_of_enum(_i_, _j_); + }] /*<>*/ ; /*<>*/ } function to_rev_seq(c){ - /*<>*/ /*<>*/ var - _g_ = snoc_enum(c, 0); - /*<>*/ return function(_h_){ - /*<>*/ return rev_seq_of_enum(_g_, _h_);}; - /*<>*/ } + var _g_ = /*<>*/ snoc_enum(c, 0); + /*<>*/ return function(_h_){ + return rev_seq_of_enum(_g_, _h_);}; + } function to_seq_from(low, m){ - /*<>*/ a: + a: { b: { - var m$0 = m, c = 0; - /*<>*/ for(;;){ - if(! m$0) break; - /*<>*/ var + var m$0 = /*<>*/ m, c = 0; + for(;;){ + /*<>*/ if(! m$0) break; + var r = m$0[4], d = m$0[3], v = m$0[2], l = m$0[1], - /*<>*/ n = - /*<>*/ caml_call2(Ord[1], v, low); - if(0 === n) break b; - if(0 <= n){ - /*<>*/ /*<>*/ var - c$0 = [0, v, d, r, c]; + n = /*<>*/ caml_call2(Ord[1], v, low); + /*<>*/ if(0 === n) break b; + /*<>*/ if(0 <= n){ + var c$0 = /*<>*/ [0, v, d, r, c]; m$0 = l; c = c$0; } else - m$0 = r; + /*<>*/ m$0 = r; } - var _e_ = c; + var _e_ = /*<>*/ c; break a; } - var _e_ = [0, v, d, r, c]; + var _e_ = /*<>*/ [0, v, d, r, c]; } - /*<>*/ return function(_f_){ - /*<>*/ return seq_of_enum(_e_, _f_);}; - /*<>*/ } - return [0, + /*<>*/ return function(_f_){ + return seq_of_enum(_e_, _f_);}; + } + /*<>*/ return [0, empty, add, add_to_list, @@ -12274,7 +12115,7 @@ }]; runtime.caml_register_global(12, Stdlib_Map, "Stdlib__Map"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Stack @@ -12285,33 +12126,32 @@ var runtime = globalThis.jsoo_runtime, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ var + var global_data = runtime.caml_get_global_data(), Stdlib_Seq = global_data.Stdlib__Seq, Stdlib_List = global_data.Stdlib__List, - /*<>*/ Empty = - [248, "Stdlib.Stack.Empty", runtime.caml_fresh_oo_id(0)]; + Empty = [248, "Stdlib.Stack.Empty", runtime.caml_fresh_oo_id(0)]; function create(param){ /*<>*/ return [0, 0, 0]; /*<>*/ } function clear(s){ /*<>*/ s[1] = 0; - s[2] = 0; + /*<>*/ s[2] = 0; return 0; /*<>*/ } function copy(s){ @@ -12319,49 +12159,46 @@ /*<>*/ } function push(x, s){ /*<>*/ s[1] = [0, x, s[1]]; - s[2] = s[2] + 1 | 0; + /*<>*/ s[2] = s[2] + 1 | 0; return 0; /*<>*/ } function pop(s){ - /*<>*/ var match = s[1]; + var match = /*<>*/ s[1]; if(! match) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Empty, 1); - var tl = match[2], hd = match[1]; - s[1] = tl; - s[2] = s[2] - 1 | 0; + /*<>*/ throw caml_maybe_attach_backtrace(Empty, 1); + var tl = /*<>*/ match[2], hd = match[1]; + /*<>*/ s[1] = tl; + /*<>*/ s[2] = s[2] - 1 | 0; /*<>*/ return hd; /*<>*/ } function pop_opt(s){ - /*<>*/ var match = s[1]; + var match = /*<>*/ s[1]; if(! match) /*<>*/ return 0; - var tl = match[2], hd = match[1]; - s[1] = tl; - s[2] = s[2] - 1 | 0; + var tl = /*<>*/ match[2], hd = match[1]; + /*<>*/ s[1] = tl; + /*<>*/ s[2] = s[2] - 1 | 0; /*<>*/ return [0, hd]; /*<>*/ } function drop(s){ - /*<>*/ var match = s[1]; + var match = /*<>*/ s[1]; if(! match) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Empty, 1); - var tl = match[2]; - s[1] = tl; - s[2] = s[2] - 1 | 0; + /*<>*/ throw caml_maybe_attach_backtrace(Empty, 1); + var tl = /*<>*/ match[2]; + /*<>*/ s[1] = tl; + /*<>*/ s[2] = s[2] - 1 | 0; return 0; /*<>*/ } function top(s){ - /*<>*/ var match = s[1]; + var match = /*<>*/ s[1]; if(! match) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Empty, 1); - var hd = match[1]; + /*<>*/ throw caml_maybe_attach_backtrace(Empty, 1); + var hd = /*<>*/ match[1]; /*<>*/ return hd; /*<>*/ } function top_opt(s){ - /*<>*/ var match = s[1]; + var match = /*<>*/ s[1]; if(! match) /*<>*/ return 0; - var hd = match[1]; + var hd = /*<>*/ match[1]; /*<>*/ return [0, hd]; /*<>*/ } function is_empty(s){ @@ -12371,30 +12208,30 @@ /*<>*/ return s[2]; /*<>*/ } function iter(f, s){ - /*<>*/ return caml_call2(Stdlib_List[18], f, s[1]); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib_List[18], f, s[1]) /*<>*/ ; + } function fold(f, acc, s){ - /*<>*/ return caml_call3(Stdlib_List[26], f, acc, s[1]); - /*<>*/ } + /*<>*/ return caml_call3(Stdlib_List[26], f, acc, s[1]) /*<>*/ ; + } function to_seq(s){ - /*<>*/ return caml_call1(Stdlib_List[64], s[1]); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_List[64], s[1]) /*<>*/ ; + } function add_seq(q, i){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], function(x){ - /*<>*/ return push(x, q); - /*<>*/ }, - i); - /*<>*/ } + /*<>*/ return push(x, q) /*<>*/ ; + }, + i) /*<>*/ ; + } function of_seq(g){ - /*<>*/ /*<>*/ var s = create(0); + var s = /*<>*/ create(0); /*<>*/ add_seq(s, g); - /*<>*/ return s; + /*<>*/ return s; /*<>*/ } var Stdlib_Stack = - [0, + /*<>*/ [0, Empty, create, push, @@ -12414,7 +12251,7 @@ of_seq]; runtime.caml_register_global(3, Stdlib_Stack, "Stdlib__Stack"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Queue @@ -12425,97 +12262,97 @@ var runtime = globalThis.jsoo_runtime, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ var + var global_data = runtime.caml_get_global_data(), Stdlib_Seq = global_data.Stdlib__Seq, - /*<>*/ Empty = - [248, "Stdlib.Queue.Empty", runtime.caml_fresh_oo_id(0)]; + Empty = [248, "Stdlib.Queue.Empty", runtime.caml_fresh_oo_id(0)]; function create(param){ /*<>*/ return [0, 0, 0, 0]; /*<>*/ } function clear(q){ /*<>*/ q[1] = 0; - q[2] = 0; - q[3] = 0; + /*<>*/ q[2] = 0; + /*<>*/ q[3] = 0; return 0; /*<>*/ } function add(x, q){ - /*<>*/ var - /*<>*/ cell = [0, x, 0], - /*<>*/ match = q[3]; + var + cell = /*<>*/ [0, x, 0], + match = /*<>*/ q[3]; return match ? (q[1] = q[1] + 1 | 0, match[2] = cell, q[3] = cell, 0) - : (q[1] = 1, q[2] = cell, q[3] = cell, 0); - /*<>*/ } + : (q[1] = 1, q[2] = cell, q[3] = cell, 0) /*<>*/ ; + } function peek(q){ - /*<>*/ var match = q[2]; + var match = /*<>*/ q[2]; if(! match) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Empty, 1); - var content = match[1]; + /*<>*/ throw caml_maybe_attach_backtrace(Empty, 1); + var content = /*<>*/ match[1]; /*<>*/ return content; /*<>*/ } function peek_opt(q){ - /*<>*/ var match = q[2]; + var match = /*<>*/ q[2]; if(! match) /*<>*/ return 0; - var content = match[1]; + var content = /*<>*/ match[1]; /*<>*/ return [0, content]; /*<>*/ } function take(q){ - /*<>*/ var _f_ = q[2]; + var _f_ = /*<>*/ q[2]; if(! _f_) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Empty, 1); - var content = _f_[1]; + /*<>*/ throw caml_maybe_attach_backtrace(Empty, 1); + var content = /*<>*/ _f_[1]; if(_f_[2]){ var next = _f_[2]; - q[1] = q[1] - 1 | 0; - q[2] = next; + /*<>*/ q[1] = q[1] - 1 | 0; + /*<>*/ q[2] = next; /*<>*/ return content; } /*<>*/ clear(q); - /*<>*/ return content; + /*<>*/ return content; /*<>*/ } function take_opt(q){ - /*<>*/ var _e_ = q[2]; + var _e_ = /*<>*/ q[2]; if(! _e_) /*<>*/ return 0; - var content = _e_[1]; + var content = /*<>*/ _e_[1]; if(_e_[2]){ var next = _e_[2]; - q[1] = q[1] - 1 | 0; - q[2] = next; + /*<>*/ q[1] = q[1] - 1 | 0; + /*<>*/ q[2] = next; /*<>*/ return [0, content]; } /*<>*/ clear(q); - /*<>*/ return [0, content]; + /*<>*/ return [0, content]; /*<>*/ } function copy(q){ - /*<>*/ var - cell$0 = q[2], - /*<>*/ q_res = [0, q[1], 0, 0], + var + cell$0 = /*<>*/ q[2], + q_res = [0, q[1], 0, 0], prev = 0, cell = cell$0; - /*<>*/ for(;;){ - if(! cell){q_res[3] = prev; /*<>*/ return q_res;} - /*<>*/ var - content = cell[1], + for(;;){ + /*<>*/ if(! cell){ + /*<>*/ q_res[3] = prev; + /*<>*/ return q_res; + } + var + content = /*<>*/ cell[1], next = cell[2], - /*<>*/ prev$0 = [0, content, 0]; + prev$0 = /*<>*/ [0, content, 0]; /*<>*/ if(prev) - prev[2] = prev$0; + /*<>*/ prev[2] = prev$0; else - q_res[2] = prev$0; - prev = prev$0; + /*<>*/ q_res[2] = prev$0; + /*<>*/ prev = prev$0; cell = next; } /*<>*/ } @@ -12526,68 +12363,72 @@ /*<>*/ return q[1]; /*<>*/ } function iter(f, q){ - /*<>*/ var cell$0 = q[2], cell = cell$0; - /*<>*/ for(;;){ - if(! cell) /*<>*/ return 0; - var content = cell[1], next = cell[2]; - /*<>*/ /*<>*/ caml_call1(f, content); - cell = next; + var cell$0 = /*<>*/ q[2], cell = cell$0; + for(;;){ + /*<>*/ if(! cell) /*<>*/ return 0; + var content = /*<>*/ cell[1], next = cell[2]; + /*<>*/ caml_call1(f, content); + /*<>*/ cell = next; } /*<>*/ } function fold(f, accu$1, q){ - /*<>*/ var cell$0 = q[2], accu = accu$1, cell = cell$0; - /*<>*/ for(;;){ - if(! cell) /*<>*/ return accu; - /*<>*/ var - content = cell[1], + var cell$0 = /*<>*/ q[2], accu = accu$1, cell = cell$0; + for(;;){ + /*<>*/ if(! cell) /*<>*/ return accu; + var + content = /*<>*/ cell[1], next = cell[2], - /*<>*/ accu$0 = - /*<>*/ caml_call2(f, accu, content); - accu = accu$0; + accu$0 = /*<>*/ caml_call2(f, accu, content); + /*<>*/ accu = accu$0; cell = next; } /*<>*/ } function transfer(q1, q2){ - /*<>*/ var _d_ = 0 < q1[1] ? 1 : 0; + var _d_ = /*<>*/ 0 < q1[1] ? 1 : 0; if(! _d_) return _d_; - var match = q2[3]; + var match = /*<>*/ q2[3]; return match ? (q2 [1] = q2[1] + q1[1] | 0, match[2] = q1[2], q2[3] = q1[3], - clear(q1)) - : (q2[1] = q1[1], q2[2] = q1[2], q2[3] = q1[3], clear(q1)); - /*<>*/ } + /*<>*/ clear(q1)) + : (q2 + [1] + = q1[1], + q2[2] = q1[2], + q2[3] = q1[3], + /*<>*/ clear(q1)) /*<>*/ ; + } function to_seq(q){ - /*<>*/ function aux(c, param){ + function aux(c, param){ /*<>*/ if(! c) /*<>*/ return 0; - var x = c[1], next = c[2]; - /*<>*/ return [0, + var x = /*<>*/ c[1], next = c[2]; + /*<>*/ return [0, x, - function(_c_){ /*<>*/ return aux(next, _c_);}]; + function(_c_){ /*<>*/ return aux(next, _c_);}] /*<>*/ ; /*<>*/ } - var _a_ = q[2]; - /*<>*/ return function(_b_){ - /*<>*/ return aux(_a_, _b_);}; + var _a_ = /*<>*/ q[2]; + return function(_b_){ + /*<>*/ return aux(_a_, _b_);} /*<>*/ ; /*<>*/ } function add_seq(q, i){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], function(x){ - /*<>*/ return add(x, q); - /*<>*/ }, - i); - /*<>*/ } + /*<>*/ return add(x, q) /*<>*/ ; + }, + i) /*<>*/ ; + } function of_seq(g){ - /*<>*/ /*<>*/ var q = create(0); + var q = /*<>*/ create(0); /*<>*/ add_seq(q, g); - /*<>*/ return q; + /*<>*/ return q; /*<>*/ } var Stdlib_Queue = - [0, + /*<>*/ [0, Empty, create, add, @@ -12636,27 +12477,27 @@ caml_ml_string_length = runtime.caml_ml_string_length, caml_string_get = runtime.caml_string_get, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); @@ -12675,29 +12516,27 @@ cst_Buffer_add_cannot_grow_buf = "Buffer.add: cannot grow buffer", dummy = 0; function create(n){ - /*<>*/ var - n$0 = 1 <= n ? n : 1, - n$1 = Stdlib_Sys[12] < n$0 ? Stdlib_Sys[12] : n$0, - /*<>*/ s = - /*<>*/ caml_create_bytes(n$1); + var + n$0 = /*<>*/ 1 <= n ? n : 1, + n$1 = /*<>*/ Stdlib_Sys[12] < n$0 ? Stdlib_Sys[12] : n$0, + s = /*<>*/ caml_create_bytes(n$1); /*<>*/ return [0, [0, s, n$1], 0, s]; /*<>*/ } function contents(b){ /*<>*/ return caml_call3 - (Stdlib_Bytes[8], b[1][1], 0, b[2]); - /*<>*/ } + (Stdlib_Bytes[8], b[1][1], 0, b[2]) /*<>*/ ; + } function to_bytes(b){ /*<>*/ return caml_call3 - (Stdlib_Bytes[7], b[1][1], 0, b[2]); - /*<>*/ } + (Stdlib_Bytes[7], b[1][1], 0, b[2]) /*<>*/ ; + } function sub(b, ofs, len){ /*<>*/ if (0 <= ofs && 0 <= len && (b[2] - len | 0) >= ofs) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Bytes[8], b[1][1], ofs, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Buffer_sub); - /*<>*/ } + /*<>*/ return caml_call3 + (Stdlib_Bytes[8], b[1][1], ofs, len) /*<>*/ ; + /*<>*/ return caml_call1(Stdlib[1], cst_Buffer_sub) /*<>*/ ; + } function blit(src, srcoff, dst, dstoff, len){ /*<>*/ if (0 <= len @@ -12706,22 +12545,21 @@ && (src[2] - len | 0) >= srcoff && 0 <= dstoff && (caml_ml_bytes_length(dst) - len | 0) >= dstoff) - /*<>*/ return /*<>*/ caml_call5 - (Stdlib_Bytes[11], src[1][1], srcoff, dst, dstoff, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Buffer_blit); - /*<>*/ } + /*<>*/ return caml_call5 + (Stdlib_Bytes[11], src[1][1], srcoff, dst, dstoff, len) /*<>*/ ; + /*<>*/ return caml_call1(Stdlib[1], cst_Buffer_blit) /*<>*/ ; + } function nth(b, ofs){ - /*<>*/ var - position = b[2], - /*<>*/ match = b[1], + var + position = /*<>*/ b[2], + match = /*<>*/ b[1], length = match[2], buffer = match[1]; - if(0 <= ofs && position > ofs && length >= position) - return runtime.caml_bytes_unsafe_get(buffer, ofs); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Buffer_nth); - /*<>*/ } + /*<>*/ if + (0 <= ofs && position > ofs && length >= position) + /*<>*/ return runtime.caml_bytes_unsafe_get(buffer, ofs) /*<>*/ ; + /*<>*/ return caml_call1(Stdlib[1], cst_Buffer_nth) /*<>*/ ; + } function length(b){ /*<>*/ return b[2]; /*<>*/ } @@ -12731,50 +12569,47 @@ /*<>*/ } function reset(b){ /*<>*/ b[2] = 0; - /*<>*/ /*<>*/ var - inner = [0, b[3], caml_ml_bytes_length(b[3])]; - b[1] = inner; + var inner = /*<>*/ [0, b[3], caml_ml_bytes_length(b[3])]; + /*<>*/ b[1] = inner; return 0; /*<>*/ } function resize(b, more){ - /*<>*/ var - old_pos = b[2], - old_len = b[1][2], - /*<>*/ new_len = [0, old_len]; - for(;;){ + var + old_pos = /*<>*/ b[2], + old_len = /*<>*/ b[1][2], + new_len = /*<>*/ [0, old_len]; + /*<>*/ for(;;){ if(new_len[1] >= (old_pos + more | 0)) break; - new_len[1] = 2 * new_len[1] | 0; + /*<>*/ new_len[1] = 2 * new_len[1] | 0; } - if(Stdlib_Sys[12] < new_len[1]) - if((old_pos + more | 0) <= Stdlib_Sys[12]) - new_len[1] = Stdlib_Sys[12]; + /*<>*/ if(Stdlib_Sys[12] < new_len[1]) + /*<>*/ if((old_pos + more | 0) <= Stdlib_Sys[12]) + /*<>*/ new_len[1] = Stdlib_Sys[12]; else - /*<>*/ /*<>*/ caml_call1 + /*<>*/ caml_call1 (Stdlib[2], cst_Buffer_add_cannot_grow_buf); - /*<>*/ /*<>*/ var - new_buffer = /*<>*/ caml_create_bytes(new_len[1]); - /*<>*/ /*<>*/ caml_call5 + var new_buffer = /*<>*/ caml_create_bytes(new_len[1]); + /*<>*/ caml_call5 (Stdlib_Bytes[11], b[1][1], 0, new_buffer, 0, b[2]); - b[1] = [0, new_buffer, new_len[1]]; + /*<>*/ b[1] = [0, new_buffer, new_len[1]]; /*<>*/ } function add_char(b, c){ - /*<>*/ var - pos = b[2], - /*<>*/ match = b[1], + var + pos = /*<>*/ b[2], + match = /*<>*/ b[1], length = match[2], buffer = match[1]; - if(length <= pos){ + /*<>*/ if(length <= pos){ /*<>*/ resize(b, 1); - /*<>*/ /*<>*/ caml_bytes_set - (b[1][1], b[2], c); + /*<>*/ caml_bytes_set(b[1][1], b[2], c); } else - caml_bytes_unsafe_set(buffer, pos, c); - b[2] = pos + 1 | 0; + /*<>*/ caml_bytes_unsafe_set(buffer, pos, c); + /*<>*/ b[2] = pos + 1 | 0; return 0; /*<>*/ } var - uchar_utf_8_byte_length_max = 4, + uchar_utf_8_byte_length_max = /*<>*/ 4, uchar_utf_16_byte_length_max = 4, cst_Buffer_add_substring_add_s = "Buffer.add_substring/add_subbytes", cst_Buffer_add_channel = "Buffer.add_channel", @@ -12783,44 +12618,53 @@ function add_utf_8_uchar(b, u){ /*<>*/ for(;;){ var pos = b[2]; - if(b[1][2] <= pos) + /*<>*/ if(b[1][2] <= pos) /*<>*/ resize(b, uchar_utf_8_byte_length_max); - /*<>*/ /*<>*/ var + var n = /*<>*/ caml_call3 (Stdlib_Bytes[51], b[1][1], pos, u); - /*<>*/ if(0 !== n){b[2] = pos + n | 0; return 0;} + /*<>*/ if(0 !== n){ + /*<>*/ b[2] = pos + n | 0; + return 0; + } /*<>*/ resize(b, uchar_utf_8_byte_length_max); } /*<>*/ } function add_utf_16be_uchar(b, u){ /*<>*/ for(;;){ var pos = b[2]; - if(b[1][2] <= pos) + /*<>*/ if(b[1][2] <= pos) /*<>*/ resize(b, uchar_utf_16_byte_length_max); - /*<>*/ /*<>*/ var + var n = /*<>*/ caml_call3 (Stdlib_Bytes[54], b[1][1], pos, u); - /*<>*/ if(0 !== n){b[2] = pos + n | 0; return 0;} + /*<>*/ if(0 !== n){ + /*<>*/ b[2] = pos + n | 0; + return 0; + } /*<>*/ resize(b, uchar_utf_16_byte_length_max); } /*<>*/ } function add_utf_16le_uchar(b, u){ /*<>*/ for(;;){ var pos = b[2]; - if(b[1][2] <= pos) + /*<>*/ if(b[1][2] <= pos) /*<>*/ resize(b, uchar_utf_16_byte_length_max); - /*<>*/ /*<>*/ var + var n = /*<>*/ caml_call3 (Stdlib_Bytes[57], b[1][1], pos, u); - /*<>*/ if(0 !== n){b[2] = pos + n | 0; return 0;} + /*<>*/ if(0 !== n){ + /*<>*/ b[2] = pos + n | 0; + return 0; + } /*<>*/ resize(b, uchar_utf_16_byte_length_max); } /*<>*/ } function add_substring(b, s, offset, len){ - /*<>*/ var _s_ = offset < 0 ? 1 : 0; + var _s_ = /*<>*/ offset < 0 ? 1 : 0; if(_s_) var _t_ = _s_; else @@ -12828,134 +12672,128 @@ _u_ = len < 0 ? 1 : 0, _t_ = _u_ || ((caml_ml_string_length(s) - len | 0) < offset ? 1 : 0); if(_t_) - /*<>*/ /*<>*/ caml_call1 + /*<>*/ caml_call1 (Stdlib[1], cst_Buffer_add_substring_add_s); - /*<>*/ var - position = b[2], - /*<>*/ match = b[1], + var + position = /*<>*/ b[2], + match = /*<>*/ b[1], length = match[2], buffer = match[1], - new_position = position + len | 0; - if(length < new_position){ + new_position = /*<>*/ position + len | 0; + /*<>*/ if(length < new_position){ /*<>*/ resize(b, len); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_Bytes[12], s, offset, b[1][1], b[2], len); } else - /*<>*/ /*<>*/ caml_blit_string + /*<>*/ caml_blit_string (s, offset, buffer, position, len); - b[2] = new_position; + /*<>*/ b[2] = new_position; return 0; /*<>*/ } function add_subbytes(b, s, offset, len){ - /*<>*/ return add_substring + /*<>*/ return /*<>*/ add_substring (b, /*<>*/ caml_call1(Stdlib_Bytes[44], s), offset, - len); - /*<>*/ } + len) /*<>*/ ; + } function add_string(b, s){ - /*<>*/ var - len = caml_ml_string_length(s), - /*<>*/ position = b[2], - /*<>*/ match = b[1], + var + len = /*<>*/ caml_ml_string_length(s), + position = /*<>*/ b[2], + match = /*<>*/ b[1], length = match[2], buffer = match[1], - new_position = position + len | 0; - if(length < new_position){ + new_position = /*<>*/ position + len | 0; + /*<>*/ if(length < new_position){ /*<>*/ resize(b, len); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_Bytes[12], s, 0, b[1][1], b[2], len); } else - /*<>*/ /*<>*/ caml_blit_string - (s, 0, buffer, position, len); - b[2] = new_position; + /*<>*/ caml_blit_string(s, 0, buffer, position, len); + /*<>*/ b[2] = new_position; return 0; /*<>*/ } function add_bytes(b, s){ - /*<>*/ return add_string - (b, /*<>*/ caml_call1(Stdlib_Bytes[44], s)); - /*<>*/ } + /*<>*/ return /*<>*/ add_string + (b, /*<>*/ caml_call1(Stdlib_Bytes[44], s)) /*<>*/ ; + } function add_buffer(b, bs){ - /*<>*/ return add_subbytes(b, bs[1][1], 0, bs[2]); - /*<>*/ } + /*<>*/ return add_subbytes(b, bs[1][1], 0, bs[2]) /*<>*/ ; + } function add_channel(b, ic, to_read$1){ - /*<>*/ var - _q_ = to_read$1 < 0 ? 1 : 0, + var + _q_ = /*<>*/ to_read$1 < 0 ? 1 : 0, _r_ = _q_ || (Stdlib_Sys[12] < to_read$1 ? 1 : 0); if(_r_) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Buffer_add_channel); - if(b[1][2] < (b[2] + to_read$1 | 0)) + /*<>*/ caml_call1(Stdlib[1], cst_Buffer_add_channel); + /*<>*/ if(b[1][2] < (b[2] + to_read$1 | 0)) /*<>*/ resize(b, to_read$1); var - ofs$1 = b[2], + ofs$1 = /*<>*/ b[2], buf = b[1][1], - already_read = 0, + already_read = /*<>*/ 0, ofs = ofs$1, to_read = to_read$1; - /*<>*/ for(;;){ - if(0 !== to_read){ - /*<>*/ /*<>*/ var + for(;;){ + /*<>*/ if(0 !== to_read){ + var r = /*<>*/ caml_call4 (Stdlib[84], ic, buf, ofs, to_read); /*<>*/ if(0 !== r){ var - already_read$0 = already_read + r | 0, - ofs$0 = ofs + r | 0, - to_read$0 = to_read - r | 0; - already_read = already_read$0; + already_read$0 = /*<>*/ already_read + r | 0, + ofs$0 = /*<>*/ ofs + r | 0, + to_read$0 = /*<>*/ to_read - r | 0; + /*<>*/ already_read = already_read$0; ofs = ofs$0; to_read = to_read$0; continue; } } - b[2] = b[2] + already_read | 0; - if(already_read < to_read$1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ b[2] = b[2] + already_read | 0; + /*<>*/ if(already_read < to_read$1) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[12], 1); /*<>*/ return 0; } /*<>*/ } function output_buffer(oc, b){ /*<>*/ return caml_call4 - (Stdlib[68], oc, b[1][1], 0, b[2]); - /*<>*/ } + (Stdlib[68], oc, b[1][1], 0, b[2]) /*<>*/ ; + } function add_substitute(b, f, s){ - /*<>*/ var - lim$1 = caml_ml_string_length(s), - previous = 32, + var + lim$1 = /*<>*/ caml_ml_string_length(s), + previous = /*<>*/ 32, i$4 = 0; - /*<>*/ for(;;){ - if(i$4 >= lim$1){ - var _o_ = 92 === previous ? 1 : 0; - return _o_ ? add_char(b, previous) : _o_; - } - /*<>*/ /*<>*/ var - previous$0 = /*<>*/ caml_string_get(s, i$4); - if(36 === previous$0) - if(92 === previous){ + for(;;){ + /*<>*/ if(i$4 >= lim$1){ + var _o_ = /*<>*/ 92 === previous ? 1 : 0; + return _o_ ? /*<>*/ add_char(b, previous) : _o_ /*<>*/ ; + } + var previous$0 = /*<>*/ caml_string_get(s, i$4); + /*<>*/ if(36 === previous$0) + /*<>*/ if(92 === previous){ /*<>*/ add_char(b, previous$0); - /*<>*/ /*<>*/ var - i$5 = i$4 + 1 | 0; + var i$5 = /*<>*/ i$4 + 1 | 0; previous = 32; i$4 = i$5; } else{ - /*<>*/ /*<>*/ var - start = i$4 + 1 | 0; + var start = /*<>*/ i$4 + 1 | 0; /*<>*/ try{ - if(lim$1 <= start) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(lim$1 <= start) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ /*<>*/ var - opening = /*<>*/ caml_string_get(s, start); + var opening = /*<>*/ caml_string_get(s, start); a: { - if(40 !== opening && 123 !== opening){ - var lim$0 = caml_ml_string_length(s); + /*<>*/ if(40 !== opening && 123 !== opening){ + var lim$0 = /*<>*/ caml_ml_string_length(s); b: { c: @@ -12963,11 +12801,10 @@ d: { var i$2 = start; - /*<>*/ for(;;){ - if(lim$0 <= i$2) break c; - /*<>*/ /*<>*/ var - match = /*<>*/ caml_string_get(s, i$2); - if(91 <= match){ + for(;;){ + /*<>*/ if(lim$0 <= i$2) break c; + var match = /*<>*/ caml_string_get(s, i$2); + /*<>*/ if(91 <= match){ if(97 <= match){ if(123 <= match) break d; } @@ -12978,234 +12815,255 @@ if(65 > match) break; } else if(48 > match) break d; - var i$3 = i$2 + 1 | 0; + var i$3 = /*<>*/ i$2 + 1 | 0; i$2 = i$3; } } - var stop$0 = i$2; + var stop$0 = /*<>*/ i$2; break b; } - var stop$0 = lim$0; + var stop$0 = /*<>*/ lim$0; } - if(stop$0 === start) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(stop$0 === start) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); var val = - [0, + /*<>*/ [0, /*<>*/ caml_call3 (Stdlib_String[16], s, start, stop$0 - start | 0), stop$0]; break a; } - /*<>*/ var - /*<>*/ new_start = start + 1 | 0, - k$2 = 0; + var + new_start = /*<>*/ start + 1 | 0, + k$2 = /*<>*/ 0; if(40 === opening) - var closing = 41; + var closing = /*<>*/ 41; else{ - if(123 !== opening) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(123 !== opening) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _a_], 1); - var closing = 125; + var closing = /*<>*/ 125; } - var lim = caml_ml_string_length(s), k = k$2, stop = new_start; - /*<>*/ for(;;){ - if(lim <= stop) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + lim = /*<>*/ caml_ml_string_length(s), + k = k$2, + stop = new_start; + for(;;){ + /*<>*/ if(lim <= stop) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - if( /*<>*/ caml_string_get(s, stop) === opening){var i = stop + 1 | 0, k$0 = k + 1 | 0; k = k$0; stop = i;} + /*<>*/ if(caml_string_get(s, stop) === opening){ + var i = /*<>*/ stop + 1 | 0, k$0 = k + 1 | 0; + k = k$0; + stop = i; + } else if ( /*<>*/ caml_string_get(s, stop) === closing){ - if(0 === k) break; - var i$0 = stop + 1 | 0, k$1 = k - 1 | 0; + /*<>*/ if(0 === k) break; + var i$0 = /*<>*/ stop + 1 | 0, k$1 = k - 1 | 0; k = k$1; stop = i$0; } - else{var i$1 = stop + 1 | 0; stop = i$1;} + else{var i$1 = /*<>*/ stop + 1 | 0; stop = i$1;} } var val = - [0, + /*<>*/ [0, /*<>*/ caml_call3 (Stdlib_String[16], s, new_start, (stop - start | 0) - 1 | 0), stop + 1 | 0]; } } catch(_p_){ - var _n_ = caml_wrap_exception(_p_); + var _n_ = /*<>*/ caml_wrap_exception(_p_); if(_n_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_n_, 0); /*<>*/ add_char(b, 36); - previous = 32; + /*<>*/ previous = 32; i$4 = start; continue; } - var next_i = val[2], ident = val[1]; - /*<>*/ add_string + var next_i = /*<>*/ val[2], ident = val[1]; + /*<>*/ /*<>*/ add_string (b, /*<>*/ caml_call1(f, ident)); - previous = 32; + /*<>*/ previous = 32; i$4 = next_i; } else{ - if(92 === previous) /*<>*/ add_char(b, previous); - if(92 !== previous$0) /*<>*/ add_char(b, previous$0); - /*<>*/ /*<>*/ var - i$6 = i$4 + 1 | 0; + /*<>*/ if(92 === previous) + /*<>*/ add_char(b, previous); + /*<>*/ if(92 !== previous$0) + /*<>*/ add_char(b, previous$0); + var i$6 = /*<>*/ i$4 + 1 | 0; previous = previous$0; i$4 = i$6; } } /*<>*/ } function truncate(b, len){ - /*<>*/ if(0 <= len && b[2] >= len){b[2] = len; return 0;} - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Buffer_truncate); - /*<>*/ } + /*<>*/ if(0 <= len && b[2] >= len){ + /*<>*/ b[2] = len; + return 0; + } + /*<>*/ return caml_call1(Stdlib[1], cst_Buffer_truncate) /*<>*/ ; + } function to_seq(b){ function aux(i, param){ /*<>*/ if(b[2] <= i) /*<>*/ return 0; - /*<>*/ var - /*<>*/ x = - /*<>*/ caml_bytes_get(b[1][1], i), - /*<>*/ _l_ = i + 1 | 0; - /*<>*/ return [0, + var + x = /*<>*/ caml_bytes_get(b[1][1], i), + _l_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, x, - function(_m_){ /*<>*/ return aux(_l_, _m_);}]; + function(_m_){ /*<>*/ return aux(_l_, _m_);}] /*<>*/ ; /*<>*/ } - /*<>*/ var _j_ = 0; - /*<>*/ return function(_k_){ - /*<>*/ return aux(_j_, _k_);}; + var _j_ = /*<>*/ 0; + return function(_k_){ + /*<>*/ return aux(_j_, _k_);} /*<>*/ ; /*<>*/ } function to_seqi(b){ function aux(i, param){ /*<>*/ if(b[2] <= i) /*<>*/ return 0; - /*<>*/ var - /*<>*/ x = - /*<>*/ caml_bytes_get(b[1][1], i), - /*<>*/ _h_ = i + 1 | 0; - /*<>*/ return [0, + var + x = /*<>*/ caml_bytes_get(b[1][1], i), + _h_ = /*<>*/ i + 1 | 0; + /*<>*/ return [0, [0, i, x], - function(_i_){ /*<>*/ return aux(_h_, _i_);}]; + function(_i_){ /*<>*/ return aux(_h_, _i_);}] /*<>*/ ; /*<>*/ } - /*<>*/ var _f_ = 0; - /*<>*/ return function(_g_){ - /*<>*/ return aux(_f_, _g_);}; + var _f_ = /*<>*/ 0; + return function(_g_){ + /*<>*/ return aux(_f_, _g_);} /*<>*/ ; /*<>*/ } function add_seq(b, seq){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], - function(_e_){ /*<>*/ return add_char(b, _e_);}, - seq); - /*<>*/ } + function(_e_){ /*<>*/ return add_char(b, _e_);}, + seq) /*<>*/ ; + } function of_seq(i){ - /*<>*/ /*<>*/ var b = create(32); + var b = /*<>*/ create(32); /*<>*/ add_seq(b, i); - /*<>*/ return b; + /*<>*/ return b; /*<>*/ } function add_int8(b, x){ - /*<>*/ var - position = b[2], - /*<>*/ match = b[1], + var + position = /*<>*/ b[2], + match = /*<>*/ b[1], length = match[2], buffer = match[1], - /*<>*/ new_position = position + 1 | 0; - if(length < new_position){ + new_position = /*<>*/ position + 1 | 0; + /*<>*/ if(length < new_position){ /*<>*/ resize(b, 1); - /*<>*/ /*<>*/ caml_bytes_set - (b[1][1], b[2], x); + /*<>*/ caml_bytes_set(b[1][1], b[2], x); } else - caml_bytes_unsafe_set(buffer, position, x); - b[2] = new_position; + /*<>*/ caml_bytes_unsafe_set(buffer, position, x); + /*<>*/ b[2] = new_position; return 0; /*<>*/ } function add_int16_ne(b, x){ - /*<>*/ var - position = b[2], - /*<>*/ match = b[1], + var + position = /*<>*/ b[2], + match = /*<>*/ b[1], length = match[2], buffer = match[1], - /*<>*/ new_position = position + 2 | 0; - if(length < new_position){ + new_position = /*<>*/ position + 2 | 0; + /*<>*/ if(length < new_position){ /*<>*/ resize(b, 2); - /*<>*/ /*<>*/ caml_bytes_set16 - (b[1][1], b[2], x); + /*<>*/ caml_bytes_set16(b[1][1], b[2], x); } else - /*<>*/ /*<>*/ caml_bytes_set16 - (buffer, position, x); - b[2] = new_position; + /*<>*/ caml_bytes_set16(buffer, position, x); + /*<>*/ b[2] = new_position; return 0; /*<>*/ } function add_int32_ne(b, x){ - /*<>*/ var - position = b[2], - /*<>*/ match = b[1], + var + position = /*<>*/ b[2], + match = /*<>*/ b[1], length = match[2], buffer = match[1], - /*<>*/ new_position = position + 4 | 0; - if(length < new_position){ + new_position = /*<>*/ position + 4 | 0; + /*<>*/ if(length < new_position){ /*<>*/ resize(b, 4); - /*<>*/ /*<>*/ caml_bytes_set32 - (b[1][1], b[2], x); + /*<>*/ caml_bytes_set32(b[1][1], b[2], x); } else - /*<>*/ /*<>*/ caml_bytes_set32 - (buffer, position, x); - b[2] = new_position; + /*<>*/ caml_bytes_set32(buffer, position, x); + /*<>*/ b[2] = new_position; return 0; /*<>*/ } function add_int64_ne(b, x){ - /*<>*/ var - position = b[2], - /*<>*/ match = b[1], + var + position = /*<>*/ b[2], + match = /*<>*/ b[1], length = match[2], buffer = match[1], - /*<>*/ new_position = position + 8 | 0; - if(length < new_position){ + new_position = /*<>*/ position + 8 | 0; + /*<>*/ if(length < new_position){ /*<>*/ resize(b, 8); - /*<>*/ /*<>*/ caml_bytes_set64 - (b[1][1], b[2], x); + /*<>*/ caml_bytes_set64(b[1][1], b[2], x); } else - /*<>*/ /*<>*/ caml_bytes_set64 - (buffer, position, x); - b[2] = new_position; + /*<>*/ caml_bytes_set64(buffer, position, x); + /*<>*/ b[2] = new_position; return 0; /*<>*/ } function add_int16_le(b, x){ - /*<>*/ var _d_ = Stdlib_Sys[11] ? caml_bswap16(x) : x; - return add_int16_ne(b, _d_); - /*<>*/ } + var + _d_ = + /*<>*/ Stdlib_Sys[11] + ? /*<>*/ caml_bswap16(x) + : x; + /*<>*/ return add_int16_ne(b, _d_) /*<>*/ ; + } function add_int16_be(b, x){ - /*<>*/ var x$0 = Stdlib_Sys[11] ? x : caml_bswap16(x); - /*<>*/ return add_int16_ne(b, x$0); - /*<>*/ } + var + x$0 = + /*<>*/ Stdlib_Sys[11] + ? x + : /*<>*/ caml_bswap16(x); + /*<>*/ return add_int16_ne(b, x$0) /*<>*/ ; + } function add_int32_le(b, x){ - /*<>*/ var - _c_ = Stdlib_Sys[11] ? /*<>*/ caml_int32_bswap(x) : x; - /*<>*/ return add_int32_ne(b, _c_); - /*<>*/ } + var + _c_ = + /*<>*/ Stdlib_Sys[11] + ? /*<>*/ caml_int32_bswap(x) + : x; + /*<>*/ return add_int32_ne(b, _c_) /*<>*/ ; + } function add_int32_be(b, x){ - /*<>*/ var - x$0 = Stdlib_Sys[11] ? x : /*<>*/ caml_int32_bswap(x); - /*<>*/ return add_int32_ne(b, x$0); - /*<>*/ } + var + x$0 = + /*<>*/ Stdlib_Sys[11] + ? x + : /*<>*/ caml_int32_bswap(x); + /*<>*/ return add_int32_ne(b, x$0) /*<>*/ ; + } function add_int64_le(b, x){ - /*<>*/ var - _b_ = Stdlib_Sys[11] ? /*<>*/ caml_int64_bswap(x) : x; - /*<>*/ return add_int64_ne(b, _b_); - /*<>*/ } + var + _b_ = + /*<>*/ Stdlib_Sys[11] + ? /*<>*/ caml_int64_bswap(x) + : x; + /*<>*/ return add_int64_ne(b, _b_) /*<>*/ ; + } function add_int64_be(b, x){ - /*<>*/ var - x$0 = Stdlib_Sys[11] ? x : /*<>*/ caml_int64_bswap(x); - /*<>*/ return add_int64_ne(b, x$0); - /*<>*/ } + var + x$0 = + /*<>*/ Stdlib_Sys[11] + ? x + : /*<>*/ caml_int64_bswap(x); + /*<>*/ return add_int64_ne(b, x$0) /*<>*/ ; + } var Stdlib_Buffer = - [0, + /*<>*/ [0, create, contents, to_bytes, @@ -13248,7 +13106,7 @@ add_int64_le]; runtime.caml_register_global(14, Stdlib_Buffer, "Stdlib__Buffer"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Mutex @@ -13260,29 +13118,27 @@ caml_ml_mutex_lock = runtime.caml_ml_mutex_lock, caml_ml_mutex_unlock = runtime.caml_ml_mutex_unlock, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } function protect(m, f){ - /*<>*/ /*<>*/ caml_ml_mutex_lock(m); - /*<>*/ try{ - /*<>*/ /*<>*/ var - x = /*<>*/ caml_call1(f, 0); + /*<>*/ caml_ml_mutex_lock(m); + /*<>*/ try{ + var x = /*<>*/ caml_call1(f, 0); } catch(e$0){ - var e = caml_wrap_exception(e$0); - /*<>*/ /*<>*/ caml_ml_mutex_unlock(m); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (e, 0); + var e = /*<>*/ caml_wrap_exception(e$0); + /*<>*/ caml_ml_mutex_unlock(m); + /*<>*/ throw caml_maybe_attach_backtrace(e, 0); } - /*<>*/ /*<>*/ caml_ml_mutex_unlock(m); - /*<>*/ return x; + /*<>*/ caml_ml_mutex_unlock(m); + /*<>*/ return x; /*<>*/ } var Stdlib_Mutex = - [0, + /*<>*/ [0, runtime.caml_ml_mutex_new, caml_ml_mutex_lock, runtime.caml_ml_mutex_try_lock, @@ -13290,7 +13146,7 @@ protect]; runtime.caml_register_global(0, Stdlib_Mutex, "Stdlib__Mutex"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Condition @@ -13306,7 +13162,7 @@ runtime.caml_ml_condition_broadcast]; runtime.caml_register_global(0, Stdlib_Condition, "Stdlib__Condition"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Semaphore @@ -13317,12 +13173,12 @@ var runtime = globalThis.jsoo_runtime, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -13337,96 +13193,85 @@ cst_Semaphore_Counting_release = "Semaphore.Counting.release: overflow"; function make(v){ /*<>*/ if(v < 0) - /*<>*/ /*<>*/ caml_call1 + /*<>*/ caml_call1 (Stdlib[1], cst_Semaphore_Counting_init_wr); - /*<>*/ /*<>*/ var - _c_ = /*<>*/ caml_call1(Stdlib_Condition[1], 0); - /*<>*/ return [0, - /*<>*/ caml_call1(Stdlib_Mutex[1], 0), + var _c_ = /*<>*/ caml_call1(Stdlib_Condition[1], 0); + /*<>*/ return [0, + caml_call1(Stdlib_Mutex[1], 0), v, - _c_]; + _c_] /*<>*/ ; /*<>*/ } function release(s){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Mutex[2], s[1]); - if(s[2] < Stdlib[19]){ - s[2] = s[2] + 1 | 0; - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Condition[3], s[3]); - return caml_call1(Stdlib_Mutex[4], s[1]); - } - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Mutex[4], s[1]); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ caml_call1(Stdlib_Mutex[2], s[1]); + /*<>*/ if(s[2] < Stdlib[19]){ + /*<>*/ s[2] = s[2] + 1 | 0; + /*<>*/ caml_call1(Stdlib_Condition[3], s[3]); + /*<>*/ return caml_call1(Stdlib_Mutex[4], s[1]) /*<>*/ ; + } + /*<>*/ caml_call1(Stdlib_Mutex[4], s[1]); + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stdlib[11], cst_Semaphore_Counting_release], 1); /*<>*/ } function acquire(s){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Mutex[2], s[1]); - /*<>*/ for(;;){ + /*<>*/ caml_call1(Stdlib_Mutex[2], s[1]); + /*<>*/ for(;;){ if(0 !== s[2]){ - s[2] = s[2] - 1 | 0; - return caml_call1(Stdlib_Mutex[4], s[1]); + /*<>*/ s[2] = s[2] - 1 | 0; + /*<>*/ return caml_call1(Stdlib_Mutex[4], s[1]) /*<>*/ ; } - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Condition[2], s[3], s[1]); + /*<>*/ caml_call2(Stdlib_Condition[2], s[3], s[1]); } /*<>*/ } function try_acquire(s){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Mutex[2], s[1]); - var ret = 0 === s[2] ? 0 : (s[2] = s[2] - 1 | 0, 1); - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Mutex[4], s[1]); - /*<>*/ return ret; + /*<>*/ caml_call1(Stdlib_Mutex[2], s[1]); + var + ret = + /*<>*/ 0 === s[2] ? 0 : (s[2] = s[2] - 1 | 0, 1); + /*<>*/ caml_call1(Stdlib_Mutex[4], s[1]); + /*<>*/ return ret; /*<>*/ } function get_value(s){ /*<>*/ return s[2]; /*<>*/ } - /*<>*/ /*<>*/ var - Counting = [0, make, release, acquire, try_acquire, get_value]; + var + Counting = /*<>*/ [0, make, release, acquire, try_acquire, get_value]; function make$0(b){ - /*<>*/ var - /*<>*/ _a_ = - /*<>*/ caml_call1(Stdlib_Condition[1], 0), - _b_ = b ? 1 : 0; - /*<>*/ return [0, - /*<>*/ caml_call1(Stdlib_Mutex[1], 0), + var + _a_ = /*<>*/ caml_call1(Stdlib_Condition[1], 0), + _b_ = /*<>*/ b ? 1 : 0; + /*<>*/ return [0, + caml_call1(Stdlib_Mutex[1], 0), _b_, - _a_]; + _a_] /*<>*/ ; /*<>*/ } function release$0(s){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Mutex[2], s[1]); - s[2] = 1; - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Condition[3], s[3]); - return caml_call1(Stdlib_Mutex[4], s[1]); - /*<>*/ } + /*<>*/ caml_call1(Stdlib_Mutex[2], s[1]); + /*<>*/ s[2] = 1; + /*<>*/ caml_call1(Stdlib_Condition[3], s[3]); + /*<>*/ return caml_call1(Stdlib_Mutex[4], s[1]) /*<>*/ ; + } function acquire$0(s){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Mutex[2], s[1]); - /*<>*/ for(;;){ - if(0 !== s[2]){s[2] = 0; return caml_call1(Stdlib_Mutex[4], s[1]);} - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Condition[2], s[3], s[1]); + /*<>*/ caml_call1(Stdlib_Mutex[2], s[1]); + /*<>*/ for(;;){ + if(0 !== s[2]){ + /*<>*/ s[2] = 0; + /*<>*/ return caml_call1(Stdlib_Mutex[4], s[1]) /*<>*/ ; + } + /*<>*/ caml_call2(Stdlib_Condition[2], s[3], s[1]); } /*<>*/ } function try_acquire$0(s){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Mutex[2], s[1]); - var ret = 0 === s[2] ? 0 : (s[2] = 0, 1); - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Mutex[4], s[1]); - /*<>*/ return ret; + /*<>*/ caml_call1(Stdlib_Mutex[2], s[1]); + var ret = /*<>*/ 0 === s[2] ? 0 : (s[2] = 0, 1); + /*<>*/ caml_call1(Stdlib_Mutex[4], s[1]); + /*<>*/ return ret; /*<>*/ } - /*<>*/ var - /*<>*/ Binary = - [0, make$0, release$0, acquire$0, try_acquire$0], + var + Binary = /*<>*/ [0, make$0, release$0, acquire$0, try_acquire$0], Stdlib_Semaphore = [0, Counting, Binary]; runtime.caml_register_global(5, Stdlib_Semaphore, "Stdlib__Semaphore"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Domain @@ -13442,22 +13287,22 @@ caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_ml_domain_id = runtime.caml_ml_domain_id, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); @@ -13473,41 +13318,32 @@ Stdlib_List = global_data.Stdlib__List, Assert_failure = global_data.Assert_failure; function cpu_relax(param){ - /*<>*/ return /*<>*/ runtime.caml_ml_domain_cpu_relax - (0); - /*<>*/ } - /*<>*/ /*<>*/ var none = [0, 0]; + /*<>*/ return runtime.caml_ml_domain_cpu_relax(0) /*<>*/ ; + } + var none = /*<>*/ [0, 0]; function create_dls(param){ - /*<>*/ /*<>*/ var - st = /*<>*/ caml_make_vect(8, none); - /*<>*/ /*<>*/ runtime.caml_domain_dls_set - (st); + var st = /*<>*/ caml_make_vect(8, none); + /*<>*/ runtime.caml_domain_dls_set(st); /*<>*/ } /*<>*/ create_dls(0); - /*<>*/ var - /*<>*/ key_counter = - /*<>*/ caml_call1(Stdlib_Atomic[1], 0), - /*<>*/ parent_keys = - /*<>*/ caml_call1(Stdlib_Atomic[1], 0), - _a_ = [0, "domain.ml", 184, 13]; + var + key_counter = /*<>*/ caml_call1(Stdlib_Atomic[1], 0), + parent_keys = /*<>*/ caml_call1(Stdlib_Atomic[1], 0), + _a_ = /*<>*/ [0, "domain.ml", 184, 13]; function new_key(split_from_parent, init_orphan){ - /*<>*/ var - /*<>*/ idx = + var + idx = /*<>*/ caml_call2(Stdlib_Atomic[7], key_counter, 1), - /*<>*/ k = [0, idx, init_orphan]; + k = /*<>*/ [0, idx, init_orphan]; /*<>*/ if(split_from_parent){ - /*<>*/ var + var split = split_from_parent[1], - /*<>*/ ki = [0, k, split]; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var + ki = /*<>*/ [0, k, split]; + for(;;){ + var l = /*<>*/ caml_call1(Stdlib_Atomic[3], parent_keys); - if - (! - (1 - - - /*<>*/ caml_call3 - (Stdlib_Atomic[6], parent_keys, l, [0, ki, l]))) + /*<>*/ if + (! (1 - caml_call3(Stdlib_Atomic[6], parent_keys, l, [0, ki, l]))) break; } } @@ -13515,196 +13351,187 @@ /*<>*/ } function maybe_grow(idx){ /*<>*/ for(;;){ - /*<>*/ var + var st = caml_domain_dls_get(0), - /*<>*/ sz = st.length - 1; - if(idx < sz) /*<>*/ return st; - var new_sz = sz; - /*<>*/ for(;;){ - if(idx < new_sz) break; - var s = 2 * new_sz | 0; + sz = /*<>*/ st.length - 1; + /*<>*/ if(idx < sz) + /*<>*/ return st; + var new_sz = /*<>*/ sz; + for(;;){ + /*<>*/ if(idx < new_sz) break; + var s = /*<>*/ 2 * new_sz | 0; new_sz = s; } - /*<>*/ /*<>*/ var - new_st = /*<>*/ caml_make_vect(new_sz, none); - /*<>*/ /*<>*/ caml_call5 + var new_st = /*<>*/ caml_make_vect(new_sz, none); + /*<>*/ caml_call5 (Stdlib_Array[9], st, 0, new_st, 0, sz); /*<>*/ if - ( /*<>*/ runtime.caml_domain_dls_compare_and_set - (st, new_st)) + (runtime.caml_domain_dls_compare_and_set(st, new_st)) /*<>*/ return new_st; } /*<>*/ } function set(param, x){ - /*<>*/ var - idx = param[1], - /*<>*/ st = maybe_grow(idx); + var + idx = /*<>*/ param[1], + st = /*<>*/ maybe_grow(idx); /*<>*/ caml_check_bound(st, idx)[1 + idx] = x; - /*<>*/ return 0; + /*<>*/ return 0; } function get(param){ - /*<>*/ var - init = param[2], + var + init = /*<>*/ param[2], idx = param[1], - /*<>*/ st = maybe_grow(idx), - /*<>*/ oldval = caml_check_bound(st, idx)[1 + idx]; - /*<>*/ if(oldval !== none) + st = /*<>*/ maybe_grow(idx), + oldval = /*<>*/ caml_check_bound(st, idx)[1 + idx]; + /*<>*/ if(oldval !== none) /*<>*/ return oldval; - /*<>*/ var - /*<>*/ new_obj = - /*<>*/ caml_call1(init, 0), - /*<>*/ st$0 = - /*<>*/ caml_domain_dls_get(0), - /*<>*/ curval = caml_check_bound(st$0, idx)[1 + idx], - _e_ = curval === oldval ? (st$0[1 + idx] = new_obj, 1) : 0; - /*<>*/ if(_e_) /*<>*/ return new_obj; - /*<>*/ /*<>*/ var - updated_obj = caml_check_bound(st$0, idx)[1 + idx]; - /*<>*/ if(updated_obj !== none) + var + new_obj = /*<>*/ caml_call1(init, 0), + st$0 = /*<>*/ caml_domain_dls_get(0), + curval = /*<>*/ caml_check_bound(st$0, idx)[1 + idx], + _e_ = + /*<>*/ curval === oldval + ? (st$0[1 + idx] = new_obj, 1) + : 0; + /*<>*/ if(_e_) + /*<>*/ return new_obj; + var + updated_obj = + /*<>*/ caml_check_bound(st$0, idx)[1 + idx]; + /*<>*/ if(updated_obj !== none) /*<>*/ return updated_obj; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _a_], 1); - } + /*<>*/ } function get_id(param){ - var domain = param[1]; + var domain = /*<>*/ param[1]; /*<>*/ return domain; - } + /*<>*/ } function self(param){ - /*<>*/ return /*<>*/ caml_ml_domain_id - (0); - /*<>*/ } + /*<>*/ return caml_ml_domain_id(0) /*<>*/ ; + } function is_main_domain(param){ - /*<>*/ return 0 - === /*<>*/ caml_ml_domain_id(0) - ? 1 - : 0; + /*<>*/ return 0 === caml_ml_domain_id(0) ? 1 : 0 /*<>*/ ; /*<>*/ } - /*<>*/ var - /*<>*/ first_domain_spawned = + var + first_domain_spawned = /*<>*/ caml_call1(Stdlib_Atomic[1], 0), - /*<>*/ first_spawn_function = - [0, function(param){ /*<>*/ }], - cst_first_domain_already_spawn = "first domain already spawned"; + first_spawn_function = + /*<>*/ [0, + function(param){ /*<>*/ }], + cst_first_domain_already_spawn = + /*<>*/ "first domain already spawned"; function before_first_spawn(f){ - /*<>*/ if - ( /*<>*/ caml_call1 - (Stdlib_Atomic[3], first_domain_spawned)) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if + (caml_call1(Stdlib_Atomic[3], first_domain_spawned)) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stdlib[6], cst_first_domain_already_spawn], 1); - var old_f = first_spawn_function[1]; + var old_f = /*<>*/ first_spawn_function[1]; function new_f(param){ - /*<>*/ /*<>*/ caml_call1(old_f, 0); - /*<>*/ return /*<>*/ caml_call1 - (f, 0); - /*<>*/ } - first_spawn_function[1] = new_f; + /*<>*/ caml_call1(old_f, 0); + /*<>*/ return caml_call1(f, 0) /*<>*/ ; + } + /*<>*/ first_spawn_function[1] = new_f; return 0; /*<>*/ } - /*<>*/ /*<>*/ var + var at_exit_key = - new_key + /*<>*/ new_key (0, function(param){ /*<>*/ return function(param){ - /*<>*/ return 0; /*<>*/ }; + /*<>*/ return 0; /*<>*/ } /*<>*/ ; /*<>*/ }); function at_exit(f){ - /*<>*/ /*<>*/ var - old_exit = get(at_exit_key); + var old_exit = /*<>*/ get(at_exit_key); function new_exit(param){ - /*<>*/ /*<>*/ caml_call1(f, 0); - /*<>*/ return /*<>*/ caml_call1 - (old_exit, 0); - /*<>*/ } - /*<>*/ return set(at_exit_key, new_exit); - /*<>*/ } + /*<>*/ caml_call1(f, 0); + /*<>*/ return caml_call1(old_exit, 0) /*<>*/ ; + } + /*<>*/ return set(at_exit_key, new_exit) /*<>*/ ; + } function do_at_exit(param){ - /*<>*/ /*<>*/ var - f = get(at_exit_key); - /*<>*/ return /*<>*/ caml_call1(f, 0); - /*<>*/ } - Stdlib[104][1] = do_at_exit; + var f = /*<>*/ get(at_exit_key); + /*<>*/ return caml_call1(f, 0) /*<>*/ ; + } + /*<>*/ Stdlib[104][1] = do_at_exit; function spawn(f){ - /*<>*/ if - (1 - - - /*<>*/ caml_call1 - (Stdlib_Atomic[3], first_domain_spawned)){ - /*<>*/ /*<>*/ caml_call2 + /*<>*/ if + (1 - caml_call1(Stdlib_Atomic[3], first_domain_spawned)){ + /*<>*/ caml_call2 (Stdlib_Atomic[4], first_domain_spawned, 1); - /*<>*/ /*<>*/ caml_call1 - (first_spawn_function[1], 0); - first_spawn_function[1] = + /*<>*/ caml_call1(first_spawn_function[1], 0); + /*<>*/ first_spawn_function[1] = function(param){ /*<>*/ return 0; /*<>*/ }; } - /*<>*/ var - /*<>*/ _b_ = - /*<>*/ caml_call1(Stdlib_Atomic[3], parent_keys), - /*<>*/ pk = - /*<>*/ caml_call2 + var + _b_ = /*<>*/ caml_call1(Stdlib_Atomic[3], parent_keys), + pk = + /*<>*/ caml_call2 (Stdlib_List[20], function(param){ - /*<>*/ var split = param[2], k = param[1]; - /*<>*/ return [0, + var split = /*<>*/ param[2], k = param[1]; + /*<>*/ return [0, k, - /*<>*/ caml_call1(split, get(k))]; + /*<>*/ caml_call1 + (split, /*<>*/ get(k))] /*<>*/ ; /*<>*/ }, _b_), - /*<>*/ _c_ = - /*<>*/ caml_call1(Stdlib_Condition[1], 0), - /*<>*/ term_sync = - [0, 0, /*<>*/ caml_call1(Stdlib_Mutex[1], 0), _c_]; + _c_ = /*<>*/ caml_call1(Stdlib_Condition[1], 0), + term_sync = + /*<>*/ [0, 0, caml_call1(Stdlib_Mutex[1], 0), _c_]; function body(param){ /*<>*/ try{ /*<>*/ create_dls(0); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_List[18], function(param){ - /*<>*/ var v = param[2], k = param[1]; - /*<>*/ return set(k, v); - /*<>*/ }, + var v = /*<>*/ param[2], k = param[1]; + /*<>*/ return set(k, v) /*<>*/ ; + }, pk); - /*<>*/ /*<>*/ var - res = /*<>*/ caml_call1(f, 0); + var res = /*<>*/ caml_call1(f, 0); } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); /*<>*/ try{ /*<>*/ do_at_exit(0);} catch(_d_){} - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (exn, 0); + /*<>*/ throw caml_maybe_attach_backtrace(exn, 0); } /*<>*/ do_at_exit(0); - /*<>*/ return res; + /*<>*/ return res; /*<>*/ } - /*<>*/ /*<>*/ var + var domain = /*<>*/ runtime.caml_domain_spawn(body, term_sync); /*<>*/ return [0, domain, term_sync]; /*<>*/ } function join(param){ - var term_sync = param[2]; - /*<>*/ function loop(param){ + var term_sync = /*<>*/ param[2]; + function loop(param){ /*<>*/ for(;;){ var match = term_sync[1]; if(match){var res = match[1]; /*<>*/ return res;} - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Condition[2], term_sync[3], term_sync[2]); } /*<>*/ } - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call2 (Stdlib_Mutex[5], term_sync[2], loop); - if(0 === match[0]){var x = match[1]; /*<>*/ return x;} - var ex = match[1]; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (ex, 1); - } + /*<>*/ if(0 === match[0]){ + var x = match[1]; + /*<>*/ return x; + } + var ex = /*<>*/ match[1]; + throw caml_maybe_attach_backtrace(ex, 1); + /*<>*/ } var - recommended_domain_count = runtime.caml_recommended_domain_count, + recommended_domain_count = + /*<>*/ runtime.caml_recommended_domain_count, Stdlib_Domain = [0, spawn, @@ -13765,27 +13592,27 @@ caml_trampoline = runtime.caml_trampoline, caml_trampoline_return = runtime.caml_trampoline_return, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); @@ -13874,63 +13701,59 @@ _p_ = [0, cst_camlinternalFormat_ml, 826, 22], _q_ = [0, cst_camlinternalFormat_ml, 831, 30]; function create_char_set(param){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Bytes[1], 32, 0); - /*<>*/ } + /*<>*/ return caml_call2 + (Stdlib_Bytes[1], 32, 0) /*<>*/ ; + } function add_in_char_set(char_set, c){ - /*<>*/ var - str_ind = c >>> 3 | 0, + var + str_ind = /*<>*/ c >>> 3 | 0, mask = 1 << (c & 7), - /*<>*/ _cU_ = + _cU_ = /*<>*/ runtime.caml_bytes_get (char_set, str_ind) | mask; - /*<>*/ return /*<>*/ caml_bytes_set + /*<>*/ return /*<>*/ caml_bytes_set (char_set, str_ind, - /*<>*/ caml_call1(Stdlib[29], _cU_)); - /*<>*/ } + /*<>*/ caml_call1(Stdlib[29], _cU_)) /*<>*/ ; + } function freeze_char_set(char_set){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[6], char_set); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib_Bytes[6], char_set) /*<>*/ ; + } function rev_char_set(char_set){ - /*<>*/ var - /*<>*/ char_set$0 = create_char_set(0), - i = 0; + var + char_set$0 = /*<>*/ create_char_set(0), + i = /*<>*/ 0; for(;;){ - /*<>*/ /*<>*/ var + var _cS_ = /*<>*/ caml_string_get(char_set, i) ^ 255; - /*<>*/ /*<>*/ caml_bytes_set + /*<>*/ /*<>*/ caml_bytes_set (char_set$0, i, /*<>*/ caml_call1(Stdlib[29], _cS_)); - /*<>*/ /*<>*/ var - _cT_ = i + 1 | 0; + var _cT_ = /*<>*/ i + 1 | 0; if(31 === i) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], char_set$0); - i = _cT_; + /*<>*/ return caml_call1 + (Stdlib_Bytes[44], char_set$0) /*<>*/ ; + /*<>*/ i = _cT_; } /*<>*/ } function is_in_char_set(char_set, c){ - /*<>*/ var - str_ind = c >>> 3 | 0, + var + str_ind = /*<>*/ c >>> 3 | 0, mask = 1 << (c & 7); - return 0 - !== - ( /*<>*/ caml_string_get - (char_set, str_ind) - & mask) + /*<>*/ return 0 + !== (caml_string_get(char_set, str_ind) & mask) ? 1 - : 0; + : 0 /*<>*/ ; /*<>*/ } function pad_of_pad_opt(pad_opt){ /*<>*/ if(! pad_opt) /*<>*/ return 0; - var width = pad_opt[1]; + var width = /*<>*/ pad_opt[1]; /*<>*/ return [0, 1, width]; /*<>*/ } function param_format_of_ignored_format(ign, fmt){ @@ -13944,102 +13767,121 @@ /*<>*/ return [0, [19, fmt]]; default: /*<>*/ return [0, [22, fmt]]; } - switch(ign[0]){ + /*<>*/ switch(ign[0]){ case 0: var pad_opt = ign[1]; - /*<>*/ return [0, - [2, pad_of_pad_opt(pad_opt), fmt]]; + /*<>*/ return [0, + [2, pad_of_pad_opt(pad_opt), fmt]] /*<>*/ ; case 1: - var pad_opt$0 = ign[1]; - /*<>*/ return [0, - [3, pad_of_pad_opt(pad_opt$0), fmt]]; + var pad_opt$0 = /*<>*/ ign[1]; + /*<>*/ return [0, + [3, pad_of_pad_opt(pad_opt$0), fmt]] /*<>*/ ; case 2: - var pad_opt$1 = ign[2], iconv = ign[1]; - /*<>*/ return [0, - [4, iconv, pad_of_pad_opt(pad_opt$1), 0, fmt]]; + var + pad_opt$1 = /*<>*/ ign[2], + iconv = ign[1]; + /*<>*/ return [0, + [4, iconv, pad_of_pad_opt(pad_opt$1), 0, fmt]] /*<>*/ ; case 3: - var pad_opt$2 = ign[2], iconv$0 = ign[1]; - /*<>*/ return [0, - [5, iconv$0, pad_of_pad_opt(pad_opt$2), 0, fmt]]; + var + pad_opt$2 = /*<>*/ ign[2], + iconv$0 = ign[1]; + /*<>*/ return [0, + [5, iconv$0, pad_of_pad_opt(pad_opt$2), 0, fmt]] /*<>*/ ; case 4: - var pad_opt$3 = ign[2], iconv$1 = ign[1]; - /*<>*/ return [0, - [6, iconv$1, pad_of_pad_opt(pad_opt$3), 0, fmt]]; + var + pad_opt$3 = /*<>*/ ign[2], + iconv$1 = ign[1]; + /*<>*/ return [0, + [6, iconv$1, pad_of_pad_opt(pad_opt$3), 0, fmt]] /*<>*/ ; case 5: - var pad_opt$4 = ign[2], iconv$2 = ign[1]; - /*<>*/ return [0, - [7, iconv$2, pad_of_pad_opt(pad_opt$4), 0, fmt]]; + var + pad_opt$4 = /*<>*/ ign[2], + iconv$2 = ign[1]; + /*<>*/ return [0, + [7, iconv$2, pad_of_pad_opt(pad_opt$4), 0, fmt]] /*<>*/ ; case 6: - var prec_opt = ign[2], pad_opt$5 = ign[1]; - if(prec_opt) - var ndec = prec_opt[1], _cR_ = [0, ndec]; + var + prec_opt = /*<>*/ ign[2], + pad_opt$5 = ign[1]; + /*<>*/ if(prec_opt) + var + ndec = prec_opt[1], + _cR_ = /*<>*/ [0, ndec]; else - var _cR_ = 0; - /*<>*/ return [0, - [8, _a_, pad_of_pad_opt(pad_opt$5), _cR_, fmt]]; + var _cR_ = /*<>*/ 0; + /*<>*/ return [0, + [8, _a_, pad_of_pad_opt(pad_opt$5), _cR_, fmt]] /*<>*/ ; case 7: - var pad_opt$6 = ign[1]; - /*<>*/ return [0, - [9, pad_of_pad_opt(pad_opt$6), fmt]]; + var pad_opt$6 = /*<>*/ ign[1]; + /*<>*/ return [0, + [9, pad_of_pad_opt(pad_opt$6), fmt]] /*<>*/ ; case 8: - var fmtty = ign[2], pad_opt$7 = ign[1]; + var + fmtty = /*<>*/ ign[2], + pad_opt$7 = ign[1]; /*<>*/ return [0, [13, pad_opt$7, fmtty, fmt]]; case 9: - var fmtty$0 = ign[2], pad_opt$8 = ign[1]; + var + fmtty$0 = /*<>*/ ign[2], + pad_opt$8 = ign[1]; /*<>*/ return [0, [14, pad_opt$8, fmtty$0, fmt]]; case 10: - var char_set = ign[2], width_opt = ign[1]; + var + char_set = /*<>*/ ign[2], + width_opt = ign[1]; /*<>*/ return [0, [20, width_opt, char_set, fmt]]; default: - var counter = ign[1]; + var counter = /*<>*/ ign[1]; /*<>*/ return [0, [21, counter, fmt]]; } /*<>*/ } function default_float_precision(fconv){ - /*<>*/ return 5 === fconv[2] ? 12 : -6; - /*<>*/ } + /*<>*/ return 5 === fconv[2] ? 12 : -6 /*<>*/ ; + } function buffer_create(init_size){ - /*<>*/ return [0, + /*<>*/ return [0, 0, - /*<>*/ caml_create_bytes(init_size)]; + caml_create_bytes(init_size)] /*<>*/ ; /*<>*/ } function buffer_check_size(buf, overhead){ - /*<>*/ var - len = runtime.caml_ml_bytes_length(buf[2]), - min_len = buf[1] + overhead | 0; - if(len < min_len){ - /*<>*/ var - /*<>*/ new_len = + var + len = + /*<>*/ runtime.caml_ml_bytes_length + (buf[2]), + min_len = /*<>*/ buf[1] + overhead | 0; + /*<>*/ if(len < min_len){ + var + new_len = /*<>*/ caml_call2 (Stdlib_Int[11], len * 2 | 0, min_len), - /*<>*/ new_str = + new_str = /*<>*/ caml_create_bytes(new_len); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_Bytes[11], buf[2], 0, new_str, 0, len); - buf[2] = new_str; + /*<>*/ buf[2] = new_str; } /*<>*/ } function buffer_add_char(buf, c){ /*<>*/ buffer_check_size(buf, 1); - /*<>*/ /*<>*/ caml_bytes_set - (buf[2], buf[1], c); - buf[1] = buf[1] + 1 | 0; + /*<>*/ caml_bytes_set(buf[2], buf[1], c); + /*<>*/ buf[1] = buf[1] + 1 | 0; /*<>*/ } function buffer_add_string(buf, s){ - /*<>*/ var - str_len = caml_ml_string_length(s); + var + str_len = /*<>*/ caml_ml_string_length(s); /*<>*/ buffer_check_size(buf, str_len); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_String[6], s, 0, buf[2], buf[1], str_len); - buf[1] = buf[1] + str_len | 0; + /*<>*/ buf[1] = buf[1] + str_len | 0; /*<>*/ } function buffer_contents(buf){ /*<>*/ return caml_call3 - (Stdlib_Bytes[8], buf[2], 0, buf[1]); - /*<>*/ } + (Stdlib_Bytes[8], buf[2], 0, buf[1]) /*<>*/ ; + } function char_of_iconv(iconv){ /*<>*/ switch(iconv){ case 6: @@ -14063,8 +13905,8 @@ } /*<>*/ } function char_of_fconv(opt, fconv){ - var cF = opt ? opt[1] : 70; - switch(fconv[2]){ + var cF = /*<>*/ opt ? opt[1] : 70; + /*<>*/ switch(fconv[2]){ case 0: /*<>*/ return 102; case 1: @@ -14083,73 +13925,73 @@ /*<>*/ return 72; default: /*<>*/ return 70; } - } + /*<>*/ } function bprint_padty(buf, padty){ /*<>*/ switch(padty){ case 0: - /*<>*/ return buffer_add_char(buf, 45); + /*<>*/ return buffer_add_char(buf, 45) /*<>*/ ; case 1: /*<>*/ return; default: - /*<>*/ return buffer_add_char(buf, 48); + /*<>*/ return buffer_add_char(buf, 48) /*<>*/ ; } - /*<>*/ } + } function bprint_ignored_flag(buf, ign_flag){ /*<>*/ return ign_flag - ? buffer_add_char(buf, 95) - : ign_flag; - /*<>*/ } + ? /*<>*/ buffer_add_char(buf, 95) + : ign_flag /*<>*/ ; + } function bprint_pad_opt(buf, pad_opt){ /*<>*/ if(! pad_opt) /*<>*/ return; - var width = pad_opt[1]; - /*<>*/ return buffer_add_string + var width = /*<>*/ pad_opt[1]; + /*<>*/ return /*<>*/ buffer_add_string (buf, /*<>*/ caml_call1 - (Stdlib_Int[12], width)); - /*<>*/ } + (Stdlib_Int[12], width)) /*<>*/ ; + } function bprint_padding(buf, pad){ /*<>*/ if(typeof pad === "number") /*<>*/ return; - if(0 === pad[0]){ + /*<>*/ if(0 === pad[0]){ var n = pad[2], padty = pad[1]; /*<>*/ bprint_padty(buf, padty); - /*<>*/ return buffer_add_string + /*<>*/ return /*<>*/ buffer_add_string (buf, /*<>*/ caml_call1 - (Stdlib_Int[12], n)); + (Stdlib_Int[12], n)) /*<>*/ ; } - var padty$0 = pad[1]; + var padty$0 = /*<>*/ pad[1]; /*<>*/ bprint_padty(buf, padty$0); - /*<>*/ return buffer_add_char(buf, 42); - /*<>*/ } + /*<>*/ return buffer_add_char(buf, 42) /*<>*/ ; + } function bprint_precision(buf, prec){ /*<>*/ if(typeof prec !== "number"){ var n = prec[1]; /*<>*/ buffer_add_char(buf, 46); - /*<>*/ return buffer_add_string + /*<>*/ return /*<>*/ buffer_add_string (buf, /*<>*/ caml_call1 - (Stdlib_Int[12], n)); + (Stdlib_Int[12], n)) /*<>*/ ; } - if(prec) - /*<>*/ return buffer_add_string(buf, cst); - /*<>*/ } + /*<>*/ if(prec) + /*<>*/ return buffer_add_string(buf, cst) /*<>*/ ; + } function bprint_iconv_flag(buf, iconv){ /*<>*/ switch(iconv){ case 1: case 4: - /*<>*/ return buffer_add_char(buf, 43); + /*<>*/ return buffer_add_char(buf, 43) /*<>*/ ; case 2: case 5: - /*<>*/ return buffer_add_char(buf, 32); + /*<>*/ return buffer_add_char(buf, 32) /*<>*/ ; case 7: case 9: case 11: case 13: case 14: case 15: - /*<>*/ return buffer_add_char(buf, 35); + /*<>*/ return buffer_add_char(buf, 35) /*<>*/ ; default: /*<>*/ return; } /*<>*/ } @@ -14160,9 +14002,9 @@ /*<>*/ bprint_padding(buf, pad); /*<>*/ bprint_precision(buf, prec); /*<>*/ buffer_add_char(buf, c); - /*<>*/ return buffer_add_char - (buf, char_of_iconv(iconv)); - /*<>*/ } + /*<>*/ return /*<>*/ buffer_add_char + (buf, /*<>*/ char_of_iconv(iconv)) /*<>*/ ; + } function bprint_fconv_flag(buf, fconv){ /*<>*/ switch(fconv[1]){ case 0: break; @@ -14170,9 +14012,9 @@ /*<>*/ buffer_add_char(buf, 43); break; default: /*<>*/ buffer_add_char(buf, 32); } - if(8 <= fconv[2]) - /*<>*/ return buffer_add_char(buf, 35); - /*<>*/ } + /*<>*/ if(8 <= fconv[2]) + /*<>*/ return buffer_add_char(buf, 35) /*<>*/ ; + } function string_of_formatting_lit(formatting_lit){ /*<>*/ if (typeof formatting_lit === "number") @@ -14191,188 +14033,198 @@ /*<>*/ return cst$5; default: /*<>*/ return cst$6; } - switch(formatting_lit[0]){ + /*<>*/ switch(formatting_lit[0]){ case 0: var str = formatting_lit[1]; /*<>*/ return str; case 1: - var str$0 = formatting_lit[1]; + var str$0 = /*<>*/ formatting_lit[1]; /*<>*/ return str$0; default: - /*<>*/ var - c = formatting_lit[1], - /*<>*/ _cQ_ = + var + c = /*<>*/ formatting_lit[1], + _cQ_ = /*<>*/ caml_call2 (Stdlib_String[1], 1, c); - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib[28], cst$7, _cQ_); } - /*<>*/ } + } function bprint_char_literal(buf, chr){ /*<>*/ return 37 === chr - ? buffer_add_string(buf, cst$8) - : buffer_add_char(buf, chr); - /*<>*/ } + ? /*<>*/ buffer_add_string + (buf, cst$8) + : /*<>*/ buffer_add_char(buf, chr) /*<>*/ ; + } function bprint_string_literal(buf, str){ - /*<>*/ var - _cO_ = caml_ml_string_length(str) - 1 | 0, - /*<>*/ _cN_ = 0; + var + _cO_ = + /*<>*/ caml_ml_string_length(str) - 1 | 0, + _cN_ = 0; if(_cO_ >= 0){ var i = _cN_; for(;;){ - /*<>*/ bprint_char_literal + /*<>*/ /*<>*/ bprint_char_literal (buf, /*<>*/ caml_string_get(str, i)); - /*<>*/ /*<>*/ var - _cP_ = i + 1 | 0; + var _cP_ = /*<>*/ i + 1 | 0; if(_cO_ === i) break; i = _cP_; } } /*<>*/ } function bprint_fmtty(buf, fmtty){ - /*<>*/ var fmtty$0 = fmtty; - /*<>*/ for(;;){ + var fmtty$0 = /*<>*/ fmtty; + for(;;){ if(typeof fmtty$0 === "number") /*<>*/ return; - switch(fmtty$0[0]){ + /*<>*/ switch(fmtty$0[0]){ case 0: var fmtty$1 = fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_c); - fmtty$0 = fmtty$1; + /*<>*/ fmtty$0 = fmtty$1; break; case 1: - var fmtty$2 = fmtty$0[1]; + var fmtty$2 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_s); - fmtty$0 = fmtty$2; + /*<>*/ fmtty$0 = fmtty$2; break; case 2: - var fmtty$3 = fmtty$0[1]; + var fmtty$3 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_i); - fmtty$0 = fmtty$3; + /*<>*/ fmtty$0 = fmtty$3; break; case 3: - var fmtty$4 = fmtty$0[1]; + var fmtty$4 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_li); - fmtty$0 = fmtty$4; + /*<>*/ fmtty$0 = fmtty$4; break; case 4: - var fmtty$5 = fmtty$0[1]; + var fmtty$5 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_ni); - fmtty$0 = fmtty$5; + /*<>*/ fmtty$0 = fmtty$5; break; case 5: - var fmtty$6 = fmtty$0[1]; + var fmtty$6 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_Li); - fmtty$0 = fmtty$6; + /*<>*/ fmtty$0 = fmtty$6; break; case 6: - var fmtty$7 = fmtty$0[1]; + var fmtty$7 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_f); - fmtty$0 = fmtty$7; + /*<>*/ fmtty$0 = fmtty$7; break; case 7: - var fmtty$8 = fmtty$0[1]; + var fmtty$8 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_B); - fmtty$0 = fmtty$8; + /*<>*/ fmtty$0 = fmtty$8; break; case 8: - var fmtty$9 = fmtty$0[2], sub_fmtty = fmtty$0[1]; + var + fmtty$9 = /*<>*/ fmtty$0[2], + sub_fmtty = fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst$9); /*<>*/ bprint_fmtty(buf, sub_fmtty); /*<>*/ buffer_add_string(buf, cst$10); - fmtty$0 = fmtty$9; + /*<>*/ fmtty$0 = fmtty$9; break; case 9: - var fmtty$10 = fmtty$0[3], sub_fmtty$0 = fmtty$0[1]; + var + fmtty$10 = /*<>*/ fmtty$0[3], + sub_fmtty$0 = fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst$11); /*<>*/ bprint_fmtty(buf, sub_fmtty$0); /*<>*/ buffer_add_string(buf, cst$12); - fmtty$0 = fmtty$10; + /*<>*/ fmtty$0 = fmtty$10; break; case 10: - var fmtty$11 = fmtty$0[1]; + var fmtty$11 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_a); - fmtty$0 = fmtty$11; + /*<>*/ fmtty$0 = fmtty$11; break; case 11: - var fmtty$12 = fmtty$0[1]; + var fmtty$12 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_t); - fmtty$0 = fmtty$12; + /*<>*/ fmtty$0 = fmtty$12; break; case 12: - var fmtty$13 = fmtty$0[1]; + var fmtty$13 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst$13); - fmtty$0 = fmtty$13; + /*<>*/ fmtty$0 = fmtty$13; break; case 13: - var fmtty$14 = fmtty$0[1]; + var fmtty$14 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_r); - fmtty$0 = fmtty$14; + /*<>*/ fmtty$0 = fmtty$14; break; default: - var fmtty$15 = fmtty$0[1]; + var fmtty$15 = /*<>*/ fmtty$0[1]; /*<>*/ buffer_add_string(buf, cst_r$0); - fmtty$0 = fmtty$15; + /*<>*/ fmtty$0 = fmtty$15; } } /*<>*/ } function int_of_custom_arity(param){ - /*<>*/ if(! param) /*<>*/ return 0; - var x = param[1]; - return 1 + int_of_custom_arity(x) | 0; + /*<>*/ if(! param) + /*<>*/ return 0; + var x = /*<>*/ param[1]; + /*<>*/ return 1 + int_of_custom_arity(x) + | 0 /*<>*/ ; } function string_of_fmt(fmt){ - /*<>*/ /*<>*/ var - buf = buffer_create(16); + var buf = /*<>*/ buffer_create(16); function fmtiter(fmt, ign_flag){ - /*<>*/ var - fmt$0 = fmt, + var + fmt$0 = /*<>*/ fmt, ign_flag$0 = ign_flag; - /*<>*/ for(;;){ + for(;;){ if(typeof fmt$0 === "number") /*<>*/ return; - switch(fmt$0[0]){ + /*<>*/ switch(fmt$0[0]){ case 0: var rest = fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ buffer_add_char(buf, 99); - fmt$0 = rest; + /*<>*/ fmt$0 = rest; ign_flag$0 = 0; break; case 1: - var rest$0 = fmt$0[1]; + var rest$0 = /*<>*/ fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ buffer_add_char(buf, 67); - fmt$0 = rest$0; + /*<>*/ fmt$0 = rest$0; ign_flag$0 = 0; break; case 2: - var rest$1 = fmt$0[2], pad = fmt$0[1]; + var + rest$1 = /*<>*/ fmt$0[2], + pad = fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ bprint_padding(buf, pad); /*<>*/ buffer_add_char(buf, 115); - fmt$0 = rest$1; + /*<>*/ fmt$0 = rest$1; ign_flag$0 = 0; break; case 3: - var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; + var + rest$2 = /*<>*/ fmt$0[2], + pad$0 = fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ bprint_padding(buf, pad$0); /*<>*/ buffer_add_char(buf, 83); - fmt$0 = rest$2; + /*<>*/ fmt$0 = rest$2; ign_flag$0 = 0; break; case 4: var - rest$3 = fmt$0[4], + rest$3 = /*<>*/ fmt$0[4], prec = fmt$0[3], pad$1 = fmt$0[2], iconv = fmt$0[1]; @@ -14382,47 +14234,47 @@ /*<>*/ bprint_iconv_flag(buf, iconv); /*<>*/ bprint_padding(buf, pad$1); /*<>*/ bprint_precision(buf, prec); - /*<>*/ buffer_add_char - (buf, char_of_iconv(iconv)); - fmt$0 = rest$3; + /*<>*/ /*<>*/ buffer_add_char + (buf, /*<>*/ char_of_iconv(iconv)); + /*<>*/ fmt$0 = rest$3; ign_flag$0 = 0; break; case 5: var - rest$4 = fmt$0[4], + rest$4 = /*<>*/ fmt$0[4], prec$0 = fmt$0[3], pad$2 = fmt$0[2], iconv$0 = fmt$0[1]; /*<>*/ bprint_altint_fmt (buf, ign_flag$0, iconv$0, pad$2, prec$0, 108); - fmt$0 = rest$4; + /*<>*/ fmt$0 = rest$4; ign_flag$0 = 0; break; case 6: var - rest$5 = fmt$0[4], + rest$5 = /*<>*/ fmt$0[4], prec$1 = fmt$0[3], pad$3 = fmt$0[2], iconv$1 = fmt$0[1]; /*<>*/ bprint_altint_fmt (buf, ign_flag$0, iconv$1, pad$3, prec$1, 110); - fmt$0 = rest$5; + /*<>*/ fmt$0 = rest$5; ign_flag$0 = 0; break; case 7: var - rest$6 = fmt$0[4], + rest$6 = /*<>*/ fmt$0[4], prec$2 = fmt$0[3], pad$4 = fmt$0[2], iconv$2 = fmt$0[1]; /*<>*/ bprint_altint_fmt (buf, ign_flag$0, iconv$2, pad$4, prec$2, 76); - fmt$0 = rest$6; + /*<>*/ fmt$0 = rest$6; ign_flag$0 = 0; break; case 8: var - rest$7 = fmt$0[4], + rest$7 = /*<>*/ fmt$0[4], prec$3 = fmt$0[3], pad$5 = fmt$0[2], fconv = fmt$0[1]; @@ -14432,38 +14284,47 @@ /*<>*/ bprint_fconv_flag(buf, fconv); /*<>*/ bprint_padding(buf, pad$5); /*<>*/ bprint_precision(buf, prec$3); - /*<>*/ buffer_add_char - (buf, char_of_fconv(0, fconv)); - fmt$0 = rest$7; + /*<>*/ /*<>*/ buffer_add_char + (buf, /*<>*/ char_of_fconv(0, fconv)); + /*<>*/ fmt$0 = rest$7; ign_flag$0 = 0; break; case 9: - var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; + var + rest$8 = /*<>*/ fmt$0[2], + pad$6 = fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ bprint_padding(buf, pad$6); /*<>*/ buffer_add_char(buf, 66); - fmt$0 = rest$8; + /*<>*/ fmt$0 = rest$8; ign_flag$0 = 0; break; case 10: - var rest$9 = fmt$0[1]; + var rest$9 = /*<>*/ fmt$0[1]; /*<>*/ buffer_add_string(buf, cst$14); - fmt$0 = rest$9; + /*<>*/ fmt$0 = rest$9; break; case 11: - var rest$10 = fmt$0[2], str = fmt$0[1]; + var + rest$10 = /*<>*/ fmt$0[2], + str = fmt$0[1]; /*<>*/ bprint_string_literal(buf, str); - fmt$0 = rest$10; + /*<>*/ fmt$0 = rest$10; break; case 12: - var rest$11 = fmt$0[2], chr = fmt$0[1]; + var + rest$11 = /*<>*/ fmt$0[2], + chr = fmt$0[1]; /*<>*/ bprint_char_literal(buf, chr); - fmt$0 = rest$11; + /*<>*/ fmt$0 = rest$11; break; case 13: - var rest$12 = fmt$0[3], fmtty = fmt$0[2], pad_opt = fmt$0[1]; + var + rest$12 = /*<>*/ fmt$0[3], + fmtty = fmt$0[2], + pad_opt = fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); @@ -14472,11 +14333,14 @@ /*<>*/ bprint_fmtty(buf, fmtty); /*<>*/ buffer_add_char(buf, 37); /*<>*/ buffer_add_char(buf, 125); - fmt$0 = rest$12; + /*<>*/ fmt$0 = rest$12; ign_flag$0 = 0; break; case 14: - var rest$13 = fmt$0[3], fmtty$0 = fmt$0[2], pad_opt$0 = fmt$0[1]; + var + rest$13 = /*<>*/ fmt$0[3], + fmtty$0 = fmt$0[2], + pad_opt$0 = fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); @@ -14485,105 +14349,127 @@ /*<>*/ bprint_fmtty(buf, fmtty$0); /*<>*/ buffer_add_char(buf, 37); /*<>*/ buffer_add_char(buf, 41); - fmt$0 = rest$13; + /*<>*/ fmt$0 = rest$13; ign_flag$0 = 0; break; case 15: - var rest$14 = fmt$0[1]; + var rest$14 = /*<>*/ fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ buffer_add_char(buf, 97); - fmt$0 = rest$14; + /*<>*/ fmt$0 = rest$14; ign_flag$0 = 0; break; case 16: - var rest$15 = fmt$0[1]; + var rest$15 = /*<>*/ fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ buffer_add_char(buf, 116); - fmt$0 = rest$15; + /*<>*/ fmt$0 = rest$15; ign_flag$0 = 0; break; case 17: - var rest$16 = fmt$0[2], fmting_lit = fmt$0[1]; - /*<>*/ bprint_string_literal - (buf, string_of_formatting_lit(fmting_lit)); - fmt$0 = rest$16; + var + rest$16 = /*<>*/ fmt$0[2], + fmting_lit = fmt$0[1]; + /*<>*/ /*<>*/ bprint_string_literal + (buf, + /*<>*/ string_of_formatting_lit + (fmting_lit)); + /*<>*/ fmt$0 = rest$16; break; case 18: - var rest$17 = fmt$0[2], fmting_gen = fmt$0[1]; + var + rest$17 = /*<>*/ fmt$0[2], + fmting_gen = fmt$0[1]; /*<>*/ if(0 === fmting_gen[0]){ var str$0 = fmting_gen[1][2]; /*<>*/ buffer_add_string(buf, cst$15); /*<>*/ buffer_add_string(buf, str$0); } else{ - var str$1 = fmting_gen[1][2]; + var str$1 = /*<>*/ fmting_gen[1][2]; /*<>*/ buffer_add_string(buf, cst$16); /*<>*/ buffer_add_string(buf, str$1); } - fmt$0 = rest$17; + /*<>*/ fmt$0 = rest$17; break; case 19: - var rest$18 = fmt$0[1]; + var rest$18 = /*<>*/ fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ buffer_add_char(buf, 114); - fmt$0 = rest$18; + /*<>*/ fmt$0 = rest$18; ign_flag$0 = 0; break; case 20: - var rest$19 = fmt$0[3], char_set = fmt$0[2], width_opt = fmt$0[1]; + var + rest$19 = /*<>*/ fmt$0[3], + char_set = fmt$0[2], + width_opt = fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ bprint_pad_opt(buf, width_opt); var print_char = - function(buf, i){ - /*<>*/ /*<>*/ var + /*<>*/ function(buf, i){ + var c = /*<>*/ caml_call1 (Stdlib[29], i); - return 37 === c - ? (buffer_add_char(buf, 37), buffer_add_char(buf, 37)) + /*<>*/ return 37 === c + ? ( /*<>*/ buffer_add_char + (buf, 37), + /*<>*/ buffer_add_char + (buf, 37)) : 64 === c - ? (buffer_add_char(buf, 37), buffer_add_char(buf, 64)) - : buffer_add_char(buf, c); - /*<>*/ }; + ? ( /*<>*/ buffer_add_char + (buf, 37), + /*<>*/ buffer_add_char + (buf, 64)) + : /*<>*/ buffer_add_char + (buf, c) /*<>*/ ; + }; /*<>*/ buffer_add_char(buf, 91); - /*<>*/ /*<>*/ var + var set = - is_in_char_set(char_set, 0) - ? (buffer_add_char(buf, 94), rev_char_set(char_set)) + /*<>*/ is_in_char_set(char_set, 0) + ? ( /*<>*/ buffer_add_char + (buf, 94), + /*<>*/ rev_char_set(char_set)) : char_set; - let set$0 = set; + let set$0 = /*<>*/ set; var is_alone = function(c){ - /*<>*/ var - /*<>*/ after = + var + after = /*<>*/ caml_call1 (Stdlib_Char[1], c + 1 | 0), - /*<>*/ before = + before = /*<>*/ caml_call1 (Stdlib_Char[1], c - 1 | 0), - /*<>*/ _cJ_ = - is_in_char_set(set$0, c); - /*<>*/ if(_cJ_) - /*<>*/ var - /*<>*/ _cK_ = - is_in_char_set(set$0, before), - /*<>*/ _cL_ = - _cK_ ? is_in_char_set(set$0, after) : _cK_, - _cM_ = 1 - _cL_; + _cJ_ = + /*<>*/ is_in_char_set(set$0, c); + /*<>*/ if(_cJ_) + var + _cK_ = + /*<>*/ is_in_char_set + (set$0, before), + _cL_ = + /*<>*/ _cK_ + ? /*<>*/ is_in_char_set + (set$0, after) + : _cK_, + _cM_ = /*<>*/ 1 - _cL_; else - var _cM_ = _cJ_; - /*<>*/ return _cM_; + var _cM_ = /*<>*/ _cJ_; + return _cM_; /*<>*/ }; /*<>*/ if(is_alone(93)) /*<>*/ buffer_add_char(buf, 93); @@ -14594,111 +14480,103 @@ { d: { - var i = 1; - /*<>*/ for(;;){ - if(i >= 256) break; - /*<>*/ if - (is_in_char_set + var i = /*<>*/ 1; + for(;;){ + /*<>*/ if(i >= 256) break; + /*<>*/ if + ( /*<>*/ is_in_char_set (set, /*<>*/ caml_call1 (Stdlib[29], i))){ - /*<>*/ /*<>*/ var + var switcher = /*<>*/ caml_call1 (Stdlib[29], i) - 45 | 0; - if(48 < switcher >>> 0){ + /*<>*/ if(48 < switcher >>> 0){ if(210 <= switcher) break d; } else if(46 < switcher - 1 >>> 0){ - /*<>*/ /*<>*/ var - i$2 = i + 1 | 0; + var i$2 = /*<>*/ i + 1 | 0; i = i$2; continue; } - /*<>*/ /*<>*/ var - i$1 = i + 1 | 0; - /*<>*/ if - (is_in_char_set + var i$1 = /*<>*/ i + 1 | 0; + /*<>*/ if + ( /*<>*/ is_in_char_set (set, /*<>*/ caml_call1 (Stdlib[29], i$1))){ - /*<>*/ /*<>*/ var + var switcher$0 = /*<>*/ caml_call1 (Stdlib[29], i$1) - 45 | 0; - if(48 < switcher$0 >>> 0){ + /*<>*/ if(48 < switcher$0 >>> 0){ if(210 <= switcher$0) break c; } else if (46 < switcher$0 - 1 >>> 0 && ! - is_in_char_set + /*<>*/ is_in_char_set (set, /*<>*/ caml_call1 (Stdlib[29], i$1 + 1 | 0))){ /*<>*/ print_char (buf, i$1 - 1 | 0); - /*<>*/ /*<>*/ var - i$5 = i$1 + 1 | 0; + var i$5 = /*<>*/ i$1 + 1 | 0; i = i$5; continue; } - /*<>*/ if - (is_in_char_set + /*<>*/ if + ( /*<>*/ is_in_char_set (set, /*<>*/ caml_call1 (Stdlib[29], i$1 + 1 | 0))){ - /*<>*/ var - /*<>*/ j = i$1 + 2 | 0, + var + j = /*<>*/ i$1 + 2 | 0, i$3 = i$1 - 1 | 0, j$0 = j; - /*<>*/ for(;;){ - if(256 === j$0) break; - /*<>*/ if + for(;;){ + /*<>*/ if(256 === j$0) break; + /*<>*/ if (! - is_in_char_set + /*<>*/ is_in_char_set (set, /*<>*/ caml_call1 (Stdlib[29], j$0))) break; - /*<>*/ /*<>*/ var - j$1 = j$0 + 1 | 0; + var j$1 = /*<>*/ j$0 + 1 | 0; j$0 = j$1; } /*<>*/ print_char(buf, i$3); /*<>*/ print_char(buf, 45); /*<>*/ print_char (buf, j$0 - 1 | 0); - if(j$0 >= 256) break b; - /*<>*/ /*<>*/ var - i$7 = j$0 + 1 | 0; + /*<>*/ if(j$0 >= 256) break b; + var i$7 = /*<>*/ j$0 + 1 | 0; i = i$7; } else{ /*<>*/ print_char (buf, i$1 - 1 | 0); /*<>*/ print_char(buf, i$1); - /*<>*/ /*<>*/ var - i$4 = i$1 + 2 | 0; + var i$4 = /*<>*/ i$1 + 2 | 0; i = i$4; } } else{ /*<>*/ print_char (buf, i$1 - 1 | 0); - /*<>*/ /*<>*/ var - i$6 = i$1 + 1 | 0; + var i$6 = /*<>*/ i$1 + 1 | 0; i = i$6; } } else{ - /*<>*/ /*<>*/ var - i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } } @@ -14708,56 +14586,61 @@ break a; } /*<>*/ print_char(buf, 254); - /*<>*/ print_char(buf, 255); + /*<>*/ print_char(buf, 255); break a; } /*<>*/ if(is_alone(45)) /*<>*/ buffer_add_char(buf, 45); - /*<>*/ buffer_add_char(buf, 93); - fmt$0 = rest$19; + /*<>*/ buffer_add_char(buf, 93); + /*<>*/ fmt$0 = rest$19; ign_flag$0 = 0; break; case 21: - var rest$20 = fmt$0[2], counter = fmt$0[1]; + var + rest$20 = /*<>*/ fmt$0[2], + counter = fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); - switch(counter){ + /*<>*/ switch(counter){ case 0: - var _cF_ = 108; break; + var _cF_ = /*<>*/ 108; break; case 1: - var _cF_ = 110; break; - default: var _cF_ = 78; + var _cF_ = /*<>*/ 110; break; + default: var _cF_ = /*<>*/ 78; } /*<>*/ buffer_add_char(buf, _cF_); - fmt$0 = rest$20; + /*<>*/ fmt$0 = rest$20; ign_flag$0 = 0; break; case 22: - var rest$21 = fmt$0[1]; + var rest$21 = /*<>*/ fmt$0[1]; /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ bprint_string_literal (buf, cst_0c); - fmt$0 = rest$21; + /*<>*/ fmt$0 = rest$21; ign_flag$0 = 0; break; case 23: var - rest$22 = fmt$0[2], + rest$22 = /*<>*/ fmt$0[2], ign = fmt$0[1], - fmt$1 = param_format_of_ignored_format(ign, rest$22)[1]; - fmt$0 = fmt$1; + fmt$1 = + /*<>*/ param_format_of_ignored_format + (ign, rest$22) + [1]; + /*<>*/ fmt$0 = fmt$1; ign_flag$0 = 1; break; default: - /*<>*/ var - rest$23 = fmt$0[3], + var + rest$23 = /*<>*/ fmt$0[3], arity = fmt$0[1], - /*<>*/ _cH_ = - int_of_custom_arity(arity), - _cG_ = 1; + _cH_ = + /*<>*/ int_of_custom_arity(arity), + _cG_ = /*<>*/ 1; if(_cH_ >= 1){ var i$8 = _cG_; for(;;){ @@ -14765,296 +14648,305 @@ /*<>*/ bprint_ignored_flag (buf, ign_flag$0); /*<>*/ buffer_add_char(buf, 63); - /*<>*/ /*<>*/ var - _cI_ = i$8 + 1 | 0; + var _cI_ = /*<>*/ i$8 + 1 | 0; if(_cH_ === i$8) break; i$8 = _cI_; } } - fmt$0 = rest$23; + /*<>*/ fmt$0 = rest$23; ign_flag$0 = 0; } } /*<>*/ } /*<>*/ fmtiter(fmt, 0); - /*<>*/ return buffer_contents(buf); - /*<>*/ } + /*<>*/ return buffer_contents(buf) /*<>*/ ; + } function symm(param){ - /*<>*/ if(typeof param === "number") + /*<>*/ if(typeof param === "number") /*<>*/ return 0; - switch(param[0]){ + /*<>*/ switch(param[0]){ case 0: var rest = param[1]; - /*<>*/ return [0, symm(rest)]; + /*<>*/ return [0, symm(rest)] /*<>*/ ; case 1: - var rest$0 = param[1]; - /*<>*/ return [1, symm(rest$0)]; + var rest$0 = /*<>*/ param[1]; + /*<>*/ return [1, symm(rest$0)] /*<>*/ ; case 2: - var rest$1 = param[1]; - /*<>*/ return [2, symm(rest$1)]; + var rest$1 = /*<>*/ param[1]; + /*<>*/ return [2, symm(rest$1)] /*<>*/ ; case 3: - var rest$2 = param[1]; - /*<>*/ return [3, symm(rest$2)]; + var rest$2 = /*<>*/ param[1]; + /*<>*/ return [3, symm(rest$2)] /*<>*/ ; case 4: - var rest$3 = param[1]; - /*<>*/ return [4, symm(rest$3)]; + var rest$3 = /*<>*/ param[1]; + /*<>*/ return [4, symm(rest$3)] /*<>*/ ; case 5: - var rest$4 = param[1]; - /*<>*/ return [5, symm(rest$4)]; + var rest$4 = /*<>*/ param[1]; + /*<>*/ return [5, symm(rest$4)] /*<>*/ ; case 6: - var rest$5 = param[1]; - /*<>*/ return [6, symm(rest$5)]; + var rest$5 = /*<>*/ param[1]; + /*<>*/ return [6, symm(rest$5)] /*<>*/ ; case 7: - var rest$6 = param[1]; - /*<>*/ return [7, symm(rest$6)]; + var rest$6 = /*<>*/ param[1]; + /*<>*/ return [7, symm(rest$6)] /*<>*/ ; case 8: - var rest$7 = param[2], ty = param[1]; - /*<>*/ return [8, ty, symm(rest$7)]; + var + rest$7 = /*<>*/ param[2], + ty = param[1]; + /*<>*/ return [8, ty, symm(rest$7)] /*<>*/ ; case 9: - var rest$8 = param[3], ty2 = param[2], ty1 = param[1]; - /*<>*/ return [9, ty2, ty1, symm(rest$8)]; + var + rest$8 = /*<>*/ param[3], + ty2 = param[2], + ty1 = param[1]; + /*<>*/ return [9, + ty2, + ty1, + symm(rest$8)] /*<>*/ ; case 10: - var rest$9 = param[1]; - /*<>*/ return [10, symm(rest$9)]; + var rest$9 = /*<>*/ param[1]; + /*<>*/ return [10, symm(rest$9)] /*<>*/ ; case 11: - var rest$10 = param[1]; - /*<>*/ return [11, symm(rest$10)]; + var rest$10 = /*<>*/ param[1]; + /*<>*/ return [11, symm(rest$10)] /*<>*/ ; case 12: - var rest$11 = param[1]; - /*<>*/ return [12, symm(rest$11)]; + var rest$11 = /*<>*/ param[1]; + /*<>*/ return [12, symm(rest$11)] /*<>*/ ; case 13: - var rest$12 = param[1]; - /*<>*/ return [13, symm(rest$12)]; + var rest$12 = /*<>*/ param[1]; + /*<>*/ return [13, symm(rest$12)] /*<>*/ ; default: - var rest$13 = param[1]; - /*<>*/ return [14, symm(rest$13)]; + var rest$13 = /*<>*/ param[1]; + /*<>*/ return [14, symm(rest$13)] /*<>*/ ; } - } + /*<>*/ } function fmtty_rel_det(param){ - /*<>*/ if(typeof param === "number") + /*<>*/ if(typeof param === "number") /*<>*/ return [0, , function(param){ /*<>*/ }, , - function(param){ /*<>*/ }]; - switch(param[0]){ + function(param){ /*<>*/ }] /*<>*/ ; + /*<>*/ switch(param[0]){ case 0: - /*<>*/ var + var rest = param[1], - /*<>*/ match = fmtty_rel_det(rest), - de = match[4], + match = /*<>*/ fmtty_rel_det(rest), + de = /*<>*/ match[4], af = match[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af(0); + /*<>*/ af(0); /*<>*/ }, , - de]; + de] /*<>*/ ; case 1: - /*<>*/ var - rest$0 = param[1], - /*<>*/ match$0 = fmtty_rel_det(rest$0), - de$0 = match$0[4], + var + rest$0 = /*<>*/ param[1], + match$0 = /*<>*/ fmtty_rel_det(rest$0), + de$0 = /*<>*/ match$0[4], af$0 = match$0[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$0(0); + /*<>*/ af$0(0); /*<>*/ }, , - de$0]; + de$0] /*<>*/ ; case 2: - /*<>*/ var - rest$1 = param[1], - /*<>*/ match$1 = fmtty_rel_det(rest$1), - de$1 = match$1[4], + var + rest$1 = /*<>*/ param[1], + match$1 = /*<>*/ fmtty_rel_det(rest$1), + de$1 = /*<>*/ match$1[4], af$1 = match$1[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$1(0); + /*<>*/ af$1(0); /*<>*/ }, , - de$1]; + de$1] /*<>*/ ; case 3: - /*<>*/ var - rest$2 = param[1], - /*<>*/ match$2 = fmtty_rel_det(rest$2), - de$2 = match$2[4], + var + rest$2 = /*<>*/ param[1], + match$2 = /*<>*/ fmtty_rel_det(rest$2), + de$2 = /*<>*/ match$2[4], af$2 = match$2[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$2(0); + /*<>*/ af$2(0); /*<>*/ }, , - de$2]; + de$2] /*<>*/ ; case 4: - /*<>*/ var - rest$3 = param[1], - /*<>*/ match$3 = fmtty_rel_det(rest$3), - de$3 = match$3[4], + var + rest$3 = /*<>*/ param[1], + match$3 = /*<>*/ fmtty_rel_det(rest$3), + de$3 = /*<>*/ match$3[4], af$3 = match$3[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$3(0); + /*<>*/ af$3(0); /*<>*/ }, , - de$3]; + de$3] /*<>*/ ; case 5: - /*<>*/ var - rest$4 = param[1], - /*<>*/ match$4 = fmtty_rel_det(rest$4), - de$4 = match$4[4], + var + rest$4 = /*<>*/ param[1], + match$4 = /*<>*/ fmtty_rel_det(rest$4), + de$4 = /*<>*/ match$4[4], af$4 = match$4[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$4(0); + /*<>*/ af$4(0); /*<>*/ }, , - de$4]; + de$4] /*<>*/ ; case 6: - /*<>*/ var - rest$5 = param[1], - /*<>*/ match$5 = fmtty_rel_det(rest$5), - de$5 = match$5[4], + var + rest$5 = /*<>*/ param[1], + match$5 = /*<>*/ fmtty_rel_det(rest$5), + de$5 = /*<>*/ match$5[4], af$5 = match$5[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$5(0); + /*<>*/ af$5(0); /*<>*/ }, , - de$5]; + de$5] /*<>*/ ; case 7: - /*<>*/ var - rest$6 = param[1], - /*<>*/ match$6 = fmtty_rel_det(rest$6), - de$6 = match$6[4], + var + rest$6 = /*<>*/ param[1], + match$6 = /*<>*/ fmtty_rel_det(rest$6), + de$6 = /*<>*/ match$6[4], af$6 = match$6[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$6(0); + /*<>*/ af$6(0); /*<>*/ }, , - de$6]; + de$6] /*<>*/ ; case 8: - /*<>*/ var - rest$7 = param[2], - /*<>*/ match$7 = fmtty_rel_det(rest$7), - de$7 = match$7[4], + var + rest$7 = /*<>*/ param[2], + match$7 = /*<>*/ fmtty_rel_det(rest$7), + de$7 = /*<>*/ match$7[4], af$7 = match$7[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$7(0); + /*<>*/ af$7(0); /*<>*/ }, , - de$7]; + de$7] /*<>*/ ; case 9: - /*<>*/ var - rest$8 = param[3], + var + rest$8 = /*<>*/ param[3], ty2 = param[2], ty1 = param[1], - /*<>*/ match$8 = fmtty_rel_det(rest$8), - de$8 = match$8[4], + match$8 = /*<>*/ fmtty_rel_det(rest$8), + de$8 = /*<>*/ match$8[4], af$8 = match$8[2], - /*<>*/ ty = trans(symm(ty1), ty2), - /*<>*/ match$9 = fmtty_rel_det(ty), - jd = match$9[4], + ty = + /*<>*/ /*<>*/ trans + ( /*<>*/ symm(ty1), ty2), + match$9 = /*<>*/ fmtty_rel_det(ty), + jd = /*<>*/ match$9[4], ga = match$9[2]; /*<>*/ return [0, , function(param){ - /*<>*/ ga(0); + /*<>*/ ga(0); /*<>*/ af$8(0); /*<>*/ }, , function(param){ - /*<>*/ jd(0); + /*<>*/ jd(0); /*<>*/ de$8(0); - /*<>*/ }]; + /*<>*/ }] /*<>*/ ; case 10: - /*<>*/ var - rest$9 = param[1], - /*<>*/ match$10 = fmtty_rel_det(rest$9), - de$9 = match$10[4], + var + rest$9 = /*<>*/ param[1], + match$10 = /*<>*/ fmtty_rel_det(rest$9), + de$9 = /*<>*/ match$10[4], af$9 = match$10[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$9(0); + /*<>*/ af$9(0); /*<>*/ }, , - de$9]; + de$9] /*<>*/ ; case 11: - /*<>*/ var - rest$10 = param[1], - /*<>*/ match$11 = - fmtty_rel_det(rest$10), - de$10 = match$11[4], + var + rest$10 = /*<>*/ param[1], + match$11 = + /*<>*/ fmtty_rel_det(rest$10), + de$10 = /*<>*/ match$11[4], af$10 = match$11[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$10(0); + /*<>*/ af$10(0); /*<>*/ }, , - de$10]; + de$10] /*<>*/ ; case 12: - /*<>*/ var - rest$11 = param[1], - /*<>*/ match$12 = - fmtty_rel_det(rest$11), - de$11 = match$12[4], + var + rest$11 = /*<>*/ param[1], + match$12 = + /*<>*/ fmtty_rel_det(rest$11), + de$11 = /*<>*/ match$12[4], af$11 = match$12[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$11(0); + /*<>*/ af$11(0); /*<>*/ }, , - de$11]; + de$11] /*<>*/ ; case 13: - /*<>*/ var - rest$12 = param[1], - /*<>*/ match$13 = - fmtty_rel_det(rest$12), - de$12 = match$13[4], + var + rest$12 = /*<>*/ param[1], + match$13 = + /*<>*/ fmtty_rel_det(rest$12), + de$12 = /*<>*/ match$13[4], af$12 = match$13[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$12(0); + /*<>*/ af$12(0); /*<>*/ }, , function(param){ - /*<>*/ de$12(0); - /*<>*/ }]; + /*<>*/ de$12(0); + /*<>*/ }] /*<>*/ ; default: - /*<>*/ var - rest$13 = param[1], - /*<>*/ match$14 = - fmtty_rel_det(rest$13), - de$13 = match$14[4], + var + rest$13 = /*<>*/ param[1], + match$14 = + /*<>*/ fmtty_rel_det(rest$13), + de$13 = /*<>*/ match$14[4], af$13 = match$14[2]; /*<>*/ return [0, , function(param){ - /*<>*/ af$13(0); + /*<>*/ af$13(0); /*<>*/ }, , function(param){ - /*<>*/ de$13(0); - /*<>*/ }]; + /*<>*/ de$13(0); + /*<>*/ }] /*<>*/ ; } - } + /*<>*/ } function trans(ty1, ty2){ - /*<>*/ a: + a: { b: { @@ -15068,7 +14960,7 @@ { g: { - if(typeof ty1 !== "number"){ + /*<>*/ if(typeof ty1 !== "number"){ switch(ty1[0]){ case 0: var rest1 = ty1[1]; @@ -15076,8 +14968,8 @@ switch(ty2[0]){ case 0: var rest2 = ty2[1]; - /*<>*/ return [0, - trans(rest1, rest2)]; + /*<>*/ return [0, + trans(rest1, rest2)] /*<>*/ ; case 8: break f; case 9: @@ -15095,13 +14987,13 @@ } break; case 1: - var rest1$0 = ty1[1]; + var rest1$0 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 1: var rest2$0 = ty2[1]; - /*<>*/ return [1, - trans(rest1$0, rest2$0)]; + /*<>*/ return [1, + trans(rest1$0, rest2$0)] /*<>*/ ; case 8: break f; case 9: @@ -15119,13 +15011,13 @@ } break; case 2: - var rest1$1 = ty1[1]; + var rest1$1 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 2: var rest2$1 = ty2[1]; - /*<>*/ return [2, - trans(rest1$1, rest2$1)]; + /*<>*/ return [2, + trans(rest1$1, rest2$1)] /*<>*/ ; case 8: break f; case 9: @@ -15143,13 +15035,13 @@ } break; case 3: - var rest1$2 = ty1[1]; + var rest1$2 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 3: var rest2$2 = ty2[1]; - /*<>*/ return [3, - trans(rest1$2, rest2$2)]; + /*<>*/ return [3, + trans(rest1$2, rest2$2)] /*<>*/ ; case 8: break f; case 9: @@ -15167,13 +15059,13 @@ } break; case 4: - var rest1$3 = ty1[1]; + var rest1$3 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 4: var rest2$3 = ty2[1]; - /*<>*/ return [4, - trans(rest1$3, rest2$3)]; + /*<>*/ return [4, + trans(rest1$3, rest2$3)] /*<>*/ ; case 8: break f; case 9: @@ -15191,13 +15083,13 @@ } break; case 5: - var rest1$4 = ty1[1]; + var rest1$4 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 5: var rest2$4 = ty2[1]; - /*<>*/ return [5, - trans(rest1$4, rest2$4)]; + /*<>*/ return [5, + trans(rest1$4, rest2$4)] /*<>*/ ; case 8: break f; case 9: @@ -15215,13 +15107,13 @@ } break; case 6: - var rest1$5 = ty1[1]; + var rest1$5 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 6: var rest2$5 = ty2[1]; - /*<>*/ return [6, - trans(rest1$5, rest2$5)]; + /*<>*/ return [6, + trans(rest1$5, rest2$5)] /*<>*/ ; case 8: break f; case 9: @@ -15239,13 +15131,13 @@ } break; case 7: - var rest1$6 = ty1[1]; + var rest1$6 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 7: var rest2$6 = ty2[1]; - /*<>*/ return [7, - trans(rest1$6, rest2$6)]; + /*<>*/ return [7, + trans(rest1$6, rest2$6)] /*<>*/ ; case 8: break f; case 9: @@ -15263,18 +15155,21 @@ } break; case 8: - var rest1$7 = ty1[2], ty1$0 = ty1[1]; + var + rest1$7 = /*<>*/ ty1[2], + ty1$0 = ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 8: - /*<>*/ var + var rest2$7 = ty2[2], ty2$0 = ty2[1], - /*<>*/ _cE_ = - trans(rest1$7, rest2$7); - /*<>*/ return [8, + _cE_ = + /*<>*/ trans + (rest1$7, rest2$7); + /*<>*/ return [8, trans(ty1$0, ty2$0), - _cE_]; + _cE_] /*<>*/ ; case 10: break a; case 11: @@ -15286,31 +15181,35 @@ case 14: break e; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _k_], 1); case 9: - var rest1$8 = ty1[3], ty12 = ty1[2], ty11 = ty1[1]; + var + rest1$8 = /*<>*/ ty1[3], + ty12 = ty1[2], + ty11 = ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 8: break f; case 9: - /*<>*/ var + var rest2$8 = ty2[3], ty22 = ty2[2], ty21 = ty2[1], - /*<>*/ ty = - trans(symm(ty12), ty21), - /*<>*/ match = - fmtty_rel_det(ty), - f4 = match[4], + ty = + /*<>*/ /*<>*/ trans + ( /*<>*/ symm(ty12), ty21), + match = + /*<>*/ fmtty_rel_det(ty), + f4 = /*<>*/ match[4], f2 = match[2]; /*<>*/ f2(0); /*<>*/ f4(0); - /*<>*/ return [9, + /*<>*/ return [9, ty11, ty22, - trans(rest1$8, rest2$8)]; + trans(rest1$8, rest2$8)] /*<>*/ ; case 10: break a; case 11: @@ -15322,32 +15221,32 @@ case 14: break e; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _l_], 1); case 10: - var rest1$9 = ty1[1]; + var rest1$9 = /*<>*/ ty1[1]; if(typeof ty2 !== "number" && 10 === ty2[0]){ var rest2$9 = ty2[1]; - /*<>*/ return [10, - trans(rest1$9, rest2$9)]; + /*<>*/ return [10, + trans(rest1$9, rest2$9)] /*<>*/ ; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _m_], 1); case 11: - var rest1$10 = ty1[1]; + var rest1$10 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 10: break a; case 11: var rest2$10 = ty2[1]; - /*<>*/ return [11, - trans(rest1$10, rest2$10)]; + /*<>*/ return [11, + trans(rest1$10, rest2$10)] /*<>*/ ; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _n_], 1); case 12: - var rest1$11 = ty1[1]; + var rest1$11 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 10: @@ -15356,13 +15255,13 @@ break b; case 12: var rest2$11 = ty2[1]; - /*<>*/ return [12, - trans(rest1$11, rest2$11)]; + /*<>*/ return [12, + trans(rest1$11, rest2$11)] /*<>*/ ; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _o_], 1); case 13: - var rest1$12 = ty1[1]; + var rest1$12 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 10: @@ -15373,13 +15272,13 @@ break c; case 13: var rest2$12 = ty2[1]; - /*<>*/ return [13, - trans(rest1$12, rest2$12)]; + /*<>*/ return [13, + trans(rest1$12, rest2$12)] /*<>*/ ; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _p_], 1); default: - var rest1$13 = ty1[1]; + var rest1$13 = /*<>*/ ty1[1]; if(typeof ty2 !== "number") switch(ty2[0]){ case 10: @@ -15392,18 +15291,18 @@ break d; case 14: var rest2$13 = ty2[1]; - /*<>*/ return [14, - trans(rest1$13, rest2$13)]; + /*<>*/ return [14, + trans(rest1$13, rest2$13)] /*<>*/ ; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _q_], 1); } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _j_], 1); } - if(typeof ty2 === "number") + /*<>*/ if(typeof ty2 === "number") /*<>*/ return 0; - switch(ty2[0]){ + /*<>*/ switch(ty2[0]){ case 10: break a; case 11: @@ -15418,235 +15317,275 @@ break f; case 9: break; default: - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _b_], 1); } } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _d_], 1); } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _c_], 1); } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _i_], 1); } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _h_], 1); } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _g_], 1); } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _f_], 1); } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _e_], 1); /*<>*/ } function fmtty_of_fmt(fmtty){ - /*<>*/ var fmtty$0 = fmtty; - /*<>*/ for(;;){ + var fmtty$0 = /*<>*/ fmtty; + for(;;){ if(typeof fmtty$0 === "number") /*<>*/ return 0; - switch(fmtty$0[0]){ + /*<>*/ switch(fmtty$0[0]){ case 0: var rest = fmtty$0[1]; - /*<>*/ return [0, fmtty_of_fmt(rest)]; + /*<>*/ return [0, fmtty_of_fmt(rest)] /*<>*/ ; case 1: - var rest$0 = fmtty$0[1]; - /*<>*/ return [0, fmtty_of_fmt(rest$0)]; + var rest$0 = /*<>*/ fmtty$0[1]; + /*<>*/ return [0, fmtty_of_fmt(rest$0)] /*<>*/ ; case 2: - var rest$1 = fmtty$0[2], pad = fmtty$0[1]; - /*<>*/ return fmtty_of_padding_fmtty - (pad, [1, fmtty_of_fmt(rest$1)]); + var + rest$1 = /*<>*/ fmtty$0[2], + pad = fmtty$0[1]; + /*<>*/ return /*<>*/ fmtty_of_padding_fmtty + (pad, + [1, + /*<>*/ fmtty_of_fmt(rest$1)]) /*<>*/ ; case 3: - var rest$2 = fmtty$0[2], pad$0 = fmtty$0[1]; - /*<>*/ return fmtty_of_padding_fmtty - (pad$0, [1, fmtty_of_fmt(rest$2)]); + var + rest$2 = /*<>*/ fmtty$0[2], + pad$0 = fmtty$0[1]; + /*<>*/ return /*<>*/ fmtty_of_padding_fmtty + (pad$0, + [1, + /*<>*/ fmtty_of_fmt(rest$2)]) /*<>*/ ; case 4: - /*<>*/ var - rest$3 = fmtty$0[4], + var + rest$3 = /*<>*/ fmtty$0[4], prec = fmtty$0[3], pad$1 = fmtty$0[2], - /*<>*/ ty_rest = fmtty_of_fmt(rest$3), - /*<>*/ prec_ty = - fmtty_of_precision_fmtty(prec, [2, ty_rest]); + ty_rest = /*<>*/ fmtty_of_fmt(rest$3), + prec_ty = + /*<>*/ fmtty_of_precision_fmtty + (prec, [2, ty_rest]); /*<>*/ return fmtty_of_padding_fmtty - (pad$1, prec_ty); + (pad$1, prec_ty) /*<>*/ ; case 5: - /*<>*/ var - rest$4 = fmtty$0[4], + var + rest$4 = /*<>*/ fmtty$0[4], prec$0 = fmtty$0[3], pad$2 = fmtty$0[2], - /*<>*/ ty_rest$0 = - fmtty_of_fmt(rest$4), - /*<>*/ prec_ty$0 = - fmtty_of_precision_fmtty(prec$0, [3, ty_rest$0]); + ty_rest$0 = + /*<>*/ fmtty_of_fmt(rest$4), + prec_ty$0 = + /*<>*/ fmtty_of_precision_fmtty + (prec$0, [3, ty_rest$0]); /*<>*/ return fmtty_of_padding_fmtty - (pad$2, prec_ty$0); + (pad$2, prec_ty$0) /*<>*/ ; case 6: - /*<>*/ var - rest$5 = fmtty$0[4], + var + rest$5 = /*<>*/ fmtty$0[4], prec$1 = fmtty$0[3], pad$3 = fmtty$0[2], - /*<>*/ ty_rest$1 = - fmtty_of_fmt(rest$5), - /*<>*/ prec_ty$1 = - fmtty_of_precision_fmtty(prec$1, [4, ty_rest$1]); + ty_rest$1 = + /*<>*/ fmtty_of_fmt(rest$5), + prec_ty$1 = + /*<>*/ fmtty_of_precision_fmtty + (prec$1, [4, ty_rest$1]); /*<>*/ return fmtty_of_padding_fmtty - (pad$3, prec_ty$1); + (pad$3, prec_ty$1) /*<>*/ ; case 7: - /*<>*/ var - rest$6 = fmtty$0[4], + var + rest$6 = /*<>*/ fmtty$0[4], prec$2 = fmtty$0[3], pad$4 = fmtty$0[2], - /*<>*/ ty_rest$2 = - fmtty_of_fmt(rest$6), - /*<>*/ prec_ty$2 = - fmtty_of_precision_fmtty(prec$2, [5, ty_rest$2]); + ty_rest$2 = + /*<>*/ fmtty_of_fmt(rest$6), + prec_ty$2 = + /*<>*/ fmtty_of_precision_fmtty + (prec$2, [5, ty_rest$2]); /*<>*/ return fmtty_of_padding_fmtty - (pad$4, prec_ty$2); + (pad$4, prec_ty$2) /*<>*/ ; case 8: - /*<>*/ var - rest$7 = fmtty$0[4], + var + rest$7 = /*<>*/ fmtty$0[4], prec$3 = fmtty$0[3], pad$5 = fmtty$0[2], - /*<>*/ ty_rest$3 = - fmtty_of_fmt(rest$7), - /*<>*/ prec_ty$3 = - fmtty_of_precision_fmtty(prec$3, [6, ty_rest$3]); + ty_rest$3 = + /*<>*/ fmtty_of_fmt(rest$7), + prec_ty$3 = + /*<>*/ fmtty_of_precision_fmtty + (prec$3, [6, ty_rest$3]); /*<>*/ return fmtty_of_padding_fmtty - (pad$5, prec_ty$3); + (pad$5, prec_ty$3) /*<>*/ ; case 9: - var rest$8 = fmtty$0[2], pad$6 = fmtty$0[1]; - /*<>*/ return fmtty_of_padding_fmtty - (pad$6, [7, fmtty_of_fmt(rest$8)]); + var + rest$8 = /*<>*/ fmtty$0[2], + pad$6 = fmtty$0[1]; + /*<>*/ return /*<>*/ fmtty_of_padding_fmtty + (pad$6, + [7, + /*<>*/ fmtty_of_fmt(rest$8)]) /*<>*/ ; case 10: - var fmtty$1 = fmtty$0[1]; fmtty$0 = fmtty$1; break; + var fmtty$1 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$1; + break; case 11: - var fmtty$2 = fmtty$0[2]; fmtty$0 = fmtty$2; break; + var fmtty$2 = /*<>*/ fmtty$0[2]; + /*<>*/ fmtty$0 = fmtty$2; + break; case 12: - var fmtty$3 = fmtty$0[2]; fmtty$0 = fmtty$3; break; + var fmtty$3 = /*<>*/ fmtty$0[2]; + /*<>*/ fmtty$0 = fmtty$3; + break; case 13: - var rest$9 = fmtty$0[3], ty = fmtty$0[2]; - /*<>*/ return [8, + var + rest$9 = /*<>*/ fmtty$0[3], + ty = fmtty$0[2]; + /*<>*/ return [8, ty, - fmtty_of_fmt(rest$9)]; + fmtty_of_fmt(rest$9)] /*<>*/ ; case 14: - var rest$10 = fmtty$0[3], ty$0 = fmtty$0[2]; - /*<>*/ return [9, + var + rest$10 = /*<>*/ fmtty$0[3], + ty$0 = fmtty$0[2]; + /*<>*/ return [9, ty$0, ty$0, - fmtty_of_fmt(rest$10)]; + fmtty_of_fmt(rest$10)] /*<>*/ ; case 15: - var rest$11 = fmtty$0[1]; - /*<>*/ return [10, - fmtty_of_fmt(rest$11)]; + var rest$11 = /*<>*/ fmtty$0[1]; + /*<>*/ return [10, + fmtty_of_fmt(rest$11)] /*<>*/ ; case 16: - var rest$12 = fmtty$0[1]; - /*<>*/ return [11, - fmtty_of_fmt(rest$12)]; + var rest$12 = /*<>*/ fmtty$0[1]; + /*<>*/ return [11, + fmtty_of_fmt(rest$12)] /*<>*/ ; case 17: - var fmtty$4 = fmtty$0[2]; fmtty$0 = fmtty$4; break; + var fmtty$4 = /*<>*/ fmtty$0[2]; + /*<>*/ fmtty$0 = fmtty$4; + break; case 18: - /*<>*/ var - rest$13 = fmtty$0[2], + var + rest$13 = /*<>*/ fmtty$0[2], formatting_gen = fmtty$0[1], - /*<>*/ _cB_ = fmtty_of_fmt(rest$13); - if(0 === formatting_gen[0]) - var fmt = formatting_gen[1][1], _cC_ = fmtty_of_fmt(fmt); + _cB_ = /*<>*/ fmtty_of_fmt(rest$13); + /*<>*/ if(0 === formatting_gen[0]) + var + fmt = formatting_gen[1][1], + _cC_ = /*<>*/ fmtty_of_fmt(fmt); else - var fmt$0 = formatting_gen[1][1], _cC_ = fmtty_of_fmt(fmt$0); - /*<>*/ return /*<>*/ caml_call2 - (CamlinternalFormatBasics[1], _cC_, _cB_); + var + fmt$0 = /*<>*/ formatting_gen[1][1], + _cC_ = /*<>*/ fmtty_of_fmt(fmt$0); + /*<>*/ return caml_call2 + (CamlinternalFormatBasics[1], _cC_, _cB_) /*<>*/ ; case 19: - var rest$14 = fmtty$0[1]; - /*<>*/ return [13, - fmtty_of_fmt(rest$14)]; + var rest$14 = /*<>*/ fmtty$0[1]; + /*<>*/ return [13, + fmtty_of_fmt(rest$14)] /*<>*/ ; case 20: - var rest$15 = fmtty$0[3]; - /*<>*/ return [1, - fmtty_of_fmt(rest$15)]; + var rest$15 = /*<>*/ fmtty$0[3]; + /*<>*/ return [1, + fmtty_of_fmt(rest$15)] /*<>*/ ; case 21: - var rest$16 = fmtty$0[2]; - /*<>*/ return [2, - fmtty_of_fmt(rest$16)]; + var rest$16 = /*<>*/ fmtty$0[2]; + /*<>*/ return [2, + fmtty_of_fmt(rest$16)] /*<>*/ ; case 22: - var rest$17 = fmtty$0[1]; - /*<>*/ return [0, - fmtty_of_fmt(rest$17)]; + var rest$17 = /*<>*/ fmtty$0[1]; + /*<>*/ return [0, + fmtty_of_fmt(rest$17)] /*<>*/ ; case 23: - var fmtty$5 = fmtty$0[2], ign = fmtty$0[1]; - if(typeof ign === "number") + var + fmtty$5 = /*<>*/ fmtty$0[2], + ign = fmtty$0[1]; + /*<>*/ if(typeof ign === "number") switch(ign){ case 0: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 1: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 2: - /*<>*/ return [14, - fmtty_of_fmt(fmtty$5)]; - default: fmtty$0 = fmtty$5; + /*<>*/ return [14, + fmtty_of_fmt(fmtty$5)] /*<>*/ ; + default: /*<>*/ fmtty$0 = fmtty$5; } else - switch(ign[0]){ + /*<>*/ switch(ign[0]){ case 0: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 1: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 2: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 3: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 4: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 5: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 6: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 7: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 8: - fmtty$0 = fmtty$5; break; + /*<>*/ fmtty$0 = fmtty$5; break; case 9: - /*<>*/ var - fmtty$6 = ign[2], - /*<>*/ _cD_ = - fmtty_of_fmt(fmtty$5); - /*<>*/ return /*<>*/ caml_call2 - (CamlinternalFormatBasics[1], fmtty$6, _cD_); + var + fmtty$6 = /*<>*/ ign[2], + _cD_ = + /*<>*/ fmtty_of_fmt(fmtty$5); + /*<>*/ return caml_call2 + (CamlinternalFormatBasics[1], fmtty$6, _cD_) /*<>*/ ; case 10: - fmtty$0 = fmtty$5; break; - default: fmtty$0 = fmtty$5; + /*<>*/ fmtty$0 = fmtty$5; break; + default: /*<>*/ fmtty$0 = fmtty$5; } break; default: - var rest$18 = fmtty$0[3], arity = fmtty$0[1]; - /*<>*/ return fmtty_of_custom - (arity, fmtty_of_fmt(rest$18)); + var + rest$18 = /*<>*/ fmtty$0[3], + arity = fmtty$0[1]; + /*<>*/ return /*<>*/ fmtty_of_custom + (arity, + /*<>*/ fmtty_of_fmt(rest$18)) /*<>*/ ; } } - /*<>*/ } + } function fmtty_of_custom(arity, fmtty){ /*<>*/ if(! arity) /*<>*/ return fmtty; - var arity$0 = arity[1]; - /*<>*/ return [12, - fmtty_of_custom(arity$0, fmtty)]; - /*<>*/ } + var arity$0 = /*<>*/ arity[1]; + /*<>*/ return [12, + fmtty_of_custom(arity$0, fmtty)] /*<>*/ ; + } function fmtty_of_padding_fmtty(pad, fmtty){ /*<>*/ return typeof pad === "number" ? fmtty - : 0 === pad[0] ? fmtty : [2, fmtty]; - /*<>*/ } + : 0 === pad[0] ? fmtty : [2, fmtty] /*<>*/ ; + } function fmtty_of_precision_fmtty(prec, fmtty){ /*<>*/ return typeof prec === "number" ? prec ? [2, fmtty] : fmtty - : fmtty; - /*<>*/ } - /*<>*/ var - /*<>*/ Type_mismatch = - [248, "CamlinternalFormat.Type_mismatch", runtime.caml_fresh_oo_id(0)], + : fmtty /*<>*/ ; + } + var + Type_mismatch = + /*<>*/ [248, + "CamlinternalFormat.Type_mismatch", + runtime.caml_fresh_oo_id(0)], cst_d = "%d", cst_d$0 = "%+d", cst_d$1 = "% d", @@ -15886,288 +15825,309 @@ function type_padding(pad, fmtty){ /*<>*/ if(typeof pad === "number") /*<>*/ return [0, 0, fmtty]; - if(0 === pad[0]){ + /*<>*/ if(0 === pad[0]){ var w = pad[2], padty = pad[1]; /*<>*/ return [0, [0, padty, w], fmtty]; } - if(typeof fmtty !== "number" && 2 === fmtty[0]){ + /*<>*/ if + (typeof fmtty !== "number" && 2 === fmtty[0]){ var rest = fmtty[1], padty$0 = pad[1]; /*<>*/ return [0, [1, padty$0], rest]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); /*<>*/ } function type_padprec(pad, prec, fmtty){ - /*<>*/ /*<>*/ var - match = type_padding(pad, fmtty); - if(typeof prec !== "number"){ + var + match = /*<>*/ type_padding(pad, fmtty); + /*<>*/ if(typeof prec !== "number"){ var rest$1 = match[2], pad$2 = match[1], p = prec[1]; /*<>*/ return [0, pad$2, [0, p], rest$1]; } - if(! prec){ + /*<>*/ if(! prec){ var rest$0 = match[2], pad$1 = match[1]; /*<>*/ return [0, pad$1, 0, rest$0]; } - var match$0 = match[2]; + var match$0 = /*<>*/ match[2]; if(typeof match$0 !== "number" && 2 === match$0[0]){ var rest = match$0[1], pad$0 = match[1]; /*<>*/ return [0, pad$0, 1, rest]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); /*<>*/ } function type_format(fmt, fmtty){ - /*<>*/ /*<>*/ var - _cA_ = type_format_gen(fmt, fmtty); - if(typeof _cA_[2] !== "number") - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + _cA_ = /*<>*/ type_format_gen(fmt, fmtty); + /*<>*/ if(typeof _cA_[2] !== "number") + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); - var fmt$0 = _cA_[1]; + var fmt$0 = /*<>*/ _cA_[1]; /*<>*/ return fmt$0; /*<>*/ } function type_format_gen(fmt, fmtty0){ /*<>*/ if(typeof fmt === "number") /*<>*/ return [0, 0, fmtty0]; - switch(fmt[0]){ + /*<>*/ switch(fmt[0]){ case 0: if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ - /*<>*/ var + var fmtty_rest = fmtty0[1], fmt_rest = fmt[1], - /*<>*/ match = - type_format_gen(fmt_rest, fmtty_rest), - fmtty = match[2], + match = + /*<>*/ type_format_gen + (fmt_rest, fmtty_rest), + fmtty = /*<>*/ match[2], fmt$0 = match[1]; /*<>*/ return [0, [0, fmt$0], fmtty]; } break; case 1: - if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty0 !== "number" && 0 === fmtty0[0]){ + var fmtty_rest$0 = fmtty0[1], fmt_rest$0 = fmt[1], - /*<>*/ match$0 = - type_format_gen(fmt_rest$0, fmtty_rest$0), - fmtty$0 = match$0[2], + match$0 = + /*<>*/ type_format_gen + (fmt_rest$0, fmtty_rest$0), + fmtty$0 = /*<>*/ match$0[2], fmt$1 = match$0[1]; /*<>*/ return [0, [1, fmt$1], fmtty$0]; } break; case 2: - /*<>*/ var - fmt_rest$1 = fmt[2], + var + fmt_rest$1 = /*<>*/ fmt[2], pad = fmt[1], - /*<>*/ match$1 = - type_padding(pad, fmtty0), - pad$0 = match$1[1], + match$1 = + /*<>*/ type_padding(pad, fmtty0), + pad$0 = /*<>*/ match$1[1], match$2 = match$1[2]; if(typeof match$2 !== "number" && 1 === match$2[0]){ - /*<>*/ var + var fmtty_rest$1 = match$2[1], - /*<>*/ match$3 = - type_format_gen(fmt_rest$1, fmtty_rest$1), - fmtty$1 = match$3[2], + match$3 = + /*<>*/ type_format_gen + (fmt_rest$1, fmtty_rest$1), + fmtty$1 = /*<>*/ match$3[2], fmt$2 = match$3[1]; /*<>*/ return [0, [2, pad$0, fmt$2], fmtty$1]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); case 3: - /*<>*/ var - fmt_rest$2 = fmt[2], + var + fmt_rest$2 = /*<>*/ fmt[2], pad$1 = fmt[1], - /*<>*/ match$4 = - type_padding(pad$1, fmtty0), - pad$2 = match$4[1], + match$4 = + /*<>*/ type_padding(pad$1, fmtty0), + pad$2 = /*<>*/ match$4[1], match$5 = match$4[2]; if(typeof match$5 !== "number" && 1 === match$5[0]){ - /*<>*/ var + var fmtty_rest$2 = match$5[1], - /*<>*/ match$6 = - type_format_gen(fmt_rest$2, fmtty_rest$2), - fmtty$2 = match$6[2], + match$6 = + /*<>*/ type_format_gen + (fmt_rest$2, fmtty_rest$2), + fmtty$2 = /*<>*/ match$6[2], fmt$3 = match$6[1]; /*<>*/ return [0, [3, pad$2, fmt$3], fmtty$2]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); case 4: - /*<>*/ var - fmt_rest$3 = fmt[4], + var + fmt_rest$3 = /*<>*/ fmt[4], prec = fmt[3], pad$3 = fmt[2], iconv = fmt[1], - /*<>*/ match$7 = - type_padprec(pad$3, prec, fmtty0), - pad$4 = match$7[1], + match$7 = + /*<>*/ type_padprec + (pad$3, prec, fmtty0), + pad$4 = /*<>*/ match$7[1], match$8 = match$7[3]; if(typeof match$8 !== "number" && 2 === match$8[0]){ - /*<>*/ var + var fmtty_rest$3 = match$8[1], prec$0 = match$7[2], - /*<>*/ match$9 = - type_format_gen(fmt_rest$3, fmtty_rest$3), - fmtty$3 = match$9[2], + match$9 = + /*<>*/ type_format_gen + (fmt_rest$3, fmtty_rest$3), + fmtty$3 = /*<>*/ match$9[2], fmt$4 = match$9[1]; /*<>*/ return [0, [4, iconv, pad$4, prec$0, fmt$4], fmtty$3]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); case 5: - /*<>*/ var - fmt_rest$4 = fmt[4], + var + fmt_rest$4 = /*<>*/ fmt[4], prec$1 = fmt[3], pad$5 = fmt[2], iconv$0 = fmt[1], - /*<>*/ match$10 = - type_padprec(pad$5, prec$1, fmtty0), - pad$6 = match$10[1], + match$10 = + /*<>*/ type_padprec + (pad$5, prec$1, fmtty0), + pad$6 = /*<>*/ match$10[1], match$11 = match$10[3]; if(typeof match$11 !== "number" && 3 === match$11[0]){ - /*<>*/ var + var fmtty_rest$4 = match$11[1], prec$2 = match$10[2], - /*<>*/ match$12 = - type_format_gen(fmt_rest$4, fmtty_rest$4), - fmtty$4 = match$12[2], + match$12 = + /*<>*/ type_format_gen + (fmt_rest$4, fmtty_rest$4), + fmtty$4 = /*<>*/ match$12[2], fmt$5 = match$12[1]; /*<>*/ return [0, [5, iconv$0, pad$6, prec$2, fmt$5], fmtty$4]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); case 6: - /*<>*/ var - fmt_rest$5 = fmt[4], + var + fmt_rest$5 = /*<>*/ fmt[4], prec$3 = fmt[3], pad$7 = fmt[2], iconv$1 = fmt[1], - /*<>*/ match$13 = - type_padprec(pad$7, prec$3, fmtty0), - pad$8 = match$13[1], + match$13 = + /*<>*/ type_padprec + (pad$7, prec$3, fmtty0), + pad$8 = /*<>*/ match$13[1], match$14 = match$13[3]; if(typeof match$14 !== "number" && 4 === match$14[0]){ - /*<>*/ var + var fmtty_rest$5 = match$14[1], prec$4 = match$13[2], - /*<>*/ match$15 = - type_format_gen(fmt_rest$5, fmtty_rest$5), - fmtty$5 = match$15[2], + match$15 = + /*<>*/ type_format_gen + (fmt_rest$5, fmtty_rest$5), + fmtty$5 = /*<>*/ match$15[2], fmt$6 = match$15[1]; /*<>*/ return [0, [6, iconv$1, pad$8, prec$4, fmt$6], fmtty$5]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); case 7: - /*<>*/ var - fmt_rest$6 = fmt[4], + var + fmt_rest$6 = /*<>*/ fmt[4], prec$5 = fmt[3], pad$9 = fmt[2], iconv$2 = fmt[1], - /*<>*/ match$16 = - type_padprec(pad$9, prec$5, fmtty0), - pad$10 = match$16[1], + match$16 = + /*<>*/ type_padprec + (pad$9, prec$5, fmtty0), + pad$10 = /*<>*/ match$16[1], match$17 = match$16[3]; if(typeof match$17 !== "number" && 5 === match$17[0]){ - /*<>*/ var + var fmtty_rest$6 = match$17[1], prec$6 = match$16[2], - /*<>*/ match$18 = - type_format_gen(fmt_rest$6, fmtty_rest$6), - fmtty$6 = match$18[2], + match$18 = + /*<>*/ type_format_gen + (fmt_rest$6, fmtty_rest$6), + fmtty$6 = /*<>*/ match$18[2], fmt$7 = match$18[1]; /*<>*/ return [0, [7, iconv$2, pad$10, prec$6, fmt$7], fmtty$6]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); case 8: - /*<>*/ var - fmt_rest$7 = fmt[4], + var + fmt_rest$7 = /*<>*/ fmt[4], prec$7 = fmt[3], pad$11 = fmt[2], fconv = fmt[1], - /*<>*/ match$19 = - type_padprec(pad$11, prec$7, fmtty0), - pad$12 = match$19[1], + match$19 = + /*<>*/ type_padprec + (pad$11, prec$7, fmtty0), + pad$12 = /*<>*/ match$19[1], match$20 = match$19[3]; if(typeof match$20 !== "number" && 6 === match$20[0]){ - /*<>*/ var + var fmtty_rest$7 = match$20[1], prec$8 = match$19[2], - /*<>*/ match$21 = - type_format_gen(fmt_rest$7, fmtty_rest$7), - fmtty$7 = match$21[2], + match$21 = + /*<>*/ type_format_gen + (fmt_rest$7, fmtty_rest$7), + fmtty$7 = /*<>*/ match$21[2], fmt$8 = match$21[1]; /*<>*/ return [0, [8, fconv, pad$12, prec$8, fmt$8], fmtty$7]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); case 9: - /*<>*/ var - fmt_rest$8 = fmt[2], + var + fmt_rest$8 = /*<>*/ fmt[2], pad$13 = fmt[1], - /*<>*/ match$22 = - type_padding(pad$13, fmtty0), - pad$14 = match$22[1], + match$22 = + /*<>*/ type_padding(pad$13, fmtty0), + pad$14 = /*<>*/ match$22[1], match$23 = match$22[2]; if(typeof match$23 !== "number" && 7 === match$23[0]){ - /*<>*/ var + var fmtty_rest$8 = match$23[1], - /*<>*/ match$24 = - type_format_gen(fmt_rest$8, fmtty_rest$8), - fmtty$8 = match$24[2], + match$24 = + /*<>*/ type_format_gen + (fmt_rest$8, fmtty_rest$8), + fmtty$8 = /*<>*/ match$24[2], fmt$9 = match$24[1]; /*<>*/ return [0, [9, pad$14, fmt$9], fmtty$8]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); case 10: - /*<>*/ var - fmt_rest$9 = fmt[1], - /*<>*/ match$25 = - type_format_gen(fmt_rest$9, fmtty0), - fmtty$9 = match$25[2], + var + fmt_rest$9 = /*<>*/ fmt[1], + match$25 = + /*<>*/ type_format_gen + (fmt_rest$9, fmtty0), + fmtty$9 = /*<>*/ match$25[2], fmt$10 = match$25[1]; /*<>*/ return [0, [10, fmt$10], fmtty$9]; case 11: - /*<>*/ var - fmt_rest$10 = fmt[2], + var + fmt_rest$10 = /*<>*/ fmt[2], str = fmt[1], - /*<>*/ match$26 = - type_format_gen(fmt_rest$10, fmtty0), - fmtty$10 = match$26[2], + match$26 = + /*<>*/ type_format_gen + (fmt_rest$10, fmtty0), + fmtty$10 = /*<>*/ match$26[2], fmt$11 = match$26[1]; /*<>*/ return [0, [11, str, fmt$11], fmtty$10]; case 12: - /*<>*/ var - fmt_rest$11 = fmt[2], + var + fmt_rest$11 = /*<>*/ fmt[2], chr = fmt[1], - /*<>*/ match$27 = - type_format_gen(fmt_rest$11, fmtty0), - fmtty$11 = match$27[2], + match$27 = + /*<>*/ type_format_gen + (fmt_rest$11, fmtty0), + fmtty$11 = /*<>*/ match$27[2], fmt$12 = match$27[1]; /*<>*/ return [0, [12, chr, fmt$12], fmtty$11]; case 13: - if(typeof fmtty0 !== "number" && 8 === fmtty0[0]){ + /*<>*/ if + (typeof fmtty0 !== "number" && 8 === fmtty0[0]){ var fmtty_rest$9 = fmtty0[2], sub_fmtty = fmtty0[1], @@ -16175,14 +16135,14 @@ sub_fmtty$0 = fmt[2], pad_opt = fmt[1]; /*<>*/ if - ( /*<>*/ caml_notequal - ([0, sub_fmtty$0], [0, sub_fmtty])) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + (caml_notequal([0, sub_fmtty$0], [0, sub_fmtty])) + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); - /*<>*/ var - /*<>*/ match$28 = - type_format_gen(fmt_rest$12, fmtty_rest$9), - fmtty$12 = match$28[2], + var + match$28 = + /*<>*/ type_format_gen + (fmt_rest$12, fmtty_rest$9), + fmtty$12 = /*<>*/ match$28[2], fmt$13 = match$28[1]; /*<>*/ return [0, [13, pad_opt, sub_fmtty, fmt$13], @@ -16190,32 +16150,32 @@ } break; case 14: - if(typeof fmtty0 !== "number" && 9 === fmtty0[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty0 !== "number" && 9 === fmtty0[0]){ + var fmtty_rest$10 = fmtty0[3], sub_fmtty1 = fmtty0[1], fmt_rest$13 = fmt[3], sub_fmtty$1 = fmt[2], pad_opt$0 = fmt[1], - /*<>*/ _cy_ = - [0, - /*<>*/ caml_call1 - (CamlinternalFormatBasics[2], sub_fmtty1)]; - /*<>*/ if + _cy_ = + /*<>*/ [0, + caml_call1(CamlinternalFormatBasics[2], sub_fmtty1)]; + /*<>*/ if ( /*<>*/ caml_notequal ([0, /*<>*/ caml_call1 (CamlinternalFormatBasics[2], sub_fmtty$1)], _cy_)) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); - /*<>*/ var - /*<>*/ match$29 = - type_format_gen + var + match$29 = + /*<>*/ /*<>*/ type_format_gen (fmt_rest$13, /*<>*/ caml_call1 (CamlinternalFormatBasics[2], fmtty_rest$10)), - fmtty$13 = match$29[2], + fmtty$13 = /*<>*/ match$29[2], fmt$14 = match$29[1]; /*<>*/ return [0, [14, pad_opt$0, sub_fmtty1, fmt$14], @@ -16223,13 +16183,15 @@ } break; case 15: - if(typeof fmtty0 !== "number" && 10 === fmtty0[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty0 !== "number" && 10 === fmtty0[0]){ + var fmtty_rest$11 = fmtty0[1], fmt_rest$14 = fmt[1], - /*<>*/ match$30 = - type_format_gen(fmt_rest$14, fmtty_rest$11), - fmtty$14 = match$30[2], + match$30 = + /*<>*/ type_format_gen + (fmt_rest$14, fmtty_rest$11), + fmtty$14 = /*<>*/ match$30[2], fmt$15 = match$30[1]; /*<>*/ return [0, [15, fmt$15], @@ -16237,13 +16199,15 @@ } break; case 16: - if(typeof fmtty0 !== "number" && 11 === fmtty0[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty0 !== "number" && 11 === fmtty0[0]){ + var fmtty_rest$12 = fmtty0[1], fmt_rest$15 = fmt[1], - /*<>*/ match$31 = - type_format_gen(fmt_rest$15, fmtty_rest$12), - fmtty$15 = match$31[2], + match$31 = + /*<>*/ type_format_gen + (fmt_rest$15, fmtty_rest$12), + fmtty$15 = /*<>*/ match$31[2], fmt$16 = match$31[1]; /*<>*/ return [0, [16, fmt$16], @@ -16251,58 +16215,67 @@ } break; case 17: - /*<>*/ var - fmt_rest$16 = fmt[2], + var + fmt_rest$16 = /*<>*/ fmt[2], formatting_lit = fmt[1], - /*<>*/ match$32 = - type_format_gen(fmt_rest$16, fmtty0), - fmtty$16 = match$32[2], + match$32 = + /*<>*/ type_format_gen + (fmt_rest$16, fmtty0), + fmtty$16 = /*<>*/ match$32[2], fmt$17 = match$32[1]; /*<>*/ return [0, [17, formatting_lit, fmt$17], fmtty$16]; case 18: - var fmt_rest$17 = fmt[2], formatting_gen = fmt[1]; - if(0 === formatting_gen[0]){ - /*<>*/ var + var + fmt_rest$17 = /*<>*/ fmt[2], + formatting_gen = fmt[1]; + /*<>*/ if(0 === formatting_gen[0]){ + var match$36 = formatting_gen[1], str$0 = match$36[2], fmt1 = match$36[1], - /*<>*/ match$37 = - type_format_gen(fmt1, fmtty0), - fmtty2 = match$37[2], + match$37 = + /*<>*/ type_format_gen + (fmt1, fmtty0), + fmtty2 = /*<>*/ match$37[2], fmt2 = match$37[1], - /*<>*/ match$38 = - type_format_gen(fmt_rest$17, fmtty2), - fmtty3 = match$38[2], + match$38 = + /*<>*/ type_format_gen + (fmt_rest$17, fmtty2), + fmtty3 = /*<>*/ match$38[2], fmt3 = match$38[1]; /*<>*/ return [0, [18, [0, [0, fmt2, str$0]], fmt3], fmtty3]; } - /*<>*/ var - match$39 = formatting_gen[1], + var + match$39 = /*<>*/ formatting_gen[1], str$1 = match$39[2], fmt1$0 = match$39[1], - /*<>*/ match$40 = - type_format_gen(fmt1$0, fmtty0), - fmtty2$0 = match$40[2], + match$40 = + /*<>*/ type_format_gen + (fmt1$0, fmtty0), + fmtty2$0 = /*<>*/ match$40[2], fmt2$0 = match$40[1], - /*<>*/ match$41 = - type_format_gen(fmt_rest$17, fmtty2$0), - fmtty3$0 = match$41[2], + match$41 = + /*<>*/ type_format_gen + (fmt_rest$17, fmtty2$0), + fmtty3$0 = /*<>*/ match$41[2], fmt3$0 = match$41[1]; /*<>*/ return [0, [18, [1, [0, fmt2$0, str$1]], fmt3$0], fmtty3$0]; case 19: - if(typeof fmtty0 !== "number" && 13 === fmtty0[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty0 !== "number" && 13 === fmtty0[0]){ + var fmtty_rest$13 = fmtty0[1], fmt_rest$18 = fmt[1], - /*<>*/ match$33 = - type_format_gen(fmt_rest$18, fmtty_rest$13), - fmtty$17 = match$33[2], + match$33 = + /*<>*/ type_format_gen + (fmt_rest$18, fmtty_rest$13), + fmtty$17 = /*<>*/ match$33[2], fmt$18 = match$33[1]; /*<>*/ return [0, [19, fmt$18], @@ -16310,15 +16283,17 @@ } break; case 20: - if(typeof fmtty0 !== "number" && 1 === fmtty0[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty0 !== "number" && 1 === fmtty0[0]){ + var fmtty_rest$14 = fmtty0[1], fmt_rest$19 = fmt[3], char_set = fmt[2], width_opt = fmt[1], - /*<>*/ match$34 = - type_format_gen(fmt_rest$19, fmtty_rest$14), - fmtty$18 = match$34[2], + match$34 = + /*<>*/ type_format_gen + (fmt_rest$19, fmtty_rest$14), + fmtty$18 = /*<>*/ match$34[2], fmt$19 = match$34[1]; /*<>*/ return [0, [20, width_opt, char_set, fmt$19], @@ -16326,14 +16301,16 @@ } break; case 21: - if(typeof fmtty0 !== "number" && 2 === fmtty0[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty0 !== "number" && 2 === fmtty0[0]){ + var fmtty_rest$15 = fmtty0[1], fmt_rest$20 = fmt[2], counter = fmt[1], - /*<>*/ match$35 = - type_format_gen(fmt_rest$20, fmtty_rest$15), - fmtty$19 = match$35[2], + match$35 = + /*<>*/ type_format_gen + (fmt_rest$20, fmtty_rest$15), + fmtty$19 = /*<>*/ match$35[2], fmt$20 = match$35[1]; /*<>*/ return [0, [21, counter, fmt$20], @@ -16341,44 +16318,47 @@ } break; case 23: - var rest = fmt[2], ign = fmt[1]; - if(typeof ign !== "number") + var rest = /*<>*/ fmt[2], ign = fmt[1]; + /*<>*/ if(typeof ign !== "number") switch(ign[0]){ case 0: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 1: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 2: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 3: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 4: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 5: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 6: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 7: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 8: - var sub_fmtty$2 = ign[2], pad_opt$1 = ign[1]; + var + sub_fmtty$2 = /*<>*/ ign[2], + pad_opt$1 = ign[1]; /*<>*/ return type_ignored_param_one - ([8, pad_opt$1, sub_fmtty$2], rest, fmtty0); + ([8, pad_opt$1, sub_fmtty$2], rest, fmtty0) /*<>*/ ; case 9: - /*<>*/ var - sub_fmtty$3 = ign[2], + var + sub_fmtty$3 = /*<>*/ ign[2], pad_opt$2 = ign[1], - /*<>*/ _cz_ = - type_ignored_format_substituti(sub_fmtty$3, rest, fmtty0), - match$43 = _cz_[2], + _cz_ = + /*<>*/ type_ignored_format_substituti + (sub_fmtty$3, rest, fmtty0), + match$43 = /*<>*/ _cz_[2], fmtty$21 = match$43[2], fmt$22 = match$43[1], sub_fmtty$4 = _cz_[1]; @@ -16387,45 +16367,47 @@ fmtty$21]; case 10: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; default: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; } - switch(ign){ + /*<>*/ switch(ign){ case 0: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 1: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; case 2: - if(typeof fmtty0 !== "number" && 14 === fmtty0[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty0 !== "number" && 14 === fmtty0[0]){ + var fmtty_rest$16 = fmtty0[1], - /*<>*/ match$42 = - type_format_gen(rest, fmtty_rest$16), - fmtty$20 = match$42[2], + match$42 = + /*<>*/ type_format_gen + (rest, fmtty_rest$16), + fmtty$20 = /*<>*/ match$42[2], fmt$21 = match$42[1]; /*<>*/ return [0, [23, 2, fmt$21], fmtty$20]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); default: /*<>*/ return type_ignored_param_one - (ign, rest, fmtty0); + (ign, rest, fmtty0) /*<>*/ ; } } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); /*<>*/ } function type_ignored_param_one(ign, fmt, fmtty){ - /*<>*/ var - /*<>*/ match = - type_format_gen(fmt, fmtty), - fmtty$0 = match[2], + var + match = + /*<>*/ type_format_gen(fmt, fmtty), + fmtty$0 = /*<>*/ match[2], fmt$0 = match[1]; /*<>*/ return [0, [23, ign, fmt$0], @@ -16433,18 +16415,19 @@ /*<>*/ } function type_ignored_format_substituti(sub_fmtty, fmt, fmtty){ /*<>*/ if(typeof sub_fmtty === "number") - /*<>*/ return [0, + /*<>*/ return [0, 0, - type_format_gen(fmt, fmtty)]; - switch(sub_fmtty[0]){ + type_format_gen(fmt, fmtty)] /*<>*/ ; + /*<>*/ switch(sub_fmtty[0]){ case 0: if(typeof fmtty !== "number" && 0 === fmtty[0]){ - /*<>*/ var + var fmtty_rest = fmtty[1], sub_fmtty_rest = sub_fmtty[1], - /*<>*/ match = - type_ignored_format_substituti(sub_fmtty_rest, fmt, fmtty_rest), - fmt$0 = match[2], + match = + /*<>*/ type_ignored_format_substituti + (sub_fmtty_rest, fmt, fmtty_rest), + fmt$0 = /*<>*/ match[2], sub_fmtty_rest$0 = match[1]; /*<>*/ return [0, [0, sub_fmtty_rest$0], @@ -16452,13 +16435,15 @@ } break; case 1: - if(typeof fmtty !== "number" && 1 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 1 === fmtty[0]){ + var fmtty_rest$0 = fmtty[1], sub_fmtty_rest$1 = sub_fmtty[1], - /*<>*/ match$0 = - type_ignored_format_substituti(sub_fmtty_rest$1, fmt, fmtty_rest$0), - fmt$1 = match$0[2], + match$0 = + /*<>*/ type_ignored_format_substituti + (sub_fmtty_rest$1, fmt, fmtty_rest$0), + fmt$1 = /*<>*/ match$0[2], sub_fmtty_rest$2 = match$0[1]; /*<>*/ return [0, [1, sub_fmtty_rest$2], @@ -16466,13 +16451,15 @@ } break; case 2: - if(typeof fmtty !== "number" && 2 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 2 === fmtty[0]){ + var fmtty_rest$1 = fmtty[1], sub_fmtty_rest$3 = sub_fmtty[1], - /*<>*/ match$1 = - type_ignored_format_substituti(sub_fmtty_rest$3, fmt, fmtty_rest$1), - fmt$2 = match$1[2], + match$1 = + /*<>*/ type_ignored_format_substituti + (sub_fmtty_rest$3, fmt, fmtty_rest$1), + fmt$2 = /*<>*/ match$1[2], sub_fmtty_rest$4 = match$1[1]; /*<>*/ return [0, [2, sub_fmtty_rest$4], @@ -16480,13 +16467,15 @@ } break; case 3: - if(typeof fmtty !== "number" && 3 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 3 === fmtty[0]){ + var fmtty_rest$2 = fmtty[1], sub_fmtty_rest$5 = sub_fmtty[1], - /*<>*/ match$2 = - type_ignored_format_substituti(sub_fmtty_rest$5, fmt, fmtty_rest$2), - fmt$3 = match$2[2], + match$2 = + /*<>*/ type_ignored_format_substituti + (sub_fmtty_rest$5, fmt, fmtty_rest$2), + fmt$3 = /*<>*/ match$2[2], sub_fmtty_rest$6 = match$2[1]; /*<>*/ return [0, [3, sub_fmtty_rest$6], @@ -16494,13 +16483,15 @@ } break; case 4: - if(typeof fmtty !== "number" && 4 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 4 === fmtty[0]){ + var fmtty_rest$3 = fmtty[1], sub_fmtty_rest$7 = sub_fmtty[1], - /*<>*/ match$3 = - type_ignored_format_substituti(sub_fmtty_rest$7, fmt, fmtty_rest$3), - fmt$4 = match$3[2], + match$3 = + /*<>*/ type_ignored_format_substituti + (sub_fmtty_rest$7, fmt, fmtty_rest$3), + fmt$4 = /*<>*/ match$3[2], sub_fmtty_rest$8 = match$3[1]; /*<>*/ return [0, [4, sub_fmtty_rest$8], @@ -16508,13 +16499,15 @@ } break; case 5: - if(typeof fmtty !== "number" && 5 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 5 === fmtty[0]){ + var fmtty_rest$4 = fmtty[1], sub_fmtty_rest$9 = sub_fmtty[1], - /*<>*/ match$4 = - type_ignored_format_substituti(sub_fmtty_rest$9, fmt, fmtty_rest$4), - fmt$5 = match$4[2], + match$4 = + /*<>*/ type_ignored_format_substituti + (sub_fmtty_rest$9, fmt, fmtty_rest$4), + fmt$5 = /*<>*/ match$4[2], sub_fmtty_rest$10 = match$4[1]; /*<>*/ return [0, [5, sub_fmtty_rest$10], @@ -16522,14 +16515,15 @@ } break; case 6: - if(typeof fmtty !== "number" && 6 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 6 === fmtty[0]){ + var fmtty_rest$5 = fmtty[1], sub_fmtty_rest$11 = sub_fmtty[1], - /*<>*/ match$5 = - type_ignored_format_substituti + match$5 = + /*<>*/ type_ignored_format_substituti (sub_fmtty_rest$11, fmt, fmtty_rest$5), - fmt$6 = match$5[2], + fmt$6 = /*<>*/ match$5[2], sub_fmtty_rest$12 = match$5[1]; /*<>*/ return [0, [6, sub_fmtty_rest$12], @@ -16537,14 +16531,15 @@ } break; case 7: - if(typeof fmtty !== "number" && 7 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 7 === fmtty[0]){ + var fmtty_rest$6 = fmtty[1], sub_fmtty_rest$13 = sub_fmtty[1], - /*<>*/ match$6 = - type_ignored_format_substituti + match$6 = + /*<>*/ type_ignored_format_substituti (sub_fmtty_rest$13, fmt, fmtty_rest$6), - fmt$7 = match$6[2], + fmt$7 = /*<>*/ match$6[2], sub_fmtty_rest$14 = match$6[1]; /*<>*/ return [0, [7, sub_fmtty_rest$14], @@ -16552,22 +16547,22 @@ } break; case 8: - if(typeof fmtty !== "number" && 8 === fmtty[0]){ + /*<>*/ if + (typeof fmtty !== "number" && 8 === fmtty[0]){ var fmtty_rest$7 = fmtty[2], sub2_fmtty = fmtty[1], sub_fmtty_rest$15 = sub_fmtty[2], sub2_fmtty$0 = sub_fmtty[1]; /*<>*/ if - ( /*<>*/ caml_notequal - ([0, sub2_fmtty$0], [0, sub2_fmtty])) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + (caml_notequal([0, sub2_fmtty$0], [0, sub2_fmtty])) + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); - /*<>*/ var - /*<>*/ match$7 = - type_ignored_format_substituti + var + match$7 = + /*<>*/ type_ignored_format_substituti (sub_fmtty_rest$15, fmt, fmtty_rest$7), - fmt$8 = match$7[2], + fmt$8 = /*<>*/ match$7[2], sub_fmtty_rest$16 = match$7[1]; /*<>*/ return [0, [8, sub2_fmtty, sub_fmtty_rest$16], @@ -16575,71 +16570,73 @@ } break; case 9: - if(typeof fmtty !== "number" && 9 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 9 === fmtty[0]){ + var fmtty_rest$8 = fmtty[3], sub2_fmtty$1 = fmtty[2], sub1_fmtty = fmtty[1], sub_fmtty_rest$17 = sub_fmtty[3], sub2_fmtty$2 = sub_fmtty[2], sub1_fmtty$0 = sub_fmtty[1], - /*<>*/ _cw_ = - [0, - /*<>*/ caml_call1 - (CamlinternalFormatBasics[2], sub1_fmtty)]; - /*<>*/ if + _cw_ = + /*<>*/ [0, + caml_call1(CamlinternalFormatBasics[2], sub1_fmtty)]; + /*<>*/ if ( /*<>*/ caml_notequal ([0, /*<>*/ caml_call1 (CamlinternalFormatBasics[2], sub1_fmtty$0)], _cw_)) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); - /*<>*/ /*<>*/ var + var _cx_ = - [0, - /*<>*/ caml_call1 - (CamlinternalFormatBasics[2], sub2_fmtty$1)]; - /*<>*/ if + /*<>*/ [0, + caml_call1(CamlinternalFormatBasics[2], sub2_fmtty$1)]; + /*<>*/ if ( /*<>*/ caml_notequal ([0, /*<>*/ caml_call1 (CamlinternalFormatBasics[2], sub2_fmtty$2)], _cx_)) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); - /*<>*/ var - /*<>*/ sub_fmtty$0 = - trans(symm(sub1_fmtty), sub2_fmtty$1), - /*<>*/ match$8 = - fmtty_rel_det(sub_fmtty$0), - f4 = match$8[4], + var + sub_fmtty$0 = + /*<>*/ /*<>*/ trans + ( /*<>*/ symm(sub1_fmtty), + sub2_fmtty$1), + match$8 = + /*<>*/ fmtty_rel_det(sub_fmtty$0), + f4 = /*<>*/ match$8[4], f2 = match$8[2]; /*<>*/ f2(0); /*<>*/ f4(0); - /*<>*/ var - /*<>*/ match$9 = - type_ignored_format_substituti + var + match$9 = + /*<>*/ /*<>*/ type_ignored_format_substituti ( /*<>*/ caml_call1 (CamlinternalFormatBasics[2], sub_fmtty_rest$17), fmt, fmtty_rest$8), - fmt$9 = match$9[2], + fmt$9 = /*<>*/ match$9[2], sub_fmtty_rest$18 = match$9[1]; - /*<>*/ return [0, + /*<>*/ return [0, [9, sub1_fmtty, sub2_fmtty$1, symm(sub_fmtty_rest$18)], - fmt$9]; + fmt$9] /*<>*/ ; } break; case 10: - if(typeof fmtty !== "number" && 10 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 10 === fmtty[0]){ + var fmtty_rest$9 = fmtty[1], sub_fmtty_rest$19 = sub_fmtty[1], - /*<>*/ match$10 = - type_ignored_format_substituti + match$10 = + /*<>*/ type_ignored_format_substituti (sub_fmtty_rest$19, fmt, fmtty_rest$9), - fmt$10 = match$10[2], + fmt$10 = /*<>*/ match$10[2], sub_fmtty_rest$20 = match$10[1]; /*<>*/ return [0, [10, sub_fmtty_rest$20], @@ -16647,14 +16644,15 @@ } break; case 11: - if(typeof fmtty !== "number" && 11 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 11 === fmtty[0]){ + var fmtty_rest$10 = fmtty[1], sub_fmtty_rest$21 = sub_fmtty[1], - /*<>*/ match$11 = - type_ignored_format_substituti + match$11 = + /*<>*/ type_ignored_format_substituti (sub_fmtty_rest$21, fmt, fmtty_rest$10), - fmt$11 = match$11[2], + fmt$11 = /*<>*/ match$11[2], sub_fmtty_rest$22 = match$11[1]; /*<>*/ return [0, [11, sub_fmtty_rest$22], @@ -16662,14 +16660,15 @@ } break; case 13: - if(typeof fmtty !== "number" && 13 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 13 === fmtty[0]){ + var fmtty_rest$11 = fmtty[1], sub_fmtty_rest$23 = sub_fmtty[1], - /*<>*/ match$12 = - type_ignored_format_substituti + match$12 = + /*<>*/ type_ignored_format_substituti (sub_fmtty_rest$23, fmt, fmtty_rest$11), - fmt$12 = match$12[2], + fmt$12 = /*<>*/ match$12[2], sub_fmtty_rest$24 = match$12[1]; /*<>*/ return [0, [13, sub_fmtty_rest$24], @@ -16677,14 +16676,15 @@ } break; case 14: - if(typeof fmtty !== "number" && 14 === fmtty[0]){ - /*<>*/ var + /*<>*/ if + (typeof fmtty !== "number" && 14 === fmtty[0]){ + var fmtty_rest$12 = fmtty[1], sub_fmtty_rest$25 = sub_fmtty[1], - /*<>*/ match$13 = - type_ignored_format_substituti + match$13 = + /*<>*/ type_ignored_format_substituti (sub_fmtty_rest$25, fmt, fmtty_rest$12), - fmt$13 = match$13[2], + fmt$13 = /*<>*/ match$13[2], sub_fmtty_rest$26 = match$13[1]; /*<>*/ return [0, [14, sub_fmtty_rest$26], @@ -16692,44 +16692,43 @@ } break; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); /*<>*/ } function recast(fmt, fmtty){ - /*<>*/ /*<>*/ var - _cv_ = symm(fmtty); - /*<>*/ return type_format + var _cv_ = /*<>*/ symm(fmtty); + /*<>*/ return /*<>*/ type_format (fmt, /*<>*/ caml_call1 - (CamlinternalFormatBasics[2], _cv_)); - /*<>*/ } + (CamlinternalFormatBasics[2], _cv_)) /*<>*/ ; + } function fix_padding(padty, width, str){ - /*<>*/ var - len = caml_ml_string_length(str), - /*<>*/ padty$0 = 0 <= width ? padty : 0, - /*<>*/ width$0 = + var + len = /*<>*/ caml_ml_string_length(str), + padty$0 = /*<>*/ 0 <= width ? padty : 0, + width$0 = /*<>*/ caml_call1(Stdlib[18], width); - if(width$0 <= len) /*<>*/ return str; - /*<>*/ var - _cu_ = 2 === padty$0 ? 48 : 32, - /*<>*/ res = + /*<>*/ if(width$0 <= len) + /*<>*/ return str; + var + _cu_ = /*<>*/ 2 === padty$0 ? 48 : 32, + res = /*<>*/ caml_call2 (Stdlib_Bytes[1], width$0, _cu_); /*<>*/ switch(padty$0){ case 0: - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_String[6], str, 0, res, 0, len); break; case 1: - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_String[6], str, 0, res, width$0 - len | 0, len); break; default: a: if(0 < len){ - /*<>*/ if - (43 - !== /*<>*/ caml_string_get(str, 0) + /*<>*/ if + (43 !== caml_string_get(str, 0) && 45 !== /*<>*/ caml_string_get(str, 0) @@ -16737,11 +16736,11 @@ 32 !== /*<>*/ caml_string_get(str, 0)) break a; - /*<>*/ /*<>*/ caml_bytes_set + /*<>*/ /*<>*/ caml_bytes_set (res, 0, /*<>*/ caml_string_get(str, 0)); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_String[6], str, 1, @@ -16756,18 +16755,17 @@ && 48 === /*<>*/ caml_string_get(str, 0)){ - /*<>*/ if - (120 - !== /*<>*/ caml_string_get(str, 1) + /*<>*/ if + (120 !== caml_string_get(str, 1) && 88 !== /*<>*/ caml_string_get(str, 1)) break a; - /*<>*/ /*<>*/ caml_bytes_set + /*<>*/ /*<>*/ caml_bytes_set (res, 1, /*<>*/ caml_string_get(str, 1)); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_String[6], str, 2, @@ -16776,57 +16774,53 @@ len - 2 | 0); break; } - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_String[6], str, 0, res, width$0 - len | 0, len); } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], res); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib_Bytes[44], res) /*<>*/ ; + } function fix_int_precision(prec, str){ - /*<>*/ var - /*<>*/ prec$0 = + var + prec$0 = /*<>*/ caml_call1(Stdlib[18], prec), - /*<>*/ len = - /*<>*/ caml_ml_string_length(str), - /*<>*/ c = - /*<>*/ caml_string_get(str, 0); + len = /*<>*/ caml_ml_string_length(str), + c = /*<>*/ caml_string_get(str, 0); a: { b: { - if(58 > c){ + /*<>*/ if(58 > c){ if(32 !== c){ if(43 > c) break a; switch(c - 43 | 0){ case 5: c: if(len < (prec$0 + 2 | 0) && 1 < len){ - /*<>*/ if - (120 - !== - /*<>*/ caml_string_get(str, 1) + /*<>*/ if + (120 !== caml_string_get(str, 1) && 88 !== /*<>*/ caml_string_get(str, 1)) break c; - /*<>*/ /*<>*/ var + var res$1 = /*<>*/ caml_call2 (Stdlib_Bytes[1], prec$0 + 2 | 0, 48); - /*<>*/ /*<>*/ caml_bytes_set + /*<>*/ /*<>*/ caml_bytes_set (res$1, 1, /*<>*/ caml_string_get(str, 1)); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_String[6], str, 2, res$1, (prec$0 - len | 0) + 4 | 0, len - 2 | 0); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], res$1); + /*<>*/ return caml_call1 + (Stdlib_Bytes[44], res$1) /*<>*/ ; } break b; case 0: @@ -16838,412 +16832,421 @@ default: break b; } } - if(len >= (prec$0 + 1 | 0)) break a; - /*<>*/ /*<>*/ var + /*<>*/ if(len >= (prec$0 + 1 | 0)) + break a; + var res$0 = /*<>*/ caml_call2 (Stdlib_Bytes[1], prec$0 + 1 | 0, 48); - /*<>*/ /*<>*/ caml_bytes_set - (res$0, 0, c); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_bytes_set(res$0, 0, c); + /*<>*/ caml_call5 (Stdlib_String[6], str, 1, res$0, (prec$0 - len | 0) + 2 | 0, len - 1 | 0); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], res$0); + /*<>*/ return caml_call1 + (Stdlib_Bytes[44], res$0) /*<>*/ ; + } + /*<>*/ if(71 <= c){ + if(5 < c - 97 >>> 0) break a; } - if(71 <= c){if(5 < c - 97 >>> 0) break a;} else if(65 > c) break a; + else if(65 > c) break a; } - if(len < prec$0){ - /*<>*/ /*<>*/ var + /*<>*/ if(len < prec$0){ + var res = /*<>*/ caml_call2 (Stdlib_Bytes[1], prec$0, 48); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_String[6], str, 0, res, prec$0 - len | 0, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], res); + /*<>*/ return caml_call1 + (Stdlib_Bytes[44], res) /*<>*/ ; } } /*<>*/ return str; /*<>*/ } function string_to_caml_string(str){ - /*<>*/ var - /*<>*/ str$0 = + var + str$0 = /*<>*/ caml_call1 (Stdlib_String[25], str), - /*<>*/ l = - /*<>*/ caml_ml_string_length(str$0), - /*<>*/ res = + l = /*<>*/ caml_ml_string_length(str$0), + res = /*<>*/ caml_call2 (Stdlib_Bytes[1], l + 2 | 0, 34); - /*<>*/ /*<>*/ caml_blit_string + /*<>*/ caml_blit_string (str$0, 0, res, 1, l); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], res); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib_Bytes[44], res) /*<>*/ ; + } function format_of_fconv(fconv, prec){ - /*<>*/ var - /*<>*/ prec$0 = + var + prec$0 = /*<>*/ caml_call1(Stdlib[18], prec), - /*<>*/ symb = char_of_fconv(_r_, fconv), - /*<>*/ buf = buffer_create(16); + symb = /*<>*/ char_of_fconv(_r_, fconv), + buf = /*<>*/ buffer_create(16); /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_fconv_flag(buf, fconv); /*<>*/ buffer_add_char(buf, 46); - /*<>*/ buffer_add_string + /*<>*/ /*<>*/ buffer_add_string (buf, /*<>*/ caml_call1 (Stdlib_Int[12], prec$0)); /*<>*/ buffer_add_char(buf, symb); - /*<>*/ return buffer_contents(buf); - /*<>*/ } + /*<>*/ return buffer_contents(buf) /*<>*/ ; + } function transform_int_alt(iconv, s){ /*<>*/ if(13 > iconv) /*<>*/ return s; - /*<>*/ var - /*<>*/ n = [0, 0], - _cp_ = caml_ml_string_length(s) - 1 | 0, - /*<>*/ _co_ = 0; + var + n = /*<>*/ [0, 0], + _cp_ = + /*<>*/ caml_ml_string_length(s) - 1 | 0, + _co_ = 0; if(_cp_ >= 0){ var i$0 = _co_; for(;;){ - if(9 >= caml_string_unsafe_get(s, i$0) - 48 >>> 0) n[1]++; - /*<>*/ /*<>*/ var - _ct_ = i$0 + 1 | 0; + /*<>*/ if + (9 >= caml_string_unsafe_get(s, i$0) - 48 >>> 0) + /*<>*/ n[1]++; + var _ct_ = /*<>*/ i$0 + 1 | 0; if(_cp_ === i$0) break; i$0 = _ct_; } } - /*<>*/ var - digits = n[1], - /*<>*/ buf = - /*<>*/ caml_create_bytes - (caml_ml_string_length(s) + ((digits - 1 | 0) / 3 | 0) | 0), - /*<>*/ pos = [0, 0]; + var + digits = /*<>*/ n[1], + buf = + /*<>*/ /*<>*/ caml_create_bytes + ( /*<>*/ caml_ml_string_length(s) + + ((digits - 1 | 0) / 3 | 0) + | 0), + pos = /*<>*/ [0, 0]; function put(c){ - /*<>*/ /*<>*/ caml_bytes_set - (buf, pos[1], c); - pos[1]++; + /*<>*/ caml_bytes_set(buf, pos[1], c); + /*<>*/ pos[1]++; /*<>*/ } - /*<>*/ var - /*<>*/ left = - [0, ((digits - 1 | 0) % 3 | 0) + 1 | 0], - _cr_ = caml_ml_string_length(s) - 1 | 0, - /*<>*/ _cq_ = 0; + var + left = + /*<>*/ [0, + ((digits - 1 | 0) % 3 | 0) + 1 | 0], + _cr_ = + /*<>*/ caml_ml_string_length(s) - 1 | 0, + _cq_ = 0; if(_cr_ >= 0){ var i = _cq_; for(;;){ - var c = caml_string_unsafe_get(s, i); + var + c = /*<>*/ caml_string_unsafe_get(s, i); if(9 < c - 48 >>> 0) /*<>*/ put(c); else{ - if(0 === left[1]){ + /*<>*/ if(0 === left[1]){ /*<>*/ put(95); - left[1] = 3; + /*<>*/ left[1] = 3; } - left[1]--; + /*<>*/ left[1]--; /*<>*/ put(c); } - /*<>*/ /*<>*/ var - _cs_ = i + 1 | 0; + var _cs_ = /*<>*/ i + 1 | 0; if(_cr_ === i) break; i = _cs_; } } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], buf); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib_Bytes[44], buf) /*<>*/ ; + } function convert_int(iconv, n){ - /*<>*/ switch(iconv){ + /*<>*/ switch(iconv){ case 1: - var _cn_ = cst_d$0; break; + var _cn_ = /*<>*/ cst_d$0; break; case 2: - var _cn_ = cst_d$1; break; + var _cn_ = /*<>*/ cst_d$1; break; case 4: - var _cn_ = cst_i$1; break; + var _cn_ = /*<>*/ cst_i$1; break; case 5: - var _cn_ = cst_i$2; break; + var _cn_ = /*<>*/ cst_i$2; break; case 6: - var _cn_ = cst_x; break; + var _cn_ = /*<>*/ cst_x; break; case 7: - var _cn_ = cst_x$0; break; + var _cn_ = /*<>*/ cst_x$0; break; case 8: - var _cn_ = cst_X; break; + var _cn_ = /*<>*/ cst_X; break; case 9: - var _cn_ = cst_X$0; break; + var _cn_ = /*<>*/ cst_X$0; break; case 10: - var _cn_ = cst_o; break; + var _cn_ = /*<>*/ cst_o; break; case 11: - var _cn_ = cst_o$0; break; + var _cn_ = /*<>*/ cst_o$0; break; case 0: case 13: - var _cn_ = cst_d; break; + var _cn_ = /*<>*/ cst_d; break; case 3: case 14: - var _cn_ = cst_i$0; break; - default: var _cn_ = cst_u; + var _cn_ = /*<>*/ cst_i$0; break; + default: var _cn_ = /*<>*/ cst_u; } - /*<>*/ return transform_int_alt + /*<>*/ return /*<>*/ transform_int_alt (iconv, - /*<>*/ caml_format_int(_cn_, n)); - /*<>*/ } + /*<>*/ caml_format_int(_cn_, n)) /*<>*/ ; + } function convert_int32(iconv, n){ - /*<>*/ switch(iconv){ + /*<>*/ switch(iconv){ case 1: - var _cm_ = cst_ld$0; break; + var _cm_ = /*<>*/ cst_ld$0; break; case 2: - var _cm_ = cst_ld$1; break; + var _cm_ = /*<>*/ cst_ld$1; break; case 4: - var _cm_ = cst_li$1; break; + var _cm_ = /*<>*/ cst_li$1; break; case 5: - var _cm_ = cst_li$2; break; + var _cm_ = /*<>*/ cst_li$2; break; case 6: - var _cm_ = cst_lx; break; + var _cm_ = /*<>*/ cst_lx; break; case 7: - var _cm_ = cst_lx$0; break; + var _cm_ = /*<>*/ cst_lx$0; break; case 8: - var _cm_ = cst_lX; break; + var _cm_ = /*<>*/ cst_lX; break; case 9: - var _cm_ = cst_lX$0; break; + var _cm_ = /*<>*/ cst_lX$0; break; case 10: - var _cm_ = cst_lo; break; + var _cm_ = /*<>*/ cst_lo; break; case 11: - var _cm_ = cst_lo$0; break; + var _cm_ = /*<>*/ cst_lo$0; break; case 0: case 13: - var _cm_ = cst_ld; break; + var _cm_ = /*<>*/ cst_ld; break; case 3: case 14: - var _cm_ = cst_li$0; break; - default: var _cm_ = cst_lu; + var _cm_ = /*<>*/ cst_li$0; break; + default: var _cm_ = /*<>*/ cst_lu; } - /*<>*/ return transform_int_alt + /*<>*/ return /*<>*/ transform_int_alt (iconv, - /*<>*/ caml_format_int(_cm_, n)); - /*<>*/ } + /*<>*/ caml_format_int(_cm_, n)) /*<>*/ ; + } function convert_nativeint(iconv, n){ - /*<>*/ switch(iconv){ + /*<>*/ switch(iconv){ case 1: - var _cl_ = cst_nd$0; break; + var _cl_ = /*<>*/ cst_nd$0; break; case 2: - var _cl_ = cst_nd$1; break; + var _cl_ = /*<>*/ cst_nd$1; break; case 4: - var _cl_ = cst_ni$1; break; + var _cl_ = /*<>*/ cst_ni$1; break; case 5: - var _cl_ = cst_ni$2; break; + var _cl_ = /*<>*/ cst_ni$2; break; case 6: - var _cl_ = cst_nx; break; + var _cl_ = /*<>*/ cst_nx; break; case 7: - var _cl_ = cst_nx$0; break; + var _cl_ = /*<>*/ cst_nx$0; break; case 8: - var _cl_ = cst_nX; break; + var _cl_ = /*<>*/ cst_nX; break; case 9: - var _cl_ = cst_nX$0; break; + var _cl_ = /*<>*/ cst_nX$0; break; case 10: - var _cl_ = cst_no; break; + var _cl_ = /*<>*/ cst_no; break; case 11: - var _cl_ = cst_no$0; break; + var _cl_ = /*<>*/ cst_no$0; break; case 0: case 13: - var _cl_ = cst_nd; break; + var _cl_ = /*<>*/ cst_nd; break; case 3: case 14: - var _cl_ = cst_ni$0; break; - default: var _cl_ = cst_nu; + var _cl_ = /*<>*/ cst_ni$0; break; + default: var _cl_ = /*<>*/ cst_nu; } - /*<>*/ return transform_int_alt + /*<>*/ return /*<>*/ transform_int_alt (iconv, - /*<>*/ caml_format_int(_cl_, n)); - /*<>*/ } + /*<>*/ caml_format_int(_cl_, n)) /*<>*/ ; + } function convert_int64(iconv, n){ - /*<>*/ switch(iconv){ + /*<>*/ switch(iconv){ case 1: - var _ck_ = cst_Ld$0; break; + var _ck_ = /*<>*/ cst_Ld$0; break; case 2: - var _ck_ = cst_Ld$1; break; + var _ck_ = /*<>*/ cst_Ld$1; break; case 4: - var _ck_ = cst_Li$1; break; + var _ck_ = /*<>*/ cst_Li$1; break; case 5: - var _ck_ = cst_Li$2; break; + var _ck_ = /*<>*/ cst_Li$2; break; case 6: - var _ck_ = cst_Lx; break; + var _ck_ = /*<>*/ cst_Lx; break; case 7: - var _ck_ = cst_Lx$0; break; + var _ck_ = /*<>*/ cst_Lx$0; break; case 8: - var _ck_ = cst_LX; break; + var _ck_ = /*<>*/ cst_LX; break; case 9: - var _ck_ = cst_LX$0; break; + var _ck_ = /*<>*/ cst_LX$0; break; case 10: - var _ck_ = cst_Lo; break; + var _ck_ = /*<>*/ cst_Lo; break; case 11: - var _ck_ = cst_Lo$0; break; + var _ck_ = /*<>*/ cst_Lo$0; break; case 0: case 13: - var _ck_ = cst_Ld; break; + var _ck_ = /*<>*/ cst_Ld; break; case 3: case 14: - var _ck_ = cst_Li$0; break; - default: var _ck_ = cst_Lu; + var _ck_ = /*<>*/ cst_Li$0; break; + default: var _ck_ = /*<>*/ cst_Lu; } - /*<>*/ return transform_int_alt + /*<>*/ return /*<>*/ transform_int_alt (iconv, /*<>*/ runtime.caml_int64_format - (_ck_, n)); - /*<>*/ } + (_ck_, n)) /*<>*/ ; + } function convert_float(fconv, prec, x){ function hex(param){ /*<>*/ switch(fconv[1]){ case 0: - var sign = 45; break; + var sign = /*<>*/ 45; break; case 1: - var sign = 43; break; - default: var sign = 32; - } - /*<>*/ return /*<>*/ runtime.caml_hexstring_of_float - (x, prec, sign); - /*<>*/ } - /*<>*/ function caml_special_val(str){ - /*<>*/ /*<>*/ var + var sign = /*<>*/ 43; break; + default: var sign = /*<>*/ 32; + } + /*<>*/ return runtime.caml_hexstring_of_float + (x, prec, sign) /*<>*/ ; + } + function caml_special_val(str){ + var match = /*<>*/ runtime.caml_classify_float(x); - return 3 === match + /*<>*/ return 3 === match ? x < 0. ? cst_neg_infinity : cst_infinity - : 4 <= match ? cst_nan : str; - /*<>*/ } - switch(fconv[2]){ + : 4 <= match ? cst_nan : str /*<>*/ ; + } + /*<>*/ switch(fconv[2]){ case 5: - /*<>*/ var - /*<>*/ str = - /*<>*/ caml_format_float - (format_of_fconv(fconv, prec), x), - len = caml_ml_string_length(str), - i = 0; - /*<>*/ for(;;){ - if(i === len) - var _ch_ = 0; + var + str = + /*<>*/ /*<>*/ caml_format_float + ( /*<>*/ format_of_fconv + (fconv, prec), + x), + len = /*<>*/ caml_ml_string_length(str), + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === len) + var _ch_ = /*<>*/ 0; else{ - /*<>*/ /*<>*/ var + var _cg_ = /*<>*/ caml_string_get(str, i) - 46 | 0; a: { - if(23 < _cg_ >>> 0){ + /*<>*/ if(23 < _cg_ >>> 0){ if(55 === _cg_) break a; } else if(21 < _cg_ - 1 >>> 0) break a; - /*<>*/ /*<>*/ var - i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; continue; } - var _ch_ = 1; + var _ch_ = /*<>*/ 1; } - /*<>*/ /*<>*/ var + var _ci_ = - _ch_ + /*<>*/ _ch_ ? str : /*<>*/ caml_call2 (Stdlib[28], str, cst$17); - /*<>*/ return caml_special_val(_ci_); + /*<>*/ return caml_special_val(_ci_) /*<>*/ ; } case 6: - /*<>*/ return hex(0); + /*<>*/ return hex(0) /*<>*/ ; case 7: - /*<>*/ /*<>*/ var - _cj_ = hex(0); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_String[26], _cj_); + var _cj_ = /*<>*/ hex(0); + /*<>*/ return caml_call1 + (Stdlib_String[26], _cj_) /*<>*/ ; case 8: - /*<>*/ return caml_special_val(hex(0)); + /*<>*/ return /*<>*/ caml_special_val + ( /*<>*/ hex(0)) /*<>*/ ; default: - /*<>*/ return /*<>*/ caml_format_float - (format_of_fconv(fconv, prec), x); + /*<>*/ return /*<>*/ caml_format_float + ( /*<>*/ format_of_fconv + (fconv, prec), + x) /*<>*/ ; } - /*<>*/ } + } function string_of_fmtty(fmtty){ - /*<>*/ /*<>*/ var - buf = buffer_create(16); + var buf = /*<>*/ buffer_create(16); /*<>*/ bprint_fmtty(buf, fmtty); - /*<>*/ return buffer_contents(buf); - /*<>*/ } + /*<>*/ return buffer_contents(buf) /*<>*/ ; + } function make_printf$0(counter, k, acc, fmt){ - /*<>*/ var - k$0 = k, + var + k$0 = /*<>*/ k, acc$0 = acc, fmt$0 = fmt; - /*<>*/ for(;;){ + for(;;){ if(typeof fmt$0 === "number") - /*<>*/ return /*<>*/ caml_call1 - (k$0, acc$0); - switch(fmt$0[0]){ + /*<>*/ return caml_call1(k$0, acc$0) /*<>*/ ; + /*<>*/ switch(fmt$0[0]){ case 0: var rest = fmt$0[1]; /*<>*/ return function(c){ - /*<>*/ /*<>*/ var - new_acc = [5, acc$0, c]; + var new_acc = /*<>*/ [5, acc$0, c]; /*<>*/ return make_printf - (k$0, new_acc, rest); /*<>*/ }; + (k$0, new_acc, rest) /*<>*/ ;} /*<>*/ ; case 1: - var rest$0 = fmt$0[1]; + var rest$0 = /*<>*/ fmt$0[1]; /*<>*/ return function(c){ - /*<>*/ var - /*<>*/ str = + var + str = /*<>*/ caml_call1 (Stdlib_Char[2], c), - /*<>*/ l = - /*<>*/ caml_ml_string_length(str), - /*<>*/ res = + l = /*<>*/ caml_ml_string_length(str), + res = /*<>*/ caml_call2 (Stdlib_Bytes[1], l + 2 | 0, 39); - /*<>*/ /*<>*/ caml_blit_string + /*<>*/ caml_blit_string (str, 0, res, 1, l); - /*<>*/ /*<>*/ var + var new_acc = - [4, + /*<>*/ [4, acc$0, - /*<>*/ caml_call1 - (Stdlib_Bytes[44], res)]; + caml_call1(Stdlib_Bytes[44], res)]; /*<>*/ return make_printf - (k$0, new_acc, rest$0); /*<>*/ }; + (k$0, new_acc, rest$0) /*<>*/ ;} /*<>*/ ; case 2: - var rest$1 = fmt$0[2], pad = fmt$0[1]; - /*<>*/ return make_padding + var + rest$1 = /*<>*/ fmt$0[2], + pad = fmt$0[1]; + /*<>*/ return make_padding (k$0, acc$0, rest$1, pad, function(str){ /*<>*/ return str; - /*<>*/ }); + /*<>*/ }) /*<>*/ ; case 3: - var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; + var + rest$2 = /*<>*/ fmt$0[2], + pad$0 = fmt$0[1]; /*<>*/ return make_padding - (k$0, acc$0, rest$2, pad$0, string_to_caml_string); + (k$0, acc$0, rest$2, pad$0, string_to_caml_string) /*<>*/ ; case 4: var - rest$3 = fmt$0[4], + rest$3 = /*<>*/ fmt$0[4], prec = fmt$0[3], pad$1 = fmt$0[2], iconv = fmt$0[1]; /*<>*/ return make_int_padding_precision - (k$0, acc$0, rest$3, pad$1, prec, convert_int, iconv); + (k$0, acc$0, rest$3, pad$1, prec, convert_int, iconv) /*<>*/ ; case 5: var - rest$4 = fmt$0[4], + rest$4 = /*<>*/ fmt$0[4], prec$0 = fmt$0[3], pad$2 = fmt$0[2], iconv$0 = fmt$0[1]; /*<>*/ return make_int_padding_precision - (k$0, acc$0, rest$4, pad$2, prec$0, convert_int32, iconv$0); + (k$0, acc$0, rest$4, pad$2, prec$0, convert_int32, iconv$0) /*<>*/ ; case 6: var - rest$5 = fmt$0[4], + rest$5 = /*<>*/ fmt$0[4], prec$1 = fmt$0[3], pad$3 = fmt$0[2], iconv$1 = fmt$0[1]; @@ -17254,149 +17257,190 @@ pad$3, prec$1, convert_nativeint, - iconv$1); + iconv$1) /*<>*/ ; case 7: var - rest$6 = fmt$0[4], + rest$6 = /*<>*/ fmt$0[4], prec$2 = fmt$0[3], pad$4 = fmt$0[2], iconv$2 = fmt$0[1]; /*<>*/ return make_int_padding_precision - (k$0, acc$0, rest$6, pad$4, prec$2, convert_int64, iconv$2); + (k$0, acc$0, rest$6, pad$4, prec$2, convert_int64, iconv$2) /*<>*/ ; case 8: var - rest$7 = fmt$0[4], + rest$7 = /*<>*/ fmt$0[4], prec$3 = fmt$0[3], pad$5 = fmt$0[2], fconv = fmt$0[1]; - if(typeof pad$5 === "number"){ + /*<>*/ if(typeof pad$5 === "number"){ if(typeof prec$3 === "number") return prec$3 ? function (p, x){ - /*<>*/ /*<>*/ var - str = convert_float(fconv, p, x); + var + str = + /*<>*/ convert_float + (fconv, p, x); /*<>*/ return make_printf - (k$0, [4, acc$0, str], rest$7); - /*<>*/ } + (k$0, [4, acc$0, str], rest$7) /*<>*/ ; + } : function (x){ - /*<>*/ /*<>*/ var + var str = - convert_float(fconv, default_float_precision(fconv), x); + /*<>*/ /*<>*/ convert_float + (fconv, + /*<>*/ default_float_precision + (fconv), + x); /*<>*/ return make_printf - (k$0, [4, acc$0, str], rest$7); - /*<>*/ }; - var p = prec$3[1]; + (k$0, [4, acc$0, str], rest$7) /*<>*/ ; + } /*<>*/ ; + var p = /*<>*/ prec$3[1]; /*<>*/ return function(x){ - /*<>*/ /*<>*/ var - str = convert_float(fconv, p, x); + var + str = + /*<>*/ convert_float(fconv, p, x); /*<>*/ return make_printf - (k$0, [4, acc$0, str], rest$7); /*<>*/ }; + (k$0, [4, acc$0, str], rest$7) /*<>*/ ;} /*<>*/ ; } - if(0 === pad$5[0]){ + /*<>*/ if(0 === pad$5[0]){ var w = pad$5[2], padty = pad$5[1]; if(typeof prec$3 === "number") return prec$3 ? function (p, x){ - /*<>*/ /*<>*/ var - str = fix_padding(padty, w, convert_float(fconv, p, x)); + var + str = + /*<>*/ /*<>*/ fix_padding + (padty, + w, + /*<>*/ convert_float + (fconv, p, x)); /*<>*/ return make_printf - (k$0, [4, acc$0, str], rest$7); - /*<>*/ } + (k$0, [4, acc$0, str], rest$7) /*<>*/ ; + } : function (x){ - /*<>*/ var - /*<>*/ str = - convert_float(fconv, default_float_precision(fconv), x), - /*<>*/ str$0 = - fix_padding(padty, w, str); + var + str = + /*<>*/ /*<>*/ convert_float + (fconv, + /*<>*/ default_float_precision + (fconv), + x), + str$0 = + /*<>*/ fix_padding + (padty, w, str); /*<>*/ return make_printf - (k$0, [4, acc$0, str$0], rest$7); - /*<>*/ }; - var p$0 = prec$3[1]; + (k$0, [4, acc$0, str$0], rest$7) /*<>*/ ; + } /*<>*/ ; + var p$0 = /*<>*/ prec$3[1]; /*<>*/ return function(x){ - /*<>*/ /*<>*/ var - str = fix_padding(padty, w, convert_float(fconv, p$0, x)); + var + str = + /*<>*/ /*<>*/ fix_padding + (padty, + w, + /*<>*/ convert_float + (fconv, p$0, x)); /*<>*/ return make_printf - (k$0, [4, acc$0, str], rest$7); /*<>*/ }; + (k$0, [4, acc$0, str], rest$7) /*<>*/ ;} /*<>*/ ; } - var padty$0 = pad$5[1]; + var padty$0 = /*<>*/ pad$5[1]; if(typeof prec$3 === "number") return prec$3 ? function (w, p, x){ - /*<>*/ /*<>*/ var - str = fix_padding(padty$0, w, convert_float(fconv, p, x)); + var + str = + /*<>*/ /*<>*/ fix_padding + (padty$0, + w, + /*<>*/ convert_float + (fconv, p, x)); /*<>*/ return make_printf - (k$0, [4, acc$0, str], rest$7); - /*<>*/ } + (k$0, [4, acc$0, str], rest$7) /*<>*/ ; + } : function (w, x){ - /*<>*/ var - /*<>*/ str = - convert_float(fconv, default_float_precision(fconv), x), - /*<>*/ str$0 = - fix_padding(padty$0, w, str); + var + str = + /*<>*/ /*<>*/ convert_float + (fconv, + /*<>*/ default_float_precision + (fconv), + x), + str$0 = + /*<>*/ fix_padding + (padty$0, w, str); /*<>*/ return make_printf - (k$0, [4, acc$0, str$0], rest$7); - /*<>*/ }; - var p$1 = prec$3[1]; + (k$0, [4, acc$0, str$0], rest$7) /*<>*/ ; + } /*<>*/ ; + var p$1 = /*<>*/ prec$3[1]; /*<>*/ return function(w, x){ - /*<>*/ /*<>*/ var - str = fix_padding(padty$0, w, convert_float(fconv, p$1, x)); + var + str = + /*<>*/ /*<>*/ fix_padding + (padty$0, + w, + /*<>*/ convert_float + (fconv, p$1, x)); /*<>*/ return make_printf - (k$0, [4, acc$0, str], rest$7); /*<>*/ }; + (k$0, [4, acc$0, str], rest$7) /*<>*/ ;} /*<>*/ ; case 9: - var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; + var + rest$8 = /*<>*/ fmt$0[2], + pad$6 = fmt$0[1]; /*<>*/ return make_padding - (k$0, acc$0, rest$8, pad$6, Stdlib[30]); + (k$0, acc$0, rest$8, pad$6, Stdlib[30]) /*<>*/ ; case 10: - /*<>*/ var - rest$9 = fmt$0[1], - /*<>*/ acc$1 = [7, acc$0]; + var + rest$9 = /*<>*/ fmt$0[1], + acc$1 = /*<>*/ [7, acc$0]; acc$0 = acc$1; fmt$0 = rest$9; break; case 11: - /*<>*/ var - rest$10 = fmt$0[2], + var + rest$10 = /*<>*/ fmt$0[2], str = fmt$0[1], - /*<>*/ acc$2 = [2, acc$0, str]; + acc$2 = /*<>*/ [2, acc$0, str]; acc$0 = acc$2; fmt$0 = rest$10; break; case 12: - /*<>*/ var - rest$11 = fmt$0[2], + var + rest$11 = /*<>*/ fmt$0[2], chr = fmt$0[1], - /*<>*/ acc$3 = [3, acc$0, chr]; + acc$3 = /*<>*/ [3, acc$0, chr]; acc$0 = acc$3; fmt$0 = rest$11; break; case 13: - /*<>*/ var - rest$12 = fmt$0[3], + var + rest$12 = /*<>*/ fmt$0[3], sub_fmtty = fmt$0[2], - /*<>*/ ty = - string_of_fmtty(sub_fmtty); + ty = + /*<>*/ string_of_fmtty(sub_fmtty); /*<>*/ return function(str){ - /*<>*/ return make_printf - (k$0, [4, acc$0, ty], rest$12); /*<>*/ }; + /*<>*/ return make_printf + (k$0, [4, acc$0, ty], rest$12) /*<>*/ ;} /*<>*/ ; case 14: - var rest$13 = fmt$0[3], fmtty = fmt$0[2]; + var + rest$13 = /*<>*/ fmt$0[3], + fmtty = fmt$0[2]; /*<>*/ return function(param){ - /*<>*/ var + var fmt = param[1], - /*<>*/ _cf_ = recast(fmt, fmtty); - /*<>*/ return make_printf + _cf_ = /*<>*/ recast(fmt, fmtty); + /*<>*/ return /*<>*/ make_printf (k$0, acc$0, /*<>*/ caml_call2 - (CamlinternalFormatBasics[3], _cf_, rest$13)); /*<>*/ }; + (CamlinternalFormatBasics[3], _cf_, rest$13)) /*<>*/ ;} /*<>*/ ; case 15: - var rest$14 = fmt$0[1]; + var rest$14 = /*<>*/ fmt$0[1]; /*<>*/ return function(f, x){ /*<>*/ return make_printf (k$0, @@ -17404,226 +17448,216 @@ acc$0, function(o){ /*<>*/ return caml_call2 - (f, o, x); - /*<>*/ }], - rest$14); /*<>*/ }; + (f, o, x) /*<>*/ ; + }], + rest$14) /*<>*/ ;} /*<>*/ ; case 16: - var rest$15 = fmt$0[1]; + var rest$15 = /*<>*/ fmt$0[1]; /*<>*/ return function(f){ /*<>*/ return make_printf - (k$0, [6, acc$0, f], rest$15); /*<>*/ }; + (k$0, [6, acc$0, f], rest$15) /*<>*/ ;} /*<>*/ ; case 17: - /*<>*/ var - rest$16 = fmt$0[2], + var + rest$16 = /*<>*/ fmt$0[2], fmting_lit = fmt$0[1], - /*<>*/ acc$4 = [0, acc$0, fmting_lit]; + acc$4 = /*<>*/ [0, acc$0, fmting_lit]; acc$0 = acc$4; fmt$0 = rest$16; break; case 18: - var _cd_ = fmt$0[1]; + var _cd_ = /*<>*/ fmt$0[1]; if(0 === _cd_[0]){ var rest$17 = fmt$0[2], fmt$1 = _cd_[1][1]; - let acc = acc$0, k = k$0, rest = rest$17; + let + acc = /*<>*/ acc$0, + k = k$0, + rest = rest$17; var k$1 = function(kacc){ /*<>*/ return make_printf - (k, [1, acc, [0, kacc]], rest); - /*<>*/ }; - k$0 = k$1; + (k, [1, acc, [0, kacc]], rest) /*<>*/ ; + }; + /*<>*/ k$0 = k$1; acc$0 = 0; fmt$0 = fmt$1; } else{ - var rest$18 = fmt$0[2], fmt$2 = _cd_[1][1]; - let acc = acc$0, k = k$0, rest = rest$18; + var + rest$18 = /*<>*/ fmt$0[2], + fmt$2 = _cd_[1][1]; + let + acc = /*<>*/ acc$0, + k = k$0, + rest = rest$18; var k$2 = function(kacc){ /*<>*/ return make_printf - (k, [1, acc, [1, kacc]], rest); - /*<>*/ }; - k$0 = k$2; + (k, [1, acc, [1, kacc]], rest) /*<>*/ ; + }; + /*<>*/ k$0 = k$2; acc$0 = 0; fmt$0 = fmt$2; } break; case 19: - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _s_], 1); case 20: - /*<>*/ var - rest$19 = fmt$0[3], - /*<>*/ new_acc = - [8, acc$0, cst_Printf_bad_conversion]; + var + rest$19 = /*<>*/ fmt$0[3], + new_acc = + /*<>*/ [8, + acc$0, + cst_Printf_bad_conversion]; /*<>*/ return function(param){ /*<>*/ return make_printf - (k$0, new_acc, rest$19); /*<>*/ }; + (k$0, new_acc, rest$19) /*<>*/ ;} /*<>*/ ; case 21: - var rest$20 = fmt$0[2]; + var rest$20 = /*<>*/ fmt$0[2]; /*<>*/ return function(n){ - /*<>*/ /*<>*/ var + var new_acc = - [4, + /*<>*/ [4, acc$0, - /*<>*/ caml_format_int - (cst_u$0, n)]; + caml_format_int(cst_u$0, n)]; /*<>*/ return make_printf - (k$0, new_acc, rest$20); /*<>*/ }; + (k$0, new_acc, rest$20) /*<>*/ ;} /*<>*/ ; case 22: - var rest$21 = fmt$0[1]; + var rest$21 = /*<>*/ fmt$0[1]; /*<>*/ return function(c){ - /*<>*/ /*<>*/ var - new_acc = [5, acc$0, c]; + var new_acc = /*<>*/ [5, acc$0, c]; /*<>*/ return make_printf - (k$0, new_acc, rest$21); /*<>*/ }; + (k$0, new_acc, rest$21) /*<>*/ ;} /*<>*/ ; case 23: - var rest$22 = fmt$0[2], ign = fmt$0[1]; + var + rest$22 = /*<>*/ fmt$0[2], + ign = fmt$0[1]; /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_ignored_param$0, [0, k$0, acc$0, ign, rest$22]); - var counter$1 = counter + 1 | 0; - /*<>*/ return make_ignored_param$0 - (counter$1, k$0, acc$0, ign, rest$22); + return caml_trampoline_return + (make_ignored_param$0, [0, k$0, acc$0, ign, rest$22]) /*<>*/ ; + var counter$1 = /*<>*/ counter + 1 | 0; + return make_ignored_param$0(counter$1, k$0, acc$0, ign, rest$22) /*<>*/ ; default: - /*<>*/ var - rest$23 = fmt$0[3], + var + rest$23 = /*<>*/ fmt$0[3], f = fmt$0[2], arity = fmt$0[1], - /*<>*/ _ce_ = - /*<>*/ caml_call1(f, 0); - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_custom$0, [0, k$0, acc$0, rest$23, arity, _ce_]); - var counter$0 = counter + 1 | 0; - /*<>*/ return make_custom$0 - (counter$0, k$0, acc$0, rest$23, arity, _ce_); + _ce_ = /*<>*/ caml_call1(f, 0); + /*<>*/ if(counter >= 50) + return caml_trampoline_return + (make_custom$0, [0, k$0, acc$0, rest$23, arity, _ce_]) /*<>*/ ; + var + counter$0 = /*<>*/ counter + 1 | 0; + return make_custom$0(counter$0, k$0, acc$0, rest$23, arity, _ce_) /*<>*/ ; } } - /*<>*/ } + } function make_printf(k, acc, fmt){ - /*<>*/ return caml_trampoline(make_printf$0(0, k, acc, fmt)); + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ make_printf$0 + (0, k, acc, fmt)) /*<>*/ ; } function make_ignored_param$0(counter, k, acc, ign, fmt){ /*<>*/ if(typeof ign === "number") switch(ign){ case 0: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$0 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$0, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var + counter$0 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$0, k, acc, fmt) /*<>*/ ; case 1: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$1 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$1, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var + counter$1 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$1, k, acc, fmt) /*<>*/ ; case 2: - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _t_], 1); default: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$2 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$2, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var + counter$2 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$2, k, acc, fmt) /*<>*/ ; } - switch(ign[0]){ + /*<>*/ switch(ign[0]){ case 0: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$3 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$3, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var counter$3 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$3, k, acc, fmt) /*<>*/ ; case 1: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$4 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$4, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var counter$4 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$4, k, acc, fmt) /*<>*/ ; case 2: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$5 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$5, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var counter$5 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$5, k, acc, fmt) /*<>*/ ; case 3: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$6 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$6, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var counter$6 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$6, k, acc, fmt) /*<>*/ ; case 4: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$7 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$7, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var counter$7 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$7, k, acc, fmt) /*<>*/ ; case 5: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$8 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$8, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var counter$8 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$8, k, acc, fmt) /*<>*/ ; case 6: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$9 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$9, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var counter$9 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$9, k, acc, fmt) /*<>*/ ; case 7: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$10 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$10, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var + counter$10 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$10, k, acc, fmt) /*<>*/ ; case 8: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$11 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$11, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var + counter$11 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$11, k, acc, fmt) /*<>*/ ; case 9: - var fmtty = ign[2]; + var fmtty = /*<>*/ ign[2]; /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_from_fmtty$0, [0, k, acc, fmtty, fmt]); - var counter$14 = counter + 1 | 0; - /*<>*/ return make_from_fmtty$0 - (counter$14, k, acc, fmtty, fmt); + return caml_trampoline_return + (make_from_fmtty$0, [0, k, acc, fmtty, fmt]) /*<>*/ ; + var + counter$14 = /*<>*/ counter + 1 | 0; + return make_from_fmtty$0(counter$14, k, acc, fmtty, fmt) /*<>*/ ; case 10: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$12 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$12, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var + counter$12 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$12, k, acc, fmt) /*<>*/ ; default: /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$13 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$13, k, acc, fmt); + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var + counter$13 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$13, k, acc, fmt) /*<>*/ ; } - /*<>*/ } + } function make_ignored_param(k, acc, ign, fmt){ - /*<>*/ return caml_trampoline - (make_ignored_param$0(0, k, acc, ign, fmt)); + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ make_ignored_param$0 + (0, k, acc, ign, fmt)) /*<>*/ ; } function make_from_fmtty$0(counter, k, acc, fmtty, fmt){ /*<>*/ if(typeof fmtty !== "number") @@ -17632,136 +17666,138 @@ var rest = fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest, fmt); /*<>*/ }; + (k, acc, rest, fmt) /*<>*/ ;} /*<>*/ ; case 1: - var rest$0 = fmtty[1]; + var rest$0 = /*<>*/ fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$0, fmt); /*<>*/ }; + (k, acc, rest$0, fmt) /*<>*/ ;} /*<>*/ ; case 2: - var rest$1 = fmtty[1]; + var rest$1 = /*<>*/ fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$1, fmt); /*<>*/ }; + (k, acc, rest$1, fmt) /*<>*/ ;} /*<>*/ ; case 3: - var rest$2 = fmtty[1]; + var rest$2 = /*<>*/ fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$2, fmt); /*<>*/ }; + (k, acc, rest$2, fmt) /*<>*/ ;} /*<>*/ ; case 4: - var rest$3 = fmtty[1]; + var rest$3 = /*<>*/ fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$3, fmt); /*<>*/ }; + (k, acc, rest$3, fmt) /*<>*/ ;} /*<>*/ ; case 5: - var rest$4 = fmtty[1]; + var rest$4 = /*<>*/ fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$4, fmt); /*<>*/ }; + (k, acc, rest$4, fmt) /*<>*/ ;} /*<>*/ ; case 6: - var rest$5 = fmtty[1]; + var rest$5 = /*<>*/ fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$5, fmt); /*<>*/ }; + (k, acc, rest$5, fmt) /*<>*/ ;} /*<>*/ ; case 7: - var rest$6 = fmtty[1]; + var rest$6 = /*<>*/ fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$6, fmt); /*<>*/ }; + (k, acc, rest$6, fmt) /*<>*/ ;} /*<>*/ ; case 8: - var rest$7 = fmtty[2]; + var rest$7 = /*<>*/ fmtty[2]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$7, fmt); /*<>*/ }; + (k, acc, rest$7, fmt) /*<>*/ ;} /*<>*/ ; case 9: - /*<>*/ var - rest$8 = fmtty[3], + var + rest$8 = /*<>*/ fmtty[3], ty2 = fmtty[2], ty1 = fmtty[1], - /*<>*/ ty = trans(symm(ty1), ty2); + ty = + /*<>*/ /*<>*/ trans + ( /*<>*/ symm(ty1), ty2); /*<>*/ return function(param){ - /*<>*/ return make_from_fmtty + /*<>*/ return /*<>*/ make_from_fmtty (k, acc, /*<>*/ caml_call2 (CamlinternalFormatBasics[1], ty, rest$8), - fmt); /*<>*/ }; + fmt) /*<>*/ ;} /*<>*/ ; case 10: - var rest$9 = fmtty[1]; + var rest$9 = /*<>*/ fmtty[1]; /*<>*/ return function(_cc_, param){ /*<>*/ return make_from_fmtty - (k, acc, rest$9, fmt); /*<>*/ }; + (k, acc, rest$9, fmt) /*<>*/ ;} /*<>*/ ; case 11: - var rest$10 = fmtty[1]; + var rest$10 = /*<>*/ fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$10, fmt); /*<>*/ }; + (k, acc, rest$10, fmt) /*<>*/ ;} /*<>*/ ; case 12: - var rest$11 = fmtty[1]; + var rest$11 = /*<>*/ fmtty[1]; /*<>*/ return function(param){ /*<>*/ return make_from_fmtty - (k, acc, rest$11, fmt); /*<>*/ }; + (k, acc, rest$11, fmt) /*<>*/ ;} /*<>*/ ; case 13: - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _u_], 1); default: - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _v_], 1); } /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_invalid_arg, [0, k, acc, fmt]); - var counter$0 = counter + 1 | 0; - /*<>*/ return make_invalid_arg - (counter$0, k, acc, fmt); - /*<>*/ } + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return make_invalid_arg(counter$0, k, acc, fmt) /*<>*/ ; + } function make_from_fmtty(k, acc, fmtty, fmt){ - /*<>*/ return caml_trampoline - (make_from_fmtty$0(0, k, acc, fmtty, fmt)); + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ make_from_fmtty$0 + (0, k, acc, fmtty, fmt)) /*<>*/ ; } function make_invalid_arg(counter, k, acc, fmt){ - /*<>*/ /*<>*/ var - _cb_ = [8, acc, cst_Printf_bad_conversion$0]; - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_printf$0, [0, k, _cb_, fmt]); - var counter$0 = counter + 1 | 0; - /*<>*/ return make_printf$0 - (counter$0, k, _cb_, fmt); - /*<>*/ } + var + _cb_ = + /*<>*/ [8, + acc, + cst_Printf_bad_conversion$0]; + if(counter >= 50) + return caml_trampoline_return(make_printf$0, [0, k, _cb_, fmt]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return make_printf$0(counter$0, k, _cb_, fmt) /*<>*/ ; + } function make_padding(k, acc, fmt, pad, trans){ /*<>*/ if(typeof pad === "number") /*<>*/ return function(x){ - /*<>*/ /*<>*/ var + var new_acc = - [4, acc, /*<>*/ caml_call1(trans, x)]; + /*<>*/ [4, acc, caml_call1(trans, x)]; /*<>*/ return make_printf - (k, new_acc, fmt); /*<>*/ }; - if(0 === pad[0]){ + (k, new_acc, fmt) /*<>*/ ;} /*<>*/ ; + /*<>*/ if(0 === pad[0]){ var width = pad[2], padty = pad[1]; /*<>*/ return function(x){ - /*<>*/ /*<>*/ var + var new_acc = - [4, + /*<>*/ [4, acc, - fix_padding + /*<>*/ fix_padding (padty, width, /*<>*/ caml_call1(trans, x))]; /*<>*/ return make_printf - (k, new_acc, fmt); /*<>*/ }; + (k, new_acc, fmt) /*<>*/ ;} /*<>*/ ; } - var padty$0 = pad[1]; + var padty$0 = /*<>*/ pad[1]; /*<>*/ return function(w, x){ - /*<>*/ /*<>*/ var + var new_acc = - [4, + /*<>*/ [4, acc, - fix_padding + /*<>*/ fix_padding (padty$0, w, /*<>*/ caml_call1(trans, x))]; - /*<>*/ return make_printf(k, new_acc, fmt); /*<>*/ }; + /*<>*/ return make_printf(k, new_acc, fmt) /*<>*/ ;} /*<>*/ ; /*<>*/ } function make_int_padding_precision(k, acc, fmt, pad, prec, trans, iconv){ /*<>*/ if(typeof pad === "number"){ @@ -17769,886 +17805,1016 @@ return prec ? function (p, x){ - /*<>*/ /*<>*/ var + var str = - fix_int_precision + /*<>*/ /*<>*/ fix_int_precision (p, /*<>*/ caml_call2 (trans, iconv, x)); /*<>*/ return make_printf - (k, [4, acc, str], fmt); - /*<>*/ } + (k, [4, acc, str], fmt) /*<>*/ ; + } : function (x){ - /*<>*/ /*<>*/ var + var str = /*<>*/ caml_call2 (trans, iconv, x); /*<>*/ return make_printf - (k, [4, acc, str], fmt); - /*<>*/ }; - var p = prec[1]; + (k, [4, acc, str], fmt) /*<>*/ ; + } /*<>*/ ; + var p = /*<>*/ prec[1]; /*<>*/ return function(x){ - /*<>*/ /*<>*/ var + var str = - fix_int_precision + /*<>*/ /*<>*/ fix_int_precision (p, /*<>*/ caml_call2(trans, iconv, x)); /*<>*/ return make_printf - (k, [4, acc, str], fmt); /*<>*/ }; + (k, [4, acc, str], fmt) /*<>*/ ;} /*<>*/ ; } - if(0 === pad[0]){ + /*<>*/ if(0 === pad[0]){ var w = pad[2], padty = pad[1]; if(typeof prec === "number") return prec ? function (p, x){ - /*<>*/ /*<>*/ var + var str = - fix_padding + /*<>*/ /*<>*/ fix_padding (padty, w, - fix_int_precision + /*<>*/ fix_int_precision (p, /*<>*/ caml_call2 (trans, iconv, x))); /*<>*/ return make_printf - (k, [4, acc, str], fmt); - /*<>*/ } + (k, [4, acc, str], fmt) /*<>*/ ; + } : function (x){ - /*<>*/ /*<>*/ var + var str = - fix_padding + /*<>*/ /*<>*/ fix_padding (padty, w, /*<>*/ caml_call2 (trans, iconv, x)); /*<>*/ return make_printf - (k, [4, acc, str], fmt); - /*<>*/ }; - var p$0 = prec[1]; + (k, [4, acc, str], fmt) /*<>*/ ; + } /*<>*/ ; + var p$0 = /*<>*/ prec[1]; /*<>*/ return function(x){ - /*<>*/ /*<>*/ var + var str = - fix_padding + /*<>*/ /*<>*/ fix_padding (padty, w, - fix_int_precision + /*<>*/ fix_int_precision (p$0, /*<>*/ caml_call2 (trans, iconv, x))); /*<>*/ return make_printf - (k, [4, acc, str], fmt); /*<>*/ }; + (k, [4, acc, str], fmt) /*<>*/ ;} /*<>*/ ; } - var padty$0 = pad[1]; + var padty$0 = /*<>*/ pad[1]; if(typeof prec === "number") return prec ? function (w, p, x){ - /*<>*/ /*<>*/ var + var str = - fix_padding + /*<>*/ /*<>*/ fix_padding (padty$0, w, - fix_int_precision + /*<>*/ fix_int_precision (p, /*<>*/ caml_call2 (trans, iconv, x))); /*<>*/ return make_printf - (k, [4, acc, str], fmt); - /*<>*/ } + (k, [4, acc, str], fmt) /*<>*/ ; + } : function (w, x){ - /*<>*/ /*<>*/ var + var str = - fix_padding + /*<>*/ /*<>*/ fix_padding (padty$0, w, /*<>*/ caml_call2 (trans, iconv, x)); /*<>*/ return make_printf - (k, [4, acc, str], fmt); - /*<>*/ }; - var p$1 = prec[1]; + (k, [4, acc, str], fmt) /*<>*/ ; + } /*<>*/ ; + var p$1 = /*<>*/ prec[1]; /*<>*/ return function(w, x){ - /*<>*/ /*<>*/ var + var str = - fix_padding + /*<>*/ /*<>*/ fix_padding (padty$0, w, - fix_int_precision + /*<>*/ fix_int_precision (p$1, /*<>*/ caml_call2(trans, iconv, x))); /*<>*/ return make_printf - (k, [4, acc, str], fmt); /*<>*/ }; + (k, [4, acc, str], fmt) /*<>*/ ;} /*<>*/ ; /*<>*/ } function make_custom$0(counter, k, acc, rest, arity, f){ /*<>*/ if(arity){ var arity$0 = arity[1]; /*<>*/ return function(x){ - /*<>*/ return make_custom + /*<>*/ return /*<>*/ make_custom (k, acc, rest, arity$0, - /*<>*/ caml_call1(f, x)); /*<>*/ }; - } - /*<>*/ /*<>*/ var - _ca_ = [4, acc, f]; - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_printf$0, [0, k, _ca_, rest]); - var counter$0 = counter + 1 | 0; - /*<>*/ return make_printf$0 - (counter$0, k, _ca_, rest); - /*<>*/ } + /*<>*/ caml_call1(f, x)) /*<>*/ ;} /*<>*/ ; + } + var _ca_ = /*<>*/ [4, acc, f]; + if(counter >= 50) + return caml_trampoline_return(make_printf$0, [0, k, _ca_, rest]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return make_printf$0(counter$0, k, _ca_, rest) /*<>*/ ; + } function make_custom(k, acc, rest, arity, f){ - /*<>*/ return caml_trampoline - (make_custom$0(0, k, acc, rest, arity, f)); + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ make_custom$0 + (0, k, acc, rest, arity, f)) /*<>*/ ; } function make_iprintf$0(counter, k, o, fmt){ - /*<>*/ var k$0 = k, fmt$0 = fmt; - /*<>*/ for(;;){ + var k$0 = /*<>*/ k, fmt$0 = fmt; + for(;;){ if(typeof fmt$0 === "number") - /*<>*/ return /*<>*/ caml_call1 - (k$0, o); - switch(fmt$0[0]){ + /*<>*/ return caml_call1(k$0, o) /*<>*/ ; + /*<>*/ switch(fmt$0[0]){ case 0: - /*<>*/ var + var rest = fmt$0[1], - /*<>*/ x = make_iprintf(k$0, o, rest); - /*<>*/ return function(_b$_){ - /*<>*/ return x;}; + x = /*<>*/ make_iprintf(k$0, o, rest); + /*<>*/ return function(_b$_){ + /*<>*/ return x;} /*<>*/ ; case 1: - /*<>*/ var - rest$0 = fmt$0[1], - /*<>*/ x$0 = - make_iprintf(k$0, o, rest$0); - /*<>*/ return function(_b__){ - /*<>*/ return x$0;}; + var + rest$0 = /*<>*/ fmt$0[1], + x$0 = + /*<>*/ make_iprintf(k$0, o, rest$0); + /*<>*/ return function(_b__){ + /*<>*/ return x$0;} /*<>*/ ; case 2: - var _bM_ = fmt$0[1]; + var _bM_ = /*<>*/ fmt$0[1]; if(typeof _bM_ === "number"){ - /*<>*/ var + var rest$1 = fmt$0[2], - /*<>*/ x$1 = - make_iprintf(k$0, o, rest$1); - /*<>*/ return function(_b9_){ - /*<>*/ return x$1;}; + x$1 = + /*<>*/ make_iprintf + (k$0, o, rest$1); + /*<>*/ return function(_b9_){ + /*<>*/ return x$1;} /*<>*/ ; } - if(0 === _bM_[0]){ - /*<>*/ var + /*<>*/ if(0 === _bM_[0]){ + var rest$2 = fmt$0[2], - /*<>*/ x$2 = - make_iprintf(k$0, o, rest$2); - /*<>*/ return function(_b8_){ - /*<>*/ return x$2;}; + x$2 = + /*<>*/ make_iprintf + (k$0, o, rest$2); + /*<>*/ return function(_b8_){ + /*<>*/ return x$2;} /*<>*/ ; } - /*<>*/ var - rest$3 = fmt$0[2], - /*<>*/ x$3 = - make_iprintf(k$0, o, rest$3), - /*<>*/ x$4 = - function(_b7_){ /*<>*/ return x$3;}; - /*<>*/ return function(_b6_){ - /*<>*/ return x$4;}; + var + rest$3 = /*<>*/ fmt$0[2], + x$3 = + /*<>*/ make_iprintf(k$0, o, rest$3), + x$4 = + /*<>*/ function(_b7_){ + /*<>*/ return x$3; + }; + /*<>*/ return function(_b6_){ + /*<>*/ return x$4;} /*<>*/ ; case 3: - var _bN_ = fmt$0[1]; + var _bN_ = /*<>*/ fmt$0[1]; if(typeof _bN_ === "number"){ - /*<>*/ var + var rest$4 = fmt$0[2], - /*<>*/ x$5 = - make_iprintf(k$0, o, rest$4); - /*<>*/ return function(_b5_){ - /*<>*/ return x$5;}; + x$5 = + /*<>*/ make_iprintf + (k$0, o, rest$4); + /*<>*/ return function(_b5_){ + /*<>*/ return x$5;} /*<>*/ ; } - if(0 === _bN_[0]){ - /*<>*/ var + /*<>*/ if(0 === _bN_[0]){ + var rest$5 = fmt$0[2], - /*<>*/ x$6 = - make_iprintf(k$0, o, rest$5); - /*<>*/ return function(_b4_){ - /*<>*/ return x$6;}; + x$6 = + /*<>*/ make_iprintf + (k$0, o, rest$5); + /*<>*/ return function(_b4_){ + /*<>*/ return x$6;} /*<>*/ ; } - /*<>*/ var - rest$6 = fmt$0[2], - /*<>*/ x$7 = - make_iprintf(k$0, o, rest$6), - /*<>*/ x$8 = - function(_b3_){ /*<>*/ return x$7;}; - /*<>*/ return function(_b2_){ - /*<>*/ return x$8;}; + var + rest$6 = /*<>*/ fmt$0[2], + x$7 = + /*<>*/ make_iprintf(k$0, o, rest$6), + x$8 = + /*<>*/ function(_b3_){ + /*<>*/ return x$7; + }; + /*<>*/ return function(_b2_){ + /*<>*/ return x$8;} /*<>*/ ; case 4: - var rest$7 = fmt$0[4], prec = fmt$0[3], pad = fmt$0[2]; + var + rest$7 = /*<>*/ fmt$0[4], + prec = fmt$0[3], + pad = fmt$0[2]; /*<>*/ return fn_of_padding_precision - (k$0, o, rest$7, pad, prec); + (k$0, o, rest$7, pad, prec) /*<>*/ ; case 5: - var rest$8 = fmt$0[4], prec$0 = fmt$0[3], pad$0 = fmt$0[2]; + var + rest$8 = /*<>*/ fmt$0[4], + prec$0 = fmt$0[3], + pad$0 = fmt$0[2]; /*<>*/ return fn_of_padding_precision - (k$0, o, rest$8, pad$0, prec$0); + (k$0, o, rest$8, pad$0, prec$0) /*<>*/ ; case 6: - var rest$9 = fmt$0[4], prec$1 = fmt$0[3], pad$1 = fmt$0[2]; + var + rest$9 = /*<>*/ fmt$0[4], + prec$1 = fmt$0[3], + pad$1 = fmt$0[2]; /*<>*/ return fn_of_padding_precision - (k$0, o, rest$9, pad$1, prec$1); + (k$0, o, rest$9, pad$1, prec$1) /*<>*/ ; case 7: - var rest$10 = fmt$0[4], prec$2 = fmt$0[3], pad$2 = fmt$0[2]; + var + rest$10 = /*<>*/ fmt$0[4], + prec$2 = fmt$0[3], + pad$2 = fmt$0[2]; /*<>*/ return fn_of_padding_precision - (k$0, o, rest$10, pad$2, prec$2); + (k$0, o, rest$10, pad$2, prec$2) /*<>*/ ; case 8: - var rest$11 = fmt$0[4], prec$3 = fmt$0[3], pad$3 = fmt$0[2]; + var + rest$11 = /*<>*/ fmt$0[4], + prec$3 = fmt$0[3], + pad$3 = fmt$0[2]; /*<>*/ return fn_of_padding_precision - (k$0, o, rest$11, pad$3, prec$3); + (k$0, o, rest$11, pad$3, prec$3) /*<>*/ ; case 9: - var _bO_ = fmt$0[1]; + var _bO_ = /*<>*/ fmt$0[1]; if(typeof _bO_ === "number"){ - /*<>*/ var + var rest$12 = fmt$0[2], - /*<>*/ x$9 = - make_iprintf(k$0, o, rest$12); - /*<>*/ return function(_b1_){ - /*<>*/ return x$9;}; + x$9 = + /*<>*/ make_iprintf + (k$0, o, rest$12); + /*<>*/ return function(_b1_){ + /*<>*/ return x$9;} /*<>*/ ; } - if(0 === _bO_[0]){ - /*<>*/ var + /*<>*/ if(0 === _bO_[0]){ + var rest$13 = fmt$0[2], - /*<>*/ x$10 = - make_iprintf(k$0, o, rest$13); - /*<>*/ return function(_b0_){ - /*<>*/ return x$10;}; + x$10 = + /*<>*/ make_iprintf + (k$0, o, rest$13); + /*<>*/ return function(_b0_){ + /*<>*/ return x$10;} /*<>*/ ; } - /*<>*/ var - rest$14 = fmt$0[2], - /*<>*/ x$11 = - make_iprintf(k$0, o, rest$14), - /*<>*/ x$12 = - function(_bZ_){ /*<>*/ return x$11;}; - /*<>*/ return function(_bY_){ - /*<>*/ return x$12;}; + var + rest$14 = /*<>*/ fmt$0[2], + x$11 = + /*<>*/ make_iprintf + (k$0, o, rest$14), + x$12 = + /*<>*/ function(_bZ_){ + /*<>*/ return x$11; + }; + /*<>*/ return function(_bY_){ + /*<>*/ return x$12;} /*<>*/ ; case 10: - var rest$15 = fmt$0[1]; fmt$0 = rest$15; break; + var rest$15 = /*<>*/ fmt$0[1]; + /*<>*/ fmt$0 = rest$15; + break; case 11: - var rest$16 = fmt$0[2]; fmt$0 = rest$16; break; + var rest$16 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$16; + break; case 12: - var rest$17 = fmt$0[2]; fmt$0 = rest$17; break; + var rest$17 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$17; + break; case 13: - /*<>*/ var - rest$18 = fmt$0[3], - /*<>*/ x$13 = - make_iprintf(k$0, o, rest$18); - /*<>*/ return function(_bX_){ - /*<>*/ return x$13;}; + var + rest$18 = /*<>*/ fmt$0[3], + x$13 = + /*<>*/ make_iprintf + (k$0, o, rest$18); + /*<>*/ return function(_bX_){ + /*<>*/ return x$13;} /*<>*/ ; case 14: - var rest$19 = fmt$0[3], fmtty = fmt$0[2]; + var + rest$19 = /*<>*/ fmt$0[3], + fmtty = fmt$0[2]; /*<>*/ return function(param){ - /*<>*/ var + var fmt = param[1], - /*<>*/ _bW_ = recast(fmt, fmtty); - /*<>*/ return make_iprintf + _bW_ = /*<>*/ recast(fmt, fmtty); + /*<>*/ return /*<>*/ make_iprintf (k$0, o, /*<>*/ caml_call2 - (CamlinternalFormatBasics[3], _bW_, rest$19)); /*<>*/ }; + (CamlinternalFormatBasics[3], _bW_, rest$19)) /*<>*/ ;} /*<>*/ ; case 15: - /*<>*/ var - rest$20 = fmt$0[1], - /*<>*/ x$14 = - make_iprintf(k$0, o, rest$20), - /*<>*/ x$15 = - function(_bV_){ /*<>*/ return x$14;}; - /*<>*/ return function(_bU_){ - /*<>*/ return x$15;}; + var + rest$20 = /*<>*/ fmt$0[1], + x$14 = + /*<>*/ make_iprintf + (k$0, o, rest$20), + x$15 = + /*<>*/ function(_bV_){ + /*<>*/ return x$14; + }; + /*<>*/ return function(_bU_){ + /*<>*/ return x$15;} /*<>*/ ; case 16: - /*<>*/ var - rest$21 = fmt$0[1], - /*<>*/ x$16 = - make_iprintf(k$0, o, rest$21); - /*<>*/ return function(_bT_){ - /*<>*/ return x$16;}; + var + rest$21 = /*<>*/ fmt$0[1], + x$16 = + /*<>*/ make_iprintf + (k$0, o, rest$21); + /*<>*/ return function(_bT_){ + /*<>*/ return x$16;} /*<>*/ ; case 17: - var rest$22 = fmt$0[2]; fmt$0 = rest$22; break; + var rest$22 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$22; + break; case 18: - var _bP_ = fmt$0[1]; + var _bP_ = /*<>*/ fmt$0[1]; if(0 === _bP_[0]){ var rest$23 = fmt$0[2], fmt$1 = _bP_[1][1]; - let k = k$0, rest = rest$23; + let k = /*<>*/ k$0, rest = rest$23; var k$1 = function(koc){ /*<>*/ return make_iprintf - (k, koc, rest); - /*<>*/ }; - k$0 = k$1; + (k, koc, rest) /*<>*/ ; + }; + /*<>*/ k$0 = k$1; fmt$0 = fmt$1; } else{ - var rest$24 = fmt$0[2], fmt$2 = _bP_[1][1]; - let k = k$0, rest = rest$24; + var + rest$24 = /*<>*/ fmt$0[2], + fmt$2 = _bP_[1][1]; + let k = /*<>*/ k$0, rest = rest$24; var k$2 = function(koc){ /*<>*/ return make_iprintf - (k, koc, rest); - /*<>*/ }; - k$0 = k$2; + (k, koc, rest) /*<>*/ ; + }; + /*<>*/ k$0 = k$2; fmt$0 = fmt$2; } break; case 19: - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _w_], 1); case 20: - /*<>*/ var - rest$25 = fmt$0[3], - /*<>*/ x$17 = - make_iprintf(k$0, o, rest$25); - /*<>*/ return function(_bS_){ - /*<>*/ return x$17;}; + var + rest$25 = /*<>*/ fmt$0[3], + x$17 = + /*<>*/ make_iprintf + (k$0, o, rest$25); + /*<>*/ return function(_bS_){ + /*<>*/ return x$17;} /*<>*/ ; case 21: - /*<>*/ var - rest$26 = fmt$0[2], - /*<>*/ x$18 = - make_iprintf(k$0, o, rest$26); - /*<>*/ return function(_bR_){ - /*<>*/ return x$18;}; + var + rest$26 = /*<>*/ fmt$0[2], + x$18 = + /*<>*/ make_iprintf + (k$0, o, rest$26); + /*<>*/ return function(_bR_){ + /*<>*/ return x$18;} /*<>*/ ; case 22: - /*<>*/ var - rest$27 = fmt$0[1], - /*<>*/ x$19 = - make_iprintf(k$0, o, rest$27); - /*<>*/ return function(_bQ_){ - /*<>*/ return x$19;}; + var + rest$27 = /*<>*/ fmt$0[1], + x$19 = + /*<>*/ make_iprintf + (k$0, o, rest$27); + /*<>*/ return function(_bQ_){ + /*<>*/ return x$19;} /*<>*/ ; case 23: - var rest$28 = fmt$0[2], ign = fmt$0[1]; + var + rest$28 = /*<>*/ fmt$0[2], + ign = fmt$0[1]; /*<>*/ return make_ignored_param (function(param){ /*<>*/ return caml_call1 - (k$0, o); - /*<>*/ }, + (k$0, o) /*<>*/ ; + }, 0, ign, - rest$28); + rest$28) /*<>*/ ; default: - var rest$29 = fmt$0[3], arity = fmt$0[1]; + var + rest$29 = /*<>*/ fmt$0[3], + arity = fmt$0[1]; /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (fn_of_custom_arity$0, [0, k$0, o, rest$29, arity]); - var counter$0 = counter + 1 | 0; - /*<>*/ return fn_of_custom_arity$0 - (counter$0, k$0, o, rest$29, arity); + return caml_trampoline_return + (fn_of_custom_arity$0, [0, k$0, o, rest$29, arity]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return fn_of_custom_arity$0(counter$0, k$0, o, rest$29, arity) /*<>*/ ; } } - /*<>*/ } + } function make_iprintf(k, o, fmt){ - /*<>*/ return caml_trampoline(make_iprintf$0(0, k, o, fmt)); + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ make_iprintf$0 + (0, k, o, fmt)) /*<>*/ ; } function fn_of_padding_precision(k, o, fmt, pad, prec){ /*<>*/ if(typeof pad === "number"){ if(typeof prec !== "number"){ - /*<>*/ /*<>*/ var - x$2 = make_iprintf(k, o, fmt); - /*<>*/ return function(_bL_){ - /*<>*/ return x$2;}; - } - if(prec){ - /*<>*/ var - /*<>*/ x = make_iprintf(k, o, fmt), - /*<>*/ x$0 = - function(_bK_){ /*<>*/ return x;}; - /*<>*/ return function(_bJ_){ - /*<>*/ return x$0;}; - } - /*<>*/ /*<>*/ var - x$1 = make_iprintf(k, o, fmt); - /*<>*/ return function(_bI_){ - /*<>*/ return x$1;}; - } - if(0 === pad[0]){ + var + x$2 = /*<>*/ make_iprintf(k, o, fmt); + /*<>*/ return function(_bL_){ + /*<>*/ return x$2;} /*<>*/ ; + } + /*<>*/ if(prec){ + var + x = /*<>*/ make_iprintf(k, o, fmt), + x$0 = + /*<>*/ function(_bK_){ + /*<>*/ return x; + }; + /*<>*/ return function(_bJ_){ + /*<>*/ return x$0;} /*<>*/ ; + } + var x$1 = /*<>*/ make_iprintf(k, o, fmt); + /*<>*/ return function(_bI_){ + /*<>*/ return x$1;} /*<>*/ ; + } + /*<>*/ if(0 === pad[0]){ if(typeof prec !== "number"){ - /*<>*/ /*<>*/ var - x$6 = make_iprintf(k, o, fmt); - /*<>*/ return function(_bH_){ - /*<>*/ return x$6;}; - } - if(prec){ - /*<>*/ var - /*<>*/ x$3 = make_iprintf(k, o, fmt), - /*<>*/ x$4 = - function(_bG_){ /*<>*/ return x$3;}; - /*<>*/ return function(_bF_){ - /*<>*/ return x$4;}; - } - /*<>*/ /*<>*/ var - x$5 = make_iprintf(k, o, fmt); - /*<>*/ return function(_bE_){ - /*<>*/ return x$5;}; - } - if(typeof prec !== "number"){ - /*<>*/ var - /*<>*/ x$12 = make_iprintf(k, o, fmt), - /*<>*/ x$13 = - function(_bD_){ /*<>*/ return x$12;}; - /*<>*/ return function(_bC_){ - /*<>*/ return x$13;}; - } - if(prec){ - /*<>*/ var - /*<>*/ x$7 = make_iprintf(k, o, fmt), - /*<>*/ x$8 = - function(_bB_){ /*<>*/ return x$7;}, - /*<>*/ x$9 = - function(_bA_){ /*<>*/ return x$8;}; - /*<>*/ return function(_bz_){ - /*<>*/ return x$9;}; - } - /*<>*/ /*<>*/ var - x$10 = make_iprintf(k, o, fmt); - /*<>*/ function x$11(_by_){ - /*<>*/ return x$10; - } - /*<>*/ return function(_bx_){ - /*<>*/ return x$11;}; + var + x$6 = /*<>*/ make_iprintf(k, o, fmt); + /*<>*/ return function(_bH_){ + /*<>*/ return x$6;} /*<>*/ ; + } + /*<>*/ if(prec){ + var + x$3 = /*<>*/ make_iprintf(k, o, fmt), + x$4 = + /*<>*/ function(_bG_){ + /*<>*/ return x$3; + }; + /*<>*/ return function(_bF_){ + /*<>*/ return x$4;} /*<>*/ ; + } + var x$5 = /*<>*/ make_iprintf(k, o, fmt); + /*<>*/ return function(_bE_){ + /*<>*/ return x$5;} /*<>*/ ; + } + /*<>*/ if(typeof prec !== "number"){ + var + x$12 = /*<>*/ make_iprintf(k, o, fmt), + x$13 = + /*<>*/ function(_bD_){ + /*<>*/ return x$12; + }; + /*<>*/ return function(_bC_){ + /*<>*/ return x$13;} /*<>*/ ; + } + /*<>*/ if(prec){ + var + x$7 = /*<>*/ make_iprintf(k, o, fmt), + x$8 = + /*<>*/ function(_bB_){ + /*<>*/ return x$7; + }, + x$9 = + /*<>*/ function(_bA_){ + /*<>*/ return x$8; + }; + /*<>*/ return function(_bz_){ + /*<>*/ return x$9;} /*<>*/ ; + } + var x$10 = /*<>*/ make_iprintf(k, o, fmt); + function x$11(_by_){ /*<>*/ return x$10;} + /*<>*/ return function(_bx_){ + /*<>*/ return x$11;} /*<>*/ ; /*<>*/ } function fn_of_custom_arity$0(counter, k, o, fmt, param){ - /*<>*/ if(param){ - /*<>*/ var + /*<>*/ if(param){ + var arity = param[1], - /*<>*/ x = - fn_of_custom_arity(k, o, fmt, arity); - /*<>*/ return function(_bw_){ - /*<>*/ return x;}; + x = + /*<>*/ fn_of_custom_arity + (k, o, fmt, arity); + /*<>*/ return function(_bw_){ + /*<>*/ return x;} /*<>*/ ; } /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (make_iprintf$0, [0, k, o, fmt]); - var counter$0 = counter + 1 | 0; - /*<>*/ return make_iprintf$0 - (counter$0, k, o, fmt); + return caml_trampoline_return(make_iprintf$0, [0, k, o, fmt]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return make_iprintf$0(counter$0, k, o, fmt) /*<>*/ ; } function fn_of_custom_arity(k, o, fmt, param){ - /*<>*/ return caml_trampoline - (fn_of_custom_arity$0(0, k, o, fmt, param)); + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ fn_of_custom_arity$0 + (0, k, o, fmt, param)) /*<>*/ ; } function output_acc(o, acc){ - /*<>*/ var acc$0 = acc; - /*<>*/ for(;;){ + var acc$0 = /*<>*/ acc; + for(;;){ if(typeof acc$0 === "number") /*<>*/ return 0; - switch(acc$0[0]){ + /*<>*/ switch(acc$0[0]){ case 0: - /*<>*/ var + var fmting_lit = acc$0[2], p = acc$0[1], - /*<>*/ s = - string_of_formatting_lit(fmting_lit); + s = + /*<>*/ string_of_formatting_lit + (fmting_lit); /*<>*/ output_acc(o, p); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[66], o, s); + /*<>*/ return caml_call2 + (Stdlib[66], o, s) /*<>*/ ; case 1: - var match = acc$0[2], p$0 = acc$0[1]; + var + match = /*<>*/ acc$0[2], + p$0 = acc$0[1]; if(0 === match[0]){ var acc$1 = match[1]; /*<>*/ output_acc(o, p$0); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib[66], o, cst$18); - acc$0 = acc$1; + /*<>*/ acc$0 = acc$1; } else{ - var acc$2 = match[1]; + var acc$2 = /*<>*/ match[1]; /*<>*/ output_acc(o, p$0); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib[66], o, cst$19); - acc$0 = acc$2; + /*<>*/ acc$0 = acc$2; } break; case 6: - var f = acc$0[2], p$3 = acc$0[1]; + var + f = /*<>*/ acc$0[2], + p$3 = acc$0[1]; /*<>*/ output_acc(o, p$3); - /*<>*/ return /*<>*/ caml_call1 - (f, o); + /*<>*/ return caml_call1(f, o) /*<>*/ ; case 7: - var p$4 = acc$0[1]; + var p$4 = /*<>*/ acc$0[1]; /*<>*/ output_acc(o, p$4); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[63], o); + /*<>*/ return caml_call1 + (Stdlib[63], o) /*<>*/ ; case 8: - var msg = acc$0[2], p$5 = acc$0[1]; + var + msg = /*<>*/ acc$0[2], + p$5 = acc$0[1]; /*<>*/ output_acc(o, p$5); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], msg); + /*<>*/ return caml_call1 + (Stdlib[1], msg) /*<>*/ ; case 2: case 4: - var s$0 = acc$0[2], p$1 = acc$0[1]; + var + s$0 = /*<>*/ acc$0[2], + p$1 = acc$0[1]; /*<>*/ output_acc(o, p$1); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[66], o, s$0); + /*<>*/ return caml_call2 + (Stdlib[66], o, s$0) /*<>*/ ; default: - var c = acc$0[2], p$2 = acc$0[1]; + var + c = /*<>*/ acc$0[2], + p$2 = acc$0[1]; /*<>*/ output_acc(o, p$2); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[65], o, c); + /*<>*/ return caml_call2 + (Stdlib[65], o, c) /*<>*/ ; } } - /*<>*/ } + } function bufput_acc(b, acc){ - /*<>*/ var acc$0 = acc; - /*<>*/ for(;;){ + var acc$0 = /*<>*/ acc; + for(;;){ if(typeof acc$0 === "number") /*<>*/ return 0; - switch(acc$0[0]){ + /*<>*/ switch(acc$0[0]){ case 0: - /*<>*/ var + var fmting_lit = acc$0[2], p = acc$0[1], - /*<>*/ s = - string_of_formatting_lit(fmting_lit); + s = + /*<>*/ string_of_formatting_lit + (fmting_lit); /*<>*/ bufput_acc(b, p); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[16], b, s); + /*<>*/ return caml_call2 + (Stdlib_Buffer[16], b, s) /*<>*/ ; case 1: - var match = acc$0[2], p$0 = acc$0[1]; + var + match = /*<>*/ acc$0[2], + p$0 = acc$0[1]; if(0 === match[0]){ var acc$1 = match[1]; /*<>*/ bufput_acc(b, p$0); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Buffer[16], b, cst$20); - acc$0 = acc$1; + /*<>*/ acc$0 = acc$1; } else{ - var acc$2 = match[1]; + var acc$2 = /*<>*/ match[1]; /*<>*/ bufput_acc(b, p$0); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Buffer[16], b, cst$21); - acc$0 = acc$2; + /*<>*/ acc$0 = acc$2; } break; case 6: - var f = acc$0[2], p$3 = acc$0[1]; + var + f = /*<>*/ acc$0[2], + p$3 = acc$0[1]; /*<>*/ bufput_acc(b, p$3); - /*<>*/ return /*<>*/ caml_call1 - (f, b); + /*<>*/ return caml_call1(f, b) /*<>*/ ; case 7: - var acc$3 = acc$0[1]; acc$0 = acc$3; break; + var acc$3 = /*<>*/ acc$0[1]; + /*<>*/ acc$0 = acc$3; + break; case 8: - var msg = acc$0[2], p$4 = acc$0[1]; + var + msg = /*<>*/ acc$0[2], + p$4 = acc$0[1]; /*<>*/ bufput_acc(b, p$4); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], msg); + /*<>*/ return caml_call1 + (Stdlib[1], msg) /*<>*/ ; case 2: case 4: - var s$0 = acc$0[2], p$1 = acc$0[1]; + var + s$0 = /*<>*/ acc$0[2], + p$1 = acc$0[1]; /*<>*/ bufput_acc(b, p$1); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[16], b, s$0); + /*<>*/ return caml_call2 + (Stdlib_Buffer[16], b, s$0) /*<>*/ ; default: - var c = acc$0[2], p$2 = acc$0[1]; + var + c = /*<>*/ acc$0[2], + p$2 = acc$0[1]; /*<>*/ bufput_acc(b, p$2); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, c); + /*<>*/ return caml_call2 + (Stdlib_Buffer[12], b, c) /*<>*/ ; } } - /*<>*/ } + } function strput_acc(b, acc){ - /*<>*/ var acc$0 = acc; - /*<>*/ for(;;){ + var acc$0 = /*<>*/ acc; + for(;;){ if(typeof acc$0 === "number") /*<>*/ return 0; - switch(acc$0[0]){ + /*<>*/ switch(acc$0[0]){ case 0: - /*<>*/ var + var fmting_lit = acc$0[2], p = acc$0[1], - /*<>*/ s = - string_of_formatting_lit(fmting_lit); + s = + /*<>*/ string_of_formatting_lit + (fmting_lit); /*<>*/ strput_acc(b, p); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[16], b, s); + /*<>*/ return caml_call2 + (Stdlib_Buffer[16], b, s) /*<>*/ ; case 1: - var match = acc$0[2], p$0 = acc$0[1]; + var + match = /*<>*/ acc$0[2], + p$0 = acc$0[1]; if(0 === match[0]){ var acc$1 = match[1]; /*<>*/ strput_acc(b, p$0); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Buffer[16], b, cst$22); - acc$0 = acc$1; + /*<>*/ acc$0 = acc$1; } else{ - var acc$2 = match[1]; + var acc$2 = /*<>*/ match[1]; /*<>*/ strput_acc(b, p$0); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Buffer[16], b, cst$23); - acc$0 = acc$2; + /*<>*/ acc$0 = acc$2; } break; case 6: - var f = acc$0[2], p$3 = acc$0[1]; + var + f = /*<>*/ acc$0[2], + p$3 = acc$0[1]; /*<>*/ strput_acc(b, p$3); - /*<>*/ /*<>*/ var - _bv_ = /*<>*/ caml_call1(f, 0); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[16], b, _bv_); + var _bv_ = /*<>*/ caml_call1(f, 0); + /*<>*/ return caml_call2 + (Stdlib_Buffer[16], b, _bv_) /*<>*/ ; case 7: - var acc$3 = acc$0[1]; acc$0 = acc$3; break; + var acc$3 = /*<>*/ acc$0[1]; + /*<>*/ acc$0 = acc$3; + break; case 8: - var msg = acc$0[2], p$4 = acc$0[1]; + var + msg = /*<>*/ acc$0[2], + p$4 = acc$0[1]; /*<>*/ strput_acc(b, p$4); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], msg); + /*<>*/ return caml_call1 + (Stdlib[1], msg) /*<>*/ ; case 2: case 4: - var s$0 = acc$0[2], p$1 = acc$0[1]; + var + s$0 = /*<>*/ acc$0[2], + p$1 = acc$0[1]; /*<>*/ strput_acc(b, p$1); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[16], b, s$0); + /*<>*/ return caml_call2 + (Stdlib_Buffer[16], b, s$0) /*<>*/ ; default: - var c = acc$0[2], p$2 = acc$0[1]; + var + c = /*<>*/ acc$0[2], + p$2 = acc$0[1]; /*<>*/ strput_acc(b, p$2); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, c); + /*<>*/ return caml_call2 + (Stdlib_Buffer[12], b, c) /*<>*/ ; } } - /*<>*/ } + } function failwith_message(param){ - /*<>*/ var - fmt = param[1], - /*<>*/ buf = + var + fmt = /*<>*/ param[1], + buf = /*<>*/ caml_call1 (Stdlib_Buffer[1], 256); function k(acc){ /*<>*/ strput_acc(buf, acc); - /*<>*/ /*<>*/ var + var _bu_ = /*<>*/ caml_call1 (Stdlib_Buffer[2], buf); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[2], _bu_); - /*<>*/ } - /*<>*/ return make_printf(k, 0, fmt); + /*<>*/ return caml_call1(Stdlib[2], _bu_); + } + /*<>*/ return make_printf(k, 0, fmt) /*<>*/ ; } function open_box_of_string(str){ - /*<>*/ if(str === cst$43) + /*<>*/ if(str === cst$43) /*<>*/ return _x_; - var len = caml_ml_string_length(str); + var + len = /*<>*/ caml_ml_string_length(str); function invalid_box(param){ - /*<>*/ return /*<>*/ caml_call1 - (failwith_message(_y_), str); - /*<>*/ } + /*<>*/ return caml_call1 + (failwith_message(_y_), str) /*<>*/ ; + } function parse_spaces(i){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(i$0 === len) /*<>*/ return i$0; - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_string_get(str, i$0); - if(9 !== match && 32 !== match) + /*<>*/ if(9 !== match && 32 !== match) /*<>*/ return i$0; - /*<>*/ /*<>*/ var - i$1 = i$0 + 1 | 0; + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; } /*<>*/ } - /*<>*/ /*<>*/ var - wstart = parse_spaces(0); + var wstart = /*<>*/ parse_spaces(0); a: b: { - var wend = wstart; - /*<>*/ for(;;){ - if(wend === len) break b; - if - (25 - < - /*<>*/ caml_string_get(str, wend) - - 97 - >>> 0) + var wend = /*<>*/ wstart; + for(;;){ + /*<>*/ if(wend === len) break b; + /*<>*/ if + (25 < caml_string_get(str, wend) - 97 >>> 0) break; - /*<>*/ /*<>*/ var - j = wend + 1 | 0; + var j = /*<>*/ wend + 1 | 0; wend = j; } break a; } - /*<>*/ var - /*<>*/ box_name = + var + box_name = /*<>*/ caml_call3 (Stdlib_String[16], str, wstart, wend - wstart | 0), - /*<>*/ nstart = parse_spaces(wend); + nstart = /*<>*/ parse_spaces(wend); a: b: { - var nend = nstart; - /*<>*/ for(;;){ - if(nend === len) break b; - /*<>*/ /*<>*/ var + var nend = /*<>*/ nstart; + for(;;){ + /*<>*/ if(nend === len) break b; + var match = /*<>*/ caml_string_get(str, nend); - if(48 <= match){if(58 <= match) break;} else if(45 !== match) break; - /*<>*/ /*<>*/ var - j$0 = nend + 1 | 0; + /*<>*/ if(48 <= match){ + if(58 <= match) break; + } + else if(45 !== match) break; + var j$0 = /*<>*/ nend + 1 | 0; nend = j$0; } break a; } - if(nstart === nend) - var indent = 0; + /*<>*/ if(nstart === nend) + var indent = /*<>*/ 0; else /*<>*/ try{ - /*<>*/ var - /*<>*/ _bs_ = - /*<>*/ runtime.caml_int_of_string + var + _bs_ = + /*<>*/ /*<>*/ runtime.caml_int_of_string ( /*<>*/ caml_call3 (Stdlib_String[16], str, nstart, nend - nstart | 0)), indent = _bs_; } catch(_bt_){ - var _br_ = caml_wrap_exception(_bt_); + var _br_ = /*<>*/ caml_wrap_exception(_bt_); if(_br_[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(_br_, 0); - var indent = invalid_box(0); + var + indent = + /*<>*/ /*<>*/ invalid_box + (0); } - /*<>*/ /*<>*/ var - exp_end = parse_spaces(nend); - if(exp_end !== len) /*<>*/ invalid_box(0); + var exp_end = /*<>*/ parse_spaces(nend); + /*<>*/ if(exp_end !== len) + /*<>*/ invalid_box(0); a: { - if(box_name !== cst$43 && box_name !== "b"){ - if(box_name === "h"){var box_type = 0; break a;} - if(box_name === "hov"){var box_type = 3; break a;} - if(box_name === "hv"){var box_type = 2; break a;} - if(box_name !== "v"){var box_type = invalid_box(0); break a;} - var box_type = 1; + /*<>*/ if + (box_name !== cst$43 && box_name !== "b"){ + if(box_name === "h"){ + var box_type = /*<>*/ 0; + break a; + } + /*<>*/ if(box_name === "hov"){ + var box_type = /*<>*/ 3; + break a; + } + /*<>*/ if(box_name === "hv"){ + var box_type = /*<>*/ 2; + break a; + } + /*<>*/ if(box_name !== "v"){ + var + box_type = + /*<>*/ /*<>*/ invalid_box + (0); + break a; + } + var box_type = /*<>*/ 1; break a; } - var box_type = 4; + var box_type = /*<>*/ 4; } /*<>*/ return [0, indent, box_type]; /*<>*/ } function make_padding_fmt_ebb(pad, fmt){ /*<>*/ if(typeof pad === "number") /*<>*/ return [0, 0, fmt]; - if(0 === pad[0]){ + /*<>*/ if(0 === pad[0]){ var w = pad[2], s = pad[1]; /*<>*/ return [0, [0, s, w], fmt]; } - var s$0 = pad[1]; + var s$0 = /*<>*/ pad[1]; /*<>*/ return [0, [1, s$0], fmt]; /*<>*/ } function make_padprec_fmt_ebb(pad, prec, fmt){ - /*<>*/ if(typeof prec === "number") + /*<>*/ if(typeof prec === "number") var match = prec ? [0, 1] : [0, 0]; else - var p = prec[1], match = [0, [0, p]]; - var prec$0 = match[1]; + var + p = prec[1], + match = /*<>*/ [0, [0, p]]; + var prec$0 = /*<>*/ match[1]; /*<>*/ if(typeof pad === "number") /*<>*/ return [0, 0, prec$0, fmt]; /*<>*/ if(0 === pad[0]){ var w = pad[2], s = pad[1]; /*<>*/ return [0, [0, s, w], prec$0, fmt]; } - var s$0 = pad[1]; + var s$0 = /*<>*/ pad[1]; /*<>*/ return [0, [1, s$0], prec$0, fmt]; /*<>*/ } function fmt_ebb_of_string(legacy_behavior, str){ - /*<>*/ if(legacy_behavior) - var flag = legacy_behavior[1], legacy_behavior$0 = flag; + /*<>*/ if(legacy_behavior) + var + flag = legacy_behavior[1], + legacy_behavior$0 = /*<>*/ flag; else - var legacy_behavior$0 = 1; + var legacy_behavior$0 = /*<>*/ 1; function invalid_format_message(str_ind, msg){ - /*<>*/ return /*<>*/ caml_call3 - (failwith_message(_z_), str, str_ind, msg); - /*<>*/ } + /*<>*/ return caml_call3 + (failwith_message(_z_), str, str_ind, msg) /*<>*/ ; + } function invalid_format_without(str_ind, c, s){ - /*<>*/ return /*<>*/ caml_call4 - (failwith_message(_A_), str, str_ind, c, s); - /*<>*/ } + /*<>*/ return caml_call4 + (failwith_message(_A_), str, str_ind, c, s) /*<>*/ ; + } function expected_character(str_ind, expected, read){ - /*<>*/ return /*<>*/ caml_call4 - (failwith_message(_B_), str, str_ind, expected, read); - /*<>*/ } + /*<>*/ return caml_call4 + (failwith_message(_B_), str, str_ind, expected, read) /*<>*/ ; + } function parse(lit_start, end_ind){ - /*<>*/ a: + a: { - var str_ind = lit_start; - /*<>*/ for(;;){ - if(str_ind === end_ind) + var str_ind = /*<>*/ lit_start; + for(;;){ + /*<>*/ if(str_ind === end_ind) /*<>*/ return add_literal - (lit_start, str_ind, 0); - /*<>*/ /*<>*/ var + (lit_start, str_ind, 0) /*<>*/ ; + var match = /*<>*/ caml_string_get(str, str_ind); - if(37 === match) break; + /*<>*/ if(37 === match) break; if(64 === match) break a; - var str_ind$1 = str_ind + 1 | 0; + var str_ind$1 = /*<>*/ str_ind + 1 | 0; str_ind = str_ind$1; } - var str_ind$2 = str_ind + 1 | 0; - if(str_ind$2 === end_ind) + var str_ind$2 = /*<>*/ str_ind + 1 | 0; + /*<>*/ if(str_ind$2 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); var match$1 = - 95 - === - /*<>*/ caml_string_get - (str, str_ind$2) - ? parse_flags(str_ind, str_ind$2 + 1 | 0, end_ind, 1) - : parse_flags(str_ind, str_ind$2, end_ind, 0), - fmt_rest = match$1[1]; + /*<>*/ 95 + === caml_string_get(str, str_ind$2) + ? /*<>*/ parse_flags + (str_ind, str_ind$2 + 1 | 0, end_ind, 1) + : /*<>*/ parse_flags + (str_ind, str_ind$2, end_ind, 0), + fmt_rest = /*<>*/ match$1[1]; /*<>*/ return add_literal - (lit_start, str_ind, fmt_rest); + (lit_start, str_ind, fmt_rest) /*<>*/ ; } - var str_ind$0 = str_ind + 1 | 0; + var str_ind$0 = /*<>*/ str_ind + 1 | 0; a: if(str_ind$0 === end_ind) - var match$0 = _N_; + var match$0 = /*<>*/ _N_; else{ - /*<>*/ /*<>*/ var + var c = /*<>*/ caml_string_get (str, str_ind$0); - if(65 <= c){ + /*<>*/ if(65 <= c){ if(94 <= c){ - /*<>*/ /*<>*/ var - switcher = c - 123 | 0; + var switcher = c - 123 | 0; if(2 >= switcher >>> 0) switch(switcher){ case 0: - var match$0 = parse_tag(1, str_ind$0 + 1 | 0, end_ind); break a; + var + match$0 = + /*<>*/ parse_tag + (1, str_ind$0 + 1 | 0, end_ind); + break a; case 1: break; default: var - fmt_rest$2 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 1, fmt_rest$2]]; + fmt_rest$2 = + /*<>*/ parse + (str_ind$0 + 1 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, 1, fmt_rest$2]]; break a; } } else if(91 <= c) - switch(c - 91 | 0){ + /*<>*/ switch(c - 91 | 0){ case 0: - var match$0 = parse_tag(0, str_ind$0 + 1 | 0, end_ind); break a; + var + match$0 = + /*<>*/ parse_tag + (0, str_ind$0 + 1 | 0, end_ind); + break a; case 1: break; default: var - fmt_rest$3 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 0, fmt_rest$3]]; + fmt_rest$3 = + /*<>*/ parse + (str_ind$0 + 1 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, 0, fmt_rest$3]]; break a; } } else{ - if(10 === c){ + /*<>*/ if(10 === c){ var - fmt_rest$4 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 3, fmt_rest$4]]; + fmt_rest$4 = + /*<>*/ parse + (str_ind$0 + 1 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, 3, fmt_rest$4]]; break a; } - if(32 <= c) + /*<>*/ if(32 <= c) switch(c - 32 | 0){ case 0: var - fmt_rest$5 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, _O_, fmt_rest$5]]; + fmt_rest$5 = + /*<>*/ parse + (str_ind$0 + 1 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, _O_, fmt_rest$5]]; break a; case 5: - /*<>*/ if + /*<>*/ if ((str_ind$0 + 1 | 0) < end_ind && 37 @@ -18656,26 +18822,43 @@ /*<>*/ caml_string_get (str, str_ind$0 + 1 | 0)){ var - fmt_rest$6 = parse(str_ind$0 + 2 | 0, end_ind)[1], - match$0 = [0, [17, 6, fmt_rest$6]]; + fmt_rest$6 = + /*<>*/ parse + (str_ind$0 + 2 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, 6, fmt_rest$6]]; break a; } var - fmt_rest$7 = parse(str_ind$0, end_ind)[1], - match$0 = [0, [12, 64, fmt_rest$7]]; + fmt_rest$7 = + /*<>*/ parse(str_ind$0, end_ind) + [1], + match$0 = + /*<>*/ [0, [12, 64, fmt_rest$7]]; break a; case 12: var - fmt_rest$8 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, _P_, fmt_rest$8]]; + fmt_rest$8 = + /*<>*/ parse + (str_ind$0 + 1 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, _P_, fmt_rest$8]]; break a; case 14: var - fmt_rest$9 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 4, fmt_rest$9]]; + fmt_rest$9 = + /*<>*/ parse + (str_ind$0 + 1 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, 4, fmt_rest$9]]; break a; case 27: - var str_ind$3 = str_ind$0 + 1 | 0; + var + str_ind$3 = + /*<>*/ str_ind$0 + 1 | 0; b: try{ var @@ -18690,242 +18873,282 @@ ? 1 : 0); if(_bh_) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ var - /*<>*/ str_ind_1 = - parse_spaces(str_ind$3 + 1 | 0, end_ind), - /*<>*/ match$2 = + var + str_ind_1 = + /*<>*/ parse_spaces + (str_ind$3 + 1 | 0, end_ind), + match$2 = /*<>*/ caml_string_get (str, str_ind_1); c: { - if(48 <= match$2){ + /*<>*/ if(48 <= match$2){ if(58 > match$2) break c; } else if(45 === match$2) break c; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); } - /*<>*/ var - /*<>*/ match$3 = - parse_integer(str_ind_1, end_ind), - width = match$3[2], + var + match$3 = + /*<>*/ parse_integer + (str_ind_1, end_ind), + width = /*<>*/ match$3[2], str_ind_2 = match$3[1], - /*<>*/ str_ind_3 = - parse_spaces(str_ind_2, end_ind), - /*<>*/ switcher$0 = + str_ind_3 = + /*<>*/ parse_spaces + (str_ind_2, end_ind), + switcher$0 = /*<>*/ caml_string_get (str, str_ind_3) - 45 | 0; - if(12 < switcher$0 >>> 0){ + /*<>*/ if(12 < switcher$0 >>> 0){ if(17 === switcher$0){ - /*<>*/ var - /*<>*/ s = + var + s = /*<>*/ caml_call3 (Stdlib_String[16], str, str_ind$3 - 2 | 0, (str_ind_3 - str_ind$3 | 0) + 3 | 0), - /*<>*/ _bi_ = [0, s, width, 0], - /*<>*/ _bj_ = str_ind_3 + 1 | 0, + _bi_ = /*<>*/ [0, s, width, 0], + _bj_ = str_ind_3 + 1 | 0, formatting_lit$0 = _bi_, next_ind = _bj_; break b; } } else if(1 < switcher$0 - 1 >>> 0){ - /*<>*/ var - /*<>*/ match$4 = - parse_integer(str_ind_3, end_ind), - offset = match$4[2], + var + match$4 = + /*<>*/ parse_integer + (str_ind_3, end_ind), + offset = /*<>*/ match$4[2], str_ind_4 = match$4[1], - /*<>*/ str_ind_5 = - parse_spaces(str_ind_4, end_ind); - if - (62 - !== - /*<>*/ caml_string_get - (str, str_ind_5)) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + str_ind_5 = + /*<>*/ parse_spaces + (str_ind_4, end_ind); + /*<>*/ if + (62 !== caml_string_get(str, str_ind_5)) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ var - /*<>*/ s$0 = + var + s$0 = /*<>*/ caml_call3 (Stdlib_String[16], str, str_ind$3 - 2 | 0, (str_ind_5 - str_ind$3 | 0) + 3 | 0), - /*<>*/ _bk_ = - [0, s$0, width, offset], - /*<>*/ _bl_ = str_ind_5 + 1 | 0, + _bk_ = + /*<>*/ [0, s$0, width, offset], + _bl_ = str_ind_5 + 1 | 0, formatting_lit$0 = _bk_, next_ind = _bl_; break b; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); } catch(_bq_){ - var _bf_ = caml_wrap_exception(_bq_); + var _bf_ = /*<>*/ caml_wrap_exception(_bq_); if(_bf_ !== Stdlib[8] && _bf_[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(_bf_, 0); - var formatting_lit$0 = formatting_lit, next_ind = str_ind$3; + var + formatting_lit$0 = + /*<>*/ formatting_lit, + next_ind = str_ind$3; } var - fmt_rest$12 = parse(next_ind, end_ind)[1], - match$0 = [0, [17, formatting_lit$0, fmt_rest$12]]; + fmt_rest$12 = + /*<>*/ parse(next_ind, end_ind) + [1], + match$0 = + /*<>*/ [0, + [17, formatting_lit$0, fmt_rest$12]]; break a; case 28: - var str_ind$4 = str_ind$0 + 1 | 0; + var + str_ind$4 = + /*<>*/ str_ind$0 + 1 | 0; /*<>*/ try{ - /*<>*/ var - /*<>*/ str_ind_1$0 = - parse_spaces(str_ind$4, end_ind), - /*<>*/ match$6 = + var + str_ind_1$0 = + /*<>*/ parse_spaces + (str_ind$4, end_ind), + match$6 = /*<>*/ caml_string_get (str, str_ind_1$0); b: { c: { - if(48 <= match$6){ + /*<>*/ if(48 <= match$6){ if(58 > match$6) break c; } else if(45 === match$6) break c; - var _bo_ = 0; + var _bo_ = /*<>*/ 0; break b; } - /*<>*/ var - /*<>*/ match$7 = - parse_integer(str_ind_1$0, end_ind), - size = match$7[2], + var + match$7 = + /*<>*/ parse_integer + (str_ind_1$0, end_ind), + size = /*<>*/ match$7[2], str_ind_2$0 = match$7[1], - /*<>*/ str_ind_3$0 = - parse_spaces(str_ind_2$0, end_ind); - if - (62 - !== - /*<>*/ caml_string_get - (str, str_ind_3$0)) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + str_ind_3$0 = + /*<>*/ parse_spaces + (str_ind_2$0, end_ind); + /*<>*/ if + (62 !== caml_string_get(str, str_ind_3$0)) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ var - /*<>*/ s$1 = + var + s$1 = /*<>*/ caml_call3 (Stdlib_String[16], str, str_ind$4 - 2 | 0, (str_ind_3$0 - str_ind$4 | 0) + 3 | 0), - _bo_ = [0, [0, str_ind_3$0 + 1 | 0, [1, s$1, size]]]; + _bo_ = + /*<>*/ [0, + [0, str_ind_3$0 + 1 | 0, [1, s$1, size]]]; } var _bn_ = _bo_; } catch(_bp_){ - var _bm_ = caml_wrap_exception(_bp_); + var _bm_ = /*<>*/ caml_wrap_exception(_bp_); if(_bm_ !== Stdlib[8] && _bm_[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(_bm_, 0); - var _bn_ = 0; + var _bn_ = /*<>*/ 0; } - if(_bn_) + /*<>*/ if(_bn_) var match$5 = _bn_[1], formatting_lit$1 = match$5[2], next_ind$0 = match$5[1], - fmt_rest$13 = parse(next_ind$0, end_ind)[1], - _be_ = [0, [17, formatting_lit$1, fmt_rest$13]]; + fmt_rest$13 = + /*<>*/ parse + (next_ind$0, end_ind) + [1], + _be_ = + /*<>*/ [0, + [17, formatting_lit$1, fmt_rest$13]]; else var - fmt_rest$14 = parse(str_ind$4, end_ind)[1], - _be_ = [0, [17, _Q_, fmt_rest$14]]; - var match$0 = _be_; + fmt_rest$14 = + /*<>*/ parse + (str_ind$4, end_ind) + [1], + _be_ = + /*<>*/ [0, + [17, _Q_, fmt_rest$14]]; + var match$0 = /*<>*/ _be_; break a; case 31: var - fmt_rest$10 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 2, fmt_rest$10]]; + fmt_rest$10 = + /*<>*/ parse + (str_ind$0 + 1 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, 2, fmt_rest$10]]; break a; case 32: var - fmt_rest$11 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 5, fmt_rest$11]]; + fmt_rest$11 = + /*<>*/ parse + (str_ind$0 + 1 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, 5, fmt_rest$11]]; break a; } } var - fmt_rest$1 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, [2, c], fmt_rest$1]]; - } - var fmt_rest$0 = match$0[1]; + fmt_rest$1 = + /*<>*/ parse + (str_ind$0 + 1 | 0, end_ind) + [1], + match$0 = + /*<>*/ [0, [17, [2, c], fmt_rest$1]]; + } + var fmt_rest$0 = /*<>*/ match$0[1]; /*<>*/ return add_literal - (lit_start, str_ind, fmt_rest$0); - /*<>*/ } + (lit_start, str_ind, fmt_rest$0) /*<>*/ ; + } function parse_flags(pct_ind, str_ind, end_ind, ign){ - /*<>*/ var - /*<>*/ zero = [0, 0], - /*<>*/ minus = [0, 0], - /*<>*/ plus = [0, 0], - /*<>*/ space = [0, 0], - /*<>*/ hash = [0, 0]; + var + zero = /*<>*/ [0, 0], + minus = [0, 0], + plus = [0, 0], + space = [0, 0], + hash = [0, 0]; function set_flag(str_ind, flag){ - /*<>*/ var - _bb_ = flag[1], + var + _bb_ = /*<>*/ flag[1], _bc_ = _bb_ ? 1 - legacy_behavior$0 : _bb_; if(_bc_){ - /*<>*/ /*<>*/ var + var _bd_ = /*<>*/ caml_string_get(str, str_ind); - /*<>*/ /*<>*/ caml_call3 + /*<>*/ caml_call3 (failwith_message(_C_), str, str_ind, _bd_); } - flag[1] = 1; + /*<>*/ flag[1] = 1; /*<>*/ } a: b: { - var str_ind$0 = str_ind; + var str_ind$0 = /*<>*/ str_ind; c: - /*<>*/ for(;;){ - if(str_ind$0 === end_ind) + for(;;){ + /*<>*/ if(str_ind$0 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var switcher = /*<>*/ caml_string_get (str, str_ind$0) - 32 | 0; - if(16 < switcher >>> 0) break b; + /*<>*/ if(16 < switcher >>> 0) break b; switch(switcher){ case 0: /*<>*/ set_flag(str_ind$0, space); - /*<>*/ /*<>*/ var - str_ind$1 = str_ind$0 + 1 | 0; + var + str_ind$1 = + /*<>*/ str_ind$0 + 1 | 0; str_ind$0 = str_ind$1; break; case 3: /*<>*/ set_flag(str_ind$0, hash); - /*<>*/ /*<>*/ var - str_ind$2 = str_ind$0 + 1 | 0; + var + str_ind$2 = + /*<>*/ str_ind$0 + 1 | 0; str_ind$0 = str_ind$2; break; case 11: /*<>*/ set_flag(str_ind$0, plus); - /*<>*/ /*<>*/ var - str_ind$3 = str_ind$0 + 1 | 0; + var + str_ind$3 = + /*<>*/ str_ind$0 + 1 | 0; str_ind$0 = str_ind$3; break; case 13: /*<>*/ set_flag(str_ind$0, minus); - /*<>*/ /*<>*/ var - str_ind$4 = str_ind$0 + 1 | 0; + var + str_ind$4 = + /*<>*/ str_ind$0 + 1 | 0; str_ind$0 = str_ind$4; break; case 16: /*<>*/ set_flag(str_ind$0, zero); - /*<>*/ /*<>*/ var - str_ind$5 = str_ind$0 + 1 | 0; + var + str_ind$5 = + /*<>*/ str_ind$0 + 1 | 0; str_ind$0 = str_ind$5; break; default: break c; @@ -18934,33 +19157,35 @@ break a; } var - space$0 = space[1], + space$0 = /*<>*/ space[1], hash$0 = hash[1], plus$0 = plus[1], minus$0 = minus[1], zero$0 = zero[1]; - if(str_ind$0 === end_ind) + /*<>*/ if(str_ind$0 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ var + var padty = - zero$0 + /*<>*/ zero$0 ? minus$0 ? legacy_behavior$0 ? 0 - : incompatible_flag(pct_ind, str_ind$0, 45, cst_0) + : /*<>*/ incompatible_flag + (pct_ind, str_ind$0, 45, cst_0) : 2 : minus$0 ? 0 : 1, - /*<>*/ match = + match = /*<>*/ caml_string_get(str, str_ind$0); - if(48 <= match){ + /*<>*/ if(48 <= match){ if(58 > match){ - /*<>*/ var - /*<>*/ match$0 = - parse_positive(str_ind$0, end_ind, 0), - width = match$0[2], + var + match$0 = + /*<>*/ parse_positive + (str_ind$0, end_ind, 0), + width = /*<>*/ match$0[2], new_ind = match$0[1]; - /*<>*/ return parse_after_padding + /*<>*/ return parse_after_padding (pct_ind, new_ind, end_ind, @@ -18969,11 +19194,11 @@ hash$0, space$0, ign, - [0, padty, width]); + [0, padty, width]) /*<>*/ ; } } else if(42 === match) - /*<>*/ return parse_after_padding + /*<>*/ return parse_after_padding (pct_ind, str_ind$0 + 1 | 0, end_ind, @@ -18982,13 +19207,13 @@ hash$0, space$0, ign, - [1, padty]); - switch(padty){ + [1, padty]) /*<>*/ ; + /*<>*/ switch(padty){ case 0: - if(1 - legacy_behavior$0) + /*<>*/ if(1 - legacy_behavior$0) /*<>*/ invalid_format_without (str_ind$0 - 1 | 0, 45, cst_padding); - /*<>*/ return parse_after_padding + /*<>*/ return parse_after_padding (pct_ind, str_ind$0, end_ind, @@ -18997,7 +19222,7 @@ hash$0, space$0, ign, - 0); + 0) /*<>*/ ; case 1: /*<>*/ return parse_after_padding (pct_ind, @@ -19008,7 +19233,7 @@ hash$0, space$0, ign, - 0); + 0) /*<>*/ ; default: /*<>*/ return parse_after_padding (pct_ind, @@ -19019,18 +19244,18 @@ hash$0, space$0, ign, - _D_); + _D_) /*<>*/ ; } - /*<>*/ } + } function parse_after_padding (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad){ /*<>*/ if(str_ind === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var symb = /*<>*/ caml_string_get(str, str_ind); - if(46 !== symb) + /*<>*/ if(46 !== symb) /*<>*/ return parse_conversion (pct_ind, str_ind + 1 | 0, @@ -19042,18 +19267,19 @@ pad, 0, pad, - symb); - var str_ind$0 = str_ind + 1 | 0; - if(str_ind$0 === end_ind) + symb) /*<>*/ ; + var str_ind$0 = /*<>*/ str_ind + 1 | 0; + /*<>*/ if(str_ind$0 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); function parse_literal(minus, str_ind){ - /*<>*/ var - /*<>*/ match = - parse_positive(str_ind, end_ind, 0), - prec = match[2], + var + match = + /*<>*/ parse_positive + (str_ind, end_ind, 0), + prec = /*<>*/ match[2], new_ind = match[1]; - /*<>*/ return parse_after_precision + /*<>*/ return parse_after_precision (pct_ind, new_ind, end_ind, @@ -19063,18 +19289,18 @@ space, ign, pad, - [0, prec]); - /*<>*/ } - /*<>*/ /*<>*/ var + [0, prec]) /*<>*/ ; + } + var symb$0 = /*<>*/ caml_string_get(str, str_ind$0); - if(48 <= symb$0){ + /*<>*/ if(48 <= symb$0){ if(58 > symb$0) /*<>*/ return parse_literal - (minus, str_ind$0); + (minus, str_ind$0) /*<>*/ ; } else if(42 <= symb$0) - switch(symb$0 - 42 | 0){ + /*<>*/ switch(symb$0 - 42 | 0){ case 0: /*<>*/ return parse_after_precision (pct_ind, @@ -19086,20 +19312,19 @@ space, ign, pad, - 1); + 1) /*<>*/ ; case 1: case 3: - if(legacy_behavior$0){ - /*<>*/ var - /*<>*/ _ba_ = str_ind$0 + 1 | 0, + /*<>*/ if(legacy_behavior$0){ + var + _ba_ = /*<>*/ str_ind$0 + 1 | 0, minus$0 = minus || (45 === symb$0 ? 1 : 0); - /*<>*/ return parse_literal - (minus$0, _ba_); + return parse_literal(minus$0, _ba_) /*<>*/ ; } break; } - return legacy_behavior$0 - ? parse_after_precision + /*<>*/ return legacy_behavior$0 + ? /*<>*/ parse_after_precision (pct_ind, str_ind$0, end_ind, @@ -19110,15 +19335,16 @@ ign, pad, _E_) - : invalid_format_without(str_ind$0 - 1 | 0, 46, cst_precision); - /*<>*/ } + : /*<>*/ invalid_format_without + (str_ind$0 - 1 | 0, 46, cst_precision) /*<>*/ ; + } function parse_after_precision (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad, prec){ /*<>*/ if(str_ind === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); function parse_conv(padprec){ - /*<>*/ return parse_conversion + /*<>*/ return /*<>*/ parse_conversion (pct_ind, str_ind + 1 | 0, end_ind, @@ -19130,23 +19356,24 @@ prec, padprec, /*<>*/ caml_string_get - (str, str_ind)); - /*<>*/ } - if(typeof pad !== "number") - /*<>*/ return parse_conv(pad); - if(typeof prec === "number" && ! prec) - /*<>*/ return parse_conv(0); - if(minus){ + (str, str_ind)) /*<>*/ ; + } + /*<>*/ if(typeof pad !== "number") + /*<>*/ return parse_conv(pad) /*<>*/ ; + /*<>*/ if + (typeof prec === "number" && ! prec) + /*<>*/ return parse_conv(0) /*<>*/ ; + /*<>*/ if(minus){ if(typeof prec === "number") - /*<>*/ return parse_conv(_F_); - var n = prec[1]; - /*<>*/ return parse_conv([0, 0, n]); + /*<>*/ return parse_conv(_F_) /*<>*/ ; + var n = /*<>*/ prec[1]; + /*<>*/ return parse_conv([0, 0, n]) /*<>*/ ; } - if(typeof prec === "number") - /*<>*/ return parse_conv(_G_); - var n$0 = prec[1]; - /*<>*/ return parse_conv([0, 1, n$0]); - /*<>*/ } + /*<>*/ if(typeof prec === "number") + /*<>*/ return parse_conv(_G_) /*<>*/ ; + var n$0 = /*<>*/ prec[1]; + /*<>*/ return parse_conv([0, 1, n$0]) /*<>*/ ; + } function parse_conversion (pct_ind, str_ind, @@ -19159,479 +19386,612 @@ prec, padprec, symb){ - /*<>*/ var - /*<>*/ plus_used = [0, 0], - /*<>*/ hash_used = [0, 0], - /*<>*/ space_used = [0, 0], - /*<>*/ ign_used = [0, 0], - /*<>*/ pad_used = [0, 0], - /*<>*/ prec_used = [0, 0]; + var + plus_used = /*<>*/ [0, 0], + hash_used = [0, 0], + space_used = [0, 0], + ign_used = [0, 0], + pad_used = [0, 0], + prec_used = [0, 0]; function get_plus(param){ /*<>*/ plus_used[1] = 1; - /*<>*/ return plus; + /*<>*/ return plus; /*<>*/ } function get_hash(param){ /*<>*/ hash_used[1] = 1; - return hash; + /*<>*/ return hash; /*<>*/ } function get_space(param){ /*<>*/ space_used[1] = 1; - return space; + /*<>*/ return space; /*<>*/ } function get_ign(param){ /*<>*/ ign_used[1] = 1; - return ign; + /*<>*/ return ign; /*<>*/ } function get_pad(param){ /*<>*/ pad_used[1] = 1; - return pad; + /*<>*/ return pad; /*<>*/ } function get_prec(param){ /*<>*/ prec_used[1] = 1; - return prec; + /*<>*/ return prec; /*<>*/ } function get_padprec(param){ /*<>*/ pad_used[1] = 1; - return padprec; + /*<>*/ return padprec; /*<>*/ } function get_int_pad(param){ - /*<>*/ var - /*<>*/ pad = get_pad(0), - /*<>*/ match = get_prec(0); - /*<>*/ if + var + pad = /*<>*/ get_pad(0), + match = /*<>*/ get_prec(0); + /*<>*/ if (typeof match === "number" && ! match) /*<>*/ return pad; - if(typeof pad === "number") + /*<>*/ if(typeof pad === "number") /*<>*/ return 0; - if(0 !== pad[0]) + /*<>*/ if(0 !== pad[0]) return 2 <= pad[1] ? legacy_behavior$0 ? _H_ - : incompatible_flag(pct_ind, str_ind, 48, cst_precision$1) - : pad; - if(2 > pad[1]) /*<>*/ return pad; - var n = pad[2]; + : /*<>*/ incompatible_flag + (pct_ind, str_ind, 48, cst_precision$1) + : pad /*<>*/ ; + /*<>*/ if(2 > pad[1]) + /*<>*/ return pad; + var n = /*<>*/ pad[2]; /*<>*/ return legacy_behavior$0 ? [0, 1, n] - : incompatible_flag(pct_ind, str_ind, 48, cst_precision$0); - /*<>*/ } + : /*<>*/ incompatible_flag + (pct_ind, str_ind, 48, cst_precision$0) /*<>*/ ; + } function check_no_0(symb, pad){ /*<>*/ if(typeof pad === "number") /*<>*/ return pad; - if(0 !== pad[0]) + /*<>*/ if(0 !== pad[0]) return 2 <= pad[1] ? legacy_behavior$0 ? _I_ - : incompatible_flag(pct_ind, str_ind, symb, cst_0$1) - : pad; - if(2 > pad[1]) /*<>*/ return pad; - var width = pad[2]; + : /*<>*/ incompatible_flag + (pct_ind, str_ind, symb, cst_0$1) + : pad /*<>*/ ; + /*<>*/ if(2 > pad[1]) + /*<>*/ return pad; + var width = /*<>*/ pad[2]; /*<>*/ return legacy_behavior$0 ? [0, 1, width] - : incompatible_flag(pct_ind, str_ind, symb, cst_0$0); - /*<>*/ } + : /*<>*/ incompatible_flag + (pct_ind, str_ind, symb, cst_0$0) /*<>*/ ; + } function opt_of_pad(c, pad){ /*<>*/ if(typeof pad === "number") /*<>*/ return 0; - if(0 === pad[0]) + /*<>*/ if(0 === pad[0]) switch(pad[1]){ case 0: var width = pad[2]; /*<>*/ return legacy_behavior$0 ? [0, width] - : incompatible_flag(pct_ind, str_ind, c, cst$24); + : /*<>*/ incompatible_flag + (pct_ind, str_ind, c, cst$24) /*<>*/ ; case 1: - var width$0 = pad[2]; + var width$0 = /*<>*/ pad[2]; /*<>*/ return [0, width$0]; default: - var width$1 = pad[2]; + var width$1 = /*<>*/ pad[2]; /*<>*/ return legacy_behavior$0 ? [0, width$1] - : incompatible_flag(pct_ind, str_ind, c, cst_0$2); + : /*<>*/ incompatible_flag + (pct_ind, str_ind, c, cst_0$2) /*<>*/ ; } /*<>*/ return incompatible_flag - (pct_ind, str_ind, c, cst$25); - /*<>*/ } + (pct_ind, str_ind, c, cst$25) /*<>*/ ; + } function get_pad_opt(c){ - /*<>*/ return opt_of_pad(c, get_pad(0)); - /*<>*/ } + /*<>*/ return /*<>*/ opt_of_pad + (c, /*<>*/ get_pad(0)) /*<>*/ ; + } function get_padprec_opt(c){ - /*<>*/ return opt_of_pad - (c, get_padprec(0)); - /*<>*/ } + /*<>*/ return /*<>*/ opt_of_pad + (c, /*<>*/ get_padprec(0)) /*<>*/ ; + } a: { /*<>*/ if(124 > symb) switch(symb){ case 33: var - fmt_rest$5 = parse(str_ind, end_ind)[1], - fmt_result = [0, [10, fmt_rest$5]]; + fmt_rest$5 = + /*<>*/ parse(str_ind, end_ind)[1], + fmt_result = + /*<>*/ [0, [10, fmt_rest$5]]; break a; case 40: - /*<>*/ var - /*<>*/ sub_end = - search_subformat_end(str_ind, end_ind, 41), - fmt_rest$7 = parse(sub_end + 2 | 0, end_ind)[1], - sub_fmt = parse(str_ind, sub_end)[1], - /*<>*/ sub_fmtty = - fmtty_of_fmt(sub_fmt); + var + sub_end = + /*<>*/ search_subformat_end + (str_ind, end_ind, 41), + fmt_rest$7 = + /*<>*/ parse + (sub_end + 2 | 0, end_ind) + [1], + sub_fmt = + /*<>*/ parse(str_ind, sub_end)[1], + sub_fmtty = + /*<>*/ fmtty_of_fmt(sub_fmt); /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$2 = - [9, get_pad_opt(95), sub_fmtty], - _aJ_ = [0, [23, ignored$2, fmt_rest$7]]; + var + ignored$2 = + /*<>*/ [9, + get_pad_opt(95), + sub_fmtty], + _aJ_ = + /*<>*/ [0, + [23, ignored$2, fmt_rest$7]]; else - var _aJ_ = [0, [14, get_pad_opt(40), sub_fmtty, fmt_rest$7]]; - var fmt_result = _aJ_; + var + _aJ_ = + /*<>*/ [0, + [14, + /*<>*/ get_pad_opt(40), + sub_fmtty, + fmt_rest$7]]; + var fmt_result = /*<>*/ _aJ_; break a; case 44: - var fmt_result = parse(str_ind, end_ind); break a; + var + fmt_result = + /*<>*/ /*<>*/ parse + (str_ind, end_ind); + break a; case 67: - /*<>*/ var - fmt_rest$10 = parse(str_ind, end_ind)[1], - /*<>*/ _aL_ = - get_ign(0) ? [0, [23, 1, fmt_rest$10]] : [0, [1, fmt_rest$10]], - fmt_result = _aL_; + var + fmt_rest$10 = + /*<>*/ parse(str_ind, end_ind)[1], + _aL_ = + /*<>*/ get_ign(0) + ? [0, [23, 1, fmt_rest$10]] + : [0, [1, fmt_rest$10]], + fmt_result = /*<>*/ _aL_; break a; case 78: - var fmt_rest$14 = parse(str_ind, end_ind)[1], counter$0 = 2; + var + fmt_rest$14 = + /*<>*/ parse(str_ind, end_ind)[1], + counter$0 = /*<>*/ 2; /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$6 = [11, counter$0], - _aR_ = [0, [23, ignored$6, fmt_rest$14]]; + var + ignored$6 = /*<>*/ [11, counter$0], + _aR_ = + /*<>*/ [0, + [23, ignored$6, fmt_rest$14]]; else - var _aR_ = [0, [21, counter$0, fmt_rest$14]]; - var fmt_result = _aR_; + var + _aR_ = + /*<>*/ [0, + [21, counter$0, fmt_rest$14]]; + var fmt_result = /*<>*/ _aR_; break a; case 83: - /*<>*/ var - /*<>*/ pad$6 = - check_no_0(symb, get_padprec(0)), - fmt_rest$15 = parse(str_ind, end_ind)[1]; + var + pad$6 = + /*<>*/ /*<>*/ check_no_0 + (symb, /*<>*/ get_padprec(0)), + fmt_rest$15 = + /*<>*/ parse(str_ind, end_ind)[1]; /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$7 = - [1, get_padprec_opt(95)], - _aS_ = [0, [23, ignored$7, fmt_rest$15]]; + var + ignored$7 = + /*<>*/ [1, get_padprec_opt(95)], + _aS_ = + /*<>*/ [0, + [23, ignored$7, fmt_rest$15]]; else - /*<>*/ var - /*<>*/ match$5 = - make_padding_fmt_ebb(pad$6, fmt_rest$15), - fmt_rest$16 = match$5[2], + var + match$5 = + /*<>*/ make_padding_fmt_ebb + (pad$6, fmt_rest$15), + fmt_rest$16 = /*<>*/ match$5[2], pad$7 = match$5[1], - _aS_ = [0, [3, pad$7, fmt_rest$16]]; - var fmt_result = _aS_; + _aS_ = + /*<>*/ [0, + [3, pad$7, fmt_rest$16]]; + var fmt_result = /*<>*/ _aS_; break a; case 91: - if(str_ind === end_ind) + /*<>*/ if(str_ind === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ var - /*<>*/ char_set = - create_char_set(0), + var + char_set = + /*<>*/ create_char_set(0), add_range = - function(c$0, c){ + /*<>*/ function(c$0, c){ /*<>*/ if(c >= c$0){ var i = c$0; for(;;){ - /*<>*/ add_in_char_set + /*<>*/ /*<>*/ add_in_char_set (char_set, /*<>*/ caml_call1 (Stdlib[29], i)); - /*<>*/ /*<>*/ var - _a$_ = i + 1 | 0; + var _a$_ = /*<>*/ i + 1 | 0; if(c === i) break; i = _a$_; } } /*<>*/ }, fail_single_percent = - function(str_ind){ - /*<>*/ return /*<>*/ caml_call2 - (failwith_message(_R_), str, str_ind); - /*<>*/ }, + /*<>*/ function(str_ind){ + /*<>*/ return caml_call2 + (failwith_message(_R_), str, str_ind) /*<>*/ ; + }, parse_char_set_content = - function(counter, str_ind, end_ind){ - /*<>*/ var str_ind$0 = str_ind; - /*<>*/ for(;;){ + /*<>*/ function + (counter, str_ind, end_ind){ + var str_ind$0 = /*<>*/ str_ind; + for(;;){ if(str_ind$0 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var c = /*<>*/ caml_string_get (str, str_ind$0); - if(45 !== c){ + /*<>*/ if(45 !== c){ if(93 === c) /*<>*/ return str_ind$0 + 1 | 0; - var _a__ = str_ind$0 + 1 | 0; - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (parse_char_set_after_char$0, [0, _a__, end_ind, c]); - var counter$0 = counter + 1 | 0; - /*<>*/ return parse_char_set_after_char$0 - (counter$0, _a__, end_ind, c); + var + _a__ = + /*<>*/ str_ind$0 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_after_char$0, [0, _a__, end_ind, c]) /*<>*/ ; + var + counter$0 = + /*<>*/ counter + 1 | 0; + return parse_char_set_after_char$0 + (counter$0, _a__, end_ind, c) /*<>*/ ; } /*<>*/ add_in_char_set (char_set, 45); - var str_ind$1 = str_ind$0 + 1 | 0; + var + str_ind$1 = + /*<>*/ str_ind$0 + 1 | 0; str_ind$0 = str_ind$1; } /*<>*/ }, parse_char_set_after_char$0 = - function(counter, str_ind, end_ind, c){ - /*<>*/ var - str_ind$0 = str_ind, + /*<>*/ function + (counter, str_ind, end_ind, c){ + var + str_ind$0 = /*<>*/ str_ind, c$0 = c; - /*<>*/ for(;;){ + for(;;){ if(str_ind$0 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var c$1 = /*<>*/ caml_string_get (str, str_ind$0); a: { - if(46 <= c$1){ + /*<>*/ if(46 <= c$1){ if(64 !== c$1){ if(93 !== c$1) break a; /*<>*/ add_in_char_set (char_set, c$0); - /*<>*/ return str_ind$0 + 1 + /*<>*/ return str_ind$0 + 1 | 0; } } else if(37 !== c$1){ - if(45 > c$1) break a; - var str_ind$2 = str_ind$0 + 1 | 0; - if(str_ind$2 === end_ind) + /*<>*/ if(45 > c$1) break a; + var + str_ind$2 = + /*<>*/ str_ind$0 + 1 | 0; + /*<>*/ if + (str_ind$2 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var c$2 = /*<>*/ caml_string_get (str, str_ind$2); - if(37 === c$2){ - if((str_ind$2 + 1 | 0) === end_ind) + /*<>*/ if(37 === c$2){ + /*<>*/ if + ((str_ind$2 + 1 | 0) === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var c$3 = /*<>*/ caml_string_get (str, str_ind$2 + 1 | 0); - if(37 !== c$3 && 64 !== c$3) + /*<>*/ if + (37 !== c$3 && 64 !== c$3) /*<>*/ return fail_single_percent - (str_ind$2); + (str_ind$2) /*<>*/ ; /*<>*/ add_range(c$0, c$3); - var _a8_ = str_ind$2 + 2 | 0; - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (parse_char_set_content, [0, _a8_, end_ind]); - var counter$1 = counter + 1 | 0; - /*<>*/ return parse_char_set_content - (counter$1, _a8_, end_ind); + var + _a8_ = + /*<>*/ str_ind$2 + 2 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content, [0, _a8_, end_ind]) /*<>*/ ; + var + counter$1 = + /*<>*/ counter + 1 | 0; + return parse_char_set_content(counter$1, _a8_, end_ind) /*<>*/ ; } - if(93 === c$2){ + /*<>*/ if(93 === c$2){ /*<>*/ add_in_char_set (char_set, c$0); - /*<>*/ add_in_char_set - (char_set, 45); - /*<>*/ return str_ind$2 + 1 + add_in_char_set(char_set, 45); + /*<>*/ return str_ind$2 + 1 | 0; } /*<>*/ add_range(c$0, c$2); - var _a9_ = str_ind$2 + 1 | 0; - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (parse_char_set_content, [0, _a9_, end_ind]); - var counter$0 = counter + 1 | 0; - /*<>*/ return parse_char_set_content - (counter$0, _a9_, end_ind); + var + _a9_ = + /*<>*/ str_ind$2 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content, [0, _a9_, end_ind]) /*<>*/ ; + var + counter$0 = + /*<>*/ counter + 1 | 0; + return parse_char_set_content(counter$0, _a9_, end_ind) /*<>*/ ; } - if(37 === c$0){ + /*<>*/ if(37 === c$0){ /*<>*/ add_in_char_set (char_set, c$1); - var _a7_ = str_ind$0 + 1 | 0; - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (parse_char_set_content, [0, _a7_, end_ind]); - var counter$2 = counter + 1 | 0; - /*<>*/ return parse_char_set_content - (counter$2, _a7_, end_ind); + var + _a7_ = + /*<>*/ str_ind$0 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content, [0, _a7_, end_ind]) /*<>*/ ; + var + counter$2 = + /*<>*/ counter + 1 | 0; + return parse_char_set_content(counter$2, _a7_, end_ind) /*<>*/ ; } } - if(37 === c$0) + /*<>*/ if(37 === c$0) /*<>*/ fail_single_percent (str_ind$0); /*<>*/ add_in_char_set (char_set, c$0); - var str_ind$1 = str_ind$0 + 1 | 0; + var + str_ind$1 = + /*<>*/ str_ind$0 + 1 | 0; str_ind$0 = str_ind$1; c$0 = c$1; } /*<>*/ }, parse_char_set_after_char = - function(str_ind, end_ind, c){ - /*<>*/ return caml_trampoline - (parse_char_set_after_char$0(0, str_ind, end_ind, c)); + /*<>*/ function + (str_ind, end_ind, c){ + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ parse_char_set_after_char$0 + (0, str_ind, end_ind, c)) /*<>*/ ; }; - if(str_ind === end_ind) + /*<>*/ if(str_ind === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - if - (94 - === - /*<>*/ caml_string_get - (str, str_ind)) + /*<>*/ if + (94 === caml_string_get(str, str_ind)) var - str_ind$0 = str_ind + 1 | 0, - reverse = 1, + str_ind$0 = /*<>*/ str_ind + 1 | 0, + reverse = /*<>*/ 1, str_ind$1 = str_ind$0; else - var reverse = 0, str_ind$1 = str_ind; - if(str_ind$1 === end_ind) + var + reverse = /*<>*/ 0, + str_ind$1 = str_ind; + /*<>*/ if(str_ind$1 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ var - /*<>*/ c = + var + c = /*<>*/ caml_string_get (str, str_ind$1), - /*<>*/ next_ind = - parse_char_set_after_char(str_ind$1 + 1 | 0, end_ind, c), - /*<>*/ char_set$0 = - freeze_char_set(char_set), - /*<>*/ char_set$1 = - reverse ? rev_char_set(char_set$0) : char_set$0, - fmt_rest$19 = parse(next_ind, end_ind)[1]; + next_ind = + /*<>*/ parse_char_set_after_char + (str_ind$1 + 1 | 0, end_ind, c), + char_set$0 = + /*<>*/ freeze_char_set(char_set), + char_set$1 = + /*<>*/ reverse + ? /*<>*/ rev_char_set + (char_set$0) + : char_set$0, + fmt_rest$19 = + /*<>*/ parse(next_ind, end_ind) + [1]; /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$9 = - [10, get_pad_opt(95), char_set$1], - _aX_ = [0, [23, ignored$9, fmt_rest$19]]; + var + ignored$9 = + /*<>*/ [10, + get_pad_opt(95), + char_set$1], + _aX_ = + /*<>*/ [0, + [23, ignored$9, fmt_rest$19]]; else - var _aX_ = [0, [20, get_pad_opt(91), char_set$1, fmt_rest$19]]; - var fmt_result = _aX_; + var + _aX_ = + /*<>*/ [0, + [20, + /*<>*/ get_pad_opt(91), + char_set$1, + fmt_rest$19]]; + var fmt_result = /*<>*/ _aX_; break a; case 97: var - fmt_rest$20 = parse(str_ind, end_ind)[1], - fmt_result = [0, [15, fmt_rest$20]]; + fmt_rest$20 = + /*<>*/ parse(str_ind, end_ind)[1], + fmt_result = + /*<>*/ [0, [15, fmt_rest$20]]; break a; case 99: - /*<>*/ var + var char_format = - function(fmt_rest){ - /*<>*/ return get_ign(0) + /*<>*/ function(fmt_rest){ + /*<>*/ return get_ign(0) ? [0, [23, 0, fmt_rest]] - : [0, [0, fmt_rest]]; - /*<>*/ }, - fmt_rest$21 = parse(str_ind, end_ind)[1], - /*<>*/ match$7 = get_pad_opt(99); - if(match$7){ + : [0, [0, fmt_rest]] /*<>*/ ; + }, + fmt_rest$21 = + /*<>*/ parse(str_ind, end_ind)[1], + match$7 = /*<>*/ get_pad_opt(99); + /*<>*/ if(match$7){ if(0 === match$7[1]) - /*<>*/ var - /*<>*/ _aY_ = - get_ign(0) ? [0, [23, 3, fmt_rest$21]] : [0, [22, fmt_rest$21]], - _aZ_ = _aY_; + var + _aY_ = + /*<>*/ get_ign(0) + ? [0, [23, 3, fmt_rest$21]] + : [0, [22, fmt_rest$21]], + _aZ_ = /*<>*/ _aY_; else var _aZ_ = - legacy_behavior$0 - ? char_format(fmt_rest$21) - : invalid_format_message + /*<>*/ legacy_behavior$0 + ? /*<>*/ char_format + (fmt_rest$21) + : /*<>*/ invalid_format_message (str_ind, cst_non_zero_widths_are_unsupp); - var _a0_ = _aZ_; + var _a0_ = /*<>*/ _aZ_; } else - var _a0_ = char_format(fmt_rest$21); - var fmt_result = _a0_; + var + _a0_ = + /*<>*/ /*<>*/ char_format + (fmt_rest$21); + var fmt_result = /*<>*/ _a0_; break a; case 114: - /*<>*/ var - fmt_rest$22 = parse(str_ind, end_ind)[1], - /*<>*/ _a1_ = - get_ign(0) ? [0, [23, 2, fmt_rest$22]] : [0, [19, fmt_rest$22]], - fmt_result = _a1_; + var + fmt_rest$22 = + /*<>*/ parse(str_ind, end_ind)[1], + _a1_ = + /*<>*/ get_ign(0) + ? [0, [23, 2, fmt_rest$22]] + : [0, [19, fmt_rest$22]], + fmt_result = /*<>*/ _a1_; break a; case 115: - /*<>*/ var - /*<>*/ pad$9 = - check_no_0(symb, get_padprec(0)), - fmt_rest$23 = parse(str_ind, end_ind)[1]; + var + pad$9 = + /*<>*/ /*<>*/ check_no_0 + (symb, /*<>*/ get_padprec(0)), + fmt_rest$23 = + /*<>*/ parse(str_ind, end_ind)[1]; /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$10 = - [0, get_padprec_opt(95)], - _a2_ = [0, [23, ignored$10, fmt_rest$23]]; + var + ignored$10 = + /*<>*/ [0, get_padprec_opt(95)], + _a2_ = + /*<>*/ [0, + [23, ignored$10, fmt_rest$23]]; else - /*<>*/ var - /*<>*/ match$8 = - make_padding_fmt_ebb(pad$9, fmt_rest$23), - fmt_rest$24 = match$8[2], + var + match$8 = + /*<>*/ make_padding_fmt_ebb + (pad$9, fmt_rest$23), + fmt_rest$24 = /*<>*/ match$8[2], pad$10 = match$8[1], - _a2_ = [0, [2, pad$10, fmt_rest$24]]; - var fmt_result = _a2_; + _a2_ = + /*<>*/ [0, + [2, pad$10, fmt_rest$24]]; + var fmt_result = /*<>*/ _a2_; break a; case 116: var - fmt_rest$25 = parse(str_ind, end_ind)[1], - fmt_result = [0, [16, fmt_rest$25]]; + fmt_rest$25 = + /*<>*/ parse(str_ind, end_ind)[1], + fmt_result = + /*<>*/ [0, [16, fmt_rest$25]]; break a; case 123: - /*<>*/ var - /*<>*/ sub_end$0 = - search_subformat_end(str_ind, end_ind, 125), - sub_fmt$0 = parse(str_ind, sub_end$0)[1], - fmt_rest$26 = parse(sub_end$0 + 2 | 0, end_ind)[1], - /*<>*/ sub_fmtty$0 = - fmtty_of_fmt(sub_fmt$0); + var + sub_end$0 = + /*<>*/ search_subformat_end + (str_ind, end_ind, 125), + sub_fmt$0 = + /*<>*/ parse(str_ind, sub_end$0) + [1], + fmt_rest$26 = + /*<>*/ parse + (sub_end$0 + 2 | 0, end_ind) + [1], + sub_fmtty$0 = + /*<>*/ fmtty_of_fmt(sub_fmt$0); /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$11 = - [8, get_pad_opt(95), sub_fmtty$0], - _a3_ = [0, [23, ignored$11, fmt_rest$26]]; + var + ignored$11 = + /*<>*/ [8, + get_pad_opt(95), + sub_fmtty$0], + _a3_ = + /*<>*/ [0, + [23, ignored$11, fmt_rest$26]]; else - var _a3_ = [0, [13, get_pad_opt(123), sub_fmtty$0, fmt_rest$26]]; - var fmt_result = _a3_; + var + _a3_ = + /*<>*/ [0, + [13, + /*<>*/ get_pad_opt(123), + sub_fmtty$0, + fmt_rest$26]]; + var fmt_result = /*<>*/ _a3_; break a; case 66: case 98: - /*<>*/ var - /*<>*/ pad$3 = - check_no_0(symb, get_padprec(0)), - fmt_rest$8 = parse(str_ind, end_ind)[1]; + var + pad$3 = + /*<>*/ /*<>*/ check_no_0 + (symb, /*<>*/ get_padprec(0)), + fmt_rest$8 = + /*<>*/ parse(str_ind, end_ind)[1]; /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$3 = - [7, get_padprec_opt(95)], - _aK_ = [0, [23, ignored$3, fmt_rest$8]]; + var + ignored$3 = + /*<>*/ [7, get_padprec_opt(95)], + _aK_ = + /*<>*/ [0, + [23, ignored$3, fmt_rest$8]]; else - /*<>*/ var - /*<>*/ match$3 = - make_padding_fmt_ebb(pad$3, fmt_rest$8), - fmt_rest$9 = match$3[2], + var + match$3 = + /*<>*/ make_padding_fmt_ebb + (pad$3, fmt_rest$8), + fmt_rest$9 = /*<>*/ match$3[2], pad$4 = match$3[1], - _aK_ = [0, [9, pad$4, fmt_rest$9]]; - var fmt_result = _aK_; + _aK_ = + /*<>*/ [0, + [9, pad$4, fmt_rest$9]]; + var fmt_result = /*<>*/ _aK_; break a; case 37: case 64: var - fmt_rest$6 = parse(str_ind, end_ind)[1], - fmt_result = [0, [12, symb, fmt_rest$6]]; + fmt_rest$6 = + /*<>*/ parse(str_ind, end_ind)[1], + fmt_result = + /*<>*/ [0, [12, symb, fmt_rest$6]]; break a; case 76: case 108: case 110: - if(str_ind !== end_ind){ - /*<>*/ var - /*<>*/ symb$0 = + /*<>*/ if(str_ind !== end_ind){ + var + symb$0 = /*<>*/ caml_string_get (str, str_ind), - /*<>*/ _a4_ = symb$0 - 88 | 0; + _a4_ = /*<>*/ symb$0 - 88 | 0; b: { if(32 >= _a4_ >>> 0) @@ -19642,35 +20002,48 @@ case 23: case 29: case 32: - var _aQ_ = 1; break b; + var _aQ_ = /*<>*/ 1; break b; } - var _aQ_ = 0; + var _aQ_ = /*<>*/ 0; } - /*<>*/ if(_aQ_) break; + /*<>*/ if(_aQ_) break; } - var fmt_rest$13 = parse(str_ind, end_ind)[1]; + var + fmt_rest$13 = + /*<>*/ parse(str_ind, end_ind)[1]; b: { - if(108 <= symb){ + /*<>*/ if(108 <= symb){ if(111 > symb) switch(symb - 108 | 0){ case 0: - var counter = 0; break b; + var counter = /*<>*/ 0; + break b; case 1: break; - default: var counter = 1; break b; + default: + var counter = /*<>*/ 1; + break b; } } - else if(76 === symb){var counter = 2; break b;} - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + else if(76 === symb){ + var counter = /*<>*/ 2; + break b; + } + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _V_], 1); } /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$5 = [11, counter], - _aP_ = [0, [23, ignored$5, fmt_rest$13]]; + var + ignored$5 = /*<>*/ [11, counter], + _aP_ = + /*<>*/ [0, + [23, ignored$5, fmt_rest$13]]; else - var _aP_ = [0, [21, counter, fmt_rest$13]]; - var fmt_result = _aP_; + var + _aP_ = + /*<>*/ [0, + [21, counter, fmt_rest$13]]; + var fmt_result = /*<>*/ _aP_; break a; case 32: case 35: @@ -19679,7 +20052,7 @@ case 95: var fmt_result = - /*<>*/ caml_call3 + /*<>*/ /*<>*/ caml_call3 (failwith_message(_M_), str, pct_ind, symb); break a; case 88: @@ -19688,27 +20061,43 @@ case 111: case 117: case 120: - /*<>*/ var - /*<>*/ _aT_ = get_space(0), - /*<>*/ _aU_ = get_hash(0), - /*<>*/ iconv$2 = - compute_int_conv(pct_ind, str_ind, get_plus(0), _aU_, _aT_, symb), - fmt_rest$17 = parse(str_ind, end_ind)[1]; + var + _aT_ = /*<>*/ get_space(0), + _aU_ = /*<>*/ get_hash(0), + iconv$2 = + /*<>*/ /*<>*/ compute_int_conv + (pct_ind, + str_ind, + /*<>*/ get_plus(0), + _aU_, + _aT_, + symb), + fmt_rest$17 = + /*<>*/ parse(str_ind, end_ind)[1]; /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$8 = - [2, iconv$2, get_pad_opt(95)], - _aV_ = [0, [23, ignored$8, fmt_rest$17]]; + var + ignored$8 = + /*<>*/ [2, + iconv$2, + get_pad_opt(95)], + _aV_ = + /*<>*/ [0, + [23, ignored$8, fmt_rest$17]]; else - /*<>*/ var - /*<>*/ _aW_ = get_prec(0), - /*<>*/ match$6 = - make_padprec_fmt_ebb(get_int_pad(0), _aW_, fmt_rest$17), - fmt_rest$18 = match$6[3], + var + _aW_ = /*<>*/ get_prec(0), + match$6 = + /*<>*/ /*<>*/ make_padprec_fmt_ebb + ( /*<>*/ get_int_pad(0), + _aW_, + fmt_rest$17), + fmt_rest$18 = /*<>*/ match$6[3], prec$4 = match$6[2], pad$8 = match$6[1], - _aV_ = [0, [4, iconv$2, pad$8, prec$4, fmt_rest$18]]; - var fmt_result = _aV_; + _aV_ = + /*<>*/ [0, + [4, iconv$2, pad$8, prec$4, fmt_rest$18]]; + var fmt_result = /*<>*/ _aV_; break a; case 69: case 70: @@ -19718,318 +20107,405 @@ case 102: case 103: case 104: - /*<>*/ var - /*<>*/ space$1 = get_space(0), - /*<>*/ hash$1 = get_hash(0), - /*<>*/ plus$2 = get_plus(0), + var + space$1 = /*<>*/ get_space(0), + hash$1 = /*<>*/ get_hash(0), + plus$2 = /*<>*/ get_plus(0), flag = - plus$2 + /*<>*/ plus$2 ? space$1 ? legacy_behavior$0 ? 1 - : incompatible_flag(pct_ind, str_ind, 32, cst$36) + : /*<>*/ incompatible_flag + (pct_ind, str_ind, 32, cst$36) : 1 : space$1 ? 2 : 0; b: { c: if(73 <= symb){ - var switcher = symb - 101 | 0; + var + switcher = /*<>*/ symb - 101 | 0; if(3 >= switcher >>> 0){ switch(switcher){ case 0: - var _a5_ = 1; break; + var _a5_ = /*<>*/ 1; break; case 1: - var _a5_ = 0; break; + var _a5_ = /*<>*/ 0; break; case 2: - var _a5_ = 3; break; - default: var _a5_ = 6; + var _a5_ = /*<>*/ 3; break; + default: var _a5_ = /*<>*/ 6; } - var kind = _a5_; + var kind = /*<>*/ _a5_; break b; } } else if(69 <= symb){ switch(symb - 69 | 0){ case 0: - var _a6_ = 2; break; + var _a6_ = /*<>*/ 2; break; case 1: break c; case 2: - var _a6_ = 4; break; - default: var _a6_ = 7; + var _a6_ = /*<>*/ 4; break; + default: var _a6_ = /*<>*/ 7; } - var kind = _a6_; + var kind = /*<>*/ _a6_; break b; } if(hash$1){ - if(70 === symb){var kind = 8; break b;} - } - else if(70 === symb){var kind = 5; break b;} - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + if(70 === symb){ + var kind = /*<>*/ 8; + break b; + } + } + else if(70 === symb){ + var kind = /*<>*/ 5; + break b; + } + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _X_], 1); } - /*<>*/ var - /*<>*/ fconv = [0, flag, kind], - fmt_rest$11 = parse(str_ind, end_ind)[1]; + var + fconv = /*<>*/ [0, flag, kind], + fmt_rest$11 = + /*<>*/ parse(str_ind, end_ind)[1]; /*<>*/ if(get_ign(0)){ - /*<>*/ /*<>*/ var - match = get_prec(0); - if(typeof match === "number") + var match = /*<>*/ get_prec(0); + /*<>*/ if + (typeof match === "number") var _aM_ = - match ? incompatible_flag(pct_ind, str_ind, 95, cst$26) : 0; + match + ? /*<>*/ incompatible_flag + (pct_ind, str_ind, 95, cst$26) + : 0; else - var ndec = match[1], _aM_ = [0, ndec]; - /*<>*/ var - /*<>*/ ignored$4 = - [6, get_pad_opt(95), _aM_], - _aN_ = [0, [23, ignored$4, fmt_rest$11]]; + var + ndec = /*<>*/ match[1], + _aM_ = /*<>*/ [0, ndec]; + var + ignored$4 = + /*<>*/ [6, + get_pad_opt(95), + _aM_], + _aN_ = + /*<>*/ [0, + [23, ignored$4, fmt_rest$11]]; } else - /*<>*/ var - /*<>*/ _aO_ = get_prec(0), - /*<>*/ match$4 = - make_padprec_fmt_ebb(get_pad(0), _aO_, fmt_rest$11), - fmt_rest$12 = match$4[3], + var + _aO_ = /*<>*/ get_prec(0), + match$4 = + /*<>*/ /*<>*/ make_padprec_fmt_ebb + ( /*<>*/ get_pad(0), + _aO_, + fmt_rest$11), + fmt_rest$12 = /*<>*/ match$4[3], prec$3 = match$4[2], pad$5 = match$4[1], - _aN_ = [0, [8, fconv, pad$5, prec$3, fmt_rest$12]]; - var fmt_result = _aN_; + _aN_ = + /*<>*/ [0, + [8, fconv, pad$5, prec$3, fmt_rest$12]]; + var fmt_result = /*<>*/ _aN_; break a; } b: if(108 <= symb){ - if(111 > symb){ + /*<>*/ if(111 > symb){ switch(symb - 108 | 0){ case 0: - /*<>*/ var - /*<>*/ _at_ = + var + _at_ = /*<>*/ caml_string_get (str, str_ind), - /*<>*/ _au_ = get_space(0), - /*<>*/ _av_ = get_hash(0), - /*<>*/ iconv = - compute_int_conv - (pct_ind, str_ind + 1 | 0, get_plus(0), _av_, _au_, _at_), - fmt_rest = parse(str_ind + 1 | 0, end_ind)[1]; + _au_ = /*<>*/ get_space(0), + _av_ = /*<>*/ get_hash(0), + iconv = + /*<>*/ /*<>*/ compute_int_conv + (pct_ind, + str_ind + 1 | 0, + /*<>*/ get_plus(0), + _av_, + _au_, + _at_), + fmt_rest = + /*<>*/ parse + (str_ind + 1 | 0, end_ind) + [1]; /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored = - [3, iconv, get_pad_opt(95)], - _aw_ = [0, [23, ignored, fmt_rest]]; + var + ignored = + /*<>*/ [3, + iconv, + get_pad_opt(95)], + _aw_ = + /*<>*/ [0, + [23, ignored, fmt_rest]]; else - /*<>*/ var - /*<>*/ _ay_ = get_prec(0), - /*<>*/ match$0 = - make_padprec_fmt_ebb(get_int_pad(0), _ay_, fmt_rest), - fmt_rest$0 = match$0[3], + var + _ay_ = /*<>*/ get_prec(0), + match$0 = + /*<>*/ /*<>*/ make_padprec_fmt_ebb + ( /*<>*/ get_int_pad(0), + _ay_, + fmt_rest), + fmt_rest$0 = /*<>*/ match$0[3], prec$0 = match$0[2], pad$0 = match$0[1], - _aw_ = [0, [5, iconv, pad$0, prec$0, fmt_rest$0]]; - var _ax_ = _aw_; + _aw_ = + /*<>*/ [0, + [5, iconv, pad$0, prec$0, fmt_rest$0]]; + var _ax_ = /*<>*/ _aw_; break; case 1: break b; default: - /*<>*/ var - /*<>*/ _az_ = + var + _az_ = /*<>*/ caml_string_get (str, str_ind), - /*<>*/ _aA_ = get_space(0), - /*<>*/ _aB_ = get_hash(0), - /*<>*/ iconv$0 = - compute_int_conv - (pct_ind, str_ind + 1 | 0, get_plus(0), _aB_, _aA_, _az_), - fmt_rest$1 = parse(str_ind + 1 | 0, end_ind)[1]; + _aA_ = /*<>*/ get_space(0), + _aB_ = /*<>*/ get_hash(0), + iconv$0 = + /*<>*/ /*<>*/ compute_int_conv + (pct_ind, + str_ind + 1 | 0, + /*<>*/ get_plus(0), + _aB_, + _aA_, + _az_), + fmt_rest$1 = + /*<>*/ parse + (str_ind + 1 | 0, end_ind) + [1]; /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$0 = - [4, iconv$0, get_pad_opt(95)], - _aC_ = [0, [23, ignored$0, fmt_rest$1]]; + var + ignored$0 = + /*<>*/ [4, + iconv$0, + get_pad_opt(95)], + _aC_ = + /*<>*/ [0, + [23, ignored$0, fmt_rest$1]]; else - /*<>*/ var - /*<>*/ _aD_ = get_prec(0), - /*<>*/ match$1 = - make_padprec_fmt_ebb(get_int_pad(0), _aD_, fmt_rest$1), - fmt_rest$2 = match$1[3], + var + _aD_ = /*<>*/ get_prec(0), + match$1 = + /*<>*/ /*<>*/ make_padprec_fmt_ebb + ( /*<>*/ get_int_pad(0), + _aD_, + fmt_rest$1), + fmt_rest$2 = /*<>*/ match$1[3], prec$1 = match$1[2], pad$1 = match$1[1], - _aC_ = [0, [6, iconv$0, pad$1, prec$1, fmt_rest$2]]; - var _ax_ = _aC_; + _aC_ = + /*<>*/ [0, + [6, iconv$0, pad$1, prec$1, fmt_rest$2]]; + var _ax_ = /*<>*/ _aC_; } - var fmt_result = _ax_; + var fmt_result = /*<>*/ _ax_; break a; } } else if(76 === symb){ - /*<>*/ var - /*<>*/ _aE_ = + var + _aE_ = /*<>*/ caml_string_get(str, str_ind), - /*<>*/ _aF_ = get_space(0), - /*<>*/ _aG_ = get_hash(0), - /*<>*/ iconv$1 = - compute_int_conv - (pct_ind, str_ind + 1 | 0, get_plus(0), _aG_, _aF_, _aE_), - fmt_rest$3 = parse(str_ind + 1 | 0, end_ind)[1]; + _aF_ = /*<>*/ get_space(0), + _aG_ = /*<>*/ get_hash(0), + iconv$1 = + /*<>*/ /*<>*/ compute_int_conv + (pct_ind, + str_ind + 1 | 0, + /*<>*/ get_plus(0), + _aG_, + _aF_, + _aE_), + fmt_rest$3 = + /*<>*/ parse + (str_ind + 1 | 0, end_ind) + [1]; /*<>*/ if(get_ign(0)) - /*<>*/ var - /*<>*/ ignored$1 = - [5, iconv$1, get_pad_opt(95)], - _aH_ = [0, [23, ignored$1, fmt_rest$3]]; + var + ignored$1 = + /*<>*/ [5, + iconv$1, + get_pad_opt(95)], + _aH_ = + /*<>*/ [0, + [23, ignored$1, fmt_rest$3]]; else - /*<>*/ var - /*<>*/ _aI_ = get_prec(0), - /*<>*/ match$2 = - make_padprec_fmt_ebb(get_int_pad(0), _aI_, fmt_rest$3), - fmt_rest$4 = match$2[3], + var + _aI_ = /*<>*/ get_prec(0), + match$2 = + /*<>*/ /*<>*/ make_padprec_fmt_ebb + ( /*<>*/ get_int_pad(0), + _aI_, + fmt_rest$3), + fmt_rest$4 = /*<>*/ match$2[3], prec$2 = match$2[2], pad$2 = match$2[1], - _aH_ = [0, [7, iconv$1, pad$2, prec$2, fmt_rest$4]]; - var fmt_result = _aH_; + _aH_ = + /*<>*/ [0, + [7, iconv$1, pad$2, prec$2, fmt_rest$4]]; + var fmt_result = /*<>*/ _aH_; break a; } var fmt_result = - /*<>*/ caml_call3 + /*<>*/ /*<>*/ caml_call3 (failwith_message(_J_), str, str_ind - 1 | 0, symb); } - if(1 - legacy_behavior$0){ - var _ak_ = 1 - plus_used[1], plus$0 = _ak_ ? plus : _ak_; + /*<>*/ if(1 - legacy_behavior$0){ + var + _ak_ = /*<>*/ 1 - plus_used[1], + plus$0 = _ak_ ? plus : _ak_; if(plus$0) /*<>*/ incompatible_flag (pct_ind, str_ind, symb, cst$27); - var _al_ = 1 - hash_used[1], hash$0 = _al_ ? hash : _al_; + var + _al_ = /*<>*/ 1 - hash_used[1], + hash$0 = _al_ ? hash : _al_; if(hash$0) /*<>*/ incompatible_flag (pct_ind, str_ind, symb, cst$28); - var _am_ = 1 - space_used[1], space$0 = _am_ ? space : _am_; + var + _am_ = /*<>*/ 1 - space_used[1], + space$0 = _am_ ? space : _am_; if(space$0) /*<>*/ incompatible_flag (pct_ind, str_ind, symb, cst$29); var - _an_ = 1 - pad_used[1], + _an_ = /*<>*/ 1 - pad_used[1], _ao_ = _an_ ? /*<>*/ caml_notequal ([0, pad], _K_) : _an_; - /*<>*/ if(_ao_) + /*<>*/ if(_ao_) /*<>*/ incompatible_flag (pct_ind, str_ind, symb, cst_padding$0); var - _ap_ = 1 - prec_used[1], + _ap_ = /*<>*/ 1 - prec_used[1], _aq_ = _ap_ ? /*<>*/ caml_notequal ([0, prec], _L_) : _ap_; - /*<>*/ if(_aq_){ - var _ar_ = ign ? 95 : symb; - /*<>*/ incompatible_flag - (pct_ind, str_ind, _ar_, cst_precision$2); + /*<>*/ if(_aq_){ + var _ar_ = /*<>*/ ign ? 95 : symb; + incompatible_flag(pct_ind, str_ind, _ar_, cst_precision$2); } - var plus$1 = ign ? plus : ign; + var plus$1 = /*<>*/ ign ? plus : ign; if(plus$1) /*<>*/ incompatible_flag (pct_ind, str_ind, 95, cst$30); } - var _as_ = 1 - ign_used[1], ign$0 = _as_ ? ign : _as_; + var + _as_ = /*<>*/ 1 - ign_used[1], + ign$0 = _as_ ? ign : _as_; a: if(ign$0){ b: { - if(38 <= symb){ + /*<>*/ if(38 <= symb){ if(44 !== symb && 64 !== symb) break b; } else if(33 !== symb && 37 > symb) break b; - if(legacy_behavior$0) break a; + /*<>*/ if(legacy_behavior$0) break a; } /*<>*/ incompatible_flag (pct_ind, str_ind, symb, cst$31); } - /*<>*/ return fmt_result; + /*<>*/ return fmt_result; } function parse_tag(is_open_tag, str_ind, end_ind){ /*<>*/ try{ if(str_ind === end_ind) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - if - (60 - !== - /*<>*/ caml_string_get(str, str_ind)) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if + (60 !== caml_string_get(str, str_ind)) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ /*<>*/ var + var ind = /*<>*/ caml_call3 (Stdlib_String[32], str, str_ind + 1 | 0, 62); - if(end_ind <= ind) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(end_ind <= ind) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ var - /*<>*/ sub_str = + var + sub_str = /*<>*/ caml_call3 (Stdlib_String[16], str, str_ind, (ind - str_ind | 0) + 1 | 0), - fmt_rest$0 = parse(ind + 1 | 0, end_ind)[1], - sub_fmt = parse(str_ind, ind + 1 | 0)[1], - /*<>*/ sub_format$0 = - [0, sub_fmt, sub_str], - /*<>*/ formatting$0 = - is_open_tag ? [0, sub_format$0] : [1, sub_format$0], - /*<>*/ _ai_ = - [0, [18, formatting$0, fmt_rest$0]]; - /*<>*/ return _ai_; + fmt_rest$0 = + /*<>*/ parse(ind + 1 | 0, end_ind)[1], + sub_fmt = + /*<>*/ parse(str_ind, ind + 1 | 0)[1], + sub_format$0 = + /*<>*/ [0, sub_fmt, sub_str], + formatting$0 = + /*<>*/ is_open_tag + ? [0, sub_format$0] + : [1, sub_format$0], + _ai_ = + /*<>*/ [0, + [18, formatting$0, fmt_rest$0]]; + return _ai_; } catch(_aj_){ - var _ah_ = caml_wrap_exception(_aj_); + var _ah_ = /*<>*/ caml_wrap_exception(_aj_); if(_ah_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ah_, 0); - /*<>*/ var - fmt_rest = parse(str_ind, end_ind)[1], - /*<>*/ formatting = - is_open_tag ? [0, sub_format] : [1, sub_format]; + var + fmt_rest = + /*<>*/ parse(str_ind, end_ind)[1], + formatting = + /*<>*/ is_open_tag + ? [0, sub_format] + : [1, sub_format]; /*<>*/ return [0, [18, formatting, fmt_rest]]; } /*<>*/ } function parse_spaces(str_ind, end_ind){ - /*<>*/ var str_ind$0 = str_ind; - /*<>*/ for(;;){ + var str_ind$0 = /*<>*/ str_ind; + for(;;){ if(str_ind$0 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); /*<>*/ if - (32 - !== - /*<>*/ caml_string_get(str, str_ind$0)) + (32 !== caml_string_get(str, str_ind$0)) /*<>*/ return str_ind$0; - var str_ind$1 = str_ind$0 + 1 | 0; + var + str_ind$1 = /*<>*/ str_ind$0 + 1 | 0; str_ind$0 = str_ind$1; } /*<>*/ } function parse_positive(str_ind, end_ind, acc){ - /*<>*/ var - str_ind$0 = str_ind, + var + str_ind$0 = /*<>*/ str_ind, acc$0 = acc; - /*<>*/ for(;;){ + for(;;){ if(str_ind$0 === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var c = /*<>*/ caml_string_get (str, str_ind$0); - if(9 < c - 48 >>> 0) + /*<>*/ if(9 < c - 48 >>> 0) /*<>*/ return [0, str_ind$0, acc$0]; - var new_acc = (acc$0 * 10 | 0) + (c - 48 | 0) | 0; - if(Stdlib_Sys[12] < new_acc){ - /*<>*/ /*<>*/ var - _ag_ = Stdlib_Sys[12]; - /*<>*/ return /*<>*/ caml_call3 - (failwith_message(_S_), str, new_acc, _ag_); + var + new_acc = + /*<>*/ (acc$0 * 10 | 0) + (c - 48 | 0) + | 0; + /*<>*/ if(Stdlib_Sys[12] < new_acc){ + var _ag_ = /*<>*/ Stdlib_Sys[12]; + return caml_call3(failwith_message(_S_), str, new_acc, _ag_) /*<>*/ ; } - var str_ind$1 = str_ind$0 + 1 | 0; + var str_ind$1 = /*<>*/ str_ind$0 + 1 | 0; str_ind$0 = str_ind$1; acc$0 = new_acc; } @@ -20038,38 +20514,39 @@ /*<>*/ if(str_ind === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_string_get(str, str_ind); - if(48 <= match){ + /*<>*/ if(48 <= match){ if(58 > match) /*<>*/ return parse_positive - (str_ind, end_ind, 0); + (str_ind, end_ind, 0) /*<>*/ ; } else if(45 === match){ - if((str_ind + 1 | 0) === end_ind) + /*<>*/ if((str_ind + 1 | 0) === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var c = /*<>*/ caml_string_get (str, str_ind + 1 | 0); - if(9 < c - 48 >>> 0) + /*<>*/ if(9 < c - 48 >>> 0) /*<>*/ return expected_character - (str_ind + 1 | 0, cst_digit, c); - /*<>*/ var - /*<>*/ match$0 = - parse_positive(str_ind + 1 | 0, end_ind, 0), - n = match$0[2], + (str_ind + 1 | 0, cst_digit, c) /*<>*/ ; + var + match$0 = + /*<>*/ parse_positive + (str_ind + 1 | 0, end_ind, 0), + n = /*<>*/ match$0[2], next_ind = match$0[1]; /*<>*/ return [0, next_ind, - n | 0]; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _T_], 1); /*<>*/ } function add_literal(lit_start, str_ind, fmt){ - /*<>*/ var - size = str_ind - lit_start | 0; + var + size = /*<>*/ str_ind - lit_start | 0; return 0 === size ? [0, fmt] : 1 @@ -20083,123 +20560,132 @@ [11, /*<>*/ caml_call3 (Stdlib_String[16], str, lit_start, size), - fmt]]; - /*<>*/ } + fmt]] /*<>*/ ; + } function search_subformat_end(str_ind, end_ind, c){ - /*<>*/ var str_ind$0 = str_ind; - /*<>*/ for(;;){ + var str_ind$0 = /*<>*/ str_ind; + for(;;){ if(str_ind$0 === end_ind) - /*<>*/ /*<>*/ caml_call3 + /*<>*/ caml_call3 (failwith_message(_U_), str, c, end_ind); - if - (37 - === - /*<>*/ caml_string_get - (str, str_ind$0)){ - if((str_ind$0 + 1 | 0) === end_ind) + /*<>*/ if + (37 === caml_string_get(str, str_ind$0)){ + /*<>*/ if + ((str_ind$0 + 1 | 0) === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - if - ( /*<>*/ caml_string_get - (str, str_ind$0 + 1 | 0) - === c) + /*<>*/ if + (caml_string_get(str, str_ind$0 + 1 | 0) === c) /*<>*/ return str_ind$0; - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_string_get (str, str_ind$0 + 1 | 0); - if(95 <= match){ + /*<>*/ if(95 <= match){ if(123 <= match){ if(126 > match) switch(match - 123 | 0){ case 0: - /*<>*/ var - /*<>*/ sub_end = - search_subformat_end(str_ind$0 + 2 | 0, end_ind, 125), - /*<>*/ str_ind$2 = - sub_end + 2 | 0; + var + sub_end = + /*<>*/ search_subformat_end + (str_ind$0 + 2 | 0, end_ind, 125), + str_ind$2 = + /*<>*/ sub_end + 2 | 0; str_ind$0 = str_ind$2; continue; case 1: break; default: /*<>*/ return expected_character - (str_ind$0 + 1 | 0, cst_character, 125); + (str_ind$0 + 1 | 0, cst_character, 125) /*<>*/ ; } } else if(96 > match){ - if((str_ind$0 + 2 | 0) === end_ind) + /*<>*/ if + ((str_ind$0 + 2 | 0) === end_ind) /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); - /*<>*/ /*<>*/ var + var match$0 = /*<>*/ caml_string_get (str, str_ind$0 + 2 | 0); - if(40 === match$0){ - /*<>*/ var - /*<>*/ sub_end$0 = - search_subformat_end(str_ind$0 + 3 | 0, end_ind, 41), - /*<>*/ str_ind$3 = - sub_end$0 + 2 | 0; + /*<>*/ if(40 === match$0){ + var + sub_end$0 = + /*<>*/ search_subformat_end + (str_ind$0 + 3 | 0, end_ind, 41), + str_ind$3 = + /*<>*/ sub_end$0 + 2 | 0; str_ind$0 = str_ind$3; continue; } - if(123 === match$0){ - /*<>*/ var - /*<>*/ sub_end$1 = - search_subformat_end(str_ind$0 + 3 | 0, end_ind, 125), - /*<>*/ str_ind$4 = - sub_end$1 + 2 | 0; + /*<>*/ if(123 === match$0){ + var + sub_end$1 = + /*<>*/ search_subformat_end + (str_ind$0 + 3 | 0, end_ind, 125), + str_ind$4 = + /*<>*/ sub_end$1 + 2 | 0; str_ind$0 = str_ind$4; continue; } - var str_ind$5 = str_ind$0 + 3 | 0; + var + str_ind$5 = /*<>*/ str_ind$0 + 3 | 0; str_ind$0 = str_ind$5; continue; } } else{ - if(40 === match){ - /*<>*/ var - /*<>*/ sub_end$2 = - search_subformat_end(str_ind$0 + 2 | 0, end_ind, 41), - /*<>*/ str_ind$6 = sub_end$2 + 2 | 0; + /*<>*/ if(40 === match){ + var + sub_end$2 = + /*<>*/ search_subformat_end + (str_ind$0 + 2 | 0, end_ind, 41), + str_ind$6 = /*<>*/ sub_end$2 + 2 | 0; str_ind$0 = str_ind$6; continue; } - if(41 === match) + /*<>*/ if(41 === match) /*<>*/ return expected_character - (str_ind$0 + 1 | 0, cst_character$0, 41); + (str_ind$0 + 1 | 0, cst_character$0, 41) /*<>*/ ; } - var str_ind$1 = str_ind$0 + 2 | 0; + var + str_ind$1 = /*<>*/ str_ind$0 + 2 | 0; str_ind$0 = str_ind$1; } - else{var str_ind$7 = str_ind$0 + 1 | 0; str_ind$0 = str_ind$7;} + else{ + var + str_ind$7 = /*<>*/ str_ind$0 + 1 | 0; + str_ind$0 = str_ind$7; + } } /*<>*/ } function compute_int_conv(pct_ind, str_ind, plus, hash, space, symb){ - /*<>*/ var - plus$0 = plus, + var + plus$0 = /*<>*/ plus, hash$0 = hash, space$0 = space; - /*<>*/ for(;;){ + for(;;){ a: { if(plus$0){ if(! hash$0){ if(space$0) break a; if(100 === symb) /*<>*/ return 1; - if(105 === symb) /*<>*/ return 4; + /*<>*/ if(105 === symb) + /*<>*/ return 4; break a; } } else{ - if(! hash$0){ + /*<>*/ if(! hash$0){ if(space$0){ if(100 === symb) /*<>*/ return 2; - if(105 === symb) /*<>*/ return 5; + /*<>*/ if(105 === symb) + /*<>*/ return 5; break a; } - var switcher$1 = symb - 88 | 0; + var switcher$1 = /*<>*/ symb - 88 | 0; if(32 < switcher$1 >>> 0) break a; switch(switcher$1){ case 0: @@ -20217,7 +20703,7 @@ default: break a; } } - if(! space$0){ + /*<>*/ if(! space$0){ var switcher$0 = symb - 88 | 0; if(32 >= switcher$0 >>> 0) switch(switcher$0){ @@ -20236,103 +20722,111 @@ } } } - var switcher = symb - 88 | 0; + var switcher = /*<>*/ symb - 88 | 0; if(32 >= switcher >>> 0) switch(switcher){ case 0: - if(legacy_behavior$0) + /*<>*/ if(legacy_behavior$0) /*<>*/ return 9; break; case 23: - if(legacy_behavior$0) + /*<>*/ if(legacy_behavior$0) /*<>*/ return 11; break; case 32: - if(legacy_behavior$0) + /*<>*/ if(legacy_behavior$0) /*<>*/ return 7; break; case 12: case 17: case 29: - if(! legacy_behavior$0) + /*<>*/ if(! legacy_behavior$0) /*<>*/ return incompatible_flag - (pct_ind, str_ind, symb, cst$35); - hash$0 = 0; + (pct_ind, str_ind, symb, cst$35) /*<>*/ ; + /*<>*/ hash$0 = 0; continue; } } - if(plus$0) + /*<>*/ if(plus$0) if(space$0){ - if(! legacy_behavior$0) + /*<>*/ if(! legacy_behavior$0) /*<>*/ return incompatible_flag - (pct_ind, str_ind, 32, cst$32); - space$0 = 0; + (pct_ind, str_ind, 32, cst$32) /*<>*/ ; + /*<>*/ space$0 = 0; } else{ - if(! legacy_behavior$0) + /*<>*/ if(! legacy_behavior$0) /*<>*/ return incompatible_flag - (pct_ind, str_ind, symb, cst$33); - plus$0 = 0; + (pct_ind, str_ind, symb, cst$33) /*<>*/ ; + /*<>*/ plus$0 = 0; } else{ - if(! space$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! space$0) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _W_], 1); - if(! legacy_behavior$0) + /*<>*/ if(! legacy_behavior$0) /*<>*/ return incompatible_flag - (pct_ind, str_ind, symb, cst$34); - space$0 = 0; + (pct_ind, str_ind, symb, cst$34) /*<>*/ ; + /*<>*/ space$0 = 0; } } /*<>*/ } function incompatible_flag(pct_ind, str_ind, symb, option){ - /*<>*/ /*<>*/ var + var subfmt = /*<>*/ caml_call3 (Stdlib_String[16], str, pct_ind, str_ind - pct_ind | 0); - /*<>*/ return /*<>*/ caml_call5 - (failwith_message(_Y_), str, pct_ind, option, symb, subfmt); - /*<>*/ } - return parse(0, caml_ml_string_length(str)); + /*<>*/ return caml_call5 + (failwith_message(_Y_), str, pct_ind, option, symb, subfmt) /*<>*/ ; + } + /*<>*/ return parse + (0, caml_ml_string_length(str)); } function format_of_string_fmtty(str, fmtty){ - /*<>*/ var - fmt = fmt_ebb_of_string(0, str)[1]; + var + fmt = /*<>*/ fmt_ebb_of_string(0, str)[1]; /*<>*/ try{ - /*<>*/ /*<>*/ var - _ae_ = [0, type_format(fmt, fmtty), str]; - /*<>*/ return _ae_; + var + _ae_ = + /*<>*/ [0, + type_format(fmt, fmtty), + str]; + return _ae_; } catch(_af_){ - var _ac_ = caml_wrap_exception(_af_); + var _ac_ = /*<>*/ caml_wrap_exception(_af_); if(_ac_ !== Type_mismatch) throw caml_maybe_attach_backtrace(_ac_, 0); - /*<>*/ /*<>*/ var - _ad_ = string_of_fmtty(fmtty); - /*<>*/ return /*<>*/ caml_call2 + var _ad_ = /*<>*/ string_of_fmtty(fmtty); + /*<>*/ return caml_call2 (failwith_message(_Z_), str, _ad_); } - /*<>*/ } + } function format_of_string_format(str, param){ var - str$0 = param[2], + str$0 = /*<>*/ param[2], fmt = param[1], - fmt$0 = fmt_ebb_of_string(0, str)[1]; + fmt$0 = + /*<>*/ fmt_ebb_of_string(0, str)[1]; /*<>*/ try{ - /*<>*/ /*<>*/ var - _aa_ = [0, type_format(fmt$0, fmtty_of_fmt(fmt)), str]; - /*<>*/ return _aa_; + var + _aa_ = + /*<>*/ [0, + /*<>*/ type_format + (fmt$0, /*<>*/ fmtty_of_fmt(fmt)), + str]; + return _aa_; } catch(_ab_){ - var _$_ = caml_wrap_exception(_ab_); + var _$_ = /*<>*/ caml_wrap_exception(_ab_); if(_$_ === Type_mismatch) - /*<>*/ return /*<>*/ caml_call2 - (failwith_message(___), str, str$0); - throw caml_maybe_attach_backtrace(_$_, 0); + /*<>*/ return caml_call2 + (failwith_message(___), str, str$0) /*<>*/ ; + /*<>*/ throw caml_maybe_attach_backtrace(_$_, 0); } - } + /*<>*/ } var CamlinternalFormat = - [0, + /*<>*/ [0, is_in_char_set, rev_char_set, create_char_set, @@ -20358,7 +20852,7 @@ recast]; runtime.caml_register_global(197, CamlinternalFormat, "CamlinternalFormat"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Printf @@ -20367,17 +20861,17 @@ (globalThis){ "use strict"; var runtime = globalThis.jsoo_runtime; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); @@ -20388,79 +20882,77 @@ CamlinternalFormat = global_data.CamlinternalFormat, Stdlib = global_data.Stdlib; function kfprintf(k, o, param){ - var fmt = param[1]; - /*<>*/ return /*<>*/ caml_call3 + var fmt = /*<>*/ param[1]; + /*<>*/ return caml_call3 (CamlinternalFormat[7], function(acc){ - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (CamlinternalFormat[9], o, acc); - return caml_call1(k, o); - /*<>*/ }, + /*<>*/ return caml_call1(k, o) /*<>*/ ; + }, 0, - fmt); + fmt) /*<>*/ ; } function kbprintf(k, b, param){ - var fmt = param[1]; - /*<>*/ return /*<>*/ caml_call3 + var fmt = /*<>*/ param[1]; + /*<>*/ return caml_call3 (CamlinternalFormat[7], function(acc){ - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (CamlinternalFormat[10], b, acc); - return caml_call1(k, b); - /*<>*/ }, + /*<>*/ return caml_call1(k, b) /*<>*/ ; + }, 0, - fmt); + fmt) /*<>*/ ; } function ikfprintf(k, oc, param){ - var fmt = param[1]; - /*<>*/ return /*<>*/ caml_call3 - (CamlinternalFormat[8], k, oc, fmt); + var fmt = /*<>*/ param[1]; + /*<>*/ return caml_call3 + (CamlinternalFormat[8], k, oc, fmt) /*<>*/ ; } function fprintf(oc, fmt){ /*<>*/ return kfprintf - (function(_d_){ /*<>*/ return 0;}, oc, fmt); - /*<>*/ } + (function(_d_){ /*<>*/ return 0;}, oc, fmt) /*<>*/ ; + } function bprintf(b, fmt){ /*<>*/ return kbprintf - (function(_c_){ /*<>*/ return 0;}, b, fmt); - /*<>*/ } + (function(_c_){ /*<>*/ return 0;}, b, fmt) /*<>*/ ; + } function ifprintf(oc, fmt){ /*<>*/ return ikfprintf - (function(_b_){ /*<>*/ return 0;}, oc, fmt); - /*<>*/ } + (function(_b_){ /*<>*/ return 0;}, oc, fmt) /*<>*/ ; + } function ibprintf(b, fmt){ /*<>*/ return ikfprintf - (function(_a_){ /*<>*/ return 0;}, b, fmt); - /*<>*/ } + (function(_a_){ /*<>*/ return 0;}, b, fmt) /*<>*/ ; + } function printf(fmt){ - /*<>*/ return fprintf(Stdlib[39], fmt); - /*<>*/ } + /*<>*/ return fprintf(Stdlib[39], fmt) /*<>*/ ; + } function eprintf(fmt){ - /*<>*/ return fprintf(Stdlib[40], fmt); - /*<>*/ } + /*<>*/ return fprintf(Stdlib[40], fmt) /*<>*/ ; + } function ksprintf(k, param){ - var fmt = param[1]; - /*<>*/ function k$0(acc){ - /*<>*/ /*<>*/ var - buf = /*<>*/ caml_call1(Stdlib_Buffer[1], 64); - /*<>*/ /*<>*/ caml_call2 - (CamlinternalFormat[11], buf, acc); - /*<>*/ return /*<>*/ caml_call1 - (k, /*<>*/ caml_call1(Stdlib_Buffer[2], buf)); - /*<>*/ } - /*<>*/ return /*<>*/ caml_call3 - (CamlinternalFormat[7], k$0, 0, fmt); + var fmt = /*<>*/ param[1]; + function k$0(acc){ + var buf = /*<>*/ caml_call1(Stdlib_Buffer[1], 64); + /*<>*/ caml_call2(CamlinternalFormat[11], buf, acc); + /*<>*/ return /*<>*/ caml_call1 + (k, /*<>*/ caml_call1(Stdlib_Buffer[2], buf)) /*<>*/ ; + } + /*<>*/ return caml_call3 + (CamlinternalFormat[7], k$0, 0, fmt) /*<>*/ ; } function sprintf(fmt){ /*<>*/ return ksprintf (function(s){ /*<>*/ return s; /*<>*/ }, - fmt); - /*<>*/ } + fmt) /*<>*/ ; + } var Stdlib_Printf = - [0, + /*<>*/ [0, fprintf, printf, eprintf, @@ -20476,7 +20968,7 @@ ksprintf]; runtime.caml_register_global(3, Stdlib_Printf, "Stdlib__Printf"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Dynarray @@ -20496,27 +20988,27 @@ caml_make_vect = runtime.caml_make_vect, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); @@ -20642,45 +21134,45 @@ cst_to_seq = "to_seq", cst_to_seq_rev = "to_seq_rev"; function negative_length_requested(f, n){ - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Printf[10], Stdlib[1], _c_, f, n); - /*<>*/ } + /*<>*/ return caml_call4 + (Stdlib_Printf[10], Stdlib[1], _c_, f, n) /*<>*/ ; + } function negative_capacity_requested(f, n){ - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Printf[10], Stdlib[1], _d_, f, n); - /*<>*/ } + /*<>*/ return caml_call4 + (Stdlib_Printf[10], Stdlib[1], _d_, f, n) /*<>*/ ; + } function missing_element(i, length){ - /*<>*/ return /*<>*/ caml_call5 + /*<>*/ return caml_call5 (Stdlib_Printf[10], Stdlib[1], _f_, invalid_state_description, i, - length); - /*<>*/ } + length) /*<>*/ ; + } function unexpected_empty_element(f, i, length){ /*<>*/ return i < length - ? missing_element(i, length) + ? /*<>*/ missing_element(i, length) : 0 === length ? /*<>*/ caml_call4 (Stdlib_Printf[10], Stdlib[1], _a_, f, i) : /*<>*/ caml_call5 - (Stdlib_Printf[10], Stdlib[1], _b_, f, i, length - 1 | 0); - /*<>*/ } + (Stdlib_Printf[10], Stdlib[1], _b_, f, i, length - 1 | 0) /*<>*/ ; + } function check_same_length(f, a, expected){ - /*<>*/ var - length_a = a[1], - _W_ = expected !== length_a ? 1 : 0; + var + length_a = /*<>*/ a[1], + _W_ = /*<>*/ expected !== length_a ? 1 : 0; return _W_ ? /*<>*/ caml_call5 (Stdlib_Printf[10], Stdlib[1], _h_, f, expected, length_a) - : _W_; - /*<>*/ } + : _W_ /*<>*/ ; + } function check_valid_length(length, arr){ - /*<>*/ var - capacity = arr.length - 1, - _V_ = capacity < length ? 1 : 0; + var + capacity = /*<>*/ arr.length - 1, + _V_ = /*<>*/ capacity < length ? 1 : 0; return _V_ ? /*<>*/ caml_call5 (Stdlib_Printf[10], @@ -20689,12 +21181,13 @@ invalid_state_description, length, capacity) - : _V_; - /*<>*/ } + : _V_ /*<>*/ ; + } function unsafe_get(arr, i, length){ - /*<>*/ var match = arr[1 + i]; - if(! match) /*<>*/ return missing_element(i, length); - var v = match[1]; + var match = /*<>*/ arr[1 + i]; + if(! match) + /*<>*/ return missing_element(i, length) /*<>*/ ; + var v = /*<>*/ match[1]; /*<>*/ return v; /*<>*/ } function create(param){ @@ -20703,40 +21196,41 @@ function make(n, x){ /*<>*/ if(n < 0) /*<>*/ negative_length_requested(cst_make, n); - /*<>*/ return [0, + /*<>*/ return [0, n, - /*<>*/ caml_call2 + caml_call2 (Stdlib_Array[1], n, function(param){ /*<>*/ return [0, x]; - /*<>*/ })]; + /*<>*/ })] /*<>*/ ; /*<>*/ } function init(n, f){ /*<>*/ if(n < 0) /*<>*/ negative_length_requested(cst_init, n); - /*<>*/ return [0, + /*<>*/ return [0, n, - /*<>*/ caml_call2 + caml_call2 (Stdlib_Array[1], n, function(i){ - /*<>*/ return [0, - /*<>*/ caml_call1(f, i)]; - /*<>*/ })]; + /*<>*/ return [0, caml_call1(f, i)] /*<>*/ ; + /*<>*/ })] /*<>*/ ; /*<>*/ } function get(a, i){ - /*<>*/ /*<>*/ var - match = caml_check_bound(a[2], i)[1 + i]; - return match ? match[1] : unexpected_empty_element(cst_get, i, a[1]); - /*<>*/ } + var match = /*<>*/ caml_check_bound(a[2], i)[1 + i]; + /*<>*/ return match + ? match[1] + : /*<>*/ unexpected_empty_element + (cst_get, i, a[1]) /*<>*/ ; + } function set(a, i, x){ - /*<>*/ /*<>*/ var - match = caml_check_bound(a[2], i)[1 + i]; - return match + var match = /*<>*/ caml_check_bound(a[2], i)[1 + i]; + /*<>*/ return match ? (match[1] = x, 0) - : unexpected_empty_element(cst_set, i, a[1]); - /*<>*/ } + : /*<>*/ unexpected_empty_element + (cst_set, i, a[1]) /*<>*/ ; + } function length(a){ /*<>*/ return a[1]; /*<>*/ } @@ -20744,132 +21238,135 @@ /*<>*/ return 0 === a[1] ? 1 : 0; /*<>*/ } function copy(param){ - var length = param[1], arr = param[2]; + var length = /*<>*/ param[1], arr = param[2]; /*<>*/ check_valid_length(length, arr); - /*<>*/ return [0, + /*<>*/ return [0, length, - /*<>*/ caml_call2 + caml_call2 (Stdlib_Array[1], length, function(i){ - /*<>*/ /*<>*/ var - v = unsafe_get(arr, i, length); - /*<>*/ return [0, v]; - /*<>*/ })]; - } + var v = /*<>*/ unsafe_get(arr, i, length); + /*<>*/ return [0, v]; + /*<>*/ })] /*<>*/ ; + /*<>*/ } function get_last(a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - if(0 === length) - /*<>*/ /*<>*/ caml_call3 + /*<>*/ if(0 === length) + /*<>*/ caml_call3 (Stdlib_Printf[10], Stdlib[1], _i_, f); - /*<>*/ return unsafe_get(arr, length - 1 | 0, length); - /*<>*/ } + /*<>*/ return unsafe_get(arr, length - 1 | 0, length) /*<>*/ ; + } function find_last(a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - return 0 === length ? 0 : [0, unsafe_get(arr, length - 1 | 0, length)]; - /*<>*/ } + /*<>*/ return 0 === length + ? 0 + : [0, + /*<>*/ unsafe_get + (arr, length - 1 | 0, length)] /*<>*/ ; + } function pop_last(a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - if(0 === length) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(0 === length) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ var - /*<>*/ last = length - 1 | 0, - match = arr[1 + last]; + var + last = /*<>*/ length - 1 | 0, + match = /*<>*/ arr[1 + last]; return match ? (arr[1 + last] = 0, a[1] = last, match[1]) - : missing_element(last, length); - /*<>*/ } + : /*<>*/ missing_element(last, length) /*<>*/ ; + } function pop_last_opt(a){ /*<>*/ try{ - /*<>*/ /*<>*/ var - x = pop_last(a); + var x = /*<>*/ pop_last(a); } catch(_U_){ - var _T_ = caml_wrap_exception(_U_); + var _T_ = /*<>*/ caml_wrap_exception(_U_); if(_T_ === Stdlib[8]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_T_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_T_, 0); } /*<>*/ return [0, x]; /*<>*/ } function remove_last(a){ - /*<>*/ var - /*<>*/ last = a[1] - 1 | 0, - _R_ = 0 <= last ? 1 : 0, + var + last = /*<>*/ a[1] - 1 | 0, + _R_ = /*<>*/ 0 <= last ? 1 : 0, _S_ = _R_ - ? (a[1] = last, caml_check_bound(a[2], last)[1 + last] = 0, 0) + ? (a + [1] + = last, + /*<>*/ caml_check_bound(a[2], last)[1 + last] = 0, + 0) : _R_; - /*<>*/ return _S_; + /*<>*/ return _S_; /*<>*/ } function truncate(a, n){ /*<>*/ if(n < 0) /*<>*/ negative_length_requested(cst_truncate, n); - var length = a[1], arr = a[2]; - return length <= n + var length = /*<>*/ a[1], arr = a[2]; + /*<>*/ return length <= n ? 0 : (a [1] = n, /*<>*/ caml_call4 - (Stdlib_Array[8], arr, n, length - n | 0, 0)); - /*<>*/ } + (Stdlib_Array[8], arr, n, length - n | 0, 0)) /*<>*/ ; + } function clear(a){ - /*<>*/ return truncate(a, 0); - /*<>*/ } + /*<>*/ return truncate(a, 0) /*<>*/ ; + } function capacity(a){ /*<>*/ return a[2].length - 1; /*<>*/ } function ensure_capacity(a, capacity_request){ - /*<>*/ var - arr = a[2], - /*<>*/ cur_capacity = arr.length - 1; + var + arr = /*<>*/ a[2], + cur_capacity = /*<>*/ arr.length - 1; /*<>*/ if(0 > capacity_request) /*<>*/ return negative_capacity_requested - (cst_ensure_capacity, capacity_request); - if(capacity_request <= cur_capacity) /*<>*/ return 0; - if(Stdlib_Sys[13] < capacity_request) - /*<>*/ /*<>*/ caml_call5 + (cst_ensure_capacity, capacity_request) /*<>*/ ; + /*<>*/ if(capacity_request <= cur_capacity) + /*<>*/ return 0; + /*<>*/ if(Stdlib_Sys[13] < capacity_request) + /*<>*/ caml_call5 (Stdlib_Printf[10], Stdlib[1], _e_, f$0, capacity_request, Stdlib_Sys[13]); - /*<>*/ var + var n = - 512 < cur_capacity + /*<>*/ 512 < cur_capacity ? cur_capacity + (cur_capacity / 2 | 0) | 0 : cur_capacity * 2 | 0, - _O_ = Stdlib_Sys[13], - /*<>*/ _P_ = - /*<>*/ caml_call2(Stdlib[17], 8, n), - /*<>*/ _Q_ = - /*<>*/ caml_call2(Stdlib[16], _P_, _O_), - /*<>*/ new_capacity = + _O_ = /*<>*/ Stdlib_Sys[13], + _P_ = caml_call2(Stdlib[17], 8, n), + _Q_ = /*<>*/ caml_call2(Stdlib[16], _P_, _O_), + new_capacity = /*<>*/ caml_call2 (Stdlib[17], _Q_, capacity_request), - /*<>*/ new_arr = - /*<>*/ caml_make_vect(new_capacity, 0); - /*<>*/ /*<>*/ caml_call5 + new_arr = /*<>*/ caml_make_vect(new_capacity, 0); + /*<>*/ caml_call5 (Stdlib_Array[9], arr, 0, new_arr, 0, a[1]); - a[2] = new_arr; - if(0 > capacity_request) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - ([0, Assert_failure, _k_], 1); - if(capacity_request <= new_arr.length - 1) return 0; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - ([0, Assert_failure, _j_], 1); + /*<>*/ a[2] = new_arr; + /*<>*/ if(0 > capacity_request) + throw caml_maybe_attach_backtrace([0, Assert_failure, _k_], 1); + /*<>*/ if(capacity_request <= new_arr.length - 1) + return 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _j_], 1); /*<>*/ } function ensure_extra_capacity(a, extra_capacity_request){ - /*<>*/ return ensure_capacity - (a, a[1] + extra_capacity_request | 0); - /*<>*/ } + /*<>*/ return ensure_capacity + (a, a[1] + extra_capacity_request | 0) /*<>*/ ; + } function fit_capacity(a){ - /*<>*/ var _N_ = a[1]; + var _N_ = /*<>*/ a[1]; return capacity(a) === _N_ ? 0 : (a @@ -20877,99 +21374,93 @@ = /*<>*/ caml_call3 (Stdlib_Array[6], a[2], 0, a[1]), - 0); - /*<>*/ } + 0) /*<>*/ ; + } function set_capacity(a, n){ /*<>*/ if(n < 0) /*<>*/ negative_capacity_requested (cst_set_capacity, n); - /*<>*/ var - arr = a[2], - /*<>*/ cur_capacity = arr.length - 1; - if(n < cur_capacity){ - a[1] = /*<>*/ caml_call2(Stdlib[16], a[1], n); - a[2] = /*<>*/ caml_call3(Stdlib_Array[6], arr, 0, n); - return 0; - } - var _L_ = cur_capacity < n ? 1 : 0; + var + arr = /*<>*/ a[2], + cur_capacity = /*<>*/ arr.length - 1; + /*<>*/ if(n < cur_capacity){ + /*<>*/ a[1] = caml_call2(Stdlib[16], a[1], n); + /*<>*/ a[2] = caml_call3(Stdlib_Array[6], arr, 0, n); + /*<>*/ return 0; + } + var _L_ = /*<>*/ cur_capacity < n ? 1 : 0; if(_L_){ - /*<>*/ /*<>*/ var - new_arr = /*<>*/ caml_make_vect(n, 0); - /*<>*/ /*<>*/ caml_call5 + var new_arr = /*<>*/ caml_make_vect(n, 0); + /*<>*/ caml_call5 (Stdlib_Array[9], arr, 0, new_arr, 0, a[1]); - a[2] = new_arr; + /*<>*/ a[2] = new_arr; var _M_ = 0; } else - var _M_ = _L_; + var _M_ = /*<>*/ _L_; return _M_; /*<>*/ } function reset(a){ /*<>*/ a[1] = 0; - a[2] = [0]; + /*<>*/ a[2] = [0]; return 0; /*<>*/ } function add_last_if_room(a, elem){ - /*<>*/ var length = a[1], arr = a[2]; - return arr.length - 1 <= length + var length = /*<>*/ a[1], arr = a[2]; + /*<>*/ return arr.length - 1 <= length ? 0 - : (a[1] = length + 1 | 0, arr[1 + length] = elem, 1); - /*<>*/ } + : (a[1] = length + 1 | 0, arr[1 + length] = elem, 1) /*<>*/ ; + } function add_last(a, x){ - /*<>*/ /*<>*/ var elem = [0, x]; + var elem = /*<>*/ [0, x]; /*<>*/ if(add_last_if_room(a, elem)) /*<>*/ return 0; - /*<>*/ for(;;){ + /*<>*/ for(;;){ /*<>*/ ensure_extra_capacity(a, 1); - /*<>*/ /*<>*/ var - _K_ = 1 - add_last_if_room(a, elem); - if(! _K_) /*<>*/ return _K_; + var _K_ = /*<>*/ 1 - add_last_if_room(a, elem); + /*<>*/ if(! _K_) return _K_; } /*<>*/ } function append_list(a, li){ - /*<>*/ var li$0 = li; - /*<>*/ for(;;){ + var li$0 = /*<>*/ li; + for(;;){ if(! li$0) /*<>*/ return 0; - var xs = li$0[2], x = li$0[1]; + var xs = /*<>*/ li$0[2], x = li$0[1]; /*<>*/ add_last(a, x); - li$0 = xs; + /*<>*/ li$0 = xs; } /*<>*/ } function append_iter(a, iter, b){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (iter, function(x){ - /*<>*/ return add_last(a, x); - /*<>*/ }, - b); - /*<>*/ } + /*<>*/ return add_last(a, x) /*<>*/ ; + }, + b) /*<>*/ ; + } function append_seq(a, seq){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], function(x){ - /*<>*/ return add_last(a, x); - /*<>*/ }, - seq); - /*<>*/ } + /*<>*/ return add_last(a, x) /*<>*/ ; + }, + seq) /*<>*/ ; + } function append_array_if_room(a, b){ - /*<>*/ var - length_a = a[1], + var + length_a = /*<>*/ a[1], arr = a[2], - /*<>*/ length_b = b.length - 1; - if(arr.length - 1 < (length_a + length_b | 0)) + length_b = /*<>*/ b.length - 1; + /*<>*/ if(arr.length - 1 < (length_a + length_b | 0)) /*<>*/ return 0; - a[1] = length_a + length_b | 0; - /*<>*/ var - /*<>*/ _I_ = length_b - 1 | 0, - /*<>*/ _H_ = 0; + /*<>*/ a[1] = length_a + length_b | 0; + var _I_ = /*<>*/ length_b - 1 | 0, _H_ = 0; if(_I_ >= 0){ var i = _H_; for(;;){ - /*<>*/ /*<>*/ var - x = b[1 + i]; - arr[1 + (length_a + i | 0)] = [0, x]; - /*<>*/ /*<>*/ var - _J_ = i + 1 | 0; + var x = /*<>*/ b[1 + i]; + /*<>*/ arr[1 + (length_a + i | 0)] = [0, x]; + var _J_ = i + 1 | 0; if(_I_ === i) break; i = _J_; } @@ -20977,184 +21468,172 @@ /*<>*/ return 1; /*<>*/ } function append_array(a, b){ - /*<>*/ if(append_array_if_room(a, b)) + /*<>*/ if(append_array_if_room(a, b)) /*<>*/ return 0; - /*<>*/ for(;;){ + /*<>*/ for(;;){ /*<>*/ ensure_extra_capacity(a, b.length - 1); - /*<>*/ /*<>*/ var - _G_ = 1 - append_array_if_room(a, b); - if(! _G_) /*<>*/ return _G_; + var _G_ = /*<>*/ 1 - append_array_if_room(a, b); + /*<>*/ if(! _G_) return _G_; } /*<>*/ } function append_if_room(a, b, length_b){ - /*<>*/ var length_a = a[1], arr_a = a[2]; - if(arr_a.length - 1 < (length_a + length_b | 0)) + var length_a = /*<>*/ a[1], arr_a = a[2]; + /*<>*/ if + (arr_a.length - 1 < (length_a + length_b | 0)) /*<>*/ return 0; - a[1] = length_a + length_b | 0; - var arr_b = b[2]; + /*<>*/ a[1] = length_a + length_b | 0; + var arr_b = /*<>*/ b[2]; /*<>*/ check_valid_length(length_b, arr_b); - /*<>*/ var - _E_ = length_b - 1 | 0, - /*<>*/ _D_ = 0; + var _E_ = /*<>*/ length_b - 1 | 0, _D_ = 0; if(_E_ >= 0){ var i = _D_; for(;;){ - /*<>*/ /*<>*/ var - x = unsafe_get(arr_b, i, length_b); - arr_a[1 + (length_a + i | 0)] = [0, x]; - /*<>*/ /*<>*/ var - _F_ = i + 1 | 0; + var x = /*<>*/ unsafe_get(arr_b, i, length_b); + /*<>*/ arr_a[1 + (length_a + i | 0)] = [0, x]; + var _F_ = i + 1 | 0; if(_E_ === i) break; i = _F_; } } /*<>*/ check_same_length(cst_append, b, length_b); - /*<>*/ return 1; + /*<>*/ return 1; /*<>*/ } function append(a, b){ - /*<>*/ var length_b = b[1]; + var length_b = /*<>*/ b[1]; /*<>*/ if(append_if_room(a, b, length_b)) /*<>*/ return 0; - /*<>*/ for(;;){ + /*<>*/ for(;;){ /*<>*/ ensure_extra_capacity(a, length_b); /*<>*/ check_same_length(cst_append$0, b, length_b); - /*<>*/ /*<>*/ var - _C_ = 1 - append_if_room(a, b, length_b); - if(! _C_) /*<>*/ return _C_; + var _C_ = /*<>*/ 1 - append_if_room(a, b, length_b); + /*<>*/ if(! _C_) return _C_; } /*<>*/ } function iter(f, k, a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - /*<>*/ var - _A_ = length - 1 | 0, - /*<>*/ _z_ = 0; + var _A_ = /*<>*/ length - 1 | 0, _z_ = 0; if(_A_ >= 0){ var i = _z_; for(;;){ - /*<>*/ /*<>*/ caml_call1 - (k, unsafe_get(arr, i, length)); - /*<>*/ /*<>*/ var - _B_ = i + 1 | 0; + /*<>*/ /*<>*/ caml_call1 + (k, /*<>*/ unsafe_get(arr, i, length)); + var _B_ = /*<>*/ i + 1 | 0; if(_A_ === i) break; i = _B_; } } - /*<>*/ return check_same_length(f, a, length); - /*<>*/ } + /*<>*/ return check_same_length(f, a, length) /*<>*/ ; + } function iter$0(k, a){ - /*<>*/ return iter(cst_iter, k, a); - /*<>*/ } + /*<>*/ return iter(cst_iter, k, a) /*<>*/ ; + } function iteri(k, a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - /*<>*/ var - _x_ = length - 1 | 0, - /*<>*/ _w_ = 0; + var _x_ = /*<>*/ length - 1 | 0, _w_ = 0; if(_x_ >= 0){ var i = _w_; for(;;){ - /*<>*/ /*<>*/ caml_call2 - (k, i, unsafe_get(arr, i, length)); - /*<>*/ /*<>*/ var - _y_ = i + 1 | 0; + /*<>*/ /*<>*/ caml_call2 + (k, i, /*<>*/ unsafe_get(arr, i, length)); + var _y_ = /*<>*/ i + 1 | 0; if(_x_ === i) break; i = _y_; } } - /*<>*/ return check_same_length(cst_iteri, a, length); - /*<>*/ } + /*<>*/ return check_same_length(cst_iteri, a, length) /*<>*/ ; + } function map(f, a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - /*<>*/ /*<>*/ var + var res = - [0, + /*<>*/ [0, length, - /*<>*/ caml_call2 + caml_call2 (Stdlib_Array[1], length, function(i){ - /*<>*/ return [0, + /*<>*/ return [0, /*<>*/ caml_call1 - (f, unsafe_get(arr, i, length))]; + (f, /*<>*/ unsafe_get(arr, i, length))] /*<>*/ ; /*<>*/ })]; /*<>*/ check_same_length(cst_map, a, length); - /*<>*/ return res; + /*<>*/ return res; /*<>*/ } function mapi(f, a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - /*<>*/ /*<>*/ var + var res = - [0, + /*<>*/ [0, length, - /*<>*/ caml_call2 + caml_call2 (Stdlib_Array[1], length, function(i){ - /*<>*/ return [0, + /*<>*/ return [0, /*<>*/ caml_call2 - (f, i, unsafe_get(arr, i, length))]; + (f, + i, + /*<>*/ unsafe_get(arr, i, length))] /*<>*/ ; /*<>*/ })]; /*<>*/ check_same_length(cst_mapi, a, length); - /*<>*/ return res; + /*<>*/ return res; /*<>*/ } function fold_left(f, acc, a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - /*<>*/ var - /*<>*/ r = [0, acc], - /*<>*/ _u_ = length - 1 | 0, - /*<>*/ _t_ = 0; + var + r = /*<>*/ [0, acc], + _u_ = /*<>*/ length - 1 | 0, + _t_ = 0; if(_u_ >= 0){ var i = _t_; for(;;){ - /*<>*/ /*<>*/ var - v = unsafe_get(arr, i, length); - r[1] = /*<>*/ caml_call2(f, r[1], v); - /*<>*/ /*<>*/ var - _v_ = i + 1 | 0; + var v = /*<>*/ unsafe_get(arr, i, length); + /*<>*/ r[1] = caml_call2(f, r[1], v); + var _v_ = /*<>*/ i + 1 | 0; if(_u_ === i) break; i = _v_; } } /*<>*/ check_same_length(cst_fold_left, a, length); - return r[1]; + /*<>*/ return r[1]; /*<>*/ } function fold_right(f, a, acc){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - /*<>*/ var - /*<>*/ r = [0, acc], - /*<>*/ _r_ = length - 1 | 0; + var + r = /*<>*/ [0, acc], + _r_ = /*<>*/ length - 1 | 0; if(_r_ >= 0){ var i = _r_; for(;;){ - /*<>*/ /*<>*/ var - v = unsafe_get(arr, i, length); - r[1] = /*<>*/ caml_call2(f, v, r[1]); - /*<>*/ /*<>*/ var - _s_ = i - 1 | 0; + var v = /*<>*/ unsafe_get(arr, i, length); + /*<>*/ r[1] = caml_call2(f, v, r[1]); + var _s_ = /*<>*/ i - 1 | 0; if(0 === i) break; i = _s_; } } /*<>*/ check_same_length(cst_fold_right, a, length); - return r[1]; + /*<>*/ return r[1]; /*<>*/ } function exists(p, a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - var i = 0; - /*<>*/ for(;;){ - if(i === length) - var res = 0; + var i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === length) + var res = /*<>*/ 0; else{ - /*<>*/ /*<>*/ var + var _q_ = - /*<>*/ caml_call1(p, unsafe_get(arr, i, length)); - /*<>*/ if(! _q_){ + /*<>*/ /*<>*/ caml_call1 + (p, /*<>*/ unsafe_get(arr, i, length)); + /*<>*/ if(! _q_){ var i$0 = i + 1 | 0; i = i$0; continue; @@ -21162,21 +21641,22 @@ var res = _q_; } /*<>*/ check_same_length(cst_exists, a, length); - /*<>*/ return res; + /*<>*/ return res; } /*<>*/ } function for_all(p, a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - var i = 0; - /*<>*/ for(;;){ - if(i === length) - var res = 1; + var i = /*<>*/ 0; + for(;;){ + /*<>*/ if(i === length) + var res = /*<>*/ 1; else{ - /*<>*/ /*<>*/ var + var _p_ = - /*<>*/ caml_call1(p, unsafe_get(arr, i, length)); - /*<>*/ if(_p_){ + /*<>*/ /*<>*/ caml_call1 + (p, /*<>*/ unsafe_get(arr, i, length)); + /*<>*/ if(_p_){ var i$0 = i + 1 | 0; i = i$0; continue; @@ -21184,148 +21664,146 @@ var res = _p_; } /*<>*/ check_same_length(cst_for_all, a, length); - /*<>*/ return res; + /*<>*/ return res; } /*<>*/ } function filter(f, a){ - /*<>*/ /*<>*/ var b = create(0); + var b = /*<>*/ create(0); /*<>*/ iter (cst_filter, function(x){ - /*<>*/ /*<>*/ var - _o_ = /*<>*/ caml_call1(f, x); - /*<>*/ return _o_ ? add_last(b, x) : _o_; - /*<>*/ }, + var _o_ = /*<>*/ caml_call1(f, x); + /*<>*/ return _o_ + ? /*<>*/ add_last(b, x) + : _o_ /*<>*/ ; + }, a); - /*<>*/ return b; + /*<>*/ return b; /*<>*/ } function filter_map(f, a){ - /*<>*/ /*<>*/ var b = create(0); + var b = /*<>*/ create(0); /*<>*/ iter (cst_filter_map, function(x){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(f, x); - if(! match) /*<>*/ return 0; - var y = match[1]; - /*<>*/ return add_last(b, y); - /*<>*/ }, + var match = /*<>*/ caml_call1(f, x); + /*<>*/ if(! match) + /*<>*/ return 0; + var y = /*<>*/ match[1]; + /*<>*/ return add_last(b, y) /*<>*/ ; + }, a); - /*<>*/ return b; + /*<>*/ return b; /*<>*/ } function of_array(a){ - /*<>*/ var length = a.length - 1; - /*<>*/ return [0, + var length = /*<>*/ a.length - 1; + /*<>*/ return [0, length, - /*<>*/ caml_call2 + caml_call2 (Stdlib_Array[1], length, function(i){ - /*<>*/ return [0, a[1 + i]]; - /*<>*/ })]; + /*<>*/ return [0, a[1 + i]]; + /*<>*/ })] /*<>*/ ; /*<>*/ } function to_array(a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - /*<>*/ /*<>*/ var + var res = /*<>*/ caml_call2 (Stdlib_Array[1], length, function(i){ - /*<>*/ return unsafe_get(arr, i, length); - /*<>*/ }); + /*<>*/ return unsafe_get(arr, i, length) /*<>*/ ; + }); /*<>*/ check_same_length(cst_to_array, a, length); - /*<>*/ return res; + /*<>*/ return res; /*<>*/ } function of_list(li){ - /*<>*/ /*<>*/ var a = create(0); - /*<>*/ /*<>*/ caml_call2 + var a = /*<>*/ create(0); + /*<>*/ caml_call2 (Stdlib_List[18], function(x){ - /*<>*/ return add_last(a, x); - /*<>*/ }, + /*<>*/ return add_last(a, x) /*<>*/ ; + }, li); - /*<>*/ return a; + /*<>*/ return a; /*<>*/ } function to_list(a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); - /*<>*/ var - /*<>*/ l = [0, 0], - /*<>*/ _l_ = length - 1 | 0; + var + l = /*<>*/ [0, 0], + _l_ = /*<>*/ length - 1 | 0; if(_l_ >= 0){ var i = _l_; for(;;){ - var _m_ = l[1]; + var _m_ = /*<>*/ l[1]; l[1] = [0, unsafe_get(arr, i, length), _m_]; - /*<>*/ /*<>*/ var - _n_ = i - 1 | 0; + var _n_ = /*<>*/ i - 1 | 0; if(0 === i) break; i = _n_; } } /*<>*/ check_same_length(cst_to_list, a, length); - return l[1]; + /*<>*/ return l[1]; /*<>*/ } function of_seq(seq){ - /*<>*/ /*<>*/ var - init = create(0); + var init = /*<>*/ create(0); /*<>*/ append_seq(init, seq); - /*<>*/ return init; + /*<>*/ return init; /*<>*/ } function to_seq(a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); function aux(i){ /*<>*/ return function(param){ /*<>*/ check_same_length(cst_to_seq, a, length); - if(length <= i) /*<>*/ return 0; - /*<>*/ /*<>*/ var - v = unsafe_get(arr, i, length); - /*<>*/ return [0, v, aux(i + 1 | 0)]; /*<>*/ }; + /*<>*/ if(length <= i) + /*<>*/ return 0; + var v = /*<>*/ unsafe_get(arr, i, length); + /*<>*/ return [0, v, aux(i + 1 | 0)] /*<>*/ ; /*<>*/ } /*<>*/ ; /*<>*/ } - /*<>*/ return aux(0); - /*<>*/ } + /*<>*/ return aux(0) /*<>*/ ; + } function to_seq_reentrant(a){ function aux(i){ /*<>*/ return function(param){ - /*<>*/ if(a[1] <= i) + /*<>*/ if(a[1] <= i) /*<>*/ return 0; - /*<>*/ /*<>*/ var - v = get(a, i); - /*<>*/ return [0, v, aux(i + 1 | 0)]; /*<>*/ }; + var v = /*<>*/ get(a, i); + /*<>*/ return [0, v, aux(i + 1 | 0)] /*<>*/ ; /*<>*/ } /*<>*/ ; /*<>*/ } - /*<>*/ return aux(0); - /*<>*/ } + /*<>*/ return aux(0) /*<>*/ ; + } function to_seq_rev(a){ - /*<>*/ var length = a[1], arr = a[2]; + var length = /*<>*/ a[1], arr = a[2]; /*<>*/ check_valid_length(length, arr); function aux(i){ /*<>*/ return function(param){ /*<>*/ check_same_length(cst_to_seq_rev, a, length); - if(0 > i) /*<>*/ return 0; - /*<>*/ /*<>*/ var - v = unsafe_get(arr, i, length); - /*<>*/ return [0, v, aux(i - 1 | 0)]; /*<>*/ }; + /*<>*/ if(0 > i) + /*<>*/ return 0; + var v = /*<>*/ unsafe_get(arr, i, length); + /*<>*/ return [0, v, aux(i - 1 | 0)] /*<>*/ ; /*<>*/ } /*<>*/ ; /*<>*/ } - /*<>*/ return aux(length - 1 | 0); - /*<>*/ } + /*<>*/ return aux(length - 1 | 0) /*<>*/ ; + } function to_seq_rev_reentrant(a){ function aux(i){ /*<>*/ return function(param){ /*<>*/ if(0 > i) /*<>*/ return 0; - if(a[1] <= i) /*<>*/ return aux(a[1] - 1 | 0)(0); - /*<>*/ /*<>*/ var - v = get(a, i); - /*<>*/ return [0, v, aux(i - 1 | 0)]; /*<>*/ }; + /*<>*/ if(a[1] <= i) + /*<>*/ return aux(a[1] - 1 | 0)(0) /*<>*/ ; + var v = /*<>*/ get(a, i); + /*<>*/ return [0, v, aux(i - 1 | 0)] /*<>*/ ; /*<>*/ } /*<>*/ ; /*<>*/ } - /*<>*/ return aux(a[1] - 1 | 0); - /*<>*/ } + /*<>*/ return aux(a[1] - 1 | 0) /*<>*/ ; + } var Stdlib_Dynarray = - [0, + /*<>*/ [0, create, make, init, @@ -21374,7 +21852,7 @@ reset]; runtime.caml_register_global(44, Stdlib_Dynarray, "Stdlib__Dynarray"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Arg @@ -21401,37 +21879,37 @@ caml_string_get = runtime.caml_string_get, caml_sys_argv = runtime.caml_sys_argv, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); } - /*<>*/ function caml_call6(f, a0, a1, a2, a3, a4, a5){ + function caml_call6(f, a0, a1, a2, a3, a4, a5){ return (f.l >= 0 ? f.l : f.l = f.length) === 6 ? f(a0, a1, a2, a3, a4, a5) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); } - /*<>*/ var + var global_data = runtime.caml_get_global_data(), cst$7 = "\n", cst$4 = cst$8, @@ -21449,9 +21927,9 @@ Stdlib_List = global_data.Stdlib__List, Stdlib_String = global_data.Stdlib__String, Stdlib_Int = global_data.Stdlib__Int, - /*<>*/ Bad = [248, "Stdlib.Arg.Bad", caml_fresh_oo_id(0)], - /*<>*/ Help = [248, "Stdlib.Arg.Help", caml_fresh_oo_id(0)], - /*<>*/ Stop = [248, "Stdlib.Arg.Stop", caml_fresh_oo_id(0)], + Bad = [248, "Stdlib.Arg.Bad", caml_fresh_oo_id(0)], + Help = [248, "Stdlib.Arg.Help", caml_fresh_oo_id(0)], + Stop = [248, "Stdlib.Arg.Stop", caml_fresh_oo_id(0)], cst_none = "", _a_ = [0, [11, cst$10, [2, 0, [12, 32, [2, 0, [12, 10, 0]]]]], " %s %s\n"], @@ -21469,116 +21947,102 @@ _d_ = [0, [2, 0, [12, 10, 0]], "%s\n"], _e_ = [0, [2, 0, 0], cst_s]; function assoc3(x, l){ - /*<>*/ var l$0 = l; - /*<>*/ for(;;){ + var l$0 = /*<>*/ l; + for(;;){ if(! l$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Stdlib[8], 1); - var match = l$0[1], y2 = match[2], y1 = match[1]; - /*<>*/ if( /*<>*/ caml_equal(y1, x)) + /*<>*/ throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var match = /*<>*/ l$0[1], y2 = match[2], y1 = match[1]; + /*<>*/ if(caml_equal(y1, x)) /*<>*/ return y2; - var t = l$0[2]; - l$0 = t; + var t = /*<>*/ l$0[2]; + /*<>*/ l$0 = t; } /*<>*/ } function make_symlist(prefix, sep, suffix, l){ /*<>*/ if(! l) /*<>*/ return cst_none; - /*<>*/ var - t = l[2], + var + t = /*<>*/ l[2], h = l[1], - /*<>*/ _az_ = - /*<>*/ caml_call2(Stdlib[28], prefix, h), - /*<>*/ _aA_ = + _az_ = /*<>*/ caml_call2(Stdlib[28], prefix, h), + _aA_ = /*<>*/ caml_call3 (Stdlib_List[26], function(x, y){ - /*<>*/ /*<>*/ var - _aB_ = /*<>*/ caml_call2(Stdlib[28], sep, y); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[28], x, _aB_); - /*<>*/ }, + var _aB_ = /*<>*/ caml_call2(Stdlib[28], sep, y); + /*<>*/ return caml_call2(Stdlib[28], x, _aB_); + }, _az_, t); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[28], _aA_, suffix); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib[28], _aA_, suffix) /*<>*/ ; + } function help_action(param){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - ([0, Stop, _c_], 1); + /*<>*/ throw caml_maybe_attach_backtrace([0, Stop, _c_], 1); /*<>*/ } function add_help(speclist){ /*<>*/ try{ /*<>*/ assoc3(cst_help$2, speclist); - /*<>*/ var /*<>*/ _aw_ = 0, add1 = _aw_; + var _aw_ = /*<>*/ 0, add1 = _aw_; } catch(_ay_){ - var _as_ = caml_wrap_exception(_ay_); + var _as_ = /*<>*/ caml_wrap_exception(_ay_); if(_as_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_as_, 0); var add1 = - [0, + /*<>*/ [0, [0, cst_help, [0, help_action], cst_Display_this_list_of_optio], 0]; } - try{ + /*<>*/ try{ /*<>*/ assoc3(cst_help$1, speclist); - /*<>*/ var /*<>*/ _av_ = 0, add2 = _av_; + var _av_ = /*<>*/ 0, add2 = _av_; } catch(_ax_){ - var _at_ = caml_wrap_exception(_ax_); + var _at_ = /*<>*/ caml_wrap_exception(_ax_); if(_at_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_at_, 0); var add2 = - [0, + /*<>*/ [0, [0, cst_help$0, [0, help_action], cst_Display_this_list_of_optio$0], 0]; } - /*<>*/ /*<>*/ var - _au_ = /*<>*/ caml_call2(Stdlib[37], add1, add2); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[37], speclist, _au_); - /*<>*/ } + var _au_ = /*<>*/ caml_call2(Stdlib[37], add1, add2); + /*<>*/ return caml_call2(Stdlib[37], speclist, _au_); + } function usage_b(buf, speclist, errmsg){ - /*<>*/ /*<>*/ caml_call3 - (Stdlib_Printf[5], buf, _d_, errmsg); - /*<>*/ /*<>*/ var - _ap_ = add_help(speclist); - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ caml_call3(Stdlib_Printf[5], buf, _d_, errmsg); + var _ap_ = /*<>*/ add_help(speclist); + /*<>*/ return caml_call2 (Stdlib_List[18], function(param){ var - doc = param[3], + doc = /*<>*/ param[3], spec = param[2], key = param[1], _aq_ = - 0 < /*<>*/ caml_ml_string_length(doc) ? 1 : 0; + /*<>*/ 0 < caml_ml_string_length(doc) ? 1 : 0; if(! _aq_) return _aq_; - if(11 !== spec[0]) - /*<>*/ return /*<>*/ caml_call4 + /*<>*/ if(11 !== spec[0]) + /*<>*/ return caml_call4 (Stdlib_Printf[5], buf, _a_, key, doc); - /*<>*/ var - l = spec[1], - /*<>*/ _ar_ = make_symlist(cst$1, cst$0, cst, l); - /*<>*/ return /*<>*/ caml_call5 + var + l = /*<>*/ spec[1], + _ar_ = /*<>*/ make_symlist(cst$1, cst$0, cst, l); + /*<>*/ return caml_call5 (Stdlib_Printf[5], buf, _b_, key, _ar_, doc); }, - _ap_); - /*<>*/ } + _ap_) /*<>*/ ; + } function usage_string(speclist, errmsg){ - /*<>*/ /*<>*/ var - b = /*<>*/ caml_call1(Stdlib_Buffer[1], 200); + var b = /*<>*/ caml_call1(Stdlib_Buffer[1], 200); /*<>*/ usage_b(b, speclist, errmsg); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Buffer[2], b); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_Buffer[2], b) /*<>*/ ; + } function usage(speclist, errmsg){ - /*<>*/ /*<>*/ var - _ao_ = usage_string(speclist, errmsg); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Printf[3], _e_, _ao_); - /*<>*/ } - /*<>*/ var - /*<>*/ current = [0, 0], + var _ao_ = /*<>*/ usage_string(speclist, errmsg); + /*<>*/ return caml_call2(Stdlib_Printf[3], _e_, _ao_); + } + var + current = /*<>*/ [0, 0], _f_ = [0, [2, 0, [11, ": unknown option '", [2, 0, [11, "'.\n", 0]]]], @@ -21620,316 +22084,306 @@ dummy = 0; function int_of_string_opt(x){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _am_ = [0, /*<>*/ runtime.caml_int_of_string(x)]; - /*<>*/ return _am_; + var _am_ = /*<>*/ [0, runtime.caml_int_of_string(x)]; + return _am_; } catch(_an_){ - var _al_ = caml_wrap_exception(_an_); + var _al_ = /*<>*/ caml_wrap_exception(_an_); if(_al_[1] === Stdlib[7]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_al_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_al_, 0); } /*<>*/ } function float_of_string_opt(x){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _aj_ = [0, /*<>*/ runtime.caml_float_of_string(x)]; - /*<>*/ return _aj_; + var _aj_ = /*<>*/ [0, runtime.caml_float_of_string(x)]; + return _aj_; } catch(_ak_){ - var _ai_ = caml_wrap_exception(_ak_); + var _ai_ = /*<>*/ caml_wrap_exception(_ak_); if(_ai_[1] === Stdlib[7]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_ai_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_ai_, 0); } /*<>*/ } function parse_and_expand_argv_dynamic_ (allow_expand, current, argv, speclist, anonfun, errmsg){ - var initpos = current[1]; + var initpos = /*<>*/ current[1]; function convert_error(error){ - /*<>*/ var - /*<>*/ b = - /*<>*/ caml_call1(Stdlib_Buffer[1], 200), + var + b = /*<>*/ caml_call1(Stdlib_Buffer[1], 200), progname = - initpos < argv[1].length - 1 - ? caml_check_bound(argv[1], initpos)[1 + initpos] + /*<>*/ initpos < argv[1].length - 1 + ? /*<>*/ caml_check_bound + (argv[1], initpos) + [1 + initpos] : cst$2; /*<>*/ switch(error[0]){ case 0: var s = error[1]; if(s !== cst_help$4 && s !== cst_help$3) - /*<>*/ /*<>*/ caml_call4 + /*<>*/ caml_call4 (Stdlib_Printf[5], b, _f_, progname, s); break; case 1: - var expected = error[3], arg = error[2], opt = error[1]; - /*<>*/ /*<>*/ caml_call6 + var + expected = /*<>*/ error[3], + arg = error[2], + opt = error[1]; + /*<>*/ caml_call6 (Stdlib_Printf[5], b, _i_, progname, arg, opt, expected); break; case 2: - var s$0 = error[1]; - /*<>*/ /*<>*/ caml_call4 + var s$0 = /*<>*/ error[1]; + /*<>*/ caml_call4 (Stdlib_Printf[5], b, _j_, progname, s$0); break; default: - var s$1 = error[1]; - /*<>*/ /*<>*/ caml_call4 + var s$1 = /*<>*/ error[1]; + /*<>*/ caml_call4 (Stdlib_Printf[5], b, _k_, progname, s$1); } /*<>*/ usage_b(b, speclist[1], errmsg); - /*<>*/ if + /*<>*/ if (! - /*<>*/ caml_equal(error, _g_) + caml_equal(error, _g_) && ! /*<>*/ caml_equal(error, _h_)) - /*<>*/ return [0, - Bad, - /*<>*/ caml_call1(Stdlib_Buffer[2], b)]; - /*<>*/ return [0, - Help, - /*<>*/ caml_call1(Stdlib_Buffer[2], b)]; + /*<>*/ return [0, Bad, caml_call1(Stdlib_Buffer[2], b)] /*<>*/ ; + /*<>*/ return [0, Help, caml_call1(Stdlib_Buffer[2], b)] /*<>*/ ; /*<>*/ } /*<>*/ current[1]++; - for(;;){ + /*<>*/ for(;;){ if(current[1] >= argv[1].length - 1) return 0; /*<>*/ try{ - /*<>*/ var + var _V_ = current[1], - /*<>*/ s = caml_check_bound(argv[1], _V_)[1 + _V_]; - /*<>*/ if - ( /*<>*/ caml_call2(Stdlib_String[11], cst$3, s)){ - try{ - /*<>*/ var - follow$1 = 0, - /*<>*/ _Z_ = assoc3(s, speclist[1]), + s = /*<>*/ caml_check_bound(argv[1], _V_)[1 + _V_]; + /*<>*/ if(caml_call2(Stdlib_String[11], cst$3, s)){ + /*<>*/ try{ + var + follow$1 = /*<>*/ 0, + _Z_ = /*<>*/ assoc3(s, speclist[1]), follow$0 = follow$1, action = _Z_; } catch(_ag_){ - var _W_ = caml_wrap_exception(_ag_); + var _W_ = /*<>*/ caml_wrap_exception(_ag_); if(_W_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_W_, 0); /*<>*/ try{ - /*<>*/ var - /*<>*/ i = - /*<>*/ caml_call2(Stdlib_String[36], s, 61), - /*<>*/ len = - /*<>*/ caml_ml_string_length(s), - /*<>*/ arg = + var + i = /*<>*/ caml_call2(Stdlib_String[36], s, 61), + len = /*<>*/ caml_ml_string_length(s), + arg = /*<>*/ caml_call3 (Stdlib_String[16], s, i + 1 | 0, len - (i + 1 | 0) | 0), - /*<>*/ keyword = + keyword = /*<>*/ caml_call3(Stdlib_String[16], s, 0, i), - /*<>*/ follow = [0, arg], - /*<>*/ _Y_ = assoc3(keyword, speclist[1]), + follow = /*<>*/ [0, arg], + _Y_ = assoc3(keyword, speclist[1]), follow$0 = follow, action = _Y_; } catch(_ah_){ - var _X_ = caml_wrap_exception(_ah_); + var _X_ = /*<>*/ caml_wrap_exception(_ah_); if(_X_ === Stdlib[8]) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stop, [0, s]], 1); - throw caml_maybe_attach_backtrace(_X_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_X_, 0); } } - let s$0 = s, follow$2 = follow$0; + let s$0 = /*<>*/ s, follow$2 = follow$0; var no_arg = - function(param){ + /*<>*/ function(param){ /*<>*/ if(! follow$2) /*<>*/ return; - var arg = follow$2[1]; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var arg = /*<>*/ follow$2[1]; + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stop, [1, s$0, arg, cst_no_argument]], 1); /*<>*/ }, get_arg = - function(param){ + /*<>*/ function(param){ /*<>*/ if(follow$2){ var arg = follow$2[1]; /*<>*/ return arg; } - if((current[1] + 1 | 0) >= argv[1].length - 1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if + ((current[1] + 1 | 0) >= argv[1].length - 1) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stop, [2, s$0]], 1); - var _af_ = current[1] + 1 | 0; - /*<>*/ return caml_check_bound(argv[1], _af_) - [1 + _af_]; + var _af_ = /*<>*/ current[1] + 1 | 0; + return caml_check_bound(argv[1], _af_)[1 + _af_] /*<>*/ ; /*<>*/ }, consume_arg = - function(param){ - /*<>*/ return follow$2 ? 0 : (current[1]++, 0); - /*<>*/ }, + /*<>*/ function(param){ + /*<>*/ return follow$2 ? 0 : (current[1]++, 0) /*<>*/ ; + }, treat_action = - function(param){ + /*<>*/ function(param){ /*<>*/ switch(param[0]){ case 0: var f = param[1]; /*<>*/ no_arg$0(0); - /*<>*/ return /*<>*/ caml_call1 - (f, 0); + /*<>*/ return caml_call1(f, 0) /*<>*/ ; case 1: - /*<>*/ var - f$0 = param[1], - /*<>*/ arg = get_arg$0(0); + var + f$0 = /*<>*/ param[1], + arg = /*<>*/ get_arg$0(0); /*<>*/ try{ - /*<>*/ var - /*<>*/ _$_ = - [0, /*<>*/ caml_call1(Stdlib[32], arg)], + var + _$_ = /*<>*/ [0, caml_call1(Stdlib[32], arg)], match = _$_; } catch(_ae_){ - var ___ = caml_wrap_exception(_ae_); + var ___ = /*<>*/ caml_wrap_exception(_ae_); if(___[1] !== Stdlib[6]) throw caml_maybe_attach_backtrace(___, 0); - var match = 0; + var match = /*<>*/ 0; } - if(! match) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! match) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stop, [1, s$0, arg, cst_a_boolean]], 1); - var s = match[1]; - /*<>*/ /*<>*/ caml_call1(f$0, s); - /*<>*/ return consume_arg$0(0); + var s = /*<>*/ match[1]; + /*<>*/ caml_call1(f$0, s); + /*<>*/ return consume_arg$0(0) /*<>*/ ; case 2: - var r = param[1]; + var r = /*<>*/ param[1]; /*<>*/ no_arg$0(0); - r[1] = 1; + /*<>*/ r[1] = 1; return 0; case 3: - var r$0 = param[1]; + var r$0 = /*<>*/ param[1]; /*<>*/ no_arg$0(0); - r$0[1] = 0; + /*<>*/ r$0[1] = 0; return 0; case 4: - /*<>*/ var - f$1 = param[1], - /*<>*/ arg$0 = get_arg$0(0); - /*<>*/ /*<>*/ caml_call1 - (f$1, arg$0); - /*<>*/ return consume_arg$0(0); + var + f$1 = /*<>*/ param[1], + arg$0 = /*<>*/ get_arg$0(0); + /*<>*/ caml_call1(f$1, arg$0); + /*<>*/ return consume_arg$0(0) /*<>*/ ; case 5: - var r$1 = param[1]; - r$1[1] = get_arg$0(0); - /*<>*/ return consume_arg$0(0); + var r$1 = /*<>*/ param[1]; + /*<>*/ r$1[1] = get_arg$0(0); + /*<>*/ return consume_arg$0(0) /*<>*/ ; case 6: - /*<>*/ var - f$2 = param[1], - /*<>*/ arg$1 = get_arg$0(0), - /*<>*/ match$0 = int_of_string_opt(arg$1); - if(! match$0) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + f$2 = /*<>*/ param[1], + arg$1 = /*<>*/ get_arg$0(0), + match$0 = /*<>*/ int_of_string_opt(arg$1); + /*<>*/ if(! match$0) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stop, [1, s$0, arg$1, cst_an_integer]], 1); - var x = match$0[1]; - /*<>*/ /*<>*/ caml_call1(f$2, x); - /*<>*/ return consume_arg$0(0); + var x = /*<>*/ match$0[1]; + /*<>*/ caml_call1(f$2, x); + /*<>*/ return consume_arg$0(0) /*<>*/ ; case 7: - /*<>*/ var - r$2 = param[1], - /*<>*/ arg$2 = get_arg$0(0), - /*<>*/ match$1 = int_of_string_opt(arg$2); - if(! match$1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + r$2 = /*<>*/ param[1], + arg$2 = /*<>*/ get_arg$0(0), + match$1 = /*<>*/ int_of_string_opt(arg$2); + /*<>*/ if(! match$1) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stop, [1, s$0, arg$2, cst_an_integer$0]], 1); - var x$0 = match$1[1]; - r$2[1] = x$0; - /*<>*/ return consume_arg$0(0); + var x$0 = /*<>*/ match$1[1]; + /*<>*/ r$2[1] = x$0; + /*<>*/ return consume_arg$0(0) /*<>*/ ; case 8: - /*<>*/ var - f$3 = param[1], - /*<>*/ arg$3 = get_arg$0(0), - /*<>*/ match$2 = float_of_string_opt(arg$3); - if(! match$2) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + f$3 = /*<>*/ param[1], + arg$3 = /*<>*/ get_arg$0(0), + match$2 = /*<>*/ float_of_string_opt(arg$3); + /*<>*/ if(! match$2) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stop, [1, s$0, arg$3, cst_a_float]], 1); - var x$1 = match$2[1]; - /*<>*/ /*<>*/ caml_call1 - (f$3, x$1); - /*<>*/ return consume_arg$0(0); + var x$1 = /*<>*/ match$2[1]; + /*<>*/ caml_call1(f$3, x$1); + /*<>*/ return consume_arg$0(0) /*<>*/ ; case 9: - /*<>*/ var - r$3 = param[1], - /*<>*/ arg$4 = get_arg$0(0), - /*<>*/ match$3 = float_of_string_opt(arg$4); - if(! match$3) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + r$3 = /*<>*/ param[1], + arg$4 = /*<>*/ get_arg$0(0), + match$3 = /*<>*/ float_of_string_opt(arg$4); + /*<>*/ if(! match$3) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stop, [1, s$0, arg$4, cst_a_float$0]], 1); - var x$2 = match$3[1]; - r$3[1] = x$2; - /*<>*/ return consume_arg$0(0); + var x$2 = /*<>*/ match$3[1]; + /*<>*/ r$3[1] = x$2; + /*<>*/ return consume_arg$0(0) /*<>*/ ; case 10: - var specs = param[1]; + var specs = /*<>*/ param[1]; /*<>*/ no_arg$0(0); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_List[18], treat_action$0, specs); + /*<>*/ return caml_call2 + (Stdlib_List[18], treat_action$0, specs) /*<>*/ ; case 11: - /*<>*/ var - f$4 = param[2], + var + f$4 = /*<>*/ param[2], symb = param[1], - /*<>*/ arg$5 = get_arg$0(0); + arg$5 = /*<>*/ get_arg$0(0); /*<>*/ if - ( /*<>*/ caml_call2 - (Stdlib_List[37], arg$5, symb)){ - /*<>*/ /*<>*/ caml_call1 - (f$4, arg$5); - /*<>*/ return consume_arg$0(0); + (caml_call2(Stdlib_List[37], arg$5, symb)){ + /*<>*/ caml_call1(f$4, arg$5); + /*<>*/ return consume_arg$0(0) /*<>*/ ; } - /*<>*/ /*<>*/ var - _aa_ = make_symlist(cst$6, cst$5, cst$4, symb); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + _aa_ = + /*<>*/ make_symlist + (cst$6, cst$5, cst$4, symb); + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stop, - [1, - s$0, - arg$5, - /*<>*/ caml_call2 - (Stdlib[28], cst_one_of, _aa_)]], + [1, s$0, arg$5, caml_call2(Stdlib[28], cst_one_of, _aa_)]], 1); case 12: - var f$5 = param[1]; + var f$5 = /*<>*/ param[1]; /*<>*/ no_arg$0(0); - /*<>*/ for(;;){ + /*<>*/ for(;;){ if(current[1] >= (argv[1].length - 2 | 0)) return 0; - var _ab_ = current[1] + 1 | 0; - /*<>*/ /*<>*/ caml_call1 - (f$5, caml_check_bound(argv[1], _ab_)[1 + _ab_]); + var _ab_ = /*<>*/ current[1] + 1 | 0; + /*<>*/ /*<>*/ caml_call1 + (f$5, + /*<>*/ caml_check_bound(argv[1], _ab_) + [1 + _ab_]); /*<>*/ consume_arg$0(0); } break; case 13: - var f$6 = param[1]; + var f$6 = /*<>*/ param[1]; /*<>*/ no_arg$0(0); - /*<>*/ /*<>*/ var acc = [0, 0]; - /*<>*/ for(;;){ + var acc = /*<>*/ [0, 0]; + /*<>*/ for(;;){ if(current[1] >= (argv[1].length - 2 | 0)) - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ return /*<>*/ caml_call1 (f$6, - /*<>*/ caml_call1(Stdlib_List[10], acc[1])); - var _ad_ = current[1] + 1 | 0, _ac_ = acc[1]; + /*<>*/ caml_call1(Stdlib_List[10], acc[1])) /*<>*/ ; + var + _ad_ = /*<>*/ current[1] + 1 | 0, + _ac_ = /*<>*/ acc[1]; acc[1] = [0, caml_check_bound(argv[1], _ad_)[1 + _ad_], _ac_]; /*<>*/ consume_arg$0(0); } break; default: - var f$7 = param[1]; - if(1 - allow_expand) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var f$7 = /*<>*/ param[1]; + /*<>*/ if(1 - allow_expand) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stdlib[6], cst_Arg_Expand_is_is_only_allo], 1); - /*<>*/ var - /*<>*/ arg$6 = get_arg$0(0), - /*<>*/ newarg = - /*<>*/ caml_call1(f$7, arg$6); + var + arg$6 = /*<>*/ get_arg$0(0), + newarg = /*<>*/ caml_call1(f$7, arg$6); /*<>*/ consume_arg$0(0); - /*<>*/ var - /*<>*/ before = + var + before = /*<>*/ caml_call3 (Stdlib_Array[6], argv[1], 0, current[1] + 1 | 0), - /*<>*/ after = + after = /*<>*/ caml_call3 (Stdlib_Array[6], argv[1], current[1] + 1 | 0, (argv[1].length - 1 - current[1] | 0) - 1 | 0); - argv[1] = - /*<>*/ caml_call1 + /*<>*/ argv[1] = + caml_call1 (Stdlib_Array[5], [0, before, [0, newarg, [0, after, 0]]]); - return 0; + /*<>*/ return 0; } /*<>*/ }; let @@ -21940,246 +22394,239 @@ /*<>*/ treat_action(action); } else - /*<>*/ /*<>*/ caml_call1(anonfun, s); + /*<>*/ caml_call1(anonfun, s); } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); if(exn[1] === Bad){ var m = exn[2]; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (convert_error([3, m]), 1); } - if(exn[1] !== Stop) throw caml_maybe_attach_backtrace(exn, 0); + /*<>*/ if(exn[1] !== Stop) + throw caml_maybe_attach_backtrace(exn, 0); var e = exn[2]; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (convert_error(e), 1); } - current[1]++; + /*<>*/ current[1]++; } } function parse_and_expand_argv_dynamic (current, argv, speclist, anonfun, errmsg){ /*<>*/ return parse_and_expand_argv_dynamic_ - (1, current, argv, speclist, anonfun, errmsg); - /*<>*/ } + (1, current, argv, speclist, anonfun, errmsg) /*<>*/ ; + } function parse_argv_dynamic(opt, argv, speclist, anonfun, errmsg){ - var current$0 = opt ? opt[1] : current; + var current$0 = /*<>*/ opt ? opt[1] : current; /*<>*/ return parse_and_expand_argv_dynamic_ - (0, current$0, [0, argv], speclist, anonfun, errmsg); + (0, current$0, [0, argv], speclist, anonfun, errmsg) /*<>*/ ; } function parse_argv(opt, argv, speclist, anonfun, errmsg){ - var current$0 = opt ? opt[1] : current; + var current$0 = /*<>*/ opt ? opt[1] : current; /*<>*/ return parse_argv_dynamic - ([0, current$0], argv, [0, speclist], anonfun, errmsg); + ([0, current$0], argv, [0, speclist], anonfun, errmsg) /*<>*/ ; } function parse(l, f, msg){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _U_ = parse_argv(0, caml_sys_argv(0), l, f, msg); - /*<>*/ return _U_; + var + _U_ = /*<>*/ parse_argv(0, caml_sys_argv(0), l, f, msg); + return _U_; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); if(exn[1] === Bad){ var msg$0 = exn[2]; - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[3], _l_, msg$0); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[99], 2); + /*<>*/ caml_call2(Stdlib_Printf[3], _l_, msg$0); + /*<>*/ return caml_call1(Stdlib[99], 2) /*<>*/ ; } - if(exn[1] !== Help) throw caml_maybe_attach_backtrace(exn, 0); + /*<>*/ if(exn[1] !== Help) throw caml_maybe_attach_backtrace(exn, 0); var msg$1 = exn[2]; - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[2], _m_, msg$1); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[99], 0); + /*<>*/ caml_call2(Stdlib_Printf[2], _m_, msg$1); + /*<>*/ return caml_call1(Stdlib[99], 0) /*<>*/ ; } - /*<>*/ } + } function parse_dynamic(l, f, msg){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _T_ = parse_argv_dynamic(0, caml_sys_argv(0), l, f, msg); - /*<>*/ return _T_; + var + _T_ = + /*<>*/ parse_argv_dynamic + (0, caml_sys_argv(0), l, f, msg); + return _T_; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); if(exn[1] === Bad){ var msg$0 = exn[2]; - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[3], _n_, msg$0); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[99], 2); + /*<>*/ caml_call2(Stdlib_Printf[3], _n_, msg$0); + /*<>*/ return caml_call1(Stdlib[99], 2) /*<>*/ ; } - if(exn[1] !== Help) throw caml_maybe_attach_backtrace(exn, 0); + /*<>*/ if(exn[1] !== Help) throw caml_maybe_attach_backtrace(exn, 0); var msg$1 = exn[2]; - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[2], _o_, msg$1); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[99], 0); + /*<>*/ caml_call2(Stdlib_Printf[2], _o_, msg$1); + /*<>*/ return caml_call1(Stdlib[99], 0) /*<>*/ ; } - /*<>*/ } + } function parse_expand(l, f, msg){ /*<>*/ try{ - /*<>*/ var - /*<>*/ argv = [0, caml_sys_argv(0)], - /*<>*/ spec = [0, l], - /*<>*/ current$0 = [0, current[1]], - /*<>*/ _S_ = - parse_and_expand_argv_dynamic(current$0, argv, spec, f, msg); - /*<>*/ return _S_; + var + argv = [0, caml_sys_argv(0)], + spec = /*<>*/ [0, l], + current$0 = /*<>*/ [0, current[1]], + _S_ = + /*<>*/ parse_and_expand_argv_dynamic + (current$0, argv, spec, f, msg); + return _S_; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); if(exn[1] === Bad){ var msg$0 = exn[2]; - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[3], _p_, msg$0); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[99], 2); + /*<>*/ caml_call2(Stdlib_Printf[3], _p_, msg$0); + /*<>*/ return caml_call1(Stdlib[99], 2) /*<>*/ ; } - if(exn[1] !== Help) throw caml_maybe_attach_backtrace(exn, 0); + /*<>*/ if(exn[1] !== Help) throw caml_maybe_attach_backtrace(exn, 0); var msg$1 = exn[2]; - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[2], _q_, msg$1); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[99], 0); + /*<>*/ caml_call2(Stdlib_Printf[2], _q_, msg$1); + /*<>*/ return caml_call1(Stdlib[99], 0) /*<>*/ ; } - /*<>*/ } + } function second_word(s){ - /*<>*/ var len = caml_ml_string_length(s); + var len = /*<>*/ caml_ml_string_length(s); function loop(n){ - /*<>*/ var n$0 = n; - /*<>*/ for(;;){ - if(len <= n$0) /*<>*/ return len; - /*<>*/ if - (32 !== /*<>*/ caml_string_get(s, n$0)) + var n$0 = /*<>*/ n; + for(;;){ + if(len <= n$0) /*<>*/ return len; + /*<>*/ if(32 !== caml_string_get(s, n$0)) /*<>*/ return n$0; - /*<>*/ /*<>*/ var n$1 = n$0 + 1 | 0; + var n$1 = /*<>*/ n$0 + 1 | 0; n$0 = n$1; } /*<>*/ } /*<>*/ try{ - /*<>*/ /*<>*/ var - n$0 = /*<>*/ caml_call2(Stdlib_String[36], s, 9); + var n$0 = /*<>*/ caml_call2(Stdlib_String[36], s, 9); } catch(_Q_){ - var _O_ = caml_wrap_exception(_Q_); + var _O_ = /*<>*/ caml_wrap_exception(_Q_); if(_O_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_O_, 0); /*<>*/ try{ - /*<>*/ /*<>*/ var - n = /*<>*/ caml_call2(Stdlib_String[36], s, 32); + var n = /*<>*/ caml_call2(Stdlib_String[36], s, 32); } catch(_R_){ - var _P_ = caml_wrap_exception(_R_); + var _P_ = /*<>*/ caml_wrap_exception(_R_); if(_P_ === Stdlib[8]) /*<>*/ return len; - throw caml_maybe_attach_backtrace(_P_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_P_, 0); } - /*<>*/ return loop(n + 1 | 0); + /*<>*/ return loop(n + 1 | 0) /*<>*/ ; } - /*<>*/ return loop(n$0 + 1 | 0); - /*<>*/ } + /*<>*/ return loop(n$0 + 1 | 0) /*<>*/ ; + } function max_arg_len(cur, param){ - var doc = param[3], spec = param[2], kwd = param[1]; + var + doc = /*<>*/ param[3], + spec = param[2], + kwd = param[1]; /*<>*/ if(11 === spec[0]) - return caml_call2(Stdlib_Int[11], cur, caml_ml_string_length(kwd)); - var _N_ = caml_ml_string_length(kwd) + second_word(doc) | 0; - return caml_call2(Stdlib_Int[11], cur, _N_); + /*<>*/ return caml_call2 + (Stdlib_Int[11], cur, caml_ml_string_length(kwd)) /*<>*/ ; + var + _N_ = + /*<>*/ caml_ml_string_length(kwd) + + /*<>*/ second_word(doc) + | 0; + /*<>*/ return caml_call2(Stdlib_Int[11], cur, _N_) /*<>*/ ; } function replace_leading_tab(s){ - /*<>*/ /*<>*/ var seen = [0, 0]; - /*<>*/ return /*<>*/ caml_call2 + var seen = /*<>*/ [0, 0]; + /*<>*/ return caml_call2 (Stdlib_String[18], function(c){ /*<>*/ if(9 === c && ! seen[1]){ - seen[1] = 1; + /*<>*/ seen[1] = 1; /*<>*/ return 32; } /*<>*/ return c; /*<>*/ }, - s); - /*<>*/ } + s) /*<>*/ ; + } function align(opt, speclist){ - /*<>*/ var - limit = opt ? opt[1] : Stdlib[19], - /*<>*/ completed = add_help(speclist), - /*<>*/ len = + var + limit = /*<>*/ opt ? opt[1] : Stdlib[19], + completed = /*<>*/ add_help(speclist), + len = /*<>*/ caml_call3 (Stdlib_List[26], max_arg_len, 0, completed), - /*<>*/ len$0 = - /*<>*/ caml_call2(Stdlib_Int[10], len, limit); - /*<>*/ return /*<>*/ caml_call2 + len$0 = /*<>*/ caml_call2(Stdlib_Int[10], len, limit); + /*<>*/ return caml_call2 (Stdlib_List[20], function(ksd){ - var kwd = ksd[1], spec = ksd[2]; + var kwd = /*<>*/ ksd[1], spec = ksd[2]; if(ksd[3] === cst$8) /*<>*/ return ksd; - if(11 === spec[0]){ - /*<>*/ var + /*<>*/ if(11 === spec[0]){ + var msg$0 = ksd[3], - /*<>*/ cutcol$0 = second_word(msg$0), - /*<>*/ _K_ = + cutcol$0 = /*<>*/ second_word(msg$0), + _K_ = /*<>*/ caml_call2 (Stdlib_Int[11], 0, len$0 - cutcol$0 | 0) + 3 | 0, - /*<>*/ spaces$0 = + spaces$0 = /*<>*/ caml_call2(Stdlib_String[1], _K_, 32), - /*<>*/ _L_ = replace_leading_tab(msg$0), - /*<>*/ _M_ = + _L_ = /*<>*/ replace_leading_tab(msg$0), + _M_ = /*<>*/ caml_call2(Stdlib[28], spaces$0, _L_); - /*<>*/ return [0, + /*<>*/ return [0, kwd, spec, - /*<>*/ caml_call2(Stdlib[28], cst$7, _M_)]; + caml_call2(Stdlib[28], cst$7, _M_)] /*<>*/ ; } - /*<>*/ var - msg = ksd[3], + var + msg = /*<>*/ ksd[3], spec$0 = ksd[2], - /*<>*/ cutcol = second_word(msg), - /*<>*/ kwd_len = - /*<>*/ caml_ml_string_length(kwd), - diff = (len$0 - kwd_len | 0) - cutcol | 0; + cutcol = /*<>*/ second_word(msg), + kwd_len = /*<>*/ caml_ml_string_length(kwd), + diff = /*<>*/ (len$0 - kwd_len | 0) - cutcol | 0; /*<>*/ if(0 >= diff) - /*<>*/ return [0, + /*<>*/ return [0, kwd, spec$0, - replace_leading_tab(msg)]; - /*<>*/ var - /*<>*/ spaces = + replace_leading_tab(msg)] /*<>*/ ; + var + spaces = /*<>*/ caml_call2(Stdlib_String[1], diff, 32), - /*<>*/ _I_ = replace_leading_tab(msg), - /*<>*/ prefix = + _I_ = /*<>*/ replace_leading_tab(msg), + prefix = /*<>*/ caml_call3 (Stdlib_String[16], _I_, 0, cutcol), - /*<>*/ suffix = - /*<>*/ caml_call3 + suffix = + /*<>*/ /*<>*/ caml_call3 (Stdlib_String[16], msg, cutcol, - caml_ml_string_length(msg) - cutcol | 0), - /*<>*/ _J_ = + /*<>*/ caml_ml_string_length(msg) - cutcol + | 0), + _J_ = /*<>*/ caml_call2(Stdlib[28], spaces, suffix); - /*<>*/ return [0, + /*<>*/ return [0, kwd, spec$0, - /*<>*/ caml_call2(Stdlib[28], prefix, _J_)]; + caml_call2(Stdlib[28], prefix, _J_)] /*<>*/ ; }, - completed); + completed) /*<>*/ ; } function read_aux(trim, sep, file){ - /*<>*/ var - /*<>*/ ic = - /*<>*/ caml_call1(Stdlib[80], file), - /*<>*/ buf = - /*<>*/ caml_call1(Stdlib_Buffer[1], 200), - /*<>*/ words = [0, 0]; + var + ic = /*<>*/ caml_call1(Stdlib[80], file), + buf = /*<>*/ caml_call1(Stdlib_Buffer[1], 200), + words = /*<>*/ [0, 0]; function stash(param){ - /*<>*/ /*<>*/ var - word = /*<>*/ caml_call1(Stdlib_Buffer[2], buf); + var word = /*<>*/ caml_call1(Stdlib_Buffer[2], buf); /*<>*/ if(trim){ - var len = caml_ml_string_length(word); + var len = /*<>*/ caml_ml_string_length(word); a: { - /*<>*/ if + /*<>*/ if (0 < len && 13 === /*<>*/ caml_string_get(word, len - 1 | 0)){ var @@ -22188,74 +22635,61 @@ (Stdlib_String[16], word, 0, len - 1 | 0); break a; } - var _H_ = word; + var _H_ = /*<>*/ word; } - var word$0 = _H_; + var word$0 = /*<>*/ _H_; } else - var word$0 = word; - words[1] = [0, word$0, words[1]]; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Buffer[8], buf); - /*<>*/ } + var word$0 = /*<>*/ word; + /*<>*/ words[1] = [0, word$0, words[1]]; + /*<>*/ return caml_call1(Stdlib_Buffer[8], buf) /*<>*/ ; + } /*<>*/ try{ for(;;){ - /*<>*/ /*<>*/ var - c = /*<>*/ caml_call1(Stdlib[82], ic); - if(c === sep) + var c = /*<>*/ caml_call1(Stdlib[82], ic); + /*<>*/ if(c === sep) /*<>*/ stash(0); else - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], buf, c); + /*<>*/ caml_call2(Stdlib_Buffer[12], buf, c); } } catch(_G_){ - var _E_ = caml_wrap_exception(_G_); + var _E_ = /*<>*/ caml_wrap_exception(_G_); if(_E_ !== Stdlib[12]) throw caml_maybe_attach_backtrace(_E_, 0); - if(0 < /*<>*/ caml_call1(Stdlib_Buffer[7], buf)) + /*<>*/ if(0 < caml_call1(Stdlib_Buffer[7], buf)) /*<>*/ stash(0); - /*<>*/ /*<>*/ caml_call1(Stdlib[93], ic); - /*<>*/ /*<>*/ var - _F_ = /*<>*/ caml_call1(Stdlib_List[10], words[1]); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Array[11], _F_); + /*<>*/ caml_call1(Stdlib[93], ic); + var _F_ = /*<>*/ caml_call1(Stdlib_List[10], words[1]); + /*<>*/ return caml_call1(Stdlib_Array[11], _F_); } - /*<>*/ } - var _r_ = 10, _s_ = 1; - /*<>*/ function read_arg(_D_){ - /*<>*/ return read_aux(_s_, _r_, _D_); } + var _r_ = /*<>*/ 10, _s_ = 1; + function read_arg(_D_){return read_aux(_s_, _r_, _D_);} var - /*<>*/ _t_ = 0, + _t_ = /*<>*/ 0, _u_ = 0, _v_ = [0, [2, 0, [0, 0]], "%s%c"]; - /*<>*/ function read_arg0(_C_){ - /*<>*/ return read_aux(_u_, _t_, _C_); + function read_arg0(_C_){ + /*<>*/ return read_aux(_u_, _t_, _C_); } function write_aux(sep, file, args){ - /*<>*/ /*<>*/ var - oc = /*<>*/ caml_call1(Stdlib[61], file); - /*<>*/ /*<>*/ caml_call2 + var oc = /*<>*/ caml_call1(Stdlib[61], file); + /*<>*/ caml_call2 (Stdlib_Array[12], function(s){ /*<>*/ return caml_call4 - (Stdlib_Printf[1], oc, _v_, s, sep); - /*<>*/ }, + (Stdlib_Printf[1], oc, _v_, s, sep) /*<>*/ ; + }, args); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[76], oc); - /*<>*/ } - var _w_ = 10; - /*<>*/ function write_arg(_A_, _B_){ - /*<>*/ return write_aux(_w_, _A_, _B_); - } - /*<>*/ var _x_ = 0; - /*<>*/ function write_arg0(_y_, _z_){ - /*<>*/ return write_aux(_x_, _y_, _z_); + /*<>*/ return caml_call1(Stdlib[76], oc) /*<>*/ ; } + var _w_ = /*<>*/ 10; + function write_arg(_A_, _B_){return write_aux(_w_, _A_, _B_);} + var _x_ = /*<>*/ 0; + function write_arg0(_y_, _z_){return write_aux(_x_, _y_, _z_);} var Stdlib_Arg = - [0, + /*<>*/ [0, parse, parse_dynamic, parse_argv, @@ -22298,32 +22732,32 @@ caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_obj_tag = runtime.caml_obj_tag, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call6(f, a0, a1, a2, a3, a4, a5){ + function caml_call6(f, a0, a1, a2, a3, a4, a5){ return (f.l >= 0 ? f.l : f.l = f.length) === 6 ? f(a0, a1, a2, a3, a4, a5) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); } - /*<>*/ function caml_call8(f, a0, a1, a2, a3, a4, a5, a6, a7){ + function caml_call8(f, a0, a1, a2, a3, a4, a5, a6, a7){ return (f.l >= 0 ? f.l : f.l = f.length) === 8 ? f(a0, a1, a2, a3, a4, a5, a6, a7) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6, a7]); } - /*<>*/ var + var global_data = runtime.caml_get_global_data(), cst$0 = cst$4, cst$3 = cst$4, @@ -22352,9 +22786,8 @@ Stdlib = global_data.Stdlib, Stdlib_Buffer = global_data.Stdlib__Buffer, Stdlib_Obj = global_data.Stdlib__Obj, - /*<>*/ printers = - /*<>*/ caml_call1(Stdlib_Atomic[1], 0), - _a_ = [0, [3, 0, 0], "%S"], + printers = /*<>*/ caml_call1(Stdlib_Atomic[1], 0), + _a_ = /*<>*/ [0, [3, 0, 0], "%S"], _b_ = [0, [4, 0, 0, 0, 0], "%d"], _c_ = [0, [11, ", ", [2, 0, [2, 0, 0]]], ", %s%s"], _d_ = [0, [12, 40, [2, 0, [2, 0, [12, 41, 0]]]], "(%s%s)"], @@ -22404,349 +22837,350 @@ _n_ = [0, [2, 0, [12, 10, 0]], cst_s], cst_Program_not_linked_with_g_ = cst_Program_not_linked_with_g_$0; function field(x, i){ - /*<>*/ /*<>*/ var f = x[1 + i]; - /*<>*/ if - (! /*<>*/ caml_call1(Stdlib_Obj[1], f)) - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Printf[4], _b_, f); - /*<>*/ /*<>*/ var - _ah_ = Stdlib_Obj[15]; - if( /*<>*/ caml_obj_tag(f) === _ah_) - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Printf[4], _a_, f); - /*<>*/ /*<>*/ var - _ai_ = Stdlib_Obj[16]; - return /*<>*/ caml_obj_tag(f) === _ai_ + var f = /*<>*/ x[1 + i]; + /*<>*/ if(! caml_call1(Stdlib_Obj[1], f)) + /*<>*/ return caml_call2(Stdlib_Printf[4], _b_, f) /*<>*/ ; + var _ah_ = /*<>*/ Stdlib_Obj[15]; + if(caml_obj_tag(f) === _ah_) + /*<>*/ return caml_call2(Stdlib_Printf[4], _a_, f) /*<>*/ ; + var _ai_ = /*<>*/ Stdlib_Obj[16]; + return caml_obj_tag(f) === _ai_ ? /*<>*/ caml_call1(Stdlib[35], f) - : cst; - /*<>*/ } + : cst /*<>*/ ; + } function other_fields(x, i){ /*<>*/ if(x.length - 1 <= i) /*<>*/ return cst$0; - /*<>*/ var - /*<>*/ _af_ = other_fields(x, i + 1 | 0), - /*<>*/ _ag_ = field(x, i); - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Printf[4], _c_, _ag_, _af_); - /*<>*/ } + var + _af_ = /*<>*/ other_fields(x, i + 1 | 0), + _ag_ = /*<>*/ field(x, i); + /*<>*/ return caml_call3 + (Stdlib_Printf[4], _c_, _ag_, _af_) /*<>*/ ; + } function use_printers(x){ - /*<>*/ var - param = /*<>*/ caml_call1(Stdlib_Atomic[3], printers); - /*<>*/ for(;;){ - if(! param) /*<>*/ return 0; - var tl = param[2], hd = param[1]; + var + param = + /*<>*/ /*<>*/ caml_call1 + (Stdlib_Atomic[3], printers); + /*<>*/ for(;;){ + /*<>*/ if(! param) + /*<>*/ return 0; + var tl = /*<>*/ param[2], hd = param[1]; a: { /*<>*/ try{ - /*<>*/ /*<>*/ var - val = /*<>*/ caml_call1(hd, x); + var val = /*<>*/ caml_call1(hd, x); } catch(_ae_){break a;} - if(val){var s = val[1]; /*<>*/ return [0, s];} + /*<>*/ if(val){ + var s = val[1]; + /*<>*/ return [0, s]; + } } - param = tl; + /*<>*/ param = tl; } /*<>*/ } function string_of_extension_constructo(t){ - /*<>*/ if - (0 === /*<>*/ caml_obj_tag(t)){ - /*<>*/ var - /*<>*/ constructor = t[1][1], - match = t.length - 1; + /*<>*/ if(0 === caml_obj_tag(t)){ + var + constructor = /*<>*/ t[1][1], + match = /*<>*/ t.length - 1; if(2 < match >>> 0) - /*<>*/ var - /*<>*/ _aa_ = other_fields(t, 2), - /*<>*/ _ab_ = field(t, 1), + var + _aa_ = /*<>*/ other_fields(t, 2), + _ab_ = /*<>*/ field(t, 1), _ad_ = - /*<>*/ caml_call3 + /*<>*/ caml_call3 (Stdlib_Printf[4], _d_, _ab_, _aa_); else - switch(match){ + /*<>*/ switch(match){ case 0: - var _ad_ = cst$1; break; + var _ad_ = /*<>*/ cst$1; break; case 1: - var _ad_ = cst$2; break; + var _ad_ = /*<>*/ cst$2; break; default: - /*<>*/ var - /*<>*/ _ac_ = field(t, 1), + var + _ac_ = /*<>*/ field(t, 1), _ad_ = - /*<>*/ caml_call2(Stdlib_Printf[4], _e_, _ac_); + /*<>*/ caml_call2(Stdlib_Printf[4], _e_, _ac_); } - var match$0 = [0, constructor, [0, _ad_]]; + var match$0 = /*<>*/ [0, constructor, [0, _ad_]]; } else - var match$0 = [0, t[1], 0]; - var fields_opt = match$0[2], constructor$0 = match$0[1]; + var match$0 = /*<>*/ [0, t[1], 0]; + var + fields_opt = /*<>*/ match$0[2], + constructor$0 = match$0[1]; /*<>*/ if(! fields_opt) /*<>*/ return constructor$0; - var f = fields_opt[1]; - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[28], constructor$0, f); - /*<>*/ } + var f = /*<>*/ fields_opt[1]; + /*<>*/ return caml_call2(Stdlib[28], constructor$0, f) /*<>*/ ; + } function to_string_default(x){ /*<>*/ if(x === Stdlib[9]) /*<>*/ return cst_Out_of_memory; - if(x === Stdlib[10]) /*<>*/ return cst_Stack_overflow; - if(x[1] === Stdlib[4]){ + /*<>*/ if(x === Stdlib[10]) + /*<>*/ return cst_Stack_overflow; + /*<>*/ if(x[1] === Stdlib[4]){ var match = x[2], char$0 = match[3], line = match[2], file = match[1]; - /*<>*/ return /*<>*/ caml_call6 + /*<>*/ return caml_call6 (Stdlib_Printf[4], locfmt, file, line, char$0, char$0 + 5 | 0, - cst_Pattern_matching_failed); + cst_Pattern_matching_failed) /*<>*/ ; } - if(x[1] === Stdlib[5]){ + /*<>*/ if(x[1] === Stdlib[5]){ var match$0 = x[2], char$1 = match$0[3], line$0 = match$0[2], file$0 = match$0[1]; - /*<>*/ return /*<>*/ caml_call6 + /*<>*/ return caml_call6 (Stdlib_Printf[4], locfmt, file$0, line$0, char$1, char$1 + 6 | 0, - cst_Assertion_failed); + cst_Assertion_failed) /*<>*/ ; } - if(x[1] !== Stdlib[15]) - /*<>*/ return string_of_extension_constructo(x); + /*<>*/ if(x[1] !== Stdlib[15]) + /*<>*/ return string_of_extension_constructo(x) /*<>*/ ; var - match$1 = x[2], + match$1 = /*<>*/ x[2], char$2 = match$1[3], line$1 = match$1[2], file$1 = match$1[1]; - /*<>*/ return /*<>*/ caml_call6 + /*<>*/ return caml_call6 (Stdlib_Printf[4], locfmt, file$1, line$1, char$2, char$2 + 6 | 0, - cst_Undefined_recursive_module); - /*<>*/ } + cst_Undefined_recursive_module) /*<>*/ ; + } function to_string(e){ - /*<>*/ /*<>*/ var - match = use_printers(e); - if(! match) /*<>*/ return to_string_default(e); - var s = match[1]; + var match = /*<>*/ use_printers(e); + /*<>*/ if(! match) + /*<>*/ return to_string_default(e) /*<>*/ ; + var s = /*<>*/ match[1]; /*<>*/ return s; /*<>*/ } function print(fct, arg){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _$_ = /*<>*/ caml_call1(fct, arg); - /*<>*/ return _$_; + var _$_ = /*<>*/ caml_call1(fct, arg); + return _$_; } catch(x$0){ - /*<>*/ var - x = caml_wrap_exception(x$0), - /*<>*/ ___ = to_string(x); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[3], _f_, ___); - /*<>*/ /*<>*/ caml_call1 - (Stdlib[63], Stdlib[40]); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (x, 0); + var + x = /*<>*/ caml_wrap_exception(x$0), + ___ = /*<>*/ to_string(x); + /*<>*/ caml_call2(Stdlib_Printf[3], _f_, ___); + /*<>*/ caml_call1(Stdlib[63], Stdlib[40]); + /*<>*/ throw caml_maybe_attach_backtrace(x, 0); } /*<>*/ } function catch$0(fct, arg){ /*<>*/ try{ - /*<>*/ /*<>*/ var - _Z_ = /*<>*/ caml_call1(fct, arg); - /*<>*/ return _Z_; + var _Z_ = /*<>*/ caml_call1(fct, arg); + return _Z_; } catch(x$0){ - var x = caml_wrap_exception(x$0); - /*<>*/ /*<>*/ caml_call1 - (Stdlib[63], Stdlib[39]); - /*<>*/ /*<>*/ var - _Y_ = to_string(x); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[3], _g_, _Y_); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[99], 2); - } - /*<>*/ } + var x = /*<>*/ caml_wrap_exception(x$0); + /*<>*/ caml_call1(Stdlib[63], Stdlib[39]); + var _Y_ = /*<>*/ to_string(x); + /*<>*/ caml_call2(Stdlib_Printf[3], _g_, _Y_); + /*<>*/ return caml_call1(Stdlib[99], 2) /*<>*/ ; + } + } function raw_backtrace_entries(bt){ /*<>*/ return bt; /*<>*/ } function convert_raw_backtrace(bt){ - /*<>*/ return [0, - /*<>*/ runtime.caml_convert_raw_backtrace(bt)]; + /*<>*/ return [0, + runtime.caml_convert_raw_backtrace(bt)] /*<>*/ ; /*<>*/ } function format_backtrace_slot(pos, slot){ function info(is_raise){ /*<>*/ return is_raise ? 0 === pos ? cst_Raised_at : cst_Re_raised_at - : 0 === pos ? cst_Raised_by_primitive_operat : cst_Called_from; - /*<>*/ } + : 0 === pos ? cst_Raised_by_primitive_operat : cst_Called_from /*<>*/ ; + } /*<>*/ if(0 === slot[0]){ - /*<>*/ var + var lines = - slot[3] === slot[6] + /*<>*/ slot[3] === slot[6] ? /*<>*/ caml_call2 (Stdlib_Printf[4], _h_, slot[3]) : /*<>*/ caml_call3 (Stdlib_Printf[4], _j_, slot[3], slot[6]), - _R_ = slot[7], + _R_ = /*<>*/ slot[7], _S_ = slot[4], _T_ = slot[8] ? cst_inlined : cst$3, - _U_ = slot[2], + _U_ = /*<>*/ slot[2], _V_ = slot[9], - /*<>*/ _W_ = info(slot[1]); - /*<>*/ return [0, - /*<>*/ caml_call8 - (Stdlib_Printf[4], _i_, _W_, _V_, _U_, _T_, lines, _S_, _R_)]; - } - if(slot[1]) /*<>*/ return 0; - /*<>*/ /*<>*/ var _X_ = info(0); - /*<>*/ return [0, - /*<>*/ caml_call2(Stdlib_Printf[4], _k_, _X_)]; + _W_ = info(slot[1]); + /*<>*/ return [0, + caml_call8 + (Stdlib_Printf[4], _i_, _W_, _V_, _U_, _T_, lines, _S_, _R_)] /*<>*/ ; + } + /*<>*/ if(slot[1]) + /*<>*/ return 0; + var _X_ = /*<>*/ info(0); + /*<>*/ return [0, + caml_call2(Stdlib_Printf[4], _k_, _X_)] /*<>*/ ; /*<>*/ } function print_raw_backtrace(outchan, raw_backtrace){ - /*<>*/ /*<>*/ var - backtrace = convert_raw_backtrace(raw_backtrace); - if(! backtrace) - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Printf[1], outchan, _m_); - var a = backtrace[1], _P_ = a.length - 2 | 0, _O_ = 0; + var + backtrace = + /*<>*/ convert_raw_backtrace(raw_backtrace); + /*<>*/ if(! backtrace) + /*<>*/ return caml_call2 + (Stdlib_Printf[1], outchan, _m_) /*<>*/ ; + var + a = /*<>*/ backtrace[1], + _P_ = /*<>*/ a.length - 2 | 0, + _O_ = 0; if(_P_ >= 0){ var i = _O_; for(;;){ - /*<>*/ /*<>*/ var - match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); - if(match){ + var + match = + /*<>*/ /*<>*/ format_backtrace_slot + (i, /*<>*/ caml_check_bound(a, i)[1 + i]); + /*<>*/ if(match){ var str = match[1]; - /*<>*/ /*<>*/ caml_call3 + /*<>*/ caml_call3 (Stdlib_Printf[1], outchan, _l_, str); } - /*<>*/ /*<>*/ var - _Q_ = i + 1 | 0; + var _Q_ = /*<>*/ i + 1 | 0; if(_P_ === i) break; i = _Q_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function print_backtrace(outchan){ - /*<>*/ return print_raw_backtrace + /*<>*/ return /*<>*/ print_raw_backtrace (outchan, - /*<>*/ caml_get_exception_raw_backtra(0)); - /*<>*/ } + /*<>*/ caml_get_exception_raw_backtra(0)) /*<>*/ ; + } function raw_backtrace_to_string(raw_backtrace){ - /*<>*/ /*<>*/ var - backtrace = convert_raw_backtrace(raw_backtrace); - if(! backtrace) + var + backtrace = + /*<>*/ convert_raw_backtrace(raw_backtrace); + /*<>*/ if(! backtrace) /*<>*/ return cst_Program_not_linked_with_g_; - /*<>*/ var - a = backtrace[1], - /*<>*/ b = - /*<>*/ caml_call1(Stdlib_Buffer[1], 1024), - _M_ = a.length - 2 | 0, - /*<>*/ _L_ = 0; + var + a = /*<>*/ backtrace[1], + b = /*<>*/ caml_call1(Stdlib_Buffer[1], 1024), + _M_ = /*<>*/ a.length - 2 | 0, + _L_ = 0; if(_M_ >= 0){ var i = _L_; for(;;){ - /*<>*/ /*<>*/ var - match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); - if(match){ + var + match = + /*<>*/ /*<>*/ format_backtrace_slot + (i, /*<>*/ caml_check_bound(a, i)[1 + i]); + /*<>*/ if(match){ var str = match[1]; - /*<>*/ /*<>*/ caml_call3 - (Stdlib_Printf[5], b, _n_, str); + /*<>*/ caml_call3(Stdlib_Printf[5], b, _n_, str); } - /*<>*/ /*<>*/ var - _N_ = i + 1 | 0; + var _N_ = /*<>*/ i + 1 | 0; if(_M_ === i) break; i = _N_; } } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Buffer[2], b); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_Buffer[2], b) /*<>*/ ; + } function backtrace_slot_is_raise(param){ - /*<>*/ return 0 === param[0] ? param[1] : param[1]; - /*<>*/ } + /*<>*/ return 0 === param[0] ? param[1] : param[1] /*<>*/ ; + } function backtrace_slot_is_inline(param){ - /*<>*/ return 0 === param[0] ? param[8] : 0; - /*<>*/ } + /*<>*/ return 0 === param[0] ? param[8] : 0 /*<>*/ ; + } function backtrace_slot_location(param){ /*<>*/ return 0 === param[0] ? [0, [0, param[2], param[3], param[4], param[5], param[6], param[7]]] - : 0; - /*<>*/ } + : 0 /*<>*/ ; + } function backtrace_slot_defname(param){ /*<>*/ if(0 === param[0] && param[9] !== cst$4) /*<>*/ return [0, param[9]]; /*<>*/ return 0; /*<>*/ } function backtrace_slots(raw_backtrace){ - /*<>*/ /*<>*/ var - match = convert_raw_backtrace(raw_backtrace); - if(! match) /*<>*/ return 0; - var backtrace = match[1], i$1 = backtrace.length - 2 | 0, i = i$1; - /*<>*/ for(;;){ - if(-1 === i) - var _K_ = 0; + var + match = /*<>*/ convert_raw_backtrace(raw_backtrace); + /*<>*/ if(! match) + /*<>*/ return 0; + var + backtrace = /*<>*/ match[1], + i$1 = /*<>*/ backtrace.length - 2 | 0, + i = /*<>*/ i$1; + for(;;){ + /*<>*/ if(-1 === i) + var _K_ = /*<>*/ 0; else{ - var _J_ = 0 === caml_check_bound(backtrace, i)[1 + i][0] ? 1 : 0; - /*<>*/ if(! _J_){ + var + _J_ = + /*<>*/ 0 + === caml_check_bound(backtrace, i)[1 + i][0] + ? 1 + : 0; + /*<>*/ if(! _J_){ var i$0 = i - 1 | 0; i = i$0; continue; } var _K_ = _J_; } - /*<>*/ return _K_ ? [0, backtrace] : 0; + /*<>*/ return _K_ ? [0, backtrace] : 0 /*<>*/ ; } - /*<>*/ } + } function backtrace_slots_of_raw_entry(entry){ - /*<>*/ return backtrace_slots([0, entry]); - /*<>*/ } + /*<>*/ return backtrace_slots([0, entry]) /*<>*/ ; + } function raw_backtrace_length(bt){ /*<>*/ return bt.length - 1; /*<>*/ } function get_backtrace(param){ - /*<>*/ return raw_backtrace_to_string - ( /*<>*/ caml_get_exception_raw_backtra(0)); - /*<>*/ } + /*<>*/ return /*<>*/ raw_backtrace_to_string + ( /*<>*/ caml_get_exception_raw_backtra(0)) /*<>*/ ; + } function register_printer(fn){ /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ old_printers = + var + old_printers = /*<>*/ caml_call1(Stdlib_Atomic[3], printers), - /*<>*/ new_printers = [0, fn, old_printers], - /*<>*/ success = + new_printers = /*<>*/ [0, fn, old_printers], + success = /*<>*/ caml_call3 (Stdlib_Atomic[6], printers, old_printers, new_printers), - /*<>*/ _I_ = 1 - success; - if(! _I_) /*<>*/ return _I_; + _I_ = /*<>*/ 1 - success; + if(! _I_) return _I_; } /*<>*/ } function exn_slot(x){ - /*<>*/ return 0 - === /*<>*/ caml_obj_tag(x) - ? x[1] - : x; - /*<>*/ } + /*<>*/ return 0 === caml_obj_tag(x) ? x[1] : x /*<>*/ ; + } function exn_slot_id(x){ - /*<>*/ /*<>*/ var - slot = exn_slot(x); - /*<>*/ return slot[2]; + var slot = /*<>*/ exn_slot(x); + /*<>*/ return slot[2]; /*<>*/ } function exn_slot_name(x){ - /*<>*/ /*<>*/ var - slot = exn_slot(x); - /*<>*/ return slot[1]; + var slot = /*<>*/ exn_slot(x); + /*<>*/ return slot[1]; /*<>*/ } var errors = - [0, + /*<>*/ [0, cst$4, "(Cannot print locations:\n bytecode executable program file not found)", "(Cannot print locations:\n bytecode executable program file appears to be corrupt)", @@ -22758,32 +23192,28 @@ [11, cst_Fatal_error_exception, [2, 0, [12, 10, 0]]], cst_Fatal_error_exception_s]; function default_uncaught_exception_han(exn, raw_backtrace){ - /*<>*/ /*<>*/ var - _F_ = to_string(exn); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[3], _o_, _F_); + var _F_ = /*<>*/ to_string(exn); + /*<>*/ caml_call2(Stdlib_Printf[3], _o_, _F_); /*<>*/ print_raw_backtrace(Stdlib[40], raw_backtrace); - /*<>*/ /*<>*/ var + var status = /*<>*/ runtime.caml_ml_debug_info_status(0); - if(status < 0){ - /*<>*/ var - /*<>*/ _G_ = - /*<>*/ caml_call1(Stdlib[18], status), - /*<>*/ _H_ = caml_check_bound(errors, _G_)[1 + _G_]; - /*<>*/ /*<>*/ caml_call1 - (Stdlib[53], _H_); - } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[63], Stdlib[40]); - /*<>*/ } - /*<>*/ /*<>*/ var - uncaught_exception_handler = [0, default_uncaught_exception_han]; + /*<>*/ if(status < 0){ + var + _G_ = /*<>*/ caml_call1(Stdlib[18], status), + _H_ = /*<>*/ caml_check_bound(errors, _G_)[1 + _G_]; + /*<>*/ caml_call1(Stdlib[53], _H_); + } + /*<>*/ return caml_call1(Stdlib[63], Stdlib[40]) /*<>*/ ; + } + var + uncaught_exception_handler = + /*<>*/ [0, default_uncaught_exception_han]; function set_uncaught_exception_handler(fn){ /*<>*/ uncaught_exception_handler[1] = fn; return 0; /*<>*/ } var - empty_backtrace = [0], + empty_backtrace = /*<>*/ [0], cst_Fatal_error_out_of_memory_ = "Fatal error: out of memory in uncaught exception handler", _p_ = @@ -22805,55 +23235,53 @@ ? empty_backtrace : /*<>*/ caml_get_exception_raw_backtra(0); /*<>*/ try{ - /*<>*/ /*<>*/ caml_call1 - (Stdlib[103], 0); + /*<>*/ caml_call1(Stdlib[103], 0); } catch(_E_){} /*<>*/ try{ - /*<>*/ var - /*<>*/ _A_ = + var + _A_ = /*<>*/ caml_call2 (uncaught_exception_handler[1], exn$0, raw_backtrace), _z_ = _A_; } catch(exn$1){ - /*<>*/ var - exn = caml_wrap_exception(exn$1), - /*<>*/ raw_backtrace$0 = + var + exn = /*<>*/ caml_wrap_exception(exn$1), + raw_backtrace$0 = /*<>*/ caml_get_exception_raw_backtra(0), - /*<>*/ _x_ = to_string(exn$0); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[3], _p_, _x_); + _x_ = /*<>*/ to_string(exn$0); + /*<>*/ caml_call2(Stdlib_Printf[3], _p_, _x_); /*<>*/ print_raw_backtrace (Stdlib[40], raw_backtrace); - /*<>*/ /*<>*/ var - _y_ = to_string(exn); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[3], _q_, _y_); + var _y_ = /*<>*/ to_string(exn); + /*<>*/ caml_call2(Stdlib_Printf[3], _q_, _y_); /*<>*/ print_raw_backtrace (Stdlib[40], raw_backtrace$0); var - _z_ = /*<>*/ caml_call1(Stdlib[63], Stdlib[40]); + _z_ = + /*<>*/ /*<>*/ caml_call1 + (Stdlib[63], Stdlib[40]); } var _B_ = _z_; } catch(_D_){ - var _w_ = caml_wrap_exception(_D_); + var _w_ = /*<>*/ caml_wrap_exception(_D_); if(_w_ !== Stdlib[9]) throw caml_maybe_attach_backtrace(_w_, 0); var _B_ = /*<>*/ caml_call1 (Stdlib[53], cst_Fatal_error_out_of_memory_); } - /*<>*/ return _B_; + return _B_; } catch(_C_){ /*<>*/ return 0;} /*<>*/ } - /*<>*/ /*<>*/ runtime.caml_register_named_value + /*<>*/ runtime.caml_register_named_value ("Printexc.handle_uncaught_exception", handle_uncaught_exception); var Stdlib_Printexc = - [0, + /*<>*/ [0, to_string, to_string_default, print, @@ -22879,19 +23307,14 @@ backtrace_slot_defname, format_backtrace_slot], raw_backtrace_length, - function(_u_, _t_){ - /*<>*/ return runtime.caml_raw_backtrace_slot(_u_, _t_); - }, - function(_s_){ - /*<>*/ return runtime.caml_convert_raw_backtrace_slot(_s_); - }, - function(_r_){ - /*<>*/ return runtime.caml_raw_backtrace_next_slot(_r_); - }, + function(_u_, _t_){return runtime.caml_raw_backtrace_slot(_u_, _t_);}, + function(_s_){return runtime.caml_convert_raw_backtrace_slot(_s_);}, + function(_r_){return runtime.caml_raw_backtrace_next_slot(_r_);}, exn_slot_id, exn_slot_name, string_of_extension_constructo]; - runtime.caml_register_global(43, Stdlib_Printexc, "Stdlib__Printexc"); + /*<>*/ runtime.caml_register_global + (43, Stdlib_Printexc, "Stdlib__Printexc"); return; /*<>*/ } (globalThis)); @@ -22906,12 +23329,12 @@ caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_restore_raw_backtrace = runtime.caml_restore_raw_backtrace, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -22924,69 +23347,71 @@ /*<>*/ return c; /*<>*/ } function compose(f, g, x){ - /*<>*/ return /*<>*/ caml_call1 - (f, /*<>*/ caml_call1(g, x)); - /*<>*/ } + /*<>*/ return /*<>*/ caml_call1 + (f, /*<>*/ caml_call1(g, x)) /*<>*/ ; + } function flip(f, x, y){ - /*<>*/ return /*<>*/ caml_call2(f, y, x); - /*<>*/ } + /*<>*/ return caml_call2(f, y, x) /*<>*/ ; + } function negate(p, v){ - /*<>*/ return 1 - /*<>*/ caml_call1(p, v); - /*<>*/ } - /*<>*/ var - /*<>*/ Finally_raised = - [248, "Stdlib.Fun.Finally_raised", runtime.caml_fresh_oo_id(0)], + /*<>*/ return 1 - caml_call1(p, v) /*<>*/ ; + } + var + Finally_raised = + /*<>*/ [248, + "Stdlib.Fun.Finally_raised", + runtime.caml_fresh_oo_id(0)], cst_Fun_Finally_raised = "Fun.Finally_raised: "; - /*<>*/ /*<>*/ caml_call1 + /*<>*/ caml_call1 (Stdlib_Printexc[9], function(param){ /*<>*/ if(param[1] !== Finally_raised) /*<>*/ return 0; - /*<>*/ var - exn = param[2], - /*<>*/ _a_ = - /*<>*/ caml_call1(Stdlib_Printexc[1], exn); - /*<>*/ return [0, - /*<>*/ caml_call2 - (Stdlib[28], cst_Fun_Finally_raised, _a_)]; + var + exn = /*<>*/ param[2], + _a_ = /*<>*/ caml_call1(Stdlib_Printexc[1], exn); + /*<>*/ return [0, + caml_call2(Stdlib[28], cst_Fun_Finally_raised, _a_)] /*<>*/ ; /*<>*/ }); var dummy = 0; function protect(finally$0, work){ function finally_no_exn(param){ /*<>*/ try{ - /*<>*/ /*<>*/ caml_call1(finally$0, 0); - /*<>*/ return; + /*<>*/ caml_call1(finally$0, 0); + return; } catch(e$0){ - /*<>*/ var - e = caml_wrap_exception(e$0), - /*<>*/ bt = - /*<>*/ caml_call1(Stdlib_Printexc[12], 0), - /*<>*/ exn = [0, Finally_raised, e]; + var + e = /*<>*/ caml_wrap_exception(e$0), + bt = /*<>*/ caml_call1(Stdlib_Printexc[12], 0), + exn = /*<>*/ [0, Finally_raised, e]; caml_restore_raw_backtrace(exn, bt); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (exn, 0); + throw caml_maybe_attach_backtrace(exn, 0); } /*<>*/ } /*<>*/ try{ - /*<>*/ /*<>*/ var - result = /*<>*/ caml_call1(work, 0); + var result = /*<>*/ caml_call1(work, 0); } catch(work_exn$0){ - /*<>*/ var - work_exn = caml_wrap_exception(work_exn$0), - /*<>*/ work_bt = - /*<>*/ caml_call1(Stdlib_Printexc[12], 0); + var + work_exn = /*<>*/ caml_wrap_exception(work_exn$0), + work_bt = /*<>*/ caml_call1(Stdlib_Printexc[12], 0); /*<>*/ finally_no_exn(0); - caml_restore_raw_backtrace(work_exn, work_bt); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (work_exn, 0); + /*<>*/ caml_restore_raw_backtrace(work_exn, work_bt); + throw caml_maybe_attach_backtrace(work_exn, 0); } /*<>*/ finally_no_exn(0); - /*<>*/ return result; + /*<>*/ return result; /*<>*/ } var - Stdlib_Fun = [0, const$0, compose, flip, negate, protect, Finally_raised]; + Stdlib_Fun = + /*<>*/ [0, + const$0, + compose, + flip, + negate, + protect, + Finally_raised]; runtime.caml_register_global(4, Stdlib_Fun, "Stdlib__Fun"); return; /*<>*/ } @@ -23001,22 +23426,22 @@ runtime = globalThis.jsoo_runtime, cst = "\n", caml_ml_string_length = runtime.caml_ml_string_length; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); @@ -23105,100 +23530,76 @@ function eventlog_resume(param){ /*<>*/ return 0; /*<>*/ } function print_stat(c){ - /*<>*/ /*<>*/ var - st = /*<>*/ runtime.caml_gc_stat(0); - /*<>*/ /*<>*/ caml_call3 - (Stdlib_Printf[1], c, _a_, st[4]); - /*<>*/ /*<>*/ caml_call3 - (Stdlib_Printf[1], c, _b_, st[5]); - /*<>*/ /*<>*/ caml_call3 - (Stdlib_Printf[1], c, _c_, st[14]); - /*<>*/ /*<>*/ caml_call3 - (Stdlib_Printf[1], c, _d_, st[17]); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[1], c, _e_); - /*<>*/ /*<>*/ var + var st = /*<>*/ runtime.caml_gc_stat(0); + /*<>*/ caml_call3(Stdlib_Printf[1], c, _a_, st[4]); + /*<>*/ caml_call3(Stdlib_Printf[1], c, _b_, st[5]); + /*<>*/ caml_call3(Stdlib_Printf[1], c, _c_, st[14]); + /*<>*/ caml_call3(Stdlib_Printf[1], c, _d_, st[17]); + /*<>*/ caml_call2(Stdlib_Printf[1], c, _e_); + var l1 = - /*<>*/ caml_ml_string_length + /*<>*/ /*<>*/ caml_ml_string_length ( /*<>*/ caml_call2(Stdlib_Printf[4], _f_, st[1])); - /*<>*/ /*<>*/ caml_call4 - (Stdlib_Printf[1], c, _g_, l1, st[1]); - /*<>*/ /*<>*/ caml_call4 - (Stdlib_Printf[1], c, _h_, l1, st[2]); - /*<>*/ /*<>*/ caml_call4 - (Stdlib_Printf[1], c, _i_, l1, st[3]); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[1], c, _j_); - /*<>*/ /*<>*/ var + /*<>*/ caml_call4(Stdlib_Printf[1], c, _g_, l1, st[1]); + /*<>*/ caml_call4(Stdlib_Printf[1], c, _h_, l1, st[2]); + /*<>*/ caml_call4(Stdlib_Printf[1], c, _i_, l1, st[3]); + /*<>*/ caml_call2(Stdlib_Printf[1], c, _j_); + var l2 = - /*<>*/ caml_ml_string_length + /*<>*/ /*<>*/ caml_ml_string_length ( /*<>*/ caml_call2(Stdlib_Printf[4], _k_, st[15])); - /*<>*/ /*<>*/ caml_call4 - (Stdlib_Printf[1], c, _l_, l2, st[15]); - /*<>*/ /*<>*/ caml_call4 - (Stdlib_Printf[1], c, _m_, l2, st[6]); - /*<>*/ /*<>*/ caml_call4 - (Stdlib_Printf[1], c, _n_, l2, st[8]); - /*<>*/ /*<>*/ caml_call4 - (Stdlib_Printf[1], c, _o_, l2, st[10]); - /*<>*/ /*<>*/ caml_call4 - (Stdlib_Printf[1], c, _p_, l2, st[12]); - /*<>*/ /*<>*/ caml_call4 - (Stdlib_Printf[1], c, _q_, l2, st[13]); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Printf[1], c, _r_); - /*<>*/ /*<>*/ caml_call3 - (Stdlib_Printf[1], c, _s_, st[9]); - /*<>*/ /*<>*/ caml_call3 - (Stdlib_Printf[1], c, _t_, st[11]); - return caml_call3(Stdlib_Printf[1], c, _u_, st[7]); - /*<>*/ } + /*<>*/ caml_call4(Stdlib_Printf[1], c, _l_, l2, st[15]); + /*<>*/ caml_call4(Stdlib_Printf[1], c, _m_, l2, st[6]); + /*<>*/ caml_call4(Stdlib_Printf[1], c, _n_, l2, st[8]); + /*<>*/ caml_call4(Stdlib_Printf[1], c, _o_, l2, st[10]); + /*<>*/ caml_call4(Stdlib_Printf[1], c, _p_, l2, st[12]); + /*<>*/ caml_call4(Stdlib_Printf[1], c, _q_, l2, st[13]); + /*<>*/ caml_call2(Stdlib_Printf[1], c, _r_); + /*<>*/ caml_call3(Stdlib_Printf[1], c, _s_, st[9]); + /*<>*/ caml_call3(Stdlib_Printf[1], c, _t_, st[11]); + /*<>*/ return caml_call3(Stdlib_Printf[1], c, _u_, st[7]) /*<>*/ ; + } function allocated_bytes(param){ - /*<>*/ var - /*<>*/ match = - /*<>*/ runtime.caml_gc_counters(0), - ma = match[3], + var + match = /*<>*/ runtime.caml_gc_counters(0), + ma = /*<>*/ match[3], pro = match[2], mi = match[1]; - /*<>*/ return (mi + ma - pro) * (Stdlib_Sys[9] / 8 | 0); - /*<>*/ } + /*<>*/ return (mi + ma - pro) * (Stdlib_Sys[9] / 8 | 0); + } function delete_alarm(a){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Atomic[4], a, 0); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib_Atomic[4], a, 0) /*<>*/ ; + } function create_alarm(f){ - /*<>*/ /*<>*/ var - _y_ = /*<>*/ caml_call1(Stdlib_Atomic[1], 1); - /*<>*/ /*<>*/ caml_call1 + var _y_ = /*<>*/ caml_call1(Stdlib_Atomic[1], 1); + /*<>*/ caml_call1 (Stdlib_Domain[6], function(param){ - /*<>*/ return delete_alarm(_y_); - /*<>*/ }); - return _y_; + /*<>*/ return delete_alarm(_y_) /*<>*/ ; + }); + /*<>*/ return _y_; /*<>*/ } - /*<>*/ /*<>*/ var + var null_tracker = - [0, + /*<>*/ [0, function(param){ /*<>*/ return 0; /*<>*/ }, function(param){ /*<>*/ return 0; /*<>*/ }, function(param){ /*<>*/ return 0; /*<>*/ }, function(param){ /*<>*/ return 0; /*<>*/ }, function(param){ /*<>*/ return 0; /*<>*/ }]; function start(sampling_rate, opt, tracker){ - var callstack_size = opt ? opt[1] : Stdlib[19]; - /*<>*/ return /*<>*/ runtime.caml_memprof_start - (sampling_rate, callstack_size, tracker); + var callstack_size = /*<>*/ opt ? opt[1] : Stdlib[19]; + /*<>*/ return runtime.caml_memprof_start + (sampling_rate, callstack_size, tracker) /*<>*/ ; } var Stdlib_Gc = - [0, + /*<>*/ [0, print_stat, allocated_bytes, - function(_x_, _w_){ - /*<>*/ return runtime.caml_final_register(_x_, _w_); - }, + function(_x_, _w_){return runtime.caml_final_register(_x_, _w_);}, runtime.caml_final_register_called_without_value, - function(_v_){ /*<>*/ return runtime.caml_final_release(_v_);}, + function(_v_){return runtime.caml_final_release(_v_);}, create_alarm, delete_alarm, eventlog_pause, @@ -23210,7 +23611,7 @@ runtime.caml_memprof_discard]]; runtime.caml_register_global(27, Stdlib_Gc, "Stdlib__Gc"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__In_channel @@ -23226,27 +23627,27 @@ caml_ml_bytes_length = runtime.caml_ml_bytes_length, caml_ml_input_bigarray = runtime.caml_ml_input_bigarray, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); @@ -23262,75 +23663,69 @@ open_text = Stdlib[79], open_gen = Stdlib[81]; function with_open(openfun, s, f){ - /*<>*/ /*<>*/ var - ic = /*<>*/ caml_call1(openfun, s); - /*<>*/ return /*<>*/ caml_call2 + var ic = /*<>*/ caml_call1(openfun, s); + /*<>*/ return caml_call2 (Stdlib_Fun[5], function(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[94], ic); - /*<>*/ }, + /*<>*/ return caml_call1(Stdlib[94], ic) /*<>*/ ; + }, function(param){ - /*<>*/ return /*<>*/ caml_call1 - (f, ic); - /*<>*/ }); - /*<>*/ } + /*<>*/ return caml_call1(f, ic) /*<>*/ ; + }) /*<>*/ ; + } function with_open_bin(s, f){ - /*<>*/ return with_open(Stdlib[80], s, f); - /*<>*/ } + /*<>*/ return with_open(Stdlib[80], s, f) /*<>*/ ; + } function with_open_text(s, f){ - /*<>*/ return with_open(Stdlib[79], s, f); - /*<>*/ } + /*<>*/ return with_open(Stdlib[79], s, f) /*<>*/ ; + } function with_open_gen(flags, perm, s, f){ - /*<>*/ return with_open + /*<>*/ return /*<>*/ with_open ( /*<>*/ caml_call2(Stdlib[81], flags, perm), s, - f); - /*<>*/ } + f) /*<>*/ ; + } var - seek = Stdlib[96][4], + seek = /*<>*/ Stdlib[96][4], pos = Stdlib[96][5], length = Stdlib[96][6], close = Stdlib[93], close_noerr = Stdlib[94]; function input_char(ic){ /*<>*/ try{ - /*<>*/ /*<>*/ var - c = /*<>*/ caml_call1(Stdlib[82], ic); + var c = /*<>*/ caml_call1(Stdlib[82], ic); } catch(_x_){ - var _w_ = caml_wrap_exception(_x_); + var _w_ = /*<>*/ caml_wrap_exception(_x_); if(_w_ === Stdlib[12]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_w_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_w_, 0); } /*<>*/ return [0, c]; /*<>*/ } function input_byte(ic){ /*<>*/ try{ - /*<>*/ /*<>*/ var - n = /*<>*/ caml_call1(Stdlib[87], ic); + var n = /*<>*/ caml_call1(Stdlib[87], ic); } catch(_v_){ - var _u_ = caml_wrap_exception(_v_); + var _u_ = /*<>*/ caml_wrap_exception(_v_); if(_u_ === Stdlib[12]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_u_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_u_, 0); } /*<>*/ return [0, n]; /*<>*/ } function input_line(ic){ /*<>*/ try{ - /*<>*/ /*<>*/ var - s = /*<>*/ caml_call1(Stdlib[83], ic); + var s = /*<>*/ caml_call1(Stdlib[83], ic); } catch(_t_){ - var _s_ = caml_wrap_exception(_t_); + var _s_ = /*<>*/ caml_wrap_exception(_t_); if(_s_ === Stdlib[12]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_s_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_s_, 0); } /*<>*/ return [0, s]; /*<>*/ } var - input = Stdlib[84], + input = /*<>*/ Stdlib[84], cst_input_bigarray = "input_bigarray", _a_ = [0, 0], _b_ = [0, 0], @@ -23343,21 +23738,20 @@ && 0 <= len && ( /*<>*/ caml_ba_dim_1(buf) - len | 0) >= ofs) - /*<>*/ return /*<>*/ caml_ml_input_bigarray - (ic, buf, ofs, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_input_bigarray); - /*<>*/ } + /*<>*/ return caml_ml_input_bigarray + (ic, buf, ofs, len) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_input_bigarray) /*<>*/ ; + } function really_input(ic, buf, pos, len){ /*<>*/ try{ - /*<>*/ /*<>*/ caml_call4 - (Stdlib[85], ic, buf, pos, len); + /*<>*/ caml_call4(Stdlib[85], ic, buf, pos, len); /*<>*/ return _a_; } catch(_r_){ - var _q_ = caml_wrap_exception(_r_); + var _q_ = /*<>*/ caml_wrap_exception(_r_); if(_q_ === Stdlib[12]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_q_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_q_, 0); } /*<>*/ } function really_input_bigarray(ic, buf, ofs$1, len$1){ @@ -23367,189 +23761,182 @@ 0 <= len$1 && ( /*<>*/ caml_ba_dim_1(buf) - len$1 | 0) >= ofs$1){ - var ofs = ofs$1, len = len$1; - /*<>*/ for(;;){ - if(0 >= len) /*<>*/ return _b_; - /*<>*/ /*<>*/ var + var ofs = /*<>*/ ofs$1, len = len$1; + for(;;){ + /*<>*/ if(0 >= len) + /*<>*/ return _b_; + var r = /*<>*/ caml_ml_input_bigarray (ic, buf, ofs, len); /*<>*/ if(0 === r) /*<>*/ return 0; - var len$0 = len - r | 0, ofs$0 = ofs + r | 0; + var + len$0 = /*<>*/ len - r | 0, + ofs$0 = ofs + r | 0; ofs = ofs$0; len = len$0; } } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_really_input_bigarray); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[1], cst_really_input_bigarray) /*<>*/ ; + } function really_input_string(ic, len){ /*<>*/ try{ - /*<>*/ /*<>*/ var - s = /*<>*/ caml_call2(Stdlib[86], ic, len); + var s = /*<>*/ caml_call2(Stdlib[86], ic, len); } catch(_p_){ - var _o_ = caml_wrap_exception(_p_); + var _o_ = /*<>*/ caml_wrap_exception(_p_); if(_o_ === Stdlib[12]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_o_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_o_, 0); } /*<>*/ return [0, s]; /*<>*/ } function read_upto(ic, buf, ofs, len){ - /*<>*/ var ofs$0 = ofs, len$0 = len; - /*<>*/ for(;;){ - if(0 !== len$0){ - /*<>*/ /*<>*/ var + var ofs$0 = /*<>*/ ofs, len$0 = len; + for(;;){ + /*<>*/ if(0 !== len$0){ + var r = /*<>*/ caml_call4 (Stdlib[84], ic, buf, ofs$0, len$0); /*<>*/ if(0 !== r){ - var len$1 = len$0 - r | 0, ofs$1 = ofs$0 + r | 0; + var + len$1 = /*<>*/ len$0 - r | 0, + ofs$1 = ofs$0 + r | 0; ofs$0 = ofs$1; len$0 = len$1; continue; } } - /*<>*/ return ofs$0 - ofs | 0; + /*<>*/ return ofs$0 - ofs | 0; } /*<>*/ } function ensure(buf, ofs, n){ - /*<>*/ var len = caml_ml_bytes_length(buf); - if((ofs + n | 0) <= len) /*<>*/ return buf; - /*<>*/ /*<>*/ var - new_len = [0, len]; - for(;;){ + var len = /*<>*/ caml_ml_bytes_length(buf); + /*<>*/ if((ofs + n | 0) <= len) + /*<>*/ return buf; + var new_len = /*<>*/ [0, len]; + /*<>*/ for(;;){ if(new_len[1] >= (ofs + n | 0)) break; - new_len[1] = (2 * new_len[1] | 0) + 1 | 0; + /*<>*/ new_len[1] = (2 * new_len[1] | 0) + 1 | 0; } - /*<>*/ var - new_len$0 = new_len[1], + var + new_len$0 = /*<>*/ new_len[1], new_len$1 = - new_len$0 <= Stdlib_Sys[12] + /*<>*/ new_len$0 <= Stdlib_Sys[12] ? new_len$0 : ofs < Stdlib_Sys[12] ? Stdlib_Sys[12] : /*<>*/ caml_call1 (Stdlib[2], cst_In_channel_input_all_chann), - /*<>*/ new_buf = - /*<>*/ caml_create_bytes(new_len$1); - /*<>*/ /*<>*/ caml_call5 + new_buf = /*<>*/ caml_create_bytes(new_len$1); + /*<>*/ caml_call5 (Stdlib_Bytes[11], buf, 0, new_buf, 0, ofs); - /*<>*/ return new_buf; + /*<>*/ return new_buf; /*<>*/ } function input_all(ic){ - /*<>*/ /*<>*/ var - chunk_size = 65536; + var chunk_size = /*<>*/ 65536; /*<>*/ try{ - /*<>*/ var - /*<>*/ _k_ = - /*<>*/ caml_call1(Stdlib[91], ic), - /*<>*/ _l_ = - /*<>*/ caml_call1(Stdlib[92], ic) - _k_ | 0, + var + _k_ = /*<>*/ caml_call1(Stdlib[91], ic), + _l_ = /*<>*/ caml_call1(Stdlib[92], ic) - _k_ | 0, initial_size = _l_; } catch(_n_){ - var _i_ = caml_wrap_exception(_n_); + var _i_ = /*<>*/ caml_wrap_exception(_n_); if(_i_[1] !== Stdlib[11]) throw caml_maybe_attach_backtrace(_i_, 0); - var initial_size = -1; + var initial_size = /*<>*/ -1; } - /*<>*/ var - /*<>*/ initial_size$0 = - 0 <= initial_size ? initial_size : chunk_size, + var + initial_size$0 = + /*<>*/ 0 <= initial_size + ? initial_size + : chunk_size, initial_size$1 = - initial_size$0 <= Stdlib_Sys[12] ? initial_size$0 : Stdlib_Sys[12], - /*<>*/ buf = - /*<>*/ caml_create_bytes(initial_size$1), - /*<>*/ nread = - read_upto(ic, buf, 0, initial_size$1); - if(nread < initial_size$1) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Bytes[8], buf, 0, nread); + /*<>*/ initial_size$0 <= Stdlib_Sys[12] + ? initial_size$0 + : Stdlib_Sys[12], + buf = /*<>*/ caml_create_bytes(initial_size$1), + nread = + /*<>*/ read_upto(ic, buf, 0, initial_size$1); + /*<>*/ if(nread < initial_size$1) + /*<>*/ return caml_call3 + (Stdlib_Bytes[8], buf, 0, nread) /*<>*/ ; /*<>*/ try{ - /*<>*/ /*<>*/ var - c = /*<>*/ caml_call1(Stdlib[82], ic); + var c = /*<>*/ caml_call1(Stdlib[82], ic); } catch(_m_){ - var _j_ = caml_wrap_exception(_m_); + var _j_ = /*<>*/ caml_wrap_exception(_m_); if(_j_ === Stdlib[12]) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], buf); - throw caml_maybe_attach_backtrace(_j_, 0); - } - /*<>*/ /*<>*/ var - buf$2 = ensure(buf, nread, 65537); - /*<>*/ /*<>*/ runtime.caml_bytes_set - (buf$2, nread, c); - /*<>*/ var - /*<>*/ ofs$1 = nread + 1 | 0, + /*<>*/ return caml_call1(Stdlib_Bytes[44], buf) /*<>*/ ; + /*<>*/ throw caml_maybe_attach_backtrace(_j_, 0); + } + var buf$2 = /*<>*/ ensure(buf, nread, 65537); + /*<>*/ runtime.caml_bytes_set(buf$2, nread, c); + var + ofs$1 = /*<>*/ nread + 1 | 0, buf$0 = buf$2, ofs = ofs$1; - /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ buf$1 = ensure(buf$0, ofs, chunk_size), - rem = caml_ml_bytes_length(buf$1) - ofs | 0, - /*<>*/ r = read_upto(ic, buf$1, ofs, rem); - if(r < rem) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Bytes[8], buf$1, 0, ofs + r | 0); - var ofs$0 = ofs + rem | 0; + for(;;){ + var + buf$1 = /*<>*/ ensure(buf$0, ofs, chunk_size), + rem = + /*<>*/ caml_ml_bytes_length(buf$1) - ofs | 0, + r = /*<>*/ read_upto(ic, buf$1, ofs, rem); + /*<>*/ if(r < rem) + /*<>*/ return caml_call3 + (Stdlib_Bytes[8], buf$1, 0, ofs + r | 0) /*<>*/ ; + var ofs$0 = /*<>*/ ofs + rem | 0; buf$0 = buf$1; ofs = ofs$0; } /*<>*/ } function input_lines(ic){ /*<>*/ try{ - /*<>*/ /*<>*/ var - line = /*<>*/ caml_call1(Stdlib[83], ic); + var line = /*<>*/ caml_call1(Stdlib[83], ic); } catch(_h_){ - var _e_ = caml_wrap_exception(_h_); + var _e_ = /*<>*/ caml_wrap_exception(_h_); if(_e_ === Stdlib[12]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_e_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_e_, 0); } - /*<>*/ var - /*<>*/ block = [0, line, 24029], - dst = block, + var + block = /*<>*/ [0, line, 24029], + dst = /*<>*/ block, offset = 1; - /*<>*/ for(;;){ + for(;;){ /*<>*/ try{ - /*<>*/ /*<>*/ var - line$0 = /*<>*/ caml_call1(Stdlib[83], ic); + var line$0 = /*<>*/ caml_call1(Stdlib[83], ic); } catch(_g_){ - var _f_ = caml_wrap_exception(_g_); + var _f_ = /*<>*/ caml_wrap_exception(_g_); if(_f_ !== Stdlib[12]) throw caml_maybe_attach_backtrace(_f_, 0); - dst[1 + offset] = 0; - /*<>*/ return block; + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return block; } - /*<>*/ /*<>*/ var - dst$0 = [0, line$0, 24029]; + var dst$0 = /*<>*/ [0, line$0, 24029]; dst[1 + offset] = dst$0; dst = dst$0; offset = 1; } /*<>*/ } function fold_lines(f, accu, ic){ - /*<>*/ var accu$0 = accu; - /*<>*/ for(;;){ - /*<>*/ try{ - /*<>*/ /*<>*/ var - line = /*<>*/ caml_call1(Stdlib[83], ic); - } + var accu$0 = /*<>*/ accu; + for(;;){ + try{var line = /*<>*/ caml_call1(Stdlib[83], ic);} catch(_d_){ - var _c_ = caml_wrap_exception(_d_); + var _c_ = /*<>*/ caml_wrap_exception(_d_); if(_c_ === Stdlib[12]) /*<>*/ return accu$0; - throw caml_maybe_attach_backtrace(_c_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_c_, 0); } - /*<>*/ /*<>*/ var - accu$1 = /*<>*/ caml_call2(f, accu$0, line); - accu$0 = accu$1; + var accu$1 = /*<>*/ caml_call2(f, accu$0, line); + /*<>*/ accu$0 = accu$1; } /*<>*/ } var - set_binary_mode = Stdlib[95], + set_binary_mode = /*<>*/ Stdlib[95], Stdlib_In_channel = [0, stdin, @@ -23580,7 +23967,7 @@ runtime.caml_sys_isatty]; runtime.caml_register_global(9, Stdlib_In_channel, "Stdlib__In_channel"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Out_channel @@ -23589,12 +23976,12 @@ (globalThis){ "use strict"; var runtime = globalThis.jsoo_runtime; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); @@ -23609,33 +23996,30 @@ open_text = Stdlib[60], open_gen = Stdlib[62]; function with_open(openfun, s, f){ - /*<>*/ /*<>*/ var - oc = /*<>*/ caml_call1(openfun, s); - /*<>*/ return /*<>*/ caml_call2 + var oc = /*<>*/ caml_call1(openfun, s); + /*<>*/ return caml_call2 (Stdlib_Fun[5], function(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[77], oc); - /*<>*/ }, + /*<>*/ return caml_call1(Stdlib[77], oc) /*<>*/ ; + }, function(param){ - /*<>*/ return /*<>*/ caml_call1 - (f, oc); - /*<>*/ }); - /*<>*/ } + /*<>*/ return caml_call1(f, oc) /*<>*/ ; + }) /*<>*/ ; + } function with_open_bin(s, f){ - /*<>*/ return with_open(Stdlib[61], s, f); - /*<>*/ } + /*<>*/ return with_open(Stdlib[61], s, f) /*<>*/ ; + } function with_open_text(s, f){ - /*<>*/ return with_open(Stdlib[60], s, f); - /*<>*/ } + /*<>*/ return with_open(Stdlib[60], s, f) /*<>*/ ; + } function with_open_gen(flags, perm, s, f){ - /*<>*/ return with_open + /*<>*/ return /*<>*/ with_open ( /*<>*/ caml_call2(Stdlib[62], flags, perm), s, - f); - /*<>*/ } + f) /*<>*/ ; + } var - seek = Stdlib[96][1], + seek = /*<>*/ Stdlib[96][1], pos = Stdlib[96][2], length = Stdlib[96][3], close = Stdlib[76], @@ -23657,13 +24041,13 @@ && ( /*<>*/ runtime.caml_ba_dim_1(buf) - len | 0) >= ofs) - /*<>*/ return /*<>*/ runtime.caml_ml_output_bigarray - (oc, buf, ofs, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_output_bigarray); - /*<>*/ } + /*<>*/ return runtime.caml_ml_output_bigarray + (oc, buf, ofs, len) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_output_bigarray) /*<>*/ ; + } var - set_binary_mode = Stdlib[78], + set_binary_mode = /*<>*/ Stdlib[78], Stdlib_Out_channel = [0, stdout, @@ -23695,7 +24079,7 @@ runtime.caml_sys_isatty]; runtime.caml_register_global(3, Stdlib_Out_channel, "Stdlib__Out_channel"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Digest @@ -23719,17 +24103,17 @@ caml_md5_string = runtime.caml_md5_string, caml_ml_string_length = runtime.caml_ml_string_length, caml_string_get = runtime.caml_string_get; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); @@ -23748,82 +24132,82 @@ cst_Digest_to_hex = cst_Digest_to_hex$1, cst_Digest_of_hex$0 = cst_Digest_of_hex$1; function hex_of_string(d){ - /*<>*/ function char_hex(n){ - /*<>*/ var - _l_ = 10 <= n ? (97 + n | 0) - 10 | 0 : 48 + n | 0; - return caml_call1(Stdlib_Char[1], _l_); - /*<>*/ } - /*<>*/ var - /*<>*/ len = - /*<>*/ caml_ml_string_length(d), - /*<>*/ result = - /*<>*/ caml_create_bytes(len * 2 | 0), - /*<>*/ _j_ = len - 1 | 0, - /*<>*/ _i_ = 0; + function char_hex(n){ + var + _l_ = + /*<>*/ 10 <= n ? (97 + n | 0) - 10 | 0 : 48 + n | 0; + return caml_call1(Stdlib_Char[1], _l_) /*<>*/ ; + } + var + len = /*<>*/ caml_ml_string_length(d), + result = /*<>*/ caml_create_bytes(len * 2 | 0), + _j_ = /*<>*/ len - 1 | 0, + _i_ = 0; if(_j_ >= 0){ var i = _i_; for(;;){ - /*<>*/ /*<>*/ var - x = /*<>*/ caml_string_get(d, i); - caml_bytes_unsafe_set(result, i * 2 | 0, char_hex(x >>> 4 | 0)); - caml_bytes_unsafe_set(result, (i * 2 | 0) + 1 | 0, char_hex(x & 15)); - /*<>*/ /*<>*/ var _k_ = i + 1 | 0; + var x = /*<>*/ caml_string_get(d, i); + /*<>*/ /*<>*/ caml_bytes_unsafe_set + (result, i * 2 | 0, /*<>*/ char_hex(x >>> 4 | 0)); + /*<>*/ /*<>*/ caml_bytes_unsafe_set + (result, + (i * 2 | 0) + 1 | 0, + /*<>*/ char_hex(x & 15)); + var _k_ = /*<>*/ i + 1 | 0; if(_j_ === i) break; i = _k_; } } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], result); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_Bytes[44], result) /*<>*/ ; + } function string_of_hex(s){ - /*<>*/ function digit(c){ + function digit(c){ /*<>*/ if(65 <= c){ if(97 <= c){ - if(103 > c) return (c - 97 | 0) + 10 | 0; + if(103 > c) /*<>*/ return (c - 97 | 0) + 10 | 0; } - else if(71 > c) return (c - 65 | 0) + 10 | 0; + else if(71 > c) /*<>*/ return (c - 65 | 0) + 10 | 0; } - else if(9 >= c - 48 >>> 0) return c - 48 | 0; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Digest_of_hex); - /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 + else if(9 >= c - 48 >>> 0) /*<>*/ return c - 48 | 0; + /*<>*/ return caml_call1(Stdlib[1], cst_Digest_of_hex) /*<>*/ ; + } + /*<>*/ return caml_call2 (Stdlib_String[2], caml_ml_string_length(s) / 2 | 0, function(i){ - /*<>*/ var - i$0 = 2 * i | 0, - /*<>*/ _g_ = - digit + var + i$0 = /*<>*/ 2 * i | 0, + _g_ = + /*<>*/ /*<>*/ digit ( /*<>*/ caml_string_get(s, i$0 + 1 | 0)), _h_ = - (digit( /*<>*/ caml_string_get(s, i$0)) + /*<>*/ ( /*<>*/ digit + ( /*<>*/ caml_string_get(s, i$0)) << 4) + _g_ | 0; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Char[1], _h_); - /*<>*/ }); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_Char[1], _h_); + }) /*<>*/ ; + } function BLAKE2(X){ - var _a_ = X[1] < 1 ? 1 : 0, _b_ = _a_ || (64 < X[1] ? 1 : 0); + var _a_ = /*<>*/ X[1] < 1 ? 1 : 0, _b_ = _a_ || (64 < X[1] ? 1 : 0); if(_b_) - /*<>*/ /*<>*/ caml_call1 + /*<>*/ caml_call1 (Stdlib[1], cst_Digest_BLAKE2_wrong_hash_s); var - hash_length = X[1], + hash_length = /*<>*/ X[1], compare = Stdlib_String[10], equal = Stdlib_String[9]; function string(str){ - /*<>*/ return /*<>*/ caml_blake2_string - (hash_length, cst, str, 0, caml_ml_string_length(str)); - /*<>*/ } + /*<>*/ return caml_blake2_string + (hash_length, cst, str, 0, caml_ml_string_length(str)) /*<>*/ ; + } function bytes(b){ - /*<>*/ return string - ( /*<>*/ caml_call1(Stdlib_Bytes[44], b)); - /*<>*/ } + /*<>*/ return /*<>*/ string + ( /*<>*/ caml_call1(Stdlib_Bytes[44], b)) /*<>*/ ; + } function substring(str, ofs, len){ - /*<>*/ var _d_ = ofs < 0 ? 1 : 0; + var _d_ = /*<>*/ ofs < 0 ? 1 : 0; if(_d_) var _e_ = _d_; else @@ -23831,59 +24215,55 @@ _f_ = len < 0 ? 1 : 0, _e_ = _f_ || ((caml_ml_string_length(str) - len | 0) < ofs ? 1 : 0); if(_e_) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Digest_substring); - /*<>*/ return /*<>*/ caml_blake2_string - (hash_length, cst, str, ofs, len); - /*<>*/ } + /*<>*/ caml_call1(Stdlib[1], cst_Digest_substring); + /*<>*/ return caml_blake2_string + (hash_length, cst, str, ofs, len) /*<>*/ ; + } function subbytes(b, ofs, len){ - /*<>*/ return substring + /*<>*/ return /*<>*/ substring ( /*<>*/ caml_call1(Stdlib_Bytes[44], b), ofs, - len); - /*<>*/ } + len) /*<>*/ ; + } function channel(ic, toread){ - /*<>*/ var - /*<>*/ buf_size = 4096, - /*<>*/ buf = - /*<>*/ caml_create_bytes(4096), - /*<>*/ ctx = + var + buf_size = /*<>*/ 4096, + buf = /*<>*/ caml_create_bytes(4096), + ctx = /*<>*/ runtime.caml_blake2_create(hash_length, cst); /*<>*/ if(0 <= toread){ - var toread$0 = toread; - /*<>*/ for(;;){ - if(0 === toread$0) - /*<>*/ return /*<>*/ caml_blake2_final - (ctx, hash_length); - /*<>*/ var - /*<>*/ _c_ = + var toread$0 = /*<>*/ toread; + for(;;){ + /*<>*/ if(0 === toread$0) + /*<>*/ return caml_blake2_final(ctx, hash_length) /*<>*/ ; + var + _c_ = /*<>*/ caml_call2 (Stdlib_Int[10], buf_size, toread$0), - /*<>*/ n = + n = /*<>*/ caml_call4 (Stdlib_In_channel[16], ic, buf, 0, _c_); /*<>*/ if(0 === n) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[12], 1); - /*<>*/ /*<>*/ caml_blake2_update + /*<>*/ /*<>*/ caml_blake2_update (ctx, /*<>*/ caml_call1(Stdlib_Bytes[44], buf), 0, n); - var toread$1 = toread$0 - n | 0; + var toread$1 = /*<>*/ toread$0 - n | 0; toread$0 = toread$1; } } else - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var + /*<>*/ for(;;){ + var n$0 = /*<>*/ caml_call4 (Stdlib_In_channel[16], ic, buf, 0, buf_size); /*<>*/ if(0 === n$0) - /*<>*/ return /*<>*/ caml_blake2_final - (ctx, hash_length); - /*<>*/ /*<>*/ caml_blake2_update + /*<>*/ return caml_blake2_final(ctx, hash_length) /*<>*/ ; + /*<>*/ /*<>*/ caml_blake2_update (ctx, /*<>*/ caml_call1(Stdlib_Bytes[44], buf), 0, @@ -23891,35 +24271,32 @@ } /*<>*/ } function file(filename){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_In_channel[5], filename, function(ic){ - /*<>*/ return channel(ic, -1); - /*<>*/ }); - /*<>*/ } + /*<>*/ return channel(ic, -1) /*<>*/ ; + }) /*<>*/ ; + } function output(chan, digest){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[66], chan, digest); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib[66], chan, digest) /*<>*/ ; + } function input(chan){ /*<>*/ return caml_call2 - (Stdlib[86], chan, hash_length); - /*<>*/ } + (Stdlib[86], chan, hash_length) /*<>*/ ; + } function to_hex(d){ /*<>*/ if(caml_ml_string_length(d) !== hash_length) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Digest_to_hex); - /*<>*/ return hex_of_string(d); - /*<>*/ } + /*<>*/ caml_call1(Stdlib[1], cst_Digest_to_hex); + /*<>*/ return hex_of_string(d) /*<>*/ ; + } function of_hex(s){ /*<>*/ if (caml_ml_string_length(s) !== (hash_length * 2 | 0)) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Digest_of_hex$0); - /*<>*/ return string_of_hex(s); - /*<>*/ } - /*<>*/ return [0, + /*<>*/ caml_call1(Stdlib[1], cst_Digest_of_hex$0); + /*<>*/ return string_of_hex(s) /*<>*/ ; + } + /*<>*/ return [0, hash_length, compare, equal, @@ -23935,7 +24312,7 @@ of_hex]; } var - BLAKE128 = BLAKE2([0, 16]), + BLAKE128 = /*<>*/ BLAKE2([0, 16]), BLAKE256 = BLAKE2([0, 32]), BLAKE512 = BLAKE2([0, 64]), compare = Stdlib_String[10], @@ -23944,59 +24321,53 @@ cst_Digest_to_hex$0 = cst_Digest_to_hex$1, cst_Digest_from_hex = "Digest.from_hex"; function string(str){ - /*<>*/ return /*<>*/ caml_md5_string - (str, 0, caml_ml_string_length(str)); - /*<>*/ } + /*<>*/ return caml_md5_string + (str, 0, caml_ml_string_length(str)) /*<>*/ ; + } function bytes(b){ - /*<>*/ return string - ( /*<>*/ caml_call1(Stdlib_Bytes[44], b)); - /*<>*/ } + /*<>*/ return /*<>*/ string + ( /*<>*/ caml_call1(Stdlib_Bytes[44], b)) /*<>*/ ; + } function substring(str, ofs, len){ /*<>*/ if (0 <= ofs && 0 <= len && (caml_ml_string_length(str) - len | 0) >= ofs) - /*<>*/ return /*<>*/ caml_md5_string - (str, ofs, len); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Digest_substring$0); - /*<>*/ } + /*<>*/ return caml_md5_string(str, ofs, len) /*<>*/ ; + /*<>*/ return caml_call1 + (Stdlib[1], cst_Digest_substring$0) /*<>*/ ; + } function subbytes(b, ofs, len){ - /*<>*/ return substring + /*<>*/ return /*<>*/ substring ( /*<>*/ caml_call1(Stdlib_Bytes[44], b), ofs, - len); - /*<>*/ } + len) /*<>*/ ; + } function file(filename){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_In_channel[5], filename, function(ic){ - /*<>*/ return /*<>*/ caml_md5_chan - (ic, -1); - /*<>*/ }); - /*<>*/ } + /*<>*/ return caml_md5_chan(ic, -1) /*<>*/ ; + }) /*<>*/ ; + } function output(chan, digest){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[66], chan, digest); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib[66], chan, digest) /*<>*/ ; + } function input(chan){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[86], chan, 16); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib[86], chan, 16) /*<>*/ ; + } function to_hex(d){ /*<>*/ if(16 !== caml_ml_string_length(d)) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Digest_to_hex$0); - /*<>*/ return hex_of_string(d); - /*<>*/ } + /*<>*/ caml_call1(Stdlib[1], cst_Digest_to_hex$0); + /*<>*/ return hex_of_string(d) /*<>*/ ; + } function of_hex(s){ /*<>*/ if(32 !== caml_ml_string_length(s)) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Digest_from_hex); - /*<>*/ return string_of_hex(s); - /*<>*/ } + /*<>*/ caml_call1(Stdlib[1], cst_Digest_from_hex); + /*<>*/ return string_of_hex(s) /*<>*/ ; + } var Stdlib_Digest = - [0, + /*<>*/ [0, compare, equal, string, @@ -24029,7 +24400,7 @@ of_hex]]; runtime.caml_register_global(17, Stdlib_Digest, "Stdlib__Digest"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Bigarray @@ -24056,17 +24427,17 @@ caml_check_bound = runtime.caml_check_bound, caml_make_vect = runtime.caml_make_vect, caml_mul = runtime.caml_mul; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); @@ -24078,7 +24449,7 @@ Stdlib_Array = global_data.Stdlib__Array, Stdlib_Sys = global_data.Stdlib__Sys; function kind_size_in_bytes(param){ - /*<>*/ switch(param){ + /*<>*/ switch(param){ case 0: /*<>*/ return 4; case 1: @@ -24096,9 +24467,9 @@ case 7: /*<>*/ return 8; case 8: - return Stdlib_Sys[9] / 8 | 0; + /*<>*/ return Stdlib_Sys[9] / 8 | 0; case 9: - return Stdlib_Sys[9] / 8 | 0; + /*<>*/ return Stdlib_Sys[9] / 8 | 0; case 10: /*<>*/ return 8; case 11: @@ -24107,10 +24478,10 @@ /*<>*/ return 1; default: /*<>*/ return 2; } - } + /*<>*/ } var cst_Bigarray_Array2_of_array_n = - "Bigarray.Array2.of_array: non-rectangular data", + /*<>*/ "Bigarray.Array2.of_array: non-rectangular data", cst_Bigarray_Array3_of_array_n = cst_Bigarray_Array3_of_array_n$1, cst_Bigarray_Array3_of_array_n$0 = cst_Bigarray_Array3_of_array_n$1, cst_Bigarray_array0_of_genarra = "Bigarray.array0_of_genarray", @@ -24119,21 +24490,20 @@ cst_Bigarray_array3_of_genarra = "Bigarray.array3_of_genarray"; function cloop(arr, idx, f, col, max){ /*<>*/ if(col === idx.length - 1){ - /*<>*/ /*<>*/ caml_ba_set_generic + /*<>*/ /*<>*/ caml_ba_set_generic (arr, idx, /*<>*/ caml_call1(f, idx)); - /*<>*/ return; + /*<>*/ return; } - /*<>*/ var - /*<>*/ _am_ = - caml_check_bound(max, col)[1 + col] - 1 | 0, - /*<>*/ _al_ = 0; + var + _am_ = + /*<>*/ caml_check_bound(max, col)[1 + col] - 1 | 0, + _al_ = /*<>*/ 0; if(_am_ >= 0){ var j = _al_; for(;;){ /*<>*/ caml_check_bound(idx, col)[1 + col] = j; /*<>*/ cloop(arr, idx, f, col + 1 | 0, max); - /*<>*/ /*<>*/ var - _an_ = j + 1 | 0; + var _an_ = /*<>*/ j + 1 | 0; if(_am_ === j) break; j = _an_; } @@ -24141,62 +24511,56 @@ /*<>*/ } function floop(arr, idx, f, col, max){ /*<>*/ if(0 > col){ - /*<>*/ /*<>*/ caml_ba_set_generic + /*<>*/ /*<>*/ caml_ba_set_generic (arr, idx, /*<>*/ caml_call1(f, idx)); - /*<>*/ return; + /*<>*/ return; } - /*<>*/ var - /*<>*/ _aj_ = caml_check_bound(max, col)[1 + col], - /*<>*/ _ai_ = 1; + var + _aj_ = /*<>*/ caml_check_bound(max, col)[1 + col], + _ai_ = /*<>*/ 1; if(_aj_ >= 1){ var j = _ai_; for(;;){ /*<>*/ caml_check_bound(idx, col)[1 + col] = j; /*<>*/ floop(arr, idx, f, col - 1 | 0, max); - /*<>*/ /*<>*/ var - _ak_ = j + 1 | 0; + var _ak_ = /*<>*/ j + 1 | 0; if(_aj_ === j) break; j = _ak_; } } /*<>*/ } function init(kind, layout, dims, f){ - /*<>*/ var - /*<>*/ arr = - /*<>*/ caml_ba_create(kind, layout, dims), - /*<>*/ dlen = dims.length - 1; + var + arr = /*<>*/ caml_ba_create(kind, layout, dims), + dlen = /*<>*/ dims.length - 1; /*<>*/ return layout - ? (floop + ? ( /*<>*/ floop (arr, /*<>*/ caml_make_vect(dlen, 1), f, dlen - 1 | 0, dims), arr) - : (cloop + : ( /*<>*/ cloop (arr, /*<>*/ caml_make_vect(dlen, 0), f, 0, dims), - arr); - /*<>*/ } + arr) /*<>*/ ; + } function dims(a){ - /*<>*/ var - /*<>*/ n = - /*<>*/ caml_ba_num_dims(a), - /*<>*/ d = - /*<>*/ caml_make_vect(n, 0), - /*<>*/ _af_ = n - 1 | 0, - /*<>*/ _ae_ = 0; + var + n = /*<>*/ caml_ba_num_dims(a), + d = /*<>*/ caml_make_vect(n, 0), + _af_ = /*<>*/ n - 1 | 0, + _ae_ = 0; if(_af_ >= 0){ var i = _ae_; for(;;){ - /*<>*/ /*<>*/ var - _ag_ = /*<>*/ runtime.caml_ba_dim(a, i); + var _ag_ = /*<>*/ runtime.caml_ba_dim(a, i); /*<>*/ caml_check_bound(d, i)[1 + i] = _ag_; - /*<>*/ /*<>*/ var - _ah_ = i + 1 | 0; + var _ah_ = /*<>*/ i + 1 | 0; if(_af_ === i) break; i = _ah_; } @@ -24204,102 +24568,94 @@ /*<>*/ return d; /*<>*/ } function size_in_bytes(arr){ - /*<>*/ var - /*<>*/ _ac_ = dims(arr), - /*<>*/ _ad_ = + var + _ac_ = /*<>*/ dims(arr), + _ad_ = /*<>*/ caml_call3 (Stdlib_Array[18], caml_mul, 1, _ac_); - /*<>*/ return /*<>*/ caml_mul - (kind_size_in_bytes( /*<>*/ caml_ba_kind(arr)), - _ad_); - /*<>*/ } + /*<>*/ return /*<>*/ caml_mul + ( /*<>*/ kind_size_in_bytes + ( /*<>*/ caml_ba_kind(arr)), + _ad_) /*<>*/ ; + } function create(kind, layout){ - /*<>*/ return /*<>*/ caml_ba_create - (kind, layout, [0]); - /*<>*/ } + /*<>*/ return caml_ba_create(kind, layout, [0]) /*<>*/ ; + } function get(arr){ - /*<>*/ return /*<>*/ runtime.caml_ba_get_generic - (arr, [0]); - /*<>*/ } + /*<>*/ return runtime.caml_ba_get_generic(arr, [0]) /*<>*/ ; + } function set(arr){ - /*<>*/ /*<>*/ var _aa_ = [0]; - /*<>*/ return function(_ab_){ - /*<>*/ return caml_ba_set_generic(arr, _aa_, _ab_);}; + var _aa_ = /*<>*/ [0]; + return function(_ab_){ + /*<>*/ return caml_ba_set_generic(arr, _aa_, _ab_);} /*<>*/ ; /*<>*/ } function size_in_bytes$0(arr){ - /*<>*/ return kind_size_in_bytes - ( /*<>*/ caml_ba_kind(arr)); - /*<>*/ } + /*<>*/ return /*<>*/ kind_size_in_bytes + ( /*<>*/ caml_ba_kind(arr)) /*<>*/ ; + } function of_value(kind, layout, v){ - /*<>*/ /*<>*/ var - a = create(kind, layout); + var a = /*<>*/ create(kind, layout); /*<>*/ set(a)(v); - /*<>*/ return a; + /*<>*/ return a; /*<>*/ } function create$0(kind, layout, dim){ - /*<>*/ return /*<>*/ caml_ba_create - (kind, layout, [0, dim]); - /*<>*/ } + /*<>*/ return caml_ba_create(kind, layout, [0, dim]) /*<>*/ ; + } function size_in_bytes$1(arr){ - /*<>*/ /*<>*/ var - _$_ = /*<>*/ caml_ba_dim_1(arr); - /*<>*/ return /*<>*/ caml_mul - (kind_size_in_bytes( /*<>*/ caml_ba_kind(arr)), - _$_); - /*<>*/ } + var _$_ = /*<>*/ caml_ba_dim_1(arr); + /*<>*/ return /*<>*/ caml_mul + ( /*<>*/ kind_size_in_bytes + ( /*<>*/ caml_ba_kind(arr)), + _$_) /*<>*/ ; + } function slice(a, n){ - /*<>*/ return /*<>*/ runtime.caml_ba_layout - (a) + /*<>*/ return runtime.caml_ba_layout(a) ? /*<>*/ caml_ba_slice(a, [0, n]) - : /*<>*/ caml_ba_slice(a, [0, n]); - /*<>*/ } + : /*<>*/ caml_ba_slice(a, [0, n]) /*<>*/ ; + } function init$0(kind, layout, dim, f){ - /*<>*/ /*<>*/ var - arr = create$0(kind, layout, dim); + var arr = /*<>*/ create$0(kind, layout, dim); /*<>*/ if(layout){ - /*<>*/ /*<>*/ var _Z_ = 1; + var _Z_ = /*<>*/ 1; if(dim >= 1){ var i$0 = _Z_; for(;;){ - /*<>*/ /*<>*/ caml_ba_set_1 + /*<>*/ /*<>*/ caml_ba_set_1 (arr, i$0, /*<>*/ caml_call1(f, i$0)); - /*<>*/ /*<>*/ var - ___ = i$0 + 1 | 0; + var ___ = /*<>*/ i$0 + 1 | 0; if(dim === i$0) break; i$0 = ___; } } - /*<>*/ return arr; + /*<>*/ return arr; } - /*<>*/ var - _X_ = dim - 1 | 0, - /*<>*/ _W_ = 0; + var _X_ = /*<>*/ dim - 1 | 0, _W_ = 0; if(_X_ >= 0){ var i = _W_; for(;;){ - /*<>*/ /*<>*/ caml_ba_set_1 + /*<>*/ /*<>*/ caml_ba_set_1 (arr, i, /*<>*/ caml_call1(f, i)); - /*<>*/ /*<>*/ var - _Y_ = i + 1 | 0; + var _Y_ = /*<>*/ i + 1 | 0; if(_X_ === i) break; i = _Y_; } } - /*<>*/ return arr; + /*<>*/ return arr; /*<>*/ } function of_array(kind, layout, data){ - /*<>*/ var - /*<>*/ ba = create$0(kind, layout, data.length - 1), - /*<>*/ ofs = layout ? 1 : 0, - _U_ = data.length - 2 | 0, + var + ba = /*<>*/ create$0(kind, layout, data.length - 1), + ofs = /*<>*/ layout ? 1 : 0, + _U_ = /*<>*/ data.length - 2 | 0, _T_ = 0; if(_U_ >= 0){ var i = _T_; for(;;){ - /*<>*/ /*<>*/ caml_ba_set_1 - (ba, i + ofs | 0, caml_check_bound(data, i)[1 + i]); - /*<>*/ /*<>*/ var - _V_ = i + 1 | 0; + /*<>*/ /*<>*/ caml_ba_set_1 + (ba, + i + ofs | 0, + /*<>*/ caml_check_bound(data, i)[1 + i]); + var _V_ = /*<>*/ i + 1 | 0; if(_U_ === i) break; i = _V_; } @@ -24307,119 +24663,106 @@ /*<>*/ return ba; /*<>*/ } function create$1(kind, layout, dim1, dim2){ - /*<>*/ return /*<>*/ caml_ba_create - (kind, layout, [0, dim1, dim2]); - /*<>*/ } + /*<>*/ return caml_ba_create + (kind, layout, [0, dim1, dim2]) /*<>*/ ; + } function size_in_bytes$2(arr){ - /*<>*/ var - /*<>*/ _R_ = - /*<>*/ caml_ba_dim_2(arr), - /*<>*/ _S_ = - /*<>*/ caml_ba_dim_1(arr); - return caml_mul - ( /*<>*/ caml_mul - (kind_size_in_bytes + var + _R_ = /*<>*/ caml_ba_dim_2(arr), + _S_ = /*<>*/ caml_ba_dim_1(arr); + /*<>*/ return /*<>*/ caml_mul + (caml_mul + ( /*<>*/ kind_size_in_bytes ( /*<>*/ caml_ba_kind(arr)), _S_), - _R_); - /*<>*/ } + _R_) /*<>*/ ; + } function slice_left(a, n){ - /*<>*/ return /*<>*/ caml_ba_slice - (a, [0, n]); - /*<>*/ } + /*<>*/ return caml_ba_slice(a, [0, n]) /*<>*/ ; + } function slice_right(a, n){ - /*<>*/ return /*<>*/ caml_ba_slice - (a, [0, n]); - /*<>*/ } + /*<>*/ return caml_ba_slice(a, [0, n]) /*<>*/ ; + } function init$1(kind, layout, dim1, dim2, f){ - /*<>*/ /*<>*/ var - arr = create$1(kind, layout, dim1, dim2); + var arr = /*<>*/ create$1(kind, layout, dim1, dim2); /*<>*/ if(layout){ - /*<>*/ /*<>*/ var _N_ = 1; + var _N_ = /*<>*/ 1; if(dim2 >= 1){ var j$0 = _N_; for(;;){ - /*<>*/ /*<>*/ var _O_ = 1; + var _O_ = /*<>*/ 1; if(dim1 >= 1){ var i$0 = _O_; for(;;){ - /*<>*/ /*<>*/ caml_ba_set_2 + /*<>*/ /*<>*/ caml_ba_set_2 (arr, i$0, j$0, /*<>*/ caml_call2(f, i$0, j$0)); - /*<>*/ /*<>*/ var - _Q_ = i$0 + 1 | 0; + var _Q_ = /*<>*/ i$0 + 1 | 0; if(dim1 === i$0) break; i$0 = _Q_; } } - /*<>*/ /*<>*/ var - _P_ = j$0 + 1 | 0; + var _P_ = /*<>*/ j$0 + 1 | 0; if(dim2 === j$0) break; j$0 = _P_; } } - /*<>*/ return arr; + /*<>*/ return arr; } - /*<>*/ var - _I_ = dim1 - 1 | 0, - /*<>*/ _H_ = 0; + var _I_ = /*<>*/ dim1 - 1 | 0, _H_ = 0; if(_I_ >= 0){ var i = _H_; for(;;){ - /*<>*/ var - _K_ = dim2 - 1 | 0, - /*<>*/ _J_ = 0; + var _K_ = /*<>*/ dim2 - 1 | 0, _J_ = 0; if(_K_ >= 0){ var j = _J_; for(;;){ - /*<>*/ /*<>*/ caml_ba_set_2 + /*<>*/ /*<>*/ caml_ba_set_2 (arr, i, j, /*<>*/ caml_call2(f, i, j)); - /*<>*/ /*<>*/ var - _M_ = j + 1 | 0; + var _M_ = /*<>*/ j + 1 | 0; if(_K_ === j) break; j = _M_; } } - /*<>*/ /*<>*/ var - _L_ = i + 1 | 0; + var _L_ = /*<>*/ i + 1 | 0; if(_I_ === i) break; i = _L_; } } - /*<>*/ return arr; + /*<>*/ return arr; /*<>*/ } function of_array$0(kind, layout, data){ - /*<>*/ var - dim1 = data.length - 1, - /*<>*/ dim2 = - 0 === dim1 ? 0 : caml_check_bound(data, 0)[1].length - 1, - /*<>*/ ba = create$1(kind, layout, dim1, dim2), - /*<>*/ ofs = layout ? 1 : 0, - /*<>*/ _C_ = dim1 - 1 | 0, + var + dim1 = /*<>*/ data.length - 1, + dim2 = + /*<>*/ 0 === dim1 + ? 0 + : /*<>*/ caml_check_bound(data, 0)[1].length - 1, + ba = /*<>*/ create$1(kind, layout, dim1, dim2), + ofs = /*<>*/ layout ? 1 : 0, + _C_ = /*<>*/ dim1 - 1 | 0, _B_ = 0; if(_C_ >= 0){ var i = _B_; for(;;){ - /*<>*/ /*<>*/ var - row = caml_check_bound(data, i)[1 + i]; - if(row.length - 1 !== dim2) - /*<>*/ /*<>*/ caml_call1 + var row = /*<>*/ caml_check_bound(data, i)[1 + i]; + /*<>*/ if(row.length - 1 !== dim2) + /*<>*/ caml_call1 (Stdlib[1], cst_Bigarray_Array2_of_array_n); - /*<>*/ var - /*<>*/ _E_ = dim2 - 1 | 0, - /*<>*/ _D_ = 0; + var _E_ = /*<>*/ dim2 - 1 | 0, _D_ = 0; if(_E_ >= 0){ var j = _D_; for(;;){ - /*<>*/ /*<>*/ caml_ba_set_2 - (ba, i + ofs | 0, j + ofs | 0, caml_check_bound(row, j)[1 + j]); - /*<>*/ /*<>*/ var - _G_ = j + 1 | 0; + /*<>*/ /*<>*/ caml_ba_set_2 + (ba, + i + ofs | 0, + j + ofs | 0, + /*<>*/ caml_check_bound(row, j)[1 + j]); + var _G_ = /*<>*/ j + 1 | 0; if(_E_ === j) break; j = _G_; } } - /*<>*/ /*<>*/ var - _F_ = i + 1 | 0; + var _F_ = /*<>*/ i + 1 | 0; if(_C_ === i) break; i = _F_; } @@ -24427,182 +24770,160 @@ /*<>*/ return ba; /*<>*/ } function create$2(kind, layout, dim1, dim2, dim3){ - /*<>*/ return /*<>*/ caml_ba_create - (kind, layout, [0, dim1, dim2, dim3]); - /*<>*/ } + /*<>*/ return caml_ba_create + (kind, layout, [0, dim1, dim2, dim3]) /*<>*/ ; + } function size_in_bytes$3(arr){ - /*<>*/ var - /*<>*/ _y_ = - /*<>*/ runtime.caml_ba_dim_3(arr), - /*<>*/ _z_ = - /*<>*/ caml_ba_dim_2(arr), - /*<>*/ _A_ = - /*<>*/ caml_ba_dim_1(arr); - return caml_mul + var + _y_ = /*<>*/ runtime.caml_ba_dim_3(arr), + _z_ = /*<>*/ caml_ba_dim_2(arr), + _A_ = /*<>*/ caml_ba_dim_1(arr); + /*<>*/ return /*<>*/ caml_mul (caml_mul - ( /*<>*/ caml_mul - (kind_size_in_bytes + (caml_mul + ( /*<>*/ kind_size_in_bytes ( /*<>*/ caml_ba_kind(arr)), _A_), _z_), - _y_); - /*<>*/ } + _y_) /*<>*/ ; + } function slice_left_1(a, n, m){ - /*<>*/ return /*<>*/ caml_ba_slice - (a, [0, n, m]); - /*<>*/ } + /*<>*/ return caml_ba_slice(a, [0, n, m]) /*<>*/ ; + } function slice_right_1(a, n, m){ - /*<>*/ return /*<>*/ caml_ba_slice - (a, [0, n, m]); - /*<>*/ } + /*<>*/ return caml_ba_slice(a, [0, n, m]) /*<>*/ ; + } function slice_left_2(a, n){ - /*<>*/ return /*<>*/ caml_ba_slice - (a, [0, n]); - /*<>*/ } + /*<>*/ return caml_ba_slice(a, [0, n]) /*<>*/ ; + } function slice_right_2(a, n){ - /*<>*/ return /*<>*/ caml_ba_slice - (a, [0, n]); - /*<>*/ } + /*<>*/ return caml_ba_slice(a, [0, n]) /*<>*/ ; + } function init$2(kind, layout, dim1, dim2, dim3, f){ - /*<>*/ /*<>*/ var - arr = create$2(kind, layout, dim1, dim2, dim3); + var + arr = + /*<>*/ create$2(kind, layout, dim1, dim2, dim3); /*<>*/ if(layout){ - /*<>*/ /*<>*/ var _s_ = 1; + var _s_ = /*<>*/ 1; if(dim3 >= 1){ var k$0 = _s_; for(;;){ - /*<>*/ /*<>*/ var _t_ = 1; + var _t_ = /*<>*/ 1; if(dim2 >= 1){ var j$0 = _t_; for(;;){ - /*<>*/ /*<>*/ var _v_ = 1; + var _v_ = /*<>*/ 1; if(dim1 >= 1){ var i$0 = _v_; for(;;){ - /*<>*/ /*<>*/ caml_ba_set_3 + /*<>*/ /*<>*/ caml_ba_set_3 (arr, i$0, j$0, k$0, /*<>*/ caml_call3(f, i$0, j$0, k$0)); - /*<>*/ /*<>*/ var - _x_ = i$0 + 1 | 0; + var _x_ = /*<>*/ i$0 + 1 | 0; if(dim1 === i$0) break; i$0 = _x_; } } - /*<>*/ /*<>*/ var - _w_ = j$0 + 1 | 0; + var _w_ = /*<>*/ j$0 + 1 | 0; if(dim2 === j$0) break; j$0 = _w_; } } - /*<>*/ /*<>*/ var - _u_ = k$0 + 1 | 0; + var _u_ = /*<>*/ k$0 + 1 | 0; if(dim3 === k$0) break; k$0 = _u_; } } - /*<>*/ return arr; + /*<>*/ return arr; } - /*<>*/ var - _k_ = dim1 - 1 | 0, - /*<>*/ _j_ = 0; + var _k_ = /*<>*/ dim1 - 1 | 0, _j_ = 0; if(_k_ >= 0){ var i = _j_; for(;;){ - /*<>*/ var - _m_ = dim2 - 1 | 0, - /*<>*/ _l_ = 0; + var _m_ = /*<>*/ dim2 - 1 | 0, _l_ = 0; if(_m_ >= 0){ var j = _l_; for(;;){ - /*<>*/ var - _p_ = dim3 - 1 | 0, - /*<>*/ _o_ = 0; + var _p_ = /*<>*/ dim3 - 1 | 0, _o_ = 0; if(_p_ >= 0){ var k = _o_; for(;;){ - /*<>*/ /*<>*/ caml_ba_set_3 + /*<>*/ /*<>*/ caml_ba_set_3 (arr, i, j, k, /*<>*/ caml_call3(f, i, j, k)); - /*<>*/ /*<>*/ var - _r_ = k + 1 | 0; + var _r_ = /*<>*/ k + 1 | 0; if(_p_ === k) break; k = _r_; } } - /*<>*/ /*<>*/ var - _q_ = j + 1 | 0; + var _q_ = /*<>*/ j + 1 | 0; if(_m_ === j) break; j = _q_; } } - /*<>*/ /*<>*/ var - _n_ = i + 1 | 0; + var _n_ = /*<>*/ i + 1 | 0; if(_k_ === i) break; i = _n_; } } - /*<>*/ return arr; + /*<>*/ return arr; /*<>*/ } function of_array$1(kind, layout, data){ - /*<>*/ var - dim1 = data.length - 1, - /*<>*/ dim2 = - 0 === dim1 ? 0 : caml_check_bound(data, 0)[1].length - 1, - /*<>*/ dim3 = - 0 === dim2 + var + dim1 = /*<>*/ data.length - 1, + dim2 = + /*<>*/ 0 === dim1 + ? 0 + : /*<>*/ caml_check_bound(data, 0)[1].length - 1, + dim3 = + /*<>*/ 0 === dim2 ? 0 - : caml_check_bound(caml_check_bound(data, 0)[1], 0)[1].length - 1, - /*<>*/ ba = create$2(kind, layout, dim1, dim2, dim3), - /*<>*/ ofs = layout ? 1 : 0, - /*<>*/ _b_ = dim1 - 1 | 0, + : /*<>*/ caml_check_bound + (caml_check_bound(data, 0)[1], 0) + [1].length + - 1, + ba = /*<>*/ create$2(kind, layout, dim1, dim2, dim3), + ofs = /*<>*/ layout ? 1 : 0, + _b_ = /*<>*/ dim1 - 1 | 0, _a_ = 0; if(_b_ >= 0){ var i = _a_; for(;;){ - /*<>*/ /*<>*/ var - row = caml_check_bound(data, i)[1 + i]; - if(row.length - 1 !== dim2) - /*<>*/ /*<>*/ caml_call1 + var row = /*<>*/ caml_check_bound(data, i)[1 + i]; + /*<>*/ if(row.length - 1 !== dim2) + /*<>*/ caml_call1 (Stdlib[1], cst_Bigarray_Array3_of_array_n); - /*<>*/ var - /*<>*/ _d_ = dim2 - 1 | 0, - /*<>*/ _c_ = 0; + var _d_ = /*<>*/ dim2 - 1 | 0, _c_ = 0; if(_d_ >= 0){ var j = _c_; for(;;){ - /*<>*/ /*<>*/ var - col = caml_check_bound(row, j)[1 + j]; - if(col.length - 1 !== dim3) - /*<>*/ /*<>*/ caml_call1 + var col = /*<>*/ caml_check_bound(row, j)[1 + j]; + /*<>*/ if(col.length - 1 !== dim3) + /*<>*/ caml_call1 (Stdlib[1], cst_Bigarray_Array3_of_array_n$0); - /*<>*/ var - /*<>*/ _g_ = dim3 - 1 | 0, - /*<>*/ _f_ = 0; + var _g_ = /*<>*/ dim3 - 1 | 0, _f_ = 0; if(_g_ >= 0){ var k = _f_; for(;;){ - /*<>*/ /*<>*/ caml_ba_set_3 + /*<>*/ /*<>*/ caml_ba_set_3 (ba, i + ofs | 0, j + ofs | 0, k + ofs | 0, - caml_check_bound(col, k)[1 + k]); - /*<>*/ /*<>*/ var - _i_ = k + 1 | 0; + /*<>*/ caml_check_bound(col, k)[1 + k]); + var _i_ = /*<>*/ k + 1 | 0; if(_g_ === k) break; k = _i_; } } - /*<>*/ /*<>*/ var - _h_ = j + 1 | 0; + var _h_ = /*<>*/ j + 1 | 0; if(_d_ === j) break; j = _h_; } } - /*<>*/ /*<>*/ var - _e_ = i + 1 | 0; + var _e_ = /*<>*/ i + 1 | 0; if(_b_ === i) break; i = _e_; } @@ -24610,52 +24931,45 @@ /*<>*/ return ba; /*<>*/ } function array0_of_genarray(a){ - /*<>*/ return 0 - === /*<>*/ caml_ba_num_dims(a) + /*<>*/ return 0 === caml_ba_num_dims(a) ? a : /*<>*/ caml_call1 - (Stdlib[1], cst_Bigarray_array0_of_genarra); - /*<>*/ } + (Stdlib[1], cst_Bigarray_array0_of_genarra) /*<>*/ ; + } function array1_of_genarray(a){ - /*<>*/ return 1 - === /*<>*/ caml_ba_num_dims(a) + /*<>*/ return 1 === caml_ba_num_dims(a) ? a : /*<>*/ caml_call1 - (Stdlib[1], cst_Bigarray_array1_of_genarra); - /*<>*/ } + (Stdlib[1], cst_Bigarray_array1_of_genarra) /*<>*/ ; + } function array2_of_genarray(a){ - /*<>*/ return 2 - === /*<>*/ caml_ba_num_dims(a) + /*<>*/ return 2 === caml_ba_num_dims(a) ? a : /*<>*/ caml_call1 - (Stdlib[1], cst_Bigarray_array2_of_genarra); - /*<>*/ } + (Stdlib[1], cst_Bigarray_array2_of_genarra) /*<>*/ ; + } function array3_of_genarray(a){ - /*<>*/ return 3 - === /*<>*/ caml_ba_num_dims(a) + /*<>*/ return 3 === caml_ba_num_dims(a) ? a : /*<>*/ caml_call1 - (Stdlib[1], cst_Bigarray_array3_of_genarra); - /*<>*/ } + (Stdlib[1], cst_Bigarray_array3_of_genarra) /*<>*/ ; + } function reshape_0(a){ - /*<>*/ return /*<>*/ caml_ba_reshape - (a, [0]); - /*<>*/ } + /*<>*/ return caml_ba_reshape(a, [0]) /*<>*/ ; + } function reshape_1(a, dim1){ - /*<>*/ return /*<>*/ caml_ba_reshape - (a, [0, dim1]); - /*<>*/ } + /*<>*/ return caml_ba_reshape(a, [0, dim1]) /*<>*/ ; + } function reshape_2(a, dim1, dim2){ - /*<>*/ return /*<>*/ caml_ba_reshape - (a, [0, dim1, dim2]); - /*<>*/ } + /*<>*/ return caml_ba_reshape(a, [0, dim1, dim2]) /*<>*/ ; + } function reshape_3(a, dim1, dim2, dim3){ - /*<>*/ return /*<>*/ caml_ba_reshape - (a, [0, dim1, dim2, dim3]); - /*<>*/ } + /*<>*/ return caml_ba_reshape + (a, [0, dim1, dim2, dim3]) /*<>*/ ; + } var Stdlib_Bigarray = - [0, + /*<>*/ [0, 13, 0, 1, @@ -24744,22 +25058,22 @@ caml_mod = runtime.caml_mod, caml_notequal = runtime.caml_notequal, caml_sys_random_seed = runtime.caml_sys_random_seed; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); @@ -24783,56 +25097,52 @@ _d_ = runtime.caml_int64_create_lo_mi_hi(2, 0, 0), _e_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0); function create(param){ - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Bigarray[20][1], 7, 0, 4); - /*<>*/ } + /*<>*/ return caml_call3(Stdlib_Bigarray[20][1], 7, 0, 4) /*<>*/ ; + } function set(s, i1, i2, i3, i4){ - /*<>*/ /*<>*/ caml_ba_set_1 + /*<>*/ /*<>*/ caml_ba_set_1 (s, 0, /*<>*/ runtime.caml_int64_or(i1, _a_)); - /*<>*/ /*<>*/ caml_ba_set_1(s, 1, i2); - /*<>*/ /*<>*/ var - i3$0 = /*<>*/ caml_notequal(i3, _b_) ? i3 : _e_; - /*<>*/ /*<>*/ caml_ba_set_1(s, 2, i3$0); - /*<>*/ /*<>*/ var - i4$0 = /*<>*/ caml_notequal(i4, _c_) ? i4 : _d_; - /*<>*/ return /*<>*/ caml_ba_set_1 - (s, 3, i4$0); - /*<>*/ } + /*<>*/ caml_ba_set_1(s, 1, i2); + var i3$0 = /*<>*/ caml_notequal(i3, _b_) ? i3 : _e_; + /*<>*/ caml_ba_set_1(s, 2, i3$0); + var i4$0 = /*<>*/ caml_notequal(i4, _c_) ? i4 : _d_; + /*<>*/ return caml_ba_set_1(s, 3, i4$0) /*<>*/ ; + } function mk(i1, i2, i3, i4){ - /*<>*/ /*<>*/ var s = create(0); + var s = /*<>*/ create(0); /*<>*/ set(s, i1, i2, i3, i4); - /*<>*/ return s; + /*<>*/ return s; /*<>*/ } var - serialization_prefix_len = 5, + serialization_prefix_len = /*<>*/ 5, cst_Random_State_of_binary_str = "Random.State.of_binary_string: expected a format compatible with OCaml "; function to_binary_string(s){ - /*<>*/ /*<>*/ var - buf = /*<>*/ caml_create_bytes(37); - /*<>*/ /*<>*/ caml_call5 + var buf = /*<>*/ caml_create_bytes(37); + /*<>*/ caml_call5 (Stdlib_Bytes[12], serialization_prefix, 0, buf, 0, serialization_prefix_len); - var i = 0; + var i = /*<>*/ 0; for(;;){ - /*<>*/ /*<>*/ var - _y_ = /*<>*/ runtime.caml_ba_get_1(s, i); - /*<>*/ /*<>*/ caml_call3 + var _y_ = /*<>*/ runtime.caml_ba_get_1(s, i); + /*<>*/ caml_call3 (Stdlib_Bytes[86], buf, 5 + (i * 8 | 0) | 0, _y_); - /*<>*/ /*<>*/ var _z_ = i + 1 | 0; + var _z_ = /*<>*/ i + 1 | 0; if(3 === i) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[44], buf); - i = _z_; + /*<>*/ return caml_call1(Stdlib_Bytes[44], buf) /*<>*/ ; + /*<>*/ i = _z_; } /*<>*/ } function of_binary_string(buf){ - /*<>*/ var - _v_ = runtime.caml_ml_string_length(buf) !== 37 ? 1 : 0, + var + _v_ = + /*<>*/ runtime.caml_ml_string_length(buf) !== 37 + ? 1 + : 0, _w_ = _v_ || @@ -24840,84 +25150,70 @@ - /*<>*/ caml_call2 (Stdlib_String[11], serialization_prefix, buf); - if(_w_){ - /*<>*/ /*<>*/ var + /*<>*/ if(_w_){ + var _x_ = /*<>*/ caml_call2 (Stdlib[28], cst_Random_State_of_binary_str, Stdlib_Sys[46]); - /*<>*/ /*<>*/ caml_call1 - (Stdlib[2], _x_); - } - /*<>*/ var - /*<>*/ i1 = - /*<>*/ caml_call2(Stdlib_String[64], buf, 5), - /*<>*/ i2 = - /*<>*/ caml_call2(Stdlib_String[64], buf, 13), - /*<>*/ i3 = - /*<>*/ caml_call2(Stdlib_String[64], buf, 21), - /*<>*/ i4 = - /*<>*/ caml_call2(Stdlib_String[64], buf, 29); - /*<>*/ return mk(i1, i2, i3, i4); - /*<>*/ } + /*<>*/ caml_call1(Stdlib[2], _x_); + } + var + i1 = /*<>*/ caml_call2(Stdlib_String[64], buf, 5), + i2 = /*<>*/ caml_call2(Stdlib_String[64], buf, 13), + i3 = /*<>*/ caml_call2(Stdlib_String[64], buf, 21), + i4 = /*<>*/ caml_call2(Stdlib_String[64], buf, 29); + /*<>*/ return mk(i1, i2, i3, i4) /*<>*/ ; + } function copy(src){ - /*<>*/ /*<>*/ var dst = create(0); - /*<>*/ /*<>*/ caml_ba_blit(src, dst); - /*<>*/ return dst; + var dst = /*<>*/ create(0); + /*<>*/ caml_ba_blit(src, dst); + /*<>*/ return dst; /*<>*/ } function reinit(s, seed){ - /*<>*/ var - n = seed.length - 1, - /*<>*/ b = - /*<>*/ caml_create_bytes((n * 8 | 0) + 1 | 0), - /*<>*/ _p_ = n - 1 | 0, - /*<>*/ _o_ = 0; + var + n = /*<>*/ seed.length - 1, + b = /*<>*/ caml_create_bytes((n * 8 | 0) + 1 | 0), + _p_ = /*<>*/ n - 1 | 0, + _o_ = 0; if(_p_ >= 0){ var i = _o_; for(;;){ - /*<>*/ /*<>*/ var + var _t_ = - /*<>*/ caml_int64_of_int32 - (runtime.caml_check_bound(seed, i)[1 + i]); - /*<>*/ /*<>*/ caml_call3 - (Stdlib_Bytes[86], b, i * 8 | 0, _t_); - /*<>*/ /*<>*/ var _u_ = i + 1 | 0; + /*<>*/ /*<>*/ caml_int64_of_int32 + ( /*<>*/ runtime.caml_check_bound(seed, i)[1 + i]); + /*<>*/ caml_call3(Stdlib_Bytes[86], b, i * 8 | 0, _t_); + var _u_ = /*<>*/ i + 1 | 0; if(_p_ === i) break; i = _u_; } } - /*<>*/ /*<>*/ caml_bytes_set - (b, n * 8 | 0, 1); - /*<>*/ /*<>*/ var - d1 = /*<>*/ caml_call1(Stdlib_Digest[4], b); - /*<>*/ /*<>*/ caml_bytes_set - (b, n * 8 | 0, 2); - /*<>*/ var - /*<>*/ d2 = - /*<>*/ caml_call1(Stdlib_Digest[4], b), - /*<>*/ _q_ = - /*<>*/ caml_call2(Stdlib_String[64], d2, 8), - /*<>*/ _r_ = - /*<>*/ caml_call2(Stdlib_String[64], d2, 0), - /*<>*/ _s_ = - /*<>*/ caml_call2(Stdlib_String[64], d1, 8); - /*<>*/ return set + /*<>*/ caml_bytes_set(b, n * 8 | 0, 1); + var d1 = /*<>*/ caml_call1(Stdlib_Digest[4], b); + /*<>*/ caml_bytes_set(b, n * 8 | 0, 2); + var + d2 = /*<>*/ caml_call1(Stdlib_Digest[4], b), + _q_ = /*<>*/ caml_call2(Stdlib_String[64], d2, 8), + _r_ = /*<>*/ caml_call2(Stdlib_String[64], d2, 0), + _s_ = /*<>*/ caml_call2(Stdlib_String[64], d1, 8); + /*<>*/ return /*<>*/ set (s, /*<>*/ caml_call2(Stdlib_String[64], d1, 0), _s_, _r_, - _q_); - /*<>*/ } + _q_) /*<>*/ ; + } function make(seed){ - /*<>*/ /*<>*/ var s = create(0); + var s = /*<>*/ create(0); /*<>*/ reinit(s, seed); - /*<>*/ return s; + /*<>*/ return s; /*<>*/ } function make_self_init(param){ - /*<>*/ return make - ( /*<>*/ caml_sys_random_seed(0)); - /*<>*/ } + /*<>*/ return /*<>*/ make + ( /*<>*/ caml_sys_random_seed(0)) /*<>*/ ; + } var - max_int31 = 1073741823, + max_int31 = /*<>*/ 1073741823, max_int32 = 2147483647, cst_Random_int = "Random.int", cst_Random_full_int = "Random.full_int", @@ -24925,165 +25221,156 @@ cst_Random_int32 = "Random.int32", cst_Random_int32_in_range = "Random.int32_in_range"; function bits(s){ - /*<>*/ return /*<>*/ caml_int64_to_int32 + /*<>*/ return /*<>*/ caml_int64_to_int32 ( /*<>*/ caml_lxm_next(s)) - & 1073741823; + & 1073741823 /*<>*/ ; /*<>*/ } function int_aux(s, n, mask){ - /*<>*/ for(;;){ + /*<>*/ for(;;){ var r = - /*<>*/ caml_int64_to_int32 + /*<>*/ caml_int64_to_int32 ( /*<>*/ caml_lxm_next(s)) & mask, - v = caml_mod(r, n); - if(((mask - n | 0) + 1 | 0) >= (r - v | 0)) + v = /*<>*/ caml_mod(r, n); + /*<>*/ if(((mask - n | 0) + 1 | 0) >= (r - v | 0)) /*<>*/ return v; } /*<>*/ } function int$0(s, bound){ /*<>*/ if(1073741823 >= bound && 0 < bound) - return int_aux(s, bound, max_int31); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Random_int); - /*<>*/ } + /*<>*/ return int_aux(s, bound, max_int31) /*<>*/ ; + /*<>*/ return caml_call1(Stdlib[1], cst_Random_int) /*<>*/ ; + } function full_int(s, bound){ /*<>*/ if(0 >= bound) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Random_full_int); + /*<>*/ return caml_call1 + (Stdlib[1], cst_Random_full_int) /*<>*/ ; var _n_ = - bound <= 1073741823 + /*<>*/ bound <= 1073741823 ? max_int31 : bound <= 2147483647 ? max_int32 : Stdlib[19]; - return int_aux(s, bound, _n_); - /*<>*/ } + return int_aux(s, bound, _n_) /*<>*/ ; + } function int_in_range_aux(s, min, max, mask, nbits){ - /*<>*/ var span = (max - min | 0) + 1 | 0; - if(span <= mask && 0 < span) return min + int_aux(s, span, mask) | 0; - /*<>*/ for(;;){ + var span = /*<>*/ (max - min | 0) + 1 | 0; + /*<>*/ if(span <= mask && 0 < span) + /*<>*/ return min + int_aux(s, span, mask) | 0 /*<>*/ ; + /*<>*/ for(;;){ var - drop = Stdlib_Sys[10] - nbits | 0, + drop = /*<>*/ Stdlib_Sys[10] - nbits | 0, r = - /*<>*/ caml_int64_to_int32 + /*<>*/ /*<>*/ caml_int64_to_int32 ( /*<>*/ caml_lxm_next(s)) << drop >> drop; - if(r >= min && max >= r) /*<>*/ return r; + /*<>*/ if(r >= min && max >= r) + /*<>*/ return r; } /*<>*/ } function int_in_range(s, min, max){ /*<>*/ if(max < min) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Random_int_in_range); - if(-1073741824 <= min && max <= 1073741823) + /*<>*/ caml_call1(Stdlib[1], cst_Random_int_in_range); + /*<>*/ if(-1073741824 <= min && max <= 1073741823) /*<>*/ return int_in_range_aux - (s, min, max, max_int31, 31); - if(-2147483648 <= min && max <= 2147483647) + (s, min, max, max_int31, 31) /*<>*/ ; + /*<>*/ if(-2147483648 <= min && max <= 2147483647) /*<>*/ return int_in_range_aux - (s, min, max, max_int32, 32); + (s, min, max, max_int32, 32) /*<>*/ ; /*<>*/ return int_in_range_aux - (s, min, max, Stdlib[19], Stdlib_Sys[10]); - /*<>*/ } + (s, min, max, Stdlib[19], Stdlib_Sys[10]) /*<>*/ ; + } function bits32(s){ - /*<>*/ return /*<>*/ caml_int64_to_int32 - ( /*<>*/ caml_lxm_next(s)); - /*<>*/ } + /*<>*/ return /*<>*/ caml_int64_to_int32 + ( /*<>*/ caml_lxm_next(s)) /*<>*/ ; + } function int32aux(s, n){ - /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ r = bits32(s) >>> 1 | 0, - /*<>*/ v = /*<>*/ caml_mod(r, n); + /*<>*/ for(;;){ + var + r = bits32(s) >>> 1 | 0, + v = /*<>*/ caml_mod(r, n); /*<>*/ if - (! - /*<>*/ caml_greaterthan - (r - v | 0, (Stdlib_Int32[9] - n | 0) + 1 | 0)) + (! caml_greaterthan(r - v | 0, (Stdlib_Int32[9] - n | 0) + 1 | 0)) /*<>*/ return v; } /*<>*/ } function int32(s, bound){ - /*<>*/ return /*<>*/ caml_lessequal - (bound, 0) + /*<>*/ return caml_lessequal(bound, 0) ? /*<>*/ caml_call1(Stdlib[1], cst_Random_int32) - : int32aux(s, bound); - /*<>*/ } + : /*<>*/ int32aux(s, bound) /*<>*/ ; + } function int32_in_range(s, min, max){ - /*<>*/ if - ( /*<>*/ caml_greaterthan(min, max)) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Random_int32_in_range); - /*<>*/ /*<>*/ var + /*<>*/ if(caml_greaterthan(min, max)) + /*<>*/ return caml_call1 + (Stdlib[1], cst_Random_int32_in_range) /*<>*/ ; + var span = /*<>*/ caml_call1(Stdlib_Int32[6], max - min | 0); - /*<>*/ if - (! /*<>*/ caml_lessequal(span, Stdlib_Int32[1])) - /*<>*/ return min + int32aux(s, span) | 0; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var + /*<>*/ if(! caml_lessequal(span, Stdlib_Int32[1])) + /*<>*/ return min + int32aux(s, span) | 0 /*<>*/ ; + /*<>*/ for(;;){ + var r = - /*<>*/ caml_int64_to_int32 + /*<>*/ /*<>*/ caml_int64_to_int32 ( /*<>*/ caml_lxm_next(s)); - /*<>*/ if + /*<>*/ if (! - /*<>*/ caml_lessthan(r, min) + caml_lessthan(r, min) && ! /*<>*/ caml_greaterthan(r, max)) /*<>*/ return r; } /*<>*/ } var - bits64 = caml_lxm_next, + bits64 = /*<>*/ caml_lxm_next, _f_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), _g_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), cst_Random_int64 = "Random.int64", cst_Random_int64_in_range = "Random.int64_in_range"; function int64aux(s, n){ - /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ r = - /*<>*/ caml_int64_shift_right_unsigne + /*<>*/ for(;;){ + var + r = + /*<>*/ /*<>*/ caml_int64_shift_right_unsigne ( /*<>*/ caml_lxm_next(s), 1), - /*<>*/ v = - /*<>*/ runtime.caml_int64_mod(r, n); + v = /*<>*/ runtime.caml_int64_mod(r, n); /*<>*/ if (! - /*<>*/ caml_greaterthan - ( /*<>*/ caml_int64_sub(r, v), + caml_greaterthan + (caml_int64_sub(r, v), /*<>*/ caml_int64_add ( /*<>*/ caml_int64_sub(Stdlib_Int64[9], n), _f_))) /*<>*/ return v; } /*<>*/ } function int64(s, bound){ - /*<>*/ return /*<>*/ caml_lessequal - (bound, _g_) + /*<>*/ return caml_lessequal(bound, _g_) ? /*<>*/ caml_call1(Stdlib[1], cst_Random_int64) - : int64aux(s, bound); - /*<>*/ } + : /*<>*/ int64aux(s, bound) /*<>*/ ; + } function int64_in_range(s, min, max){ - /*<>*/ if - ( /*<>*/ caml_greaterthan(min, max)) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Random_int64_in_range); - /*<>*/ /*<>*/ var + /*<>*/ if(caml_greaterthan(min, max)) + /*<>*/ return caml_call1 + (Stdlib[1], cst_Random_int64_in_range) /*<>*/ ; + var span = - /*<>*/ caml_call1 + /*<>*/ /*<>*/ caml_call1 (Stdlib_Int64[6], /*<>*/ caml_int64_sub(max, min)); - /*<>*/ if - (! /*<>*/ caml_lessequal(span, Stdlib_Int64[1])) - /*<>*/ return /*<>*/ caml_int64_add - (min, int64aux(s, span)); - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - r = /*<>*/ caml_lxm_next(s); - /*<>*/ if + /*<>*/ if(! caml_lessequal(span, Stdlib_Int64[1])) + /*<>*/ return /*<>*/ caml_int64_add + (min, /*<>*/ int64aux(s, span)) /*<>*/ ; + /*<>*/ for(;;){ + var r = /*<>*/ caml_lxm_next(s); + /*<>*/ if (! - /*<>*/ caml_lessthan(r, min) + caml_lessthan(r, min) && ! /*<>*/ caml_greaterthan(r, max)) /*<>*/ return r; } /*<>*/ } var - _j_ = runtime.caml_int64_create_lo_mi_hi(14371852, 15349651, 22696), + _j_ = + /*<>*/ runtime.caml_int64_create_lo_mi_hi(14371852, 15349651, 22696), _k_ = runtime.caml_int64_create_lo_mi_hi(12230193, 11438743, 35013), _l_ = runtime.caml_int64_create_lo_mi_hi(1424933, 15549263, 2083), _m_ = runtime.caml_int64_create_lo_mi_hi(9492471, 4696708, 43520), @@ -25093,195 +25380,190 @@ 32 === Stdlib_Nativeint[9] ? function (s){ - /*<>*/ return bits32(s); - /*<>*/ } + /*<>*/ return bits32(s) /*<>*/ ; + } : function (s){ - /*<>*/ return /*<>*/ caml_int64_to_int32 - ( /*<>*/ caml_lxm_next(s)); - /*<>*/ }, + /*<>*/ return /*<>*/ caml_int64_to_int32 + ( /*<>*/ caml_lxm_next(s)) /*<>*/ ; + }, nativeint = - 32 === Stdlib_Nativeint[9] + /*<>*/ 32 === Stdlib_Nativeint[9] ? function (s, bound){ - /*<>*/ return int32(s, bound); - /*<>*/ } + /*<>*/ return int32(s, bound) /*<>*/ ; + } : function (s, bound){ - /*<>*/ return /*<>*/ caml_int64_to_int32 - (int64 - (s, /*<>*/ caml_int64_of_int32(bound))); - /*<>*/ }, + /*<>*/ return /*<>*/ caml_int64_to_int32 + ( /*<>*/ int64 + (s, /*<>*/ caml_int64_of_int32(bound))) /*<>*/ ; + }, nativeint_in_range = - 32 === Stdlib_Nativeint[9] + /*<>*/ 32 === Stdlib_Nativeint[9] ? function (s, min, max){ - /*<>*/ return int32_in_range(s, min, max); - /*<>*/ } + /*<>*/ return int32_in_range(s, min, max) /*<>*/ ; + } : function (s, min, max){ - /*<>*/ return /*<>*/ caml_int64_to_int32 - (int64_in_range + /*<>*/ return /*<>*/ caml_int64_to_int32 + ( /*<>*/ int64_in_range (s, /*<>*/ caml_int64_of_int32(min), - /*<>*/ caml_int64_of_int32(max))); - /*<>*/ }; + /*<>*/ caml_int64_of_int32(max))) /*<>*/ ; + }; function float$0(s, bound){ /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ b = /*<>*/ caml_lxm_next(s), - /*<>*/ n = - /*<>*/ caml_int64_shift_right_unsigne(b, 11); - /*<>*/ if - ( /*<>*/ caml_notequal(n, _h_)) - /*<>*/ return /*<>*/ runtime.caml_int64_to_float - (n) + var + b = /*<>*/ caml_lxm_next(s), + n = /*<>*/ caml_int64_shift_right_unsigne(b, 11); + /*<>*/ if(caml_notequal(n, _h_)) + /*<>*/ return runtime.caml_int64_to_float(n) * 1.1102230246251565e-16 - * bound; + * bound /*<>*/ ; } - /*<>*/ } + } function bool(s){ - /*<>*/ return /*<>*/ caml_lessthan - ( /*<>*/ caml_lxm_next(s), _i_); - /*<>*/ } + /*<>*/ return caml_lessthan(caml_lxm_next(s), _i_) /*<>*/ ; + } function split(s){ - /*<>*/ var - /*<>*/ i1 = /*<>*/ caml_lxm_next(s), - /*<>*/ i2 = /*<>*/ caml_lxm_next(s), - /*<>*/ i3 = /*<>*/ caml_lxm_next(s), - /*<>*/ i4 = /*<>*/ caml_lxm_next(s); - /*<>*/ return mk(i1, i2, i3, i4); - /*<>*/ } + var + i1 = /*<>*/ caml_lxm_next(s), + i2 = caml_lxm_next(s), + i3 = caml_lxm_next(s), + i4 = caml_lxm_next(s); + /*<>*/ return mk(i1, i2, i3, i4) /*<>*/ ; + } function mk_default(param){ - /*<>*/ return mk(_m_, _l_, _k_, _j_); - /*<>*/ } - /*<>*/ /*<>*/ var + /*<>*/ return mk(_m_, _l_, _k_, _j_) /*<>*/ ; + } + var random_key = /*<>*/ caml_call2 (Stdlib_Domain[10][1], [0, split], mk_default); function bits$0(param){ - /*<>*/ return bits + /*<>*/ return /*<>*/ bits ( /*<>*/ caml_call1 - (Stdlib_Domain[10][2], random_key)); - /*<>*/ } + (Stdlib_Domain[10][2], random_key)) /*<>*/ ; + } function int$1(bound){ - /*<>*/ return int$0 + /*<>*/ return /*<>*/ int$0 ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), - bound); - /*<>*/ } + bound) /*<>*/ ; + } function full_int$0(bound){ - /*<>*/ return full_int + /*<>*/ return /*<>*/ full_int ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), - bound); - /*<>*/ } + bound) /*<>*/ ; + } function int_in_range$0(min, max){ - /*<>*/ return int_in_range + /*<>*/ return /*<>*/ int_in_range ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), min, - max); - /*<>*/ } + max) /*<>*/ ; + } function int32$0(bound){ - /*<>*/ return int32 + /*<>*/ return /*<>*/ int32 ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), - bound); - /*<>*/ } + bound) /*<>*/ ; + } function int32_in_range$0(min, max){ - /*<>*/ return int32_in_range + /*<>*/ return /*<>*/ int32_in_range ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), min, - max); - /*<>*/ } + max) /*<>*/ ; + } function nativeint$0(bound){ - /*<>*/ return nativeint + /*<>*/ return /*<>*/ nativeint ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), - bound); - /*<>*/ } + bound) /*<>*/ ; + } function nativeint_in_range$0(min, max){ - /*<>*/ return nativeint_in_range + /*<>*/ return /*<>*/ nativeint_in_range ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), min, - max); - /*<>*/ } + max) /*<>*/ ; + } function int64$0(bound){ - /*<>*/ return int64 + /*<>*/ return /*<>*/ int64 ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), - bound); - /*<>*/ } + bound) /*<>*/ ; + } function int64_in_range$0(min, max){ - /*<>*/ return int64_in_range + /*<>*/ return /*<>*/ int64_in_range ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), min, - max); - /*<>*/ } + max) /*<>*/ ; + } function float$1(scale){ - /*<>*/ return float$0 + /*<>*/ return /*<>*/ float$0 ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), - scale); - /*<>*/ } + scale) /*<>*/ ; + } function bool$0(param){ - /*<>*/ return bool + /*<>*/ return /*<>*/ bool ( /*<>*/ caml_call1 - (Stdlib_Domain[10][2], random_key)); - /*<>*/ } + (Stdlib_Domain[10][2], random_key)) /*<>*/ ; + } function bits32$0(param){ - /*<>*/ return bits32 + /*<>*/ return /*<>*/ bits32 ( /*<>*/ caml_call1 - (Stdlib_Domain[10][2], random_key)); - /*<>*/ } + (Stdlib_Domain[10][2], random_key)) /*<>*/ ; + } function bits64$0(param){ - /*<>*/ /*<>*/ var + var s = /*<>*/ caml_call1(Stdlib_Domain[10][2], random_key); - /*<>*/ return /*<>*/ caml_lxm_next(s); - /*<>*/ } + /*<>*/ return caml_lxm_next(s) /*<>*/ ; + } function nativebits$0(param){ - /*<>*/ return nativebits + /*<>*/ return /*<>*/ nativebits ( /*<>*/ caml_call1 - (Stdlib_Domain[10][2], random_key)); - /*<>*/ } + (Stdlib_Domain[10][2], random_key)) /*<>*/ ; + } function full_init(seed){ - /*<>*/ return reinit + /*<>*/ return /*<>*/ reinit ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], random_key), - seed); - /*<>*/ } + seed) /*<>*/ ; + } function init(seed){ - /*<>*/ return full_init([0, seed]); - /*<>*/ } + /*<>*/ return full_init([0, seed]) /*<>*/ ; + } function self_init(param){ - /*<>*/ return full_init - ( /*<>*/ caml_sys_random_seed(0)); - /*<>*/ } + /*<>*/ return /*<>*/ full_init + ( /*<>*/ caml_sys_random_seed(0)) /*<>*/ ; + } function split$0(param){ - /*<>*/ return split + /*<>*/ return /*<>*/ split ( /*<>*/ caml_call1 - (Stdlib_Domain[10][2], random_key)); - /*<>*/ } + (Stdlib_Domain[10][2], random_key)) /*<>*/ ; + } function get_state(param){ - /*<>*/ return copy + /*<>*/ return /*<>*/ copy ( /*<>*/ caml_call1 - (Stdlib_Domain[10][2], random_key)); - /*<>*/ } + (Stdlib_Domain[10][2], random_key)) /*<>*/ ; + } function set_state(src){ - /*<>*/ /*<>*/ var + var dst = /*<>*/ caml_call1(Stdlib_Domain[10][2], random_key); - /*<>*/ return /*<>*/ caml_ba_blit - (src, dst); - /*<>*/ } + /*<>*/ return caml_ba_blit(src, dst) /*<>*/ ; + } var Stdlib_Random = - [0, + /*<>*/ [0, init, full_init, self_init, @@ -25344,22 +25626,22 @@ caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_sys_getenv = runtime.caml_sys_getenv, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); @@ -25379,8 +25661,8 @@ global_data.Assert_failure; var Stdlib_String = global_data.Stdlib__String; function ongoing_traversal(h){ - /*<>*/ var - _an_ = h.length - 1 < 4 ? 1 : 0, + var + _an_ = /*<>*/ h.length - 1 < 4 ? 1 : 0, _ao_ = _an_ || (h[4] < 0 ? 1 : 0); return _ao_; /*<>*/ } @@ -25389,630 +25671,662 @@ return 0; /*<>*/ } var - cst_Hashtbl_unsupported_hash_t = "Hashtbl: unsupported hash table format"; + cst_Hashtbl_unsupported_hash_t = + /*<>*/ "Hashtbl: unsupported hash table format"; try{ - /*<>*/ var - /*<>*/ _f_ = - /*<>*/ caml_sys_getenv("OCAMLRUNPARAM"), + var + _f_ = /*<>*/ caml_sys_getenv("OCAMLRUNPARAM"), params = _f_; } catch(_al_){ - var _a_ = caml_wrap_exception(_al_); + var _a_ = /*<>*/ caml_wrap_exception(_al_); if(_a_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_a_, 0); /*<>*/ try{ - /*<>*/ var - /*<>*/ _e_ = - /*<>*/ caml_sys_getenv("CAMLRUNPARAM"), + var + _e_ = /*<>*/ caml_sys_getenv("CAMLRUNPARAM"), _c_ = _e_; } catch(_am_){ - var _b_ = caml_wrap_exception(_am_); + var _b_ = /*<>*/ caml_wrap_exception(_am_); if(_b_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_b_, 0); - var _c_ = cst; + var _c_ = /*<>*/ cst; } - var params = _c_; + var params = /*<>*/ _c_; } - /*<>*/ var - /*<>*/ randomized_default = + var + randomized_default = /*<>*/ caml_call2(Stdlib_String[15], params, 82), - /*<>*/ randomized = + randomized = /*<>*/ caml_call1 (Stdlib_Atomic[1], randomized_default); function randomize(param){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Atomic[4], randomized, 1); - /*<>*/ } + /*<>*/ return caml_call2 + (Stdlib_Atomic[4], randomized, 1) /*<>*/ ; + } function is_randomized(param){ - /*<>*/ return caml_call1(Stdlib_Atomic[3], randomized); - /*<>*/ } - /*<>*/ /*<>*/ var + /*<>*/ return caml_call1(Stdlib_Atomic[3], randomized) /*<>*/ ; + } + var prng_key = /*<>*/ caml_call2 (Stdlib_Domain[10][1], 0, Stdlib_Random[19][2]); function power_2_above(x, n){ - /*<>*/ var x$0 = x; - /*<>*/ for(;;){ + var x$0 = /*<>*/ x; + for(;;){ if(n <= x$0) /*<>*/ return x$0; - if(Stdlib_Sys[13] < (x$0 * 2 | 0)) /*<>*/ return x$0; - var x$1 = x$0 * 2 | 0; + /*<>*/ if(Stdlib_Sys[13] < (x$0 * 2 | 0)) + /*<>*/ return x$0; + var x$1 = /*<>*/ x$0 * 2 | 0; x$0 = x$1; } /*<>*/ } function create(opt, initial_size){ - /*<>*/ var + var random = - opt + /*<>*/ opt ? opt[1] : /*<>*/ caml_call1(Stdlib_Atomic[3], randomized), - /*<>*/ s = power_2_above(16, initial_size); + s = /*<>*/ power_2_above(16, initial_size); /*<>*/ if(random) - /*<>*/ var - /*<>*/ _ak_ = + var + _ak_ = /*<>*/ caml_call1(Stdlib_Domain[10][2], prng_key), - seed = /*<>*/ caml_call1(Stdlib_Random[19][4], _ak_); + seed = + /*<>*/ /*<>*/ caml_call1 + (Stdlib_Random[19][4], _ak_); else - var seed = 0; - /*<>*/ return [0, - 0, - /*<>*/ caml_make_vect(s, 0), - seed, - s]; - } + var seed = /*<>*/ 0; + /*<>*/ return [0, 0, caml_make_vect(s, 0), seed, s] /*<>*/ ; + /*<>*/ } function clear(h){ - /*<>*/ var _aj_ = 0 < h[1] ? 1 : 0; + var _aj_ = /*<>*/ 0 < h[1] ? 1 : 0; return _aj_ ? (h [1] = 0, /*<>*/ caml_call4 (Stdlib_Array[8], h[2], 0, h[2].length - 1, 0)) - : _aj_; - /*<>*/ } + : _aj_ /*<>*/ ; + } function reset(h){ - /*<>*/ var len = h[2].length - 1; - if + var len = /*<>*/ h[2].length - 1; + /*<>*/ if (4 <= h.length - 1 && len !== /*<>*/ caml_call1(Stdlib[18], h[4])){ - h[1] = 0; - h[2] = + /*<>*/ h[1] = 0; + /*<>*/ h[2] = /*<>*/ caml_make_vect ( /*<>*/ caml_call1(Stdlib[18], h[4]), 0); - return 0; + /*<>*/ return 0; } - /*<>*/ return clear(h); - /*<>*/ } + /*<>*/ return clear(h) /*<>*/ ; + } function copy_bucketlist(param){ /*<>*/ if(! param) /*<>*/ return 0; - /*<>*/ var - key = param[1], + var + key = /*<>*/ param[1], data = param[2], next = param[3], - /*<>*/ prec$1 = [0, key, data, next], - prec = prec$1, + prec$1 = /*<>*/ [0, key, data, next], + prec = /*<>*/ prec$1, param$0 = next; for(;;){ - if(! param$0) /*<>*/ return prec$1; - /*<>*/ var - key$0 = param$0[1], + /*<>*/ if(! param$0) + /*<>*/ return prec$1; + var + key$0 = /*<>*/ param$0[1], data$0 = param$0[2], next$0 = param$0[3], - /*<>*/ prec$0 = [0, key$0, data$0, next$0]; - prec[3] = prec$0; - prec = prec$0; + prec$0 = /*<>*/ [0, key$0, data$0, next$0]; + /*<>*/ prec[3] = prec$0; + /*<>*/ prec = prec$0; param$0 = next$0; } /*<>*/ } function copy(h){ - /*<>*/ var - _ag_ = h[4], + var + _ag_ = /*<>*/ h[4], _ah_ = h[3], - /*<>*/ _ai_ = - /*<>*/ caml_call2 - (Stdlib_Array[14], copy_bucketlist, h[2]); - /*<>*/ return [0, h[1], _ai_, _ah_, _ag_]; + _ai_ = caml_call2(Stdlib_Array[14], copy_bucketlist, h[2]); + /*<>*/ return [0, h[1], _ai_, _ah_, _ag_]; /*<>*/ } function length(h){ /*<>*/ return h[1]; /*<>*/ } function insert_all_buckets(indexfun, inplace, odata, ndata){ - /*<>*/ var - nsize = ndata.length - 1, - /*<>*/ ndata_tail = - /*<>*/ caml_make_vect(nsize, 0), - _aa_ = odata.length - 2 | 0, - /*<>*/ _$_ = 0; + var + nsize = /*<>*/ ndata.length - 1, + ndata_tail = /*<>*/ caml_make_vect(nsize, 0), + _aa_ = /*<>*/ odata.length - 2 | 0, + _$_ = 0; if(_aa_ >= 0){ var i$0 = _$_; for(;;){ - /*<>*/ var - /*<>*/ cell$1 = - caml_check_bound(odata, i$0)[1 + i$0], - cell = cell$1; - /*<>*/ for(;;){ - if(! cell) break; - /*<>*/ var + var + cell$1 = + /*<>*/ caml_check_bound(odata, i$0)[1 + i$0], + cell = /*<>*/ cell$1; + for(;;){ + /*<>*/ if(! cell) break; + var key = cell[1], data = cell[2], next = cell[3], - /*<>*/ cell$0 = inplace ? cell : [0, key, data, 0], - /*<>*/ nidx = - /*<>*/ caml_call1(indexfun, key), - /*<>*/ match = - caml_check_bound(ndata_tail, nidx)[1 + nidx]; - if(match) - match[3] = cell$0; + cell$0 = /*<>*/ inplace ? cell : [0, key, data, 0], + nidx = /*<>*/ caml_call1(indexfun, key), + match = + /*<>*/ caml_check_bound(ndata_tail, nidx) + [1 + nidx]; + /*<>*/ if(match) + /*<>*/ match[3] = cell$0; else /*<>*/ caml_check_bound(ndata, nidx)[1 + nidx] = cell$0; /*<>*/ caml_check_bound(ndata_tail, nidx)[1 + nidx] = cell$0; - cell = next; + /*<>*/ cell = next; } - /*<>*/ /*<>*/ var - _af_ = i$0 + 1 | 0; + var _af_ = /*<>*/ i$0 + 1 | 0; if(_aa_ === i$0) break; i$0 = _af_; } } - if(inplace){ - /*<>*/ var - _ac_ = nsize - 1 | 0, - /*<>*/ _ab_ = 0; + /*<>*/ if(inplace){ + var _ac_ = /*<>*/ nsize - 1 | 0, _ab_ = 0; if(_ac_ >= 0){ var i = _ab_; for(;;){ - /*<>*/ /*<>*/ var - match$0 = caml_check_bound(ndata_tail, i)[1 + i]; - if(match$0) match$0[3] = 0; - /*<>*/ /*<>*/ var - _ae_ = i + 1 | 0; + var + match$0 = + /*<>*/ caml_check_bound(ndata_tail, i)[1 + i]; + /*<>*/ if(match$0) + /*<>*/ match$0[3] = 0; + var _ae_ = /*<>*/ i + 1 | 0; if(_ac_ === i) break; i = _ae_; } } - var _ad_ = 0; + var _ad_ = /*<>*/ 0; } else - var _ad_ = inplace; + var _ad_ = /*<>*/ inplace; return _ad_; /*<>*/ } function resize(indexfun, h){ - /*<>*/ var - odata = h[2], - /*<>*/ osize = odata.length - 1, - nsize = osize * 2 | 0, - ___ = nsize < Stdlib_Sys[13] ? 1 : 0; + var + odata = /*<>*/ h[2], + osize = /*<>*/ odata.length - 1, + nsize = /*<>*/ osize * 2 | 0, + ___ = /*<>*/ nsize < Stdlib_Sys[13] ? 1 : 0; if(! ___) return ___; - /*<>*/ var - /*<>*/ ndata = - /*<>*/ caml_make_vect(nsize, 0), - /*<>*/ inplace = 1 - ongoing_traversal(h); - h[2] = ndata; - /*<>*/ return insert_all_buckets + var + ndata = /*<>*/ caml_make_vect(nsize, 0), + inplace = /*<>*/ 1 - ongoing_traversal(h); + /*<>*/ h[2] = ndata; + /*<>*/ return /*<>*/ insert_all_buckets ( /*<>*/ caml_call1(indexfun, h), inplace, odata, - ndata); - /*<>*/ } + ndata) /*<>*/ ; + } function iter(f, h){ - /*<>*/ /*<>*/ var - old_trav = ongoing_traversal(h); - if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); - /*<>*/ try{ - var d = h[2], _W_ = d.length - 2 | 0, _V_ = 0; + var old_trav = /*<>*/ ongoing_traversal(h); + /*<>*/ if(1 - old_trav) + /*<>*/ flip_ongoing_traversal(h); + /*<>*/ try{ + var d = h[2], _W_ = /*<>*/ d.length - 2 | 0, _V_ = 0; if(_W_ >= 0){ var i = _V_; for(;;){ - var param = caml_check_bound(d, i)[1 + i]; - /*<>*/ for(;;){ - if(! param) break; + var + param = + /*<>*/ /*<>*/ caml_check_bound + (d, i) + [1 + i]; + /*<>*/ for(;;){ + /*<>*/ if(! param) break; var key = param[1], data = param[2], next = param[3]; - /*<>*/ /*<>*/ caml_call2 - (f, key, data); - param = next; + /*<>*/ caml_call2(f, key, data); + /*<>*/ param = next; } - /*<>*/ /*<>*/ var - _Z_ = i + 1 | 0; + var _Z_ = /*<>*/ i + 1 | 0; if(_W_ === i) break; i = _Z_; } } - var _X_ = 1 - old_trav, _Y_ = _X_ ? flip_ongoing_traversal(h) : _X_; - /*<>*/ return _Y_; + var + _X_ = /*<>*/ 1 - old_trav, + _Y_ = _X_ ? /*<>*/ flip_ongoing_traversal(h) : _X_; + return _Y_; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); /*<>*/ if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); /*<>*/ flip_ongoing_traversal(h); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (exn, 0); + /*<>*/ throw caml_maybe_attach_backtrace(exn, 0); } /*<>*/ } function filter_map_inplace(f, h){ - /*<>*/ var - d = h[2], - /*<>*/ old_trav = ongoing_traversal(h); - if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); - /*<>*/ try{ + var + d = /*<>*/ h[2], + old_trav = /*<>*/ ongoing_traversal(h); + /*<>*/ if(1 - old_trav) + /*<>*/ flip_ongoing_traversal(h); + /*<>*/ try{ var _R_ = d.length - 2 | 0, _Q_ = 0; if(_R_ >= 0){ var i = _Q_; for(;;){ - /*<>*/ var - /*<>*/ slot$0 = caml_check_bound(h[2], i)[1 + i], - prec = 0, + var + slot$0 = /*<>*/ caml_check_bound(h[2], i)[1 + i], + prec = /*<>*/ 0, slot = slot$0; for(;;){ - if(! slot) break; - /*<>*/ var + /*<>*/ if(! slot) break; + var key = slot[1], data = slot[2], next = slot[3], - /*<>*/ match = - /*<>*/ caml_call2(f, key, data); - if(match){ + match = /*<>*/ caml_call2(f, key, data); + /*<>*/ if(match){ var data$0 = match[1]; /*<>*/ if(prec) - prec[3] = slot; + /*<>*/ prec[3] = slot; else /*<>*/ caml_check_bound(h[2], i)[1 + i] = slot; - slot[2] = data$0; - prec = slot; + /*<>*/ slot[2] = data$0; + /*<>*/ prec = slot; slot = next; } - else{h[1] = h[1] - 1 | 0; slot = next;} + else{ + /*<>*/ h[1] = h[1] - 1 | 0; + /*<>*/ slot = next; + } } - if(prec) - prec[3] = 0; + /*<>*/ if(prec) + /*<>*/ prec[3] = 0; else /*<>*/ caml_check_bound(h[2], i)[1 + i] = 0; - /*<>*/ /*<>*/ var - _U_ = i + 1 | 0; + var _U_ = /*<>*/ i + 1 | 0; if(_R_ === i) break; i = _U_; } } - var _S_ = 1 - old_trav, _T_ = _S_ ? flip_ongoing_traversal(h) : _S_; - /*<>*/ return _T_; + var + _S_ = /*<>*/ 1 - old_trav, + _T_ = _S_ ? /*<>*/ flip_ongoing_traversal(h) : _S_; + return _T_; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); /*<>*/ if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); /*<>*/ flip_ongoing_traversal(h); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (exn, 0); + /*<>*/ throw caml_maybe_attach_backtrace(exn, 0); } /*<>*/ } function fold(f, h, init){ - /*<>*/ /*<>*/ var - old_trav = ongoing_traversal(h); - if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); - /*<>*/ try{ - /*<>*/ var + var old_trav = /*<>*/ ongoing_traversal(h); + /*<>*/ if(1 - old_trav) + /*<>*/ flip_ongoing_traversal(h); + /*<>*/ try{ + var d = h[2], - /*<>*/ accu$1 = [0, init], - _N_ = d.length - 2 | 0, - /*<>*/ _M_ = 0; + accu$1 = /*<>*/ [0, init], + _N_ = /*<>*/ d.length - 2 | 0, + _M_ = 0; if(_N_ >= 0){ var i = _M_; for(;;){ - /*<>*/ var - accu$2 = accu$1[1], - /*<>*/ b$0 = caml_check_bound(d, i)[1 + i], - b = b$0, + var + accu$2 = /*<>*/ accu$1[1], + b$0 = /*<>*/ caml_check_bound(d, i)[1 + i], + b = /*<>*/ b$0, accu = accu$2; - /*<>*/ for(;;){ - if(! b) break; - /*<>*/ var + for(;;){ + /*<>*/ if(! b) break; + var key = b[1], data = b[2], next = b[3], - /*<>*/ accu$0 = - /*<>*/ caml_call3(f, key, data, accu); - b = next; + accu$0 = /*<>*/ caml_call3(f, key, data, accu); + /*<>*/ b = next; accu = accu$0; } - accu$1[1] = accu; - /*<>*/ /*<>*/ var - _P_ = i + 1 | 0; + /*<>*/ accu$1[1] = accu; + var _P_ = i + 1 | 0; if(_N_ === i) break; i = _P_; } } - if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); - var _O_ = accu$1[1]; + /*<>*/ if(1 - old_trav) + /*<>*/ flip_ongoing_traversal(h); + var _O_ = /*<>*/ accu$1[1]; return _O_; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); /*<>*/ if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); /*<>*/ flip_ongoing_traversal(h); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (exn, 0); + /*<>*/ throw caml_maybe_attach_backtrace(exn, 0); } /*<>*/ } function bucket_length(accu, param){ - var accu$0 = accu, param$0 = param; + var accu$0 = /*<>*/ accu, param$0 = param; for(;;){ if(! param$0) /*<>*/ return accu$0; - /*<>*/ var - next = param$0[3], - /*<>*/ accu$1 = accu$0 + 1 | 0; + var + next = /*<>*/ param$0[3], + accu$1 = /*<>*/ accu$0 + 1 | 0; accu$0 = accu$1; param$0 = next; } - } + /*<>*/ } function stats(h){ - /*<>*/ var - /*<>*/ mbl = + var + mbl = /*<>*/ caml_call3 (Stdlib_Array[18], function(m, b){ - /*<>*/ /*<>*/ var - _L_ = bucket_length(0, b); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Int[11], m, _L_); - /*<>*/ }, + var _L_ = /*<>*/ bucket_length(0, b); + /*<>*/ return caml_call2(Stdlib_Int[11], m, _L_); + }, 0, h[2]), - /*<>*/ histo = - /*<>*/ caml_make_vect(mbl + 1 | 0, 0); - /*<>*/ /*<>*/ caml_call2 + histo = /*<>*/ caml_make_vect(mbl + 1 | 0, 0); + /*<>*/ caml_call2 (Stdlib_Array[12], function(b){ - /*<>*/ /*<>*/ var - l = bucket_length(0, b); - /*<>*/ histo[1 + l] = + var l = /*<>*/ bucket_length(0, b); + /*<>*/ histo[1 + l] = caml_check_bound(histo, l)[1 + l] + 1 | 0; - /*<>*/ return 0; - /*<>*/ }, + /*<>*/ return 0; + }, h[2]); - /*<>*/ return [0, h[1], h[2].length - 1, mbl, histo]; + /*<>*/ return [0, h[1], h[2].length - 1, mbl, histo]; /*<>*/ } function to_seq(tbl){ - /*<>*/ var tbl_data = tbl[2]; - /*<>*/ function aux(i, buck, param){ - /*<>*/ var i$0 = i, buck$0 = buck; - /*<>*/ for(;;){ + var tbl_data = /*<>*/ tbl[2]; + function aux(i, buck, param){ + var i$0 = /*<>*/ i, buck$0 = buck; + for(;;){ if(buck$0){ var key = buck$0[1], data = buck$0[2], next = buck$0[3]; - /*<>*/ return [0, + /*<>*/ return [0, [0, key, data], - function(_K_){ /*<>*/ return aux(i$0, next, _K_);}]; + function(_K_){ + /*<>*/ return aux(i$0, next, _K_); + }] /*<>*/ ; } - if(i$0 === tbl_data.length - 1) /*<>*/ return 0; - /*<>*/ var - /*<>*/ buck$1 = - caml_check_bound(tbl_data, i$0)[1 + i$0], - /*<>*/ i$1 = i$0 + 1 | 0; + /*<>*/ if(i$0 === tbl_data.length - 1) + /*<>*/ return 0; + var + buck$1 = + /*<>*/ caml_check_bound(tbl_data, i$0)[1 + i$0], + i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; buck$0 = buck$1; } /*<>*/ } - var /*<>*/ _H_ = 0, _I_ = 0; - /*<>*/ return function(_J_){ - /*<>*/ return aux(_I_, _H_, _J_);}; + var _H_ = /*<>*/ 0, _I_ = 0; + return function(_J_){ + /*<>*/ return aux(_I_, _H_, _J_);} /*<>*/ ; /*<>*/ } function to_seq_keys(m){ - /*<>*/ /*<>*/ var _F_ = to_seq(m); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Seq[29], function(_G_){ /*<>*/ return _G_[1];}, _F_); - /*<>*/ } + var _F_ = /*<>*/ to_seq(m); + /*<>*/ return caml_call2 + (Stdlib_Seq[29], function(_G_){ /*<>*/ return _G_[1];}, _F_) /*<>*/ ; + } function to_seq_values(m){ - /*<>*/ /*<>*/ var _D_ = to_seq(m); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Seq[29], function(_E_){ /*<>*/ return _E_[2];}, _D_); - /*<>*/ } + var _D_ = /*<>*/ to_seq(m); + /*<>*/ return caml_call2 + (Stdlib_Seq[29], function(_E_){ /*<>*/ return _E_[2];}, _D_) /*<>*/ ; + } function MakeSeeded(H){ function key_index(h, key){ - /*<>*/ var _C_ = h[2].length - 2 | 0; - /*<>*/ return /*<>*/ caml_call2 - (H[2], h[3], key) - & _C_; + var _C_ = /*<>*/ h[2].length - 2 | 0; + return caml_call2(H[2], h[3], key) & _C_ /*<>*/ ; /*<>*/ } function add(h, key, data){ - /*<>*/ var - /*<>*/ i = key_index(h, key), - /*<>*/ bucket = - [0, key, data, caml_check_bound(h[2], i)[1 + i]]; + var + i = /*<>*/ key_index(h, key), + bucket = + /*<>*/ [0, + key, + data, + caml_check_bound(h[2], i)[1 + i]]; /*<>*/ caml_check_bound(h[2], i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _B_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _B_ ? resize(key_index, h) : _B_; - /*<>*/ } + /*<>*/ h[1] = h[1] + 1 | 0; + var _B_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _B_ ? /*<>*/ resize(key_index, h) : _B_ /*<>*/ ; + } function remove(h, key){ - /*<>*/ var - /*<>*/ i = key_index(h, key), - /*<>*/ c = caml_check_bound(h[2], i)[1 + i], - prec$0 = 0, + var + i = /*<>*/ key_index(h, key), + c = /*<>*/ caml_check_bound(h[2], i)[1 + i], + prec$0 = /*<>*/ 0, prec = c; for(;;){ - if(! prec) /*<>*/ return 0; - var k = prec[1], next = prec[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], k, key)){ - h[1] = h[1] - 1 | 0; - return prec$0 + /*<>*/ if(! prec) + /*<>*/ return 0; + var k = /*<>*/ prec[1], next = prec[3]; + /*<>*/ if(caml_call2(H[1], k, key)){ + /*<>*/ h[1] = h[1] - 1 | 0; + /*<>*/ return prec$0 ? (prec$0[3] = next, 0) - : (caml_check_bound(h[2], i)[1 + i] = next, 0); + : ( /*<>*/ caml_check_bound + (h[2], i) + [1 + i] + = next, + 0) /*<>*/ ; } - prec$0 = prec; + /*<>*/ prec$0 = prec; prec = next; } /*<>*/ } function find(h, key){ - /*<>*/ var - /*<>*/ _A_ = key_index(h, key), - /*<>*/ match = caml_check_bound(h[2], _A_)[1 + _A_]; - if(! match) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + _A_ = /*<>*/ key_index(h, key), + match = /*<>*/ caml_check_bound(h[2], _A_)[1 + _A_]; + /*<>*/ if(! match) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var k1 = match[1], d1 = match[2], next1 = match[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], key, k1)) + var + k1 = /*<>*/ match[1], + d1 = match[2], + next1 = match[3]; + /*<>*/ if(caml_call2(H[1], key, k1)) /*<>*/ return d1; - if(! next1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! next1) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], key, k2)) + var + k2 = /*<>*/ next1[1], + d2 = next1[2], + next2 = next1[3]; + /*<>*/ if(caml_call2(H[1], key, k2)) /*<>*/ return d2; - if(! next2) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! next2) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], key, k3)) + var + k3 = /*<>*/ next2[1], + d3 = next2[2], + next3 = next2[3]; + /*<>*/ if(caml_call2(H[1], key, k3)) /*<>*/ return d3; - var param = next3; + var param = /*<>*/ next3; for(;;){ - if(! param) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! param) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var k = param[1], data = param[2], next = param[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], key, k)) + var + k = /*<>*/ param[1], + data = param[2], + next = param[3]; + /*<>*/ if(caml_call2(H[1], key, k)) /*<>*/ return data; - param = next; + /*<>*/ param = next; } /*<>*/ } function find_opt(h, key){ - /*<>*/ var - /*<>*/ _z_ = key_index(h, key), - /*<>*/ match = caml_check_bound(h[2], _z_)[1 + _z_]; - if(! match) /*<>*/ return 0; - var k1 = match[1], d1 = match[2], next1 = match[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], key, k1)) + var + _z_ = /*<>*/ key_index(h, key), + match = /*<>*/ caml_check_bound(h[2], _z_)[1 + _z_]; + /*<>*/ if(! match) + /*<>*/ return 0; + var + k1 = /*<>*/ match[1], + d1 = match[2], + next1 = match[3]; + /*<>*/ if(caml_call2(H[1], key, k1)) /*<>*/ return [0, d1]; - if(! next1) /*<>*/ return 0; - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], key, k2)) + /*<>*/ if(! next1) + /*<>*/ return 0; + var + k2 = /*<>*/ next1[1], + d2 = next1[2], + next2 = next1[3]; + /*<>*/ if(caml_call2(H[1], key, k2)) /*<>*/ return [0, d2]; - if(! next2) /*<>*/ return 0; - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], key, k3)) + /*<>*/ if(! next2) + /*<>*/ return 0; + var + k3 = /*<>*/ next2[1], + d3 = next2[2], + next3 = next2[3]; + /*<>*/ if(caml_call2(H[1], key, k3)) /*<>*/ return [0, d3]; - var param = next3; + var param = /*<>*/ next3; for(;;){ - if(! param) /*<>*/ return 0; - var k = param[1], data = param[2], next = param[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], key, k)) + /*<>*/ if(! param) + /*<>*/ return 0; + var + k = /*<>*/ param[1], + data = param[2], + next = param[3]; + /*<>*/ if(caml_call2(H[1], key, k)) /*<>*/ return [0, data]; - param = next; + /*<>*/ param = next; } /*<>*/ } function find_all(h, key){ - /*<>*/ var - /*<>*/ _y_ = key_index(h, key), - param = caml_check_bound(h[2], _y_)[1 + _y_]; - /*<>*/ for(;;){ - if(! param) /*<>*/ return 0; - var k = param[1], d = param[2], next = param[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], k, key)) - break; - param = next; + var + _y_ = /*<>*/ key_index(h, key), + param = + /*<>*/ /*<>*/ caml_check_bound + (h[2], _y_) + [1 + _y_]; + /*<>*/ for(;;){ + /*<>*/ if(! param) + /*<>*/ return 0; + var + k = /*<>*/ param[1], + d = param[2], + next = param[3]; + /*<>*/ if(caml_call2(H[1], k, key)) break; + /*<>*/ param = next; } - /*<>*/ var - /*<>*/ block = [0, d, 24029], - dst = block, + var + block = /*<>*/ [0, d, 24029], + dst = /*<>*/ block, offset = 1, param$0 = next; - /*<>*/ for(;;){ - if(! param$0){ - dst[1 + offset] = 0; - /*<>*/ return block; + for(;;){ + /*<>*/ if(! param$0){ + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return block; } - var k$0 = param$0[1], d$0 = param$0[2], next$0 = param$0[3]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], k$0, key)){ - /*<>*/ /*<>*/ var - dst$0 = [0, d$0, 24029]; + var + k$0 = /*<>*/ param$0[1], + d$0 = param$0[2], + next$0 = param$0[3]; + /*<>*/ if(caml_call2(H[1], k$0, key)){ + var dst$0 = /*<>*/ [0, d$0, 24029]; dst[1 + offset] = dst$0; dst = dst$0; offset = 1; param$0 = next$0; } else - param$0 = next$0; + /*<>*/ param$0 = next$0; } /*<>*/ } function replace(h, key, data){ - /*<>*/ var - /*<>*/ i = key_index(h, key), - /*<>*/ l = caml_check_bound(h[2], i)[1 + i], - slot = l; + var + i = /*<>*/ key_index(h, key), + l = /*<>*/ caml_check_bound(h[2], i)[1 + i], + slot = /*<>*/ l; for(;;){ - if(slot){ + /*<>*/ if(slot){ var k = slot[1], next = slot[3]; - /*<>*/ if - (! /*<>*/ caml_call2(H[1], k, key)){slot = next; continue;} - slot[1] = key; - slot[2] = data; - var _v_ = 0; + /*<>*/ if(! caml_call2(H[1], k, key)){ + /*<>*/ slot = next; + continue; + } + /*<>*/ slot[1] = key; + /*<>*/ slot[2] = data; + var _v_ = /*<>*/ 0; } else - var _v_ = 1; - /*<>*/ if(_v_){ + var _v_ = /*<>*/ 1; + /*<>*/ if(_v_){ /*<>*/ caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; - h[1] = h[1] + 1 | 0; - var _w_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - if(_w_) /*<>*/ return resize(key_index, h); - var _x_ = _w_; + /*<>*/ h[1] = h[1] + 1 | 0; + var + _w_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; + if(_w_) + /*<>*/ return resize(key_index, h) /*<>*/ ; + var _x_ = /*<>*/ _w_; } else - var _x_ = _v_; + var _x_ = /*<>*/ _v_; return _x_; } /*<>*/ } function mem(h, key){ - /*<>*/ var - /*<>*/ _u_ = key_index(h, key), - param = caml_check_bound(h[2], _u_)[1 + _u_]; - for(;;){ - if(! param) /*<>*/ return 0; - /*<>*/ var - k = param[1], + var + _u_ = /*<>*/ key_index(h, key), + param = + /*<>*/ /*<>*/ caml_check_bound + (h[2], _u_) + [1 + _u_]; + /*<>*/ for(;;){ + /*<>*/ if(! param) + /*<>*/ return 0; + var + k = /*<>*/ param[1], next = param[3], - /*<>*/ _t_ = - /*<>*/ caml_call2(H[1], k, key); - /*<>*/ if(_t_) - /*<>*/ return _t_; + _t_ = /*<>*/ caml_call2(H[1], k, key); + /*<>*/ if(_t_) return _t_; param = next; } /*<>*/ } function add_seq(tbl, i){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], function(param){ - /*<>*/ var v = param[2], k = param[1]; - /*<>*/ return add(tbl, k, v); - /*<>*/ }, - i); - /*<>*/ } + var v = /*<>*/ param[2], k = param[1]; + /*<>*/ return add(tbl, k, v) /*<>*/ ; + }, + i) /*<>*/ ; + } function replace_seq(tbl, i){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], function(param){ - /*<>*/ var v = param[2], k = param[1]; - /*<>*/ return replace(tbl, k, v); - /*<>*/ }, - i); - /*<>*/ } + var v = /*<>*/ param[2], k = param[1]; + /*<>*/ return replace(tbl, k, v) /*<>*/ ; + }, + i) /*<>*/ ; + } function of_seq(i){ - /*<>*/ /*<>*/ var - tbl = create(0, 16); + var tbl = /*<>*/ create(0, 16); /*<>*/ replace_seq(tbl, i); - /*<>*/ return tbl; + /*<>*/ return tbl; /*<>*/ } - /*<>*/ return [0, + /*<>*/ return [0, create, clear, reset, @@ -26039,11 +26353,10 @@ function Make(H){ var equal = H[1]; function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_call1 - (H[2], x); - /*<>*/ } + /*<>*/ return caml_call1(H[2], x) /*<>*/ ; + } var - include = MakeSeeded([0, equal, seeded_hash]), + include = /*<>*/ MakeSeeded([0, equal, seeded_hash]), _s_ = include[1], clear = include[2], reset = include[3], @@ -26066,17 +26379,14 @@ add_seq = include[20], replace_seq = include[21]; function create(sz){ - /*<>*/ return /*<>*/ caml_call2 - (_s_, _d_, sz); - /*<>*/ } + /*<>*/ return caml_call2(_s_, _d_, sz) /*<>*/ ; + } function of_seq(i){ - /*<>*/ /*<>*/ var - tbl = /*<>*/ caml_call2(_s_, _d_, 16); - /*<>*/ /*<>*/ caml_call2 - (replace_seq, tbl, i); - /*<>*/ return tbl; + var tbl = /*<>*/ caml_call2(_s_, _d_, 16); + /*<>*/ caml_call2(replace_seq, tbl, i); + /*<>*/ return tbl; /*<>*/ } - /*<>*/ return [0, + /*<>*/ return [0, create, clear, reset, @@ -26101,248 +26411,287 @@ of_seq]; } function hash(x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, 0, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, 0, x) /*<>*/ ; + } function hash_param(n1, n2, x){ - /*<>*/ return /*<>*/ caml_hash - (n1, n2, 0, x); - /*<>*/ } + /*<>*/ return caml_hash(n1, n2, 0, x) /*<>*/ ; + } function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_hash - (10, 100, seed, x); - /*<>*/ } + /*<>*/ return caml_hash(10, 100, seed, x) /*<>*/ ; + } function key_index(h, key){ /*<>*/ return 4 <= h.length - 1 ? /*<>*/ caml_hash (10, 100, h[3], key) & (h[2].length - 2 | 0) : /*<>*/ caml_call1 - (Stdlib[1], cst_Hashtbl_unsupported_hash_t); - /*<>*/ } + (Stdlib[1], cst_Hashtbl_unsupported_hash_t) /*<>*/ ; + } function add(h, key, data){ - /*<>*/ var - /*<>*/ i = key_index(h, key), - /*<>*/ bucket = - [0, key, data, caml_check_bound(h[2], i)[1 + i]]; + var + i = /*<>*/ key_index(h, key), + bucket = + /*<>*/ [0, + key, + data, + caml_check_bound(h[2], i)[1 + i]]; /*<>*/ caml_check_bound(h[2], i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _r_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _r_ ? resize(key_index, h) : _r_; - /*<>*/ } + /*<>*/ h[1] = h[1] + 1 | 0; + var _r_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _r_ ? /*<>*/ resize(key_index, h) : _r_ /*<>*/ ; + } function remove(h, key){ - /*<>*/ var - /*<>*/ i = key_index(h, key), - /*<>*/ c = caml_check_bound(h[2], i)[1 + i], - prec$0 = 0, + var + i = /*<>*/ key_index(h, key), + c = /*<>*/ caml_check_bound(h[2], i)[1 + i], + prec$0 = /*<>*/ 0, prec = c; for(;;){ - if(! prec) /*<>*/ return 0; - var k = prec[1], next = prec[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(k, key)){ - h[1] = h[1] - 1 | 0; - return prec$0 + /*<>*/ if(! prec) /*<>*/ return 0; + var k = /*<>*/ prec[1], next = prec[3]; + /*<>*/ if(0 === caml_compare(k, key)){ + /*<>*/ h[1] = h[1] - 1 | 0; + /*<>*/ return prec$0 ? (prec$0[3] = next, 0) - : (caml_check_bound(h[2], i)[1 + i] = next, 0); + : ( /*<>*/ caml_check_bound + (h[2], i) + [1 + i] + = next, + 0) /*<>*/ ; } - prec$0 = prec; + /*<>*/ prec$0 = prec; prec = next; } /*<>*/ } function find(h, key){ - /*<>*/ var - /*<>*/ _q_ = key_index(h, key), - /*<>*/ match = caml_check_bound(h[2], _q_)[1 + _q_]; - if(! match) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + _q_ = /*<>*/ key_index(h, key), + match = /*<>*/ caml_check_bound(h[2], _q_)[1 + _q_]; + /*<>*/ if(! match) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var k1 = match[1], d1 = match[2], next1 = match[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(key, k1)) + var + k1 = /*<>*/ match[1], + d1 = match[2], + next1 = match[3]; + /*<>*/ if(0 === caml_compare(key, k1)) /*<>*/ return d1; - if(! next1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! next1) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(key, k2)) + var + k2 = /*<>*/ next1[1], + d2 = next1[2], + next2 = next1[3]; + /*<>*/ if(0 === caml_compare(key, k2)) /*<>*/ return d2; - if(! next2) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! next2) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(key, k3)) + var + k3 = /*<>*/ next2[1], + d3 = next2[2], + next3 = next2[3]; + /*<>*/ if(0 === caml_compare(key, k3)) /*<>*/ return d3; - var param = next3; + var param = /*<>*/ next3; for(;;){ - if(! param) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(! param) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var k = param[1], data = param[2], next = param[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(key, k)) + var + k = /*<>*/ param[1], + data = param[2], + next = param[3]; + /*<>*/ if(0 === caml_compare(key, k)) /*<>*/ return data; - param = next; + /*<>*/ param = next; } /*<>*/ } function find_opt(h, key){ - /*<>*/ var - /*<>*/ _p_ = key_index(h, key), - /*<>*/ match = caml_check_bound(h[2], _p_)[1 + _p_]; - if(! match) /*<>*/ return 0; - var k1 = match[1], d1 = match[2], next1 = match[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(key, k1)) + var + _p_ = /*<>*/ key_index(h, key), + match = /*<>*/ caml_check_bound(h[2], _p_)[1 + _p_]; + /*<>*/ if(! match) + /*<>*/ return 0; + var + k1 = /*<>*/ match[1], + d1 = match[2], + next1 = match[3]; + /*<>*/ if(0 === caml_compare(key, k1)) /*<>*/ return [0, d1]; - if(! next1) /*<>*/ return 0; - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(key, k2)) + /*<>*/ if(! next1) /*<>*/ return 0; + var + k2 = /*<>*/ next1[1], + d2 = next1[2], + next2 = next1[3]; + /*<>*/ if(0 === caml_compare(key, k2)) /*<>*/ return [0, d2]; - if(! next2) /*<>*/ return 0; - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(key, k3)) + /*<>*/ if(! next2) + /*<>*/ return 0; + var + k3 = /*<>*/ next2[1], + d3 = next2[2], + next3 = next2[3]; + /*<>*/ if(0 === caml_compare(key, k3)) /*<>*/ return [0, d3]; - var param = next3; + var param = /*<>*/ next3; for(;;){ - if(! param) /*<>*/ return 0; - var k = param[1], data = param[2], next = param[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(key, k)) + /*<>*/ if(! param) + /*<>*/ return 0; + var + k = /*<>*/ param[1], + data = param[2], + next = param[3]; + /*<>*/ if(0 === caml_compare(key, k)) /*<>*/ return [0, data]; - param = next; + /*<>*/ param = next; } /*<>*/ } function find_all(h, key){ - /*<>*/ var - /*<>*/ _o_ = key_index(h, key), - param = caml_check_bound(h[2], _o_)[1 + _o_]; - /*<>*/ for(;;){ - if(! param) /*<>*/ return 0; - var k = param[1], data = param[2], next = param[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(k, key)) - break; - param = next; + var + _o_ = /*<>*/ key_index(h, key), + param = + /*<>*/ /*<>*/ caml_check_bound + (h[2], _o_) + [1 + _o_]; + /*<>*/ for(;;){ + /*<>*/ if(! param) + /*<>*/ return 0; + var + k = /*<>*/ param[1], + data = param[2], + next = param[3]; + /*<>*/ if(0 === caml_compare(k, key)) break; + /*<>*/ param = next; } - /*<>*/ var - /*<>*/ block = [0, data, 24029], - dst = block, + var + block = /*<>*/ [0, data, 24029], + dst = /*<>*/ block, offset = 1, param$0 = next; - /*<>*/ for(;;){ - if(! param$0){ - dst[1 + offset] = 0; - /*<>*/ return block; - } - var k$0 = param$0[1], data$0 = param$0[2], next$0 = param$0[3]; - /*<>*/ if - (0 === /*<>*/ caml_compare(k$0, key)){ - /*<>*/ /*<>*/ var - dst$0 = [0, data$0, 24029]; + for(;;){ + /*<>*/ if(! param$0){ + /*<>*/ dst[1 + offset] = 0; + /*<>*/ return block; + } + var + k$0 = /*<>*/ param$0[1], + data$0 = param$0[2], + next$0 = param$0[3]; + /*<>*/ if(0 === caml_compare(k$0, key)){ + var dst$0 = /*<>*/ [0, data$0, 24029]; dst[1 + offset] = dst$0; dst = dst$0; offset = 1; param$0 = next$0; } else - param$0 = next$0; + /*<>*/ param$0 = next$0; } /*<>*/ } function replace(h, key, data){ - /*<>*/ var - /*<>*/ i = key_index(h, key), - /*<>*/ l = caml_check_bound(h[2], i)[1 + i], - slot = l; + var + i = /*<>*/ key_index(h, key), + l = /*<>*/ caml_check_bound(h[2], i)[1 + i], + slot = /*<>*/ l; for(;;){ - if(slot){ + /*<>*/ if(slot){ var k = slot[1], next = slot[3]; - /*<>*/ if - (0 !== /*<>*/ caml_compare(k, key)){slot = next; continue;} - slot[1] = key; - slot[2] = data; - var _l_ = 0; + /*<>*/ if(0 !== caml_compare(k, key)){ + /*<>*/ slot = next; + continue; + } + /*<>*/ slot[1] = key; + /*<>*/ slot[2] = data; + var _l_ = /*<>*/ 0; } else - var _l_ = 1; - /*<>*/ if(_l_){ + var _l_ = /*<>*/ 1; + /*<>*/ if(_l_){ /*<>*/ caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; - h[1] = h[1] + 1 | 0; - var _m_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - if(_m_) /*<>*/ return resize(key_index, h); - var _n_ = _m_; + /*<>*/ h[1] = h[1] + 1 | 0; + var _m_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; + if(_m_) + /*<>*/ return resize(key_index, h) /*<>*/ ; + var _n_ = /*<>*/ _m_; } else - var _n_ = _l_; + var _n_ = /*<>*/ _l_; return _n_; } /*<>*/ } function mem(h, key){ - /*<>*/ var - /*<>*/ _k_ = key_index(h, key), - param = caml_check_bound(h[2], _k_)[1 + _k_]; - for(;;){ - if(! param) /*<>*/ return 0; + var + _k_ = /*<>*/ key_index(h, key), + param = + /*<>*/ /*<>*/ caml_check_bound + (h[2], _k_) + [1 + _k_]; + /*<>*/ for(;;){ + /*<>*/ if(! param) + /*<>*/ return 0; var - k = param[1], + k = /*<>*/ param[1], next = param[3], - _j_ = 0 === /*<>*/ caml_compare(k, key) ? 1 : 0; - if(_j_) return _j_; + _j_ = /*<>*/ 0 === caml_compare(k, key) ? 1 : 0; + /*<>*/ if(_j_) return _j_; param = next; } /*<>*/ } function add_seq(tbl, i){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], function(param){ - /*<>*/ var v = param[2], k = param[1]; - /*<>*/ return add(tbl, k, v); - /*<>*/ }, - i); - /*<>*/ } + var v = /*<>*/ param[2], k = param[1]; + /*<>*/ return add(tbl, k, v) /*<>*/ ; + }, + i) /*<>*/ ; + } function replace_seq(tbl, i){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], function(param){ - /*<>*/ var v = param[2], k = param[1]; - /*<>*/ return replace(tbl, k, v); - /*<>*/ }, - i); - /*<>*/ } + var v = /*<>*/ param[2], k = param[1]; + /*<>*/ return replace(tbl, k, v) /*<>*/ ; + }, + i) /*<>*/ ; + } function of_seq(i){ - /*<>*/ /*<>*/ var - tbl = create(0, 16); + var tbl = /*<>*/ create(0, 16); /*<>*/ replace_seq(tbl, i); - /*<>*/ return tbl; + /*<>*/ return tbl; /*<>*/ } function rebuild(opt, h){ - /*<>*/ var + var random = - opt + /*<>*/ opt ? opt[1] : /*<>*/ caml_call1(Stdlib_Atomic[3], randomized), - /*<>*/ s = power_2_above(16, h[2].length - 1); + s = /*<>*/ power_2_above(16, h[2].length - 1); /*<>*/ if(random) - /*<>*/ var - /*<>*/ _g_ = + var + _g_ = /*<>*/ caml_call1(Stdlib_Domain[10][2], prng_key), - seed = /*<>*/ caml_call1(Stdlib_Random[19][4], _g_); + seed = + /*<>*/ /*<>*/ caml_call1 + (Stdlib_Random[19][4], _g_); else - var seed = 4 <= h.length - 1 ? h[3] : 0; - /*<>*/ var - _h_ = 4 <= h.length - 1 ? h[4] : s, - /*<>*/ h$0 = - [0, h[1], /*<>*/ caml_make_vect(s, 0), seed, _h_]; + var seed = /*<>*/ 4 <= h.length - 1 ? h[3] : 0; + var + _h_ = /*<>*/ 4 <= h.length - 1 ? h[4] : s, + h$0 = + /*<>*/ [0, h[1], caml_make_vect(s, 0), seed, _h_]; /*<>*/ insert_all_buckets - (function(_i_){ /*<>*/ return key_index(h$0, _i_);}, 0, h[2], h$0[2]); - /*<>*/ return h$0; - } + (function(_i_){ /*<>*/ return key_index(h$0, _i_);}, + 0, + h[2], + h$0[2]); + /*<>*/ return h$0; + /*<>*/ } var Stdlib_Hashtbl = - [0, + /*<>*/ [0, create, clear, reset, @@ -26390,27 +26739,27 @@ caml_make_vect = runtime.caml_make_vect, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_mod = runtime.caml_mod; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); @@ -26431,384 +26780,363 @@ cst_Weak_fill = "Weak.fill", cst_Weak_Make_hash_bucket_cann = "Weak.Make: hash bucket cannot grow more"; function create(l){ - /*<>*/ var - _J_ = 0 <= l ? 1 : 0, + var + _J_ = /*<>*/ 0 <= l ? 1 : 0, _K_ = _J_ ? l <= Stdlib_Obj[23][15] ? 1 : 0 : _J_; - if(1 - _K_) - /*<>*/ /*<>*/ caml_call1 - (Stdlib[1], cst_Weak_create); - /*<>*/ return /*<>*/ runtime.caml_weak_create - (l); - /*<>*/ } + if(1 - _K_) /*<>*/ caml_call1(Stdlib[1], cst_Weak_create); + /*<>*/ return runtime.caml_weak_create(l) /*<>*/ ; + } function length(x){ /*<>*/ return x.length - 3 | 0; /*<>*/ } function raise_if_invalid_offset(e, o, msg){ - /*<>*/ var - _G_ = 0 <= o ? 1 : 0, - _H_ = _G_ ? o < length(e) ? 1 : 0 : _G_, - _I_ = 1 - _H_; - return _I_ ? /*<>*/ caml_call1(Stdlib[1], msg) : _I_; - /*<>*/ } + var + _G_ = /*<>*/ 0 <= o ? 1 : 0, + _H_ = _G_ ? o < /*<>*/ length(e) ? 1 : 0 : _G_, + _I_ = /*<>*/ 1 - _H_; + return _I_ ? /*<>*/ caml_call1(Stdlib[1], msg) : _I_ /*<>*/ ; + } function set(e, o, x){ /*<>*/ raise_if_invalid_offset(e, o, cst_Weak_set); - if(! x) - /*<>*/ return /*<>*/ runtime.caml_ephe_unset_key - (e, o); - var x$0 = x[1]; - /*<>*/ return /*<>*/ runtime.caml_ephe_set_key - (e, o, x$0); - /*<>*/ } + /*<>*/ if(! x) + /*<>*/ return runtime.caml_ephe_unset_key(e, o) /*<>*/ ; + var x$0 = /*<>*/ x[1]; + /*<>*/ return runtime.caml_ephe_set_key(e, o, x$0) /*<>*/ ; + } function get(e, o){ /*<>*/ raise_if_invalid_offset(e, o, cst_Weak_get); - /*<>*/ return /*<>*/ runtime.caml_ephe_get_key - (e, o); - /*<>*/ } + /*<>*/ return runtime.caml_ephe_get_key(e, o) /*<>*/ ; + } function get_copy(e, o){ /*<>*/ raise_if_invalid_offset(e, o, cst_Weak_get_copy); - /*<>*/ return /*<>*/ runtime.caml_ephe_get_key_copy - (e, o); - /*<>*/ } + /*<>*/ return runtime.caml_ephe_get_key_copy(e, o) /*<>*/ ; + } function check(e, o){ /*<>*/ raise_if_invalid_offset(e, o, cst_Weak_check); - /*<>*/ return /*<>*/ runtime.caml_ephe_check_key - (e, o); - /*<>*/ } + /*<>*/ return runtime.caml_ephe_check_key(e, o) /*<>*/ ; + } function blit(e1, o1, e2, o2, l){ /*<>*/ if (0 <= l && 0 <= o1 - && (length(e1) - l | 0) >= o1 && 0 <= o2 && (length(e2) - l | 0) >= o2){ + && + ( /*<>*/ length(e1) - l | 0) >= o1 + && 0 <= o2 && ( /*<>*/ length(e2) - l | 0) >= o2){ var - _E_ = 0 !== l ? 1 : 0, + _E_ = /*<>*/ 0 !== l ? 1 : 0, _F_ = _E_ ? /*<>*/ runtime.caml_ephe_blit_key (e1, o1, e2, o2, l) : _E_; - /*<>*/ return _F_; + /*<>*/ return _F_; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_Weak_blit); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[1], cst_Weak_blit) /*<>*/ ; + } function fill(ar, ofs, len, x){ /*<>*/ if - (0 <= ofs && 0 <= len && (length(ar) - len | 0) >= ofs){ - var _C_ = (ofs + len | 0) - 1 | 0; + (0 <= ofs + && 0 <= len && ( /*<>*/ length(ar) - len | 0) >= ofs){ + var _C_ = /*<>*/ (ofs + len | 0) - 1 | 0; if(_C_ >= ofs){ var i = ofs; for(;;){ /*<>*/ set(ar, i, x); - /*<>*/ /*<>*/ var _D_ = i + 1 | 0; + var _D_ = /*<>*/ i + 1 | 0; if(_C_ === i) break; i = _D_; } } - return 0; + /*<>*/ return 0; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stdlib[6], cst_Weak_fill], 1); /*<>*/ } function Make(H){ - /*<>*/ /*<>*/ var - emptybucket = create(0); + var emptybucket = /*<>*/ create(0); function get_index(t, h){ - /*<>*/ return caml_mod(h & Stdlib[19], t[1].length - 1); - /*<>*/ } - var limit = 7; + /*<>*/ return caml_mod(h & Stdlib[19], t[1].length - 1) /*<>*/ ; + } + var limit = /*<>*/ 7; function create$0(sz){ - /*<>*/ var - sz$0 = 7 <= sz ? sz : 7, - sz$1 = Stdlib_Sys[13] < sz$0 ? Stdlib_Sys[13] : sz$0; - /*<>*/ return [0, - /*<>*/ caml_make_vect(sz$1, emptybucket), + var + sz$0 = /*<>*/ 7 <= sz ? sz : 7, + sz$1 = + /*<>*/ Stdlib_Sys[13] < sz$0 ? Stdlib_Sys[13] : sz$0; + /*<>*/ return [0, + caml_make_vect(sz$1, emptybucket), /*<>*/ caml_make_vect(sz$1, [0]), limit, 0, - 0]; + 0] /*<>*/ ; /*<>*/ } function clear(t){ - /*<>*/ var - _A_ = t[1].length - 2 | 0, - /*<>*/ _z_ = 0; + var _A_ = /*<>*/ t[1].length - 2 | 0, _z_ = 0; if(_A_ >= 0){ var i = _z_; for(;;){ /*<>*/ caml_check_bound(t[1], i)[1 + i] = emptybucket; /*<>*/ caml_check_bound(t[2], i)[1 + i] = [0]; - /*<>*/ /*<>*/ var _B_ = i + 1 | 0; + var _B_ = /*<>*/ i + 1 | 0; if(_A_ === i) break; i = _B_; } } - t[3] = limit; - t[4] = 0; + /*<>*/ t[3] = limit; + /*<>*/ t[4] = 0; return 0; /*<>*/ } function fold(f, t, init){ - /*<>*/ var i = 0; - /*<>*/ return /*<>*/ caml_call3 + var i = /*<>*/ 0; + /*<>*/ return caml_call3 (Stdlib_Array[20], function(b, accu$1){ - var i$0 = i, accu = accu$1; - /*<>*/ for(;;){ - if(length(b) <= i$0) /*<>*/ return accu; - /*<>*/ /*<>*/ var - match = get(b, i$0); - if(match){ - /*<>*/ var + var i$0 = /*<>*/ i, accu = accu$1; + for(;;){ + /*<>*/ if(length(b) <= i$0) + /*<>*/ return accu; + var match = /*<>*/ get(b, i$0); + /*<>*/ if(match){ + var v = match[1], - /*<>*/ accu$0 = - /*<>*/ caml_call2(f, v, accu), - i$1 = i$0 + 1 | 0; + accu$0 = /*<>*/ caml_call2(f, v, accu), + i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; accu = accu$0; } - else{var i$2 = i$0 + 1 | 0; i$0 = i$2;} + else{var i$2 = /*<>*/ i$0 + 1 | 0; i$0 = i$2; + } } }, t[1], - init); - /*<>*/ } + init) /*<>*/ ; + } function iter(f, t){ - /*<>*/ var i = 0; - /*<>*/ return /*<>*/ caml_call2 + var i = /*<>*/ 0; + /*<>*/ return caml_call2 (Stdlib_Array[12], function(b){ - var i$0 = i; - /*<>*/ for(;;){ - if(length(b) <= i$0) /*<>*/ return 0; - /*<>*/ /*<>*/ var - match = get(b, i$0); - if(match){ + var i$0 = /*<>*/ i; + for(;;){ + /*<>*/ if(length(b) <= i$0) + /*<>*/ return 0; + var match = /*<>*/ get(b, i$0); + /*<>*/ if(match){ var v = match[1]; - /*<>*/ /*<>*/ caml_call1 - (f, v); - var i$1 = i$0 + 1 | 0; + /*<>*/ caml_call1(f, v); + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; } - else{var i$2 = i$0 + 1 | 0; i$0 = i$2;} + else{var i$2 = /*<>*/ i$0 + 1 | 0; i$0 = i$2; + } } }, - t[1]); - /*<>*/ } + t[1]) /*<>*/ ; + } function count_bucket(i, b, accu){ - /*<>*/ var i$0 = i, accu$0 = accu; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i, accu$0 = accu; + for(;;){ if(length(b) <= i$0) /*<>*/ return accu$0; - /*<>*/ var - /*<>*/ _y_ = check(b, i$0) ? 1 : 0, - accu$1 = accu$0 + _y_ | 0, + var + _y_ = /*<>*/ check(b, i$0) ? 1 : 0, + accu$1 = /*<>*/ accu$0 + _y_ | 0, i$1 = i$0 + 1 | 0; i$0 = i$1; accu$0 = accu$1; } /*<>*/ } function count(t){ - /*<>*/ var _v_ = 0; - /*<>*/ return /*<>*/ caml_call3 + var _v_ = /*<>*/ 0; + /*<>*/ return caml_call3 (Stdlib_Array[20], function(_w_, _x_){ - /*<>*/ return count_bucket(_v_, _w_, _x_); + /*<>*/ return count_bucket(_v_, _w_, _x_); }, t[1], - 0); - /*<>*/ } + 0) /*<>*/ ; + } function add_aux(t, setter, d, h, index){ - /*<>*/ var - /*<>*/ bucket$0 = - caml_check_bound(t[1], index)[1 + index], - /*<>*/ hashes = - caml_check_bound(t[2], index)[1 + index], - /*<>*/ sz = length(bucket$0), - i$3 = 0; - /*<>*/ for(;;){ - if(sz <= i$3) break; + var + bucket$0 = + /*<>*/ caml_check_bound(t[1], index)[1 + index], + hashes = + /*<>*/ caml_check_bound(t[2], index)[1 + index], + sz = /*<>*/ length(bucket$0), + i$3 = /*<>*/ 0; + for(;;){ + /*<>*/ if(sz <= i$3) break; /*<>*/ if(! check(bucket$0, i$3)){ - /*<>*/ /*<>*/ caml_call3 - (setter, bucket$0, i$3, d); + /*<>*/ caml_call3(setter, bucket$0, i$3, d); /*<>*/ caml_check_bound(hashes, i$3)[1 + i$3] = h; - /*<>*/ return 0; + /*<>*/ return 0; } - /*<>*/ /*<>*/ var i$5 = i$3 + 1 | 0; + var i$5 = /*<>*/ i$3 + 1 | 0; i$3 = i$5; } - /*<>*/ /*<>*/ var + var newsz = /*<>*/ caml_call2 (Stdlib_Int[10], ((3 * sz | 0) / 2 | 0) + 3 | 0, Stdlib_Sys[13] - 2 | 0); - if(newsz <= sz) - /*<>*/ /*<>*/ caml_call1 + /*<>*/ if(newsz <= sz) + /*<>*/ caml_call1 (Stdlib[2], cst_Weak_Make_hash_bucket_cann); - /*<>*/ var - /*<>*/ newbucket$0 = create(newsz), - /*<>*/ newhashes = - /*<>*/ caml_make_vect(newsz, 0); + var + newbucket$0 = /*<>*/ create(newsz), + newhashes = /*<>*/ caml_make_vect(newsz, 0); /*<>*/ blit(bucket$0, 0, newbucket$0, 0, sz); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_Array[9], hashes, 0, newhashes, 0, sz); - /*<>*/ /*<>*/ caml_call3 - (setter, newbucket$0, sz, d); + /*<>*/ caml_call3(setter, newbucket$0, sz, d); /*<>*/ caml_check_bound(newhashes, sz)[1 + sz] = h; /*<>*/ caml_check_bound(t[1], index)[1 + index] = newbucket$0; /*<>*/ caml_check_bound(t[2], index)[1 + index] = newhashes; - var _r_ = sz <= t[3] ? 1 : 0, _s_ = _r_ ? t[3] < newsz ? 1 : 0 : _r_; + var + _r_ = /*<>*/ sz <= t[3] ? 1 : 0, + _s_ = _r_ ? t[3] < newsz ? 1 : 0 : _r_; if(_s_){ - t[4] = t[4] + 1 | 0; - var i$4 = 0; + /*<>*/ t[4] = t[4] + 1 | 0; + var i$4 = /*<>*/ 0; for(;;){ - /*<>*/ var - _h_ = t[5], - /*<>*/ bucket = caml_check_bound(t[1], _h_)[1 + _h_], - /*<>*/ _i_ = t[5], - /*<>*/ hbucket = caml_check_bound(t[2], _i_)[1 + _i_], - /*<>*/ len = length(bucket), - prev_len = (((len - 3 | 0) * 2 | 0) + 2 | 0) / 3 | 0, - /*<>*/ live = count_bucket(0, bucket, 0); - if(live <= prev_len){ - /*<>*/ var - /*<>*/ j$2 = length(bucket) - 1 | 0, - i$0 = 0, + var + _h_ = /*<>*/ t[5], + bucket = /*<>*/ caml_check_bound(t[1], _h_)[1 + _h_], + _i_ = /*<>*/ t[5], + hbucket = /*<>*/ caml_check_bound(t[2], _i_)[1 + _i_], + len = /*<>*/ length(bucket), + prev_len = + /*<>*/ (((len - 3 | 0) * 2 | 0) + 2 | 0) / 3 | 0, + live = /*<>*/ count_bucket(0, bucket, 0); + /*<>*/ if(live <= prev_len){ + var + j$2 = /*<>*/ length(bucket) - 1 | 0, + i$0 = /*<>*/ 0, j = j$2; - /*<>*/ for(;;){ - if(prev_len > j) break; + for(;;){ + /*<>*/ if(prev_len > j) break; /*<>*/ if(check(bucket, i$0)){ - var i$1 = i$0 + 1 | 0; + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; } - else if(check(bucket, j)){ + else if( /*<>*/ check(bucket, j)){ /*<>*/ blit(bucket, j, bucket, i$0, 1); - /*<>*/ /*<>*/ var - _j_ = caml_check_bound(hbucket, j)[1 + j]; + var + _j_ = /*<>*/ caml_check_bound(hbucket, j)[1 + j]; /*<>*/ caml_check_bound(hbucket, i$0)[1 + i$0] = _j_; - /*<>*/ var - /*<>*/ j$0 = j - 1 | 0, - i$2 = i$0 + 1 | 0; + var j$0 = /*<>*/ j - 1 | 0, i$2 = i$0 + 1 | 0; i$0 = i$2; j = j$0; } - else{ - /*<>*/ /*<>*/ var j$1 = j - 1 | 0; - j = j$1; - } + else{var j$1 = /*<>*/ j - 1 | 0; j = j$1;} } - if(0 === prev_len){ - var _k_ = t[5]; + /*<>*/ if(0 === prev_len){ + var _k_ = /*<>*/ t[5]; /*<>*/ caml_check_bound(t[1], _k_)[1 + _k_] = emptybucket; - var _l_ = t[5]; + var _l_ = /*<>*/ t[5]; /*<>*/ caml_check_bound(t[2], _l_)[1 + _l_] = [0]; } else{ - /*<>*/ /*<>*/ var - newbucket = create(prev_len); + var newbucket = /*<>*/ create(prev_len); /*<>*/ blit(bucket, 0, newbucket, 0, prev_len); - var _o_ = t[5]; + var _o_ = /*<>*/ t[5]; /*<>*/ caml_check_bound(t[1], _o_)[1 + _o_] = newbucket; - /*<>*/ var - /*<>*/ _p_ = + var + _p_ = /*<>*/ caml_call3 (Stdlib_Array[6], hbucket, 0, prev_len), - _q_ = t[5]; + _q_ = /*<>*/ t[5]; /*<>*/ caml_check_bound(t[2], _q_)[1 + _q_] = _p_; } var - _m_ = t[3] < len ? 1 : 0, + _m_ = /*<>*/ t[3] < len ? 1 : 0, _n_ = _m_ ? prev_len <= t[3] ? 1 : 0 : _m_; - if(_n_) t[4] = t[4] - 1 | 0; + if(_n_) /*<>*/ t[4] = t[4] - 1 | 0; } - t[5] = caml_mod(t[5] + 1 | 0, t[1].length - 1); - /*<>*/ /*<>*/ var _u_ = i$4 + 1 | 0; + /*<>*/ t[5] = caml_mod(t[5] + 1 | 0, t[1].length - 1); + var _u_ = /*<>*/ i$4 + 1 | 0; if(2 === i$4) break; i$4 = _u_; } } - var _t_ = ((t[1].length - 1) / 2 | 0) < t[4] ? 1 : 0; + var + _t_ = /*<>*/ ((t[1].length - 1) / 2 | 0) < t[4] ? 1 : 0; if(! _t_) return _t_; - /*<>*/ var - oldlen = t[1].length - 1, - /*<>*/ newlen = + var + oldlen = /*<>*/ t[1].length - 1, + newlen = /*<>*/ caml_call2 (Stdlib_Int[10], ((3 * oldlen | 0) / 2 | 0) + 3 | 0, Stdlib_Sys[13]); - if(oldlen < newlen){ - /*<>*/ var - /*<>*/ newt = create$0(newlen), - i = 0; - /*<>*/ /*<>*/ caml_call2 + /*<>*/ if(oldlen < newlen){ + var + newt = /*<>*/ create$0(newlen), + i = /*<>*/ 0; + /*<>*/ caml_call2 (Stdlib_Array[13], function(j, ob){ - var oi = i; - /*<>*/ for(;;){ - if(length(ob) <= oi) /*<>*/ return 0; - if(check(ob, oi)){ - /*<>*/ /*<>*/ var - oh = caml_check_bound(t[2], j)[1 + j]; - let oi$0 = oi; - /*<>*/ var + var oi = /*<>*/ i; + for(;;){ + /*<>*/ if(length(ob) <= oi) + /*<>*/ return 0; + /*<>*/ if(check(ob, oi)){ + var oh = /*<>*/ caml_check_bound(t[2], j)[1 + j]; + let oi$0 = /*<>*/ oi; + var setter = function(nb, ni, param){ - /*<>*/ return blit(ob, oi$0, nb, ni, 1); - /*<>*/ }, - /*<>*/ h = caml_check_bound(oh, oi)[1 + oi]; - /*<>*/ add_aux - (newt, setter, 0, h, get_index(newt, h)); - var i$0 = oi + 1 | 0; + /*<>*/ return blit(ob, oi$0, nb, ni, 1) /*<>*/ ; + }, + h = /*<>*/ caml_check_bound(oh, oi)[1 + oi]; + /*<>*/ /*<>*/ add_aux + (newt, setter, 0, h, /*<>*/ get_index(newt, h)); + var i$0 = /*<>*/ oi + 1 | 0; oi = i$0; } - else{var i$1 = oi + 1 | 0; oi = i$1;} + else{var i$1 = /*<>*/ oi + 1 | 0; oi = i$1;} } }, t[1]); - t[1] = newt[1]; - t[2] = newt[2]; - t[3] = newt[3]; - t[4] = newt[4]; - t[5] = caml_mod(t[5], newt[1].length - 1); + /*<>*/ t[1] = newt[1]; + /*<>*/ t[2] = newt[2]; + /*<>*/ t[3] = newt[3]; + /*<>*/ t[4] = newt[4]; + /*<>*/ t[5] = caml_mod(t[5], newt[1].length - 1); return 0; } - t[3] = Stdlib[19]; - t[4] = 0; + /*<>*/ t[3] = Stdlib[19]; + /*<>*/ t[4] = 0; return 0; /*<>*/ } function add(t, d){ - /*<>*/ /*<>*/ var - h = /*<>*/ caml_call1(H[2], d); - /*<>*/ return add_aux - (t, set, [0, d], h, get_index(t, h)); - /*<>*/ } + var h = /*<>*/ caml_call1(H[2], d); + /*<>*/ return /*<>*/ add_aux + (t, set, [0, d], h, /*<>*/ get_index(t, h)) /*<>*/ ; + } function find_aux(t, d, found, notfound){ - /*<>*/ var - /*<>*/ h = /*<>*/ caml_call1(H[2], d), - /*<>*/ index = get_index(t, h), - /*<>*/ bucket = - caml_check_bound(t[1], index)[1 + index], - /*<>*/ hashes = - caml_check_bound(t[2], index)[1 + index], - /*<>*/ sz = length(bucket), - i = 0; - /*<>*/ for(;;){ - if(sz <= i) - /*<>*/ return /*<>*/ caml_call2 - (notfound, h, index); - if(h === caml_check_bound(hashes, i)[1 + i]){ - /*<>*/ /*<>*/ var - opt = get(bucket, i); - if(opt){ + var + h = /*<>*/ caml_call1(H[2], d), + index = /*<>*/ get_index(t, h), + bucket = + /*<>*/ caml_check_bound(t[1], index)[1 + index], + hashes = + /*<>*/ caml_check_bound(t[2], index)[1 + index], + sz = /*<>*/ length(bucket), + i = /*<>*/ 0; + for(;;){ + /*<>*/ if(sz <= i) + /*<>*/ return caml_call2(notfound, h, index) /*<>*/ ; + /*<>*/ if(h === caml_check_bound(hashes, i)[1 + i]){ + var opt = /*<>*/ get(bucket, i); + /*<>*/ if(opt){ var v = opt[1]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], v, d)) - /*<>*/ return /*<>*/ caml_call4 - (found, bucket, i, opt, v); + /*<>*/ if(caml_call2(H[1], v, d)) + /*<>*/ return caml_call4(found, bucket, i, opt, v) /*<>*/ ; } - /*<>*/ /*<>*/ var i$0 = i + 1 | 0; + var i$0 = /*<>*/ i + 1 | 0; i = i$0; } - else{ - /*<>*/ /*<>*/ var i$1 = i + 1 | 0; - i = i$1; - } + else{var i$1 = /*<>*/ i + 1 | 0; i = i$1;} } /*<>*/ } function find_opt(t, d){ @@ -26820,8 +27148,8 @@ /*<>*/ }, function(h, i){ /*<>*/ return 0; - /*<>*/ }); - /*<>*/ } + /*<>*/ }) /*<>*/ ; + } function merge(t, d){ /*<>*/ return find_aux (t, @@ -26831,9 +27159,9 @@ /*<>*/ }, function(h, i){ /*<>*/ add_aux(t, set, [0, d], h, i); - /*<>*/ return d; - /*<>*/ }); - /*<>*/ } + /*<>*/ return d; + /*<>*/ }) /*<>*/ ; + } function find(t, d){ /*<>*/ return find_aux (t, @@ -26842,21 +27170,21 @@ /*<>*/ return v; /*<>*/ }, function(h, i){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - /*<>*/ }); - /*<>*/ } + /*<>*/ }) /*<>*/ ; + } function remove(t, d){ /*<>*/ return find_aux (t, d, function(b, i, o, v){ - /*<>*/ return set(b, i, 0); - /*<>*/ }, + /*<>*/ return set(b, i, 0) /*<>*/ ; + }, function(h, i){ /*<>*/ return 0; - /*<>*/ }); - /*<>*/ } + /*<>*/ }) /*<>*/ ; + } function mem(t, d){ /*<>*/ return find_aux (t, @@ -26866,64 +27194,60 @@ /*<>*/ }, function(h, i){ /*<>*/ return 0; - /*<>*/ }); - /*<>*/ } + /*<>*/ }) /*<>*/ ; + } function find_all(t, d){ - /*<>*/ var - /*<>*/ h = /*<>*/ caml_call1(H[2], d), - /*<>*/ index = get_index(t, h), - /*<>*/ bucket = - caml_check_bound(t[1], index)[1 + index], - /*<>*/ hashes = - caml_check_bound(t[2], index)[1 + index], - /*<>*/ sz = length(bucket), - i = 0, + var + h = /*<>*/ caml_call1(H[2], d), + index = /*<>*/ get_index(t, h), + bucket = + /*<>*/ caml_check_bound(t[1], index)[1 + index], + hashes = + /*<>*/ caml_check_bound(t[2], index)[1 + index], + sz = /*<>*/ length(bucket), + i = /*<>*/ 0, accu = 0; - /*<>*/ for(;;){ - if(sz <= i) /*<>*/ return accu; - if(h === caml_check_bound(hashes, i)[1 + i]){ - /*<>*/ /*<>*/ var - match = get(bucket, i); - if(match){ + for(;;){ + /*<>*/ if(sz <= i) /*<>*/ return accu; + /*<>*/ if(h === caml_check_bound(hashes, i)[1 + i]){ + var match = /*<>*/ get(bucket, i); + /*<>*/ if(match){ var v = match[1]; - /*<>*/ if - ( /*<>*/ caml_call2(H[1], v, d)){ - /*<>*/ var - /*<>*/ accu$0 = [0, v, accu], - /*<>*/ i$0 = i + 1 | 0; + /*<>*/ if(caml_call2(H[1], v, d)){ + var accu$0 = /*<>*/ [0, v, accu], i$0 = i + 1 | 0; i = i$0; accu = accu$0; continue; } } - var i$1 = i + 1 | 0; + var i$1 = /*<>*/ i + 1 | 0; i = i$1; } - else{var i$2 = i + 1 | 0; i = i$2;} + else{var i$2 = /*<>*/ i + 1 | 0; i = i$2;} } /*<>*/ } function stats(t){ - /*<>*/ var - len = t[1].length - 1, - /*<>*/ lens = + var + len = /*<>*/ t[1].length - 1, + lens = /*<>*/ caml_call2(Stdlib_Array[14], length, t[1]); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Array[35], runtime.caml_int_compare, lens); - /*<>*/ var - /*<>*/ totlen = + var + totlen = /*<>*/ caml_call3 (Stdlib_Array[18], function(_g_, _f_){ /*<>*/ return _g_ + _f_ | 0;}, 0, lens), - /*<>*/ _a_ = len - 1 | 0, - _c_ = len / 2 | 0, - /*<>*/ _b_ = caml_check_bound(lens, _a_)[1 + _a_], - /*<>*/ _d_ = caml_check_bound(lens, _c_)[1 + _c_], - /*<>*/ _e_ = caml_check_bound(lens, 0)[1]; - /*<>*/ return [0, len, count(t), totlen, _e_, _d_, _b_]; + _a_ = /*<>*/ len - 1 | 0, + _c_ = /*<>*/ len / 2 | 0, + _b_ = /*<>*/ caml_check_bound(lens, _a_)[1 + _a_], + _d_ = /*<>*/ caml_check_bound(lens, _c_)[1 + _c_], + _e_ = /*<>*/ caml_check_bound(lens, 0)[1]; + /*<>*/ return [0, len, count(t), totlen, _e_, _d_, _b_] /*<>*/ ; /*<>*/ } - /*<>*/ return [0, + /*<>*/ return [0, create$0, clear, merge, @@ -26940,10 +27264,19 @@ } var Stdlib_Weak = - [0, create, length, set, get, get_copy, check, fill, blit, Make]; + /*<>*/ [0, + create, + length, + set, + get, + get_copy, + check, + fill, + blit, + Make]; runtime.caml_register_global(13, Stdlib_Weak, "Stdlib__Weak"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Format @@ -26957,22 +27290,22 @@ cst$15 = ">", caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_ml_string_length = runtime.caml_ml_string_length; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); @@ -27010,17 +27343,18 @@ Stdlib_Int = global_data.Stdlib__Int, Stdlib_Bytes = global_data.Stdlib__Bytes; function id(x){ /*<>*/ return x; /*<>*/ } - /*<>*/ var - zero = 0, + var + zero = /*<>*/ 0, unknown = -1, - /*<>*/ String_tag = + String_tag = [248, "Stdlib.Format.String_tag", runtime.caml_fresh_oo_id(0)]; function pp_enqueue(state, token){ /*<>*/ state[13] = state[13] + token[3] | 0; - return caml_call2(Stdlib_Queue[3], token, state[28]); - /*<>*/ } + /*<>*/ return caml_call2 + (Stdlib_Queue[3], token, state[28]) /*<>*/ ; + } var - pp_infinity = 1000000010, + pp_infinity = /*<>*/ 1000000010, _b_ = [0, cst$16], _c_ = [1, "margin <= max_indent"], _d_ = [1, "margin >= pp_infinity"], @@ -27029,144 +27363,162 @@ cst_Format_pp_set_geometry = "Format.pp_set_geometry: "; function pp_output_string(state, s){ /*<>*/ return caml_call3 - (state[17], s, 0, caml_ml_string_length(s)); - /*<>*/ } + (state[17], s, 0, caml_ml_string_length(s)) /*<>*/ ; + } function pp_output_newline(state){ - /*<>*/ return /*<>*/ caml_call1 - (state[19], 0); - /*<>*/ } + /*<>*/ return caml_call1(state[19], 0) /*<>*/ ; + } function format_pp_text(state, size, text){ /*<>*/ state[9] = state[9] - size | 0; /*<>*/ pp_output_string(state, text); - state[11] = 0; + /*<>*/ state[11] = 0; /*<>*/ } function format_string(state, s){ - /*<>*/ /*<>*/ var - _a__ = s !== cst$16 ? 1 : 0; - /*<>*/ return _a__ - ? format_pp_text(state, caml_ml_string_length(s), s) - : _a__; - /*<>*/ } + var _a__ = /*<>*/ s !== cst$16 ? 1 : 0; + /*<>*/ return _a__ + ? /*<>*/ format_pp_text + (state, caml_ml_string_length(s), s) + : _a__ /*<>*/ ; + } function break_new_line(state, param, width){ - var after = param[3], offset = param[2], before = param[1]; + var + after = /*<>*/ param[3], + offset = param[2], + before = param[1]; /*<>*/ format_string(state, before); /*<>*/ pp_output_newline(state); - state[11] = 1; - /*<>*/ var - indent = (state[6] - width | 0) + offset | 0, - /*<>*/ real_indent = + /*<>*/ state[11] = 1; + var + indent = /*<>*/ (state[6] - width | 0) + offset | 0, + real_indent = /*<>*/ caml_call2(Stdlib_Int[10], state[8], indent); - state[10] = real_indent; - state[9] = state[6] - state[10] | 0; - var n = state[10]; - /*<>*/ /*<>*/ caml_call1 - (state[21], n); - /*<>*/ return format_string(state, after); + /*<>*/ state[10] = real_indent; + /*<>*/ state[9] = state[6] - state[10] | 0; + var n = /*<>*/ state[10]; + /*<>*/ caml_call1(state[21], n); + /*<>*/ return format_string(state, after) /*<>*/ ; } function break_same_line(state, param){ - var after = param[3], width = param[2], before = param[1]; + var + after = /*<>*/ param[3], + width = param[2], + before = param[1]; /*<>*/ format_string(state, before); - state[9] = state[9] - width | 0; - /*<>*/ /*<>*/ caml_call1 - (state[20], width); - /*<>*/ return format_string(state, after); + /*<>*/ state[9] = state[9] - width | 0; + /*<>*/ caml_call1(state[20], width); + /*<>*/ return format_string(state, after) /*<>*/ ; } function format_pp_token(state, size$0, param){ - /*<>*/ if(typeof param === "number") + /*<>*/ if(typeof param === "number") switch(param){ case 0: - /*<>*/ /*<>*/ var + var match$3 = /*<>*/ caml_call1(Stdlib_Stack[8], state[3]); - if(! match$3) /*<>*/ return; - /*<>*/ var - tabs = match$3[1][1], - /*<>*/ add_tab = - function(n, ls){ - /*<>*/ if(! ls) /*<>*/ return [0, n, 0]; - var l = ls[2], x = ls[1]; - /*<>*/ return /*<>*/ runtime.caml_lessthan - (n, x) + /*<>*/ if(! match$3) + /*<>*/ return; + var + tabs = /*<>*/ match$3[1][1], + add_tab = + /*<>*/ function(n, ls){ + /*<>*/ if(! ls) + /*<>*/ return [0, n, 0]; + var l = /*<>*/ ls[2], x = ls[1]; + /*<>*/ return runtime.caml_lessthan(n, x) ? [0, n, ls] - : [0, x, add_tab(n, l)]; + : [0, x, /*<>*/ add_tab(n, l)] /*<>*/ ; }; - tabs[1] = add_tab(state[6] - state[9] | 0, tabs[1]); - return; + /*<>*/ tabs[1] = + add_tab(state[6] - state[9] | 0, tabs[1]); + /*<>*/ return; case 1: - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Stack[5], state[2]); - /*<>*/ return; + /*<>*/ caml_call1(Stdlib_Stack[5], state[2]); + /*<>*/ return; case 2: - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Stack[5], state[3]); - /*<>*/ return; + /*<>*/ caml_call1(Stdlib_Stack[5], state[3]); + /*<>*/ return; case 3: - /*<>*/ /*<>*/ var + var match$4 = /*<>*/ caml_call1(Stdlib_Stack[8], state[2]); - if(! match$4) - /*<>*/ return pp_output_newline(state); - var width$0 = match$4[1][2]; - /*<>*/ return break_new_line(state, _a_, width$0); + /*<>*/ if(! match$4) + /*<>*/ return pp_output_newline(state) /*<>*/ ; + var width$0 = /*<>*/ match$4[1][2]; + /*<>*/ return break_new_line(state, _a_, width$0) /*<>*/ ; case 4: - var _a8_ = state[10] !== (state[6] - state[9] | 0) ? 1 : 0; + var + _a8_ = + /*<>*/ state[10] !== (state[6] - state[9] | 0) + ? 1 + : 0; if(! _a8_) return _a8_; - /*<>*/ /*<>*/ var + var match$1 = /*<>*/ caml_call1(Stdlib_Queue[6], state[28]); - if(! match$1) /*<>*/ return; - var match$2 = match$1[1], size = match$2[1], length = match$2[3]; - state[12] = state[12] - length | 0; - state[9] = state[9] + size | 0; + /*<>*/ if(! match$1) + /*<>*/ return; + var + match$2 = /*<>*/ match$1[1], + size = match$2[1], + length = match$2[3]; + /*<>*/ state[12] = state[12] - length | 0; + /*<>*/ state[9] = state[9] + size | 0; return; default: - /*<>*/ /*<>*/ var + var match$5 = /*<>*/ caml_call1(Stdlib_Stack[5], state[5]); - if(! match$5) /*<>*/ return; - /*<>*/ var - tag_name = match$5[1], - /*<>*/ marker = - /*<>*/ caml_call1(state[25], tag_name); - /*<>*/ return pp_output_string(state, marker); - } - switch(param[0]){ + /*<>*/ if(! match$5) + /*<>*/ return; + var + tag_name = /*<>*/ match$5[1], + marker = /*<>*/ caml_call1(state[25], tag_name); + /*<>*/ return pp_output_string(state, marker) /*<>*/ ; + } + /*<>*/ switch(param[0]){ case 0: var s = param[1]; - /*<>*/ return format_pp_text(state, size$0, s); + /*<>*/ return format_pp_text(state, size$0, s) /*<>*/ ; case 1: - /*<>*/ var - breaks = param[2], + var + breaks = /*<>*/ param[2], fits = param[1], - /*<>*/ off = breaks[2], + off = /*<>*/ breaks[2], before = breaks[1], - /*<>*/ match$6 = + match$6 = /*<>*/ caml_call1(Stdlib_Stack[8], state[2]); - if(! match$6) /*<>*/ return; + /*<>*/ if(! match$6) + /*<>*/ return; var - match$7 = match$6[1], + match$7 = /*<>*/ match$6[1], width$1 = match$7[2], box_type$0 = match$7[1]; /*<>*/ switch(box_type$0){ case 0: - /*<>*/ return break_same_line(state, fits); + /*<>*/ return break_same_line(state, fits) /*<>*/ ; case 1: /*<>*/ return break_new_line - (state, breaks, width$1); + (state, breaks, width$1) /*<>*/ ; case 2: /*<>*/ return break_new_line - (state, breaks, width$1); + (state, breaks, width$1) /*<>*/ ; case 3: - return state[9] < (size$0 + caml_ml_string_length(before) | 0) - ? break_new_line(state, breaks, width$1) - : break_same_line(state, fits); + /*<>*/ return state[9] + < (size$0 + caml_ml_string_length(before) | 0) + ? /*<>*/ break_new_line + (state, breaks, width$1) + : /*<>*/ break_same_line(state, fits) /*<>*/ ; case 4: - return state[11] - ? break_same_line(state, fits) + /*<>*/ return state[11] + ? /*<>*/ break_same_line(state, fits) : state [9] - < (size$0 + caml_ml_string_length(before) | 0) - ? break_new_line(state, breaks, width$1) + < + (size$0 + + /*<>*/ caml_ml_string_length(before) + | 0) + ? /*<>*/ break_new_line + (state, breaks, width$1) : ((state [6] - width$1 @@ -27174,216 +27526,216 @@ + off | 0) < state[10] - ? break_new_line(state, breaks, width$1) - : break_same_line(state, fits); + ? /*<>*/ break_new_line + (state, breaks, width$1) + : /*<>*/ break_same_line(state, fits) /*<>*/ ; default: - /*<>*/ return break_same_line(state, fits); + /*<>*/ return break_same_line(state, fits) /*<>*/ ; } case 2: - /*<>*/ var - off$0 = param[2], + var + off$0 = /*<>*/ param[2], n = param[1], - insertion_point = state[6] - state[9] | 0, - /*<>*/ match$8 = + insertion_point = /*<>*/ state[6] - state[9] | 0, + match$8 = /*<>*/ caml_call1(Stdlib_Stack[8], state[3]); - if(! match$8) /*<>*/ return; - /*<>*/ var - tabs$0 = match$8[1][1], - /*<>*/ match$9 = tabs$0[1]; + /*<>*/ if(! match$8) + /*<>*/ return; + var + tabs$0 = /*<>*/ match$8[1][1], + match$9 = /*<>*/ tabs$0[1]; if(match$9){ - var first = match$9[1], param$0 = tabs$0[1]; - /*<>*/ for(;;){ - if(param$0){ + var first = match$9[1], param$0 = /*<>*/ tabs$0[1]; + for(;;){ + /*<>*/ if(param$0){ var tail = param$0[2], head = param$0[1]; - if(insertion_point > head){param$0 = tail; continue;} - var _a9_ = head; + /*<>*/ if(insertion_point > head){ + /*<>*/ param$0 = tail; + continue; + } + var _a9_ = /*<>*/ head; } else - var _a9_ = first; - var tab = _a9_; + var _a9_ = /*<>*/ first; + var tab = /*<>*/ _a9_; break; } } else - var tab = insertion_point; - var offset = tab - insertion_point | 0; + var tab = /*<>*/ insertion_point; + var offset = /*<>*/ tab - insertion_point | 0; /*<>*/ return 0 <= offset - ? break_same_line(state, [0, cst$0, offset + n | 0, cst]) - : break_new_line - (state, [0, cst$2, tab + off$0 | 0, cst$1], state[6]); + ? /*<>*/ break_same_line + (state, [0, cst$0, offset + n | 0, cst]) + : /*<>*/ break_new_line + (state, [0, cst$2, tab + off$0 | 0, cst$1], state[6]) /*<>*/ ; case 3: var - ty = param[2], + ty = /*<>*/ param[2], off$1 = param[1], - insertion_point$0 = state[6] - state[9] | 0; - if(state[8] < insertion_point$0){ - /*<>*/ /*<>*/ var + insertion_point$0 = /*<>*/ state[6] - state[9] | 0; + /*<>*/ if(state[8] < insertion_point$0){ + var match = /*<>*/ caml_call1(Stdlib_Stack[8], state[2]); - if(match){ + /*<>*/ if(match){ var match$0 = match[1], width = match$0[2], box_type = match$0[1]; - if(state[9] < width && 3 >= box_type - 1 >>> 0) + /*<>*/ if + (state[9] < width && 3 >= box_type - 1 >>> 0) /*<>*/ break_new_line(state, _a_, width); } else /*<>*/ pp_output_newline(state); } - /*<>*/ var - width$2 = state[9] - off$1 | 0, - /*<>*/ box_type$1 = - 1 === ty ? 1 : state[9] < size$0 ? ty : 5; - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Stack[3], [0, box_type$1, width$2], state[2]); + var + width$2 = /*<>*/ state[9] - off$1 | 0, + box_type$1 = + /*<>*/ 1 === ty ? 1 : state[9] < size$0 ? ty : 5; + /*<>*/ return caml_call2 + (Stdlib_Stack[3], [0, box_type$1, width$2], state[2]) /*<>*/ ; case 4: - var tbox = param[1]; - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Stack[3], tbox, state[3]); + var tbox = /*<>*/ param[1]; + /*<>*/ return caml_call2 + (Stdlib_Stack[3], tbox, state[3]) /*<>*/ ; default: - /*<>*/ var - tag_name$0 = param[1], - /*<>*/ marker$0 = - /*<>*/ caml_call1(state[24], tag_name$0); + var + tag_name$0 = /*<>*/ param[1], + marker$0 = /*<>*/ caml_call1(state[24], tag_name$0); /*<>*/ pp_output_string(state, marker$0); - return caml_call2(Stdlib_Stack[3], tag_name$0, state[5]); + /*<>*/ return caml_call2 + (Stdlib_Stack[3], tag_name$0, state[5]) /*<>*/ ; } } function advance_left(state){ /*<>*/ for(;;){ - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call1(Stdlib_Queue[9], state[28]); - if(! match) /*<>*/ return 0; - /*<>*/ var - match$0 = match[1], + /*<>*/ if(! match) /*<>*/ return 0; + var + match$0 = /*<>*/ match[1], size = match$0[1], length = match$0[3], token = match$0[2], - pending_count = state[13] - state[12] | 0, - _a6_ = 0 <= size ? 1 : 0, - /*<>*/ _a7_ = - _a6_ || (state[9] <= pending_count ? 1 : 0); - if(! _a7_) /*<>*/ return _a7_; - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Queue[5], state[28]); - /*<>*/ /*<>*/ var - size$0 = 0 <= size ? size : pp_infinity; + pending_count = /*<>*/ state[13] - state[12] | 0, + _a6_ = /*<>*/ 0 <= size ? 1 : 0, + _a7_ = + /*<>*/ _a6_ || (state[9] <= pending_count ? 1 : 0); + if(! _a7_) return _a7_; + /*<>*/ caml_call1(Stdlib_Queue[5], state[28]); + var size$0 = /*<>*/ 0 <= size ? size : pp_infinity; /*<>*/ format_pp_token(state, size$0, token); - state[12] = length + state[12] | 0; + /*<>*/ state[12] = length + state[12] | 0; } /*<>*/ } function enqueue_advance(state, tok){ /*<>*/ pp_enqueue(state, tok); - /*<>*/ return advance_left(state); - /*<>*/ } + /*<>*/ return advance_left(state) /*<>*/ ; + } function enqueue_string_as(state, size, s){ - /*<>*/ return enqueue_advance - (state, [0, size, [0, s], size]); - /*<>*/ } + /*<>*/ return enqueue_advance + (state, [0, size, [0, s], size]) /*<>*/ ; + } function initialize_scan_stack(stack){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Stack[9], stack); - /*<>*/ /*<>*/ var - queue_elem = [0, unknown, _b_, 0]; - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Stack[3], [0, -1, queue_elem], stack); - /*<>*/ } + /*<>*/ caml_call1(Stdlib_Stack[9], stack); + var queue_elem = /*<>*/ [0, unknown, _b_, 0]; + /*<>*/ return caml_call2 + (Stdlib_Stack[3], [0, -1, queue_elem], stack) /*<>*/ ; + } function set_size(state, ty){ - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call1(Stdlib_Stack[8], state[1]); - if(! match) /*<>*/ return; - /*<>*/ var - match$0 = match[1], + /*<>*/ if(! match) /*<>*/ return; + var + match$0 = /*<>*/ match[1], queue_elem = match$0[2], left_total = match$0[1], - /*<>*/ size = queue_elem[1]; - if(left_total < state[12]) return initialize_scan_stack(state[1]); - var _a5_ = queue_elem[2]; + size = /*<>*/ queue_elem[1]; + /*<>*/ if(left_total < state[12]) + /*<>*/ return initialize_scan_stack(state[1]) /*<>*/ ; + var _a5_ = /*<>*/ queue_elem[2]; if(typeof _a5_ !== "number") switch(_a5_[0]){ case 3: - if(1 - ty){ - var x$0 = state[13] + size | 0; - queue_elem[1] = x$0; - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Stack[5], state[1]); + /*<>*/ if(1 - ty){ + var x$0 = /*<>*/ state[13] + size | 0; + /*<>*/ queue_elem[1] = x$0; + /*<>*/ caml_call1(Stdlib_Stack[5], state[1]); } - /*<>*/ return; + /*<>*/ return; case 1: case 2: - if(ty){ - var x = state[13] + size | 0; - queue_elem[1] = x; - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Stack[5], state[1]); + /*<>*/ if(ty){ + var x = /*<>*/ state[13] + size | 0; + /*<>*/ queue_elem[1] = x; + /*<>*/ caml_call1(Stdlib_Stack[5], state[1]); } - /*<>*/ return; + /*<>*/ return; } /*<>*/ } function scan_push(state, b, token){ /*<>*/ pp_enqueue(state, token); - if(b) /*<>*/ set_size(state, 1); - /*<>*/ /*<>*/ var - elem = [0, state[13], token]; - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Stack[3], elem, state[1]); - /*<>*/ } + /*<>*/ if(b) + /*<>*/ set_size(state, 1); + var elem = /*<>*/ [0, state[13], token]; + /*<>*/ return caml_call2 + (Stdlib_Stack[3], elem, state[1]) /*<>*/ ; + } function pp_open_box_gen(state, indent, br_ty){ /*<>*/ state[14] = state[14] + 1 | 0; - if(state[14] < state[15]){ - /*<>*/ var - size = - state[13] | 0, - /*<>*/ elem = [0, size, [3, indent, br_ty], 0]; - /*<>*/ return scan_push(state, 0, elem); + /*<>*/ if(state[14] < state[15]){ + var + size = /*<>*/ - state[13] | 0, + elem = /*<>*/ [0, size, [3, indent, br_ty], 0]; + /*<>*/ return scan_push(state, 0, elem) /*<>*/ ; } - var _a4_ = state[14] === state[15] ? 1 : 0; + var _a4_ = /*<>*/ state[14] === state[15] ? 1 : 0; if(! _a4_) return _a4_; - var s = state[16], x = caml_ml_string_length(s); - /*<>*/ return enqueue_string_as(state, x, s); - /*<>*/ } + var + s = /*<>*/ state[16], + x = /*<>*/ caml_ml_string_length(s); + /*<>*/ return enqueue_string_as(state, x, s) /*<>*/ ; + } function pp_close_box(state, param){ - /*<>*/ var _a2_ = 1 < state[14] ? 1 : 0; + var _a2_ = /*<>*/ 1 < state[14] ? 1 : 0; if(_a2_){ - if(state[14] < state[15]){ + /*<>*/ if(state[14] < state[15]){ /*<>*/ pp_enqueue(state, [0, zero, 1, 0]); /*<>*/ set_size(state, 1); /*<>*/ set_size(state, 0); } - state[14] = state[14] - 1 | 0; + /*<>*/ state[14] = state[14] - 1 | 0; var _a3_ = 0; } else - var _a3_ = _a2_; + var _a3_ = /*<>*/ _a2_; return _a3_; /*<>*/ } function pp_open_stag(state, tag_name){ /*<>*/ if(state[22]){ - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Stack[3], tag_name, state[4]); - /*<>*/ /*<>*/ caml_call1 - (state[26], tag_name); + /*<>*/ caml_call2(Stdlib_Stack[3], tag_name, state[4]); + /*<>*/ caml_call1(state[26], tag_name); } - var _a1_ = state[23]; + var _a1_ = /*<>*/ state[23]; if(! _a1_) return _a1_; - /*<>*/ /*<>*/ var - token = [5, tag_name]; - /*<>*/ return pp_enqueue(state, [0, zero, token, 0]); - /*<>*/ } + var token = /*<>*/ [5, tag_name]; + /*<>*/ return pp_enqueue(state, [0, zero, token, 0]) /*<>*/ ; + } function pp_close_stag(state, param){ /*<>*/ if(state[23]) /*<>*/ pp_enqueue(state, [0, zero, 5, 0]); - var _aZ_ = state[22]; + var _aZ_ = /*<>*/ state[22]; if(_aZ_){ - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call1(Stdlib_Stack[5], state[4]); - if(match){ + /*<>*/ if(match){ var tag_name = match[1]; - /*<>*/ return /*<>*/ caml_call1 - (state[27], tag_name); + /*<>*/ return caml_call1(state[27], tag_name) /*<>*/ ; } - var _a0_ = 0; + var _a0_ = /*<>*/ 0; } else - var _a0_ = _aZ_; - /*<>*/ return _a0_; + var _a0_ = /*<>*/ _aZ_; + return _a0_; /*<>*/ } function pp_set_print_tags(state, b){ /*<>*/ state[22] = b; @@ -27401,8 +27753,8 @@ /*<>*/ } function pp_set_tags(state, b){ /*<>*/ pp_set_print_tags(state, b); - /*<>*/ return pp_set_mark_tags(state, b); - /*<>*/ } + /*<>*/ return pp_set_mark_tags(state, b) /*<>*/ ; + } function pp_get_formatter_stag_function(state, param){ /*<>*/ return [0, state[24], @@ -27411,192 +27763,192 @@ state[27]]; /*<>*/ } function pp_set_formatter_stag_function(state, param){ - var pct = param[4], pot = param[3], mct = param[2], mot = param[1]; - state[24] = mot; - state[25] = mct; - state[26] = pot; - state[27] = pct; + var + pct = /*<>*/ param[4], + pot = param[3], + mct = param[2], + mot = param[1]; + /*<>*/ state[24] = mot; + /*<>*/ state[25] = mct; + /*<>*/ state[26] = pot; + /*<>*/ state[27] = pct; return 0; - } + /*<>*/ } function pp_rinit(state){ - /*<>*/ state[12] = 1; - state[13] = 1; - caml_call1(Stdlib_Queue[11], state[28]); + /*<>*/ state[12] = 1; + /*<>*/ state[13] = 1; + /*<>*/ caml_call1(Stdlib_Queue[11], state[28]); /*<>*/ initialize_scan_stack(state[1]); - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Stack[9], state[2]); - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Stack[9], state[3]); - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Stack[9], state[4]); - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Stack[9], state[5]); - state[10] = 0; - state[14] = 0; - state[9] = state[6]; - /*<>*/ return pp_open_box_gen(state, 0, 3); - /*<>*/ } + /*<>*/ caml_call1(Stdlib_Stack[9], state[2]); + /*<>*/ caml_call1(Stdlib_Stack[9], state[3]); + /*<>*/ caml_call1(Stdlib_Stack[9], state[4]); + /*<>*/ caml_call1(Stdlib_Stack[9], state[5]); + /*<>*/ state[10] = 0; + /*<>*/ state[14] = 0; + /*<>*/ state[9] = state[6]; + /*<>*/ return pp_open_box_gen(state, 0, 3) /*<>*/ ; + } function pp_flush_queue(state, end_with_newline){ - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Stack[13], function(param){ - /*<>*/ return pp_close_stag(state, 0); - /*<>*/ }, + /*<>*/ return pp_close_stag(state, 0) /*<>*/ ; + }, state[4]); - /*<>*/ for(;;){ + /*<>*/ for(;;){ if(1 >= state[14]){ - state[13] = pp_infinity; + /*<>*/ state[13] = pp_infinity; /*<>*/ advance_left(state); - if(end_with_newline) /*<>*/ pp_output_newline(state); - /*<>*/ return pp_rinit(state); + /*<>*/ if(end_with_newline) + /*<>*/ pp_output_newline(state); + /*<>*/ return pp_rinit(state) /*<>*/ ; } /*<>*/ pp_close_box(state, 0); } /*<>*/ } function pp_print_as_size(state, size, s){ - /*<>*/ var _aY_ = state[14] < state[15] ? 1 : 0; - return _aY_ ? enqueue_string_as(state, size, s) : _aY_; - /*<>*/ } + var _aY_ = /*<>*/ state[14] < state[15] ? 1 : 0; + return _aY_ + ? /*<>*/ enqueue_string_as(state, size, s) + : _aY_ /*<>*/ ; + } function pp_print_as(state, isize, s){ - /*<>*/ return pp_print_as_size(state, isize, s); - /*<>*/ } + /*<>*/ return pp_print_as_size(state, isize, s) /*<>*/ ; + } function pp_print_string(state, s){ - /*<>*/ var isize = caml_ml_string_length(s); - /*<>*/ return pp_print_as_size(state, isize, s); - /*<>*/ } + var isize = /*<>*/ caml_ml_string_length(s); + /*<>*/ return pp_print_as_size(state, isize, s) /*<>*/ ; + } function pp_print_bytes(state, s){ - /*<>*/ var - /*<>*/ s$0 = - /*<>*/ caml_call1(Stdlib_Bytes[6], s), - isize = runtime.caml_ml_bytes_length(s); - /*<>*/ return pp_print_as_size(state, isize, s$0); - /*<>*/ } + var + s$0 = /*<>*/ caml_call1(Stdlib_Bytes[6], s), + isize = /*<>*/ runtime.caml_ml_bytes_length(s); + /*<>*/ return pp_print_as_size(state, isize, s$0) /*<>*/ ; + } function pp_print_int(state, i){ - /*<>*/ return pp_print_string - (state, /*<>*/ caml_call1(Stdlib_Int[12], i)); - /*<>*/ } + /*<>*/ return /*<>*/ pp_print_string + (state, /*<>*/ caml_call1(Stdlib_Int[12], i)) /*<>*/ ; + } function pp_print_float(state, f){ - /*<>*/ return pp_print_string - (state, /*<>*/ caml_call1(Stdlib[35], f)); - /*<>*/ } + /*<>*/ return /*<>*/ pp_print_string + (state, /*<>*/ caml_call1(Stdlib[35], f)) /*<>*/ ; + } function pp_print_bool(state, b){ - /*<>*/ return pp_print_string - (state, /*<>*/ caml_call1(Stdlib[30], b)); - /*<>*/ } + /*<>*/ return /*<>*/ pp_print_string + (state, /*<>*/ caml_call1(Stdlib[30], b)) /*<>*/ ; + } function pp_print_char(state, c){ - /*<>*/ /*<>*/ var - s = /*<>*/ caml_call2(Stdlib_String[1], 1, c); - /*<>*/ return pp_print_as_size(state, 1, s); - /*<>*/ } + var s = /*<>*/ caml_call2(Stdlib_String[1], 1, c); + /*<>*/ return pp_print_as_size(state, 1, s) /*<>*/ ; + } function pp_print_nothing(state, param){ /*<>*/ return 0; /*<>*/ } function pp_open_hbox(state, param){ - /*<>*/ return pp_open_box_gen(state, 0, 0); - /*<>*/ } + /*<>*/ return pp_open_box_gen(state, 0, 0) /*<>*/ ; + } function pp_open_vbox(state, indent){ - /*<>*/ return pp_open_box_gen(state, indent, 1); - /*<>*/ } + /*<>*/ return pp_open_box_gen(state, indent, 1) /*<>*/ ; + } function pp_open_hvbox(state, indent){ - /*<>*/ return pp_open_box_gen(state, indent, 2); - /*<>*/ } + /*<>*/ return pp_open_box_gen(state, indent, 2) /*<>*/ ; + } function pp_open_hovbox(state, indent){ - /*<>*/ return pp_open_box_gen(state, indent, 3); - /*<>*/ } + /*<>*/ return pp_open_box_gen(state, indent, 3) /*<>*/ ; + } function pp_open_box(state, indent){ - /*<>*/ return pp_open_box_gen(state, indent, 4); - /*<>*/ } + /*<>*/ return pp_open_box_gen(state, indent, 4) /*<>*/ ; + } function pp_print_newline(state, param){ /*<>*/ pp_flush_queue(state, 1); - /*<>*/ return /*<>*/ caml_call1 - (state[18], 0); - /*<>*/ } + /*<>*/ return caml_call1(state[18], 0) /*<>*/ ; + } function pp_print_flush(state, param){ /*<>*/ pp_flush_queue(state, 0); - /*<>*/ return /*<>*/ caml_call1 - (state[18], 0); - /*<>*/ } + /*<>*/ return caml_call1(state[18], 0) /*<>*/ ; + } function pp_force_newline(state, param){ - /*<>*/ var _aX_ = state[14] < state[15] ? 1 : 0; - return _aX_ ? enqueue_advance(state, [0, zero, 3, 0]) : _aX_; - /*<>*/ } + var _aX_ = /*<>*/ state[14] < state[15] ? 1 : 0; + return _aX_ + ? /*<>*/ enqueue_advance(state, [0, zero, 3, 0]) + : _aX_ /*<>*/ ; + } function pp_print_if_newline(state, param){ - /*<>*/ var _aW_ = state[14] < state[15] ? 1 : 0; - return _aW_ ? enqueue_advance(state, [0, zero, 4, 0]) : _aW_; - /*<>*/ } + var _aW_ = /*<>*/ state[14] < state[15] ? 1 : 0; + return _aW_ + ? /*<>*/ enqueue_advance(state, [0, zero, 4, 0]) + : _aW_ /*<>*/ ; + } function pp_print_custom_break(state, fits, breaks){ - /*<>*/ var - after = fits[3], + var + after = /*<>*/ fits[3], width = fits[2], before = fits[1], - _aV_ = state[14] < state[15] ? 1 : 0; + _aV_ = /*<>*/ state[14] < state[15] ? 1 : 0; if(! _aV_) return _aV_; - /*<>*/ var - size = - state[13] | 0, - /*<>*/ token = [1, fits, breaks], + var + size = /*<>*/ - state[13] | 0, + token = /*<>*/ [1, fits, breaks], length = - (caml_ml_string_length(before) + width | 0) - + /*<>*/ caml_ml_string_length(after) + /*<>*/ (caml_ml_string_length(before) + width | 0) + + caml_ml_string_length(after) | 0, - /*<>*/ elem = [0, size, token, length]; - /*<>*/ return scan_push(state, 1, elem); - /*<>*/ } + elem = /*<>*/ [0, size, token, length]; + /*<>*/ return scan_push(state, 1, elem) /*<>*/ ; + } function pp_print_break(state, width, offset){ /*<>*/ return pp_print_custom_break - (state, [0, cst$6, width, cst$5], [0, cst$4, offset, cst$3]); - /*<>*/ } + (state, [0, cst$6, width, cst$5], [0, cst$4, offset, cst$3]) /*<>*/ ; + } function pp_print_space(state, param){ - /*<>*/ return pp_print_break(state, 1, 0); - /*<>*/ } + /*<>*/ return pp_print_break(state, 1, 0) /*<>*/ ; + } function pp_print_cut(state, param){ - /*<>*/ return pp_print_break(state, 0, 0); - /*<>*/ } + /*<>*/ return pp_print_break(state, 0, 0) /*<>*/ ; + } function pp_open_tbox(state, param){ /*<>*/ state[14] = state[14] + 1 | 0; - var _aU_ = state[14] < state[15] ? 1 : 0; + var _aU_ = /*<>*/ state[14] < state[15] ? 1 : 0; if(! _aU_) return _aU_; - /*<>*/ /*<>*/ var - elem = [0, zero, [4, [0, [0, 0]]], 0]; - /*<>*/ return enqueue_advance(state, elem); - /*<>*/ } + var elem = /*<>*/ [0, zero, [4, [0, [0, 0]]], 0]; + /*<>*/ return enqueue_advance(state, elem) /*<>*/ ; + } function pp_close_tbox(state, param){ - /*<>*/ var _aR_ = 1 < state[14] ? 1 : 0; + var _aR_ = /*<>*/ 1 < state[14] ? 1 : 0; if(_aR_){ - var _aS_ = state[14] < state[15] ? 1 : 0; + var _aS_ = /*<>*/ state[14] < state[15] ? 1 : 0; if(_aS_){ - /*<>*/ /*<>*/ var - elem = [0, zero, 2, 0]; + var elem = /*<>*/ [0, zero, 2, 0]; /*<>*/ enqueue_advance(state, elem); - state[14] = state[14] - 1 | 0; + /*<>*/ state[14] = state[14] - 1 | 0; var _aT_ = 0; } else - var _aT_ = _aS_; + var _aT_ = /*<>*/ _aS_; } else - var _aT_ = _aR_; + var _aT_ = /*<>*/ _aR_; return _aT_; /*<>*/ } function pp_print_tbreak(state, width, offset){ - /*<>*/ var _aQ_ = state[14] < state[15] ? 1 : 0; + var _aQ_ = /*<>*/ state[14] < state[15] ? 1 : 0; if(! _aQ_) return _aQ_; - /*<>*/ var - size = - state[13] | 0, - /*<>*/ elem = [0, size, [2, width, offset], width]; - /*<>*/ return scan_push(state, 1, elem); - /*<>*/ } + var + size = /*<>*/ - state[13] | 0, + elem = /*<>*/ [0, size, [2, width, offset], width]; + /*<>*/ return scan_push(state, 1, elem) /*<>*/ ; + } function pp_print_tab(state, param){ - /*<>*/ return pp_print_tbreak(state, 0, 0); - /*<>*/ } + /*<>*/ return pp_print_tbreak(state, 0, 0) /*<>*/ ; + } function pp_set_tab(state, param){ - /*<>*/ var _aP_ = state[14] < state[15] ? 1 : 0; + var _aP_ = /*<>*/ state[14] < state[15] ? 1 : 0; if(! _aP_) return _aP_; - /*<>*/ /*<>*/ var - elem = [0, zero, 0, 0]; - /*<>*/ return enqueue_advance(state, elem); - /*<>*/ } + var elem = /*<>*/ [0, zero, 0, 0]; + /*<>*/ return enqueue_advance(state, elem) /*<>*/ ; + } function pp_set_max_boxes(state, n){ - /*<>*/ var - _aN_ = 1 < n ? 1 : 0, + var + _aN_ = /*<>*/ 1 < n ? 1 : 0, _aO_ = _aN_ ? (state[15] = n, 0) : _aN_; return _aO_; /*<>*/ } @@ -27614,96 +27966,102 @@ /*<>*/ return state[16]; /*<>*/ } function pp_limit(n){ - /*<>*/ return n < 1000000010 ? n : 1000000009; - /*<>*/ } + /*<>*/ return n < 1000000010 ? n : 1000000009 /*<>*/ ; + } function pp_set_max_indent(state, n$0){ - /*<>*/ var _aM_ = 1 < n$0 ? 1 : 0; + var _aM_ = /*<>*/ 1 < n$0 ? 1 : 0; if(! _aM_) return _aM_; - var n$1 = state[6] - n$0 | 0, _aL_ = 1 <= n$1 ? 1 : 0; + var + n$1 = /*<>*/ state[6] - n$0 | 0, + _aL_ = /*<>*/ 1 <= n$1 ? 1 : 0; if(! _aL_) return _aL_; - /*<>*/ /*<>*/ var n = pp_limit(n$1); - state[7] = n; - state[8] = state[6] - state[7] | 0; - /*<>*/ return pp_rinit(state); - /*<>*/ } + var n = /*<>*/ pp_limit(n$1); + /*<>*/ state[7] = n; + /*<>*/ state[8] = state[6] - state[7] | 0; + /*<>*/ return pp_rinit(state) /*<>*/ ; + } function pp_get_max_indent(state, param){ /*<>*/ return state[8]; /*<>*/ } function pp_set_margin(state, n){ - /*<>*/ var _aJ_ = 1 <= n ? 1 : 0; + var _aJ_ = /*<>*/ 1 <= n ? 1 : 0; if(! _aJ_) return _aJ_; - /*<>*/ /*<>*/ var n$0 = pp_limit(n); - state[6] = n$0; - if(state[8] <= state[6]) - var new_max_indent = state[8]; + var n$0 = /*<>*/ pp_limit(n); + /*<>*/ state[6] = n$0; + /*<>*/ if(state[8] <= state[6]) + var new_max_indent = /*<>*/ state[8]; else - /*<>*/ var - /*<>*/ _aK_ = + var + _aK_ = /*<>*/ caml_call2 (Stdlib_Int[11], state[6] - state[7] | 0, state[6] / 2 | 0), new_max_indent = - /*<>*/ caml_call2(Stdlib_Int[11], _aK_, 1); - /*<>*/ return pp_set_max_indent(state, new_max_indent); - /*<>*/ } + /*<>*/ /*<>*/ caml_call2 + (Stdlib_Int[11], _aK_, 1); + /*<>*/ return pp_set_max_indent(state, new_max_indent) /*<>*/ ; + } function validate_geometry(param){ - var margin = param[2], max_indent = param[1]; + var margin = /*<>*/ param[2], max_indent = param[1]; /*<>*/ return 2 <= max_indent ? margin <= max_indent ? _c_ : 1000000010 <= margin ? _d_ : _e_ - : _f_; + : _f_ /*<>*/ ; } function check_geometry(geometry){ - /*<>*/ return 0 === validate_geometry(geometry)[0] + /*<>*/ return 0 === validate_geometry(geometry)[0] ? 1 - : 0; - /*<>*/ } + : 0 /*<>*/ ; + } function pp_get_margin(state, param){ /*<>*/ return state[6]; /*<>*/ } function pp_set_full_geometry(state, param){ - var margin = param[2], max_indent = param[1]; + var margin = /*<>*/ param[2], max_indent = param[1]; /*<>*/ pp_set_margin(state, margin); /*<>*/ pp_set_max_indent(state, max_indent); - /*<>*/ return 0; - } + /*<>*/ return 0; + /*<>*/ } function pp_set_geometry(state, max_indent, margin){ - /*<>*/ var - /*<>*/ geometry = [0, max_indent, margin], - /*<>*/ match = validate_geometry(geometry); - if(0 === match[0]) - /*<>*/ return pp_set_full_geometry(state, geometry); - /*<>*/ var - msg = match[1], - /*<>*/ _aI_ = + var + geometry = /*<>*/ [0, max_indent, margin], + match = /*<>*/ validate_geometry(geometry); + /*<>*/ if(0 === match[0]) + /*<>*/ return pp_set_full_geometry(state, geometry) /*<>*/ ; + var + msg = /*<>*/ match[1], + _aI_ = /*<>*/ caml_call2 (Stdlib[28], cst_Format_pp_set_geometry, msg); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stdlib[6], _aI_], 1); /*<>*/ } function pp_safe_set_geometry(state, max_indent, margin){ - /*<>*/ /*<>*/ var - geometry = [0, max_indent, margin]; - return 0 === validate_geometry(geometry)[0] - ? pp_set_full_geometry(state, geometry) - : 0; - /*<>*/ } + var geometry = /*<>*/ [0, max_indent, margin]; + /*<>*/ return 0 === validate_geometry(geometry)[0] + ? /*<>*/ pp_set_full_geometry(state, geometry) + : 0 /*<>*/ ; + } function pp_get_geometry(state, param){ - /*<>*/ return [0, state[8], state[6]]; + /*<>*/ return [0, state[8], state[6]]; /*<>*/ } function pp_update_geometry(state, update){ - /*<>*/ /*<>*/ var - geometry = pp_get_geometry(state, 0); - /*<>*/ return pp_set_full_geometry - (state, /*<>*/ caml_call1(update, geometry)); - /*<>*/ } + var geometry = /*<>*/ pp_get_geometry(state, 0); + /*<>*/ return /*<>*/ pp_set_full_geometry + (state, /*<>*/ caml_call1(update, geometry)) /*<>*/ ; + } function pp_set_formatter_out_functions(state, param){ - var j = param[5], i = param[4], h = param[3], g = param[2], f = param[1]; - state[17] = f; - state[18] = g; - state[19] = h; - state[20] = i; - state[21] = j; + var + j = /*<>*/ param[5], + i = param[4], + h = param[3], + g = param[2], + f = param[1]; + /*<>*/ state[17] = f; + /*<>*/ state[18] = g; + /*<>*/ state[19] = h; + /*<>*/ state[20] = i; + /*<>*/ state[21] = j; return 0; - } + /*<>*/ } function pp_get_formatter_out_functions(state, param){ /*<>*/ return [0, state[17], @@ -27714,94 +28072,88 @@ /*<>*/ } function pp_set_formatter_output_functi(state, f, g){ /*<>*/ state[17] = f; - state[18] = g; + /*<>*/ state[18] = g; return 0; /*<>*/ } function pp_get_formatter_output_functi(state, param){ /*<>*/ return [0, state[17], state[18]]; /*<>*/ } function display_newline(state, param){ - /*<>*/ return /*<>*/ caml_call3 - (state[17], cst$7, 0, 1); - /*<>*/ } - /*<>*/ var - /*<>*/ blank_line = + /*<>*/ return caml_call3(state[17], cst$7, 0, 1) /*<>*/ ; + } + var + blank_line = /*<>*/ caml_call2(Stdlib_String[1], 80, 32), - _g_ = [3, 0, 3]; + _g_ = /*<>*/ [3, 0, 3]; function display_blanks(state, n){ - /*<>*/ var n$0 = n; - /*<>*/ for(;;){ + var n$0 = /*<>*/ n; + for(;;){ var _aH_ = 0 < n$0 ? 1 : 0; if(! _aH_) return _aH_; - if(80 >= n$0) - /*<>*/ return /*<>*/ caml_call3 - (state[17], blank_line, 0, n$0); - /*<>*/ /*<>*/ caml_call3 - (state[17], blank_line, 0, 80); - /*<>*/ /*<>*/ var n$1 = n$0 - 80 | 0; + /*<>*/ if(80 >= n$0) + /*<>*/ return caml_call3 + (state[17], blank_line, 0, n$0) /*<>*/ ; + /*<>*/ caml_call3(state[17], blank_line, 0, 80); + var n$1 = /*<>*/ n$0 - 80 | 0; n$0 = n$1; } /*<>*/ } function pp_set_formatter_out_channel(state, oc){ - /*<>*/ state[17] = - /*<>*/ caml_call1(Stdlib[69], oc); - state[18] = + /*<>*/ state[17] = caml_call1(Stdlib[69], oc); + /*<>*/ state[18] = function(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[63], oc); - /*<>*/ }; - state[19] = - function(_aG_){ /*<>*/ return display_newline(state, _aG_);}; - state[20] = function(_aF_){ /*<>*/ return display_blanks(state, _aF_);}; - state[21] = function(_aE_){ /*<>*/ return display_blanks(state, _aE_);}; - return 0; - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[63], oc) /*<>*/ ; + }; + /*<>*/ state[19] = + function(_aG_){ + /*<>*/ return display_newline(state, _aG_); + }; + /*<>*/ state[20] = + function(_aF_){ + /*<>*/ return display_blanks(state, _aF_); + }; + /*<>*/ state[21] = + function(_aE_){ + /*<>*/ return display_blanks(state, _aE_); + }; + /*<>*/ return 0; + } function default_pp_mark_open_tag(param){ /*<>*/ if(param[1] !== String_tag) /*<>*/ return cst$10; - /*<>*/ var - s = param[2], - /*<>*/ _aD_ = - /*<>*/ caml_call2(Stdlib[28], s, cst$8); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[28], cst$9, _aD_); - /*<>*/ } + var + s = /*<>*/ param[2], + _aD_ = /*<>*/ caml_call2(Stdlib[28], s, cst$8); + /*<>*/ return caml_call2(Stdlib[28], cst$9, _aD_) /*<>*/ ; + } function default_pp_mark_close_tag(param){ /*<>*/ if(param[1] !== String_tag) /*<>*/ return cst$13; - /*<>*/ var - s = param[2], - /*<>*/ _aC_ = - /*<>*/ caml_call2(Stdlib[28], s, cst$11); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[28], cst$12, _aC_); - /*<>*/ } + var + s = /*<>*/ param[2], + _aC_ = /*<>*/ caml_call2(Stdlib[28], s, cst$11); + /*<>*/ return caml_call2(Stdlib[28], cst$12, _aC_) /*<>*/ ; + } function default_pp_print_open_tag(_aB_){ /*<>*/ return 0;} - function default_pp_print_close_tag(_aA_){ /*<>*/ return 0;} + function default_pp_print_close_tag(_aA_){return 0;} function pp_make_formatter(f, g, h, i, j){ - /*<>*/ var - /*<>*/ pp_queue = - /*<>*/ caml_call1(Stdlib_Queue[2], 0), - /*<>*/ sys_tok = [0, unknown, _g_, 0]; - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Queue[3], sys_tok, pp_queue); - /*<>*/ /*<>*/ var - scan_stack = /*<>*/ caml_call1(Stdlib_Stack[2], 0); + var + pp_queue = /*<>*/ caml_call1(Stdlib_Queue[2], 0), + sys_tok = /*<>*/ [0, unknown, _g_, 0]; + /*<>*/ caml_call2(Stdlib_Queue[3], sys_tok, pp_queue); + var scan_stack = /*<>*/ caml_call1(Stdlib_Stack[2], 0); /*<>*/ initialize_scan_stack(scan_stack); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Stack[3], [0, 1, sys_tok], scan_stack); - /*<>*/ var - /*<>*/ pp_margin = 78, - _aw_ = Stdlib[19], - /*<>*/ _ax_ = - /*<>*/ caml_call1(Stdlib_Stack[2], 0), - /*<>*/ _ay_ = - /*<>*/ caml_call1(Stdlib_Stack[2], 0), - /*<>*/ _az_ = - /*<>*/ caml_call1(Stdlib_Stack[2], 0); - /*<>*/ return [0, + var + pp_margin = /*<>*/ 78, + _aw_ = /*<>*/ Stdlib[19], + _ax_ = caml_call1(Stdlib_Stack[2], 0), + _ay_ = /*<>*/ caml_call1(Stdlib_Stack[2], 0), + _az_ = /*<>*/ caml_call1(Stdlib_Stack[2], 0); + /*<>*/ return [0, scan_stack, - /*<>*/ caml_call1(Stdlib_Stack[2], 0), + caml_call1(Stdlib_Stack[2], 0), _az_, _ay_, _ax_, @@ -27827,239 +28179,257 @@ default_pp_mark_close_tag, default_pp_print_open_tag, default_pp_print_close_tag, - pp_queue]; + pp_queue] /*<>*/ ; } function formatter_of_out_functions(out_funs){ /*<>*/ return pp_make_formatter - (out_funs[1], out_funs[2], out_funs[3], out_funs[4], out_funs[5]); - /*<>*/ } + (out_funs[1], out_funs[2], out_funs[3], out_funs[4], out_funs[5]) /*<>*/ ; + } function make_formatter(output, flush){ - /*<>*/ /*<>*/ var + var ppf = - pp_make_formatter + /*<>*/ pp_make_formatter (output, flush, function(_av_){ /*<>*/ return 0;}, - function(_au_){ /*<>*/ return 0;}, - function(_at_){ /*<>*/ return 0;}); - ppf[19] = function(_as_){ /*<>*/ return display_newline(ppf, _as_);}; - ppf[20] = function(_ar_){ /*<>*/ return display_blanks(ppf, _ar_);}; - ppf[21] = function(_aq_){ /*<>*/ return display_blanks(ppf, _aq_);}; + function(_au_){return 0;}, + function(_at_){return 0;}); + /*<>*/ ppf[19] = + function(_as_){ + /*<>*/ return display_newline(ppf, _as_); + }; + /*<>*/ ppf[20] = + function(_ar_){ + /*<>*/ return display_blanks(ppf, _ar_); + }; + /*<>*/ ppf[21] = + function(_aq_){ + /*<>*/ return display_blanks(ppf, _aq_); + }; /*<>*/ return ppf; /*<>*/ } function formatter_of_out_channel(oc){ - /*<>*/ return make_formatter + /*<>*/ return /*<>*/ make_formatter ( /*<>*/ caml_call1(Stdlib[69], oc), function(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[63], oc); - /*<>*/ }); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[63], oc) /*<>*/ ; + }) /*<>*/ ; + } function formatter_of_buffer(b){ - /*<>*/ return make_formatter + /*<>*/ return /*<>*/ make_formatter ( /*<>*/ caml_call1(Stdlib_Buffer[18], b), - function(_ap_){ /*<>*/ return 0;}); - /*<>*/ } - var pp_buffer_size = 512; + function(_ap_){ /*<>*/ return 0;}) /*<>*/ ; + } + var pp_buffer_size = /*<>*/ 512; function pp_make_buffer(param){ /*<>*/ return caml_call1 - (Stdlib_Buffer[1], pp_buffer_size); - /*<>*/ } - /*<>*/ var - /*<>*/ stdbuf = pp_make_buffer(0), - /*<>*/ std_formatter = - formatter_of_out_channel(Stdlib[39]), - /*<>*/ err_formatter = - formatter_of_out_channel(Stdlib[40]), - /*<>*/ str_formatter = formatter_of_buffer(stdbuf), - /*<>*/ stdbuf_key = + (Stdlib_Buffer[1], pp_buffer_size) /*<>*/ ; + } + var + stdbuf = /*<>*/ pp_make_buffer(0), + std_formatter = + /*<>*/ formatter_of_out_channel(Stdlib[39]), + err_formatter = + /*<>*/ formatter_of_out_channel(Stdlib[40]), + str_formatter = /*<>*/ formatter_of_buffer(stdbuf), + stdbuf_key = /*<>*/ caml_call2 (Stdlib_Domain[10][1], 0, pp_make_buffer); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Domain[10][3], stdbuf_key, stdbuf); - /*<>*/ /*<>*/ var + var str_formatter_key = /*<>*/ caml_call2 (Stdlib_Domain[10][1], 0, function(param){ - /*<>*/ return formatter_of_buffer + /*<>*/ return /*<>*/ formatter_of_buffer ( /*<>*/ caml_call1 - (Stdlib_Domain[10][2], stdbuf_key)); - /*<>*/ }); - /*<>*/ /*<>*/ caml_call2 + (Stdlib_Domain[10][2], stdbuf_key)) /*<>*/ ; + }); + /*<>*/ caml_call2 (Stdlib_Domain[10][3], str_formatter_key, str_formatter); - /*<>*/ function buffered_out_string(key, str, ofs, len){ - /*<>*/ /*<>*/ var + function buffered_out_string(key, str, ofs, len){ + var _ao_ = /*<>*/ caml_call1(Stdlib_Domain[10][2], key); - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Buffer[18], _ao_, str, ofs, len); - /*<>*/ } + /*<>*/ return caml_call4 + (Stdlib_Buffer[18], _ao_, str, ofs, len) /*<>*/ ; + } function buffered_out_flush(oc, key, param){ - /*<>*/ var - /*<>*/ buf = - /*<>*/ caml_call1(Stdlib_Domain[10][2], key), - /*<>*/ len = - /*<>*/ caml_call1(Stdlib_Buffer[7], buf), - /*<>*/ str = - /*<>*/ caml_call1(Stdlib_Buffer[2], buf); - /*<>*/ /*<>*/ caml_call4 - (Stdlib[69], oc, str, 0, len); - /*<>*/ /*<>*/ caml_call1 - (Stdlib[63], oc); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Buffer[8], buf); - /*<>*/ } - /*<>*/ var - /*<>*/ std_buf_key = + var + buf = /*<>*/ caml_call1(Stdlib_Domain[10][2], key), + len = /*<>*/ caml_call1(Stdlib_Buffer[7], buf), + str = /*<>*/ caml_call1(Stdlib_Buffer[2], buf); + /*<>*/ caml_call4(Stdlib[69], oc, str, 0, len); + /*<>*/ caml_call1(Stdlib[63], oc); + /*<>*/ return caml_call1(Stdlib_Buffer[8], buf) /*<>*/ ; + } + var + std_buf_key = /*<>*/ caml_call2 (Stdlib_Domain[10][1], 0, function(param){ /*<>*/ return caml_call1 - (Stdlib_Buffer[1], pp_buffer_size); - /*<>*/ }), - /*<>*/ err_buf_key = + (Stdlib_Buffer[1], pp_buffer_size) /*<>*/ ; + }), + err_buf_key = /*<>*/ caml_call2 (Stdlib_Domain[10][1], 0, function(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Buffer[1], pp_buffer_size); - /*<>*/ }), - /*<>*/ std_formatter_key = + /*<>*/ return caml_call1 + (Stdlib_Buffer[1], pp_buffer_size) /*<>*/ ; + }), + std_formatter_key = /*<>*/ caml_call2 (Stdlib_Domain[10][1], 0, function(param){ - /*<>*/ var - _ac_ = Stdlib[39], - /*<>*/ ppf = - pp_make_formatter + var + _ac_ = /*<>*/ Stdlib[39], + ppf = + /*<>*/ pp_make_formatter (function(_al_, _am_, _an_){ - /*<>*/ return buffered_out_string + /*<>*/ return buffered_out_string (std_buf_key, _al_, _am_, _an_); }, function(_ak_){ - /*<>*/ return buffered_out_flush(_ac_, std_buf_key, _ak_); + /*<>*/ return buffered_out_flush + (_ac_, std_buf_key, _ak_); }, function(_aj_){ /*<>*/ return 0;}, - function(_ai_){ /*<>*/ return 0;}, - function(_ah_){ /*<>*/ return 0;}); - ppf[19] = - function(_ag_){ /*<>*/ return display_newline(ppf, _ag_);}; - ppf[20] = - function(_af_){ /*<>*/ return display_blanks(ppf, _af_);}; - ppf[21] = - function(_ae_){ /*<>*/ return display_blanks(ppf, _ae_);}; - /*<>*/ /*<>*/ caml_call1 + function(_ai_){return 0;}, + function(_ah_){return 0;}); + /*<>*/ ppf[19] = + function(_ag_){ + /*<>*/ return display_newline(ppf, _ag_); + }; + /*<>*/ ppf[20] = + function(_af_){ + /*<>*/ return display_blanks(ppf, _af_); + }; + /*<>*/ ppf[21] = + function(_ae_){ + /*<>*/ return display_blanks(ppf, _ae_); + }; + /*<>*/ caml_call1 (Stdlib_Domain[6], - function(_ad_){ /*<>*/ return pp_print_flush(ppf, _ad_);}); - /*<>*/ return ppf; + function(_ad_){ + /*<>*/ return pp_print_flush(ppf, _ad_); + }); + /*<>*/ return ppf; /*<>*/ }); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Domain[10][3], std_formatter_key, std_formatter); - /*<>*/ /*<>*/ var + var err_formatter_key = /*<>*/ caml_call2 (Stdlib_Domain[10][1], 0, function(param){ - /*<>*/ var - _S_ = Stdlib[40], - /*<>*/ ppf = - pp_make_formatter + var + _S_ = /*<>*/ Stdlib[40], + ppf = + /*<>*/ pp_make_formatter (function(_$_, _aa_, _ab_){ - /*<>*/ return buffered_out_string + /*<>*/ return buffered_out_string (err_buf_key, _$_, _aa_, _ab_); }, function(___){ - /*<>*/ return buffered_out_flush(_S_, err_buf_key, ___); + /*<>*/ return buffered_out_flush + (_S_, err_buf_key, ___); }, function(_Z_){ /*<>*/ return 0;}, - function(_Y_){ /*<>*/ return 0;}, - function(_X_){ /*<>*/ return 0;}); - ppf[19] = function(_W_){ /*<>*/ return display_newline(ppf, _W_);}; - ppf[20] = function(_V_){ /*<>*/ return display_blanks(ppf, _V_);}; - ppf[21] = function(_U_){ /*<>*/ return display_blanks(ppf, _U_);}; - /*<>*/ /*<>*/ caml_call1 + function(_Y_){return 0;}, + function(_X_){return 0;}); + /*<>*/ ppf[19] = + function(_W_){ + /*<>*/ return display_newline(ppf, _W_); + }; + /*<>*/ ppf[20] = + function(_V_){ + /*<>*/ return display_blanks(ppf, _V_); + }; + /*<>*/ ppf[21] = + function(_U_){ + /*<>*/ return display_blanks(ppf, _U_); + }; + /*<>*/ caml_call1 (Stdlib_Domain[6], - function(_T_){ /*<>*/ return pp_print_flush(ppf, _T_);}); - /*<>*/ return ppf; + function(_T_){ + /*<>*/ return pp_print_flush(ppf, _T_); + }); + /*<>*/ return ppf; /*<>*/ }); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Domain[10][3], err_formatter_key, err_formatter); function get_std_formatter(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Domain[10][2], std_formatter_key); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib_Domain[10][2], std_formatter_key) /*<>*/ ; + } function get_err_formatter(param){ /*<>*/ return caml_call1 - (Stdlib_Domain[10][2], err_formatter_key); - /*<>*/ } + (Stdlib_Domain[10][2], err_formatter_key) /*<>*/ ; + } function get_str_formatter(param){ /*<>*/ return caml_call1 - (Stdlib_Domain[10][2], str_formatter_key); - /*<>*/ } + (Stdlib_Domain[10][2], str_formatter_key) /*<>*/ ; + } function get_stdbuf(param){ /*<>*/ return caml_call1 - (Stdlib_Domain[10][2], stdbuf_key); - /*<>*/ } + (Stdlib_Domain[10][2], stdbuf_key) /*<>*/ ; + } function flush_buffer_formatter(buf, ppf){ /*<>*/ pp_flush_queue(ppf, 0); - /*<>*/ /*<>*/ var - s = /*<>*/ caml_call1(Stdlib_Buffer[2], buf); - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Buffer[9], buf); - /*<>*/ return s; + var s = /*<>*/ caml_call1(Stdlib_Buffer[2], buf); + /*<>*/ caml_call1(Stdlib_Buffer[9], buf); + /*<>*/ return s; /*<>*/ } function flush_str_formatter(param){ - /*<>*/ var - /*<>*/ stdbuf = + var + stdbuf = /*<>*/ caml_call1(Stdlib_Domain[10][2], stdbuf_key), - /*<>*/ str_formatter = + str_formatter = /*<>*/ caml_call1 (Stdlib_Domain[10][2], str_formatter_key); /*<>*/ return flush_buffer_formatter - (stdbuf, str_formatter); - /*<>*/ } + (stdbuf, str_formatter) /*<>*/ ; + } function make_synchronized_formatter(output, flush){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Domain[10][1], 0, function(param){ - /*<>*/ var - /*<>*/ buf = + var + buf = /*<>*/ caml_call1 (Stdlib_Buffer[1], pp_buffer_size), - /*<>*/ output$0 = + output$0 = /*<>*/ caml_call1(Stdlib_Buffer[18], buf); function flush$0(param){ - /*<>*/ /*<>*/ var + var _R_ = /*<>*/ caml_call1(Stdlib_Buffer[7], buf); - /*<>*/ /*<>*/ caml_call3 + /*<>*/ /*<>*/ caml_call3 (output, /*<>*/ caml_call1(Stdlib_Buffer[2], buf), 0, _R_); - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Buffer[8], buf); - /*<>*/ return /*<>*/ caml_call1 - (flush, 0); - /*<>*/ } + /*<>*/ caml_call1(Stdlib_Buffer[8], buf); + /*<>*/ return caml_call1(flush, 0) /*<>*/ ; + } /*<>*/ return make_formatter - (output$0, flush$0); - /*<>*/ }); - /*<>*/ } + (output$0, flush$0) /*<>*/ ; + }) /*<>*/ ; + } function synchronized_formatter_of_out_(oc){ - /*<>*/ return make_synchronized_formatter + /*<>*/ return /*<>*/ make_synchronized_formatter ( /*<>*/ caml_call1(Stdlib[69], oc), function(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[63], oc); - /*<>*/ }); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[63], oc) /*<>*/ ; + }) /*<>*/ ; + } function make_symbolic_output_buffer(param){ /*<>*/ return [0, 0]; /*<>*/ } function clear_symbolic_output_buffer(sob){ @@ -28067,417 +28437,413 @@ return 0; /*<>*/ } function get_symbolic_output_buffer(sob){ - /*<>*/ return caml_call1(Stdlib_List[10], sob[1]); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_List[10], sob[1]) /*<>*/ ; + } function flush_symbolic_output_buffer(sob){ - /*<>*/ /*<>*/ var - items = get_symbolic_output_buffer(sob); + var items = /*<>*/ get_symbolic_output_buffer(sob); /*<>*/ clear_symbolic_output_buffer(sob); - /*<>*/ return items; + /*<>*/ return items; /*<>*/ } function add_symbolic_output_item(sob, item){ /*<>*/ sob[1] = [0, item, sob[1]]; return 0; /*<>*/ } function formatter_of_symbolic_output_b(sob){ - /*<>*/ function f(s, i, n){ - /*<>*/ return add_symbolic_output_item + function f(s, i, n){ + /*<>*/ return /*<>*/ add_symbolic_output_item (sob, [0, /*<>*/ caml_call3 - (Stdlib_String[16], s, i, n)]); + (Stdlib_String[16], s, i, n)]) /*<>*/ ; } - /*<>*/ function g(_Q_){ + function g(_Q_){ /*<>*/ return add_symbolic_output_item(sob, 0); } - /*<>*/ function h(_P_){ + function h(_P_){ /*<>*/ return add_symbolic_output_item(sob, 1); } - /*<>*/ function i(n){ - /*<>*/ return add_symbolic_output_item(sob, [1, n]); + function i(n){ + /*<>*/ return add_symbolic_output_item(sob, [1, n]); } - /*<>*/ function j(n){ - /*<>*/ return add_symbolic_output_item(sob, [2, n]); + function j(n){ + /*<>*/ return add_symbolic_output_item(sob, [2, n]); } - /*<>*/ return pp_make_formatter(f, g, h, i, j); - /*<>*/ } + /*<>*/ return pp_make_formatter(f, g, h, i, j) /*<>*/ ; + } function open_hbox(v){ - /*<>*/ return pp_open_hbox + /*<>*/ return /*<>*/ pp_open_hbox ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function open_vbox(v){ - /*<>*/ return pp_open_vbox + /*<>*/ return /*<>*/ pp_open_vbox ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function open_hvbox(v){ - /*<>*/ return pp_open_hvbox + /*<>*/ return /*<>*/ pp_open_hvbox ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function open_hovbox(v){ - /*<>*/ return pp_open_hovbox + /*<>*/ return /*<>*/ pp_open_hovbox ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function open_box(v){ - /*<>*/ return pp_open_box + /*<>*/ return /*<>*/ pp_open_box ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function close_box(v){ - /*<>*/ return pp_close_box + /*<>*/ return /*<>*/ pp_close_box ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function open_stag(v){ - /*<>*/ return pp_open_stag + /*<>*/ return /*<>*/ pp_open_stag ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function close_stag(v){ - /*<>*/ return pp_close_stag + /*<>*/ return /*<>*/ pp_close_stag ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_as(isize, w){ - /*<>*/ /*<>*/ var + var state = /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key); - /*<>*/ return pp_print_as_size(state, isize, w); - /*<>*/ } + /*<>*/ return pp_print_as_size(state, isize, w) /*<>*/ ; + } function print_string(v){ - /*<>*/ return pp_print_string + /*<>*/ return /*<>*/ pp_print_string ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_bytes(v){ - /*<>*/ return pp_print_bytes + /*<>*/ return /*<>*/ pp_print_bytes ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_int(v){ - /*<>*/ return pp_print_int + /*<>*/ return /*<>*/ pp_print_int ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_float(v){ - /*<>*/ return pp_print_float + /*<>*/ return /*<>*/ pp_print_float ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_char(v){ - /*<>*/ return pp_print_char + /*<>*/ return /*<>*/ pp_print_char ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_bool(v){ - /*<>*/ return pp_print_bool + /*<>*/ return /*<>*/ pp_print_bool ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_break(v, w){ - /*<>*/ return pp_print_break + /*<>*/ return /*<>*/ pp_print_break ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), v, - w); - /*<>*/ } + w) /*<>*/ ; + } function print_cut(v){ - /*<>*/ return pp_print_cut + /*<>*/ return /*<>*/ pp_print_cut ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_space(v){ - /*<>*/ return pp_print_space + /*<>*/ return /*<>*/ pp_print_space ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function force_newline(v){ - /*<>*/ return pp_force_newline + /*<>*/ return /*<>*/ pp_force_newline ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_flush(v){ - /*<>*/ return pp_print_flush + /*<>*/ return /*<>*/ pp_print_flush ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_newline(v){ - /*<>*/ return pp_print_newline + /*<>*/ return /*<>*/ pp_print_newline ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_if_newline(v){ - /*<>*/ return pp_print_if_newline + /*<>*/ return /*<>*/ pp_print_if_newline ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function open_tbox(v){ - /*<>*/ return pp_open_tbox + /*<>*/ return /*<>*/ pp_open_tbox ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function close_tbox(v){ - /*<>*/ return pp_close_tbox + /*<>*/ return /*<>*/ pp_close_tbox ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_tbreak(v, w){ - /*<>*/ return pp_print_tbreak + /*<>*/ return /*<>*/ pp_print_tbreak ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), v, - w); - /*<>*/ } + w) /*<>*/ ; + } function set_tab(v){ - /*<>*/ return pp_set_tab + /*<>*/ return /*<>*/ pp_set_tab ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function print_tab(v){ - /*<>*/ return pp_print_tab + /*<>*/ return /*<>*/ pp_print_tab ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function set_margin(v){ - /*<>*/ return pp_set_margin + /*<>*/ return /*<>*/ pp_set_margin ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function get_margin(v){ - /*<>*/ /*<>*/ var + var state = /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key); - return state[6]; + /*<>*/ return state[6]; /*<>*/ } function set_max_indent(v){ - /*<>*/ return pp_set_max_indent + /*<>*/ return /*<>*/ pp_set_max_indent ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function get_max_indent(v){ - /*<>*/ /*<>*/ var + var state = /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key); - return state[8]; + /*<>*/ return state[8]; /*<>*/ } function set_geometry(max_indent, margin){ - /*<>*/ return pp_set_geometry + /*<>*/ return /*<>*/ pp_set_geometry ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), max_indent, - margin); - /*<>*/ } + margin) /*<>*/ ; + } function safe_set_geometry(max_indent, margin){ - /*<>*/ return pp_safe_set_geometry + /*<>*/ return /*<>*/ pp_safe_set_geometry ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), max_indent, - margin); - /*<>*/ } + margin) /*<>*/ ; + } function get_geometry(v){ - /*<>*/ return pp_get_geometry + /*<>*/ return /*<>*/ pp_get_geometry ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function update_geometry(v){ - /*<>*/ return pp_update_geometry + /*<>*/ return /*<>*/ pp_update_geometry ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function set_max_boxes(v){ - /*<>*/ return pp_set_max_boxes + /*<>*/ return /*<>*/ pp_set_max_boxes ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function get_max_boxes(v){ - /*<>*/ /*<>*/ var + var state = /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key); - return state[15]; + /*<>*/ return state[15]; /*<>*/ } function over_max_boxes(v){ - /*<>*/ return pp_over_max_boxes + /*<>*/ return /*<>*/ pp_over_max_boxes ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function set_ellipsis_text(v){ - /*<>*/ return pp_set_ellipsis_text + /*<>*/ return /*<>*/ pp_set_ellipsis_text ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function get_ellipsis_text(v){ - /*<>*/ /*<>*/ var + var state = /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key); - return state[16]; + /*<>*/ return state[16]; /*<>*/ } function set_formatter_out_channel(v){ - /*<>*/ return pp_set_formatter_out_channel + /*<>*/ return /*<>*/ pp_set_formatter_out_channel ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function set_formatter_out_functions(v){ - /*<>*/ return pp_set_formatter_out_functions + /*<>*/ return /*<>*/ pp_set_formatter_out_functions ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function get_formatter_out_functions(v){ - /*<>*/ return pp_get_formatter_out_functions + /*<>*/ return /*<>*/ pp_get_formatter_out_functions ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function set_formatter_output_functions(v, w){ - /*<>*/ return pp_set_formatter_output_functi + /*<>*/ return /*<>*/ pp_set_formatter_output_functi ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), v, - w); - /*<>*/ } + w) /*<>*/ ; + } function get_formatter_output_functions(v){ - /*<>*/ return pp_get_formatter_output_functi + /*<>*/ return /*<>*/ pp_get_formatter_output_functi ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function set_formatter_stag_functions(v){ - /*<>*/ return pp_set_formatter_stag_function + /*<>*/ return /*<>*/ pp_set_formatter_stag_function ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function get_formatter_stag_functions(v){ - /*<>*/ return pp_get_formatter_stag_function + /*<>*/ return /*<>*/ pp_get_formatter_stag_function ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function set_print_tags(v){ - /*<>*/ return pp_set_print_tags + /*<>*/ return /*<>*/ pp_set_print_tags ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function get_print_tags(v){ - /*<>*/ /*<>*/ var + var state = /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key); - return state[22]; + /*<>*/ return state[22]; /*<>*/ } function set_mark_tags(v){ - /*<>*/ return pp_set_mark_tags + /*<>*/ return /*<>*/ pp_set_mark_tags ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function get_mark_tags(v){ - /*<>*/ /*<>*/ var + var state = /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key); - return state[23]; + /*<>*/ return state[23]; /*<>*/ } function set_tags(v){ - /*<>*/ return pp_set_tags + /*<>*/ return /*<>*/ pp_set_tags ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - v); - /*<>*/ } + v) /*<>*/ ; + } function pp_print_iter(opt, iter, pp_v, ppf, v){ - /*<>*/ var - pp_sep = opt ? opt[1] : pp_print_cut, - /*<>*/ is_first = [0, 1]; + var + pp_sep = /*<>*/ opt ? opt[1] : pp_print_cut, + is_first = /*<>*/ [0, 1]; function pp_v$0(v){ /*<>*/ if(is_first[1]) - is_first[1] = 0; + /*<>*/ is_first[1] = 0; else - /*<>*/ /*<>*/ caml_call2 - (pp_sep, ppf, 0); - /*<>*/ return /*<>*/ caml_call2 - (pp_v, ppf, v); - /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (iter, pp_v$0, v); + /*<>*/ caml_call2(pp_sep, ppf, 0); + /*<>*/ return caml_call2(pp_v, ppf, v) /*<>*/ ; + } + /*<>*/ return caml_call2(iter, pp_v$0, v) /*<>*/ ; } function pp_print_list(opt, pp_v, ppf, v){ - var pp_sep = opt ? opt[1] : pp_print_cut; + var pp_sep = /*<>*/ opt ? opt[1] : pp_print_cut; /*<>*/ return pp_print_iter - ([0, pp_sep], Stdlib_List[18], pp_v, ppf, v); + ([0, pp_sep], Stdlib_List[18], pp_v, ppf, v) /*<>*/ ; } function pp_print_array(opt, pp_v, ppf, v){ - var pp_sep = opt ? opt[1] : pp_print_cut; + var pp_sep = /*<>*/ opt ? opt[1] : pp_print_cut; /*<>*/ return pp_print_iter - ([0, pp_sep], Stdlib_Array[12], pp_v, ppf, v); + ([0, pp_sep], Stdlib_Array[12], pp_v, ppf, v) /*<>*/ ; } function pp_print_seq(opt, pp_v, ppf, seq){ - var pp_sep = opt ? opt[1] : pp_print_cut; + var pp_sep = /*<>*/ opt ? opt[1] : pp_print_cut; /*<>*/ return pp_print_iter - ([0, pp_sep], Stdlib_Seq[4], pp_v, ppf, seq); + ([0, pp_sep], Stdlib_Seq[4], pp_v, ppf, seq) /*<>*/ ; } function pp_print_text(ppf, s){ - /*<>*/ var - len = caml_ml_string_length(s), - /*<>*/ left = [0, 0], - /*<>*/ right = [0, 0]; + var + len = /*<>*/ caml_ml_string_length(s), + left = /*<>*/ [0, 0], + right = /*<>*/ [0, 0]; function flush(param){ - /*<>*/ pp_print_string + /*<>*/ /*<>*/ pp_print_string (ppf, /*<>*/ caml_call3 (Stdlib_String[16], s, left[1], right[1] - left[1] | 0)); - right[1]++; - left[1] = right[1]; + /*<>*/ right[1]++; + /*<>*/ left[1] = right[1]; return 0; /*<>*/ } - for(;;){ + /*<>*/ for(;;){ if(right[1] === len){ - var _O_ = left[1] !== len ? 1 : 0; - return _O_ ? flush(0) : _O_; + var _O_ = /*<>*/ left[1] !== len ? 1 : 0; + return _O_ ? /*<>*/ flush(0) : _O_ /*<>*/ ; } - /*<>*/ /*<>*/ var + var match = /*<>*/ runtime.caml_string_get(s, right[1]); - if(10 === match){ + /*<>*/ if(10 === match){ /*<>*/ flush(0); /*<>*/ pp_force_newline(ppf, 0); } @@ -28486,89 +28852,81 @@ /*<>*/ pp_print_space(ppf, 0); } else - right[1]++; + /*<>*/ right[1]++; } /*<>*/ } function pp_print_option(opt, pp_v, ppf, param){ var none = - opt + /*<>*/ opt ? opt[1] : function (_N_, param){ /*<>*/ return 0; /*<>*/ }; - if(! param) - /*<>*/ return /*<>*/ caml_call2 - (none, ppf, 0); - var v = param[1]; - /*<>*/ return /*<>*/ caml_call2 - (pp_v, ppf, v); + /*<>*/ if(! param) + /*<>*/ return caml_call2(none, ppf, 0) /*<>*/ ; + var v = /*<>*/ param[1]; + /*<>*/ return caml_call2(pp_v, ppf, v) /*<>*/ ; } function pp_print_result(ok, error, ppf, param){ - /*<>*/ if(0 === param[0]){ + /*<>*/ if(0 === param[0]){ var v = param[1]; - /*<>*/ return /*<>*/ caml_call2 - (ok, ppf, v); + /*<>*/ return caml_call2(ok, ppf, v) /*<>*/ ; } - var e = param[1]; - /*<>*/ return /*<>*/ caml_call2 - (error, ppf, e); + var e = /*<>*/ param[1]; + /*<>*/ return caml_call2(error, ppf, e) /*<>*/ ; } function pp_print_either(left, right, ppf, param){ - /*<>*/ if(0 === param[0]){ + /*<>*/ if(0 === param[0]){ var l = param[1]; - /*<>*/ return /*<>*/ caml_call2 - (left, ppf, l); + /*<>*/ return caml_call2(left, ppf, l) /*<>*/ ; } - var r = param[1]; - /*<>*/ return /*<>*/ caml_call2 - (right, ppf, r); + var r = /*<>*/ param[1]; + /*<>*/ return caml_call2(right, ppf, r) /*<>*/ ; } function compute_tag(output, tag_acc){ - /*<>*/ var - /*<>*/ buf = - /*<>*/ caml_call1(Stdlib_Buffer[1], 16), - /*<>*/ ppf = formatter_of_buffer(buf); - /*<>*/ /*<>*/ caml_call2 - (output, ppf, tag_acc); + var + buf = /*<>*/ caml_call1(Stdlib_Buffer[1], 16), + ppf = /*<>*/ formatter_of_buffer(buf); + /*<>*/ caml_call2(output, ppf, tag_acc); /*<>*/ pp_print_flush(ppf, 0); - /*<>*/ /*<>*/ var - len = /*<>*/ caml_call1(Stdlib_Buffer[7], buf); + var len = /*<>*/ caml_call1(Stdlib_Buffer[7], buf); /*<>*/ return 2 <= len ? /*<>*/ caml_call3 (Stdlib_Buffer[4], buf, 1, len - 2 | 0) - : /*<>*/ caml_call1(Stdlib_Buffer[2], buf); - /*<>*/ } + : /*<>*/ caml_call1(Stdlib_Buffer[2], buf) /*<>*/ ; + } function output_formatting_lit(ppf, fmting_lit){ /*<>*/ if(typeof fmting_lit === "number") switch(fmting_lit){ case 0: - /*<>*/ return pp_close_box(ppf, 0); + /*<>*/ return pp_close_box(ppf, 0) /*<>*/ ; case 1: - /*<>*/ return pp_close_stag(ppf, 0); + /*<>*/ return pp_close_stag(ppf, 0) /*<>*/ ; case 2: - /*<>*/ return pp_print_flush(ppf, 0); + /*<>*/ return pp_print_flush(ppf, 0) /*<>*/ ; case 3: - /*<>*/ return pp_force_newline(ppf, 0); + /*<>*/ return pp_force_newline(ppf, 0) /*<>*/ ; case 4: - /*<>*/ return pp_print_newline(ppf, 0); + /*<>*/ return pp_print_newline(ppf, 0) /*<>*/ ; case 5: - /*<>*/ return pp_print_char(ppf, 64); - default: /*<>*/ return pp_print_char(ppf, 37); + /*<>*/ return pp_print_char(ppf, 64) /*<>*/ ; + default: + /*<>*/ return pp_print_char(ppf, 37) /*<>*/ ; } - switch(fmting_lit[0]){ + /*<>*/ switch(fmting_lit[0]){ case 0: var offset = fmting_lit[3], width = fmting_lit[2]; - /*<>*/ return pp_print_break(ppf, width, offset); + /*<>*/ return pp_print_break(ppf, width, offset) /*<>*/ ; case 1: /*<>*/ return 0; default: - var c = fmting_lit[1]; + var c = /*<>*/ fmting_lit[1]; /*<>*/ pp_print_char(ppf, 64); - /*<>*/ return pp_print_char(ppf, c); + /*<>*/ return pp_print_char(ppf, c) /*<>*/ ; } - /*<>*/ } + } function output_acc(ppf, acc){ /*<>*/ if(typeof acc === "number") /*<>*/ return 0; @@ -28578,31 +28936,34 @@ { c: { - switch(acc[0]){ + /*<>*/ switch(acc[0]){ case 0: var f = acc[2], p = acc[1]; /*<>*/ output_acc(ppf, p); - /*<>*/ return output_formatting_lit(ppf, f); + /*<>*/ return output_formatting_lit(ppf, f) /*<>*/ ; case 1: - var match = acc[2], p$0 = acc[1]; + var match = /*<>*/ acc[2], p$0 = acc[1]; if(0 === match[0]){ var acc$0 = match[1]; /*<>*/ output_acc(ppf, p$0); - /*<>*/ return pp_open_stag - (ppf, [0, String_tag, compute_tag(output_acc, acc$0)]); + /*<>*/ return /*<>*/ pp_open_stag + (ppf, + [0, + String_tag, + /*<>*/ compute_tag(output_acc, acc$0)]) /*<>*/ ; } - var acc$1 = match[1]; + var acc$1 = /*<>*/ match[1]; /*<>*/ output_acc(ppf, p$0); - /*<>*/ var - /*<>*/ _E_ = compute_tag(output_acc, acc$1), - /*<>*/ match$0 = + var + _E_ = /*<>*/ compute_tag(output_acc, acc$1), + match$0 = /*<>*/ caml_call1 (CamlinternalFormat[20], _E_), - bty = match$0[2], + bty = /*<>*/ match$0[2], indent = match$0[1]; - /*<>*/ return pp_open_box_gen(ppf, indent, bty); + /*<>*/ return pp_open_box_gen(ppf, indent, bty) /*<>*/ ; case 2: - var _F_ = acc[1]; + var _F_ = /*<>*/ acc[1]; if(typeof _F_ !== "number" && 0 === _F_[0]){ var _G_ = _F_[2]; if(typeof _G_ !== "number" && 1 === _G_[0]){ @@ -28648,34 +29009,32 @@ case 6: var f$0 = acc[2], p$5 = acc[1]; /*<>*/ output_acc(ppf, p$5); - /*<>*/ return /*<>*/ caml_call1 - (f$0, ppf); + /*<>*/ return caml_call1(f$0, ppf) /*<>*/ ; case 7: - var p$6 = acc[1]; + var p$6 = /*<>*/ acc[1]; /*<>*/ output_acc(ppf, p$6); - /*<>*/ return pp_print_flush(ppf, 0); + /*<>*/ return pp_print_flush(ppf, 0) /*<>*/ ; default: - var msg = acc[2], p$7 = acc[1]; + var msg = /*<>*/ acc[2], p$7 = acc[1]; /*<>*/ output_acc(ppf, p$7); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], msg); + /*<>*/ return caml_call1(Stdlib[1], msg) /*<>*/ ; } /*<>*/ output_acc(ppf, p$4); - /*<>*/ return pp_print_as_size + /*<>*/ return /*<>*/ pp_print_as_size (ppf, size$0, /*<>*/ caml_call2 - (Stdlib_String[1], 1, c$0)); + (Stdlib_String[1], 1, c$0)) /*<>*/ ; } /*<>*/ output_acc(ppf, p$3); - /*<>*/ return pp_print_char(ppf, c); + /*<>*/ return pp_print_char(ppf, c) /*<>*/ ; } /*<>*/ output_acc(ppf, p$2); - /*<>*/ return pp_print_as_size(ppf, size, s$0); + /*<>*/ return pp_print_as_size(ppf, size, s$0) /*<>*/ ; } /*<>*/ output_acc(ppf, p$1); - /*<>*/ return pp_print_string(ppf, s); - /*<>*/ } + /*<>*/ return pp_print_string(ppf, s) /*<>*/ ; + } function strput_acc(ppf, acc){ /*<>*/ if(typeof acc === "number") /*<>*/ return 0; @@ -28685,31 +29044,34 @@ { c: { - switch(acc[0]){ + /*<>*/ switch(acc[0]){ case 0: var f = acc[2], p = acc[1]; /*<>*/ strput_acc(ppf, p); - /*<>*/ return output_formatting_lit(ppf, f); + /*<>*/ return output_formatting_lit(ppf, f) /*<>*/ ; case 1: - var match = acc[2], p$0 = acc[1]; + var match = /*<>*/ acc[2], p$0 = acc[1]; if(0 === match[0]){ var acc$0 = match[1]; /*<>*/ strput_acc(ppf, p$0); - /*<>*/ return pp_open_stag - (ppf, [0, String_tag, compute_tag(strput_acc, acc$0)]); + /*<>*/ return /*<>*/ pp_open_stag + (ppf, + [0, + String_tag, + /*<>*/ compute_tag(strput_acc, acc$0)]) /*<>*/ ; } - var acc$1 = match[1]; + var acc$1 = /*<>*/ match[1]; /*<>*/ strput_acc(ppf, p$0); - /*<>*/ var - /*<>*/ _v_ = compute_tag(strput_acc, acc$1), - /*<>*/ match$0 = + var + _v_ = /*<>*/ compute_tag(strput_acc, acc$1), + match$0 = /*<>*/ caml_call1 (CamlinternalFormat[20], _v_), - bty = match$0[2], + bty = /*<>*/ match$0[2], indent = match$0[1]; - /*<>*/ return pp_open_box_gen(ppf, indent, bty); + /*<>*/ return pp_open_box_gen(ppf, indent, bty) /*<>*/ ; case 2: - var _w_ = acc[1]; + var _w_ = /*<>*/ acc[1]; if(typeof _w_ !== "number" && 0 === _w_[0]){ var _x_ = _w_[2]; if(typeof _x_ !== "number" && 1 === _x_[0]){ @@ -28759,201 +29121,205 @@ if(typeof match$1 !== "number" && 1 === match$1[0]){ var f$1 = acc[2], size$1 = match$1[2], p$6 = p$5[1]; /*<>*/ strput_acc(ppf, p$6); - /*<>*/ return pp_print_as_size - (ppf, size$1, /*<>*/ caml_call1(f$1, 0)); + /*<>*/ return /*<>*/ pp_print_as_size + (ppf, size$1, /*<>*/ caml_call1(f$1, 0)) /*<>*/ ; } } - var f$0 = acc[2]; + var f$0 = /*<>*/ acc[2]; /*<>*/ strput_acc(ppf, p$5); - /*<>*/ return pp_print_string - (ppf, /*<>*/ caml_call1(f$0, 0)); + /*<>*/ return /*<>*/ pp_print_string + (ppf, /*<>*/ caml_call1(f$0, 0)) /*<>*/ ; case 7: - var p$7 = acc[1]; + var p$7 = /*<>*/ acc[1]; /*<>*/ strput_acc(ppf, p$7); - /*<>*/ return pp_print_flush(ppf, 0); + /*<>*/ return pp_print_flush(ppf, 0) /*<>*/ ; default: - var msg = acc[2], p$8 = acc[1]; + var msg = /*<>*/ acc[2], p$8 = acc[1]; /*<>*/ strput_acc(ppf, p$8); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], msg); + /*<>*/ return caml_call1(Stdlib[1], msg) /*<>*/ ; } /*<>*/ strput_acc(ppf, p$4); - /*<>*/ return pp_print_as_size + /*<>*/ return /*<>*/ pp_print_as_size (ppf, size$0, /*<>*/ caml_call2 - (Stdlib_String[1], 1, c$0)); + (Stdlib_String[1], 1, c$0)) /*<>*/ ; } /*<>*/ strput_acc(ppf, p$3); - /*<>*/ return pp_print_char(ppf, c); + /*<>*/ return pp_print_char(ppf, c) /*<>*/ ; } /*<>*/ strput_acc(ppf, p$2); - /*<>*/ return pp_print_as_size(ppf, size, s$0); + /*<>*/ return pp_print_as_size(ppf, size, s$0) /*<>*/ ; } /*<>*/ strput_acc(ppf, p$1); - /*<>*/ return pp_print_string(ppf, s); - /*<>*/ } + /*<>*/ return pp_print_string(ppf, s) /*<>*/ ; + } function kfprintf(k, ppf, param){ - var fmt = param[1]; - /*<>*/ return /*<>*/ caml_call3 + var fmt = /*<>*/ param[1]; + /*<>*/ return caml_call3 (CamlinternalFormat[7], function(acc){ /*<>*/ output_acc(ppf, acc); - return caml_call1(k, ppf); - /*<>*/ }, + /*<>*/ return caml_call1(k, ppf) /*<>*/ ; + }, 0, - fmt); + fmt) /*<>*/ ; } function ikfprintf(k, ppf, param){ - var fmt = param[1]; - /*<>*/ return /*<>*/ caml_call3 - (CamlinternalFormat[8], k, ppf, fmt); + var fmt = /*<>*/ param[1]; + /*<>*/ return caml_call3 + (CamlinternalFormat[8], k, ppf, fmt) /*<>*/ ; } function ifprintf(ppf, param){ - var fmt = param[1]; - /*<>*/ return /*<>*/ caml_call3 + var fmt = /*<>*/ param[1]; + /*<>*/ return caml_call3 (CamlinternalFormat[8], function(_u_){ /*<>*/ return 0;}, 0, - fmt); + fmt) /*<>*/ ; } function fprintf(ppf){ function _r_(_t_){ /*<>*/ return 0;} /*<>*/ return function(_s_){ - /*<>*/ return kfprintf(_r_, ppf, _s_);}; + /*<>*/ return kfprintf(_r_, ppf, _s_);} /*<>*/ ; /*<>*/ } function printf(param){ - var fmt = param[1]; - /*<>*/ return /*<>*/ caml_call3 + var fmt = /*<>*/ param[1]; + /*<>*/ return caml_call3 (CamlinternalFormat[7], function(acc){ - /*<>*/ return output_acc + /*<>*/ return /*<>*/ output_acc ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), - acc); - /*<>*/ }, + acc) /*<>*/ ; + }, 0, - fmt); + fmt) /*<>*/ ; } function eprintf(param){ - var fmt = param[1]; - /*<>*/ return /*<>*/ caml_call3 + var fmt = /*<>*/ param[1]; + /*<>*/ return caml_call3 (CamlinternalFormat[7], function(acc){ - /*<>*/ return output_acc + /*<>*/ return /*<>*/ output_acc ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], err_formatter_key), - acc); - /*<>*/ }, + acc) /*<>*/ ; + }, 0, - fmt); + fmt) /*<>*/ ; } function kdprintf(k, param){ - var fmt = param[1]; - /*<>*/ return /*<>*/ caml_call3 + var fmt = /*<>*/ param[1]; + /*<>*/ return caml_call3 (CamlinternalFormat[7], function(acc){ - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ return caml_call1 (k, function(ppf){ - /*<>*/ return output_acc(ppf, acc); - /*<>*/ }); - /*<>*/ }, + /*<>*/ return output_acc(ppf, acc) /*<>*/ ; + }) /*<>*/ ; + }, 0, - fmt); + fmt) /*<>*/ ; } function dprintf(fmt){ /*<>*/ return kdprintf (function(i){ /*<>*/ return i; /*<>*/ }, - fmt); - /*<>*/ } + fmt) /*<>*/ ; + } function ksprintf(k, param){ - /*<>*/ var - fmt = param[1], - /*<>*/ b = pp_make_buffer(0), - /*<>*/ ppf = formatter_of_buffer(b); + var + fmt = /*<>*/ param[1], + b = /*<>*/ pp_make_buffer(0), + ppf = /*<>*/ formatter_of_buffer(b); function k$0(acc){ /*<>*/ strput_acc(ppf, acc); - /*<>*/ return /*<>*/ caml_call1 - (k, flush_buffer_formatter(b, ppf)); - /*<>*/ } - /*<>*/ return /*<>*/ caml_call3 - (CamlinternalFormat[7], k$0, 0, fmt); + /*<>*/ return /*<>*/ caml_call1 + (k, /*<>*/ flush_buffer_formatter(b, ppf)) /*<>*/ ; + } + /*<>*/ return caml_call3 + (CamlinternalFormat[7], k$0, 0, fmt) /*<>*/ ; } function sprintf(fmt){ - /*<>*/ return ksprintf(id, fmt); - /*<>*/ } + /*<>*/ return ksprintf(id, fmt) /*<>*/ ; + } function kasprintf(k, param){ - /*<>*/ var - fmt = param[1], - /*<>*/ b = pp_make_buffer(0), - /*<>*/ ppf = formatter_of_buffer(b); + var + fmt = /*<>*/ param[1], + b = /*<>*/ pp_make_buffer(0), + ppf = /*<>*/ formatter_of_buffer(b); function k$0(acc){ /*<>*/ output_acc(ppf, acc); - /*<>*/ return /*<>*/ caml_call1 - (k, flush_buffer_formatter(b, ppf)); - /*<>*/ } - /*<>*/ return /*<>*/ caml_call3 - (CamlinternalFormat[7], k$0, 0, fmt); + /*<>*/ return /*<>*/ caml_call1 + (k, /*<>*/ flush_buffer_formatter(b, ppf)) /*<>*/ ; + } + /*<>*/ return caml_call3 + (CamlinternalFormat[7], k$0, 0, fmt) /*<>*/ ; } function asprintf(fmt){ - /*<>*/ return kasprintf(id, fmt); - /*<>*/ } + /*<>*/ return kasprintf(id, fmt) /*<>*/ ; + } function flush_standard_formatters(param){ - /*<>*/ pp_print_flush + /*<>*/ /*<>*/ pp_print_flush ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], std_formatter_key), 0); - /*<>*/ return pp_print_flush + /*<>*/ return /*<>*/ pp_print_flush ( /*<>*/ caml_call1 (Stdlib_Domain[10][2], err_formatter_key), - 0); - /*<>*/ } - /*<>*/ /*<>*/ caml_call1 + 0) /*<>*/ ; + } + /*<>*/ caml_call1 (Stdlib[100], flush_standard_formatters); - /*<>*/ /*<>*/ caml_call1 + /*<>*/ caml_call1 (Stdlib_Domain[5], function(param){ /*<>*/ flush_standard_formatters(0); - /*<>*/ var - /*<>*/ fs = - pp_get_formatter_out_functions(std_formatter, 0), - _h_ = Stdlib[39]; + var + fs = + /*<>*/ pp_get_formatter_out_functions + (std_formatter, 0), + _h_ = /*<>*/ Stdlib[39]; /*<>*/ pp_set_formatter_out_functions (std_formatter, [0, function(_o_, _p_, _q_){ - /*<>*/ return buffered_out_string(std_buf_key, _o_, _p_, _q_); + /*<>*/ return buffered_out_string + (std_buf_key, _o_, _p_, _q_); }, function(_n_){ - /*<>*/ return buffered_out_flush(_h_, std_buf_key, _n_); + /*<>*/ return buffered_out_flush + (_h_, std_buf_key, _n_); }, fs[3], fs[4], fs[5]]); - /*<>*/ var - /*<>*/ fs$0 = - pp_get_formatter_out_functions(err_formatter, 0), - _i_ = Stdlib[40]; - /*<>*/ return pp_set_formatter_out_functions + var + fs$0 = + /*<>*/ pp_get_formatter_out_functions + (err_formatter, 0), + _i_ = /*<>*/ Stdlib[40]; + /*<>*/ return pp_set_formatter_out_functions (err_formatter, [0, function(_k_, _l_, _m_){ - /*<>*/ return buffered_out_string + /*<>*/ return buffered_out_string (err_buf_key, _k_, _l_, _m_); }, function(_j_){ - /*<>*/ return buffered_out_flush(_i_, err_buf_key, _j_); + /*<>*/ return buffered_out_flush + (_i_, err_buf_key, _j_); }, fs$0[3], fs$0[4], - fs$0[5]]); - /*<>*/ }); + fs$0[5]]) /*<>*/ ; + }); var Stdlib_Format = - [0, + /*<>*/ [0, pp_open_box, open_box, pp_close_box, @@ -29130,22 +29496,22 @@ caml_trampoline = runtime.caml_trampoline, caml_trampoline_return = runtime.caml_trampoline_return, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); @@ -29181,79 +29547,77 @@ cst_unnamed_Stdlib_input_chann = "unnamed Stdlib input channel"; function next_char(ib){ /*<>*/ try{ - /*<>*/ /*<>*/ var - c = /*<>*/ caml_call1(ib[7], 0); - ib[2] = c; - ib[3] = 1; - ib[4] = ib[4] + 1 | 0; - if(10 === c) ib[5] = ib[5] + 1 | 0; - /*<>*/ return c; + var c = /*<>*/ caml_call1(ib[7], 0); + /*<>*/ ib[2] = c; + /*<>*/ ib[3] = 1; + /*<>*/ ib[4] = ib[4] + 1 | 0; + /*<>*/ if(10 === c) + /*<>*/ ib[5] = ib[5] + 1 | 0; + return c; } catch(_aY_){ - var _aX_ = caml_wrap_exception(_aY_); + var _aX_ = /*<>*/ caml_wrap_exception(_aY_); if(_aX_ !== Stdlib[12]) throw caml_maybe_attach_backtrace(_aX_, 0); - ib[2] = null_char; - ib[3] = 0; - ib[1] = 1; + /*<>*/ ib[2] = null_char; + /*<>*/ ib[3] = 0; + /*<>*/ ib[1] = 1; /*<>*/ return null_char; } /*<>*/ } function peek_char(ib){ - /*<>*/ return ib[3] ? ib[2] : next_char(ib); - /*<>*/ } + /*<>*/ return ib[3] + ? ib[2] + : /*<>*/ next_char(ib) /*<>*/ ; + } function checked_peek_char(ib){ - /*<>*/ /*<>*/ var c = peek_char(ib); - if(ib[1]) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Stdlib[12], 1); + var c = /*<>*/ peek_char(ib); + /*<>*/ if(ib[1]) + /*<>*/ throw caml_maybe_attach_backtrace(Stdlib[12], 1); /*<>*/ return c; /*<>*/ } function end_of_input(ib){ - /*<>*/ peek_char(ib); - return ib[1]; + /*<>*/ peek_char(ib); + /*<>*/ return ib[1]; /*<>*/ } function beginning_of_input(ib){ /*<>*/ return 0 === ib[4] ? 1 : 0; /*<>*/ } function name_of_input(ib){ - /*<>*/ var match = ib[9]; + var match = /*<>*/ ib[9]; if(typeof match === "number") - return 0 === match ? cst_unnamed_function : cst_unnamed_character_string; - if(0 === match[0]) + return 0 === match ? cst_unnamed_function : cst_unnamed_character_string /*<>*/ ; + /*<>*/ if(0 === match[0]) /*<>*/ return cst_unnamed_Stdlib_input_chann; - var fname = match[1]; + var fname = /*<>*/ match[1]; /*<>*/ return fname; /*<>*/ } function char_count(ib){ - /*<>*/ return ib[3] ? ib[4] - 1 | 0 : ib[4]; - /*<>*/ } + /*<>*/ return ib[3] ? ib[4] - 1 | 0 : ib[4] /*<>*/ ; + } function invalidate_current_char(ib){ /*<>*/ ib[3] = 0; return 0; /*<>*/ } function token_string(ib){ - /*<>*/ var - token_buffer = ib[8], - /*<>*/ tok = - /*<>*/ caml_call1(Stdlib_Buffer[2], token_buffer); - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Buffer[8], token_buffer); - ib[6] = ib[6] + 1 | 0; + var + token_buffer = /*<>*/ ib[8], + tok = /*<>*/ caml_call1(Stdlib_Buffer[2], token_buffer); + /*<>*/ caml_call1(Stdlib_Buffer[8], token_buffer); + /*<>*/ ib[6] = ib[6] + 1 | 0; /*<>*/ return tok; /*<>*/ } function ignore_char(width, ib){ - /*<>*/ var width$0 = width - 1 | 0; + var width$0 = /*<>*/ width - 1 | 0; /*<>*/ invalidate_current_char(ib); - /*<>*/ return width$0; + /*<>*/ return width$0; /*<>*/ } function store_char(width, ib, c){ - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], ib[8], c); - /*<>*/ return ignore_char(width, ib); - /*<>*/ } - var default_token_buffer_size = 1024; + /*<>*/ caml_call2(Stdlib_Buffer[12], ib[8], c); + /*<>*/ return ignore_char(width, ib) /*<>*/ ; + } + var default_token_buffer_size = /*<>*/ 1024; function create(iname, next){ - /*<>*/ return [0, + /*<>*/ return [0, 0, null_char, 0, @@ -29261,102 +29625,95 @@ 0, 0, next, - /*<>*/ caml_call1 - (Stdlib_Buffer[1], default_token_buffer_size), - iname]; + caml_call1(Stdlib_Buffer[1], default_token_buffer_size), + iname] /*<>*/ ; /*<>*/ } function from_string(s){ - /*<>*/ var - /*<>*/ i = [0, 0], - /*<>*/ len = - /*<>*/ caml_ml_string_length(s); + var + i = /*<>*/ [0, 0], + len = /*<>*/ caml_ml_string_length(s); function next(param){ /*<>*/ if(len <= i[1]) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[12], 1); - /*<>*/ /*<>*/ var - c = /*<>*/ caml_string_get(s, i[1]); + var c = /*<>*/ caml_string_get(s, i[1]); /*<>*/ i[1]++; /*<>*/ return c; /*<>*/ } - /*<>*/ return create(1, next); - /*<>*/ } - var _a_ = 0; - /*<>*/ function from_function(_aW_){ - /*<>*/ return create(_a_, _aW_); + /*<>*/ return create(1, next) /*<>*/ ; } - /*<>*/ var len = 1024; + var _a_ = /*<>*/ 0; + function from_function(_aW_){return create(_a_, _aW_);} + var len = /*<>*/ 1024; function scan_close_at_end(ic){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib[93], ic); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Stdlib[12], 1); + /*<>*/ caml_call1(Stdlib[93], ic); + /*<>*/ throw caml_maybe_attach_backtrace(Stdlib[12], 1); /*<>*/ } function scan_raise_at_end(ic){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (Stdlib[12], 1); + /*<>*/ throw caml_maybe_attach_backtrace(Stdlib[12], 1); /*<>*/ } function from_ic(scan_close_ic, iname, ic){ - /*<>*/ var - /*<>*/ buf = - /*<>*/ runtime.caml_create_bytes(1024), - /*<>*/ i = [0, 0], - /*<>*/ lim = [0, 0], - /*<>*/ eof = [0, 0]; + var + buf = /*<>*/ runtime.caml_create_bytes(1024), + i = /*<>*/ [0, 0], + lim = /*<>*/ [0, 0], + eof = /*<>*/ [0, 0]; function next(param){ /*<>*/ if(i[1] < lim[1]){ - /*<>*/ /*<>*/ var - c = /*<>*/ caml_bytes_get(buf, i[1]); + var c = /*<>*/ caml_bytes_get(buf, i[1]); /*<>*/ i[1]++; /*<>*/ return c; } - if(eof[1]) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(eof[1]) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[12], 1); - lim[1] = /*<>*/ caml_call4(Stdlib[84], ic, buf, 0, len); - return 0 === lim[1] - ? (eof[1] = 1, caml_call1(scan_close_ic, ic)) - : (i[1] = 1, /*<>*/ caml_bytes_get(buf, 0)); - /*<>*/ } - /*<>*/ return create(iname, next); - /*<>*/ } - /*<>*/ /*<>*/ var - stdin = from_ic(scan_raise_at_end, [1, cst, Stdlib[38]], Stdlib[38]); + /*<>*/ lim[1] = caml_call4(Stdlib[84], ic, buf, 0, len); + /*<>*/ return 0 === lim[1] + ? (eof + [1] + = 1, + /*<>*/ caml_call1(scan_close_ic, ic)) + : (i[1] = 1, /*<>*/ caml_bytes_get(buf, 0)) /*<>*/ ; + } + /*<>*/ return create(iname, next) /*<>*/ ; + } + var + stdin = + /*<>*/ from_ic + (scan_raise_at_end, [1, cst, Stdlib[38]], Stdlib[38]); function open_in_file(open_in, fname){ /*<>*/ if(fname === cst$6) - /*<>*/ return stdin; - /*<>*/ /*<>*/ var - ic = /*<>*/ caml_call1(open_in, fname); - return from_ic(scan_close_at_end, [1, fname, ic], ic); - /*<>*/ } - var _b_ = Stdlib[79]; - /*<>*/ function open_in(_aV_){ - /*<>*/ return open_in_file(_b_, _aV_); - } - /*<>*/ var _c_ = Stdlib[80]; - /*<>*/ function open_in_bin(_aU_){ - /*<>*/ return open_in_file(_c_, _aU_); + /*<>*/ return stdin; + var ic = /*<>*/ caml_call1(open_in, fname); + /*<>*/ return from_ic + (scan_close_at_end, [1, fname, ic], ic) /*<>*/ ; + } + var _b_ = /*<>*/ Stdlib[79]; + function open_in(_aV_){return open_in_file(_b_, _aV_);} + var _c_ = /*<>*/ Stdlib[80]; + function open_in_bin(_aU_){ + /*<>*/ return open_in_file(_c_, _aU_); } function from_channel(ic){ - /*<>*/ return from_ic(scan_raise_at_end, [0, ic], ic); - /*<>*/ } + /*<>*/ return from_ic(scan_raise_at_end, [0, ic], ic) /*<>*/ ; + } function close_in(ib){ - /*<>*/ var match = ib[9]; + var match = /*<>*/ ib[9]; if(typeof match === "number") /*<>*/ return 0; - if(0 === match[0]){ + /*<>*/ if(0 === match[0]){ var ic = match[1]; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[93], ic); - } - var ic$0 = match[2]; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[93], ic$0); - /*<>*/ } - /*<>*/ var - /*<>*/ Scan_failure = - [248, "Stdlib.Scanf.Scan_failure", runtime.caml_fresh_oo_id(0)], + /*<>*/ return caml_call1(Stdlib[93], ic) /*<>*/ ; + } + var ic$0 = /*<>*/ match[2]; + /*<>*/ return caml_call1(Stdlib[93], ic$0) /*<>*/ ; + } + var + Scan_failure = + /*<>*/ [248, + "Stdlib.Scanf.Scan_failure", + runtime.caml_fresh_oo_id(0)], _d_ = - [0, + /*<>*/ [0, [11, "illegal escape character ", [1, 0]], "illegal escape character %C"], _e_ = @@ -29440,43 +29797,45 @@ cst_in_format = ' in format "', _t_ = [0, [3, 0, [10, 0]], "%S%!"]; function bad_input(s){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Scan_failure, s], 1); /*<>*/ } function bad_input_escape(c){ - /*<>*/ return bad_input - ( /*<>*/ caml_call2(Stdlib_Printf[4], _d_, c)); - /*<>*/ } + /*<>*/ return /*<>*/ bad_input + ( /*<>*/ caml_call2(Stdlib_Printf[4], _d_, c)) /*<>*/ ; + } function bad_token_length(message){ - /*<>*/ return bad_input + /*<>*/ return /*<>*/ bad_input ( /*<>*/ caml_call2 - (Stdlib_Printf[4], _e_, message)); - /*<>*/ } + (Stdlib_Printf[4], _e_, message)) /*<>*/ ; + } function bad_hex_float(param){ - /*<>*/ return bad_input(cst_not_a_valid_float_in_hexad); - /*<>*/ } + /*<>*/ return bad_input(cst_not_a_valid_float_in_hexad) /*<>*/ ; + } function character_mismatch(c, ci){ - /*<>*/ return bad_input - ( /*<>*/ caml_call3(Stdlib_Printf[4], _g_, c, ci)); - /*<>*/ } + /*<>*/ return /*<>*/ bad_input + ( /*<>*/ caml_call3(Stdlib_Printf[4], _g_, c, ci)) /*<>*/ ; + } function check_char(ib, c$0){ /*<>*/ if(10 === c$0){ - /*<>*/ /*<>*/ var - ci = checked_peek_char(ib); + var ci = /*<>*/ checked_peek_char(ib); /*<>*/ return 10 === ci - ? invalidate_current_char(ib) + ? /*<>*/ invalidate_current_char(ib) : 13 === ci - ? (invalidate_current_char(ib), check_this_char(ib, 10)) - : character_mismatch(10, ci); - } - if(32 !== c$0) /*<>*/ return check_this_char(ib, c$0); - /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ c = peek_char(ib), - /*<>*/ _aS_ = 1 - ib[1]; - if(! _aS_) /*<>*/ return _aS_; - /*<>*/ /*<>*/ var _aT_ = c - 9 | 0; + ? ( /*<>*/ invalidate_current_char + (ib), + /*<>*/ check_this_char(ib, 10)) + : /*<>*/ character_mismatch(10, ci) /*<>*/ ; + } + /*<>*/ if(32 !== c$0) + /*<>*/ return check_this_char(ib, c$0) /*<>*/ ; + /*<>*/ for(;;){ + var + c = /*<>*/ peek_char(ib), + _aS_ = /*<>*/ 1 - ib[1]; + if(! _aS_) return _aS_; + var _aT_ = /*<>*/ c - 9 | 0; a: { if(4 < _aT_ >>> 0){ @@ -29489,27 +29848,26 @@ } /*<>*/ } function check_this_char(ib, c){ - /*<>*/ /*<>*/ var - ci = checked_peek_char(ib); - return ci === c ? invalidate_current_char(ib) : character_mismatch(c, ci); - /*<>*/ } + var ci = /*<>*/ checked_peek_char(ib); + /*<>*/ return ci === c + ? /*<>*/ invalidate_current_char(ib) + : /*<>*/ character_mismatch(c, ci) /*<>*/ ; + } function token_char(ib){ - /*<>*/ return /*<>*/ caml_string_get - (token_string(ib), 0); - /*<>*/ } + /*<>*/ return caml_string_get(token_string(ib), 0) /*<>*/ ; + } function token_bool(ib){ - /*<>*/ /*<>*/ var s = token_string(ib); - return s !== "false" + var s = /*<>*/ token_string(ib); + /*<>*/ return s !== "false" ? s !== "true" - ? bad_input + ? /*<>*/ bad_input ( /*<>*/ caml_call2(Stdlib_Printf[4], _h_, s)) : 1 - : 0; - /*<>*/ } + : 0 /*<>*/ ; + } function integer_conversion_of_char(param){ - /*<>*/ /*<>*/ var - switcher = param - 88 | 0; + var switcher = /*<>*/ param - 88 | 0; if(32 >= switcher >>> 0) switch(switcher){ case 10: @@ -29526,64 +29884,72 @@ case 32: /*<>*/ return 5; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _i_], 1); /*<>*/ } function token_int_literal(conv, ib){ /*<>*/ switch(conv){ case 0: - /*<>*/ var - /*<>*/ _aO_ = token_string(ib), - tok = /*<>*/ caml_call2(Stdlib[28], cst_0b, _aO_); + var + _aO_ = /*<>*/ token_string(ib), + tok = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst_0b, _aO_); break; case 3: - /*<>*/ var - /*<>*/ _aP_ = token_string(ib), - tok = /*<>*/ caml_call2(Stdlib[28], cst_0o, _aP_); + var + _aP_ = /*<>*/ token_string(ib), + tok = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst_0o, _aP_); break; case 4: - /*<>*/ var - /*<>*/ _aQ_ = token_string(ib), - tok = /*<>*/ caml_call2(Stdlib[28], cst_0u, _aQ_); + var + _aQ_ = /*<>*/ token_string(ib), + tok = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst_0u, _aQ_); break; case 5: - /*<>*/ var - /*<>*/ _aR_ = token_string(ib), - tok = /*<>*/ caml_call2(Stdlib[28], cst_0x, _aR_); + var + _aR_ = /*<>*/ token_string(ib), + tok = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst_0x, _aR_); break; - default: var tok = token_string(ib); + default: + var + tok = + /*<>*/ /*<>*/ token_string(ib); } - /*<>*/ /*<>*/ var - l = /*<>*/ caml_ml_string_length(tok); - /*<>*/ if + var l = /*<>*/ caml_ml_string_length(tok); + /*<>*/ if (0 !== l && 43 === /*<>*/ caml_string_get(tok, 0)) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_String[16], tok, 1, l - 1 | 0); + /*<>*/ return caml_call3 + (Stdlib_String[16], tok, 1, l - 1 | 0) /*<>*/ ; /*<>*/ return tok; /*<>*/ } function token_float(ib){ - /*<>*/ return /*<>*/ runtime.caml_float_of_string - (token_string(ib)); - /*<>*/ } + /*<>*/ return /*<>*/ runtime.caml_float_of_string + ( /*<>*/ token_string(ib)) /*<>*/ ; + } function scan_decimal_digit_star(width, ib){ - /*<>*/ var width$0 = width; - /*<>*/ for(;;){ + var width$0 = /*<>*/ width; + for(;;){ if(0 === width$0) /*<>*/ return width$0; - /*<>*/ /*<>*/ var c = peek_char(ib); - /*<>*/ if(ib[1]) + var c = /*<>*/ peek_char(ib); + /*<>*/ if(ib[1]) /*<>*/ return width$0; - if(58 <= c){ + /*<>*/ if(58 <= c){ if(95 === c){ - /*<>*/ /*<>*/ var - width$1 = ignore_char(width$0, ib); - width$0 = width$1; + var width$1 = /*<>*/ ignore_char(width$0, ib); + /*<>*/ width$0 = width$1; continue; } } else if(48 <= c){ - /*<>*/ /*<>*/ var - width$2 = store_char(width$0, ib, c); - width$0 = width$2; + var width$2 = /*<>*/ store_char(width$0, ib, c); + /*<>*/ width$0 = width$2; continue; } /*<>*/ return width$0; @@ -29591,56 +29957,50 @@ /*<>*/ } function scan_decimal_digit_plus(width, ib){ /*<>*/ if(0 === width) - /*<>*/ return bad_token_length(cst_decimal_digits); - /*<>*/ /*<>*/ var - c = checked_peek_char(ib); - if(9 < c - 48 >>> 0) - /*<>*/ return bad_input - ( /*<>*/ caml_call2(Stdlib_Printf[4], _j_, c)); - /*<>*/ /*<>*/ var - width$0 = store_char(width, ib, c); - /*<>*/ return scan_decimal_digit_star(width$0, ib); - /*<>*/ } + /*<>*/ return bad_token_length(cst_decimal_digits) /*<>*/ ; + var c = /*<>*/ checked_peek_char(ib); + /*<>*/ if(9 < c - 48 >>> 0) + /*<>*/ return /*<>*/ bad_input + ( /*<>*/ caml_call2(Stdlib_Printf[4], _j_, c)) /*<>*/ ; + var width$0 = /*<>*/ store_char(width, ib, c); + /*<>*/ return scan_decimal_digit_star(width$0, ib) /*<>*/ ; + } function scan_digit_plus(basis, digitp, width$2, ib){ /*<>*/ if(0 === width$2) - /*<>*/ return bad_token_length(cst_digits); - /*<>*/ /*<>*/ var - c$0 = checked_peek_char(ib); - /*<>*/ if - (! /*<>*/ caml_call1(digitp, c$0)) - /*<>*/ return bad_input + /*<>*/ return bad_token_length(cst_digits) /*<>*/ ; + var c$0 = /*<>*/ checked_peek_char(ib); + /*<>*/ if(! caml_call1(digitp, c$0)) + /*<>*/ return /*<>*/ bad_input ( /*<>*/ caml_call3 - (Stdlib_Printf[4], _k_, c$0, basis)); - /*<>*/ var - /*<>*/ width$3 = store_char(width$2, ib, c$0), - width = width$3; - /*<>*/ for(;;){ - if(0 === width) /*<>*/ return width; - /*<>*/ /*<>*/ var c = peek_char(ib); - /*<>*/ if(ib[1]) /*<>*/ return width; - /*<>*/ if - ( /*<>*/ caml_call1(digitp, c)){ - /*<>*/ /*<>*/ var - width$0 = store_char(width, ib, c); - width = width$0; + (Stdlib_Printf[4], _k_, c$0, basis)) /*<>*/ ; + var + width$3 = /*<>*/ store_char(width$2, ib, c$0), + width = /*<>*/ width$3; + for(;;){ + /*<>*/ if(0 === width) + /*<>*/ return width; + var c = /*<>*/ peek_char(ib); + /*<>*/ if(ib[1]) /*<>*/ return width; + /*<>*/ if(caml_call1(digitp, c)){ + var width$0 = /*<>*/ store_char(width, ib, c); + /*<>*/ width = width$0; } else{ - if(95 !== c) /*<>*/ return width; - /*<>*/ /*<>*/ var - width$1 = ignore_char(width, ib); - width = width$1; + /*<>*/ if(95 !== c) + /*<>*/ return width; + var width$1 = /*<>*/ ignore_char(width, ib); + /*<>*/ width = width$1; } } /*<>*/ } function is_binary_digit(param){ - /*<>*/ return 1 < param - 48 >>> 0 ? 0 : 1; - /*<>*/ } + /*<>*/ return 1 < param - 48 >>> 0 ? 0 : 1 /*<>*/ ; + } function is_octal_digit(param){ - /*<>*/ return 7 < param - 48 >>> 0 ? 0 : 1; - /*<>*/ } + /*<>*/ return 7 < param - 48 >>> 0 ? 0 : 1 /*<>*/ ; + } function is_hexa_digit(param){ - /*<>*/ /*<>*/ var - _aN_ = param - 48 | 0; + var _aN_ = /*<>*/ param - 48 | 0; a: { if(22 < _aN_ >>> 0){ @@ -29652,263 +30012,272 @@ /*<>*/ return 0; /*<>*/ } function scan_sign(width, ib){ - /*<>*/ var - /*<>*/ c = checked_peek_char(ib), - /*<>*/ switcher = c - 43 | 0; + var + c = /*<>*/ checked_peek_char(ib), + switcher = /*<>*/ c - 43 | 0; if(2 >= switcher >>> 0) switch(switcher){ case 0: - /*<>*/ return store_char(width, ib, c); + /*<>*/ return store_char(width, ib, c) /*<>*/ ; case 1: break; - default: /*<>*/ return store_char(width, ib, c); + default: + /*<>*/ return store_char(width, ib, c) /*<>*/ ; } /*<>*/ return width; /*<>*/ } function scan_optionally_signed_decimal(width, ib){ - /*<>*/ /*<>*/ var - width$0 = scan_sign(width, ib); - /*<>*/ return scan_decimal_digit_plus(width$0, ib); - /*<>*/ } + var width$0 = /*<>*/ scan_sign(width, ib); + /*<>*/ return scan_decimal_digit_plus(width$0, ib) /*<>*/ ; + } function scan_int_conversion(conv, width$1, ib){ /*<>*/ switch(conv){ case 0: - return scan_digit_plus(cst_binary, is_binary_digit, width$1, ib); + /*<>*/ return scan_digit_plus + (cst_binary, is_binary_digit, width$1, ib) /*<>*/ ; case 1: /*<>*/ return scan_optionally_signed_decimal - (width$1, ib); + (width$1, ib) /*<>*/ ; case 2: - /*<>*/ var - /*<>*/ width$0 = scan_sign(width$1, ib), - /*<>*/ c = checked_peek_char(ib); - if(48 !== c) - /*<>*/ return scan_decimal_digit_plus(width$0, ib); - /*<>*/ /*<>*/ var - width = store_char(width$0, ib, c); + var + width$0 = /*<>*/ scan_sign(width$1, ib), + c = /*<>*/ checked_peek_char(ib); + /*<>*/ if(48 !== c) + /*<>*/ return scan_decimal_digit_plus(width$0, ib) /*<>*/ ; + var width = /*<>*/ store_char(width$0, ib, c); /*<>*/ if(0 === width) /*<>*/ return width; - /*<>*/ /*<>*/ var - c$0 = peek_char(ib); - /*<>*/ if(ib[1]) + var c$0 = /*<>*/ peek_char(ib); + /*<>*/ if(ib[1]) /*<>*/ return width; a: { - if(99 <= c$0){ + /*<>*/ if(99 <= c$0){ if(111 === c$0) - return scan_digit_plus - (cst_octal, is_octal_digit, store_char(width, ib, c$0), ib); - if(120 === c$0) break a; + /*<>*/ return /*<>*/ scan_digit_plus + (cst_octal, + is_octal_digit, + /*<>*/ store_char(width, ib, c$0), + ib) /*<>*/ ; + /*<>*/ if(120 === c$0) break a; } else{ if(88 === c$0) break a; if(98 <= c$0) - return scan_digit_plus + /*<>*/ return /*<>*/ scan_digit_plus (cst_binary, is_binary_digit, - store_char(width, ib, c$0), - ib); + /*<>*/ store_char(width, ib, c$0), + ib) /*<>*/ ; } - /*<>*/ return scan_decimal_digit_star(width, ib); + /*<>*/ return scan_decimal_digit_star(width, ib) /*<>*/ ; } - return scan_digit_plus + /*<>*/ return /*<>*/ scan_digit_plus (cst_hexadecimal, is_hexa_digit, - store_char(width, ib, c$0), - ib); + /*<>*/ store_char(width, ib, c$0), + ib) /*<>*/ ; case 3: - return scan_digit_plus(cst_octal, is_octal_digit, width$1, ib); + /*<>*/ return scan_digit_plus + (cst_octal, is_octal_digit, width$1, ib) /*<>*/ ; case 4: - /*<>*/ return scan_decimal_digit_plus(width$1, ib); + /*<>*/ return scan_decimal_digit_plus(width$1, ib) /*<>*/ ; default: - return scan_digit_plus(cst_hexadecimal, is_hexa_digit, width$1, ib); + /*<>*/ return scan_digit_plus + (cst_hexadecimal, is_hexa_digit, width$1, ib) /*<>*/ ; } - /*<>*/ } + } function scan_fractional_part(width, ib){ /*<>*/ if(0 === width) /*<>*/ return width; - /*<>*/ /*<>*/ var c = peek_char(ib); - /*<>*/ return ib[1] + var c = /*<>*/ peek_char(ib); + /*<>*/ return ib[1] ? width : 9 < c - 48 >>> 0 ? width - : scan_decimal_digit_star(store_char(width, ib, c), ib); - /*<>*/ } + : /*<>*/ scan_decimal_digit_star + ( /*<>*/ store_char(width, ib, c), ib) /*<>*/ ; + } function scan_exponent_part(width, ib){ /*<>*/ if(0 === width) /*<>*/ return width; - /*<>*/ /*<>*/ var c = peek_char(ib); - /*<>*/ if(ib[1]) /*<>*/ return width; - if(69 !== c && 101 !== c) /*<>*/ return width; - /*<>*/ return scan_optionally_signed_decimal - (store_char(width, ib, c), ib); - /*<>*/ } + var c = /*<>*/ peek_char(ib); + /*<>*/ if(ib[1]) /*<>*/ return width; + /*<>*/ if(69 !== c && 101 !== c) + /*<>*/ return width; + /*<>*/ return /*<>*/ scan_optionally_signed_decimal + ( /*<>*/ store_char(width, ib, c), ib) /*<>*/ ; + } function scan_float(width$1, precision, ib){ - /*<>*/ var - /*<>*/ width = scan_sign(width$1, ib), - /*<>*/ width$0 = scan_decimal_digit_star(width, ib); + var + width = /*<>*/ scan_sign(width$1, ib), + width$0 = /*<>*/ scan_decimal_digit_star(width, ib); /*<>*/ if(0 === width$0) /*<>*/ return [0, width$0, precision]; - /*<>*/ /*<>*/ var c = peek_char(ib); - /*<>*/ if(ib[1]) + var c = /*<>*/ peek_char(ib); + /*<>*/ if(ib[1]) /*<>*/ return [0, width$0, precision]; - if(46 !== c) + /*<>*/ if(46 !== c) /*<>*/ return [0, scan_exponent_part(width$0, ib), - precision]; - /*<>*/ var - /*<>*/ width$2 = store_char(width$0, ib, c), - /*<>*/ precision$0 = + precision] /*<>*/ ; + var + width$2 = /*<>*/ store_char(width$0, ib, c), + precision$0 = /*<>*/ caml_call2(Stdlib_Int[10], width$2, precision), width$3 = - width$2 - (precision$0 - scan_fractional_part(precision$0, ib) | 0) | 0; + /*<>*/ width$2 + - (precision$0 - scan_fractional_part(precision$0, ib) | 0) + | 0; /*<>*/ return [0, scan_exponent_part(width$3, ib), - precision$0]; + precision$0] /*<>*/ ; /*<>*/ } function check_case_insensitive_string(width, ib, error, str){ - /*<>*/ function lowercase(c){ + function lowercase(c){ /*<>*/ return 25 < c - 65 >>> 0 ? c - : caml_call1(Stdlib[29], (c - 65 | 0) + 97 | 0); - /*<>*/ } - /*<>*/ var - /*<>*/ len = - /*<>*/ caml_ml_string_length(str), - /*<>*/ width$0 = [0, width], - /*<>*/ _aK_ = len - 1 | 0, - /*<>*/ _aJ_ = 0; + : /*<>*/ caml_call1 + (Stdlib[29], (c - 65 | 0) + 97 | 0) /*<>*/ ; + } + var + len = /*<>*/ caml_ml_string_length(str), + width$0 = /*<>*/ [0, width], + _aK_ = /*<>*/ len - 1 | 0, + _aJ_ = 0; if(_aK_ >= 0){ var i = _aJ_; for(;;){ - /*<>*/ var - /*<>*/ c = peek_char(ib), - /*<>*/ _aL_ = - lowercase( /*<>*/ caml_string_get(str, i)); - if(lowercase(c) !== _aL_) - /*<>*/ /*<>*/ caml_call1(error, 0); - if(0 === width$0[1]) - /*<>*/ /*<>*/ caml_call1(error, 0); - width$0[1] = store_char(width$0[1], ib, c); - /*<>*/ /*<>*/ var _aM_ = i + 1 | 0; + var + c = /*<>*/ peek_char(ib), + _aL_ = + /*<>*/ /*<>*/ lowercase + ( /*<>*/ caml_string_get(str, i)); + /*<>*/ if(lowercase(c) !== _aL_) + /*<>*/ caml_call1(error, 0); + /*<>*/ if(0 === width$0[1]) + /*<>*/ caml_call1(error, 0); + /*<>*/ width$0[1] = store_char(width$0[1], ib, c); + var _aM_ = /*<>*/ i + 1 | 0; if(_aK_ === i) break; i = _aM_; } } - return width$0[1]; + /*<>*/ return width$0[1]; /*<>*/ } function scan_hex_float(width, precision, ib){ - /*<>*/ var - _aw_ = 0 === width ? 1 : 0, - _ax_ = _aw_ || end_of_input(ib); - /*<>*/ if(_ax_) + var + _aw_ = /*<>*/ 0 === width ? 1 : 0, + _ax_ = _aw_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_ax_) /*<>*/ bad_input(cst_not_a_valid_float_in_hexad); - /*<>*/ var - /*<>*/ width$0 = scan_sign(width, ib), - _ay_ = 0 === width$0 ? 1 : 0, - _az_ = _ay_ || end_of_input(ib); - /*<>*/ if(_az_) + var + width$0 = /*<>*/ scan_sign(width, ib), + _ay_ = /*<>*/ 0 === width$0 ? 1 : 0, + _az_ = _ay_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_az_) /*<>*/ bad_input(cst_not_a_valid_float_in_hexad); - /*<>*/ /*<>*/ var c = peek_char(ib); + var c = /*<>*/ peek_char(ib); a: { - if(78 <= c){ - /*<>*/ /*<>*/ var - switcher = c - 79 | 0; + /*<>*/ if(78 <= c){ + var switcher = c - 79 | 0; if(30 < switcher >>> 0){ if(32 <= switcher) break a; - /*<>*/ var - /*<>*/ width$1 = store_char(width$0, ib, c), - _aA_ = 0 === width$1 ? 1 : 0, - _aB_ = _aA_ || end_of_input(ib); - /*<>*/ if(_aB_) + var + width$1 = /*<>*/ store_char(width$0, ib, c), + _aA_ = /*<>*/ 0 === width$1 ? 1 : 0, + _aB_ = _aA_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_aB_) /*<>*/ bad_input(cst_not_a_valid_float_in_hexad); - /*<>*/ return check_case_insensitive_string - (width$1, ib, bad_hex_float, cst_an); + /*<>*/ return check_case_insensitive_string + (width$1, ib, bad_hex_float, cst_an) /*<>*/ ; } - if(26 !== switcher) break a; + /*<>*/ if(26 !== switcher) break a; } else{ if(48 === c){ - /*<>*/ var - /*<>*/ width$3 = store_char(width$0, ib, c), - _aE_ = 0 === width$3 ? 1 : 0, - _aF_ = _aE_ || end_of_input(ib); - /*<>*/ if(_aF_) + var + width$3 = /*<>*/ store_char(width$0, ib, c), + _aE_ = /*<>*/ 0 === width$3 ? 1 : 0, + _aF_ = _aE_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_aF_) /*<>*/ bad_input(cst_not_a_valid_float_in_hexad); - /*<>*/ /*<>*/ var + var width$4 = - check_case_insensitive_string(width$3, ib, bad_hex_float, cst_x); - /*<>*/ if(0 !== width$4 && ! end_of_input(ib)){ - /*<>*/ /*<>*/ var - _aG_ = peek_char(ib) - 46 | 0; + /*<>*/ check_case_insensitive_string + (width$3, ib, bad_hex_float, cst_x); + /*<>*/ if + (0 !== width$4 && ! /*<>*/ end_of_input(ib)){ + var _aG_ = /*<>*/ peek_char(ib) - 46 | 0; b: { c: { - if(34 < _aG_ >>> 0){ + /*<>*/ if(34 < _aG_ >>> 0){ if(66 === _aG_) break c; } else if(32 < _aG_ - 1 >>> 0) break c; var width$5 = - scan_digit_plus(cst_hexadecimal, is_hexa_digit, width$4, ib); + /*<>*/ /*<>*/ scan_digit_plus + (cst_hexadecimal, is_hexa_digit, width$4, ib); break b; } - var width$5 = width$4; + var width$5 = /*<>*/ width$4; } - /*<>*/ if(0 !== width$5 && ! end_of_input(ib)){ - /*<>*/ /*<>*/ var - c$0 = peek_char(ib); - if(46 === c$0){ - /*<>*/ /*<>*/ var - width$6 = store_char(width$5, ib, c$0); + /*<>*/ if + (0 !== width$5 && ! /*<>*/ end_of_input(ib)){ + var c$0 = /*<>*/ peek_char(ib); + /*<>*/ if(46 === c$0){ + var width$6 = /*<>*/ store_char(width$5, ib, c$0); b: { - /*<>*/ if(0 !== width$6 && ! end_of_input(ib)){ - /*<>*/ /*<>*/ var - match = peek_char(ib); + /*<>*/ if + (0 !== width$6 && ! /*<>*/ end_of_input(ib)){ + var match = /*<>*/ peek_char(ib); c: { - if(80 !== match && 112 !== match){ - /*<>*/ var - /*<>*/ precision$0 = + /*<>*/ if(80 !== match && 112 !== match){ + var + precision$0 = /*<>*/ caml_call2 (Stdlib_Int[10], width$6, precision), width$10 = - width$6 + /*<>*/ width$6 - (precision$0 - - scan_digit_plus + /*<>*/ scan_digit_plus (cst_hexadecimal, is_hexa_digit, precision$0, ib) | 0) | 0; break c; } - var width$10 = width$6; + var width$10 = /*<>*/ width$6; } - var width$7 = width$10; + var width$7 = /*<>*/ width$10; break b; } - var width$7 = width$6; + var width$7 = /*<>*/ width$6; } - var width$8 = width$7; + var width$8 = /*<>*/ width$7; } else - var width$8 = width$5; - /*<>*/ if(0 !== width$8 && ! end_of_input(ib)){ - /*<>*/ /*<>*/ var - c$1 = peek_char(ib); - if(80 !== c$1 && 112 !== c$1) + var width$8 = /*<>*/ width$5; + /*<>*/ if + (0 !== width$8 && ! /*<>*/ end_of_input(ib)){ + var c$1 = /*<>*/ peek_char(ib); + /*<>*/ if(80 !== c$1 && 112 !== c$1) /*<>*/ return width$8; - /*<>*/ var - /*<>*/ width$9 = store_char(width$8, ib, c$1), - _aH_ = 0 === width$9 ? 1 : 0, - _aI_ = _aH_ || end_of_input(ib); - /*<>*/ if(_aI_) + var + width$9 = /*<>*/ store_char(width$8, ib, c$1), + _aH_ = /*<>*/ 0 === width$9 ? 1 : 0, + _aI_ = _aH_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_aI_) /*<>*/ bad_input(cst_not_a_valid_float_in_hexad); - /*<>*/ return scan_optionally_signed_decimal - (width$9, ib); + /*<>*/ return scan_optionally_signed_decimal + (width$9, ib) /*<>*/ ; } /*<>*/ return width$8; } @@ -29916,261 +30285,269 @@ } /*<>*/ return width$4; } - if(73 !== c) break a; + /*<>*/ if(73 !== c) break a; } - /*<>*/ var - /*<>*/ width$2 = store_char(width$0, ib, c), - _aC_ = 0 === width$2 ? 1 : 0, - _aD_ = _aC_ || end_of_input(ib); - /*<>*/ if(_aD_) + var + width$2 = /*<>*/ store_char(width$0, ib, c), + _aC_ = /*<>*/ 0 === width$2 ? 1 : 0, + _aD_ = _aC_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_aD_) /*<>*/ bad_input(cst_not_a_valid_float_in_hexad); - /*<>*/ return check_case_insensitive_string - (width$2, ib, bad_hex_float, cst_nfinity); + /*<>*/ return check_case_insensitive_string + (width$2, ib, bad_hex_float, cst_nfinity) /*<>*/ ; } - /*<>*/ return bad_input(cst_not_a_valid_float_in_hexad); - /*<>*/ } + /*<>*/ return bad_input(cst_not_a_valid_float_in_hexad) /*<>*/ ; + } function scan_caml_float_rest(width, precision, ib){ - /*<>*/ var - _as_ = 0 === width ? 1 : 0, - _at_ = _as_ || end_of_input(ib); - /*<>*/ if(_at_) + var + _as_ = /*<>*/ 0 === width ? 1 : 0, + _at_ = _as_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_at_) /*<>*/ bad_input(cst_no_dot_or_exponent_part_fo); - /*<>*/ var - /*<>*/ width$0 = scan_decimal_digit_star(width, ib), - _au_ = 0 === width$0 ? 1 : 0, - _av_ = _au_ || end_of_input(ib); - /*<>*/ if(_av_) + var + width$0 = /*<>*/ scan_decimal_digit_star(width, ib), + _au_ = /*<>*/ 0 === width$0 ? 1 : 0, + _av_ = _au_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_av_) /*<>*/ bad_input(cst_no_dot_or_exponent_part_fo); - /*<>*/ var - /*<>*/ c = peek_char(ib), - /*<>*/ switcher = c - 69 | 0; + var + c = /*<>*/ peek_char(ib), + switcher = /*<>*/ c - 69 | 0; if(32 < switcher >>> 0){ if(-23 === switcher){ - /*<>*/ var - /*<>*/ width$1 = store_char(width$0, ib, c), - /*<>*/ precision$0 = + var + width$1 = /*<>*/ store_char(width$0, ib, c), + precision$0 = /*<>*/ caml_call2 (Stdlib_Int[10], width$1, precision), - /*<>*/ width_precision = - scan_fractional_part(precision$0, ib), - frac_width = precision$0 - width_precision | 0, - width$2 = width$1 - frac_width | 0; - /*<>*/ return scan_exponent_part(width$2, ib); + width_precision = + /*<>*/ scan_fractional_part(precision$0, ib), + frac_width = /*<>*/ precision$0 - width_precision | 0, + width$2 = /*<>*/ width$1 - frac_width | 0; + /*<>*/ return scan_exponent_part(width$2, ib) /*<>*/ ; } } else if(30 < switcher - 1 >>> 0) - /*<>*/ return scan_exponent_part(width$0, ib); - /*<>*/ return bad_input(cst_no_dot_or_exponent_part_fo); - /*<>*/ } + /*<>*/ return scan_exponent_part(width$0, ib) /*<>*/ ; + /*<>*/ return bad_input(cst_no_dot_or_exponent_part_fo) /*<>*/ ; + } function scan_caml_float(width, precision, ib){ - /*<>*/ var - _ae_ = 0 === width ? 1 : 0, - _af_ = _ae_ || end_of_input(ib); - /*<>*/ if(_af_) + var + _ae_ = /*<>*/ 0 === width ? 1 : 0, + _af_ = _ae_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_af_) /*<>*/ bad_input(cst_no_dot_or_exponent_part_fo); - /*<>*/ var - /*<>*/ width$0 = scan_sign(width, ib), - _ag_ = 0 === width$0 ? 1 : 0, - _ah_ = _ag_ || end_of_input(ib); - /*<>*/ if(_ah_) + var + width$0 = /*<>*/ scan_sign(width, ib), + _ag_ = /*<>*/ 0 === width$0 ? 1 : 0, + _ah_ = _ag_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_ah_) /*<>*/ bad_input(cst_no_dot_or_exponent_part_fo); - /*<>*/ /*<>*/ var c = peek_char(ib); - if(49 <= c){ + var c = /*<>*/ peek_char(ib); + /*<>*/ if(49 <= c){ if(58 > c){ - /*<>*/ var - /*<>*/ width$1 = store_char(width$0, ib, c), - _ai_ = 0 === width$1 ? 1 : 0, - _aj_ = _ai_ || end_of_input(ib); - /*<>*/ if(_aj_) + var + width$1 = /*<>*/ store_char(width$0, ib, c), + _ai_ = /*<>*/ 0 === width$1 ? 1 : 0, + _aj_ = _ai_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_aj_) /*<>*/ bad_input(cst_no_dot_or_exponent_part_fo); - /*<>*/ return scan_caml_float_rest - (width$1, precision, ib); + /*<>*/ return scan_caml_float_rest + (width$1, precision, ib) /*<>*/ ; } } else if(48 <= c){ - /*<>*/ var - /*<>*/ width$2 = store_char(width$0, ib, c), - _ak_ = 0 === width$2 ? 1 : 0, - _al_ = _ak_ || end_of_input(ib); - /*<>*/ if(_al_) + var + width$2 = /*<>*/ store_char(width$0, ib, c), + _ak_ = /*<>*/ 0 === width$2 ? 1 : 0, + _al_ = _ak_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_al_) /*<>*/ bad_input(cst_no_dot_or_exponent_part_fo); - /*<>*/ /*<>*/ var - c$0 = peek_char(ib); - if(88 !== c$0 && 120 !== c$0) + var c$0 = /*<>*/ peek_char(ib); + /*<>*/ if(88 !== c$0 && 120 !== c$0) /*<>*/ return scan_caml_float_rest - (width$2, precision, ib); - /*<>*/ var - /*<>*/ width$3 = store_char(width$2, ib, c$0), - _am_ = 0 === width$3 ? 1 : 0, - _an_ = _am_ || end_of_input(ib); - /*<>*/ if(_an_) + (width$2, precision, ib) /*<>*/ ; + var + width$3 = /*<>*/ store_char(width$2, ib, c$0), + _am_ = /*<>*/ 0 === width$3 ? 1 : 0, + _an_ = _am_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_an_) /*<>*/ bad_input(cst_no_dot_or_exponent_part_fo); var - width$10 = scan_digit_plus(cst_hexadecimal, is_hexa_digit, width$3, ib), - _ao_ = 0 === width$10 ? 1 : 0, - _ap_ = _ao_ || end_of_input(ib); - /*<>*/ if(_ap_) + width$10 = + /*<>*/ scan_digit_plus + (cst_hexadecimal, is_hexa_digit, width$3, ib), + _ao_ = /*<>*/ 0 === width$10 ? 1 : 0, + _ap_ = _ao_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_ap_) /*<>*/ bad_input(cst_no_dot_or_exponent_part_fo); - /*<>*/ var - /*<>*/ c$1 = peek_char(ib), - /*<>*/ switcher = c$1 - 80 | 0; + var + c$1 = /*<>*/ peek_char(ib), + switcher = /*<>*/ c$1 - 80 | 0; a: { b: { if(32 < switcher >>> 0){ if(-34 === switcher){ - /*<>*/ /*<>*/ var - width$4 = store_char(width$10, ib, c$1); + var width$4 = /*<>*/ store_char(width$10, ib, c$1); c: { - /*<>*/ if(0 !== width$4 && ! end_of_input(ib)){ - /*<>*/ /*<>*/ var - match = peek_char(ib); + /*<>*/ if + (0 !== width$4 && ! /*<>*/ end_of_input(ib)){ + var match = /*<>*/ peek_char(ib); d: { - if(80 !== match && 112 !== match){ - /*<>*/ var - /*<>*/ precision$0 = + /*<>*/ if(80 !== match && 112 !== match){ + var + precision$0 = /*<>*/ caml_call2 (Stdlib_Int[10], width$4, precision), width$9 = - width$4 + /*<>*/ width$4 - (precision$0 - - scan_digit_plus + /*<>*/ scan_digit_plus (cst_hexadecimal, is_hexa_digit, precision$0, ib) | 0) | 0; break d; } - var width$9 = width$4; + var width$9 = /*<>*/ width$4; } - var width$5 = width$9; + var width$5 = /*<>*/ width$9; break c; } - var width$5 = width$4; + var width$5 = /*<>*/ width$4; } - var width$6 = width$5; + var width$6 = /*<>*/ width$5; break b; } } - else if(30 < switcher - 1 >>> 0){var width$6 = width$10; break b;} - var width$7 = bad_input(cst_no_dot_or_exponent_part_fo); + else if(30 < switcher - 1 >>> 0){ + var width$6 = /*<>*/ width$10; + break b; + } + var + width$7 = + /*<>*/ /*<>*/ bad_input + (cst_no_dot_or_exponent_part_fo); break a; } - var width$7 = width$6; - } - /*<>*/ if(0 !== width$7 && ! end_of_input(ib)){ - /*<>*/ /*<>*/ var - c$2 = peek_char(ib); - if(80 !== c$2 && 112 !== c$2) /*<>*/ return width$7; - /*<>*/ var - /*<>*/ width$8 = store_char(width$7, ib, c$2), - _aq_ = 0 === width$8 ? 1 : 0, - _ar_ = _aq_ || end_of_input(ib); - /*<>*/ if(_ar_) + var width$7 = /*<>*/ width$6; + } + /*<>*/ if + (0 !== width$7 && ! /*<>*/ end_of_input(ib)){ + var c$2 = /*<>*/ peek_char(ib); + /*<>*/ if(80 !== c$2 && 112 !== c$2) + /*<>*/ return width$7; + var + width$8 = /*<>*/ store_char(width$7, ib, c$2), + _aq_ = /*<>*/ 0 === width$8 ? 1 : 0, + _ar_ = _aq_ || /*<>*/ end_of_input(ib); + /*<>*/ if(_ar_) /*<>*/ bad_input(cst_not_a_valid_float_in_hexad); - /*<>*/ return scan_optionally_signed_decimal - (width$8, ib); + /*<>*/ return scan_optionally_signed_decimal + (width$8, ib) /*<>*/ ; } /*<>*/ return width$7; } - /*<>*/ return bad_input(cst_no_dot_or_exponent_part_fo); - /*<>*/ } + /*<>*/ return bad_input(cst_no_dot_or_exponent_part_fo) /*<>*/ ; + } function scan_string(stp, width, ib){ - /*<>*/ var width$0 = width; - /*<>*/ for(;;){ - if(0 === width$0) /*<>*/ return width$0; - /*<>*/ /*<>*/ var c = peek_char(ib); - /*<>*/ if(ib[1]) + var width$0 = /*<>*/ width; + for(;;){ + /*<>*/ if(0 === width$0) + /*<>*/ return width$0; + var c = /*<>*/ peek_char(ib); + /*<>*/ if(ib[1]) /*<>*/ return width$0; - if(! stp){ - /*<>*/ /*<>*/ var _ad_ = c - 9 | 0; + /*<>*/ if(! stp){ + var _ad_ = /*<>*/ c - 9 | 0; a: { if(4 < _ad_ >>> 0){ if(23 === _ad_) break a; } else if(1 < _ad_ - 2 >>> 0) break a; - /*<>*/ /*<>*/ var - width$2 = store_char(width$0, ib, c); - width$0 = width$2; + var width$2 = /*<>*/ store_char(width$0, ib, c); + /*<>*/ width$0 = width$2; continue; } /*<>*/ return width$0; } - var c$0 = stp[1]; - if(c === c$0){ + var c$0 = /*<>*/ stp[1]; + /*<>*/ if(c === c$0){ /*<>*/ invalidate_current_char(ib); - /*<>*/ return width$0; + /*<>*/ return width$0; } - /*<>*/ /*<>*/ var - width$1 = store_char(width$0, ib, c); - width$0 = width$1; + var width$1 = /*<>*/ store_char(width$0, ib, c); + /*<>*/ width$0 = width$1; } /*<>*/ } function hexadecimal_value_of_char(c){ - /*<>*/ return 97 <= c + /*<>*/ return 97 <= c ? c - 87 | 0 - : 65 <= c ? c - 55 | 0 : c - 48 | 0; - /*<>*/ } + : 65 <= c ? c - 55 | 0 : c - 48 | 0 /*<>*/ ; + } function check_next_char(message, width, ib){ /*<>*/ if(0 === width) - /*<>*/ return bad_token_length(message); - /*<>*/ /*<>*/ var c = peek_char(ib); - /*<>*/ return ib[1] - ? bad_input + /*<>*/ return bad_token_length(message) /*<>*/ ; + var c = /*<>*/ peek_char(ib); + /*<>*/ return ib[1] + ? /*<>*/ bad_input ( /*<>*/ caml_call2 (Stdlib_Printf[4], _f_, message)) - : c; - /*<>*/ } + : c /*<>*/ ; + } function scan_backslash_char(width, ib){ - /*<>*/ var c0 = check_next_char(cst_a_Char, width, ib); + var c0 = /*<>*/ check_next_char(cst_a_Char, width, ib); a: { - if(40 <= c0){ + /*<>*/ if(40 <= c0){ if(58 > c0){ if(48 > c0) break a; - /*<>*/ var + var get_digit$0 = - function(param){ - /*<>*/ /*<>*/ var - c = next_char(ib); - return 9 < c - 48 >>> 0 ? bad_input_escape(c) : c; - /*<>*/ }, - /*<>*/ c1$0 = get_digit$0(0), - /*<>*/ c2$0 = get_digit$0(0), + /*<>*/ function(param){ + var c = /*<>*/ next_char(ib); + /*<>*/ return 9 < c - 48 >>> 0 + ? /*<>*/ bad_input_escape(c) + : c /*<>*/ ; + }, + c1$0 = /*<>*/ get_digit$0(0), + c2$0 = /*<>*/ get_digit$0(0), c = - ((100 * (c0 - 48 | 0) | 0) + (10 * (c1$0 - 48 | 0) | 0) | 0) + /*<>*/ ((100 * (c0 - 48 | 0) | 0) + + (10 * (c1$0 - 48 | 0) | 0) + | 0) + (c2$0 - 48 | 0) | 0; b: { - if(0 <= c && 255 >= c){ + /*<>*/ if(0 <= c && 255 >= c){ var _ab_ = /*<>*/ caml_call1(Stdlib[29], c); break b; } var _ab_ = - bad_input + /*<>*/ bad_input ( /*<>*/ caml_call4 (Stdlib_Printf[4], _l_, c0, c1$0, c2$0)); } - /*<>*/ return store_char(width - 2 | 0, ib, _ab_); + /*<>*/ return store_char(width - 2 | 0, ib, _ab_) /*<>*/ ; } - /*<>*/ /*<>*/ var - switcher = c0 - 92 | 0; + var switcher = /*<>*/ c0 - 92 | 0; if(28 < switcher >>> 0) break a; switch(switcher){ case 28: - /*<>*/ var + var get_digit = - function(param){ - /*<>*/ var - /*<>*/ c = next_char(ib), - /*<>*/ _ac_ = c - 48 | 0; + /*<>*/ function(param){ + var + c = /*<>*/ next_char(ib), + _ac_ = /*<>*/ c - 48 | 0; a: { if(22 < _ac_ >>> 0){ @@ -30179,25 +30556,28 @@ else if(6 >= _ac_ - 10 >>> 0) break a; /*<>*/ return c; } - /*<>*/ return bad_input_escape(c); - /*<>*/ }, - /*<>*/ c1 = get_digit(0), - /*<>*/ c2 = get_digit(0), - /*<>*/ ___ = hexadecimal_value_of_char(c2), - c$0 = (16 * hexadecimal_value_of_char(c1) | 0) + ___ | 0; + /*<>*/ return bad_input_escape(c) /*<>*/ ; + }, + c1 = /*<>*/ get_digit(0), + c2 = /*<>*/ get_digit(0), + ___ = /*<>*/ hexadecimal_value_of_char(c2), + c$0 = + /*<>*/ (16 * hexadecimal_value_of_char(c1) | 0) + + ___ + | 0; b: { - if(0 <= c$0 && 255 >= c$0){ + /*<>*/ if(0 <= c$0 && 255 >= c$0){ var _aa_ = /*<>*/ caml_call1(Stdlib[29], c$0); break b; } var _aa_ = - bad_input + /*<>*/ bad_input ( /*<>*/ caml_call3 (Stdlib_Printf[4], _m_, c1, c2)); } - /*<>*/ return store_char(width - 2 | 0, ib, _aa_); + /*<>*/ return store_char(width - 2 | 0, ib, _aa_) /*<>*/ ; case 0: case 6: case 18: @@ -30209,162 +30589,156 @@ else if(34 !== c0 && 39 > c0) break a; b: { - if(110 <= c0){ + /*<>*/ if(110 <= c0){ if(117 > c0) switch(c0 - 110 | 0){ case 0: - var _$_ = 10; break b; + var _$_ = /*<>*/ 10; break b; case 4: - var _$_ = 13; break b; + var _$_ = /*<>*/ 13; break b; case 6: - var _$_ = 9; break b; + var _$_ = /*<>*/ 9; break b; } } - else if(98 === c0){var _$_ = 8; break b;} - var _$_ = c0; + else if(98 === c0){var _$_ = /*<>*/ 8; break b;} + var _$_ = /*<>*/ c0; } - /*<>*/ return store_char(width, ib, _$_); + /*<>*/ return store_char(width, ib, _$_) /*<>*/ ; } - /*<>*/ return bad_input_escape(c0); - /*<>*/ } + /*<>*/ return bad_input_escape(c0) /*<>*/ ; + } function scan_caml_string(width, ib){ function find_stop$0(counter, width){ - /*<>*/ var width$0 = width; - /*<>*/ for(;;){ - var c = check_next_char(cst_a_String, width$0, ib); - if(34 === c) /*<>*/ return ignore_char(width$0, ib); - if(92 === c){ - /*<>*/ var - /*<>*/ width$1 = ignore_char(width$0, ib), - match = check_next_char(cst_a_String, width$1, ib); - if(10 === match){ - /*<>*/ /*<>*/ var - _Y_ = ignore_char(width$1, ib); - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (skip_spaces, [0, _Y_]); - var counter$0 = counter + 1 | 0; - /*<>*/ return skip_spaces(counter$0, _Y_); + var width$0 = /*<>*/ width; + for(;;){ + var + c = + /*<>*/ check_next_char(cst_a_String, width$0, ib); + /*<>*/ if(34 === c) + /*<>*/ return ignore_char(width$0, ib) /*<>*/ ; + /*<>*/ if(92 === c){ + var + width$1 = /*<>*/ ignore_char(width$0, ib), + match = + /*<>*/ check_next_char(cst_a_String, width$1, ib); + /*<>*/ if(10 === match){ + var _Y_ = /*<>*/ ignore_char(width$1, ib); + /*<>*/ if(counter >= 50) + return caml_trampoline_return(skip_spaces, [0, _Y_]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return skip_spaces(counter$0, _Y_) /*<>*/ ; } - if(13 === match){ - /*<>*/ /*<>*/ var - width$3 = ignore_char(width$1, ib); - if(10 === check_next_char(cst_a_String, width$3, ib)){ - /*<>*/ /*<>*/ var - _Z_ = ignore_char(width$3, ib); - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (skip_spaces, [0, _Z_]); - var counter$1 = counter + 1 | 0; - /*<>*/ return skip_spaces(counter$1, _Z_); + /*<>*/ if(13 === match){ + var width$3 = /*<>*/ ignore_char(width$1, ib); + /*<>*/ if + (10 === check_next_char(cst_a_String, width$3, ib)){ + var _Z_ = /*<>*/ ignore_char(width$3, ib); + /*<>*/ if(counter >= 50) + return caml_trampoline_return(skip_spaces, [0, _Z_]) /*<>*/ ; + var counter$1 = /*<>*/ counter + 1 | 0; + return skip_spaces(counter$1, _Z_) /*<>*/ ; } - /*<>*/ /*<>*/ var - width$5 = store_char(width$3, ib, 13); - width$0 = width$5; + var width$5 = /*<>*/ store_char(width$3, ib, 13); + /*<>*/ width$0 = width$5; } else{ - /*<>*/ /*<>*/ var - width$4 = scan_backslash_char(width$1, ib); - width$0 = width$4; + var + width$4 = /*<>*/ scan_backslash_char(width$1, ib); + /*<>*/ width$0 = width$4; } } else{ - /*<>*/ /*<>*/ var - width$2 = store_char(width$0, ib, c); - width$0 = width$2; + var width$2 = /*<>*/ store_char(width$0, ib, c); + /*<>*/ width$0 = width$2; } } - /*<>*/ } + } function find_stop(width){ - /*<>*/ return caml_trampoline(find_stop$0(0, width)); + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ find_stop$0(0, width)) /*<>*/ ; } function skip_spaces(counter, width){ - /*<>*/ var width$0 = width; - /*<>*/ for(;;){ - if(32 !== check_next_char(cst_a_String, width$0, ib)){ + var width$0 = /*<>*/ width; + for(;;){ + /*<>*/ if + (32 !== check_next_char(cst_a_String, width$0, ib)){ /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (find_stop$0, [0, width$0]); - var counter$0 = counter + 1 | 0; - /*<>*/ return find_stop$0(counter$0, width$0); + return caml_trampoline_return(find_stop$0, [0, width$0]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return find_stop$0(counter$0, width$0) /*<>*/ ; } - /*<>*/ /*<>*/ var - width$1 = ignore_char(width$0, ib); - width$0 = width$1; + var width$1 = /*<>*/ ignore_char(width$0, ib); + /*<>*/ width$0 = width$1; } /*<>*/ } - /*<>*/ /*<>*/ var - c = checked_peek_char(ib); - return 34 === c - ? find_stop(ignore_char(width, ib)) - : character_mismatch(34, c); - /*<>*/ } + var c = /*<>*/ checked_peek_char(ib); + /*<>*/ return 34 === c + ? /*<>*/ find_stop + ( /*<>*/ ignore_char(width, ib)) + : /*<>*/ character_mismatch(34, c) /*<>*/ ; + } function scan_chars_in_char_set(char_set, scan_indic, width, ib){ function scan_chars(i, stp){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ - /*<>*/ var - /*<>*/ c = peek_char(ib), - _U_ = 0 < i$0 ? 1 : 0; + var i$0 = /*<>*/ i; + for(;;){ + var c = peek_char(ib), _U_ = /*<>*/ 0 < i$0 ? 1 : 0; if(_U_){ - /*<>*/ /*<>*/ var - _V_ = 1 - ib[1]; + var _V_ = /*<>*/ 1 - ib[1]; if(_V_) - /*<>*/ var - /*<>*/ _W_ = + var + _W_ = /*<>*/ caml_call2 (CamlinternalFormat[1], char_set, c), - /*<>*/ _X_ = _W_ ? c !== stp ? 1 : 0 : _W_; + _X_ = /*<>*/ _W_ ? c !== stp ? 1 : 0 : _W_; else - var _X_ = _V_; + var _X_ = /*<>*/ _V_; } else - var _X_ = _U_; + var _X_ = /*<>*/ _U_; if(! _X_) return _X_; /*<>*/ store_char(Stdlib[19], ib, c); - var i$1 = i$0 - 1 | 0; + var i$1 = /*<>*/ i$0 - 1 | 0; i$0 = i$1; } /*<>*/ } - if(! scan_indic) /*<>*/ return scan_chars(width, -1); - var c = scan_indic[1]; + /*<>*/ if(! scan_indic) + /*<>*/ return scan_chars(width, -1) /*<>*/ ; + var c = /*<>*/ scan_indic[1]; /*<>*/ scan_chars(width, c); - /*<>*/ /*<>*/ var _T_ = 1 - ib[1]; - if(! _T_) /*<>*/ return _T_; - /*<>*/ /*<>*/ var - ci = peek_char(ib); - return c === ci ? invalidate_current_char(ib) : character_mismatch(c, ci); - /*<>*/ } + var _T_ = /*<>*/ 1 - ib[1]; + if(! _T_) return _T_; + var ci = /*<>*/ peek_char(ib); + /*<>*/ return c === ci + ? /*<>*/ invalidate_current_char(ib) + : /*<>*/ character_mismatch(c, ci) /*<>*/ ; + } function scanf_bad_input(ib, x){ - /*<>*/ if(x[1] === Scan_failure) + /*<>*/ if(x[1] === Scan_failure) var s = x[2]; else{ if(x[1] !== Stdlib[7]) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (x, 1); - var s = x[2]; + /*<>*/ throw caml_maybe_attach_backtrace(x, 1); + var s = /*<>*/ x[2]; } - /*<>*/ /*<>*/ var - i = char_count(ib); - /*<>*/ return bad_input - ( /*<>*/ caml_call3(Stdlib_Printf[4], _o_, i, s)); + var i = /*<>*/ char_count(ib); + /*<>*/ return /*<>*/ bad_input + ( /*<>*/ caml_call3(Stdlib_Printf[4], _o_, i, s)) /*<>*/ ; } function width_of_pad_opt(pad_opt){ /*<>*/ if(! pad_opt) /*<>*/ return Stdlib[19]; - var width = pad_opt[1]; + var width = /*<>*/ pad_opt[1]; /*<>*/ return width; /*<>*/ } function stopper_of_formatting_lit(fmting){ /*<>*/ if(6 === fmting) /*<>*/ return _p_; - /*<>*/ var - /*<>*/ str = + var + str = /*<>*/ caml_call1(CamlinternalFormat[17], fmting), - /*<>*/ stp = - /*<>*/ caml_string_get(str, 1), - /*<>*/ sub_str = - /*<>*/ caml_call3 + stp = /*<>*/ caml_string_get(str, 1), + sub_str = + /*<>*/ /*<>*/ caml_call3 (Stdlib_String[16], str, 2, @@ -30372,304 +30746,369 @@ /*<>*/ return [0, stp, sub_str]; /*<>*/ } function take_format_readers$0(counter, k, fmt){ - /*<>*/ var fmt$0 = fmt; - /*<>*/ for(;;){ + var fmt$0 = /*<>*/ fmt; + for(;;){ if(typeof fmt$0 === "number") - /*<>*/ return /*<>*/ caml_call1 - (k, 0); - switch(fmt$0[0]){ + /*<>*/ return caml_call1(k, 0) /*<>*/ ; + /*<>*/ switch(fmt$0[0]){ case 0: - var rest = fmt$0[1]; fmt$0 = rest; break; + var rest = fmt$0[1]; /*<>*/ fmt$0 = rest; break; case 1: - var rest$0 = fmt$0[1]; fmt$0 = rest$0; break; + var rest$0 = /*<>*/ fmt$0[1]; + /*<>*/ fmt$0 = rest$0; + break; case 2: - var rest$1 = fmt$0[2]; fmt$0 = rest$1; break; + var rest$1 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$1; + break; case 3: - var rest$2 = fmt$0[2]; fmt$0 = rest$2; break; + var rest$2 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$2; + break; case 4: - var rest$3 = fmt$0[4]; fmt$0 = rest$3; break; + var rest$3 = /*<>*/ fmt$0[4]; + /*<>*/ fmt$0 = rest$3; + break; case 5: - var rest$4 = fmt$0[4]; fmt$0 = rest$4; break; + var rest$4 = /*<>*/ fmt$0[4]; + /*<>*/ fmt$0 = rest$4; + break; case 6: - var rest$5 = fmt$0[4]; fmt$0 = rest$5; break; + var rest$5 = /*<>*/ fmt$0[4]; + /*<>*/ fmt$0 = rest$5; + break; case 7: - var rest$6 = fmt$0[4]; fmt$0 = rest$6; break; + var rest$6 = /*<>*/ fmt$0[4]; + /*<>*/ fmt$0 = rest$6; + break; case 8: - var rest$7 = fmt$0[4]; fmt$0 = rest$7; break; + var rest$7 = /*<>*/ fmt$0[4]; + /*<>*/ fmt$0 = rest$7; + break; case 9: - var rest$8 = fmt$0[2]; fmt$0 = rest$8; break; + var rest$8 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$8; + break; case 10: - var rest$9 = fmt$0[1]; fmt$0 = rest$9; break; + var rest$9 = /*<>*/ fmt$0[1]; + /*<>*/ fmt$0 = rest$9; + break; case 11: - var rest$10 = fmt$0[2]; fmt$0 = rest$10; break; + var rest$10 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$10; + break; case 12: - var rest$11 = fmt$0[2]; fmt$0 = rest$11; break; + var rest$11 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$11; + break; case 13: - var rest$12 = fmt$0[3]; fmt$0 = rest$12; break; + var rest$12 = /*<>*/ fmt$0[3]; + /*<>*/ fmt$0 = rest$12; + break; case 14: - /*<>*/ var - rest$13 = fmt$0[3], + var + rest$13 = /*<>*/ fmt$0[3], fmtty = fmt$0[2], - /*<>*/ _Q_ = + _Q_ = /*<>*/ caml_call1(CamlinternalFormat[21], fmtty), - /*<>*/ _R_ = + _R_ = /*<>*/ caml_call1 (CamlinternalFormatBasics[2], _Q_); - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (take_fmtty_format_readers$0, [0, k, _R_, rest$13]); - var counter$0 = counter + 1 | 0; - /*<>*/ return take_fmtty_format_readers$0 - (counter$0, k, _R_, rest$13); + /*<>*/ if(counter >= 50) + return caml_trampoline_return + (take_fmtty_format_readers$0, [0, k, _R_, rest$13]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return take_fmtty_format_readers$0(counter$0, k, _R_, rest$13) /*<>*/ ; case 15: - var rest$14 = fmt$0[1]; fmt$0 = rest$14; break; + var rest$14 = /*<>*/ fmt$0[1]; + /*<>*/ fmt$0 = rest$14; + break; case 16: - var rest$15 = fmt$0[1]; fmt$0 = rest$15; break; + var rest$15 = /*<>*/ fmt$0[1]; + /*<>*/ fmt$0 = rest$15; + break; case 17: - var rest$16 = fmt$0[2]; fmt$0 = rest$16; break; + var rest$16 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$16; + break; case 18: - var _S_ = fmt$0[1]; + var _S_ = /*<>*/ fmt$0[1]; if(0 === _S_[0]){ - /*<>*/ var + var rest$17 = fmt$0[2], fmt$1 = _S_[1][1], - /*<>*/ fmt$2 = + fmt$2 = /*<>*/ caml_call2 (CamlinternalFormatBasics[3], fmt$1, rest$17); - fmt$0 = fmt$2; + /*<>*/ fmt$0 = fmt$2; } else{ - /*<>*/ var - rest$18 = fmt$0[2], + var + rest$18 = /*<>*/ fmt$0[2], fmt$3 = _S_[1][1], - /*<>*/ fmt$4 = + fmt$4 = /*<>*/ caml_call2 (CamlinternalFormatBasics[3], fmt$3, rest$18); - fmt$0 = fmt$4; + /*<>*/ fmt$0 = fmt$4; } break; case 19: - var fmt_rest = fmt$0[1]; + var fmt_rest = /*<>*/ fmt$0[1]; /*<>*/ return function(reader){ function new_k(readers_rest){ - /*<>*/ return /*<>*/ caml_call1 - (k, [0, reader, readers_rest]); - /*<>*/ } - /*<>*/ return take_format_readers(new_k, fmt_rest); /*<>*/ }; + /*<>*/ return caml_call1 + (k, [0, reader, readers_rest]) /*<>*/ ; + } + /*<>*/ return take_format_readers(new_k, fmt_rest) /*<>*/ ;} /*<>*/ ; case 20: - var rest$19 = fmt$0[3]; fmt$0 = rest$19; break; + var rest$19 = /*<>*/ fmt$0[3]; + /*<>*/ fmt$0 = rest$19; + break; case 21: - var rest$20 = fmt$0[2]; fmt$0 = rest$20; break; + var rest$20 = /*<>*/ fmt$0[2]; + /*<>*/ fmt$0 = rest$20; + break; case 22: - var rest$21 = fmt$0[1]; fmt$0 = rest$21; break; + var rest$21 = /*<>*/ fmt$0[1]; + /*<>*/ fmt$0 = rest$21; + break; case 23: - var rest$22 = fmt$0[2], ign = fmt$0[1]; - if(typeof ign === "number") + var rest$22 = /*<>*/ fmt$0[2], ign = fmt$0[1]; + /*<>*/ if(typeof ign === "number") switch(ign){ case 0: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 1: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 2: /*<>*/ return function(reader){ function new_k(readers_rest){ - /*<>*/ return /*<>*/ caml_call1 - (k, [0, reader, readers_rest]); - /*<>*/ } + /*<>*/ return caml_call1 + (k, [0, reader, readers_rest]) /*<>*/ ; + } /*<>*/ return take_format_readers - (new_k, rest$22); /*<>*/ }; - default: fmt$0 = rest$22; + (new_k, rest$22) /*<>*/ ;} /*<>*/ ; + default: /*<>*/ fmt$0 = rest$22; } else - switch(ign[0]){ + /*<>*/ switch(ign[0]){ case 0: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 1: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 2: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 3: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 4: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 5: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 6: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 7: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 8: - fmt$0 = rest$22; break; + /*<>*/ fmt$0 = rest$22; break; case 9: - var fmtty$0 = ign[2]; + var fmtty$0 = /*<>*/ ign[2]; /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (take_fmtty_format_readers$0, [0, k, fmtty$0, rest$22]); - var counter$1 = counter + 1 | 0; - /*<>*/ return take_fmtty_format_readers$0 - (counter$1, k, fmtty$0, rest$22); + return caml_trampoline_return + (take_fmtty_format_readers$0, [0, k, fmtty$0, rest$22]) /*<>*/ ; + var counter$1 = /*<>*/ counter + 1 | 0; + return take_fmtty_format_readers$0(counter$1, k, fmtty$0, rest$22) /*<>*/ ; case 10: - fmt$0 = rest$22; break; - default: fmt$0 = rest$22; + /*<>*/ fmt$0 = rest$22; break; + default: /*<>*/ fmt$0 = rest$22; } break; - default: var rest$23 = fmt$0[3]; fmt$0 = rest$23; + default: + var rest$23 = /*<>*/ fmt$0[3]; + /*<>*/ fmt$0 = rest$23; } } /*<>*/ } function take_format_readers(k, fmt){ - /*<>*/ return caml_trampoline(take_format_readers$0(0, k, fmt)); + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ take_format_readers$0(0, k, fmt)) /*<>*/ ; } function take_fmtty_format_readers$0(counter, k, fmtty, fmt){ - /*<>*/ var fmtty$0 = fmtty; - /*<>*/ for(;;){ + var fmtty$0 = /*<>*/ fmtty; + for(;;){ if(typeof fmtty$0 === "number"){ /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (take_format_readers$0, [0, k, fmt]); - var counter$0 = counter + 1 | 0; - /*<>*/ return take_format_readers$0 - (counter$0, k, fmt); + return caml_trampoline_return(take_format_readers$0, [0, k, fmt]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return take_format_readers$0(counter$0, k, fmt) /*<>*/ ; } - switch(fmtty$0[0]){ + /*<>*/ switch(fmtty$0[0]){ case 0: - var fmtty$1 = fmtty$0[1]; fmtty$0 = fmtty$1; break; + var fmtty$1 = fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$1; + break; case 1: - var fmtty$2 = fmtty$0[1]; fmtty$0 = fmtty$2; break; + var fmtty$2 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$2; + break; case 2: - var fmtty$3 = fmtty$0[1]; fmtty$0 = fmtty$3; break; + var fmtty$3 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$3; + break; case 3: - var fmtty$4 = fmtty$0[1]; fmtty$0 = fmtty$4; break; + var fmtty$4 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$4; + break; case 4: - var fmtty$5 = fmtty$0[1]; fmtty$0 = fmtty$5; break; + var fmtty$5 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$5; + break; case 5: - var fmtty$6 = fmtty$0[1]; fmtty$0 = fmtty$6; break; + var fmtty$6 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$6; + break; case 6: - var fmtty$7 = fmtty$0[1]; fmtty$0 = fmtty$7; break; + var fmtty$7 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$7; + break; case 7: - var fmtty$8 = fmtty$0[1]; fmtty$0 = fmtty$8; break; + var fmtty$8 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$8; + break; case 8: - var fmtty$9 = fmtty$0[2]; fmtty$0 = fmtty$9; break; + var fmtty$9 = /*<>*/ fmtty$0[2]; + /*<>*/ fmtty$0 = fmtty$9; + break; case 9: - /*<>*/ var - rest = fmtty$0[3], + var + rest = /*<>*/ fmtty$0[3], ty2 = fmtty$0[2], ty1 = fmtty$0[1], - /*<>*/ _P_ = + _P_ = /*<>*/ caml_call1(CamlinternalFormat[21], ty1), - /*<>*/ ty = + ty = /*<>*/ caml_call2 (CamlinternalFormat[22], _P_, ty2), - /*<>*/ fmtty$10 = + fmtty$10 = /*<>*/ caml_call2 (CamlinternalFormatBasics[1], ty, rest); - fmtty$0 = fmtty$10; + /*<>*/ fmtty$0 = fmtty$10; break; case 10: - var fmtty$11 = fmtty$0[1]; fmtty$0 = fmtty$11; break; + var fmtty$11 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$11; + break; case 11: - var fmtty$12 = fmtty$0[1]; fmtty$0 = fmtty$12; break; + var fmtty$12 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$12; + break; case 12: - var fmtty$13 = fmtty$0[1]; fmtty$0 = fmtty$13; break; + var fmtty$13 = /*<>*/ fmtty$0[1]; + /*<>*/ fmtty$0 = fmtty$13; + break; case 13: - var fmt_rest = fmtty$0[1]; + var fmt_rest = /*<>*/ fmtty$0[1]; /*<>*/ return function(reader){ function new_k(readers_rest){ - /*<>*/ return /*<>*/ caml_call1 - (k, [0, reader, readers_rest]); - /*<>*/ } + /*<>*/ return caml_call1 + (k, [0, reader, readers_rest]) /*<>*/ ; + } /*<>*/ return take_fmtty_format_readers - (new_k, fmt_rest, fmt); /*<>*/ }; + (new_k, fmt_rest, fmt) /*<>*/ ;} /*<>*/ ; default: - var fmt_rest$0 = fmtty$0[1]; + var fmt_rest$0 = /*<>*/ fmtty$0[1]; /*<>*/ return function(reader){ function new_k(readers_rest){ - /*<>*/ return /*<>*/ caml_call1 - (k, [0, reader, readers_rest]); - /*<>*/ } + /*<>*/ return caml_call1 + (k, [0, reader, readers_rest]) /*<>*/ ; + } /*<>*/ return take_fmtty_format_readers - (new_k, fmt_rest$0, fmt); /*<>*/ }; + (new_k, fmt_rest$0, fmt) /*<>*/ ;} /*<>*/ ; } } /*<>*/ } function take_fmtty_format_readers(k, fmtty, fmt){ - /*<>*/ return caml_trampoline - (take_fmtty_format_readers$0(0, k, fmtty, fmt)); + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ take_fmtty_format_readers$0 + (0, k, fmtty, fmt)) /*<>*/ ; } function make_scanf(ib, fmt, readers){ - /*<>*/ var fmt$0 = fmt; - /*<>*/ for(;;){ + var fmt$0 = /*<>*/ fmt; + for(;;){ if(typeof fmt$0 === "number") /*<>*/ return 0; - switch(fmt$0[0]){ + /*<>*/ switch(fmt$0[0]){ case 0: var rest = fmt$0[1]; - /*<>*/ store_char(0, ib, checked_peek_char(ib)); - /*<>*/ /*<>*/ var - c$0 = token_char(ib); - /*<>*/ return [0, + /*<>*/ /*<>*/ store_char + (0, ib, /*<>*/ checked_peek_char(ib)); + var c$0 = /*<>*/ token_char(ib); + /*<>*/ return [0, c$0, - make_scanf(ib, rest, readers)]; + make_scanf(ib, rest, readers)] /*<>*/ ; case 1: - /*<>*/ var - rest$0 = fmt$0[1], + var + rest$0 = /*<>*/ fmt$0[1], find_stop = - function(width){ - /*<>*/ var - c = check_next_char(cst_a_Char, width, ib); - return 39 === c - ? ignore_char(width, ib) - : character_mismatch(39, c); - /*<>*/ }, - /*<>*/ c = checked_peek_char(ib), - /*<>*/ width$0 = 0; + /*<>*/ function(width){ + var + c = + /*<>*/ check_next_char + (cst_a_Char, width, ib); + /*<>*/ return 39 === c + ? /*<>*/ ignore_char(width, ib) + : /*<>*/ character_mismatch(39, c) /*<>*/ ; + }, + c = /*<>*/ checked_peek_char(ib), + width$0 = /*<>*/ 0; if(39 === c){ - /*<>*/ var - /*<>*/ width = ignore_char(width$0, ib), - c$3 = check_next_char(cst_a_Char, width, ib); - if(92 === c$3) - /*<>*/ find_stop - (scan_backslash_char(ignore_char(width, ib), ib)); + var + width = /*<>*/ ignore_char(width$0, ib), + c$3 = + /*<>*/ check_next_char(cst_a_Char, width, ib); + /*<>*/ if(92 === c$3) + /*<>*/ /*<>*/ find_stop + ( /*<>*/ scan_backslash_char + ( /*<>*/ ignore_char(width, ib), ib)); else - /*<>*/ find_stop(store_char(width, ib, c$3)); + /*<>*/ /*<>*/ find_stop + ( /*<>*/ store_char(width, ib, c$3)); } else /*<>*/ character_mismatch(39, c); - /*<>*/ /*<>*/ var - c$1 = token_char(ib); - /*<>*/ return [0, + var c$1 = /*<>*/ token_char(ib); + /*<>*/ return [0, c$1, - make_scanf(ib, rest$0, readers)]; + make_scanf(ib, rest$0, readers)] /*<>*/ ; case 2: - var pad = fmt$0[1], match = fmt$0[2]; + var pad = /*<>*/ fmt$0[1], match = fmt$0[2]; if(typeof match !== "number") switch(match[0]){ case 17: - /*<>*/ var + var rest$2 = match[2], fmting_lit = match[1], - /*<>*/ match$0 = - stopper_of_formatting_lit(fmting_lit), - str = match$0[2], + match$0 = + /*<>*/ stopper_of_formatting_lit(fmting_lit), + str = /*<>*/ match$0[2], stp = match$0[1], scan$0 = - function(width, param, ib){ + /*<>*/ function(width, param, ib){ /*<>*/ return scan_string - ([0, stp], width, ib); - /*<>*/ }, - /*<>*/ str_rest = [11, str, rest$2]; + ([0, stp], width, ib) /*<>*/ ; + }, + str_rest = /*<>*/ [11, str, rest$2]; /*<>*/ return pad_prec_scanf - (ib, str_rest, readers, pad, 0, scan$0, token_string); + (ib, str_rest, readers, pad, 0, scan$0, token_string) /*<>*/ ; case 18: - var _D_ = match[1]; + var _D_ = /*<>*/ match[1]; if(0 === _D_[0]){ - /*<>*/ var + var rest$3 = match[2], fmt$1 = _D_[1][1], - /*<>*/ scan$1 = - function(width, param, ib){ - /*<>*/ return scan_string(_q_, width, ib); - /*<>*/ }; - /*<>*/ return pad_prec_scanf + scan$1 = + /*<>*/ function(width, param, ib){ + /*<>*/ return scan_string(_q_, width, ib) /*<>*/ ; + }; + /*<>*/ return /*<>*/ pad_prec_scanf (ib, /*<>*/ caml_call2 (CamlinternalFormatBasics[3], fmt$1, rest$3), @@ -30677,16 +31116,16 @@ pad, 0, scan$1, - token_string); + token_string) /*<>*/ ; } - /*<>*/ var - rest$4 = match[2], + var + rest$4 = /*<>*/ match[2], fmt$2 = _D_[1][1], - /*<>*/ scan$2 = - function(width, param, ib){ - /*<>*/ return scan_string(_r_, width, ib); - /*<>*/ }; - /*<>*/ return pad_prec_scanf + scan$2 = + /*<>*/ function(width, param, ib){ + /*<>*/ return scan_string(_r_, width, ib) /*<>*/ ; + }; + /*<>*/ return /*<>*/ pad_prec_scanf (ib, /*<>*/ caml_call2 (CamlinternalFormatBasics[3], fmt$2, rest$4), @@ -30694,42 +31133,42 @@ pad, 0, scan$2, - token_string); + token_string) /*<>*/ ; } - /*<>*/ var - rest$1 = fmt$0[2], - /*<>*/ scan = - function(width, param, ib){ - /*<>*/ return scan_string(0, width, ib); - /*<>*/ }; + var + rest$1 = /*<>*/ fmt$0[2], + scan = + /*<>*/ function(width, param, ib){ + /*<>*/ return scan_string(0, width, ib) /*<>*/ ; + }; /*<>*/ return pad_prec_scanf - (ib, rest$1, readers, pad, 0, scan, token_string); + (ib, rest$1, readers, pad, 0, scan, token_string) /*<>*/ ; case 3: - /*<>*/ var - rest$5 = fmt$0[2], + var + rest$5 = /*<>*/ fmt$0[2], pad$0 = fmt$0[1], - /*<>*/ scan$3 = - function(width, param, ib){ - /*<>*/ return scan_caml_string(width, ib); - /*<>*/ }; + scan$3 = + /*<>*/ function(width, param, ib){ + /*<>*/ return scan_caml_string(width, ib) /*<>*/ ; + }; /*<>*/ return pad_prec_scanf - (ib, rest$5, readers, pad$0, 0, scan$3, token_string); + (ib, rest$5, readers, pad$0, 0, scan$3, token_string) /*<>*/ ; case 4: - /*<>*/ var - rest$6 = fmt$0[4], + var + rest$6 = /*<>*/ fmt$0[4], prec = fmt$0[3], pad$1 = fmt$0[2], iconv = fmt$0[1], - /*<>*/ conv = - integer_conversion_of_char + conv = + /*<>*/ /*<>*/ integer_conversion_of_char ( /*<>*/ caml_call1 (CamlinternalFormat[16], iconv)), scan$4 = - function(width, param, ib){ + /*<>*/ function(width, param, ib){ /*<>*/ return scan_int_conversion - (conv, width, ib); - /*<>*/ }; - /*<>*/ return pad_prec_scanf + (conv, width, ib) /*<>*/ ; + }; + /*<>*/ return pad_prec_scanf (ib, rest$6, readers, @@ -30737,25 +31176,25 @@ prec, scan$4, function(ib){ - /*<>*/ return /*<>*/ caml_int_of_string - (token_int_literal(conv, ib)); - }); + /*<>*/ return /*<>*/ caml_int_of_string + ( /*<>*/ token_int_literal(conv, ib)) /*<>*/ ; + }) /*<>*/ ; case 5: - /*<>*/ var - rest$7 = fmt$0[4], + var + rest$7 = /*<>*/ fmt$0[4], prec$0 = fmt$0[3], pad$2 = fmt$0[2], iconv$0 = fmt$0[1], - /*<>*/ conv$0 = - integer_conversion_of_char + conv$0 = + /*<>*/ /*<>*/ integer_conversion_of_char ( /*<>*/ caml_call1 (CamlinternalFormat[16], iconv$0)), scan$5 = - function(width, param, ib){ + /*<>*/ function(width, param, ib){ /*<>*/ return scan_int_conversion - (conv$0, width, ib); - /*<>*/ }; - /*<>*/ return pad_prec_scanf + (conv$0, width, ib) /*<>*/ ; + }; + /*<>*/ return pad_prec_scanf (ib, rest$7, readers, @@ -30763,25 +31202,25 @@ prec$0, scan$5, function(ib){ - /*<>*/ return /*<>*/ caml_int_of_string - (token_int_literal(conv$0, ib)); - }); + /*<>*/ return /*<>*/ caml_int_of_string + ( /*<>*/ token_int_literal(conv$0, ib)) /*<>*/ ; + }) /*<>*/ ; case 6: - /*<>*/ var - rest$8 = fmt$0[4], + var + rest$8 = /*<>*/ fmt$0[4], prec$1 = fmt$0[3], pad$3 = fmt$0[2], iconv$1 = fmt$0[1], - /*<>*/ conv$1 = - integer_conversion_of_char + conv$1 = + /*<>*/ /*<>*/ integer_conversion_of_char ( /*<>*/ caml_call1 (CamlinternalFormat[16], iconv$1)), scan$6 = - function(width, param, ib){ + /*<>*/ function(width, param, ib){ /*<>*/ return scan_int_conversion - (conv$1, width, ib); - /*<>*/ }; - /*<>*/ return pad_prec_scanf + (conv$1, width, ib) /*<>*/ ; + }; + /*<>*/ return pad_prec_scanf (ib, rest$8, readers, @@ -30789,25 +31228,25 @@ prec$1, scan$6, function(ib){ - /*<>*/ return /*<>*/ caml_int_of_string - (token_int_literal(conv$1, ib)); - }); + /*<>*/ return /*<>*/ caml_int_of_string + ( /*<>*/ token_int_literal(conv$1, ib)) /*<>*/ ; + }) /*<>*/ ; case 7: - /*<>*/ var - rest$9 = fmt$0[4], + var + rest$9 = /*<>*/ fmt$0[4], prec$2 = fmt$0[3], pad$4 = fmt$0[2], iconv$2 = fmt$0[1], - /*<>*/ conv$2 = - integer_conversion_of_char + conv$2 = + /*<>*/ /*<>*/ integer_conversion_of_char ( /*<>*/ caml_call1 (CamlinternalFormat[16], iconv$2)), scan$7 = - function(width, param, ib){ + /*<>*/ function(width, param, ib){ /*<>*/ return scan_int_conversion - (conv$2, width, ib); - /*<>*/ }; - /*<>*/ return pad_prec_scanf + (conv$2, width, ib) /*<>*/ ; + }; + /*<>*/ return pad_prec_scanf (ib, rest$9, readers, @@ -30815,11 +31254,11 @@ prec$2, scan$7, function(ib){ - /*<>*/ return /*<>*/ runtime.caml_int64_of_string - (token_int_literal(conv$2, ib)); - }); + /*<>*/ return /*<>*/ runtime.caml_int64_of_string + ( /*<>*/ token_int_literal(conv$2, ib)) /*<>*/ ; + }) /*<>*/ ; case 8: - switch(fmt$0[1][2]){ + /*<>*/ switch(fmt$0[1][2]){ case 5: case 8: var rest$11 = fmt$0[4], prec$4 = fmt$0[3], pad$6 = fmt$0[2]; @@ -30830,10 +31269,13 @@ pad$6, prec$4, scan_caml_float, - token_float); + token_float) /*<>*/ ; case 6: case 7: - var rest$12 = fmt$0[4], prec$5 = fmt$0[3], pad$7 = fmt$0[2]; + var + rest$12 = /*<>*/ fmt$0[4], + prec$5 = fmt$0[3], + pad$7 = fmt$0[2]; /*<>*/ return pad_prec_scanf (ib, rest$12, @@ -30841,9 +31283,12 @@ pad$7, prec$5, scan_hex_float, - token_float); + token_float) /*<>*/ ; default: - var rest$10 = fmt$0[4], prec$3 = fmt$0[3], pad$5 = fmt$0[2]; + var + rest$10 = /*<>*/ fmt$0[4], + prec$3 = fmt$0[3], + pad$5 = fmt$0[2]; /*<>*/ return pad_prec_scanf (ib, rest$10, @@ -30851,77 +31296,84 @@ pad$5, prec$3, scan_float, - token_float); + token_float) /*<>*/ ; } case 9: - /*<>*/ var - rest$13 = fmt$0[2], + var + rest$13 = /*<>*/ fmt$0[2], pad$8 = fmt$0[1], - /*<>*/ scan$8 = - function(_O_, param, ib){ - /*<>*/ var - /*<>*/ c = checked_peek_char(ib), - /*<>*/ m = - 102 === c + scan$8 = + /*<>*/ function(_O_, param, ib){ + var + c = /*<>*/ checked_peek_char(ib), + m = + /*<>*/ 102 === c ? 5 : 116 === c ? 4 - : bad_input + : /*<>*/ bad_input ( /*<>*/ caml_call2 (Stdlib_Printf[4], _n_, c)); - /*<>*/ return scan_string(0, m, ib); - /*<>*/ }; + /*<>*/ return scan_string(0, m, ib) /*<>*/ ; + }; /*<>*/ return pad_prec_scanf - (ib, rest$13, readers, pad$8, 0, scan$8, token_bool); + (ib, rest$13, readers, pad$8, 0, scan$8, token_bool) /*<>*/ ; case 10: - var rest$14 = fmt$0[1]; + var rest$14 = /*<>*/ fmt$0[1]; /*<>*/ if(! end_of_input(ib)) - /*<>*/ return bad_input(cst_end_of_input_not_found); - fmt$0 = rest$14; + /*<>*/ return bad_input(cst_end_of_input_not_found) /*<>*/ ; + /*<>*/ fmt$0 = rest$14; break; case 11: - var rest$15 = fmt$0[2], str$0 = fmt$0[1]; - /*<>*/ /*<>*/ caml_call2 + var rest$15 = /*<>*/ fmt$0[2], str$0 = fmt$0[1]; + /*<>*/ caml_call2 (Stdlib_String[30], - function(_N_){ /*<>*/ return check_char(ib, _N_);}, + function(_N_){ /*<>*/ return check_char(ib, _N_);}, str$0); - fmt$0 = rest$15; + /*<>*/ fmt$0 = rest$15; break; case 12: - var rest$16 = fmt$0[2], chr = fmt$0[1]; + var rest$16 = /*<>*/ fmt$0[2], chr = fmt$0[1]; /*<>*/ check_char(ib, chr); - fmt$0 = rest$16; + /*<>*/ fmt$0 = rest$16; break; case 13: - var rest$17 = fmt$0[3], fmtty = fmt$0[2], pad_opt = fmt$0[1]; - /*<>*/ scan_caml_string - (width_of_pad_opt(pad_opt), ib); - /*<>*/ /*<>*/ var - s = token_string(ib); + var + rest$17 = /*<>*/ fmt$0[3], + fmtty = fmt$0[2], + pad_opt = fmt$0[1]; + /*<>*/ /*<>*/ scan_caml_string + ( /*<>*/ width_of_pad_opt(pad_opt), ib); + var s = /*<>*/ token_string(ib); /*<>*/ try{ - /*<>*/ var - /*<>*/ _E_ = + var + _E_ = /*<>*/ caml_call2 (CamlinternalFormat[14], s, fmtty), fmt$3 = _E_; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); if(exn[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(exn, 0); - var msg = exn[2], fmt$3 = bad_input(msg); + var + msg = exn[2], + fmt$3 = + /*<>*/ /*<>*/ bad_input(msg); } - /*<>*/ return [0, + /*<>*/ return [0, fmt$3, - make_scanf(ib, rest$17, readers)]; + make_scanf(ib, rest$17, readers)] /*<>*/ ; case 14: - var rest$18 = fmt$0[3], fmtty$0 = fmt$0[2], pad_opt$0 = fmt$0[1]; - /*<>*/ scan_caml_string - (width_of_pad_opt(pad_opt$0), ib); - /*<>*/ /*<>*/ var - s$0 = token_string(ib); - try{ - /*<>*/ var + var + rest$18 = /*<>*/ fmt$0[3], + fmtty$0 = fmt$0[2], + pad_opt$0 = fmt$0[1]; + /*<>*/ /*<>*/ scan_caml_string + ( /*<>*/ width_of_pad_opt(pad_opt$0), ib); + var s$0 = /*<>*/ token_string(ib); + /*<>*/ try{ + var fmt$6 = /*<>*/ caml_call2 (CamlinternalFormat[13], 0, s$0) @@ -30930,254 +31382,238 @@ /*<>*/ caml_call2 (CamlinternalFormat[13], 0, s$0) [1], - /*<>*/ _G_ = + _G_ = /*<>*/ caml_call1 (CamlinternalFormat[21], fmtty$0), - /*<>*/ _H_ = + _H_ = /*<>*/ caml_call1 (CamlinternalFormatBasics[2], _G_), - /*<>*/ fmt$8 = + fmt$8 = /*<>*/ caml_call2 (CamlinternalFormat[12], fmt$7, _H_), - /*<>*/ _I_ = + _I_ = /*<>*/ caml_call1 (CamlinternalFormatBasics[2], fmtty$0), - /*<>*/ _J_ = + _J_ = /*<>*/ caml_call2 (CamlinternalFormat[12], fmt$6, _I_), fmt$5 = fmt$8, fmt$4 = _J_; } catch(exn){ - var exn$0 = caml_wrap_exception(exn); + var exn$0 = /*<>*/ caml_wrap_exception(exn); if(exn$0[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(exn$0, 0); var msg$0 = exn$0[2], - _F_ = bad_input(msg$0), + _F_ = /*<>*/ bad_input(msg$0), fmt$5 = _F_[2], fmt$4 = _F_[1]; } - /*<>*/ return [0, + /*<>*/ return [0, [0, fmt$4, s$0], - make_scanf + /*<>*/ make_scanf (ib, /*<>*/ caml_call2 (CamlinternalFormatBasics[3], fmt$5, rest$18), - readers)]; + readers)] /*<>*/ ; case 15: - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_scanf_bad_conversion_a); + /*<>*/ return caml_call1 + (Stdlib[1], cst_scanf_bad_conversion_a) /*<>*/ ; case 16: - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_scanf_bad_conversion_t); + /*<>*/ return caml_call1 + (Stdlib[1], cst_scanf_bad_conversion_t) /*<>*/ ; case 17: - /*<>*/ var - rest$19 = fmt$0[2], + var + rest$19 = /*<>*/ fmt$0[2], formatting_lit = fmt$0[1], - /*<>*/ _K_ = + _K_ = /*<>*/ caml_call1 (CamlinternalFormat[17], formatting_lit); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_String[30], - function(_M_){ /*<>*/ return check_char(ib, _M_);}, + function(_M_){ /*<>*/ return check_char(ib, _M_);}, _K_); - fmt$0 = rest$19; + /*<>*/ fmt$0 = rest$19; break; case 18: - var _L_ = fmt$0[1]; + var _L_ = /*<>*/ fmt$0[1]; if(0 === _L_[0]){ var rest$20 = fmt$0[2], fmt$9 = _L_[1][1]; /*<>*/ check_char(ib, 64); /*<>*/ check_char(ib, 123); - /*<>*/ /*<>*/ var + var fmt$10 = /*<>*/ caml_call2 (CamlinternalFormatBasics[3], fmt$9, rest$20); - fmt$0 = fmt$10; + /*<>*/ fmt$0 = fmt$10; } else{ - var rest$21 = fmt$0[2], fmt$11 = _L_[1][1]; + var rest$21 = /*<>*/ fmt$0[2], fmt$11 = _L_[1][1]; /*<>*/ check_char(ib, 64); /*<>*/ check_char(ib, 91); - /*<>*/ /*<>*/ var + var fmt$12 = /*<>*/ caml_call2 (CamlinternalFormatBasics[3], fmt$11, rest$21); - fmt$0 = fmt$12; + /*<>*/ fmt$0 = fmt$12; } break; case 19: - var fmt_rest = fmt$0[1]; + var fmt_rest = /*<>*/ fmt$0[1]; /*<>*/ if(! readers) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_scanf_missing_reader); - /*<>*/ var - readers_rest = readers[2], + /*<>*/ return caml_call1 + (Stdlib[1], cst_scanf_missing_reader) /*<>*/ ; + var + readers_rest = /*<>*/ readers[2], reader = readers[1], - /*<>*/ x = - /*<>*/ caml_call1(reader, ib); - /*<>*/ return [0, + x = /*<>*/ caml_call1(reader, ib); + /*<>*/ return [0, x, - make_scanf(ib, fmt_rest, readers_rest)]; + make_scanf(ib, fmt_rest, readers_rest)] /*<>*/ ; case 20: - var width_opt = fmt$0[1], match$1 = fmt$0[3]; + var + width_opt = /*<>*/ fmt$0[1], + match$1 = fmt$0[3]; if(typeof match$1 !== "number" && 17 === match$1[0]){ - /*<>*/ var + var rest$23 = match$1[2], fmting_lit$0 = match$1[1], char_set$0 = fmt$0[2], - /*<>*/ match$2 = - stopper_of_formatting_lit(fmting_lit$0), - str$1 = match$2[2], + match$2 = + /*<>*/ stopper_of_formatting_lit(fmting_lit$0), + str$1 = /*<>*/ match$2[2], stp$0 = match$2[1], - /*<>*/ width$2 = width_of_pad_opt(width_opt); + width$2 = /*<>*/ width_of_pad_opt(width_opt); /*<>*/ scan_chars_in_char_set (char_set$0, [0, stp$0], width$2, ib); - /*<>*/ var - /*<>*/ s$2 = token_string(ib), - /*<>*/ str_rest$0 = [11, str$1, rest$23]; - /*<>*/ return [0, + var + s$2 = /*<>*/ token_string(ib), + str_rest$0 = /*<>*/ [11, str$1, rest$23]; + /*<>*/ return [0, s$2, - make_scanf(ib, str_rest$0, readers)]; + make_scanf(ib, str_rest$0, readers)] /*<>*/ ; } - /*<>*/ var - rest$22 = fmt$0[3], + var + rest$22 = /*<>*/ fmt$0[3], char_set = fmt$0[2], - /*<>*/ width$1 = width_of_pad_opt(width_opt); + width$1 = /*<>*/ width_of_pad_opt(width_opt); /*<>*/ scan_chars_in_char_set (char_set, 0, width$1, ib); - /*<>*/ /*<>*/ var - s$1 = token_string(ib); - /*<>*/ return [0, + var s$1 = /*<>*/ token_string(ib); + /*<>*/ return [0, s$1, - make_scanf(ib, rest$22, readers)]; + make_scanf(ib, rest$22, readers)] /*<>*/ ; case 21: - var rest$24 = fmt$0[2], counter = fmt$0[1]; - switch(counter){ + var rest$24 = /*<>*/ fmt$0[2], counter = fmt$0[1]; + /*<>*/ switch(counter){ case 0: - var count = ib[5]; break; + var count = /*<>*/ ib[5]; break; case 1: - var count = char_count(ib); break; - default: var count = ib[6]; + var count = /*<>*/ char_count(ib); break; + default: var count = /*<>*/ ib[6]; } - /*<>*/ return [0, + /*<>*/ return [0, count, - make_scanf(ib, rest$24, readers)]; + make_scanf(ib, rest$24, readers)] /*<>*/ ; case 22: - /*<>*/ var - rest$25 = fmt$0[1], - /*<>*/ c$2 = checked_peek_char(ib); - /*<>*/ return [0, + var + rest$25 = /*<>*/ fmt$0[1], + c$2 = /*<>*/ checked_peek_char(ib); + /*<>*/ return [0, c$2, - make_scanf(ib, rest$25, readers)]; + make_scanf(ib, rest$25, readers)] /*<>*/ ; case 23: - /*<>*/ var - rest$26 = fmt$0[2], + var + rest$26 = /*<>*/ fmt$0[2], ign = fmt$0[1], fmt$13 = /*<>*/ caml_call2 (CamlinternalFormat[6], ign, rest$26) [1], - /*<>*/ match$3 = make_scanf(ib, fmt$13, readers); - if(! match$3) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + match$3 = /*<>*/ make_scanf(ib, fmt$13, readers); + /*<>*/ if(! match$3) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _s_], 1); - var arg_rest = match$3[2]; + var arg_rest = /*<>*/ match$3[2]; /*<>*/ return arg_rest; default: - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_scanf_bad_conversion_custo); + /*<>*/ return caml_call1 + (Stdlib[1], cst_scanf_bad_conversion_custo) /*<>*/ ; } } - /*<>*/ } + } function pad_prec_scanf(ib, fmt, readers, pad, prec, scan, token){ /*<>*/ if(typeof pad === "number"){ if(typeof prec !== "number"){ var p = prec[1]; - /*<>*/ /*<>*/ caml_call3 - (scan, Stdlib[19], p, ib); - /*<>*/ /*<>*/ var - x$0 = /*<>*/ caml_call1(token, ib); - /*<>*/ return [0, x$0, make_scanf(ib, fmt, readers)]; - } - if(prec) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_scanf_bad_conversion); - /*<>*/ /*<>*/ caml_call3 - (scan, Stdlib[19], Stdlib[19], ib); - /*<>*/ /*<>*/ var - x = /*<>*/ caml_call1(token, ib); - /*<>*/ return [0, x, make_scanf(ib, fmt, readers)]; - } - if(0 !== pad[0]) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_scanf_bad_conversion$2); - if(! pad[1]) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_scanf_bad_conversion$1); - var w = pad[2]; + /*<>*/ caml_call3(scan, Stdlib[19], p, ib); + var x$0 = /*<>*/ caml_call1(token, ib); + /*<>*/ return [0, x$0, make_scanf(ib, fmt, readers)] /*<>*/ ; + } + /*<>*/ if(prec) + /*<>*/ return caml_call1 + (Stdlib[1], cst_scanf_bad_conversion) /*<>*/ ; + /*<>*/ caml_call3(scan, Stdlib[19], Stdlib[19], ib); + var x = /*<>*/ caml_call1(token, ib); + /*<>*/ return [0, x, make_scanf(ib, fmt, readers)] /*<>*/ ; + } + /*<>*/ if(0 !== pad[0]) + /*<>*/ return caml_call1 + (Stdlib[1], cst_scanf_bad_conversion$2) /*<>*/ ; + /*<>*/ if(! pad[1]) + /*<>*/ return caml_call1 + (Stdlib[1], cst_scanf_bad_conversion$1) /*<>*/ ; + var w = /*<>*/ pad[2]; if(typeof prec !== "number"){ var p$0 = prec[1]; - /*<>*/ /*<>*/ caml_call3 - (scan, w, p$0, ib); - /*<>*/ /*<>*/ var - x$2 = /*<>*/ caml_call1(token, ib); - /*<>*/ return [0, x$2, make_scanf(ib, fmt, readers)]; - } - if(prec) - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], cst_scanf_bad_conversion$0); - /*<>*/ /*<>*/ caml_call3 - (scan, w, Stdlib[19], ib); - /*<>*/ /*<>*/ var - x$1 = /*<>*/ caml_call1(token, ib); - /*<>*/ return [0, x$1, make_scanf(ib, fmt, readers)]; + /*<>*/ caml_call3(scan, w, p$0, ib); + var x$2 = /*<>*/ caml_call1(token, ib); + /*<>*/ return [0, x$2, make_scanf(ib, fmt, readers)] /*<>*/ ; + } + /*<>*/ if(prec) + /*<>*/ return caml_call1 + (Stdlib[1], cst_scanf_bad_conversion$0) /*<>*/ ; + /*<>*/ caml_call3(scan, w, Stdlib[19], ib); + var x$1 = /*<>*/ caml_call1(token, ib); + /*<>*/ return [0, x$1, make_scanf(ib, fmt, readers)] /*<>*/ ; /*<>*/ } function kscanf_gen(ib, ef, af, param){ - var str = param[2], fmt = param[1]; + var str = /*<>*/ param[2], fmt = param[1]; function k(readers, f$1){ - /*<>*/ caml_call1(Stdlib_Buffer[9], ib[8]); - /*<>*/ try{ - /*<>*/ /*<>*/ var - args$1 = make_scanf(ib, fmt, readers); + /*<>*/ caml_call1(Stdlib_Buffer[9], ib[8]); + /*<>*/ try{ + var args$1 = /*<>*/ make_scanf(ib, fmt, readers); } catch(exc$0){ - var exc = caml_wrap_exception(exc$0); + var exc = /*<>*/ caml_wrap_exception(exc$0); if (exc[1] !== Scan_failure && exc[1] !== Stdlib[7] && exc !== Stdlib[12]){ if(exc[1] !== Stdlib[6]) throw caml_maybe_attach_backtrace(exc, 0); - /*<>*/ var + var msg = exc[2], - /*<>*/ _z_ = - /*<>*/ caml_call1(Stdlib_String[25], str), - /*<>*/ _A_ = - /*<>*/ caml_call2(Stdlib[28], _z_, cst$0), - /*<>*/ _B_ = + _z_ = /*<>*/ caml_call1(Stdlib_String[25], str), + _A_ = caml_call2(Stdlib[28], _z_, cst$0), + _B_ = /*<>*/ caml_call2(Stdlib[28], cst_in_format, _A_), - /*<>*/ _C_ = - /*<>*/ caml_call2(Stdlib[28], msg, _B_); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[1], _C_); + _C_ = /*<>*/ caml_call2(Stdlib[28], msg, _B_); + /*<>*/ return caml_call1(Stdlib[1], _C_) /*<>*/ ; } - /*<>*/ return /*<>*/ caml_call2 - (ef, ib, exc); - } - var f = f$1, args = args$1; - /*<>*/ for(;;){ - if(! args) - /*<>*/ return /*<>*/ caml_call1 - (af, f); - /*<>*/ var - args$0 = args[2], + /*<>*/ return caml_call2(ef, ib, exc) /*<>*/ ; + } + var f = /*<>*/ f$1, args = args$1; + for(;;){ + /*<>*/ if(! args) + /*<>*/ return caml_call1(af, f); + var + args$0 = /*<>*/ args[2], x = args[1], - /*<>*/ f$0 = - /*<>*/ caml_call1(f, x); - f = f$0; + f$0 = /*<>*/ caml_call1(f, x); + /*<>*/ f = f$0; args = args$0; } /*<>*/ } - /*<>*/ return take_format_readers(k, fmt); + /*<>*/ return take_format_readers(k, fmt) /*<>*/ ; } function kscanf(ib, ef, fmt){ /*<>*/ return kscanf_gen @@ -31186,8 +31622,8 @@ function(x){ /*<>*/ return x; /*<>*/ }, - fmt); - /*<>*/ } + fmt) /*<>*/ ; + } function kscanf_opt(ib, fmt){ /*<>*/ return kscanf_gen (ib, @@ -31197,79 +31633,79 @@ function(x){ /*<>*/ return [0, x]; /*<>*/ }, - fmt); - /*<>*/ } + fmt) /*<>*/ ; + } function bscanf(ib, fmt){ - /*<>*/ return kscanf(ib, scanf_bad_input, fmt); - /*<>*/ } + /*<>*/ return kscanf(ib, scanf_bad_input, fmt) /*<>*/ ; + } function bscanf_opt(ib, fmt){ - /*<>*/ return kscanf_opt(ib, fmt); - /*<>*/ } + /*<>*/ return kscanf_opt(ib, fmt) /*<>*/ ; + } function ksscanf(s, ef, fmt){ - /*<>*/ return kscanf(from_string(s), ef, fmt); - /*<>*/ } + /*<>*/ return /*<>*/ kscanf + ( /*<>*/ from_string(s), ef, fmt) /*<>*/ ; + } function sscanf(s, fmt){ - /*<>*/ return kscanf - (from_string(s), scanf_bad_input, fmt); - /*<>*/ } + /*<>*/ return /*<>*/ kscanf + ( /*<>*/ from_string(s), scanf_bad_input, fmt) /*<>*/ ; + } function sscanf_opt(s, fmt){ - /*<>*/ return kscanf_opt(from_string(s), fmt); - /*<>*/ } + /*<>*/ return /*<>*/ kscanf_opt + ( /*<>*/ from_string(s), fmt) /*<>*/ ; + } function scanf(fmt){ - /*<>*/ return kscanf(stdin, scanf_bad_input, fmt); - /*<>*/ } + /*<>*/ return kscanf(stdin, scanf_bad_input, fmt) /*<>*/ ; + } function scanf_opt(fmt){ - /*<>*/ return kscanf_opt(stdin, fmt); - /*<>*/ } + /*<>*/ return kscanf_opt(stdin, fmt) /*<>*/ ; + } function bscanf_format(ib, format, f){ - /*<>*/ scan_caml_string(Stdlib[19], ib); - /*<>*/ /*<>*/ var - str = token_string(ib); + /*<>*/ scan_caml_string(Stdlib[19], ib); + var str = /*<>*/ token_string(ib); /*<>*/ try{ - /*<>*/ var - /*<>*/ _x_ = + var + _x_ = /*<>*/ caml_call2 (CamlinternalFormat[15], str, format), fmt = _x_; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); if(exn[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(exn, 0); - var msg = exn[2], fmt = bad_input(msg); + var + msg = exn[2], + fmt = /*<>*/ /*<>*/ bad_input(msg); } - /*<>*/ return /*<>*/ caml_call1 - (f, fmt); - /*<>*/ } + /*<>*/ return caml_call1(f, fmt) /*<>*/ ; + } function sscanf_format(s, format, f){ - /*<>*/ return bscanf_format(from_string(s), format, f); - /*<>*/ } + /*<>*/ return /*<>*/ bscanf_format + ( /*<>*/ from_string(s), format, f) /*<>*/ ; + } function format_from_string(s, fmt){ - /*<>*/ var - /*<>*/ _v_ = - /*<>*/ caml_call1(Stdlib_String[25], s), - /*<>*/ _w_ = - /*<>*/ caml_call2(Stdlib[28], _v_, cst$1); - /*<>*/ return sscanf_format + var + _v_ = /*<>*/ caml_call1(Stdlib_String[25], s), + _w_ = caml_call2(Stdlib[28], _v_, cst$1); + /*<>*/ return /*<>*/ sscanf_format ( /*<>*/ caml_call2(Stdlib[28], cst$2, _w_), fmt, function(x){ /*<>*/ return x; - /*<>*/ }); - /*<>*/ } + /*<>*/ }) /*<>*/ ; + } function unescaped(s){ - /*<>*/ /*<>*/ var - _u_ = /*<>*/ caml_call2(Stdlib[28], s, cst$3); - /*<>*/ return /*<>*/ caml_call1 + var _u_ = /*<>*/ caml_call2(Stdlib[28], s, cst$3); + /*<>*/ return /*<>*/ caml_call1 (sscanf ( /*<>*/ caml_call2(Stdlib[28], cst$4, _u_), _t_), function(x){ /*<>*/ return x; - /*<>*/ }); - /*<>*/ } + /*<>*/ }) /*<>*/ ; + } var Stdlib_Scanf = - [0, + /*<>*/ [0, [0, stdin, open_in, @@ -31313,19 +31749,15 @@ Stdlib_Obj = global_data.Stdlib__Obj, register = caml_register_named_value; function register_exception(name, exn){ - /*<>*/ var - _a_ = Stdlib_Obj[10], - slot = - /*<>*/ runtime.caml_obj_tag(exn) === _a_ - ? exn - : exn[1]; - /*<>*/ return /*<>*/ caml_register_named_value - (name, slot); - /*<>*/ } - var Stdlib_Callback = [0, register, register_exception]; + var + _a_ = /*<>*/ Stdlib_Obj[10], + slot = runtime.caml_obj_tag(exn) === _a_ ? exn : exn[1]; + /*<>*/ return caml_register_named_value(name, slot) /*<>*/ ; + } + var Stdlib_Callback = /*<>*/ [0, register, register_exception]; runtime.caml_register_global(1, Stdlib_Callback, "Stdlib__Callback"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: CamlinternalOO @@ -31345,22 +31777,22 @@ caml_set_oo_id = runtime.caml_set_oo_id, caml_string_compare = runtime.caml_string_compare, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call5(f, a0, a1, a2, a3, a4){ + function caml_call5(f, a0, a1, a2, a3, a4){ return (f.l >= 0 ? f.l : f.l = f.length) === 5 ? f(a0, a1, a2, a3, a4) : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); @@ -31375,85 +31807,87 @@ Stdlib_List = global_data.Stdlib__List, Stdlib_Map = global_data.Stdlib__Map; function copy(o){ - /*<>*/ /*<>*/ var - o$0 = /*<>*/ o.slice(); - /*<>*/ return /*<>*/ caml_set_oo_id - (o$0); - /*<>*/ } - /*<>*/ /*<>*/ var - params = [0, 1, 1, 1, 3, 16]; + var o$0 = /*<>*/ o.slice(); + /*<>*/ return caml_set_oo_id(o$0) /*<>*/ ; + } + var params = /*<>*/ [0, 1, 1, 1, 3, 16]; function public_method_label(s){ - /*<>*/ var - /*<>*/ accu = [0, 0], - _al_ = runtime.caml_ml_string_length(s) - 1 | 0, - /*<>*/ _ak_ = 0; + var + accu = /*<>*/ [0, 0], + _al_ = + /*<>*/ runtime.caml_ml_string_length(s) - 1 + | 0, + _ak_ = 0; if(_al_ >= 0){ var i = _ak_; for(;;){ - /*<>*/ /*<>*/ var + var _am_ = /*<>*/ runtime.caml_string_get(s, i); - accu[1] = (223 * accu[1] | 0) + _am_ | 0; - /*<>*/ /*<>*/ var - _an_ = i + 1 | 0; + /*<>*/ accu[1] = + (223 * accu[1] | 0) + _am_ | 0; + var _an_ = i + 1 | 0; if(_al_ === i) break; i = _an_; } } - accu[1] = accu[1] & 2147483647; - var tag = 1073741823 < accu[1] ? accu[1] + 2147483648 | 0 : accu[1]; + /*<>*/ accu[1] = accu[1] & 2147483647; + var + tag = + /*<>*/ 1073741823 < accu[1] + ? accu[1] + 2147483648 | 0 + : accu[1]; /*<>*/ return tag; /*<>*/ } - /*<>*/ var - compare = caml_string_compare, + var + compare = /*<>*/ caml_string_compare, Vars = caml_call1(Stdlib_Map[1], [0, compare]), compare$0 = caml_string_compare, Meths = caml_call1(Stdlib_Map[1], [0, compare$0]), compare$1 = runtime.caml_int_compare, Labs = caml_call1(Stdlib_Map[1], [0, compare$1]), - /*<>*/ dummy_table = - [0, 0, [0, 0], Meths[1], Labs[1], 0, 0, Vars[1], 0], - /*<>*/ table_count = [0, 0], - /*<>*/ dummy_met = - /*<>*/ caml_obj_block(0, 0), - /*<>*/ initial_object_size = 2; + dummy_table = [0, 0, [0, 0], Meths[1], Labs[1], 0, 0, Vars[1], 0], + table_count = [0, 0], + dummy_met = /*<>*/ caml_obj_block(0, 0), + initial_object_size = /*<>*/ 2; function fit_size(n){ /*<>*/ return 2 < n - ? fit_size((n + 1 | 0) / 2 | 0) * 2 | 0 - : n; - /*<>*/ } + ? /*<>*/ fit_size + ((n + 1 | 0) / 2 | 0) + * 2 + | 0 + : n /*<>*/ ; + } function new_table(pub_labels){ /*<>*/ table_count[1]++; - /*<>*/ var - len = pub_labels.length - 1, - /*<>*/ methods = + var + len = /*<>*/ pub_labels.length - 1, + methods = /*<>*/ caml_make_vect ((len * 2 | 0) + 2 | 0, dummy_met); /*<>*/ caml_check_bound(methods, 0)[1] = len; var - _ad_ = Stdlib_Sys[9], + _ad_ = /*<>*/ Stdlib_Sys[9], _ae_ = - ( /*<>*/ runtime.caml_mul - (fit_size(len), _ad_) + ( /*<>*/ runtime.caml_mul + ( /*<>*/ fit_size(len), _ad_) / 8 | 0) - 1 | 0; /*<>*/ caml_check_bound(methods, 1)[2] = _ae_; - /*<>*/ var - _ag_ = len - 1 | 0, - /*<>*/ _af_ = 0; + var _ag_ = /*<>*/ len - 1 | 0, _af_ = 0; if(_ag_ >= 0){ var i = _af_; for(;;){ - /*<>*/ var - _ai_ = (i * 2 | 0) + 3 | 0, - /*<>*/ _ah_ = - caml_check_bound(pub_labels, i)[1 + i]; + var + _ai_ = /*<>*/ (i * 2 | 0) + 3 | 0, + _ah_ = + /*<>*/ caml_check_bound(pub_labels, i) + [1 + i]; /*<>*/ caml_check_bound(methods, _ai_) [1 + _ai_] = _ah_; - /*<>*/ /*<>*/ var - _aj_ = i + 1 | 0; + var _aj_ = /*<>*/ i + 1 | 0; if(_ag_ === i) break; i = _aj_; } @@ -31469,25 +31903,25 @@ 0]; /*<>*/ } function resize(array, new_size){ - /*<>*/ var - old_size = array[2].length - 1, - _ab_ = old_size < new_size ? 1 : 0; + var + old_size = /*<>*/ array[2].length - 1, + _ab_ = /*<>*/ old_size < new_size ? 1 : 0; if(_ab_){ - /*<>*/ /*<>*/ var + var new_buck = /*<>*/ caml_make_vect(new_size, dummy_met); - /*<>*/ /*<>*/ caml_call5 + /*<>*/ caml_call5 (Stdlib_Array[9], array[2], 0, new_buck, 0, old_size); - array[2] = new_buck; + /*<>*/ array[2] = new_buck; var _ac_ = 0; } else - var _ac_ = _ab_; + var _ac_ = /*<>*/ _ab_; return _ac_; /*<>*/ } - /*<>*/ var - /*<>*/ method_count = [0, 0], - /*<>*/ inst_var_count = [0, 0], + var + method_count = /*<>*/ [0, 0], + inst_var_count = [0, 0], _a_ = [0, cst_camlinternalOO_ml, 279, 50], _b_ = [0, cst_camlinternalOO_ml, 407, 13], _c_ = [0, cst_camlinternalOO_ml, 410, 13], @@ -31496,257 +31930,263 @@ _f_ = [0, cst_camlinternalOO_ml, 419, 13], _g_ = [0, cst_camlinternalOO_ml, 437, 17]; function new_method(table){ - /*<>*/ var index = table[2].length - 1; + var index = /*<>*/ table[2].length - 1; /*<>*/ resize(table, index + 1 | 0); - /*<>*/ return index; + /*<>*/ return index; /*<>*/ } function get_method_label(table, name){ /*<>*/ try{ - /*<>*/ /*<>*/ var + var _$_ = /*<>*/ caml_call2(Meths[17], name, table[3]); - /*<>*/ return _$_; + return _$_; } catch(_aa_){ - var ___ = caml_wrap_exception(_aa_); + var ___ = /*<>*/ caml_wrap_exception(_aa_); if(___ !== Stdlib[8]) throw caml_maybe_attach_backtrace(___, 0); - /*<>*/ /*<>*/ var - label = new_method(table); - table[3] = - /*<>*/ caml_call3 - (Meths[2], name, label, table[3]); - table[4] = - /*<>*/ caml_call3 - (Labs[2], label, 1, table[4]); + var label = /*<>*/ new_method(table); + /*<>*/ table[3] = + caml_call3(Meths[2], name, label, table[3]); + /*<>*/ table[4] = + caml_call3(Labs[2], label, 1, table[4]); /*<>*/ return label; } /*<>*/ } function get_method_labels(table, names){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Array[14], - function(_Z_){ /*<>*/ return get_method_label(table, _Z_);}, - names); - /*<>*/ } + function(_Z_){ + /*<>*/ return get_method_label + (table, _Z_); + }, + names) /*<>*/ ; + } function set_method(table, label, element){ /*<>*/ method_count[1]++; - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Labs[17], label, table[4]) - ? (resize + ? ( /*<>*/ resize (table, label + 1 | 0), - caml_check_bound(table[2], label)[1 + label] = element, + /*<>*/ caml_check_bound + (table[2], label) + [1 + label] + = element, 0) - : (table[6] = [0, [0, label, element], table[6]], 0); - /*<>*/ } + : (table[6] = [0, [0, label, element], table[6]], 0) /*<>*/ ; + } function get_method(table, label){ /*<>*/ try{ - /*<>*/ /*<>*/ var + var _X_ = /*<>*/ caml_call2 (Stdlib_List[49], label, table[6]); - /*<>*/ return _X_; + return _X_; } catch(_Y_){ - var _W_ = caml_wrap_exception(_Y_); + var _W_ = /*<>*/ caml_wrap_exception(_Y_); if(_W_ === Stdlib[8]) /*<>*/ return caml_check_bound (table[2], label) - [1 + label]; - throw caml_maybe_attach_backtrace(_W_, 0); + [1 + label] /*<>*/ ; + /*<>*/ throw caml_maybe_attach_backtrace(_W_, 0); } /*<>*/ } function to_list(arr){ /*<>*/ return 0 === arr ? 0 : /*<>*/ caml_call1 - (Stdlib_Array[10], arr); - /*<>*/ } + (Stdlib_Array[10], arr) /*<>*/ ; + } function narrow(table, vars, virt_meths, concr_meths){ - /*<>*/ var - /*<>*/ vars$0 = to_list(vars), - /*<>*/ virt_meths$0 = to_list(virt_meths), - /*<>*/ concr_meths$0 = to_list(concr_meths), - /*<>*/ virt_meth_labs = + var + vars$0 = /*<>*/ to_list(vars), + virt_meths$0 = /*<>*/ to_list(virt_meths), + concr_meths$0 = /*<>*/ to_list(concr_meths), + virt_meth_labs = /*<>*/ caml_call2 (Stdlib_List[20], - function(_V_){ /*<>*/ return get_method_label(table, _V_);}, + function(_V_){ + /*<>*/ return get_method_label + (table, _V_); + }, virt_meths$0), - /*<>*/ concr_meth_labs = + concr_meth_labs = /*<>*/ caml_call2 (Stdlib_List[20], - function(_U_){ /*<>*/ return get_method_label(table, _U_);}, + function(_U_){ + /*<>*/ return get_method_label + (table, _U_); + }, concr_meths$0); - table[5] = + /*<>*/ table[5] = [0, [0, table[3], table[4], table[6], table[7], virt_meth_labs, vars$0], table[5]]; - table[7] = - /*<>*/ caml_call3 + /*<>*/ table[7] = + caml_call3 (Vars[24], function(lab, info, tvars){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_List[37], lab, vars$0) ? /*<>*/ caml_call3 (Vars[2], lab, info, tvars) - : tvars; - /*<>*/ }, + : tvars /*<>*/ ; + }, table[7], Vars[1]); - /*<>*/ var - /*<>*/ by_name = [0, Meths[1]], - /*<>*/ by_label = [0, Labs[1]]; - /*<>*/ /*<>*/ caml_call3 + var + by_name = /*<>*/ [0, Meths[1]], + by_label = /*<>*/ [0, Labs[1]]; + /*<>*/ caml_call3 (Stdlib_List[28], function(met, label){ - /*<>*/ by_name[1] = - /*<>*/ caml_call3 - (Meths[2], met, label, by_name[1]); - var _P_ = by_label[1]; + /*<>*/ by_name[1] = + caml_call3(Meths[2], met, label, by_name[1]); + var _P_ = /*<>*/ by_label[1]; try{ - /*<>*/ var - /*<>*/ _S_ = + var + _S_ = /*<>*/ caml_call2 (Labs[17], label, table[4]), _R_ = _S_; } catch(_T_){ - var _Q_ = caml_wrap_exception(_T_); + var _Q_ = /*<>*/ caml_wrap_exception(_T_); if(_Q_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_Q_, 0); - var _R_ = 1; + var _R_ = /*<>*/ 1; } - by_label[1] = - /*<>*/ caml_call3(Labs[2], label, _R_, _P_); - return 0; - /*<>*/ }, + /*<>*/ by_label[1] = + caml_call3(Labs[2], label, _R_, _P_); + /*<>*/ return 0; + }, concr_meths$0, concr_meth_labs); - /*<>*/ /*<>*/ caml_call3 + /*<>*/ caml_call3 (Stdlib_List[28], function(met, label){ - /*<>*/ by_name[1] = - /*<>*/ caml_call3 - (Meths[2], met, label, by_name[1]); - by_label[1] = - /*<>*/ caml_call3 - (Labs[2], label, 0, by_label[1]); - return 0; - /*<>*/ }, + /*<>*/ by_name[1] = + caml_call3(Meths[2], met, label, by_name[1]); + /*<>*/ by_label[1] = + caml_call3(Labs[2], label, 0, by_label[1]); + /*<>*/ return 0; + }, virt_meths$0, virt_meth_labs); - table[3] = by_name[1]; - table[4] = by_label[1]; - table[6] = - /*<>*/ caml_call3 + /*<>*/ table[3] = by_name[1]; + /*<>*/ table[4] = by_label[1]; + /*<>*/ table[6] = + caml_call3 (Stdlib_List[27], function(met, hm){ - /*<>*/ var lab = met[1]; - /*<>*/ return /*<>*/ caml_call2 + var lab = /*<>*/ met[1]; + /*<>*/ return caml_call2 (Stdlib_List[37], lab, virt_meth_labs) ? hm - : [0, met, hm]; - /*<>*/ }, + : [0, met, hm] /*<>*/ ; + }, table[6], 0); - return 0; - /*<>*/ } + /*<>*/ return 0; + } function widen(table){ - /*<>*/ var - /*<>*/ match = + var + match = /*<>*/ caml_call1(Stdlib_List[6], table[5]), - vars = match[6], + vars = /*<>*/ match[6], virt_meths = match[5], saved_vars = match[4], saved_hidden_meths = match[3], by_label = match[2], by_name = match[1]; - table[5] = - /*<>*/ caml_call1(Stdlib_List[7], table[5]); - table[7] = - /*<>*/ caml_call3 + /*<>*/ table[5] = + caml_call1(Stdlib_List[7], table[5]); + /*<>*/ table[7] = + caml_call3 (Stdlib_List[26], function(s, v){ - /*<>*/ /*<>*/ var + var _O_ = /*<>*/ caml_call2(Vars[17], v, table[7]); - /*<>*/ return /*<>*/ caml_call3 - (Vars[2], v, _O_, s); - /*<>*/ }, + /*<>*/ return caml_call3 + (Vars[2], v, _O_, s) /*<>*/ ; + }, saved_vars, vars); - table[3] = by_name; - table[4] = by_label; - table[6] = - /*<>*/ caml_call3 + /*<>*/ table[3] = by_name; + /*<>*/ table[4] = by_label; + /*<>*/ table[6] = + caml_call3 (Stdlib_List[27], function(met, hm){ - /*<>*/ var lab = met[1]; - /*<>*/ return /*<>*/ caml_call2 + var lab = /*<>*/ met[1]; + /*<>*/ return caml_call2 (Stdlib_List[37], lab, virt_meths) ? hm - : [0, met, hm]; - /*<>*/ }, + : [0, met, hm] /*<>*/ ; + }, table[6], saved_hidden_meths); - return 0; - /*<>*/ } + /*<>*/ return 0; + } function new_variable(table, name){ /*<>*/ try{ - /*<>*/ /*<>*/ var + var _M_ = /*<>*/ caml_call2(Vars[17], name, table[7]); - /*<>*/ return _M_; + return _M_; } catch(_N_){ - var _L_ = caml_wrap_exception(_N_); + var _L_ = /*<>*/ caml_wrap_exception(_N_); if(_L_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_L_, 0); - var index = table[1]; - table[1] = index + 1 | 0; - /*<>*/ if(name !== "") - table[7] = - /*<>*/ caml_call3 - (Vars[2], name, index, table[7]); + var index = /*<>*/ table[1]; + /*<>*/ table[1] = index + 1 | 0; + /*<>*/ if(name !== "") + /*<>*/ table[7] = + caml_call3(Vars[2], name, index, table[7]); /*<>*/ return index; } /*<>*/ } function to_array(arr){ - /*<>*/ return /*<>*/ runtime.caml_equal - (arr, 0) + /*<>*/ return runtime.caml_equal(arr, 0) ? [0] - : arr; - /*<>*/ } + : arr /*<>*/ ; + } function new_methods_variables(table, meths, vals){ - /*<>*/ var - /*<>*/ meths$0 = to_array(meths), - /*<>*/ nmeths = meths$0.length - 1, + var + meths$0 = /*<>*/ to_array(meths), + nmeths = /*<>*/ meths$0.length - 1, nvals = vals.length - 1, - /*<>*/ res = + res = /*<>*/ caml_make_vect(nmeths + nvals | 0, 0), - /*<>*/ _D_ = nmeths - 1 | 0, - /*<>*/ _C_ = 0; + _D_ = /*<>*/ nmeths - 1 | 0, + _C_ = 0; if(_D_ >= 0){ var i$0 = _C_; for(;;){ - /*<>*/ /*<>*/ var - _J_ = get_method_label(table, caml_check_bound(meths$0, i$0)[1 + i$0]); + var + _J_ = + /*<>*/ /*<>*/ get_method_label + (table, + /*<>*/ caml_check_bound(meths$0, i$0) + [1 + i$0]); /*<>*/ caml_check_bound(res, i$0)[1 + i$0] = _J_; - /*<>*/ /*<>*/ var - _K_ = i$0 + 1 | 0; + var _K_ = /*<>*/ i$0 + 1 | 0; if(_D_ === i$0) break; i$0 = _K_; } } - /*<>*/ var - _F_ = nvals - 1 | 0, - /*<>*/ _E_ = 0; + var _F_ = /*<>*/ nvals - 1 | 0, _E_ = 0; if(_F_ >= 0){ var i = _E_; for(;;){ - /*<>*/ var - _H_ = i + nmeths | 0, - /*<>*/ _G_ = - new_variable(table, caml_check_bound(vals, i)[1 + i]); + var + _H_ = /*<>*/ i + nmeths | 0, + _G_ = + /*<>*/ /*<>*/ new_variable + (table, + /*<>*/ caml_check_bound(vals, i)[1 + i]); /*<>*/ caml_check_bound(res, _H_)[1 + _H_] = _G_; - /*<>*/ /*<>*/ var - _I_ = i + 1 | 0; + var _I_ = /*<>*/ i + 1 | 0; if(_F_ === i) break; i = _I_; } @@ -31755,296 +32195,312 @@ /*<>*/ } function get_variable(table, name){ /*<>*/ try{ - /*<>*/ /*<>*/ var + var _A_ = /*<>*/ caml_call2(Vars[17], name, table[7]); - /*<>*/ return _A_; + return _A_; } catch(_B_){ - var _z_ = caml_wrap_exception(_B_); + var _z_ = /*<>*/ caml_wrap_exception(_B_); if(_z_ === Stdlib[8]) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _a_], 1); - throw caml_maybe_attach_backtrace(_z_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_z_, 0); } /*<>*/ } function get_variables(table, names){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Array[14], - function(_y_){ /*<>*/ return get_variable(table, _y_);}, - names); - /*<>*/ } + function(_y_){ + /*<>*/ return get_variable + (table, _y_); + }, + names) /*<>*/ ; + } function add_initializer(table, f){ /*<>*/ table[8] = [0, f, table[8]]; return 0; /*<>*/ } function create_table(public_methods){ /*<>*/ if(0 === public_methods) - /*<>*/ return new_table([0]); - /*<>*/ var - /*<>*/ tags = + /*<>*/ return new_table([0]) /*<>*/ ; + var + tags = /*<>*/ caml_call2 (Stdlib_Array[14], public_method_label, public_methods), - /*<>*/ table = new_table(tags); - /*<>*/ /*<>*/ caml_call2 + table = /*<>*/ new_table(tags); + /*<>*/ caml_call2 (Stdlib_Array[13], function(i, met){ - /*<>*/ var lab = (i * 2 | 0) + 2 | 0; - table[3] = - /*<>*/ caml_call3 - (Meths[2], met, lab, table[3]); - table[4] = - /*<>*/ caml_call3 - (Labs[2], lab, 1, table[4]); - return 0; - /*<>*/ }, + var lab = /*<>*/ (i * 2 | 0) + 2 | 0; + /*<>*/ table[3] = + caml_call3(Meths[2], met, lab, table[3]); + /*<>*/ table[4] = + caml_call3(Labs[2], lab, 1, table[4]); + /*<>*/ return 0; + }, public_methods); - /*<>*/ return table; + /*<>*/ return table; /*<>*/ } function init_class(table){ /*<>*/ inst_var_count[1] = (inst_var_count[1] + table[1] | 0) - 1 | 0; - table[8] = - /*<>*/ caml_call1(Stdlib_List[10], table[8]); - /*<>*/ /*<>*/ var - _x_ = Stdlib_Sys[9]; - return resize + /*<>*/ table[8] = + caml_call1(Stdlib_List[10], table[8]); + var _x_ = /*<>*/ Stdlib_Sys[9]; + return /*<>*/ resize (table, - 3 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _x_) | 0); - /*<>*/ } + 3 + + + caml_div + ( /*<>*/ caml_check_bound + (table[2], 1) + [2] + * 16 + | 0, + _x_) + | 0) /*<>*/ ; + } function inherits(cla, vals, virt_meths, concr_meths, param, top){ - var env = param[4], super$0 = param[2]; + var env = /*<>*/ param[4], super$0 = param[2]; /*<>*/ narrow (cla, vals, virt_meths, concr_meths); var init = - top + /*<>*/ top ? /*<>*/ caml_call2(super$0, cla, env) : /*<>*/ caml_call1(super$0, cla); /*<>*/ widen(cla); - /*<>*/ var - /*<>*/ _s_ = to_array(concr_meths), + var + _s_ = /*<>*/ to_array(concr_meths), _t_ = - [0, - /*<>*/ caml_call2 + /*<>*/ [0, + caml_call2 (Stdlib_Array[14], function(nm){ - /*<>*/ return get_method - (cla, get_method_label(cla, nm)); - /*<>*/ }, + /*<>*/ return /*<>*/ get_method + (cla, + /*<>*/ get_method_label(cla, nm)) /*<>*/ ; + }, _s_), 0], - /*<>*/ _u_ = to_array(vals), - /*<>*/ _v_ = - [0, + _u_ = /*<>*/ to_array(vals), + _v_ = + /*<>*/ [0, [0, init], [0, - /*<>*/ caml_call2 + caml_call2 (Stdlib_Array[14], - function(_w_){ /*<>*/ return get_variable(cla, _w_);}, + function(_w_){ + /*<>*/ return get_variable(cla, _w_); + }, _u_), _t_]]; - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Array[5], _v_); + /*<>*/ return caml_call1(Stdlib_Array[5], _v_) /*<>*/ ; } function make_class(pub_meths, class_init){ - /*<>*/ var - /*<>*/ table = create_table(pub_meths), - /*<>*/ env_init = + var + table = /*<>*/ create_table(pub_meths), + env_init = /*<>*/ caml_call1(class_init, table); /*<>*/ init_class(table); - /*<>*/ return [0, - /*<>*/ caml_call1(env_init, 0), + /*<>*/ return [0, + caml_call1(env_init, 0), class_init, env_init, - 0]; + 0] /*<>*/ ; /*<>*/ } function make_class_store(pub_meths, class_init, init_table){ - /*<>*/ var - /*<>*/ table = create_table(pub_meths), - /*<>*/ env_init = + var + table = /*<>*/ create_table(pub_meths), + env_init = /*<>*/ caml_call1(class_init, table); /*<>*/ init_class(table); - init_table[2] = class_init; - init_table[1] = env_init; + /*<>*/ init_table[2] = class_init; + /*<>*/ init_table[1] = env_init; return 0; /*<>*/ } function dummy_class(loc){ function undef(param){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stdlib[15], loc], 1); /*<>*/ } /*<>*/ return [0, undef, undef, undef, 0]; /*<>*/ } function create_object(table){ - /*<>*/ /*<>*/ var + var obj = /*<>*/ caml_obj_block (Stdlib_Obj[10], table[1]); /*<>*/ obj[1] = table[2]; - /*<>*/ return /*<>*/ caml_set_oo_id - (obj); - /*<>*/ } + /*<>*/ return caml_set_oo_id(obj) /*<>*/ ; + } function create_object_opt(obj_0, table){ /*<>*/ if(obj_0) /*<>*/ return obj_0; - /*<>*/ /*<>*/ var + var obj = /*<>*/ caml_obj_block (Stdlib_Obj[10], table[1]); /*<>*/ obj[1] = table[2]; - /*<>*/ return /*<>*/ caml_set_oo_id - (obj); - /*<>*/ } + /*<>*/ return caml_set_oo_id(obj) /*<>*/ ; + } function iter_f(obj, param){ - var param$0 = param; + var param$0 = /*<>*/ param; for(;;){ if(! param$0) /*<>*/ return 0; - var l = param$0[2], f = param$0[1]; - /*<>*/ /*<>*/ caml_call1 - (f, obj); - param$0 = l; + var l = /*<>*/ param$0[2], f = param$0[1]; + /*<>*/ caml_call1(f, obj); + /*<>*/ param$0 = l; } - } + /*<>*/ } function run_initializers(obj, table){ - /*<>*/ var - inits = table[8], - _r_ = 0 !== inits ? 1 : 0; - return _r_ ? iter_f(obj, inits) : _r_; - /*<>*/ } + var + inits = /*<>*/ table[8], + _r_ = /*<>*/ 0 !== inits ? 1 : 0; + return _r_ ? /*<>*/ iter_f(obj, inits) : _r_ /*<>*/ ; + } function run_initializers_opt(obj_0, obj, table){ /*<>*/ if(obj_0) /*<>*/ return obj; - var inits = table[8]; - if(0 !== inits) /*<>*/ iter_f(obj, inits); - /*<>*/ return obj; + var inits = /*<>*/ table[8]; + /*<>*/ if(0 !== inits) + /*<>*/ iter_f(obj, inits); + /*<>*/ return obj; /*<>*/ } function create_object_and_run_initiali(obj_0, table){ /*<>*/ if(obj_0) /*<>*/ return obj_0; - /*<>*/ /*<>*/ var - obj = create_object(table); + var obj = /*<>*/ create_object(table); /*<>*/ run_initializers(obj, table); - /*<>*/ return obj; + /*<>*/ return obj; /*<>*/ } function get_data(param){ /*<>*/ if(param) /*<>*/ return param[2]; - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _e_], 1); /*<>*/ } function build_path(n, keys, tables){ - /*<>*/ var - /*<>*/ res = [0, 0, 0, 0], - /*<>*/ r = [0, res], - /*<>*/ _o_ = 0; + var + res = /*<>*/ [0, 0, 0, 0], + r = /*<>*/ [0, res], + _o_ = /*<>*/ 0; if(n >= 0){ var i = _o_; for(;;){ - var _p_ = r[1]; + var _p_ = /*<>*/ r[1]; r[1] = [0, caml_check_bound(keys, i)[1 + i], _p_, 0]; - /*<>*/ /*<>*/ var - _q_ = i + 1 | 0; + var _q_ = /*<>*/ i + 1 | 0; if(n === i) break; i = _q_; } } - var v = r[1]; - if(! tables) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var v = /*<>*/ r[1]; + /*<>*/ if(! tables) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _b_], 1); - tables[2] = v; - /*<>*/ return res; + /*<>*/ tables[2] = v; + /*<>*/ return res; /*<>*/ } function lookup_tables(root, keys){ - /*<>*/ /*<>*/ var - root_data = get_data(root); - if(! root_data) + var root_data = /*<>*/ get_data(root); + /*<>*/ if(! root_data) /*<>*/ return build_path - (keys.length - 2 | 0, keys, root); - var i$1 = keys.length - 2 | 0, i = i$1, tables$0 = root_data; - /*<>*/ for(;;){ - if(0 > i) /*<>*/ return tables$0; - /*<>*/ var - /*<>*/ key = caml_check_bound(keys, i)[1 + i], - tables$1 = tables$0; - /*<>*/ for(;;){ - if(! tables$1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + (keys.length - 2 | 0, keys, root) /*<>*/ ; + var + i$1 = /*<>*/ keys.length - 2 | 0, + i = i$1, + tables$0 = root_data; + for(;;){ + /*<>*/ if(0 > i) + /*<>*/ return tables$0; + var + key = /*<>*/ caml_check_bound(keys, i)[1 + i], + tables$1 = /*<>*/ tables$0; + for(;;){ + /*<>*/ if(! tables$1) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _d_], 1); - if(tables$1[1] === key) break; - if(! tables$1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(tables$1[1] === key) break; + /*<>*/ if(! tables$1) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _f_], 1); - /*<>*/ /*<>*/ var - tables = tables$1[3]; - if(! tables){ - /*<>*/ /*<>*/ var - next = [0, key, 0, 0]; - if(! tables$1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var tables = /*<>*/ tables$1[3]; + /*<>*/ if(! tables){ + var next = /*<>*/ [0, key, 0, 0]; + /*<>*/ if(! tables$1) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _c_], 1); - tables$1[3] = next; - /*<>*/ return build_path - (i - 1 | 0, keys, next); + /*<>*/ tables$1[3] = next; + /*<>*/ return build_path + (i - 1 | 0, keys, next) /*<>*/ ; } - tables$1 = tables; + /*<>*/ tables$1 = tables; } - /*<>*/ /*<>*/ var - tables_data = get_data(tables$1); - if(! tables_data) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var tables_data = /*<>*/ get_data(tables$1); + /*<>*/ if(! tables_data) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _g_], 1); - var i$0 = i - 1 | 0; + var i$0 = /*<>*/ i - 1 | 0; i = i$0; tables$0 = tables_data; } /*<>*/ } function new_cache(table){ - /*<>*/ /*<>*/ var - n = new_method(table); + var n = /*<>*/ new_method(table); a: { - if(0 !== (n % 2 | 0)){ - var _n_ = Stdlib_Sys[9]; + /*<>*/ if(0 !== (n % 2 | 0)){ + var _n_ = /*<>*/ Stdlib_Sys[9]; if - ((2 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _n_) | 0) + ((2 + + + /*<>*/ caml_div + ( /*<>*/ caml_check_bound(table[2], 1)[2] + * 16 + | 0, + _n_) + | 0) >= n){ - var n$0 = new_method(table); + var + n$0 = + /*<>*/ /*<>*/ new_method + (table); break a; } } - var n$0 = n; + var n$0 = /*<>*/ n; } /*<>*/ caml_check_bound(table[2], n$0)[1 + n$0] = 0; - /*<>*/ return n$0; + /*<>*/ return n$0; /*<>*/ } function set_methods(table, methods){ - /*<>*/ var - len = methods.length - 1, - /*<>*/ i = [0, 0]; - for(;;){ + var + len = /*<>*/ methods.length - 1, + i = /*<>*/ [0, 0]; + /*<>*/ for(;;){ if(i[1] >= len) return 0; - /*<>*/ var - _h_ = i[1], - /*<>*/ label = - caml_check_bound(methods, _h_)[1 + _h_], + var + _h_ = /*<>*/ i[1], + label = + /*<>*/ caml_check_bound(methods, _h_) + [1 + _h_], next = - function(param){ + /*<>*/ function(param){ /*<>*/ i[1]++; - var _m_ = i[1]; + var _m_ = /*<>*/ i[1]; /*<>*/ return caml_check_bound (methods, _m_) - [1 + _m_]; - /*<>*/ }, - /*<>*/ clo = next(0); - if(typeof clo === "number") + [1 + _m_] /*<>*/ ; + }, + clo = /*<>*/ next(0); + /*<>*/ if(typeof clo === "number") switch(clo){ case 0: - /*<>*/ /*<>*/ var - x = next(0); - let x$20 = x; + var x = /*<>*/ next(0); + let x$20 = /*<>*/ x; var clo$0 = function(obj){ @@ -32052,9 +32508,8 @@ /*<>*/ }; break; case 1: - /*<>*/ /*<>*/ var - n = next(0); - let n$38 = n; + var n = /*<>*/ next(0); + let n$38 = /*<>*/ n; var clo$0 = function(obj){ @@ -32062,10 +32517,10 @@ /*<>*/ }; break; case 2: - /*<>*/ var - /*<>*/ e = next(0), - /*<>*/ n$0 = next(0); - let e$10 = e, n$37 = n$0; + var + e = /*<>*/ next(0), + n$0 = /*<>*/ next(0); + let e$10 = /*<>*/ e, n$37 = n$0; var clo$0 = function(obj){ @@ -32073,20 +32528,18 @@ /*<>*/ }; break; case 3: - /*<>*/ /*<>*/ var - n$1 = next(0); - let n$36 = n$1; + var n$1 = /*<>*/ next(0); + let n$36 = /*<>*/ n$1; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call1 - (obj[1][1 + n$36], obj); - /*<>*/ }; + /*<>*/ return caml_call1 + (obj[1][1 + n$36], obj) /*<>*/ ; + }; break; case 4: - /*<>*/ /*<>*/ var - n$2 = next(0); - let n$35 = n$2; + var n$2 = /*<>*/ next(0); + let n$35 = /*<>*/ n$2; var clo$0 = function(obj, x){ @@ -32095,270 +32548,301 @@ /*<>*/ }; break; case 5: - /*<>*/ var - /*<>*/ f = next(0), - /*<>*/ x$0 = next(0); - let f$20 = f, x$19 = x$0; + var + f = /*<>*/ next(0), + x$0 = /*<>*/ next(0); + let f$20 = /*<>*/ f, x$19 = x$0; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call1 - (f$20, x$19); - /*<>*/ }; + /*<>*/ return caml_call1(f$20, x$19) /*<>*/ ; + }; break; case 6: - /*<>*/ var - /*<>*/ f$0 = next(0), - /*<>*/ n$3 = next(0); - let f$19 = f$0, n$34 = n$3; + var + f$0 = /*<>*/ next(0), + n$3 = /*<>*/ next(0); + let f$19 = /*<>*/ f$0, n$34 = n$3; var clo$0 = function(obj){ /*<>*/ return caml_call1 - (f$19, obj[1 + n$34]); - /*<>*/ }; + (f$19, obj[1 + n$34]) /*<>*/ ; + }; break; case 7: - /*<>*/ var - /*<>*/ f$1 = next(0), - /*<>*/ e$0 = next(0), - /*<>*/ n$4 = next(0); - let f$18 = f$1, e$9 = e$0, n$33 = n$4; + var + f$1 = /*<>*/ next(0), + e$0 = /*<>*/ next(0), + n$4 = /*<>*/ next(0); + let + f$18 = /*<>*/ f$1, + e$9 = e$0, + n$33 = n$4; var clo$0 = function(obj){ /*<>*/ return caml_call1 - (f$18, obj[1 + e$9][1 + n$33]); - /*<>*/ }; + (f$18, obj[1 + e$9][1 + n$33]) /*<>*/ ; + }; break; case 8: - /*<>*/ var - /*<>*/ f$2 = next(0), - /*<>*/ n$5 = next(0); - let f$17 = f$2, n$32 = n$5; + var + f$2 = /*<>*/ next(0), + n$5 = /*<>*/ next(0); + let f$17 = /*<>*/ f$2, n$32 = n$5; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ return /*<>*/ caml_call1 (f$17, /*<>*/ caml_call1 - (obj[1][1 + n$32], obj)); - /*<>*/ }; + (obj[1][1 + n$32], obj)) /*<>*/ ; + }; break; case 9: - /*<>*/ var - /*<>*/ f$3 = next(0), - /*<>*/ x$1 = next(0), - /*<>*/ y = next(0); - let f$16 = f$3, x$18 = x$1, y$0 = y; + var + f$3 = /*<>*/ next(0), + x$1 = /*<>*/ next(0), + y = /*<>*/ next(0); + let + f$16 = /*<>*/ f$3, + x$18 = x$1, + y$0 = y; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call2 - (f$16, x$18, y$0); - /*<>*/ }; + /*<>*/ return caml_call2 + (f$16, x$18, y$0) /*<>*/ ; + }; break; case 10: - /*<>*/ var - /*<>*/ f$4 = next(0), - /*<>*/ x$2 = next(0), - /*<>*/ n$6 = next(0); - let f$15 = f$4, x$17 = x$2, n$31 = n$6; + var + f$4 = /*<>*/ next(0), + x$2 = /*<>*/ next(0), + n$6 = /*<>*/ next(0); + let + f$15 = /*<>*/ f$4, + x$17 = x$2, + n$31 = n$6; var clo$0 = function(obj){ /*<>*/ return caml_call2 - (f$15, x$17, obj[1 + n$31]); - /*<>*/ }; + (f$15, x$17, obj[1 + n$31]) /*<>*/ ; + }; break; case 11: - /*<>*/ var - /*<>*/ f$5 = next(0), - /*<>*/ x$3 = next(0), - /*<>*/ e$1 = next(0), - /*<>*/ n$7 = next(0); - let f$14 = f$5, x$16 = x$3, e$8 = e$1, n$30 = n$7; + var + f$5 = /*<>*/ next(0), + x$3 = /*<>*/ next(0), + e$1 = /*<>*/ next(0), + n$7 = /*<>*/ next(0); + let + f$14 = /*<>*/ f$5, + x$16 = x$3, + e$8 = e$1, + n$30 = n$7; var clo$0 = function(obj){ /*<>*/ return caml_call2 - (f$14, x$16, obj[1 + e$8][1 + n$30]); - /*<>*/ }; + (f$14, x$16, obj[1 + e$8][1 + n$30]) /*<>*/ ; + }; break; case 12: - /*<>*/ var - /*<>*/ f$6 = next(0), - /*<>*/ x$4 = next(0), - /*<>*/ n$8 = next(0); - let f$13 = f$6, x$15 = x$4, n$29 = n$8; + var + f$6 = /*<>*/ next(0), + x$4 = /*<>*/ next(0), + n$8 = /*<>*/ next(0); + let + f$13 = /*<>*/ f$6, + x$15 = x$4, + n$29 = n$8; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return /*<>*/ caml_call2 (f$13, x$15, /*<>*/ caml_call1 - (obj[1][1 + n$29], obj)); - /*<>*/ }; + (obj[1][1 + n$29], obj)) /*<>*/ ; + }; break; case 13: - /*<>*/ var - /*<>*/ f$7 = next(0), - /*<>*/ n$9 = next(0), - /*<>*/ x$5 = next(0); - let f$12 = f$7, n$28 = n$9, x$14 = x$5; + var + f$7 = /*<>*/ next(0), + n$9 = /*<>*/ next(0), + x$5 = /*<>*/ next(0); + let + f$12 = /*<>*/ f$7, + n$28 = n$9, + x$14 = x$5; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call2 - (f$12, obj[1 + n$28], x$14); - /*<>*/ }; + /*<>*/ return caml_call2 + (f$12, obj[1 + n$28], x$14) /*<>*/ ; + }; break; case 14: - /*<>*/ var - /*<>*/ f$8 = next(0), - /*<>*/ e$2 = next(0), - /*<>*/ n$10 = next(0), - /*<>*/ x$6 = next(0); - let f$11 = f$8, e$7 = e$2, n$27 = n$10, x$13 = x$6; + var + f$8 = /*<>*/ next(0), + e$2 = /*<>*/ next(0), + n$10 = /*<>*/ next(0), + x$6 = /*<>*/ next(0); + let + f$11 = /*<>*/ f$8, + e$7 = e$2, + n$27 = n$10, + x$13 = x$6; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call2 - (f$11, obj[1 + e$7][1 + n$27], x$13); - /*<>*/ }; + /*<>*/ return caml_call2 + (f$11, obj[1 + e$7][1 + n$27], x$13) /*<>*/ ; + }; break; case 15: - /*<>*/ var - /*<>*/ f$9 = next(0), - /*<>*/ n$11 = next(0), - /*<>*/ x$7 = next(0); - let f$10 = f$9, n$26 = n$11, x$12 = x$7; + var + f$9 = /*<>*/ next(0), + n$11 = /*<>*/ next(0), + x$7 = /*<>*/ next(0); + let + f$10 = /*<>*/ f$9, + n$26 = n$11, + x$12 = x$7; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return /*<>*/ caml_call2 (f$10, /*<>*/ caml_call1 (obj[1][1 + n$26], obj), - x$12); - /*<>*/ }; + x$12) /*<>*/ ; + }; break; case 16: - /*<>*/ var - /*<>*/ n$12 = next(0), - /*<>*/ x$8 = next(0); - let n$25 = n$12, x$11 = x$8; + var + n$12 = /*<>*/ next(0), + x$8 = /*<>*/ next(0); + let n$25 = /*<>*/ n$12, x$11 = x$8; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call2 - (obj[1][1 + n$25], obj, x$11); - /*<>*/ }; + /*<>*/ return caml_call2 + (obj[1][1 + n$25], obj, x$11) /*<>*/ ; + }; break; case 17: - /*<>*/ var - /*<>*/ n$13 = next(0), - /*<>*/ m = next(0); - let n$24 = n$13, m$12 = m; + var + n$13 = /*<>*/ next(0), + m = /*<>*/ next(0); + let n$24 = /*<>*/ n$13, m$12 = m; var clo$0 = function(obj){ /*<>*/ return caml_call2 - (obj[1][1 + n$24], obj, obj[1 + m$12]); - /*<>*/ }; + (obj[1][1 + n$24], obj, obj[1 + m$12]) /*<>*/ ; + }; break; case 18: - /*<>*/ var - /*<>*/ n$14 = next(0), - /*<>*/ e$3 = next(0), - /*<>*/ m$0 = next(0); - let n$23 = n$14, e$6 = e$3, m$11 = m$0; + var + n$14 = /*<>*/ next(0), + e$3 = /*<>*/ next(0), + m$0 = /*<>*/ next(0); + let + n$23 = /*<>*/ n$14, + e$6 = e$3, + m$11 = m$0; var clo$0 = function(obj){ /*<>*/ return caml_call2 - (obj[1][1 + n$23], obj, obj[1 + e$6][1 + m$11]); - /*<>*/ }; + (obj[1][1 + n$23], obj, obj[1 + e$6][1 + m$11]) /*<>*/ ; + }; break; case 19: - /*<>*/ var - /*<>*/ n$15 = next(0), - /*<>*/ m$1 = next(0); - let n$22 = n$15, m$10 = m$1; + var + n$15 = /*<>*/ next(0), + m$1 = /*<>*/ next(0); + let n$22 = /*<>*/ n$15, m$10 = m$1; var clo$0 = function(obj){ - /*<>*/ /*<>*/ var + var _l_ = /*<>*/ caml_call1 (obj[1][1 + m$10], obj); - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (obj[1][1 + n$22], obj, _l_); - /*<>*/ }; + }; break; case 20: - /*<>*/ var - /*<>*/ m$2 = next(0), - /*<>*/ x$9 = next(0); + var + m$2 = /*<>*/ next(0), + x$9 = /*<>*/ next(0); /*<>*/ new_cache(table); - let m$9 = m$2, x$10 = x$9; + let m$9 = /*<>*/ m$2, x$10 = x$9; var clo$0 = function(obj){ - /*<>*/ return /*<>*/ caml_call1 - (caml_get_public_method(x$10, m$9, 0), x$10); - /*<>*/ }; + /*<>*/ return caml_call1 + (caml_get_public_method(x$10, m$9, 0), x$10) /*<>*/ ; + }; break; case 21: - /*<>*/ var - /*<>*/ m$3 = next(0), - /*<>*/ n$16 = next(0); + var + m$3 = /*<>*/ next(0), + n$16 = /*<>*/ next(0); /*<>*/ new_cache(table); - let m$8 = m$3, n$21 = n$16; + let m$8 = /*<>*/ m$3, n$21 = n$16; var clo$0 = function(obj){ - /*<>*/ var _k_ = obj[1 + n$21]; - return caml_call1(caml_get_public_method(_k_, m$8, 0), _k_); - /*<>*/ }; + var _k_ = /*<>*/ obj[1 + n$21]; + return caml_call1(caml_get_public_method(_k_, m$8, 0), _k_) /*<>*/ ; + }; break; case 22: - /*<>*/ var - /*<>*/ m$4 = next(0), - /*<>*/ e$4 = next(0), - /*<>*/ n$17 = next(0); + var + m$4 = /*<>*/ next(0), + e$4 = /*<>*/ next(0), + n$17 = /*<>*/ next(0); /*<>*/ new_cache(table); - let m$7 = m$4, e$5 = e$4, n$20 = n$17; + let + m$7 = /*<>*/ m$4, + e$5 = e$4, + n$20 = n$17; var clo$0 = function(obj){ - /*<>*/ var - _j_ = obj[1 + e$5][1 + n$20]; - return caml_call1(caml_get_public_method(_j_, m$7, 0), _j_); - /*<>*/ }; + var + _j_ = /*<>*/ obj[1 + e$5][1 + n$20]; + return caml_call1(caml_get_public_method(_j_, m$7, 0), _j_) /*<>*/ ; + }; break; default: - /*<>*/ var - /*<>*/ m$5 = next(0), - /*<>*/ n$18 = next(0); + var + m$5 = /*<>*/ next(0), + n$18 = /*<>*/ next(0); /*<>*/ new_cache(table); - let m$6 = m$5, n$19 = n$18; + let m$6 = /*<>*/ m$5, n$19 = n$18; var clo$0 = function(obj){ - /*<>*/ /*<>*/ var + var _i_ = /*<>*/ caml_call1 (obj[1][1 + n$19], obj); - /*<>*/ return /*<>*/ caml_call1 - (caml_get_public_method(_i_, m$6, 0), _i_); - /*<>*/ }; + /*<>*/ return caml_call1 + (caml_get_public_method(_i_, m$6, 0), _i_) /*<>*/ ; + }; } else - var clo$0 = clo; + var clo$0 = /*<>*/ clo; /*<>*/ set_method(table, label, clo$0); - i[1]++; + /*<>*/ i[1]++; } /*<>*/ } function stats(param){ @@ -32369,7 +32853,7 @@ /*<>*/ } var CamlinternalOO = - [0, + /*<>*/ [0, public_method_label, new_method, new_variable, @@ -32420,7 +32904,7 @@ Stdlib_Oo = [0, copy, new_method, public_method_label]; runtime.caml_register_global(1, Stdlib_Oo, "Stdlib__Oo"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: CamlinternalMod @@ -32434,7 +32918,7 @@ caml_check_bound = runtime.caml_check_bound, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_obj_tag = runtime.caml_obj_tag; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); @@ -32451,69 +32935,70 @@ cst_CamlinternalMod_update_mod = "CamlinternalMod.update_mod: not a module"; function init_mod_block(loc, comps$0){ - /*<>*/ var - length = comps$0.length - 1, - /*<>*/ modu = + var + length = /*<>*/ comps$0.length - 1, + modu = /*<>*/ runtime.caml_obj_block(0, length), - /*<>*/ _h_ = length - 1 | 0, - /*<>*/ _g_ = 0; + _h_ = /*<>*/ length - 1 | 0, + _g_ = 0; if(_h_ >= 0){ var i = _g_; for(;;){ - /*<>*/ /*<>*/ var - shape = caml_check_bound(comps$0, i)[1 + i]; - if(typeof shape === "number") + var + shape = + /*<>*/ caml_check_bound(comps$0, i)[1 + i]; + /*<>*/ if(typeof shape === "number") switch(shape){ case 0: - let i$1 = i; + let i$1 = /*<>*/ i; var fn = function(x){ - /*<>*/ /*<>*/ var - fn = modu[1 + i$1]; - if(fn$0 === fn) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var fn = /*<>*/ modu[1 + i$1]; + /*<>*/ if(fn$0 === fn) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stdlib[15], loc], 1); - /*<>*/ return /*<>*/ caml_call1 - (fn, x); - /*<>*/ }; + /*<>*/ return caml_call1(fn, x) /*<>*/ ; + }; let fn$0 = fn; - var init = fn; + var init = /*<>*/ fn; break; case 1: - var l = []; + var l = /*<>*/ []; let l$0 = l, i$0 = i; runtime.caml_update_dummy (l, [246, function(param){ - /*<>*/ /*<>*/ var - l = modu[1 + i$0]; - if(l$0 === l) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var l = /*<>*/ modu[1 + i$0]; + /*<>*/ if(l$0 === l) + /*<>*/ throw caml_maybe_attach_backtrace ([0, Stdlib[15], loc], 1); - var _j_ = caml_obj_tag(l); + var _j_ = /*<>*/ caml_obj_tag(l); if(250 === _j_) return l[1]; - if(246 !== _j_ && 244 !== _j_) - /*<>*/ return l; - /*<>*/ return /*<>*/ caml_call1 - (CamlinternalLazy[2], l); + if(246 !== _j_ && 244 !== _j_) return l; + return caml_call1(CamlinternalLazy[2], l); }]); - var init = l; + var init = /*<>*/ l; break; default: var init = - /*<>*/ caml_call1 + /*<>*/ /*<>*/ caml_call1 (CamlinternalOO[21], loc); } else if(0 === shape[0]) - var comps = shape[1], init = init_mod_block(loc, comps); + var + comps = /*<>*/ shape[1], + init = + /*<>*/ /*<>*/ init_mod_block + (loc, comps); else - var v = shape[1], init = v; + var + v = /*<>*/ shape[1], + init = /*<>*/ v; /*<>*/ modu[1 + i] = init; - /*<>*/ /*<>*/ var - _i_ = i + 1 | 0; + var _i_ = /*<>*/ i + 1 | 0; if(_h_ === i) break; i = _i_; } @@ -32524,77 +33009,74 @@ /*<>*/ if (typeof shape !== "number" && 0 === shape[0]){ var comps = shape[1]; - /*<>*/ return init_mod_block(loc, comps); + /*<>*/ return init_mod_block(loc, comps) /*<>*/ ; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[2], cst_CamlinternalMod_init_mod_n); - /*<>*/ } + /*<>*/ return caml_call1 + (Stdlib[2], cst_CamlinternalMod_init_mod_n) /*<>*/ ; + } function update_mod_block(comps$0, modu, n){ - /*<>*/ if - (0 === /*<>*/ caml_obj_tag(n) - && comps$0.length - 1 <= n.length - 1){ - /*<>*/ var - _e_ = comps$0.length - 2 | 0, - /*<>*/ _d_ = 0; + /*<>*/ if + (0 === caml_obj_tag(n) && comps$0.length - 1 <= n.length - 1){ + var + _e_ = /*<>*/ comps$0.length - 2 | 0, + _d_ = 0; if(_e_ >= 0){ var i = _d_; for(;;){ - /*<>*/ var - /*<>*/ n$0 = n[1 + i], - /*<>*/ shape = - caml_check_bound(comps$0, i)[1 + i]; + var + n$0 = /*<>*/ n[1 + i], + shape = + /*<>*/ caml_check_bound(comps$0, i) + [1 + i]; a: if(typeof shape === "number"){ - if(2 === shape){ - if - (0 === /*<>*/ caml_obj_tag(n$0) - && 4 === n$0.length - 1){ - /*<>*/ var - /*<>*/ cl = modu[1 + i], - j = 0; + /*<>*/ if(2 === shape){ + /*<>*/ if + (0 === caml_obj_tag(n$0) && 4 === n$0.length - 1){ + var + cl = /*<>*/ modu[1 + i], + j = /*<>*/ 0; for(;;){ /*<>*/ cl[1 + j] = n$0[1 + j]; - /*<>*/ /*<>*/ var - _c_ = j + 1 | 0; + var _c_ = /*<>*/ j + 1 | 0; if(3 === j) break; j = _c_; } break a; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _a_], 1); } /*<>*/ modu[1 + i] = n$0; } else if(0 === shape[0]){ - var comps = shape[1]; - /*<>*/ update_mod_block + var comps = /*<>*/ shape[1]; + /*<>*/ update_mod_block (comps, modu[1 + i], n$0); } - /*<>*/ /*<>*/ var - _f_ = i + 1 | 0; + var _f_ = /*<>*/ i + 1 | 0; if(_e_ === i) break; i = _f_; } } - return 0; + /*<>*/ return 0; } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _b_], 1); /*<>*/ } function update_mod(shape, o, n){ /*<>*/ if (typeof shape !== "number" && 0 === shape[0]){ var comps = shape[1]; - /*<>*/ return update_mod_block(comps, o, n); + /*<>*/ return update_mod_block(comps, o, n) /*<>*/ ; } - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[2], cst_CamlinternalMod_update_mod); - /*<>*/ } - var CamlinternalMod = [0, init_mod, update_mod]; + /*<>*/ return caml_call1 + (Stdlib[2], cst_CamlinternalMod_update_mod) /*<>*/ ; + } + var CamlinternalMod = /*<>*/ [0, init_mod, update_mod]; runtime.caml_register_global(8, CamlinternalMod, "CamlinternalMod"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Ephemeron @@ -32608,17 +33090,17 @@ caml_make_vect = runtime.caml_make_vect, caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); @@ -32640,30 +33122,28 @@ CamlinternalLazy = global_data.CamlinternalLazy, Stdlib_Random = global_data.Stdlib__Random; function MakeSeeded(H){ - /*<>*/ /*<>*/ var - prng = - [246, - function(_at_){ /*<>*/ return caml_call1(Stdlib_Random[19][2], 0);}]; + var + prng = [246, function(_at_){return caml_call1(Stdlib_Random[19][2], 0);}]; function create(opt, initial_size){ var random = - opt + /*<>*/ opt ? opt[1] : /*<>*/ caml_call1(Stdlib_Hashtbl[17], 0); a: b: { - var x = 16; - /*<>*/ for(;;){ - if(initial_size <= x) break b; - if(Stdlib_Sys[13] < (x * 2 | 0)) break; - var x$0 = x * 2 | 0; + var x = /*<>*/ 16; + for(;;){ + /*<>*/ if(initial_size <= x) break b; + /*<>*/ if(Stdlib_Sys[13] < (x * 2 | 0)) break; + var x$0 = /*<>*/ x * 2 | 0; x = x$0; } break a; } /*<>*/ if(random){ - var _ar_ = runtime.caml_obj_tag(prng); + var _ar_ = /*<>*/ runtime.caml_obj_tag(prng); a: if(250 === _ar_) var _as_ = prng[1]; @@ -32673,419 +33153,466 @@ } var seed = - /*<>*/ caml_call1(Stdlib_Random[19][4], _as_); + /*<>*/ /*<>*/ caml_call1 + (Stdlib_Random[19][4], _as_); } else - var seed = 0; - /*<>*/ return [0, - 0, - /*<>*/ caml_make_vect(x, 0), - seed, - x]; - } + var seed = /*<>*/ 0; + /*<>*/ return [0, 0, caml_make_vect(x, 0), seed, x] /*<>*/ ; + /*<>*/ } function clear(h){ /*<>*/ h[1] = 0; - /*<>*/ var - len = h[2].length - 1, - /*<>*/ _ap_ = len - 1 | 0, + var + len = /*<>*/ h[2].length - 1, + _ap_ = /*<>*/ len - 1 | 0, _ao_ = 0; if(_ap_ >= 0){ var i = _ao_; for(;;){ /*<>*/ caml_check_bound(h[2], i)[1 + i] = 0; - /*<>*/ /*<>*/ var - _aq_ = i + 1 | 0; + var _aq_ = /*<>*/ i + 1 | 0; if(_ap_ === i) break; i = _aq_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function reset(h){ - /*<>*/ var len = h[2].length - 1; - return len === h[4] - ? clear(h) + var len = /*<>*/ h[2].length - 1; + /*<>*/ return len === h[4] + ? /*<>*/ clear(h) : (h [1] = 0, h[2] = /*<>*/ caml_make_vect(h[4], 0), - 0); - /*<>*/ } + 0) /*<>*/ ; + } function copy(h){ - /*<>*/ var - _al_ = h[4], + var + _al_ = /*<>*/ h[4], _am_ = h[3], - /*<>*/ _an_ = - /*<>*/ caml_call1(Stdlib_Array[7], h[2]); - /*<>*/ return [0, h[1], _an_, _am_, _al_]; + _an_ = caml_call1(Stdlib_Array[7], h[2]); + /*<>*/ return [0, h[1], _an_, _am_, _al_]; /*<>*/ } function key_index(h, hkey){ /*<>*/ return hkey & (h[2].length - 2 | 0); /*<>*/ } function clean(h){ function do_bucket(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) /*<>*/ return 0; - var hkey = param$0[1], rest = param$0[3], c = param$0[2]; - /*<>*/ if - ( /*<>*/ caml_call1(H[6], c)){ - var rest$0 = param$0[3], c$0 = param$0[2]; - /*<>*/ return [0, hkey, c$0, do_bucket(rest$0)]; + var + hkey = /*<>*/ param$0[1], + rest = param$0[3], + c = param$0[2]; + /*<>*/ if(caml_call1(H[6], c)){ + var + rest$0 = /*<>*/ param$0[3], + c$0 = param$0[2]; + /*<>*/ return [0, hkey, c$0, do_bucket(rest$0)] /*<>*/ ; } - h[1] = h[1] - 1 | 0; - param$0 = rest; + /*<>*/ h[1] = h[1] - 1 | 0; + /*<>*/ param$0 = rest; } /*<>*/ } - var d = h[2], _aj_ = d.length - 2 | 0, _ai_ = 0; + var + d = /*<>*/ h[2], + _aj_ = /*<>*/ d.length - 2 | 0, + _ai_ = 0; if(_aj_ >= 0){ var i = _ai_; for(;;){ - /*<>*/ d[1 + i] = - do_bucket(caml_check_bound(d, i)[1 + i]); - /*<>*/ /*<>*/ var - _ak_ = i + 1 | 0; + /*<>*/ d[1 + i] = + /*<>*/ do_bucket + ( /*<>*/ caml_check_bound(d, i)[1 + i]); + var _ak_ = /*<>*/ i + 1 | 0; if(_aj_ === i) break; i = _ak_; } } - return 0; + /*<>*/ return 0; /*<>*/ } function resize(h){ - /*<>*/ var - odata = h[2], - /*<>*/ osize = odata.length - 1, - nsize = osize * 2 | 0; + var + odata = /*<>*/ h[2], + osize = /*<>*/ odata.length - 1, + nsize = /*<>*/ osize * 2 | 0; /*<>*/ clean(h); var - _ac_ = nsize < Stdlib_Sys[13] ? 1 : 0, + _ac_ = /*<>*/ nsize < Stdlib_Sys[13] ? 1 : 0, _ad_ = _ac_ ? (osize >>> 1 | 0) <= h[1] ? 1 : 0 : _ac_; if(_ad_){ - /*<>*/ /*<>*/ var - ndata = /*<>*/ caml_make_vect(nsize, 0); - h[2] = ndata; - /*<>*/ var + var ndata = /*<>*/ caml_make_vect(nsize, 0); + /*<>*/ h[2] = ndata; + var insert_bucket = - function(param){ + /*<>*/ function(param){ /*<>*/ if(! param) /*<>*/ return; - var rest = param[3], data = param[2], hkey = param[1]; + var + rest = /*<>*/ param[3], + data = param[2], + hkey = param[1]; /*<>*/ insert_bucket(rest); - /*<>*/ /*<>*/ var - nidx = key_index(h, hkey); - /*<>*/ ndata[1 + nidx] = + var nidx = /*<>*/ key_index(h, hkey); + /*<>*/ ndata[1 + nidx] = [0, hkey, data, caml_check_bound(ndata, nidx)[1 + nidx]]; /*<>*/ }, - /*<>*/ _af_ = osize - 1 | 0, - /*<>*/ _ae_ = 0; + _af_ = /*<>*/ osize - 1 | 0, + _ae_ = 0; if(_af_ >= 0){ var i = _ae_; for(;;){ - /*<>*/ insert_bucket - (caml_check_bound(odata, i)[1 + i]); - /*<>*/ /*<>*/ var - _ah_ = i + 1 | 0; + /*<>*/ /*<>*/ insert_bucket + ( /*<>*/ caml_check_bound(odata, i)[1 + i]); + var _ah_ = /*<>*/ i + 1 | 0; if(_af_ === i) break; i = _ah_; } } - var _ag_ = 0; + var _ag_ = /*<>*/ 0; } else - var _ag_ = _ad_; + var _ag_ = /*<>*/ _ad_; return _ag_; /*<>*/ } function add(h, key, info){ - /*<>*/ var - /*<>*/ hkey = - /*<>*/ caml_call2(H[2], h[3], key), - /*<>*/ i = key_index(h, hkey), - /*<>*/ container = - /*<>*/ caml_call2(H[1], key, info), - /*<>*/ bucket = - [0, hkey, container, caml_check_bound(h[2], i)[1 + i]]; + var + hkey = /*<>*/ caml_call2(H[2], h[3], key), + i = /*<>*/ key_index(h, hkey), + container = /*<>*/ caml_call2(H[1], key, info), + bucket = + /*<>*/ [0, + hkey, + container, + caml_check_bound(h[2], i)[1 + i]]; /*<>*/ caml_check_bound(h[2], i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _ab_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _ab_ ? resize(h) : _ab_; - /*<>*/ } + /*<>*/ h[1] = h[1] + 1 | 0; + var + _ab_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _ab_ ? /*<>*/ resize(h) : _ab_ /*<>*/ ; + } function remove(h, key){ - /*<>*/ /*<>*/ var - hkey = /*<>*/ caml_call2(H[2], h[3], key); + var hkey = /*<>*/ caml_call2(H[2], h[3], key); function remove_bucket(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) /*<>*/ return 0; - var hk = param$0[1], next = param$0[3], c = param$0[2]; - if(hkey !== hk){ + var + hk = /*<>*/ param$0[1], + next = param$0[3], + c = param$0[2]; + /*<>*/ if(hkey !== hk){ var next$0 = param$0[3], c$0 = param$0[2]; - /*<>*/ return [0, + /*<>*/ return [0, hk, c$0, - remove_bucket(next$0)]; + remove_bucket(next$0)] /*<>*/ ; } - switch( /*<>*/ caml_call2(H[3], c, key)){ + /*<>*/ switch(caml_call2(H[3], c, key)){ case 0: - h[1] = h[1] - 1 | 0; /*<>*/ return next; + /*<>*/ h[1] = h[1] - 1 | 0; + /*<>*/ return next; case 1: - /*<>*/ return [0, hk, c, remove_bucket(next)]; - default: h[1] = h[1] - 1 | 0; param$0 = next; + /*<>*/ return [0, hk, c, remove_bucket(next)] /*<>*/ ; + default: + /*<>*/ h[1] = h[1] - 1 | 0; + /*<>*/ param$0 = next; } } /*<>*/ } - /*<>*/ var - /*<>*/ i = key_index(h, hkey), - /*<>*/ _aa_ = - remove_bucket(caml_check_bound(h[2], i)[1 + i]); + var + i = /*<>*/ key_index(h, hkey), + _aa_ = + /*<>*/ /*<>*/ remove_bucket + ( /*<>*/ caml_check_bound(h[2], i)[1 + i]); /*<>*/ caml_check_bound(h[2], i)[1 + i] = _aa_; - /*<>*/ return 0; - /*<>*/ } + /*<>*/ return 0; + } function find(h, key){ - /*<>*/ var - /*<>*/ hkey = - /*<>*/ caml_call2(H[2], h[3], key), - /*<>*/ _$_ = key_index(h, hkey), - param = caml_check_bound(h[2], _$_)[1 + _$_]; - for(;;){ - if(! param) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var + hkey = /*<>*/ caml_call2(H[2], h[3], key), + _$_ = /*<>*/ key_index(h, hkey), + param = + /*<>*/ /*<>*/ caml_check_bound + (h[2], _$_) + [1 + _$_]; + /*<>*/ for(;;){ + /*<>*/ if(! param) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var hk = param[1], rest = param[3], c = param[2]; - if(hkey === hk) - switch( /*<>*/ caml_call2(H[3], c, key)){ + var + hk = /*<>*/ param[1], + rest = param[3], + c = param[2]; + /*<>*/ if(hkey === hk) + /*<>*/ switch(caml_call2(H[3], c, key)){ case 0: - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(H[4], c); - if(match){var d = match[1]; /*<>*/ return d;} - param = rest; + var match = /*<>*/ caml_call1(H[4], c); + /*<>*/ if(match){ + var d = match[1]; + /*<>*/ return d; + } + /*<>*/ param = rest; break; case 1: - param = rest; break; - default: param = rest; + /*<>*/ param = rest; break; + default: /*<>*/ param = rest; } - else{var rest$0 = param[3]; param = rest$0;} + else{ + var rest$0 = /*<>*/ param[3]; + /*<>*/ param = rest$0; + } } /*<>*/ } function find_opt(h, key){ - /*<>*/ var - /*<>*/ hkey = - /*<>*/ caml_call2(H[2], h[3], key), - /*<>*/ ___ = key_index(h, hkey), - param = caml_check_bound(h[2], ___)[1 + ___]; - for(;;){ - if(! param) /*<>*/ return 0; - var hk = param[1], rest = param[3], c = param[2]; - if(hkey === hk) - switch( /*<>*/ caml_call2(H[3], c, key)){ + var + hkey = /*<>*/ caml_call2(H[2], h[3], key), + ___ = /*<>*/ key_index(h, hkey), + param = + /*<>*/ /*<>*/ caml_check_bound + (h[2], ___) + [1 + ___]; + /*<>*/ for(;;){ + /*<>*/ if(! param) + /*<>*/ return 0; + var + hk = /*<>*/ param[1], + rest = param[3], + c = param[2]; + /*<>*/ if(hkey === hk) + /*<>*/ switch(caml_call2(H[3], c, key)){ case 0: - /*<>*/ /*<>*/ var - d = /*<>*/ caml_call1(H[4], c); - if(d) /*<>*/ return d; - param = rest; + var d = /*<>*/ caml_call1(H[4], c); + /*<>*/ if(d) + /*<>*/ return d; + /*<>*/ param = rest; break; case 1: - param = rest; break; - default: param = rest; + /*<>*/ param = rest; break; + default: /*<>*/ param = rest; } - else{var rest$0 = param[3]; param = rest$0;} + else{ + var rest$0 = /*<>*/ param[3]; + /*<>*/ param = rest$0; + } } /*<>*/ } function find_all(h, key){ - /*<>*/ /*<>*/ var - hkey = /*<>*/ caml_call2(H[2], h[3], key); + var hkey = /*<>*/ caml_call2(H[2], h[3], key); function find_in_bucket(param){ - /*<>*/ var param$0 = param; - /*<>*/ for(;;){ + var param$0 = /*<>*/ param; + for(;;){ if(! param$0) /*<>*/ return 0; - var hk = param$0[1], rest = param$0[3], c = param$0[2]; - if(hkey === hk) - switch( /*<>*/ caml_call2(H[3], c, key)){ + var + hk = /*<>*/ param$0[1], + rest = param$0[3], + c = param$0[2]; + /*<>*/ if(hkey === hk) + /*<>*/ switch(caml_call2(H[3], c, key)){ case 0: - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(H[4], c); - if(match){ + var match = /*<>*/ caml_call1(H[4], c); + /*<>*/ if(match){ var d = match[1]; - /*<>*/ return [0, d, find_in_bucket(rest)]; + /*<>*/ return [0, d, find_in_bucket(rest)] /*<>*/ ; } - param$0 = rest; + /*<>*/ param$0 = rest; break; case 1: - param$0 = rest; break; - default: param$0 = rest; + /*<>*/ param$0 = rest; break; + default: /*<>*/ param$0 = rest; } - else{var rest$0 = param$0[3]; param$0 = rest$0;} + else{ + var rest$0 = /*<>*/ param$0[3]; + /*<>*/ param$0 = rest$0; + } } /*<>*/ } - /*<>*/ /*<>*/ var - _Z_ = key_index(h, hkey); - /*<>*/ return find_in_bucket - (caml_check_bound(h[2], _Z_)[1 + _Z_]); - /*<>*/ } + var _Z_ = /*<>*/ key_index(h, hkey); + /*<>*/ return /*<>*/ find_in_bucket + ( /*<>*/ caml_check_bound(h[2], _Z_) + [1 + _Z_]) /*<>*/ ; + } function replace(h, key, info){ - /*<>*/ var - /*<>*/ hkey = - /*<>*/ caml_call2(H[2], h[3], key), - /*<>*/ i = key_index(h, hkey), - /*<>*/ l = caml_check_bound(h[2], i)[1 + i]; + var + hkey = /*<>*/ caml_call2(H[2], h[3], key), + i = /*<>*/ key_index(h, hkey), + l = /*<>*/ caml_check_bound(h[2], i)[1 + i]; /*<>*/ try{ - var param = l; - /*<>*/ for(;;){ - if(! param) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var param = /*<>*/ l; + for(;;){ + /*<>*/ if(! param) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[8], 1); - var hk = param[1], next = param[3], c = param[2]; - if(hkey === hk){ - if(! /*<>*/ caml_call2(H[3], c, key)){ - /*<>*/ /*<>*/ var - _V_ = /*<>*/ caml_call3(H[5], c, key, info); - /*<>*/ return _V_; + var + hk = /*<>*/ param[1], + next = param[3], + c = param[2]; + /*<>*/ if(hkey === hk){ + /*<>*/ if(! caml_call2(H[3], c, key)){ + var + _V_ = /*<>*/ caml_call3(H[5], c, key, info); + return _V_; } - param = next; + /*<>*/ param = next; + } + else{ + var next$0 = /*<>*/ param[3]; + /*<>*/ param = next$0; } - else{var next$0 = param[3]; param = next$0;} } } catch(_Y_){ - var _W_ = caml_wrap_exception(_Y_); + var _W_ = /*<>*/ caml_wrap_exception(_Y_); if(_W_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_W_, 0); - /*<>*/ /*<>*/ var + var container = /*<>*/ caml_call2(H[1], key, info); /*<>*/ caml_check_bound(h[2], i)[1 + i] = [0, hkey, container, l]; - h[1] = h[1] + 1 | 0; - var _X_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _X_ ? resize(h) : _X_; + /*<>*/ h[1] = h[1] + 1 | 0; + var + _X_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _X_ ? /*<>*/ resize(h) : _X_ /*<>*/ ; } - /*<>*/ } + } function mem(h, key){ - /*<>*/ var - /*<>*/ hkey = - /*<>*/ caml_call2(H[2], h[3], key), - /*<>*/ _U_ = key_index(h, hkey), - param = caml_check_bound(h[2], _U_)[1 + _U_]; - /*<>*/ for(;;){ - if(! param) /*<>*/ return 0; - var hk = param[1], rest = param[3], c = param[2]; - if(hk === hkey){ - if(! /*<>*/ caml_call2(H[3], c, key)) + var + hkey = /*<>*/ caml_call2(H[2], h[3], key), + _U_ = /*<>*/ key_index(h, hkey), + param = + /*<>*/ /*<>*/ caml_check_bound + (h[2], _U_) + [1 + _U_]; + /*<>*/ for(;;){ + /*<>*/ if(! param) + /*<>*/ return 0; + var + hk = /*<>*/ param[1], + rest = param[3], + c = param[2]; + /*<>*/ if(hk === hkey){ + /*<>*/ if(! caml_call2(H[3], c, key)) /*<>*/ return 1; - param = rest; + /*<>*/ param = rest; + } + else{ + var rest$0 = /*<>*/ param[3]; + /*<>*/ param = rest$0; } - else{var rest$0 = param[3]; param = rest$0;} } /*<>*/ } function length(h){ /*<>*/ return h[1]; /*<>*/ } function bucket_length(accu, param){ - var accu$0 = accu, param$0 = param; + var accu$0 = /*<>*/ accu, param$0 = param; for(;;){ if(! param$0) /*<>*/ return accu$0; - /*<>*/ var - rest = param$0[3], - /*<>*/ accu$1 = accu$0 + 1 | 0; + var + rest = /*<>*/ param$0[3], + accu$1 = /*<>*/ accu$0 + 1 | 0; accu$0 = accu$1; param$0 = rest; } - } + /*<>*/ } function stats(h){ - /*<>*/ var - /*<>*/ mbl = + var + mbl = /*<>*/ caml_call3 (Stdlib_Array[18], function(m, b){ - /*<>*/ /*<>*/ var - _T_ = bucket_length(0, b); - /*<>*/ return /*<>*/ caml_call2 + var _T_ = /*<>*/ bucket_length(0, b); + /*<>*/ return caml_call2 (Stdlib_Int[11], m, _T_); - /*<>*/ }, + }, 0, h[2]), - /*<>*/ histo = - /*<>*/ caml_make_vect(mbl + 1 | 0, 0); - /*<>*/ /*<>*/ caml_call2 + histo = /*<>*/ caml_make_vect(mbl + 1 | 0, 0); + /*<>*/ caml_call2 (Stdlib_Array[12], function(b){ - /*<>*/ /*<>*/ var - l = bucket_length(0, b); - /*<>*/ histo[1 + l] = + var l = /*<>*/ bucket_length(0, b); + /*<>*/ histo[1 + l] = caml_check_bound(histo, l)[1 + l] + 1 | 0; - /*<>*/ return 0; - /*<>*/ }, + /*<>*/ return 0; + }, h[2]); - /*<>*/ return [0, h[1], h[2].length - 1, mbl, histo]; + /*<>*/ return [0, + h[1], + h[2].length - 1, + mbl, + histo]; /*<>*/ } function bucket_length_alive(accu, param){ - var accu$0 = accu, param$0 = param; + var accu$0 = /*<>*/ accu, param$0 = param; for(;;){ if(! param$0) /*<>*/ return accu$0; - var rest = param$0[3], c = param$0[2]; - /*<>*/ if - ( /*<>*/ caml_call1(H[6], c)){ - var accu$1 = accu$0 + 1 | 0; + var rest = /*<>*/ param$0[3], c = param$0[2]; + /*<>*/ if(caml_call1(H[6], c)){ + var accu$1 = /*<>*/ accu$0 + 1 | 0; accu$0 = accu$1; param$0 = rest; } - else{var rest$0 = param$0[3]; param$0 = rest$0;} + else{ + var rest$0 = /*<>*/ param$0[3]; + /*<>*/ param$0 = rest$0; + } } - } + /*<>*/ } function stats_alive(h){ - /*<>*/ var - /*<>*/ size = [0, 0], - /*<>*/ mbl = + var + size = /*<>*/ [0, 0], + mbl = /*<>*/ caml_call3 (Stdlib_Array[18], function(m, b){ - /*<>*/ /*<>*/ var - _S_ = bucket_length_alive(0, b); - /*<>*/ return /*<>*/ caml_call2 + var _S_ = /*<>*/ bucket_length_alive(0, b); + /*<>*/ return caml_call2 (Stdlib_Int[11], m, _S_); - /*<>*/ }, + }, 0, h[2]), - /*<>*/ histo = - /*<>*/ caml_make_vect(mbl + 1 | 0, 0); - /*<>*/ /*<>*/ caml_call2 + histo = /*<>*/ caml_make_vect(mbl + 1 | 0, 0); + /*<>*/ caml_call2 (Stdlib_Array[12], function(b){ - /*<>*/ /*<>*/ var - l = bucket_length_alive(0, b); - size[1] = size[1] + l | 0; - /*<>*/ histo[1 + l] = + var l = /*<>*/ bucket_length_alive(0, b); + /*<>*/ size[1] = size[1] + l | 0; + /*<>*/ histo[1 + l] = caml_check_bound(histo, l)[1 + l] + 1 | 0; - /*<>*/ return 0; - /*<>*/ }, + /*<>*/ return 0; + }, h[2]); - /*<>*/ return [0, + /*<>*/ return [0, size[1], h[2].length - 1, mbl, histo]; /*<>*/ } function add_seq(tbl, i){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], function(param){ - /*<>*/ var v = param[2], k = param[1]; - /*<>*/ return add(tbl, k, v); - /*<>*/ }, - i); - /*<>*/ } + var v = /*<>*/ param[2], k = param[1]; + /*<>*/ return add(tbl, k, v) /*<>*/ ; + }, + i) /*<>*/ ; + } function replace_seq(tbl, i){ - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return caml_call2 (Stdlib_Seq[4], function(param){ - /*<>*/ var v = param[2], k = param[1]; - /*<>*/ return replace(tbl, k, v); - /*<>*/ }, - i); - /*<>*/ } + var v = /*<>*/ param[2], k = param[1]; + /*<>*/ return replace(tbl, k, v) /*<>*/ ; + }, + i) /*<>*/ ; + } function of_seq(i){ - /*<>*/ /*<>*/ var - tbl = create(0, 16); + var tbl = /*<>*/ create(0, 16); /*<>*/ replace_seq(tbl, i); - /*<>*/ return tbl; + /*<>*/ return tbl; /*<>*/ } - /*<>*/ return [0, + /*<>*/ return [0, create, clear, reset, @@ -33106,71 +33633,61 @@ stats_alive]; } function create(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Obj[23][1], 1); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_Obj[23][1], 1) /*<>*/ ; + } function get_key(t){ - /*<>*/ /*<>*/ var - x = /*<>*/ caml_call2(Stdlib_Obj[23][3], t, 0); + var x = /*<>*/ caml_call2(Stdlib_Obj[23][3], t, 0); /*<>*/ return x; /*<>*/ } function set_key(t, k){ - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Obj[23][5], t, 0, k); - /*<>*/ } + /*<>*/ return caml_call3(Stdlib_Obj[23][5], t, 0, k) /*<>*/ ; + } function check_key(t){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Obj[23][7], t, 0); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib_Obj[23][7], t, 0) /*<>*/ ; + } function get_data(t){ - /*<>*/ /*<>*/ var - x = /*<>*/ caml_call1(Stdlib_Obj[23][9], t); + var x = /*<>*/ caml_call1(Stdlib_Obj[23][9], t); /*<>*/ return x; /*<>*/ } function set_data(t, d){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Obj[23][11], t, d); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib_Obj[23][11], t, d) /*<>*/ ; + } function make(key, data){ - /*<>*/ /*<>*/ var - eph = create(0); + var eph = /*<>*/ create(0); /*<>*/ set_data(eph, data); /*<>*/ set_key(eph, key); - /*<>*/ return eph; + /*<>*/ return eph; /*<>*/ } function query(eph, key){ - /*<>*/ /*<>*/ var - match = get_key(eph); - if(! match) /*<>*/ return 0; - var k = match[1]; - return k === key ? get_data(eph) : 0; - /*<>*/ } + var match = /*<>*/ get_key(eph); + /*<>*/ if(! match) + /*<>*/ return 0; + var k = /*<>*/ match[1]; + /*<>*/ return k === key + ? /*<>*/ get_data(eph) + : 0 /*<>*/ ; + } function MakeSeeded$0(H){ function create$0(k, d){ - /*<>*/ /*<>*/ var - c = create(0); + var c = /*<>*/ create(0); /*<>*/ set_data(c, d); /*<>*/ set_key(c, k); - /*<>*/ return c; + /*<>*/ return c; /*<>*/ } - var seeded_hash = H[2]; + var seeded_hash = /*<>*/ H[2]; function equal(c, k){ - /*<>*/ /*<>*/ var - match = get_key(c); - if(! match) /*<>*/ return 2; - var k$0 = match[1]; - /*<>*/ return /*<>*/ caml_call2 - (H[1], k, k$0) - ? 0 - : 1; - /*<>*/ } + var match = /*<>*/ get_key(c); + /*<>*/ if(! match) + /*<>*/ return 2; + var k$0 = /*<>*/ match[1]; + /*<>*/ return caml_call2(H[1], k, k$0) ? 0 : 1 /*<>*/ ; + } function set_key_data(c, k, d){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Obj[23][12], c); + /*<>*/ caml_call1(Stdlib_Obj[23][12], c); /*<>*/ set_key(c, k); - /*<>*/ return set_data(c, d); - /*<>*/ } - /*<>*/ return MakeSeeded + /*<>*/ return set_data(c, d) /*<>*/ ; + } + /*<>*/ return MakeSeeded ([0, create$0, seeded_hash, @@ -33182,11 +33699,10 @@ function Make(H){ var equal = H[1]; function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_call1 - (H[2], x); - /*<>*/ } + /*<>*/ return caml_call1(H[2], x) /*<>*/ ; + } var - include = MakeSeeded$0([0, equal, seeded_hash]), + include = /*<>*/ MakeSeeded$0([0, equal, seeded_hash]), _R_ = include[1], clear = include[2], reset = include[3], @@ -33205,17 +33721,14 @@ clean = include[17], stats_alive = include[18]; function create(sz){ - /*<>*/ return /*<>*/ caml_call2 - (_R_, _a_, sz); - /*<>*/ } + /*<>*/ return caml_call2(_R_, _a_, sz) /*<>*/ ; + } function of_seq(i){ - /*<>*/ /*<>*/ var - tbl = /*<>*/ caml_call2(_R_, _a_, 16); - /*<>*/ /*<>*/ caml_call2 - (replace_seq, tbl, i); - /*<>*/ return tbl; + var tbl = /*<>*/ caml_call2(_R_, _a_, 16); + /*<>*/ caml_call2(replace_seq, tbl, i); + /*<>*/ return tbl; /*<>*/ } - /*<>*/ return [0, + /*<>*/ return [0, create, clear, reset, @@ -33239,159 +33752,152 @@ /*<>*/ return [0, 0]; /*<>*/ } function add(b, k, d){ - /*<>*/ var _Q_ = b[1]; + var _Q_ = /*<>*/ b[1]; b[1] = [0, make(k, d), _Q_]; - return 0; + /*<>*/ return 0; /*<>*/ } function test_key(k, e){ - /*<>*/ /*<>*/ var - match = get_key(e); - if(match){ + var match = /*<>*/ get_key(e); + /*<>*/ if(match){ var x = match[1]; - if(x === k) /*<>*/ return 1; + /*<>*/ if(x === k) + /*<>*/ return 1; } /*<>*/ return 0; /*<>*/ } function remove(b, k){ - /*<>*/ var l$0 = b[1], l = l$0, acc = 0; - /*<>*/ for(;;){ - if(! l) /*<>*/ return 0; - var h = l[1], t = l[2]; + var l$0 = /*<>*/ b[1], l = l$0, acc = 0; + for(;;){ + /*<>*/ if(! l) + /*<>*/ return 0; + var h = /*<>*/ l[1], t = l[2]; /*<>*/ if(test_key(k, h)){ - b[1] = /*<>*/ caml_call2(Stdlib_List[13], acc, t); - return 0; + /*<>*/ b[1] = caml_call2(Stdlib_List[13], acc, t); + /*<>*/ return 0; } - /*<>*/ var - t$0 = l[2], - /*<>*/ acc$0 = [0, h, acc]; + var + t$0 = /*<>*/ l[2], + acc$0 = /*<>*/ [0, h, acc]; l = t$0; acc = acc$0; } /*<>*/ } function find(b, k){ - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call2 (Stdlib_List[40], - function(_P_){ /*<>*/ return test_key(k, _P_);}, + function(_P_){ /*<>*/ return test_key(k, _P_);}, b[1]); - if(! match) /*<>*/ return 0; - var e = match[1]; - /*<>*/ return get_data(e); - /*<>*/ } + /*<>*/ if(! match) + /*<>*/ return 0; + var e = /*<>*/ match[1]; + /*<>*/ return get_data(e) /*<>*/ ; + } function length(b){ - /*<>*/ return caml_call1(Stdlib_List[1], b[1]); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_List[1], b[1]) /*<>*/ ; + } function clear(b){ /*<>*/ b[1] = 0; return 0; /*<>*/ } function create$0(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Obj[23][1], 2); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_Obj[23][1], 2) /*<>*/ ; + } function get_key1(t){ - /*<>*/ /*<>*/ var - x = /*<>*/ caml_call2(Stdlib_Obj[23][3], t, 0); + var x = /*<>*/ caml_call2(Stdlib_Obj[23][3], t, 0); /*<>*/ return x; /*<>*/ } function set_key1(t, k){ - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Obj[23][5], t, 0, k); - /*<>*/ } + /*<>*/ return caml_call3(Stdlib_Obj[23][5], t, 0, k) /*<>*/ ; + } function get_key2(t){ - /*<>*/ /*<>*/ var - x = /*<>*/ caml_call2(Stdlib_Obj[23][3], t, 1); + var x = /*<>*/ caml_call2(Stdlib_Obj[23][3], t, 1); /*<>*/ return x; /*<>*/ } function set_key2(t, k){ - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Obj[23][5], t, 1, k); - /*<>*/ } + /*<>*/ return caml_call3(Stdlib_Obj[23][5], t, 1, k) /*<>*/ ; + } function get_data$0(t){ - /*<>*/ /*<>*/ var - x = /*<>*/ caml_call1(Stdlib_Obj[23][9], t); + var x = /*<>*/ caml_call1(Stdlib_Obj[23][9], t); /*<>*/ return x; /*<>*/ } function set_data$0(t, d){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Obj[23][11], t, d); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib_Obj[23][11], t, d) /*<>*/ ; + } function make$1(key1, key2, data){ - /*<>*/ /*<>*/ var - eph = create$0(0); + var eph = /*<>*/ create$0(0); /*<>*/ set_data$0(eph, data); /*<>*/ set_key1(eph, key1); /*<>*/ set_key2(eph, key2); /*<>*/ return eph; /*<>*/ } function query$0(eph, key1, key2){ - /*<>*/ /*<>*/ var - match = get_key1(eph); - if(! match) /*<>*/ return 0; - var k = match[1]; - if(k !== key1) /*<>*/ return 0; - /*<>*/ /*<>*/ var - match$0 = get_key2(eph); - if(! match$0) /*<>*/ return 0; - var k$0 = match$0[1]; - return k$0 === key2 ? get_data$0(eph) : 0; - /*<>*/ } + var match = /*<>*/ get_key1(eph); + /*<>*/ if(! match) + /*<>*/ return 0; + var k = /*<>*/ match[1]; + /*<>*/ if(k !== key1) + /*<>*/ return 0; + var match$0 = /*<>*/ get_key2(eph); + /*<>*/ if(! match$0) + /*<>*/ return 0; + var k$0 = /*<>*/ match$0[1]; + /*<>*/ return k$0 === key2 + ? /*<>*/ get_data$0(eph) + : 0 /*<>*/ ; + } function MakeSeeded$1(H1, H2){ function create(param, d){ - /*<>*/ var - k2 = param[2], + var + k2 = /*<>*/ param[2], k1 = param[1], - /*<>*/ c = create$0(0); + c = /*<>*/ create$0(0); /*<>*/ set_data$0(c, d); /*<>*/ set_key1(c, k1); /*<>*/ set_key2(c, k2); - /*<>*/ return c; - } + /*<>*/ return c; + /*<>*/ } function seeded_hash(seed, param){ - /*<>*/ var - k2 = param[2], + var + k2 = /*<>*/ param[2], k1 = param[1], - /*<>*/ _O_ = + _O_ = /*<>*/ caml_call2(H2[2], seed, k2) * 65599 | 0; - /*<>*/ return /*<>*/ caml_call2 - (H1[2], seed, k1) - + _O_ - | 0; - } + /*<>*/ return caml_call2(H1[2], seed, k1) + _O_ | 0 /*<>*/ ; + /*<>*/ } function equal(c, param){ - /*<>*/ var - k2 = param[2], + var + k2 = /*<>*/ param[2], k1 = param[1], - /*<>*/ match = get_key1(c), - /*<>*/ match$0 = get_key2(c); - if(match && match$0){ + match = /*<>*/ get_key1(c), + match$0 = /*<>*/ get_key2(c); + /*<>*/ if(match && match$0){ var k2$0 = match$0[1], k1$0 = match[1]; - /*<>*/ if - ( /*<>*/ caml_call2(H1[1], k1, k1$0) + /*<>*/ if + (caml_call2(H1[1], k1, k1$0) && /*<>*/ caml_call2(H2[1], k2, k2$0)) /*<>*/ return 0; /*<>*/ return 1; } /*<>*/ return 2; - } + /*<>*/ } function set_key_data(c, param, d){ - var k2 = param[2], k1 = param[1]; - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Obj[23][12], c); + var k2 = /*<>*/ param[2], k1 = param[1]; + /*<>*/ caml_call1(Stdlib_Obj[23][12], c); /*<>*/ set_key1(c, k1); /*<>*/ set_key2(c, k2); - /*<>*/ return set_data$0(c, d); + /*<>*/ return set_data$0(c, d) /*<>*/ ; } function check_key(c){ - /*<>*/ /*<>*/ var + var _N_ = /*<>*/ caml_call2(Stdlib_Obj[23][7], c, 0); - /*<>*/ return _N_ + /*<>*/ return _N_ ? /*<>*/ caml_call2 (Stdlib_Obj[23][7], c, 1) - : _N_; - /*<>*/ } - /*<>*/ return MakeSeeded + : _N_ /*<>*/ ; + } + /*<>*/ return MakeSeeded ([0, create, seeded_hash, @@ -33403,17 +33909,16 @@ function Make$0(H1, H2){ var equal = H2[1]; function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_call1 - (H2[2], x); - /*<>*/ } - var equal$0 = H1[1]; + /*<>*/ return caml_call1(H2[2], x) /*<>*/ ; + } + var equal$0 = /*<>*/ H1[1]; function seeded_hash$0(seed, x){ - /*<>*/ return /*<>*/ caml_call1 - (H1[2], x); - /*<>*/ } + /*<>*/ return caml_call1(H1[2], x) /*<>*/ ; + } var include = - MakeSeeded$1([0, equal$0, seeded_hash$0], [0, equal, seeded_hash]), + /*<>*/ MakeSeeded$1 + ([0, equal$0, seeded_hash$0], [0, equal, seeded_hash]), _M_ = include[1], clear = include[2], reset = include[3], @@ -33432,17 +33937,14 @@ clean = include[17], stats_alive = include[18]; function create(sz){ - /*<>*/ return /*<>*/ caml_call2 - (_M_, _b_, sz); - /*<>*/ } + /*<>*/ return caml_call2(_M_, _b_, sz) /*<>*/ ; + } function of_seq(i){ - /*<>*/ /*<>*/ var - tbl = /*<>*/ caml_call2(_M_, _b_, 16); - /*<>*/ /*<>*/ caml_call2 - (replace_seq, tbl, i); - /*<>*/ return tbl; + var tbl = /*<>*/ caml_call2(_M_, _b_, 16); + /*<>*/ caml_call2(replace_seq, tbl, i); + /*<>*/ return tbl; /*<>*/ } - /*<>*/ return [0, + /*<>*/ return [0, create, clear, reset, @@ -33466,95 +33968,91 @@ /*<>*/ return [0, 0]; /*<>*/ } function add$0(b, k1, k2, d){ - /*<>*/ var _L_ = b[1]; + var _L_ = /*<>*/ b[1]; b[1] = [0, make$1(k1, k2, d), _L_]; - return 0; + /*<>*/ return 0; /*<>*/ } function test_keys(k1, k2, e){ - /*<>*/ var - /*<>*/ match = get_key1(e), - /*<>*/ match$0 = get_key2(e); - if(match && match$0){ + var + match = /*<>*/ get_key1(e), + match$0 = /*<>*/ get_key2(e); + /*<>*/ if(match && match$0){ var x2 = match$0[1], x1 = match[1]; - if(x1 === k1 && x2 === k2) /*<>*/ return 1; + /*<>*/ if(x1 === k1 && x2 === k2) + /*<>*/ return 1; } /*<>*/ return 0; /*<>*/ } function remove$0(b, k1, k2){ - /*<>*/ var l$0 = b[1], l = l$0, acc = 0; - /*<>*/ for(;;){ - if(! l) /*<>*/ return 0; - var h = l[1], t = l[2]; + var l$0 = /*<>*/ b[1], l = l$0, acc = 0; + for(;;){ + /*<>*/ if(! l) + /*<>*/ return 0; + var h = /*<>*/ l[1], t = l[2]; /*<>*/ if(test_keys(k1, k2, h)){ - b[1] = /*<>*/ caml_call2(Stdlib_List[13], acc, t); - return 0; + /*<>*/ b[1] = caml_call2(Stdlib_List[13], acc, t); + /*<>*/ return 0; } - /*<>*/ var - t$0 = l[2], - /*<>*/ acc$0 = [0, h, acc]; + var + t$0 = /*<>*/ l[2], + acc$0 = /*<>*/ [0, h, acc]; l = t$0; acc = acc$0; } /*<>*/ } function find$0(b, k1, k2){ - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call2 (Stdlib_List[40], - function(_K_){ /*<>*/ return test_keys(k1, k2, _K_);}, + function(_K_){ + /*<>*/ return test_keys(k1, k2, _K_); + }, b[1]); - if(! match) /*<>*/ return 0; - var e = match[1]; - /*<>*/ return get_data$0(e); - /*<>*/ } + /*<>*/ if(! match) + /*<>*/ return 0; + var e = /*<>*/ match[1]; + /*<>*/ return get_data$0(e) /*<>*/ ; + } function length$0(b){ - /*<>*/ return caml_call1(Stdlib_List[1], b[1]); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_List[1], b[1]) /*<>*/ ; + } function clear$0(b){ /*<>*/ b[1] = 0; return 0; /*<>*/ } function create$1(n){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Obj[23][1], n); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_Obj[23][1], n) /*<>*/ ; + } function length$1(k){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Obj[23][2], k); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_Obj[23][2], k) /*<>*/ ; + } function get_key$0(t, n){ - /*<>*/ /*<>*/ var - x = /*<>*/ caml_call2(Stdlib_Obj[23][3], t, n); + var x = /*<>*/ caml_call2(Stdlib_Obj[23][3], t, n); /*<>*/ return x; /*<>*/ } function set_key$0(t, n, k){ - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Obj[23][5], t, n, k); - /*<>*/ } + /*<>*/ return caml_call3(Stdlib_Obj[23][5], t, n, k) /*<>*/ ; + } function get_data$1(t){ - /*<>*/ /*<>*/ var - x = /*<>*/ caml_call1(Stdlib_Obj[23][9], t); + var x = /*<>*/ caml_call1(Stdlib_Obj[23][9], t); /*<>*/ return x; /*<>*/ } function set_data$1(t, d){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Obj[23][11], t, d); - /*<>*/ } + /*<>*/ return caml_call2(Stdlib_Obj[23][11], t, d) /*<>*/ ; + } function make$3(keys, data){ - /*<>*/ var - l = keys.length - 1, - /*<>*/ eph = create$1(l); + var + l = /*<>*/ keys.length - 1, + eph = /*<>*/ create$1(l); /*<>*/ set_data$1(eph, data); - /*<>*/ var - _I_ = l - 1 | 0, - /*<>*/ _H_ = 0; + var _I_ = /*<>*/ l - 1 | 0, _H_ = 0; if(_I_ >= 0){ var i = _H_; for(;;){ - /*<>*/ set_key$0 - (eph, i, caml_check_bound(keys, i)[1 + i]); - /*<>*/ /*<>*/ var - _J_ = i + 1 | 0; + /*<>*/ /*<>*/ set_key$0 + (eph, i, /*<>*/ caml_check_bound(keys, i)[1 + i]); + var _J_ = /*<>*/ i + 1 | 0; if(_I_ === i) break; i = _J_; } @@ -33562,58 +34060,48 @@ /*<>*/ return eph; /*<>*/ } function query$1(eph, keys){ - /*<>*/ /*<>*/ var - l = length$1(eph); + var l = /*<>*/ length$1(eph); /*<>*/ try{ if(l !== keys.length - 1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[3], 1); - /*<>*/ var - /*<>*/ _D_ = l - 1 | 0, - /*<>*/ _C_ = 0; + var _D_ = /*<>*/ l - 1 | 0, _C_ = 0; if(_D_ >= 0){ var i = _C_; for(;;){ - /*<>*/ /*<>*/ var - match = get_key$0(eph, i); - if(! match) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var match = /*<>*/ get_key$0(eph, i); + /*<>*/ if(! match) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[3], 1); - var k = match[1]; - if(k !== caml_check_bound(keys, i)[1 + i]) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + var k = /*<>*/ match[1]; + /*<>*/ if(k !== caml_check_bound(keys, i)[1 + i]) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[3], 1); - /*<>*/ /*<>*/ var - _F_ = i + 1 | 0; + var _F_ = /*<>*/ i + 1 | 0; if(_D_ === i) break; i = _F_; } } - /*<>*/ /*<>*/ var - _E_ = get_data$1(eph); - /*<>*/ return _E_; + var _E_ = /*<>*/ get_data$1(eph); + return _E_; } catch(_G_){ - var _B_ = caml_wrap_exception(_G_); + var _B_ = /*<>*/ caml_wrap_exception(_G_); if(_B_ === Stdlib[3]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_B_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_B_, 0); } /*<>*/ } function MakeSeeded$2(H){ function create(k, d){ - /*<>*/ /*<>*/ var - c = create$1(k.length - 1); + var c = /*<>*/ create$1(k.length - 1); /*<>*/ set_data$1(c, d); - /*<>*/ var - _z_ = k.length - 2 | 0, - /*<>*/ _y_ = 0; + var _z_ = /*<>*/ k.length - 2 | 0, _y_ = 0; if(_z_ >= 0){ var i = _y_; for(;;){ - /*<>*/ set_key$0 - (c, i, caml_check_bound(k, i)[1 + i]); - /*<>*/ /*<>*/ var - _A_ = i + 1 | 0; + /*<>*/ /*<>*/ set_key$0 + (c, i, /*<>*/ caml_check_bound(k, i)[1 + i]); + var _A_ = /*<>*/ i + 1 | 0; if(_z_ === i) break; i = _A_; } @@ -33621,93 +34109,84 @@ /*<>*/ return c; /*<>*/ } function seeded_hash(seed, k){ - /*<>*/ var - /*<>*/ h = [0, 0], - _u_ = k.length - 2 | 0, - /*<>*/ _t_ = 0; + var + h = /*<>*/ [0, 0], + _u_ = /*<>*/ k.length - 2 | 0, + _t_ = 0; if(_u_ >= 0){ var i = _t_; for(;;){ - /*<>*/ var - _v_ = h[1], - /*<>*/ _w_ = caml_check_bound(k, i)[1 + i]; - h[1] = - ( /*<>*/ caml_call2(H[2], seed, _w_) * 65599 | 0) - + _v_ - | 0; - /*<>*/ /*<>*/ var - _x_ = i + 1 | 0; + var + _v_ = /*<>*/ h[1], + _w_ = caml_check_bound(k, i)[1 + i]; + /*<>*/ h[1] = + (caml_call2(H[2], seed, _w_) * 65599 | 0) + _v_ | 0; + var _x_ = /*<>*/ i + 1 | 0; if(_u_ === i) break; i = _x_; } } - return h[1]; + /*<>*/ return h[1]; /*<>*/ } function equal(c, k){ - /*<>*/ var - len = k.length - 1, - /*<>*/ len$0 = length$1(c); - if(len !== len$0) /*<>*/ return 1; - /*<>*/ var - /*<>*/ i$1 = len - 1 | 0, - i = i$1; - /*<>*/ for(;;){ - if(0 > i) /*<>*/ return 0; - /*<>*/ /*<>*/ var - match = get_key$0(c, i); - if(! match) /*<>*/ return 2; - /*<>*/ var - ki = match[1], - /*<>*/ _s_ = caml_check_bound(k, i)[1 + i]; - /*<>*/ if - (! /*<>*/ caml_call2(H[1], _s_, ki)) + var + len = /*<>*/ k.length - 1, + len$0 = /*<>*/ length$1(c); + /*<>*/ if(len !== len$0) + /*<>*/ return 1; + var i$1 = /*<>*/ len - 1 | 0, i = i$1; + for(;;){ + /*<>*/ if(0 > i) + /*<>*/ return 0; + var match = /*<>*/ get_key$0(c, i); + /*<>*/ if(! match) + /*<>*/ return 2; + var + ki = /*<>*/ match[1], + _s_ = /*<>*/ caml_check_bound(k, i)[1 + i]; + /*<>*/ if(! caml_call2(H[1], _s_, ki)) /*<>*/ return 1; - /*<>*/ /*<>*/ var - i$0 = i - 1 | 0; + var i$0 = /*<>*/ i - 1 | 0; i = i$0; } /*<>*/ } function set_key_data(c, k, d){ - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Obj[23][12], c); - /*<>*/ var - _q_ = k.length - 2 | 0, - /*<>*/ _p_ = 0; + /*<>*/ caml_call1(Stdlib_Obj[23][12], c); + var _q_ = /*<>*/ k.length - 2 | 0, _p_ = 0; if(_q_ >= 0){ var i = _p_; for(;;){ - /*<>*/ set_key$0 - (c, i, caml_check_bound(k, i)[1 + i]); - /*<>*/ /*<>*/ var - _r_ = i + 1 | 0; + /*<>*/ /*<>*/ set_key$0 + (c, i, /*<>*/ caml_check_bound(k, i)[1 + i]); + var _r_ = /*<>*/ i + 1 | 0; if(_q_ === i) break; i = _r_; } } - /*<>*/ return set_data$1(c, d); - /*<>*/ } + /*<>*/ return set_data$1(c, d) /*<>*/ ; + } function check_key(c){ - /*<>*/ var - /*<>*/ i$1 = length$1(c) - 1 | 0, - i = i$1; - /*<>*/ for(;;){ - var _n_ = i < 0 ? 1 : 0; + var + i$1 = /*<>*/ length$1(c) - 1 | 0, + i = /*<>*/ i$1; + for(;;){ + var _n_ = /*<>*/ i < 0 ? 1 : 0; if(_n_) var _o_ = _n_; else{ - /*<>*/ /*<>*/ var + var _m_ = /*<>*/ caml_call2(Stdlib_Obj[23][7], c, i); - /*<>*/ if(_m_){ + /*<>*/ if(_m_){ var i$0 = i - 1 | 0; i = i$0; continue; } var _o_ = _m_; } - return _o_; + /*<>*/ return _o_; } /*<>*/ } - /*<>*/ return MakeSeeded + /*<>*/ return MakeSeeded ([0, create, seeded_hash, @@ -33719,11 +34198,10 @@ function Make$1(H){ var equal = H[1]; function seeded_hash(seed, x){ - /*<>*/ return /*<>*/ caml_call1 - (H[2], x); - /*<>*/ } + /*<>*/ return caml_call1(H[2], x) /*<>*/ ; + } var - include = MakeSeeded$2([0, equal, seeded_hash]), + include = /*<>*/ MakeSeeded$2([0, equal, seeded_hash]), _l_ = include[1], clear = include[2], reset = include[3], @@ -33742,17 +34220,14 @@ clean = include[17], stats_alive = include[18]; function create(sz){ - /*<>*/ return /*<>*/ caml_call2 - (_l_, _c_, sz); - /*<>*/ } + /*<>*/ return caml_call2(_l_, _c_, sz) /*<>*/ ; + } function of_seq(i){ - /*<>*/ /*<>*/ var - tbl = /*<>*/ caml_call2(_l_, _c_, 16); - /*<>*/ /*<>*/ caml_call2 - (replace_seq, tbl, i); - /*<>*/ return tbl; + var tbl = /*<>*/ caml_call2(_l_, _c_, 16); + /*<>*/ caml_call2(replace_seq, tbl, i); + /*<>*/ return tbl; /*<>*/ } - /*<>*/ return [0, + /*<>*/ return [0, create, clear, reset, @@ -33776,83 +34251,83 @@ /*<>*/ return [0, 0]; /*<>*/ } function add$1(b, k, d){ - /*<>*/ var _k_ = b[1]; + var _k_ = /*<>*/ b[1]; b[1] = [0, make$3(k, d), _k_]; - return 0; + /*<>*/ return 0; /*<>*/ } function test_keys$0(k, e){ /*<>*/ try{ - if(length$1(e) !== k.length - 1) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ if(length$1(e) !== k.length - 1) + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[3], 1); - /*<>*/ var - _g_ = k.length - 2 | 0, - /*<>*/ _f_ = 0; + var _g_ = /*<>*/ k.length - 2 | 0, _f_ = 0; if(_g_ >= 0){ var i = _f_; for(;;){ - /*<>*/ /*<>*/ var - match = get_key$0(e, i); - if(match){ + var match = /*<>*/ get_key$0(e, i); + /*<>*/ if(match){ var x = match[1]; - if(x === caml_check_bound(k, i)[1 + i]){ - /*<>*/ /*<>*/ var - _i_ = i + 1 | 0; + /*<>*/ if(x === caml_check_bound(k, i)[1 + i]){ + var _i_ = /*<>*/ i + 1 | 0; if(_g_ === i) break; i = _i_; continue; } } - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[3], 1); } } - /*<>*/ /*<>*/ var _h_ = 1; - /*<>*/ return _h_; + var _h_ = /*<>*/ 1; + return _h_; } catch(_j_){ - var _e_ = caml_wrap_exception(_j_); + var _e_ = /*<>*/ caml_wrap_exception(_j_); if(_e_ === Stdlib[3]) /*<>*/ return 0; - throw caml_maybe_attach_backtrace(_e_, 0); + /*<>*/ throw caml_maybe_attach_backtrace(_e_, 0); } /*<>*/ } function remove$1(b, k){ - /*<>*/ var l$0 = b[1], l = l$0, acc = 0; - /*<>*/ for(;;){ - if(! l) /*<>*/ return 0; - var h = l[1], t = l[2]; + var l$0 = /*<>*/ b[1], l = l$0, acc = 0; + for(;;){ + /*<>*/ if(! l) + /*<>*/ return 0; + var h = /*<>*/ l[1], t = l[2]; /*<>*/ if(test_keys$0(k, h)){ - b[1] = /*<>*/ caml_call2(Stdlib_List[13], acc, t); - return 0; + /*<>*/ b[1] = caml_call2(Stdlib_List[13], acc, t); + /*<>*/ return 0; } - /*<>*/ var - t$0 = l[2], - /*<>*/ acc$0 = [0, h, acc]; + var + t$0 = /*<>*/ l[2], + acc$0 = /*<>*/ [0, h, acc]; l = t$0; acc = acc$0; } /*<>*/ } function find$1(b, k){ - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call2 (Stdlib_List[40], - function(_d_){ /*<>*/ return test_keys$0(k, _d_);}, + function(_d_){ + /*<>*/ return test_keys$0(k, _d_); + }, b[1]); - if(! match) /*<>*/ return 0; - var e = match[1]; - /*<>*/ return get_data$1(e); - /*<>*/ } + /*<>*/ if(! match) + /*<>*/ return 0; + var e = /*<>*/ match[1]; + /*<>*/ return get_data$1(e) /*<>*/ ; + } function length$2(b){ - /*<>*/ return caml_call1(Stdlib_List[1], b[1]); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_List[1], b[1]) /*<>*/ ; + } function clear$1(b){ /*<>*/ b[1] = 0; return 0; /*<>*/ } var Stdlib_Ephemeron = - [0, + /*<>*/ [0, [0, make, query, @@ -33873,7 +34348,7 @@ [0, make$4, add$1, remove$1, find$1, length$2, clear$1]]]; runtime.caml_register_global(13, Stdlib_Ephemeron, "Stdlib__Ephemeron"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Filename @@ -33904,22 +34379,22 @@ caml_trampoline = runtime.caml_trampoline, caml_trampoline_return = runtime.caml_trampoline_return, caml_wrap_exception = runtime.caml_wrap_exception; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ function caml_call3(f, a0, a1, a2){ + function caml_call3(f, a0, a1, a2){ return (f.l >= 0 ? f.l : f.l = f.length) === 3 ? f(a0, a1, a2) : runtime.caml_call_gen(f, [a0, a1, a2]); } - /*<>*/ function caml_call4(f, a0, a1, a2, a3){ + function caml_call4(f, a0, a1, a2, a3){ return (f.l >= 0 ? f.l : f.l = f.length) === 4 ? f(a0, a1, a2, a3) : runtime.caml_call_gen(f, [a0, a1, a2, a3]); @@ -33968,92 +34443,79 @@ Stdlib_Buffer = global_data.Stdlib__Buffer, Stdlib_Sys = global_data.Stdlib__Sys; function generic_basename(is_dir_sep, current_dir_name, name){ - /*<>*/ if(name === cst$19) + /*<>*/ if(name === cst$19) /*<>*/ return current_dir_name; - var n$3 = caml_ml_string_length(name) - 1 | 0, n = n$3; - /*<>*/ for(;;){ - if(0 > n) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_String[16], name, 0, 1); - /*<>*/ if - (! /*<>*/ caml_call2(is_dir_sep, name, n)) - break; - /*<>*/ /*<>*/ var - n$0 = n - 1 | 0; + var + n$3 = /*<>*/ caml_ml_string_length(name) - 1 | 0, + n = n$3; + for(;;){ + /*<>*/ if(0 > n) + /*<>*/ return caml_call3 + (Stdlib_String[16], name, 0, 1) /*<>*/ ; + /*<>*/ if(! caml_call2(is_dir_sep, name, n)) break; + var n$0 = /*<>*/ n - 1 | 0; n = n$0; } - /*<>*/ var - /*<>*/ p = n + 1 | 0, - n$1 = n; - /*<>*/ for(;;){ - if(0 > n$1) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_String[16], name, 0, p); - /*<>*/ if - ( /*<>*/ caml_call2(is_dir_sep, name, n$1)) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_String[16], name, n$1 + 1 | 0, (p - n$1 | 0) - 1 | 0); - var n$2 = n$1 - 1 | 0; + var p = /*<>*/ n + 1 | 0, n$1 = n; + for(;;){ + /*<>*/ if(0 > n$1) + /*<>*/ return caml_call3 + (Stdlib_String[16], name, 0, p) /*<>*/ ; + /*<>*/ if(caml_call2(is_dir_sep, name, n$1)) + /*<>*/ return caml_call3 + (Stdlib_String[16], name, n$1 + 1 | 0, (p - n$1 | 0) - 1 | 0) /*<>*/ ; + var n$2 = /*<>*/ n$1 - 1 | 0; n$1 = n$2; } /*<>*/ } function generic_dirname(is_dir_sep, current_dir_name, name){ - /*<>*/ if(name === cst$19) + /*<>*/ if(name === cst$19) /*<>*/ return current_dir_name; - var n$5 = caml_ml_string_length(name) - 1 | 0, n = n$5; - /*<>*/ for(;;){ - if(0 > n) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_String[16], name, 0, 1); - /*<>*/ if - (! /*<>*/ caml_call2(is_dir_sep, name, n)) - break; - /*<>*/ /*<>*/ var - n$0 = n - 1 | 0; + var + n$5 = /*<>*/ caml_ml_string_length(name) - 1 | 0, + n = n$5; + for(;;){ + /*<>*/ if(0 > n) + /*<>*/ return caml_call3 + (Stdlib_String[16], name, 0, 1) /*<>*/ ; + /*<>*/ if(! caml_call2(is_dir_sep, name, n)) break; + var n$0 = /*<>*/ n - 1 | 0; n = n$0; } - var n$1 = n; - /*<>*/ for(;;){ - if(0 > n$1) return current_dir_name; - /*<>*/ if - ( /*<>*/ caml_call2(is_dir_sep, name, n$1)) - break; - /*<>*/ /*<>*/ var - n$2 = n$1 - 1 | 0; + var n$1 = /*<>*/ n; + for(;;){ + /*<>*/ if(0 > n$1) + /*<>*/ return current_dir_name; + /*<>*/ if(caml_call2(is_dir_sep, name, n$1)) break; + var n$2 = /*<>*/ n$1 - 1 | 0; n$1 = n$2; } - var n$3 = n$1; - /*<>*/ for(;;){ - if(0 > n$3) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_String[16], name, 0, 1); - /*<>*/ if - (! /*<>*/ caml_call2(is_dir_sep, name, n$3)) - /*<>*/ return /*<>*/ caml_call3 - (Stdlib_String[16], name, 0, n$3 + 1 | 0); - /*<>*/ /*<>*/ var - n$4 = n$3 - 1 | 0; + var n$3 = /*<>*/ n$1; + for(;;){ + /*<>*/ if(0 > n$3) + /*<>*/ return caml_call3 + (Stdlib_String[16], name, 0, 1) /*<>*/ ; + /*<>*/ if(! caml_call2(is_dir_sep, name, n$3)) + /*<>*/ return caml_call3 + (Stdlib_String[16], name, 0, n$3 + 1 | 0) /*<>*/ ; + var n$4 = /*<>*/ n$3 - 1 | 0; n$3 = n$4; } /*<>*/ } function is_dir_sep(s, i){ - /*<>*/ return 47 - === /*<>*/ caml_string_get(s, i) - ? 1 - : 0; + /*<>*/ return 47 === caml_string_get(s, i) ? 1 : 0 /*<>*/ ; /*<>*/ } function is_relative(n){ - /*<>*/ var - _aH_ = caml_ml_string_length(n) < 1 ? 1 : 0, + var + _aH_ = /*<>*/ caml_ml_string_length(n) < 1 ? 1 : 0, _aI_ = _aH_ || (47 !== /*<>*/ caml_string_get(n, 0) ? 1 : 0); - return _aI_; + /*<>*/ return _aI_; /*<>*/ } function is_implicit(n){ - /*<>*/ /*<>*/ var - _aC_ = is_relative(n); - /*<>*/ if(_aC_){ + var _aC_ = /*<>*/ is_relative(n); + /*<>*/ if(_aC_){ var _aD_ = caml_ml_string_length(n) < 2 ? 1 : 0, _aE_ = @@ -34063,7 +34525,7 @@ !== cst$27 ? 1 : 0); - /*<>*/ if(_aE_) + /*<>*/ if(_aE_) var _aF_ = caml_ml_string_length(n) < 3 ? 1 : 0, _aG_ = @@ -34074,33 +34536,34 @@ ? 1 : 0); else - var _aG_ = _aE_; + var _aG_ = /*<>*/ _aE_; } else var _aG_ = _aC_; - /*<>*/ return _aG_; + return _aG_; /*<>*/ } function check_suffix(name, suff){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_String[12], suff, name); - /*<>*/ } + /*<>*/ return caml_call2 + (Stdlib_String[12], suff, name) /*<>*/ ; + } function chop_suffix_opt(suffix, filename){ - /*<>*/ var - len_s = caml_ml_string_length(suffix), + var + len_s = /*<>*/ caml_ml_string_length(suffix), len_f = caml_ml_string_length(filename); - if(len_s > len_f) /*<>*/ return 0; - /*<>*/ /*<>*/ var + /*<>*/ if(len_s > len_f) + /*<>*/ return 0; + var r = /*<>*/ caml_call3 (Stdlib_String[16], filename, len_f - len_s | 0, len_s); - /*<>*/ return r === suffix + /*<>*/ return r === suffix ? [0, /*<>*/ caml_call3 (Stdlib_String[16], filename, 0, len_f - len_s | 0)] - : 0; - /*<>*/ } + : 0 /*<>*/ ; + } var - dummy = 0, + dummy = /*<>*/ 0, _h_ = [0, 7, 0], _g_ = [0, 1, [0, 3, [0, 5, 0]]], _f_ = [0, [2, 0, [4, 6, [0, 2, 6], 0, [2, 0, 0]]], "%s%06x%s"], @@ -34115,100 +34578,92 @@ cst_2 = cst_2$1, cst_tmp = "/tmp"; try{ - /*<>*/ var - /*<>*/ _j_ = - /*<>*/ caml_sys_getenv("TMPDIR"), + var + _j_ = /*<>*/ caml_sys_getenv("TMPDIR"), temp_dir_name = _j_; } catch(_aB_){ - var _a_ = caml_wrap_exception(_aB_); + var _a_ = /*<>*/ caml_wrap_exception(_aB_); if(_a_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_a_, 0); - var temp_dir_name = cst_tmp; - } - /*<>*/ function quote(s){ - /*<>*/ var - l = caml_ml_string_length(s), - /*<>*/ b = - /*<>*/ caml_call1(Stdlib_Buffer[1], l + 20 | 0); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, 39); - /*<>*/ var - _ay_ = l - 1 | 0, - /*<>*/ _ax_ = 0; + var temp_dir_name = /*<>*/ cst_tmp; + } + function quote(s){ + var + l = /*<>*/ caml_ml_string_length(s), + b = /*<>*/ caml_call1(Stdlib_Buffer[1], l + 20 | 0); + /*<>*/ caml_call2(Stdlib_Buffer[12], b, 39); + var _ay_ = /*<>*/ l - 1 | 0, _ax_ = 0; if(_ay_ >= 0){ var i = _ax_; for(;;){ - /*<>*/ if - (39 === /*<>*/ caml_string_get(s, i)) - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[16], b, quotequote); + /*<>*/ if(39 === caml_string_get(s, i)) + /*<>*/ caml_call2(Stdlib_Buffer[16], b, quotequote); else{ - /*<>*/ /*<>*/ var - _aA_ = /*<>*/ caml_string_get(s, i); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, _aA_); + var _aA_ = /*<>*/ caml_string_get(s, i); + /*<>*/ caml_call2(Stdlib_Buffer[12], b, _aA_); } - /*<>*/ /*<>*/ var - _az_ = i + 1 | 0; + var _az_ = /*<>*/ i + 1 | 0; if(_ay_ === i) break; i = _az_; } } - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, 39); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Buffer[2], b); + /*<>*/ caml_call2(Stdlib_Buffer[12], b, 39); + /*<>*/ return caml_call1(Stdlib_Buffer[2], b); } function quote_command(cmd, stdin, stdout, stderr, args){ /*<>*/ if(stderr){ var f = stderr[1]; - /*<>*/ if - ( /*<>*/ caml_equal(stderr, stdout)) - var _am_ = cst_2_1; + /*<>*/ if(caml_equal(stderr, stdout)) + var _am_ = /*<>*/ cst_2_1; else - /*<>*/ var - /*<>*/ _aw_ = quote(f), - _am_ = /*<>*/ caml_call2(Stdlib[28], cst_2, _aw_); - var _an_ = _am_; + var + _aw_ = /*<>*/ quote(f), + _am_ = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst_2, _aw_); + var _an_ = /*<>*/ _am_; } else - var _an_ = cst$4; - if(stdout) - /*<>*/ var + var _an_ = /*<>*/ cst$4; + /*<>*/ if(stdout) + var f$0 = stdout[1], - /*<>*/ _ao_ = quote(f$0), - _ap_ = /*<>*/ caml_call2(Stdlib[28], cst, _ao_); + _ao_ = /*<>*/ quote(f$0), + _ap_ = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst, _ao_); else - var _ap_ = cst$3; - /*<>*/ /*<>*/ var - _aq_ = /*<>*/ caml_call2(Stdlib[28], _ap_, _an_); - if(stdin) - /*<>*/ var + var _ap_ = /*<>*/ cst$3; + var _aq_ = /*<>*/ caml_call2(Stdlib[28], _ap_, _an_); + /*<>*/ if(stdin) + var f$1 = stdin[1], - /*<>*/ _ar_ = quote(f$1), - _as_ = /*<>*/ caml_call2(Stdlib[28], cst$0, _ar_); + _ar_ = /*<>*/ quote(f$1), + _as_ = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst$0, _ar_); else - var _as_ = cst$2; - /*<>*/ var - /*<>*/ _at_ = - /*<>*/ caml_call2(Stdlib[28], _as_, _aq_), - /*<>*/ _au_ = + var _as_ = /*<>*/ cst$2; + var + _at_ = /*<>*/ caml_call2(Stdlib[28], _as_, _aq_), + _au_ = /*<>*/ caml_call2 (Stdlib_List[20], quote, [0, cmd, args]), - /*<>*/ _av_ = + _av_ = /*<>*/ caml_call2(Stdlib_String[7], cst$1, _au_); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[28], _av_, _at_); - /*<>*/ } - /*<>*/ function basename(_al_){ - /*<>*/ return generic_basename(is_dir_sep, current_dir_name, _al_); + /*<>*/ return caml_call2(Stdlib[28], _av_, _at_) /*<>*/ ; } - /*<>*/ function dirname(_ak_){ - /*<>*/ return generic_dirname(is_dir_sep, current_dir_name, _ak_); + function basename(_al_){ + /*<>*/ return generic_basename + (is_dir_sep, current_dir_name, _al_); } - /*<>*/ /*<>*/ var + function dirname(_ak_){ + /*<>*/ return generic_dirname + (is_dir_sep, current_dir_name, _ak_); + } + var Unix = - [0, + /*<>*/ [0, null$0, current_dir_name, parent_dir_name, @@ -34224,10 +34679,9 @@ basename, dirname]; function is_dir_sep$0(s, i){ - /*<>*/ var - /*<>*/ c = - /*<>*/ caml_string_get(s, i), - _ah_ = 47 === c ? 1 : 0; + var + c = /*<>*/ caml_string_get(s, i), + _ah_ = /*<>*/ 47 === c ? 1 : 0; if(_ah_) var _ai_ = _ah_; else @@ -34235,34 +34689,33 @@ return _ai_; /*<>*/ } function is_relative$0(n){ - /*<>*/ var - _ab_ = caml_ml_string_length(n) < 1 ? 1 : 0, + var + _ab_ = /*<>*/ caml_ml_string_length(n) < 1 ? 1 : 0, _ac_ = _ab_ || (47 !== /*<>*/ caml_string_get(n, 0) ? 1 : 0); - if(_ac_){ + /*<>*/ if(_ac_){ var _ad_ = caml_ml_string_length(n) < 1 ? 1 : 0, _ae_ = _ad_ || (92 !== /*<>*/ caml_string_get(n, 0) ? 1 : 0); - if(_ae_) + /*<>*/ if(_ae_) var _af_ = caml_ml_string_length(n) < 2 ? 1 : 0, _ag_ = _af_ || (58 !== /*<>*/ caml_string_get(n, 1) ? 1 : 0); else - var _ag_ = _ae_; + var _ag_ = /*<>*/ _ae_; } else var _ag_ = _ac_; return _ag_; /*<>*/ } function is_implicit$0(n){ - /*<>*/ /*<>*/ var - _U_ = is_relative$0(n); - /*<>*/ if(_U_){ + var _U_ = /*<>*/ is_relative$0(n); + /*<>*/ if(_U_){ var _V_ = caml_ml_string_length(n) < 2 ? 1 : 0, _W_ = @@ -34272,7 +34725,7 @@ !== cst$27 ? 1 : 0); - /*<>*/ if(_W_){ + /*<>*/ if(_W_){ var _X_ = caml_ml_string_length(n) < 2 ? 1 : 0, _Y_ = @@ -34282,7 +34735,7 @@ !== ".\\" ? 1 : 0); - /*<>*/ if(_Y_){ + /*<>*/ if(_Y_){ var _Z_ = caml_ml_string_length(n) < 3 ? 1 : 0, ___ = @@ -34292,7 +34745,7 @@ !== cst$28 ? 1 : 0); - /*<>*/ if(___) + /*<>*/ if(___) var _$_ = caml_ml_string_length(n) < 3 ? 1 : 0, _aa_ = @@ -34304,7 +34757,7 @@ ? 1 : 0); else - var _aa_ = ___; + var _aa_ = /*<>*/ ___; } else var _aa_ = _Y_; @@ -34314,157 +34767,145 @@ } else var _aa_ = _U_; - /*<>*/ return _aa_; + return _aa_; /*<>*/ } function check_suffix$0(name, suff){ - /*<>*/ var - _R_ = caml_ml_string_length(suff) <= caml_ml_string_length(name) ? 1 : 0; + var + _R_ = + /*<>*/ caml_ml_string_length(suff) + <= caml_ml_string_length(name) + ? 1 + : 0; if(_R_) - /*<>*/ var - /*<>*/ s = + var + s = /*<>*/ caml_call3 (Stdlib_String[16], name, - caml_ml_string_length(name) - caml_ml_string_length(suff) | 0, + /*<>*/ caml_ml_string_length(name) + - caml_ml_string_length(suff) + | 0, caml_ml_string_length(suff)), - /*<>*/ _S_ = - /*<>*/ caml_call1(Stdlib_String[27], suff), + _S_ = /*<>*/ caml_call1(Stdlib_String[27], suff), _T_ = - /*<>*/ caml_call1(Stdlib_String[27], s) === _S_ + /*<>*/ /*<>*/ caml_call1 + (Stdlib_String[27], s) + === _S_ ? 1 : 0; else - var _T_ = _R_; - /*<>*/ return _T_; + var _T_ = /*<>*/ _R_; + return _T_; /*<>*/ } function chop_suffix_opt$0(suffix, filename){ - /*<>*/ var - len_s = caml_ml_string_length(suffix), + var + len_s = /*<>*/ caml_ml_string_length(suffix), len_f = caml_ml_string_length(filename); - if(len_s > len_f) /*<>*/ return 0; - /*<>*/ var - /*<>*/ r = + /*<>*/ if(len_s > len_f) + /*<>*/ return 0; + var + r = /*<>*/ caml_call3 (Stdlib_String[16], filename, len_f - len_s | 0, len_s), - /*<>*/ _Q_ = - /*<>*/ caml_call1(Stdlib_String[27], suffix); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_String[27], r) - === _Q_ + _Q_ = /*<>*/ caml_call1(Stdlib_String[27], suffix); + /*<>*/ return caml_call1(Stdlib_String[27], r) === _Q_ ? [0, /*<>*/ caml_call3 (Stdlib_String[16], filename, 0, len_f - len_s | 0)] - : 0; - /*<>*/ } - try{ - /*<>*/ var - /*<>*/ _i_ = - /*<>*/ caml_sys_getenv("TEMP"), + : 0 /*<>*/ ; + } + /*<>*/ try{ + var + _i_ = /*<>*/ caml_sys_getenv("TEMP"), temp_dir_name$0 = _i_; } catch(_P_){ - var _b_ = caml_wrap_exception(_P_); + var _b_ = /*<>*/ caml_wrap_exception(_P_); if(_b_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_b_, 0); - var temp_dir_name$0 = cst$5; + var temp_dir_name$0 = /*<>*/ cst$5; } function quote$0(s){ - /*<>*/ var - l = caml_ml_string_length(s), - /*<>*/ b = - /*<>*/ caml_call1(Stdlib_Buffer[1], l + 20 | 0); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, 34); + var + l = /*<>*/ caml_ml_string_length(s), + b = /*<>*/ caml_call1(Stdlib_Buffer[1], l + 20 | 0); + /*<>*/ caml_call2(Stdlib_Buffer[12], b, 34); function loop$0(counter, i){ - /*<>*/ var i$0 = i; - /*<>*/ for(;;){ + var i$0 = /*<>*/ i; + for(;;){ if(i$0 === l) - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, 34); - /*<>*/ /*<>*/ var - c = /*<>*/ caml_string_get(s, i$0); - if(34 === c){ - var _N_ = 0; - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (loop_bs, [0, _N_, i$0]); - var counter$1 = counter + 1 | 0; - /*<>*/ return loop_bs(counter$1, _N_, i$0); + /*<>*/ return caml_call2(Stdlib_Buffer[12], b, 34) /*<>*/ ; + var c = /*<>*/ caml_string_get(s, i$0); + /*<>*/ if(34 === c){ + var _N_ = /*<>*/ 0; + if(counter >= 50) + return caml_trampoline_return(loop_bs, [0, _N_, i$0]) /*<>*/ ; + var counter$1 = /*<>*/ counter + 1 | 0; + return loop_bs(counter$1, _N_, i$0) /*<>*/ ; } - if(92 === c){ - var _O_ = 0; - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (loop_bs, [0, _O_, i$0]); - var counter$0 = counter + 1 | 0; - /*<>*/ return loop_bs(counter$0, _O_, i$0); + /*<>*/ if(92 === c){ + var _O_ = /*<>*/ 0; + if(counter >= 50) + return caml_trampoline_return(loop_bs, [0, _O_, i$0]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return loop_bs(counter$0, _O_, i$0) /*<>*/ ; } - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, c); - /*<>*/ /*<>*/ var - i$1 = i$0 + 1 | 0; + /*<>*/ caml_call2(Stdlib_Buffer[12], b, c); + var i$1 = /*<>*/ i$0 + 1 | 0; i$0 = i$1; } /*<>*/ } - function loop(i){ /*<>*/ return caml_trampoline(loop$0(0, i));} + function loop(i){ + /*<>*/ return /*<>*/ caml_trampoline + ( /*<>*/ loop$0(0, i)) /*<>*/ ; + } function loop_bs(counter, n, i){ - /*<>*/ var n$0 = n, i$0 = i; - /*<>*/ for(;;){ + var n$0 = /*<>*/ n, i$0 = i; + for(;;){ if(i$0 === l){ - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, 34); - /*<>*/ return add_bs(n$0); + /*<>*/ caml_call2(Stdlib_Buffer[12], b, 34); + /*<>*/ return add_bs(n$0) /*<>*/ ; } - /*<>*/ /*<>*/ var - match = /*<>*/ caml_string_get(s, i$0); - if(34 === match){ + var match = /*<>*/ caml_string_get(s, i$0); + /*<>*/ if(34 === match){ /*<>*/ add_bs((2 * n$0 | 0) + 1 | 0); - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, 34); - /*<>*/ /*<>*/ var - _M_ = i$0 + 1 | 0; - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (loop$0, [0, _M_]); - var counter$1 = counter + 1 | 0; - /*<>*/ return loop$0(counter$1, _M_); + /*<>*/ caml_call2(Stdlib_Buffer[12], b, 34); + var _M_ = /*<>*/ i$0 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return(loop$0, [0, _M_]) /*<>*/ ; + var counter$1 = /*<>*/ counter + 1 | 0; + return loop$0(counter$1, _M_) /*<>*/ ; } - if(92 !== match){ + /*<>*/ if(92 !== match){ /*<>*/ add_bs(n$0); - /*<>*/ if(counter >= 50) - /*<>*/ return /*<>*/ caml_trampoline_return - (loop$0, [0, i$0]); - var counter$0 = counter + 1 | 0; - /*<>*/ return loop$0(counter$0, i$0); + /*<>*/ if(counter >= 50) + return caml_trampoline_return(loop$0, [0, i$0]) /*<>*/ ; + var counter$0 = /*<>*/ counter + 1 | 0; + return loop$0(counter$0, i$0) /*<>*/ ; } - /*<>*/ var - /*<>*/ i$1 = i$0 + 1 | 0, - n$1 = n$0 + 1 | 0; + var i$1 = /*<>*/ i$0 + 1 | 0, n$1 = n$0 + 1 | 0; n$0 = n$1; i$0 = i$1; } /*<>*/ } function add_bs(n){ - /*<>*/ /*<>*/ var _K_ = 1; + var _K_ = /*<>*/ 1; if(n >= 1){ var j = _K_; for(;;){ - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, 92); - /*<>*/ /*<>*/ var - _L_ = j + 1 | 0; + /*<>*/ caml_call2(Stdlib_Buffer[12], b, 92); + var _L_ = /*<>*/ j + 1 | 0; if(n === j) break; j = _L_; } } /*<>*/ } /*<>*/ loop(0); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Buffer[2], b); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib_Buffer[2], b) /*<>*/ ; + } function quote_cmd_filename(f){ - /*<>*/ if + /*<>*/ if (! - /*<>*/ caml_call2 + caml_call2 (Stdlib_String[23], function(param){ /*<>*/ if(34 !== param && 37 !== param) @@ -34472,62 +34913,65 @@ /*<>*/ return 1; /*<>*/ }, f)) - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_String[15], f, 32) - ? /*<>*/ caml_call2 + /*<>*/ return caml_call2(Stdlib_String[15], f, 32) + ? /*<>*/ caml_call2 (Stdlib_String[7], cst$7, [0, cst$6, [0, f, _c_]]) - : f; - /*<>*/ /*<>*/ var + : f /*<>*/ ; + var _J_ = /*<>*/ caml_call2 (Stdlib[28], cst_Filename_quote_command_bad, f); - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[2], _J_); - /*<>*/ } + /*<>*/ return caml_call1(Stdlib[2], _J_) /*<>*/ ; + } function quote_command$0(cmd, stdin, stdout, stderr, args){ /*<>*/ if(stderr){ var f = stderr[1]; - /*<>*/ if - ( /*<>*/ caml_equal(stderr, stdout)) - var _w_ = cst_2_1$0; + /*<>*/ if(caml_equal(stderr, stdout)) + var _w_ = /*<>*/ cst_2_1$0; else - /*<>*/ var - /*<>*/ _H_ = quote_cmd_filename(f), - _w_ = /*<>*/ caml_call2(Stdlib[28], cst_2$0, _H_); - var _x_ = _w_; + var + _H_ = /*<>*/ quote_cmd_filename(f), + _w_ = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst_2$0, _H_); + var _x_ = /*<>*/ _w_; } else - var _x_ = cst$16; - var _y_ = [0, _x_, _d_]; + var _x_ = /*<>*/ cst$16; + var _y_ = /*<>*/ [0, _x_, _d_]; if(stdout) - /*<>*/ var + var f$0 = stdout[1], - /*<>*/ _z_ = quote_cmd_filename(f$0), - _A_ = /*<>*/ caml_call2(Stdlib[28], cst$8, _z_); + _z_ = /*<>*/ quote_cmd_filename(f$0), + _A_ = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst$8, _z_); else - var _A_ = cst$15; - var _B_ = [0, _A_, _y_]; + var _A_ = /*<>*/ cst$15; + var _B_ = /*<>*/ [0, _A_, _y_]; if(stdin) - /*<>*/ var + var f$1 = stdin[1], - /*<>*/ _C_ = quote_cmd_filename(f$1), - _D_ = /*<>*/ caml_call2(Stdlib[28], cst$9, _C_); + _C_ = /*<>*/ quote_cmd_filename(f$1), + _D_ = + /*<>*/ /*<>*/ caml_call2 + (Stdlib[28], cst$9, _C_); else - var _D_ = cst$14; - /*<>*/ var - /*<>*/ _E_ = + var _D_ = /*<>*/ cst$14; + var + _E_ = /*<>*/ caml_call2(Stdlib_List[20], quote$0, args), - /*<>*/ s = - /*<>*/ caml_call2(Stdlib_String[7], cst$10, _E_), - /*<>*/ b = - /*<>*/ caml_call1 - (Stdlib_Buffer[1], caml_ml_string_length(s) + 20 | 0); - /*<>*/ /*<>*/ caml_call2 + s = /*<>*/ caml_call2(Stdlib_String[7], cst$10, _E_), + b = + /*<>*/ /*<>*/ caml_call1 + (Stdlib_Buffer[1], + /*<>*/ caml_ml_string_length(s) + 20 | 0); + /*<>*/ caml_call2 (Stdlib_String[30], function(c){ - /*<>*/ a: + a: { - if(62 <= c){ + /*<>*/ if(62 <= c){ var _I_ = c - 63 | 0; if(60 < _I_ >>> 0){ if(62 <= _I_) break a; @@ -34543,82 +34987,81 @@ switch(c - 33 | 0){case 2:case 3:case 6: break a; } } - /*<>*/ /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, 94); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, c); + /*<>*/ caml_call2(Stdlib_Buffer[12], b, 94); + /*<>*/ return caml_call2(Stdlib_Buffer[12], b, c) /*<>*/ ; } - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Buffer[12], b, c); - /*<>*/ }, + /*<>*/ return caml_call2(Stdlib_Buffer[12], b, c) /*<>*/ ; + }, s); - /*<>*/ var + var _F_ = - [0, + /*<>*/ [0, cst$11, - [0, - /*<>*/ caml_call1(Stdlib_Buffer[2], b), - [0, _D_, _B_]]], - /*<>*/ _G_ = - [0, cst$12, [0, quote_cmd_filename(cmd), _F_]]; - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_String[7], cst$13, _G_); - /*<>*/ } + [0, caml_call1(Stdlib_Buffer[2], b), [0, _D_, _B_]]], + _G_ = + /*<>*/ [0, + cst$12, + [0, quote_cmd_filename(cmd), _F_]]; + /*<>*/ return caml_call2 + (Stdlib_String[7], cst$13, _G_) /*<>*/ ; + } function drive_and_path(s){ - /*<>*/ var - _s_ = 2 <= /*<>*/ caml_ml_string_length(s) ? 1 : 0; + var + _s_ = /*<>*/ 2 <= caml_ml_string_length(s) ? 1 : 0; if(_s_){ - /*<>*/ /*<>*/ var - param = /*<>*/ caml_string_get(s, 0); + var param = /*<>*/ caml_string_get(s, 0); a: { b: { - if(91 <= param){ + /*<>*/ if(91 <= param){ if(25 < param - 97 >>> 0) break b; } else if(65 > param) break b; - var _t_ = 1; + var _t_ = /*<>*/ 1; break a; } - var _t_ = 0; + var _t_ = /*<>*/ 0; } - /*<>*/ /*<>*/ var + var _u_ = - _t_ + /*<>*/ _t_ ? 58 === /*<>*/ caml_string_get(s, 1) ? 1 : 0 : _t_; } else - var _u_ = _s_; - /*<>*/ if(! _u_) + var _u_ = /*<>*/ _s_; + /*<>*/ if(! _u_) /*<>*/ return [0, cst$17, s]; - /*<>*/ /*<>*/ var + var _v_ = - /*<>*/ caml_call3 - (Stdlib_String[16], s, 2, caml_ml_string_length(s) - 2 | 0); - /*<>*/ return [0, - /*<>*/ caml_call3(Stdlib_String[16], s, 0, 2), - _v_]; + /*<>*/ /*<>*/ caml_call3 + (Stdlib_String[16], + s, + 2, + /*<>*/ caml_ml_string_length(s) - 2 | 0); + /*<>*/ return [0, + caml_call3(Stdlib_String[16], s, 0, 2), + _v_] /*<>*/ ; /*<>*/ } function dirname$0(s){ - /*<>*/ var - /*<>*/ match = drive_and_path(s), - path = match[2], + var + match = /*<>*/ drive_and_path(s), + path = /*<>*/ match[2], drive = match[1], - /*<>*/ dir = - generic_dirname(is_dir_sep$0, current_dir_name$0, path); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[28], drive, dir); - /*<>*/ } + dir = + /*<>*/ generic_dirname + (is_dir_sep$0, current_dir_name$0, path); + /*<>*/ return caml_call2(Stdlib[28], drive, dir) /*<>*/ ; + } function basename$0(s){ - /*<>*/ var path = drive_and_path(s)[2]; + var path = /*<>*/ drive_and_path(s)[2]; /*<>*/ return generic_basename - (is_dir_sep$0, current_dir_name$0, path); - /*<>*/ } - /*<>*/ /*<>*/ var + (is_dir_sep$0, current_dir_name$0, path) /*<>*/ ; + } + var Win32 = - [0, + /*<>*/ [0, null$1, current_dir_name$0, parent_dir_name$0, @@ -34633,15 +35076,17 @@ quote_command$0, basename$0, dirname$0]; - /*<>*/ function basename$1(_r_){ - /*<>*/ return generic_basename(is_dir_sep$0, current_dir_name$1, _r_); + function basename$1(_r_){ + /*<>*/ return generic_basename + (is_dir_sep$0, current_dir_name$1, _r_); } - /*<>*/ function dirname$1(_q_){ - /*<>*/ return generic_dirname(is_dir_sep$0, current_dir_name$1, _q_); + function dirname$1(_q_){ + /*<>*/ return generic_dirname + (is_dir_sep$0, current_dir_name$1, _q_); } - /*<>*/ var - /*<>*/ Cygwin = - [0, + var + Cygwin = + /*<>*/ [0, null$2, current_dir_name$1, parent_dir_name$1, @@ -34673,55 +35118,50 @@ basename$2 = Sysdeps[13], dirname$2 = Sysdeps[14]; function concat(dirname, filename){ - /*<>*/ var l = caml_ml_string_length(dirname); - /*<>*/ if - (0 !== l && ! is_dir_sep$1(dirname, l - 1 | 0)){ - /*<>*/ /*<>*/ var + var l = /*<>*/ caml_ml_string_length(dirname); + /*<>*/ if + (0 !== l + && ! /*<>*/ is_dir_sep$1(dirname, l - 1 | 0)){ + var _p_ = /*<>*/ caml_call2 (Stdlib[28], dir_sep$2, filename); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[28], dirname, _p_); + /*<>*/ return caml_call2(Stdlib[28], dirname, _p_); } - /*<>*/ return /*<>*/ caml_call2 - (Stdlib[28], dirname, filename); - /*<>*/ } + /*<>*/ return caml_call2 + (Stdlib[28], dirname, filename) /*<>*/ ; + } function chop_suffix(name, suff){ - /*<>*/ return check_suffix$1(name, suff) - ? caml_call3 + /*<>*/ return check_suffix$1(name, suff) + ? /*<>*/ caml_call3 (Stdlib_String[16], name, 0, caml_ml_string_length(name) - caml_ml_string_length(suff) | 0) : /*<>*/ caml_call1 - (Stdlib[1], cst_Filename_chop_suffix); - /*<>*/ } + (Stdlib[1], cst_Filename_chop_suffix) /*<>*/ ; + } function extension_len(name){ - /*<>*/ var - i$3 = caml_ml_string_length(name) - 1 | 0, + var + i$3 = /*<>*/ caml_ml_string_length(name) - 1 | 0, i0 = i$3; - /*<>*/ for(;;){ - /*<>*/ if(0 <= i0 && ! is_dir_sep$1(name, i0)){ - /*<>*/ if - (46 === /*<>*/ caml_string_get(name, i0)) - break; - /*<>*/ /*<>*/ var - i$2 = i0 - 1 | 0; + for(;;){ + /*<>*/ if + (0 <= i0 && ! /*<>*/ is_dir_sep$1(name, i0)){ + /*<>*/ if(46 === caml_string_get(name, i0)) break; + var i$2 = /*<>*/ i0 - 1 | 0; i0 = i$2; continue; } /*<>*/ return 0; } - /*<>*/ var - /*<>*/ i$1 = i0 - 1 | 0, - i = i$1; - /*<>*/ for(;;){ - /*<>*/ if(0 <= i && ! is_dir_sep$1(name, i)){ - /*<>*/ if - (46 !== /*<>*/ caml_string_get(name, i)) - return caml_ml_string_length(name) - i0 | 0; - /*<>*/ /*<>*/ var - i$0 = i - 1 | 0; + var i$1 = /*<>*/ i0 - 1 | 0, i = i$1; + for(;;){ + /*<>*/ if + (0 <= i && ! /*<>*/ is_dir_sep$1(name, i)){ + /*<>*/ if(46 !== caml_string_get(name, i)) + /*<>*/ return caml_ml_string_length(name) - i0 | 0; + var i$0 = /*<>*/ i - 1 | 0; i = i$0; continue; } @@ -34729,57 +35169,54 @@ } /*<>*/ } function extension(name){ - /*<>*/ /*<>*/ var - l = extension_len(name); + var l = /*<>*/ extension_len(name); /*<>*/ return 0 === l ? cst$18 : /*<>*/ caml_call3 (Stdlib_String[16], name, caml_ml_string_length(name) - l | 0, - l); - /*<>*/ } + l) /*<>*/ ; + } function chop_extension(name){ - /*<>*/ /*<>*/ var - l = extension_len(name); + var l = /*<>*/ extension_len(name); /*<>*/ return 0 === l ? /*<>*/ caml_call1 (Stdlib[1], cst_Filename_chop_extension) - : caml_call3 + : /*<>*/ caml_call3 (Stdlib_String[16], name, 0, - caml_ml_string_length(name) - l | 0); - /*<>*/ } + caml_ml_string_length(name) - l | 0) /*<>*/ ; + } function remove_extension(name){ - /*<>*/ /*<>*/ var - l = extension_len(name); + var l = /*<>*/ extension_len(name); /*<>*/ return 0 === l ? name - : caml_call3 + : /*<>*/ caml_call3 (Stdlib_String[16], name, 0, - caml_ml_string_length(name) - l | 0); - /*<>*/ } - /*<>*/ /*<>*/ var + caml_ml_string_length(name) - l | 0) /*<>*/ ; + } + var prng_key = /*<>*/ caml_call2 (Stdlib_Domain[10][1], 0, Stdlib_Random[19][2]); function temp_file_name(temp_dir, prefix, suffix){ - /*<>*/ var - /*<>*/ random_state = + var + random_state = /*<>*/ caml_call1(Stdlib_Domain[10][2], prng_key), - /*<>*/ rnd = + rnd = /*<>*/ caml_call1 (Stdlib_Random[19][4], random_state) & 16777215; - /*<>*/ return concat + /*<>*/ return /*<>*/ concat (temp_dir, /*<>*/ caml_call4 - (Stdlib_Printf[4], _f_, prefix, rnd, suffix)); - /*<>*/ } - /*<>*/ /*<>*/ var + (Stdlib_Printf[4], _f_, prefix, rnd, suffix)) /*<>*/ ; + } + var current_temp_dir_name = /*<>*/ caml_call2 (Stdlib_Domain[10][1], @@ -34788,107 +35225,102 @@ /*<>*/ return temp_dir_name$1; /*<>*/ }); function set_temp_dir_name(s){ - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Domain[10][3], current_temp_dir_name, s); - /*<>*/ } + /*<>*/ return caml_call2 + (Stdlib_Domain[10][3], current_temp_dir_name, s) /*<>*/ ; + } function get_temp_dir_name(param){ /*<>*/ return caml_call1 - (Stdlib_Domain[10][2], current_temp_dir_name); - /*<>*/ } + (Stdlib_Domain[10][2], current_temp_dir_name) /*<>*/ ; + } function temp_file(opt, prefix, suffix){ var temp_dir = - opt + /*<>*/ opt ? opt[1] : /*<>*/ caml_call1 (Stdlib_Domain[10][2], current_temp_dir_name), - counter = 0; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - name = temp_file_name(temp_dir, prefix, suffix); + counter = /*<>*/ 0; + for(;;){ + var + name = + /*<>*/ temp_file_name(temp_dir, prefix, suffix); /*<>*/ try{ - /*<>*/ /*<>*/ runtime.caml_sys_close + /*<>*/ /*<>*/ runtime.caml_sys_close ( /*<>*/ runtime.caml_sys_open(name, _g_, 384)); - /*<>*/ return name; + return name; } catch(e$0){ - var e = caml_wrap_exception(e$0); + var e = /*<>*/ caml_wrap_exception(e$0); if(e[1] !== Stdlib[11]) throw caml_maybe_attach_backtrace(e, 0); - if(20 <= counter) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (e, 0); - /*<>*/ /*<>*/ var - counter$0 = counter + 1 | 0; + /*<>*/ if(20 <= counter) + /*<>*/ throw caml_maybe_attach_backtrace(e, 0); + var counter$0 = /*<>*/ counter + 1 | 0; counter = counter$0; } } - } + /*<>*/ } function open_temp_file(_m_, _l_, opt, prefix, suffix){ var - mode = _m_ ? _m_[1] : _h_, + mode = /*<>*/ _m_ ? _m_[1] : _h_, perms = _l_ ? _l_[1] : 384, temp_dir = opt ? opt[1] : /*<>*/ caml_call1 (Stdlib_Domain[10][2], current_temp_dir_name), - counter = 0; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - name = temp_file_name(temp_dir, prefix, suffix); + counter = /*<>*/ 0; + for(;;){ + var + name = + /*<>*/ temp_file_name(temp_dir, prefix, suffix); /*<>*/ try{ - /*<>*/ /*<>*/ var + var _n_ = - [0, + /*<>*/ [0, name, - /*<>*/ caml_call3 - (Stdlib[62], [0, 1, [0, 3, [0, 5, mode]]], perms, name)]; - /*<>*/ return _n_; + caml_call3(Stdlib[62], [0, 1, [0, 3, [0, 5, mode]]], perms, name)]; + return _n_; } catch(e$0){ - var e = caml_wrap_exception(e$0); + var e = /*<>*/ caml_wrap_exception(e$0); if(e[1] !== Stdlib[11]) throw caml_maybe_attach_backtrace(e, 0); - if(20 <= counter) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (e, 0); - /*<>*/ /*<>*/ var - counter$0 = counter + 1 | 0; + /*<>*/ if(20 <= counter) + /*<>*/ throw caml_maybe_attach_backtrace(e, 0); + var counter$0 = /*<>*/ counter + 1 | 0; counter = counter$0; } } - } + /*<>*/ } function temp_dir(_k_, opt, prefix, suffix){ var temp_dir = - _k_ + /*<>*/ _k_ ? _k_[1] : /*<>*/ caml_call1 (Stdlib_Domain[10][2], current_temp_dir_name), - perms = opt ? opt[1] : 448, - counter = 0; - /*<>*/ for(;;){ - /*<>*/ /*<>*/ var - name = temp_file_name(temp_dir, prefix, suffix); + perms = /*<>*/ opt ? opt[1] : 448, + counter = /*<>*/ 0; + for(;;){ + var + name = + /*<>*/ temp_file_name(temp_dir, prefix, suffix); /*<>*/ try{ - /*<>*/ /*<>*/ runtime.caml_sys_mkdir - (name, perms); - /*<>*/ return name; + /*<>*/ runtime.caml_sys_mkdir(name, perms); + return name; } catch(e$0){ - var e = caml_wrap_exception(e$0); + var e = /*<>*/ caml_wrap_exception(e$0); if(e[1] !== Stdlib[11]) throw caml_maybe_attach_backtrace(e, 0); - if(20 <= counter) - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (e, 0); - /*<>*/ /*<>*/ var - counter$0 = counter + 1 | 0; + /*<>*/ if(20 <= counter) + /*<>*/ throw caml_maybe_attach_backtrace(e, 0); + var counter$0 = /*<>*/ counter + 1 | 0; counter = counter$0; } } - } + /*<>*/ } var Stdlib_Filename = - [0, + /*<>*/ [0, current_dir_name$2, parent_dir_name$2, dir_sep$2, @@ -34928,105 +35360,109 @@ i = [254, 0., 1.], _a_ = [254, 0., 0.]; function add(x, y){ - /*<>*/ return [254, x[1] + y[1], x[2] + y[2]]; + /*<>*/ return [254, x[1] + y[1], x[2] + y[2]]; /*<>*/ } function sub(x, y){ - /*<>*/ return [254, x[1] - y[1], x[2] - y[2]]; + /*<>*/ return [254, x[1] - y[1], x[2] - y[2]]; /*<>*/ } function neg(x){ - /*<>*/ return [254, - x[1], - x[2]]; + /*<>*/ return [254, - x[1], - x[2]]; /*<>*/ } function conj(x){ - /*<>*/ return [254, x[1], - x[2]]; + /*<>*/ return [254, x[1], - x[2]]; /*<>*/ } function mul(x, y){ - /*<>*/ return [254, + /*<>*/ return [254, x[1] * y[1] - x[2] * y[2], x[1] * y[2] + x[2] * y[1]]; /*<>*/ } function div(x, y){ - /*<>*/ if + /*<>*/ if ( /*<>*/ Math.abs(y[2]) <= /*<>*/ Math.abs(y[1])){ - /*<>*/ var - /*<>*/ r = y[2] / y[1], - /*<>*/ d = y[1] + r * y[2]; - /*<>*/ return [254, + var + r = /*<>*/ y[2] / y[1], + d = /*<>*/ y[1] + r * y[2]; + /*<>*/ return [254, (x[1] + r * x[2]) / d, (x[2] - r * x[1]) / d]; } - /*<>*/ var - /*<>*/ r$0 = y[1] / y[2], - /*<>*/ d$0 = y[2] + r$0 * y[1]; - /*<>*/ return [254, + var + r$0 = /*<>*/ y[1] / y[2], + d$0 = /*<>*/ y[2] + r$0 * y[1]; + /*<>*/ return [254, (r$0 * x[1] + x[2]) / d$0, (r$0 * x[2] - x[1]) / d$0]; /*<>*/ } function inv(x){ - /*<>*/ return div(one, x); - /*<>*/ } + /*<>*/ return div(one, x) /*<>*/ ; + } function norm2(x){ - /*<>*/ return x[1] * x[1] + x[2] * x[2]; - /*<>*/ } + /*<>*/ return x[1] * x[1] + x[2] * x[2]; + } function norm(x){ - /*<>*/ return /*<>*/ runtime.caml_hypot_float - (x[1], x[2]); - /*<>*/ } + /*<>*/ return runtime.caml_hypot_float(x[1], x[2]) /*<>*/ ; + } function arg(x){ - /*<>*/ return /*<>*/ Math.atan2 - (x[2], x[1]); - /*<>*/ } + /*<>*/ return /*<>*/ Math.atan2 + (x[2], x[1]) /*<>*/ ; + } function polar(n, a){ - /*<>*/ return [254, + /*<>*/ return [254, /*<>*/ Math.cos(a) * n, - /*<>*/ Math.sin(a) * n]; + /*<>*/ Math.sin(a) * n] /*<>*/ ; /*<>*/ } function sqrt(x){ /*<>*/ if(x[1] === 0. && x[2] === 0.) /*<>*/ return _a_; - /*<>*/ var - /*<>*/ r = /*<>*/ Math.abs(x[1]), - /*<>*/ i = /*<>*/ Math.abs(x[2]); - if(i <= r) - /*<>*/ var - /*<>*/ q = i / r, + var + r = /*<>*/ Math.abs(x[1]), + i = /*<>*/ Math.abs(x[2]); + /*<>*/ if(i <= r) + var + q = /*<>*/ i / r, w = - /*<>*/ Math.sqrt(r) + /*<>*/ /*<>*/ Math.sqrt(r) * /*<>*/ Math.sqrt (0.5 * (1. + /*<>*/ Math.sqrt(1. + q * q))); else - /*<>*/ var - /*<>*/ q$0 = r / i, + var + q$0 = /*<>*/ r / i, w = - /*<>*/ Math.sqrt(i) + /*<>*/ /*<>*/ Math.sqrt(i) * /*<>*/ Math.sqrt (0.5 * (q$0 + /*<>*/ Math.sqrt(1. + q$0 * q$0))); - if(0. <= x[1]) /*<>*/ return [254, w, 0.5 * x[2] / w]; - var w$0 = 0. <= x[2] ? w : - w; - /*<>*/ return [254, 0.5 * i / w, w$0]; + /*<>*/ if(0. <= x[1]) + /*<>*/ return [254, w, 0.5 * x[2] / w]; + var w$0 = /*<>*/ 0. <= x[2] ? w : - w; + /*<>*/ return [254, 0.5 * i / w, w$0]; /*<>*/ } function exp(x){ - /*<>*/ /*<>*/ var - e = /*<>*/ Math.exp(x[1]); - /*<>*/ return [254, + var e = /*<>*/ Math.exp(x[1]); + /*<>*/ return [254, e * /*<>*/ Math.cos(x[2]), - e * /*<>*/ Math.sin(x[2])]; + e * /*<>*/ Math.sin(x[2])] /*<>*/ ; /*<>*/ } function log(x){ - /*<>*/ /*<>*/ var - _b_ = /*<>*/ Math.atan2(x[2], x[1]); - /*<>*/ return [254, - /*<>*/ Math.log(norm(x)), - _b_]; + var + _b_ = + /*<>*/ /*<>*/ Math.atan2 + (x[2], x[1]); + /*<>*/ return [254, + /*<>*/ Math.log + ( /*<>*/ norm(x)), + _b_] /*<>*/ ; /*<>*/ } function pow(x, y){ - /*<>*/ return exp(mul(y, log(x))); - /*<>*/ } + /*<>*/ return /*<>*/ exp + ( /*<>*/ mul + (y, /*<>*/ log(x))) /*<>*/ ; + } var Stdlib_Complex = - [0, + /*<>*/ [0, zero, one, i, @@ -35047,7 +35483,7 @@ pow]; runtime.caml_register_global(15, Stdlib_Complex, "Stdlib__Complex"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__ArrayLabels @@ -35147,7 +35583,7 @@ Floatarray]; runtime.caml_register_global(1, Stdlib_ArrayLabels, "Stdlib__ArrayLabels"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__ListLabels @@ -35293,7 +35729,7 @@ of_seq]; runtime.caml_register_global(1, Stdlib_ListLabels, "Stdlib__ListLabels"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__BytesLabels @@ -35483,7 +35919,7 @@ unsafe_escape]; runtime.caml_register_global(1, Stdlib_BytesLabels, "Stdlib__BytesLabels"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__StringLabels @@ -35628,7 +36064,7 @@ runtime.caml_register_global (1, Stdlib_StringLabels, "Stdlib__StringLabels"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__MoreLabels @@ -35645,7 +36081,7 @@ Stdlib_MoreLabels = [0, Stdlib_Hashtbl, Stdlib_Map, Stdlib_Set]; runtime.caml_register_global(3, Stdlib_MoreLabels, "Stdlib__MoreLabels"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__StdLabels @@ -35654,7 +36090,7 @@ var runtime = globalThis.jsoo_runtime, Stdlib_StdLabels = [0]; runtime.caml_register_global(0, Stdlib_StdLabels, "Stdlib__StdLabels"); return; - /*<>*/ } + } (globalThis)); //# unitInfo: Provides: Stdlib__Effect @@ -35672,25 +36108,24 @@ caml_restore_raw_backtrace = runtime.caml_restore_raw_backtrace, caml_wrap_exception = runtime.caml_wrap_exception, jsoo_effect_not_supported = runtime.jsoo_effect_not_supported; - /*<>*/ function caml_call1(f, a0){ + function caml_call1(f, a0){ return (f.l >= 0 ? f.l : f.l = f.length) === 1 ? f(a0) : runtime.caml_call_gen(f, [a0]); } - /*<>*/ function caml_call2(f, a0, a1){ + function caml_call2(f, a0, a1){ return (f.l >= 0 ? f.l : f.l = f.length) === 2 ? f(a0, a1) : runtime.caml_call_gen(f, [a0, a1]); } - /*<>*/ var + var global_data = runtime.caml_get_global_data(), Stdlib = global_data.Stdlib, Stdlib_Printexc = global_data.Stdlib__Printexc, Stdlib_Printf = global_data.Stdlib__Printf, Stdlib_Callback = global_data.Stdlib__Callback, - /*<>*/ Unhandled = - [248, "Stdlib.Effect.Unhandled", caml_fresh_oo_id(0)], - /*<>*/ Continuation_already_resumed = + Unhandled = [248, "Stdlib.Effect.Unhandled", caml_fresh_oo_id(0)], + Continuation_already_resumed = [248, "Stdlib.Effect.Continuation_already_resumed", caml_fresh_oo_id(0)], _a_ = [0, @@ -35699,102 +36134,86 @@ function printer(param){ /*<>*/ if(param[1] !== Unhandled) /*<>*/ return 0; - /*<>*/ var - x = param[2], - /*<>*/ _i_ = - /*<>*/ caml_call1(Stdlib_Printexc[26], x), - /*<>*/ msg = - /*<>*/ caml_call2(Stdlib_Printf[4], _a_, _i_); + var + x = /*<>*/ param[2], + _i_ = /*<>*/ caml_call1(Stdlib_Printexc[26], x), + msg = /*<>*/ caml_call2(Stdlib_Printf[4], _a_, _i_); /*<>*/ return [0, msg]; /*<>*/ } - /*<>*/ /*<>*/ caml_call1 - (Stdlib_Printexc[9], printer); - /*<>*/ /*<>*/ var + /*<>*/ caml_call1(Stdlib_Printexc[9], printer); + var Should_not_see_this = - [248, "Stdlib.Effect.Should_not_see_this__", caml_fresh_oo_id(0)]; - /*<>*/ /*<>*/ caml_call2 + /*<>*/ [248, + "Stdlib.Effect.Should_not_see_this__", + caml_fresh_oo_id(0)]; + /*<>*/ caml_call2 (Stdlib_Callback[2], "Effect.Unhandled", [0, Unhandled, Should_not_see_this]); - /*<>*/ /*<>*/ caml_call2 + /*<>*/ caml_call2 (Stdlib_Callback[2], "Effect.Continuation_already_resumed", Continuation_already_resumed); - /*<>*/ function continue$0(k, v){ - /*<>*/ /*<>*/ var - _h_ = /*<>*/ caml_continuation_use_noexc(k); + function continue$0(k, v){ + var _h_ = /*<>*/ caml_continuation_use_noexc(k); function _g_(x){ /*<>*/ return x; /*<>*/ } - /*<>*/ return /*<>*/ jsoo_effect_not_supported - (); - /*<>*/ } + /*<>*/ return jsoo_effect_not_supported() /*<>*/ ; + } function discontinue(k, e){ - /*<>*/ /*<>*/ var - _f_ = /*<>*/ caml_continuation_use_noexc(k); + var _f_ = /*<>*/ caml_continuation_use_noexc(k); function _e_(e){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (e, 1); + /*<>*/ throw caml_maybe_attach_backtrace(e, 1); /*<>*/ } - /*<>*/ return /*<>*/ jsoo_effect_not_supported - (); - /*<>*/ } + /*<>*/ return jsoo_effect_not_supported() /*<>*/ ; + } function discontinue_with_backtrace(k, e, bt){ - /*<>*/ /*<>*/ var - _d_ = /*<>*/ caml_continuation_use_noexc(k); + var _d_ = /*<>*/ caml_continuation_use_noexc(k); function _c_(e){ /*<>*/ caml_restore_raw_backtrace(e, bt); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (e, 0); + throw caml_maybe_attach_backtrace(e, 0); /*<>*/ } - /*<>*/ return /*<>*/ jsoo_effect_not_supported - (); - /*<>*/ } + /*<>*/ return jsoo_effect_not_supported() /*<>*/ ; + } function match_with(comp, arg, handler){ function effc(eff, k, last_fiber){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(handler[3], eff); - if(! match) - /*<>*/ return /*<>*/ jsoo_effect_not_supported - (); - var f = match[1]; - k[2] = last_fiber; - /*<>*/ return /*<>*/ caml_call1(f, k); - /*<>*/ } - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call1(handler[3], eff); + /*<>*/ if(! match) + /*<>*/ return jsoo_effect_not_supported() /*<>*/ ; + var f = /*<>*/ match[1]; + /*<>*/ k[2] = last_fiber; + /*<>*/ return caml_call1(f, k) /*<>*/ ; + } + var s = /*<>*/ caml_alloc_stack(handler[1], handler[2], effc); - /*<>*/ return /*<>*/ jsoo_effect_not_supported - (); - /*<>*/ } + /*<>*/ return jsoo_effect_not_supported() /*<>*/ ; + } function try_with(comp, arg, handler){ function effc(eff, k, last_fiber){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(handler[1], eff); - if(! match) - /*<>*/ return /*<>*/ jsoo_effect_not_supported - (); - var f = match[1]; - k[2] = last_fiber; - /*<>*/ return /*<>*/ caml_call1(f, k); - /*<>*/ } - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call1(handler[1], eff); + /*<>*/ if(! match) + /*<>*/ return jsoo_effect_not_supported() /*<>*/ ; + var f = /*<>*/ match[1]; + /*<>*/ k[2] = last_fiber; + /*<>*/ return caml_call1(f, k) /*<>*/ ; + } + var s = /*<>*/ caml_alloc_stack (function(x){ /*<>*/ return x; /*<>*/ }, function(e){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (e, 1); + /*<>*/ throw caml_maybe_attach_backtrace(e, 1); /*<>*/ }, effc); - /*<>*/ return /*<>*/ jsoo_effect_not_supported - (); - /*<>*/ } - /*<>*/ var - /*<>*/ Deep = - [0, + /*<>*/ return jsoo_effect_not_supported() /*<>*/ ; + } + var + Deep = + /*<>*/ [0, continue$0, discontinue, discontinue_with_backtrace, @@ -35804,58 +36223,51 @@ cst_E = "E", cst_impossible = "impossible"; function fiber(f){ - /*<>*/ var - /*<>*/ Initial_setup = - [248, cst_Initial_setup, caml_fresh_oo_id(0)], - /*<>*/ E = [248, cst_E, caml_fresh_oo_id(0)]; + var + Initial_setup = + /*<>*/ [248, cst_Initial_setup, caml_fresh_oo_id(0)], + E = [248, cst_E, caml_fresh_oo_id(0)]; function f$0(param){ - /*<>*/ return /*<>*/ caml_call1 - (f, /*<>*/ jsoo_effect_not_supported()); - /*<>*/ } - /*<>*/ function error(param){ - /*<>*/ return /*<>*/ caml_call1 - (Stdlib[2], cst_impossible); - /*<>*/ } + /*<>*/ return /*<>*/ caml_call1 + (f, /*<>*/ jsoo_effect_not_supported()) /*<>*/ ; + } + function error(param){ + /*<>*/ return caml_call1(Stdlib[2], cst_impossible) /*<>*/ ; + } function effc(eff, k, last_fiber){ /*<>*/ if(eff !== Initial_setup) - /*<>*/ return error(0); - k[2] = last_fiber; + /*<>*/ return error(0) /*<>*/ ; + /*<>*/ k[2] = last_fiber; /*<>*/ throw [0, E, k]; /*<>*/ } - /*<>*/ /*<>*/ var - s = /*<>*/ caml_alloc_stack(error, error, effc); + var s = /*<>*/ caml_alloc_stack(error, error, effc); /*<>*/ try{ - /*<>*/ /*<>*/ jsoo_effect_not_supported - (); - var _b_ = 0; + /*<>*/ jsoo_effect_not_supported(); + var _b_ = /*<>*/ 0; } catch(exn$0){ - var exn = caml_wrap_exception(exn$0); + var exn = /*<>*/ caml_wrap_exception(exn$0); if(exn[1] !== E) throw caml_maybe_attach_backtrace(exn, 0); var k = exn[2]; /*<>*/ return k; } - /*<>*/ return error(0); - /*<>*/ } + /*<>*/ return error(0) /*<>*/ ; + } function continue_gen(k, resume_fun, v, handler){ function effc(eff, k, last_fiber){ - /*<>*/ /*<>*/ var - match = /*<>*/ caml_call1(handler[3], eff); - if(! match) - /*<>*/ return /*<>*/ jsoo_effect_not_supported - (); - var f = match[1]; - k[2] = last_fiber; - /*<>*/ return /*<>*/ caml_call1 - (f, k); - /*<>*/ } - /*<>*/ /*<>*/ var + var match = /*<>*/ caml_call1(handler[3], eff); + /*<>*/ if(! match) + /*<>*/ return jsoo_effect_not_supported() /*<>*/ ; + var f = /*<>*/ match[1]; + /*<>*/ k[2] = last_fiber; + /*<>*/ return caml_call1(f, k) /*<>*/ ; + } + var stack = /*<>*/ runtime.caml_continuation_use_and_update_handler_noexc (k, handler[1], handler[2], effc); - /*<>*/ return /*<>*/ jsoo_effect_not_supported - (); - /*<>*/ } + /*<>*/ return jsoo_effect_not_supported() /*<>*/ ; + } function continue_with(k, v, handler){ /*<>*/ return continue_gen (k, @@ -35863,32 +36275,31 @@ /*<>*/ return x; /*<>*/ }, v, - handler); - /*<>*/ } + handler) /*<>*/ ; + } function discontinue_with(k, v, handler){ /*<>*/ return continue_gen (k, function(e){ - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace + /*<>*/ throw caml_maybe_attach_backtrace (e, 1); /*<>*/ }, v, - handler); - /*<>*/ } + handler) /*<>*/ ; + } function discontinue_with_backtrace$0(k, v, bt, handler){ /*<>*/ return continue_gen (k, function(e){ /*<>*/ caml_restore_raw_backtrace(e, bt); - /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace - (e, 0); + throw caml_maybe_attach_backtrace(e, 0); /*<>*/ }, v, - handler); - /*<>*/ } + handler) /*<>*/ ; + } var Stdlib_Effect = - [0, + /*<>*/ [0, Unhandled, Continuation_already_resumed, Deep, diff --git a/compiler/tests-sourcemap/dump.reference b/compiler/tests-sourcemap/dump.reference index be88f6df65..87c6c2f130 100644 --- a/compiler/tests-sourcemap/dump.reference +++ b/compiler/tests-sourcemap/dump.reference @@ -1,7 +1,5 @@ sourcemap for test.bc.js -/my/sourceRoot#b.ml:1:4 -> 12: function <>f(x){return x - 1 | 0;} -/my/sourceRoot#b.ml:1:6 -> 14: function f(<>x){return x - 1 | 0;} /my/sourceRoot#b.ml:1:10 -> 17: function f(x){<>return x - 1 | 0;} -/my/sourceRoot#b.ml:1:6 -> 24: function f(x){return <>x - 1 | 0;} /my/sourceRoot#b.ml:1:15 -> 34: function f(x){return x - 1 | 0;<>} -/my/sourceRoot#b.ml:1:4 -> 23: var Testlib_B = [0, <>f]; +/my/sourceRoot#b.ml:1:15 -> 0:<> var Testlib_B = [0, f]; +/my/sourceRoot#b.ml:1:15 -> 7: var <>Testlib_B = [0, f]; diff --git a/toplevel/examples/lwt_toplevel/dune b/toplevel/examples/lwt_toplevel/dune index 70092d5447..ca635edf0b 100644 --- a/toplevel/examples/lwt_toplevel/dune +++ b/toplevel/examples/lwt_toplevel/dune @@ -39,7 +39,11 @@ (:standard -linkall)) (modes byte js) (js_of_ocaml - (link_flags (:standard)) + (link_flags + :standard + ; We use the generated file in the doc. Let's not bloat it with sourcemap. + ; Plus, the source map would be too large on 32-bit architectures + --no-source-map) (build_runtime_flags (:standard --file