| 12345678910111213141516171819202122232425262728293031323334353637 |
- open Types
- open Stringify
- open Parse
- let main () =
- let usage status =
- prerr_endline ("usage: " ^ Sys.argv.(0) ^ " command [args]");
- prerr_endline "command:";
- prerr_endline " help show this help page";
- prerr_endline " echo PROGRAM pretty-print a program";
- prerr_endline "input program syntax:";
- prerr_endline " - omit omega sign after closing parenthesis";
- prerr_endline " - write dollar sign ($) instead of pound sign";
- exit status
- in
- let argc = Array.length Sys.argv in
- if argc = 1 then usage 1;
- begin
- try
- match Sys.argv.(1) with
- | "help" ->
- usage 0
- | "echo" when argc > 2 ->
- print_endline (string_of_program (parse_string Sys.argv.(2)))
- | _ ->
- usage 1
- with
- | ParseError msg ->
- prerr_endline ("parsing error: " ^ msg);
- exit 1
- end;
- exit 0
- let () = main ()
|