|
|
@@ -1,27 +1,32 @@
|
|
|
-open Printf
|
|
|
open Types
|
|
|
open Stringify
|
|
|
open Parse
|
|
|
|
|
|
let main () =
|
|
|
- let argc = Array.length Sys.argv in
|
|
|
let usage status =
|
|
|
- printf "usage: %s command [args]\n" Sys.argv.(0);
|
|
|
- printf "command:\n";
|
|
|
- printf " help\n";
|
|
|
- printf " echo PROGRAM\n";
|
|
|
- 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
|
|
|
- if argc = 1 then begin
|
|
|
- usage 1
|
|
|
- end else
|
|
|
+
|
|
|
+ let argc = Array.length Sys.argv in
|
|
|
+ if argc = 1 then usage 1;
|
|
|
+
|
|
|
+ begin
|
|
|
match Sys.argv.(1) with
|
|
|
| "help" ->
|
|
|
usage 0
|
|
|
| "echo" when argc > 2 ->
|
|
|
- printf "%s\n" (string_of_program (parse_string Sys.argv.(2)));
|
|
|
- 0
|
|
|
+ print_endline (string_of_program (parse_string Sys.argv.(2)))
|
|
|
| _ ->
|
|
|
usage 1
|
|
|
+ end;
|
|
|
+
|
|
|
+ exit 0
|
|
|
|
|
|
-let () = exit (main ())
|
|
|
+let () = main ()
|