My working unpac repository

Adds example

+81
+17
examples/README.md
··· 1 + # stringext 2 + 3 + This example is for the stringext library 4 + 5 + https://opam.ocaml.org/packages/stringext 6 + 7 + # Source file 8 + 9 + `bin/main.ml` 10 + 11 + # Building and running 12 + 13 + `dune exec bin/main.exe` 14 + 15 + # Cleaning up 16 + 17 + `dune clean`
+3
examples/bin/dune
··· 1 + (executable 2 + (name main) 3 + (libraries stringext))
+57
examples/bin/main.ml
··· 1 + (* Exercise each function in Stringext. *) 2 + 3 + let 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 + 54 + let () = 55 + match Sys.argv with 56 + | [|_|] -> go () 57 + | _ -> Printf.eprintf "stringext example: unknown command line\n"
+2
examples/dune-project
··· 1 + (lang dune 3.14) 2 + (name stringext_example)
+2
examples/dune-workspace
··· 1 + (lang dune 3.14) 2 + (env (dev (flags :standard -warn-error -A)))