Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > 298c9549c9bafefa78bb5d61fbfd5386 > files > 68

ocaml-glmlite-devel-0.03.51-17.2.mga6.x86_64.rpm

#load "str.cma" ;;


let input_lines ~filename =
  let rec input_loop ic acc =
    try
      let line = input_line ic in
      match line with
      | "" -> input_loop ic acc
      | _ -> input_loop ic (line::acc)
    with
      End_of_file -> close_in ic; (acc)
  in
  let ic = open_in filename in
  input_loop ic []
;;


let map_input line =
  let str_split = Str.split (Str.regexp "[\t]+") line in
  match str_split with
  | ite::lbl::[] -> (ite, lbl)
  | _ -> failwith line
;;


let rec output_loop rev = function [] -> ()
  | (ite_f, lbl_f) :: tail ->
      let fa, fb = rev lbl_f ite_f in
      Printf.printf "  -e 's|%s|%s|g' \\\n" fa fb;
      output_loop rev tail
;;


let check_arg() =
  if Array.length Sys.argv >= 2 && Sys.argv.(1) = "-rev"
  then (fun a b -> b, a)
  else (fun a b -> a, b)
;;


let () =
  let ln = input_lines "LablGL_to_glMLite.tab" in
  let pl = List.rev_map map_input ln in
  print_endline "sed  \\";
  let may_rev = check_arg() in
  output_loop may_rev pl;
  print_endline "  $1";
  print_endline "#EOF";
;;