]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/pxp/netstring/netstring_str.mli
Initial revision
[helm.git] / helm / DEVEL / pxp / netstring / netstring_str.mli
diff --git a/helm/DEVEL/pxp/netstring/netstring_str.mli b/helm/DEVEL/pxp/netstring/netstring_str.mli
new file mode 100644 (file)
index 0000000..86d6840
--- /dev/null
@@ -0,0 +1,82 @@
+(* $Id$
+ * ----------------------------------------------------------------------
+ *
+ *)
+
+(* This module is a version of Str with a thread-safe interface *)
+
+type regexp = Str.regexp;;
+type split_result = Str.split_result = Text of string | Delim of string;;
+
+type result;;
+  (* The type of matching results *)
+
+val regexp: string -> regexp
+val regexp_case_fold: string -> regexp
+val quote: string -> string
+val regexp_string: string -> regexp
+val regexp_string_case_fold: string -> regexp
+
+val string_match: 
+      ?groups:int -> pat:regexp -> string -> pos:int -> result option
+val search_forward: 
+      ?groups:int -> pat:regexp -> string -> pos:int -> (int * result)
+val search_backward: 
+      ?groups:int -> pat:regexp -> string -> pos:int -> (int * result)
+val string_partial_match: 
+      ?groups:int -> pat:regexp -> string -> pos:int -> result option
+
+(* The ~groups option specifies how many groups will be stored into
+ * 'result'. Default: 9
+ *)
+
+val matched_string : result -> string -> string
+val match_beginning : result -> int
+val match_end : result -> int
+val matched_group : result -> int -> string -> string
+val group_beginning : result -> int -> int
+val group_end : result -> int -> int
+
+val global_replace: pat:regexp -> templ:string -> string -> string
+val replace_first: pat:regexp -> templ:string -> string -> string
+val global_substitute:
+       ?groups:int -> 
+       pat:regexp -> subst:(result -> string -> string) -> string -> string
+val substitute_first:
+       ?groups:int -> 
+       pat:regexp -> subst:(result -> string -> string) -> string -> string
+
+(* replace_matched: not available *)
+
+val split: sep:regexp -> string -> string list
+val bounded_split: sep:regexp -> string -> max:int -> string list
+val split_delim: sep:regexp -> string -> string list
+val bounded_split_delim: sep:regexp -> string -> max:int -> string list
+val full_split: sep:regexp -> string -> split_result list
+val bounded_full_split: sep:regexp -> string -> max:int -> split_result list
+
+val string_before: string -> int -> string
+val string_after: string -> int -> string
+val first_chars: string -> len:int -> string
+val last_chars: string -> len:int -> string
+
+(* Private: *)
+
+val init_mt : (unit -> unit) -> (unit -> unit) -> unit
+
+
+(* ======================================================================
+ * History:
+ * 
+ * $Log$
+ * Revision 1.1  2000/11/17 09:57:28  lpadovan
+ * Initial revision
+ *
+ * Revision 1.2  2000/06/25 21:15:48  gerd
+ *     Checked thread-safety.
+ *
+ * Revision 1.1  2000/06/25 20:48:19  gerd
+ *     Initial revision.
+ *
+ * 
+ *)