summaryrefslogtreecommitdiff
path: root/camlp4/ocaml_src/lib/fstream.ml
diff options
context:
space:
mode:
Diffstat (limited to 'camlp4/ocaml_src/lib/fstream.ml')
-rw-r--r--camlp4/ocaml_src/lib/fstream.ml84
1 files changed, 0 insertions, 84 deletions
diff --git a/camlp4/ocaml_src/lib/fstream.ml b/camlp4/ocaml_src/lib/fstream.ml
deleted file mode 100644
index 9ffdb71041..0000000000
--- a/camlp4/ocaml_src/lib/fstream.ml
+++ /dev/null
@@ -1,84 +0,0 @@
-(* camlp4r *)
-(* This file has been generated by program: do not edit! *)
-(* Copyright 2001 INRIA *)
-
-type 'a t = { count : int; data : 'a data Lazy.t }
-and 'a data =
- Nil
- | Cons of 'a * 'a t
- | App of 'a t * 'a t
-;;
-
-let from f =
- let rec loop i =
- {count = 0;
- data =
- lazy
- (match f i with
- Some x -> Cons (x, loop (i + 1))
- | None -> Nil)}
- in
- loop 0
-;;
-
-let rec next s =
- let count = s.count + 1 in
- match Lazy.force s.data with
- Nil -> None
- | Cons (a, s) -> Some (a, {count = count; data = s.data})
- | App (s1, s2) ->
- match next s1 with
- Some (a, s1) -> Some (a, {count = count; data = lazy (App (s1, s2))})
- | None ->
- match next s2 with
- Some (a, s2) -> Some (a, {count = count; data = s2.data})
- | None -> None
-;;
-
-let empty s =
- match next s with
- Some _ -> None
- | None -> Some ((), s)
-;;
-
-let nil = {count = 0; data = lazy Nil};;
-let cons a s = Cons (a, s);;
-let app s1 s2 = App (s1, s2);;
-let flazy f = {count = 0; data = Lazy.lazy_from_fun f};;
-
-let of_list l =
- List.fold_right (fun x s -> flazy (fun () -> cons x s)) l nil
-;;
-
-let of_string s =
- from (fun c -> if c < String.length s then Some s.[c] else None)
-;;
-
-let of_channel ic =
- from
- (fun _ ->
- try Some (input_char ic) with
- End_of_file -> None)
-;;
-
-let iter f =
- let rec do_rec strm =
- match next strm with
- Some (a, strm) -> let _ = f a in do_rec strm
- | None -> ()
- in
- do_rec
-;;
-
-let count s = s.count;;
-
-let count_unfrozen s =
- let rec loop cnt s =
- if Lazy.lazy_is_val s.data then
- match Lazy.force s.data with
- Cons (_, s) -> loop (cnt + 1) s
- | _ -> cnt
- else cnt
- in
- loop 0 s
-;;