Browse Source

made max_steps labelled arg

Ken Cole 9 months ago
parent
commit
0cea598ef0
2 changed files with 6 additions and 6 deletions
  1. 2 2
      lib/angstrom.ml
  2. 4 4
      lib/angstrom.mli

+ 2 - 2
lib/angstrom.ml

@@ -461,7 +461,7 @@ let fix_direct f =
   in
   r
 
-let fix_lazy max_steps f =
+let fix_lazy ~max_steps f =
   let steps = ref max_steps in
   let rec p = lazy (f r)
   and r = { run = fun buf pos more fail succ ->
@@ -479,7 +479,7 @@ let fix_lazy max_steps f =
 let fix = match Sys.backend_type with
   | Native -> fix_direct
   | Bytecode -> fix_direct
-  | Other _ -> fun f -> fix_lazy 20 f
+  | Other _ -> fun f -> fix_lazy ~max_steps:20 f
 
 let option x p =
   p <|> return x

+ 4 - 4
lib/angstrom.mli

@@ -348,15 +348,15 @@ val fix : ('a t -> 'a t) -> 'a t
     let obj = char '{' *> ... json ... <* char '}' in
     choice [str; num; arr json, ...])]} *)
 
-(** [fix_lazy] is like [fix], but after the function reaches the max
-    depth, it wraps up the remaining computation and yields
+(** [fix_lazy] is like [fix], but after the function reaches [max_steps]
+    deep, it wraps up the remaining computation and yields
     back to the root of the parsing loop where it continues from there.
 
     This is an effective way to break up the stack trace into more managable
     chunks, which is important for Js_of_ocaml due to the lack of tailrec
     optimizations for CPS-style tail calls. When compiling for Js_of_ocaml,
-    [fix] itself is defined as [fix_lazy 20]. *)
-val fix_lazy : int -> ('a t -> 'a t) -> 'a t
+    [fix] itself is defined as [fix_lazy ~max_steps:20]. *)
+val fix_lazy : max_steps:int -> ('a t -> 'a t) -> 'a t
 
 (** {2 Alternatives} *)