pga.ml 780 B

1234567891011121314151617181920212223242526272829303132
  1. open Types
  2. open Stringify
  3. open Parse
  4. let main () =
  5. let usage status =
  6. prerr_endline ("usage: " ^ Sys.argv.(0) ^ " command [args]");
  7. prerr_endline "command:";
  8. prerr_endline " help show this help page";
  9. prerr_endline " echo PROGRAM pretty-print a program";
  10. prerr_endline "input program syntax:";
  11. prerr_endline " - omit omega sign after closing parenthesis";
  12. prerr_endline " - write dollar sign ($) instead of pound sign";
  13. exit status
  14. in
  15. let argc = Array.length Sys.argv in
  16. if argc = 1 then usage 1;
  17. begin
  18. match Sys.argv.(1) with
  19. | "help" ->
  20. usage 0
  21. | "echo" when argc > 2 ->
  22. print_endline (string_of_program (parse_string Sys.argv.(2)))
  23. | _ ->
  24. usage 1
  25. end;
  26. exit 0
  27. let () = main ()