mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-19 00:56:42 -05:00
Remove cross-module deps
This commit is contained in:
parent
9f54a2fc73
commit
ffba89de53
12 changed files with 39 additions and 22 deletions
18
_oasis
18
_oasis
|
|
@ -42,22 +42,28 @@ Library "containers"
|
||||||
CCFun, CCHash, CCInt, CCBool, CCFloat, CCArray, CCRef, CCSet,
|
CCFun, CCHash, CCInt, CCBool, CCFloat, CCArray, CCRef, CCSet,
|
||||||
CCOrd, CCRandom, CCString, CCHashtbl, CCMap, CCFormat, CCIO,
|
CCOrd, CCRandom, CCString, CCHashtbl, CCMap, CCFormat, CCIO,
|
||||||
CCInt64, CCChar, CCResult, CCParse, CCArray_slice,
|
CCInt64, CCChar, CCResult, CCParse, CCArray_slice,
|
||||||
CCListLabels, CCArrayLabels, CCEqual, CCPervasives,
|
CCListLabels, CCArrayLabels, CCEqual,
|
||||||
Containers
|
Containers
|
||||||
BuildDepends: bytes, result
|
BuildDepends: bytes, result, containers.pervasives
|
||||||
# BuildDepends: bytes, bisect_ppx
|
# BuildDepends: bytes, bisect_ppx
|
||||||
|
|
||||||
|
Library "containers_pervasives"
|
||||||
|
Path: src/pervasives
|
||||||
|
Modules: CCPervasives
|
||||||
|
FindlibParent: containers
|
||||||
|
FindlibName: pervasives
|
||||||
|
|
||||||
Library "containers_unix"
|
Library "containers_unix"
|
||||||
Path: src/unix
|
Path: src/unix
|
||||||
Modules: CCUnix
|
Modules: CCUnix
|
||||||
BuildDepends: containers, unix
|
BuildDepends: bytes, result, unix, containers.pervasives
|
||||||
FindlibParent: containers
|
FindlibParent: containers
|
||||||
FindlibName: unix
|
FindlibName: unix
|
||||||
|
|
||||||
Library "containers_sexp"
|
Library "containers_sexp"
|
||||||
Path: src/sexp
|
Path: src/sexp
|
||||||
Modules: CCSexp, CCSexp_lex
|
Modules: CCSexp, CCSexp_lex
|
||||||
BuildDepends: containers
|
BuildDepends: bytes, result, containers.pervasives
|
||||||
FindlibParent: containers
|
FindlibParent: containers
|
||||||
FindlibName: sexp
|
FindlibName: sexp
|
||||||
|
|
||||||
|
|
@ -71,7 +77,7 @@ Library "containers_data"
|
||||||
CCHashSet, CCBitField,
|
CCHashSet, CCBitField,
|
||||||
CCHashTrie, CCWBTree, CCRAL, CCSimple_queue,
|
CCHashTrie, CCWBTree, CCRAL, CCSimple_queue,
|
||||||
CCImmutArray, CCHet, CCZipper
|
CCImmutArray, CCHet, CCZipper
|
||||||
BuildDepends: containers
|
BuildDepends: bytes, containers.pervasives
|
||||||
# BuildDepends: bytes, bisect_ppx
|
# BuildDepends: bytes, bisect_ppx
|
||||||
FindlibParent: containers
|
FindlibParent: containers
|
||||||
FindlibName: data
|
FindlibName: data
|
||||||
|
|
@ -79,7 +85,7 @@ Library "containers_data"
|
||||||
Library "containers_iter"
|
Library "containers_iter"
|
||||||
Path: src/iter
|
Path: src/iter
|
||||||
Modules: CCKTree, CCKList, CCLazy_list
|
Modules: CCKTree, CCKList, CCLazy_list
|
||||||
BuildDepends: containers
|
BuildDepends: containers.pervasives
|
||||||
FindlibParent: containers
|
FindlibParent: containers
|
||||||
FindlibName: iter
|
FindlibName: iter
|
||||||
|
|
||||||
|
|
|
||||||
2
_tags
2
_tags
|
|
@ -161,4 +161,4 @@ true: annot, bin_annot
|
||||||
<src/**/*.ml> and not <src/misc/*.ml>: warn(+a-4-44-58-60@8)
|
<src/**/*.ml> and not <src/misc/*.ml>: warn(+a-4-44-58-60@8)
|
||||||
true: no_alias_deps, safe_string, short_paths
|
true: no_alias_deps, safe_string, short_paths
|
||||||
<src/**/*Labels.cm*>: nolabels
|
<src/**/*Labels.cm*>: nolabels
|
||||||
not <src/core/CCPervasives.*>: open(CCPervasives)
|
not <src/pervasives/CCPervasives.*>: open(CCPervasives)
|
||||||
|
|
|
||||||
|
|
@ -74,9 +74,11 @@ let is_zero_ n = match n.cell with
|
||||||
| Two _
|
| Two _
|
||||||
| Three _ -> false
|
| Three _ -> false
|
||||||
|
|
||||||
|
let bool_eq (b1 : bool) b2 = Pervasives.(=) b1 b2
|
||||||
|
|
||||||
let is_empty d =
|
let is_empty d =
|
||||||
let res = d.size = 0 in
|
let res = d.size = 0 in
|
||||||
assert (CCBool.equal res (is_zero_ d.cur));
|
assert (bool_eq res (is_zero_ d.cur));
|
||||||
res
|
res
|
||||||
|
|
||||||
let push_front d x =
|
let push_front d x =
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,9 @@ module Make(X : ORD) : S with type key = X.t = struct
|
||||||
|
|
||||||
let mem ~inj x map =
|
let mem ~inj x map =
|
||||||
try
|
try
|
||||||
CCOpt.is_some (inj.get (M.find x map))
|
match inj.get (M.find x map) with
|
||||||
|
| Some _ -> true
|
||||||
|
| None -> false
|
||||||
with Not_found -> false
|
with Not_found -> false
|
||||||
|
|
||||||
let iter_keys ~f map =
|
let iter_keys ~f map =
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,9 @@ let copy tbl = Hashtbl.copy tbl
|
||||||
|
|
||||||
let mem ~inj tbl x =
|
let mem ~inj tbl x =
|
||||||
try
|
try
|
||||||
CCOpt.is_some (inj.get (Hashtbl.find tbl x))
|
match inj.get (Hashtbl.find tbl x) with
|
||||||
|
| Some _ -> true
|
||||||
|
| None -> false
|
||||||
with Not_found -> false
|
with Not_found -> false
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,11 @@ let make_ hd tl = match hd with
|
||||||
| [] -> {hd=List.rev tl; tl=[] }
|
| [] -> {hd=List.rev tl; tl=[] }
|
||||||
| _::_ -> {hd; tl; }
|
| _::_ -> {hd; tl; }
|
||||||
|
|
||||||
let is_empty q = CCList.is_empty q.hd
|
let list_is_empty = function
|
||||||
|
| [] -> true
|
||||||
|
| _::_ -> false
|
||||||
|
|
||||||
|
let is_empty q = list_is_empty q.hd
|
||||||
|
|
||||||
let push x q = make_ q.hd (x :: q.tl)
|
let push x q = make_ q.hd (x :: q.tl)
|
||||||
|
|
||||||
|
|
@ -31,7 +35,7 @@ let snoc q x = push x q
|
||||||
|
|
||||||
let peek_exn q =
|
let peek_exn q =
|
||||||
match q.hd with
|
match q.hd with
|
||||||
| [] -> assert (CCList.is_empty q.tl); invalid_arg "Queue.peek"
|
| [] -> assert (list_is_empty q.tl); invalid_arg "Queue.peek"
|
||||||
| x::_ -> x
|
| x::_ -> x
|
||||||
|
|
||||||
let peek q = match q.hd with
|
let peek q = match q.hd with
|
||||||
|
|
@ -40,7 +44,7 @@ let peek q = match q.hd with
|
||||||
|
|
||||||
let pop_exn q =
|
let pop_exn q =
|
||||||
match q.hd with
|
match q.hd with
|
||||||
| [] -> assert (CCList.is_empty q.tl); invalid_arg "Queue.peek"
|
| [] -> assert (list_is_empty q.tl); invalid_arg "Queue.peek"
|
||||||
| x::hd' ->
|
| x::hd' ->
|
||||||
let q' = make_ hd' q.tl in
|
let q' = make_ hd' q.tl in
|
||||||
x, q'
|
x, q'
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ module type WORD = sig
|
||||||
val compare : char_ -> char_ -> int
|
val compare : char_ -> char_ -> int
|
||||||
val to_seq : t -> char_ sequence
|
val to_seq : t -> char_ sequence
|
||||||
val of_list : char_ list -> t
|
val of_list : char_ list -> t
|
||||||
val equal : t -> t -> bool
|
|
||||||
end
|
end
|
||||||
|
|
||||||
module type S = sig
|
module type S = sig
|
||||||
|
|
@ -528,7 +527,7 @@ module Make(W : WORD)
|
||||||
| Empty -> 0
|
| Empty -> 0
|
||||||
| Cons (_, t') -> size t'
|
| Cons (_, t') -> size t'
|
||||||
| Node (v, map) ->
|
| Node (v, map) ->
|
||||||
let s = if CCOpt.is_none v then 0 else 1 in
|
let s = match v with None -> 0 | Some _ -> 1 in
|
||||||
M.fold
|
M.fold
|
||||||
(fun _ t' acc -> size t' + acc)
|
(fun _ t' acc -> size t' + acc)
|
||||||
map s
|
map s
|
||||||
|
|
@ -746,7 +745,6 @@ module MakeArray(X : ORDERED) = Make(struct
|
||||||
let compare = X.compare
|
let compare = X.compare
|
||||||
let to_seq a k = Array.iter k a
|
let to_seq a k = Array.iter k a
|
||||||
let of_list = Array.of_list
|
let of_list = Array.of_list
|
||||||
let equal = CCArray.equal (fun x y -> X.compare x y = 0)
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
module MakeList(X : ORDERED) = Make(struct
|
module MakeList(X : ORDERED) = Make(struct
|
||||||
|
|
@ -755,7 +753,6 @@ module MakeList(X : ORDERED) = Make(struct
|
||||||
let compare = X.compare
|
let compare = X.compare
|
||||||
let to_seq a k = List.iter k a
|
let to_seq a k = List.iter k a
|
||||||
let of_list l = l
|
let of_list l = l
|
||||||
let equal = CCList.equal (fun x y -> X.compare x y = 0)
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
module String = Make(struct
|
module String = Make(struct
|
||||||
|
|
@ -767,5 +764,4 @@ module String = Make(struct
|
||||||
let buf = Buffer.create (List.length l) in
|
let buf = Buffer.create (List.length l) in
|
||||||
List.iter (fun c -> Buffer.add_char buf c) l;
|
List.iter (fun c -> Buffer.add_char buf c) l;
|
||||||
Buffer.contents buf
|
Buffer.contents buf
|
||||||
let equal = CCString.equal
|
|
||||||
end)
|
end)
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ module type WORD = sig
|
||||||
val compare : char_ -> char_ -> int
|
val compare : char_ -> char_ -> int
|
||||||
val to_seq : t -> char_ sequence
|
val to_seq : t -> char_ sequence
|
||||||
val of_list : char_ list -> t
|
val of_list : char_ list -> t
|
||||||
val equal : t -> t -> bool
|
|
||||||
end
|
end
|
||||||
|
|
||||||
module type S = sig
|
module type S = sig
|
||||||
|
|
|
||||||
|
|
@ -141,13 +141,17 @@ module FQ = struct
|
||||||
|
|
||||||
let empty = _make [] []
|
let empty = _make [] []
|
||||||
|
|
||||||
let is_empty q = CCList.is_empty q.hd
|
let list_is_empty = function
|
||||||
|
| [] -> true
|
||||||
|
| _::_ -> false
|
||||||
|
|
||||||
|
let is_empty q = list_is_empty q.hd
|
||||||
|
|
||||||
let push q x = _make q.hd (x::q.tl)
|
let push q x = _make q.hd (x::q.tl)
|
||||||
|
|
||||||
let pop_exn q =
|
let pop_exn q =
|
||||||
match q.hd with
|
match q.hd with
|
||||||
| [] -> assert (CCList.is_empty q.tl); raise Empty
|
| [] -> assert (list_is_empty q.tl); raise Empty
|
||||||
| x::hd' ->
|
| x::hd' ->
|
||||||
let q' = _make hd' q.tl in
|
let q' = _make hd' q.tl in
|
||||||
x, q'
|
x, q'
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,11 @@
|
||||||
| Escaped_int_1 of int
|
| Escaped_int_1 of int
|
||||||
| Escaped_int_2 of int
|
| Escaped_int_2 of int
|
||||||
|
|
||||||
|
let char_eq (c1 : char) c2 = Pervasives.(=) c1 c2
|
||||||
|
|
||||||
(* remove quotes + unescape *)
|
(* remove quotes + unescape *)
|
||||||
let remove_quotes lexbuf s =
|
let remove_quotes lexbuf s =
|
||||||
assert (CCChar.equal s.[0] '"' && CCChar.equal s.[String.length s - 1] '"');
|
assert (char_eq s.[0] '"' && char_eq s.[String.length s - 1] '"');
|
||||||
let buf = Buffer.create (String.length s) in
|
let buf = Buffer.create (String.length s) in
|
||||||
let st = ref Not_escaped in
|
let st = ref Not_escaped in
|
||||||
for i = 1 to String.length s-2 do
|
for i = 1 to String.length s-2 do
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue