summaryrefslogtreecommitdiff
path: root/debugger/primitives.ml
diff options
context:
space:
mode:
Diffstat (limited to 'debugger/primitives.ml')
-rw-r--r--debugger/primitives.ml194
1 files changed, 0 insertions, 194 deletions
diff --git a/debugger/primitives.ml b/debugger/primitives.ml
deleted file mode 100644
index 1ad27e8a68..0000000000
--- a/debugger/primitives.ml
+++ /dev/null
@@ -1,194 +0,0 @@
-(***********************************************************************)
-(* *)
-(* Objective Caml *)
-(* *)
-(* Jerome Vouillon, projet Cristal, INRIA Rocquencourt *)
-(* Objective Caml port by John Malecki and Xavier Leroy *)
-(* *)
-(* Copyright 1996 Institut National de Recherche en Informatique et *)
-(* en Automatique. All rights reserved. This file is distributed *)
-(* under the terms of the Q Public License version 1.0. *)
-(* *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(*********************** Basic functions and types *********************)
-
-(*** Miscellaneous ***)
-exception Out_of_range
-
-let nothing _ = ()
-
-(*** Operations on lists. ***)
-
-(* Remove an element from a list *)
-let except e l =
- let rec except_e = function
- [] -> []
- | elem::l -> if e = elem then l else elem::except_e l
- in except_e l
-
-(* Position of an element in a list. Head of list has position 0. *)
-let index a l =
- let rec index_rec i = function
- [] -> raise Not_found
- | b::l -> if a = b then i else index_rec (i + 1) l
- in index_rec 0 l
-
-(* Remove an element from an association list *)
-let assoc_remove lst elem =
- let rec remove =
- function
- [] -> []
- | ((a, _) as c::t) ->
- if a = elem then t
- else c::(remove t)
- in remove lst
-
-(* Nth element of a list. *)
-let rec list_nth p0 p1 =
- match (p0,p1) with
- ([], _) ->
- invalid_arg "list_nth"
- | ((a::_), 0) ->
- a
- | ((_::l), n) ->
- list_nth l (n - 1)
-
-(* Return the `n' first elements of `l' *)
-(* ### n l -> l' *)
-let rec list_truncate =
- fun
- p0 p1 -> match (p0,p1) with (0, _) -> []
- | (_, []) -> []
- | (n, (a::l)) -> a::(list_truncate (n - 1) l)
-
-(* Separe the `n' first elements of `l' and the others *)
-(* ### n list -> (first, last) *)
-let rec list_truncate2 =
- fun
- p0 p1 -> match (p0,p1) with (0, l) ->
- ([], l)
- | (_, []) ->
- ([], [])
- | (n, (a::l)) ->
- let (first, last) = (list_truncate2 (n - 1) l) in
- (a::first, last)
-
-(* Replace x by y in list l *)
-(* ### x y l -> l' *)
-let list_replace x y =
- let rec repl =
- function
- [] -> []
- | a::l ->
- if a == x then y::l
- else a::(repl l)
- in repl
-
-(* Filter `list' according to `predicate'. *)
-(* ### predicate list -> list' *)
-let filter p =
- let rec filter2 =
- function
- [] ->
- []
- | a::l ->
- if p a then
- a::(filter2 l)
- else
- filter2 l
- in filter2
-
-(* Find the first element `element' of `list' *)
-(* so that `predicate element' holds. *)
-(* ### predicate list -> element *)
-let find p =
- let rec find2 =
- function
- [] ->
- raise Not_found
- | a::l ->
- if p a then a
- else find2 l
- in find2
-
-(*** Operations on strings. ***)
-
-(* Return the position of the first occurence of char `c' in string `s' *)
-(* Raise `Not_found' if `s' does not contain `c'. *)
-(* ### c s -> pos *)
-let string_pos s c =
- let i = ref 0 and l = String.length s in
- while !i < l && String.get s !i != c do i := !i + 1 done;
- if !i = l then raise Not_found;
- !i
-
-(* Remove blanks (spaces and tabs) at beginning and end of a string. *)
-let is_space = function
- | ' ' | '\t' -> true | _ -> false
-
-let string_trim s =
- let l = String.length s and i = ref 0 in
- while
- !i < l && is_space (String.get s !i)
- do
- incr i
- done;
- let j = ref (l - 1) in
- while
- !j >= !i && is_space (String.get s !j)
- do
- decr j
- done;
- String.sub s !i (!j - !i + 1)
-
-(* isprefix s1 s2 returns true if s1 is a prefix of s2. *)
-
-let isprefix s1 s2 =
- let l1 = String.length s1 and l2 = String.length s2 in
- (l1 = l2 && s1 = s2) || (l1 < l2 && s1 = String.sub s2 0 l1)
-
-(* Split a string at the given delimiter char *)
-
-let split_string sep str =
- let rec split i j =
- if j >= String.length str then
- if i >= j then [] else [String.sub str i (j-i)]
- else if str.[j] = sep then
- if i >= j
- then skip_sep (j+1)
- else String.sub str i (j-i) :: skip_sep (j+1)
- else
- split i (j+1)
- and skip_sep j =
- if j < String.length str && str.[j] = sep
- then skip_sep (j+1)
- else split j j
- in split 0 0
-
-(*** I/O channels ***)
-
-type io_channel = {
- io_in : in_channel;
- io_out : out_channel;
- io_fd : Unix.file_descr
- }
-
-let io_channel_of_descr fd = {
- io_in = Unix.in_channel_of_descr fd;
- io_out = Unix.out_channel_of_descr fd;
- io_fd = fd
- }
-
-let close_io io_channel =
- close_out_noerr io_channel.io_out;
- close_in_noerr io_channel.io_in;
-;;
-
-let std_io = {
- io_in = stdin;
- io_out = stdout;
- io_fd = Unix.stdin
- }