fork download
  1. let defaultArgs = [
  2. ("-inputXMLPath", "localization_client.txt");
  3. ("-outputXMLPath", "locale");
  4. ("-outputXMLName", "localization");
  5. ("-packagePath", "")
  6. ];;
  7.  
  8. let rec tryReplace key aval args = match args
  9. with [] -> None
  10. | ((k, v)::rest) when k == key -> Some ((key, aval)::rest)
  11. | ((k, v)::rest) -> match tryReplace key aval rest
  12. with Some xs -> Some ((k, v)::xs)
  13. | None -> None ;;
  14.  
  15. let parseArgs defaults raw_args =
  16. let rec parse args raw_args errs = match raw_args
  17. with [] -> (args, errs)
  18. | (x::[]) -> (args, ("Error: alone argument option " ^ x)::errs)
  19. | (k::v::tl) -> match tryReplace k v args
  20. with Some args -> parse args tl errs
  21. | None -> parse args tl (("Error: unknown option " ^ k)::errs) in
  22. parse defaults raw_args [] ;;
  23.  
  24. let main () =
  25. let args = List.tl (Array.to_list Sys.argv) in
  26. let (params, errs) = parseArgs defaultArgs args in
  27. List.iter print_string (List.rev errs) ;
  28. print_string "Parameters:\n" ;
  29. List.iter (fun (key, v) -> print_string (key ^ " = " ^ v ^ "\n")) params ;
  30. exit 0 ;;
Success #stdin #stdout 0.01s 2736KB
stdin
Standard input is empty
stdout
Standard output is empty