]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/pxp/netstring/netstring_str.mli
Initial revision
[helm.git] / helm / DEVEL / pxp / netstring / netstring_str.mli
1 (* $Id$
2  * ----------------------------------------------------------------------
3  *
4  *)
5
6 (* This module is a version of Str with a thread-safe interface *)
7
8 type regexp = Str.regexp;;
9 type split_result = Str.split_result = Text of string | Delim of string;;
10
11 type result;;
12   (* The type of matching results *)
13
14 val regexp: string -> regexp
15 val regexp_case_fold: string -> regexp
16 val quote: string -> string
17 val regexp_string: string -> regexp
18 val regexp_string_case_fold: string -> regexp
19
20 val string_match: 
21       ?groups:int -> pat:regexp -> string -> pos:int -> result option
22 val search_forward: 
23       ?groups:int -> pat:regexp -> string -> pos:int -> (int * result)
24 val search_backward: 
25       ?groups:int -> pat:regexp -> string -> pos:int -> (int * result)
26 val string_partial_match: 
27       ?groups:int -> pat:regexp -> string -> pos:int -> result option
28
29 (* The ~groups option specifies how many groups will be stored into
30  * 'result'. Default: 9
31  *)
32
33 val matched_string : result -> string -> string
34 val match_beginning : result -> int
35 val match_end : result -> int
36 val matched_group : result -> int -> string -> string
37 val group_beginning : result -> int -> int
38 val group_end : result -> int -> int
39
40 val global_replace: pat:regexp -> templ:string -> string -> string
41 val replace_first: pat:regexp -> templ:string -> string -> string
42 val global_substitute:
43        ?groups:int -> 
44        pat:regexp -> subst:(result -> string -> string) -> string -> string
45 val substitute_first:
46        ?groups:int -> 
47        pat:regexp -> subst:(result -> string -> string) -> string -> string
48
49 (* replace_matched: not available *)
50
51 val split: sep:regexp -> string -> string list
52 val bounded_split: sep:regexp -> string -> max:int -> string list
53 val split_delim: sep:regexp -> string -> string list
54 val bounded_split_delim: sep:regexp -> string -> max:int -> string list
55 val full_split: sep:regexp -> string -> split_result list
56 val bounded_full_split: sep:regexp -> string -> max:int -> split_result list
57
58 val string_before: string -> int -> string
59 val string_after: string -> int -> string
60 val first_chars: string -> len:int -> string
61 val last_chars: string -> len:int -> string
62
63 (* Private: *)
64
65 val init_mt : (unit -> unit) -> (unit -> unit) -> unit
66
67
68 (* ======================================================================
69  * History:
70  * 
71  * $Log$
72  * Revision 1.1  2000/11/17 09:57:28  lpadovan
73  * Initial revision
74  *
75  * Revision 1.2  2000/06/25 21:15:48  gerd
76  *      Checked thread-safety.
77  *
78  * Revision 1.1  2000/06/25 20:48:19  gerd
79  *      Initial revision.
80  *
81  * 
82  *)