My working unpac repository
at opam/upstream/stringext 57 lines 2.3 kB view raw
1(* Exercise each function in Stringext. *) 2 3let go () = 4 Printf.printf "After the space: %S\n" 5 (Stringext.string_after "Mozart" 3); 6 Printf.printf "Like Str.quote (but without Str): %S\n" 7 (Stringext.quote "Some specials *+*+"); 8 Printf.printf "Split makes %i splits\n" 9 (List.length (Stringext.split "Mary had a little lamb" ~on:' ')); 10 Printf.printf "Full split makes %i splits\n" 11 (List.length (Stringext.full_split "Mary had a little lamb" ~on:' ')); 12 Printf.printf "Trimming: %S\n" 13 (Stringext.trim_left " <--- to here"); 14 Printf.printf "split_trim_left: "; 15 let strings = Stringext.split_trim_left "+one +two -three" ~on:" " ~trim:"+-" in 16 List.iter (Printf.printf "%S ") strings; 17 Printf.printf "\n"; 18 Printf.printf "'a' with of_char is: %S\n" 19 (Stringext.of_char 'a'); 20 Printf.printf "of_list makes: %S\n" 21 (Stringext.of_list (Stringext.to_list "chimpanzee")); 22 Printf.printf "of_array and to_array makes: %S\n" 23 (Stringext.of_array (Stringext.to_array "marzipan")); 24 Printf.printf "find_from: %s\n" 25 begin match Stringext.find_from ~start:5 "again and again" ~pattern:"again" with 26 | None -> "" 27 | Some x -> string_of_int x 28 end; 29 Printf.printf "replace_all: %S\n" 30 (Stringext.replace_all "Again. And again. And again." ~pattern:"." ~with_:"!!"); 31 Printf.printf "replace_all_assoc: %S\n" 32 (Stringext.replace_all_assoc 33 "Again. And again. And again" [(".", "!!"); ("And", "Yet")]); 34 begin match Stringext.cut "cut<-->here" ~on:"<-->" with 35 | Some (l, r) -> Printf.printf "cut: %S %S\n" l r 36 | None -> () 37 end; 38 begin match Stringext.rcut "cut<-->here" ~on:"<-->" with 39 | Some (l, r) -> Printf.printf "rcut: %S %S\n" l r 40 | None -> () 41 end; 42 Printf.printf "chop_prefix: %S\n" 43 begin match Stringext.chop_prefix "- list item" ~prefix:"- " with 44 | None -> "" (* returns none if prefix not found *) 45 | Some x -> x 46 end; 47 Printf.printf "drop: %S\n" 48 (Stringext.drop "-------->" 5); 49 Printf.printf "take: %S\n" 50 (Stringext.take "-------->" 5); 51 Printf.printf "trim_left_sub: %S\n" 52 (Stringext.trim_left_sub "-23-56+89+" ~pos:0 ~len:10 ~chars:"+-") 53 54let () = 55 match Sys.argv with 56 | [|_|] -> go () 57 | _ -> Printf.eprintf "stringext example: unknown command line\n"