Factor out param_decl and improvements to AST printing.
[goals.git] / src / main.ml
index c19f1ac..33d91b6 100644 (file)
@@ -77,7 +77,7 @@ let main () =
         (* assignment *)
         let name = Str.matched_group 1 arg in
         let expr = Parse.parse_cli_expr (Str.matched_group 2 arg) in
-        env := Ast.StringMap.add name expr !env
+        env := Ast.Env.add name expr !env
       )
       else (
         (* target *)
@@ -90,11 +90,14 @@ let main () =
   (* If no target was set on the command line, use "all ()". *)
   let targets =
     if targets <> [] then targets
-    else [Ast.ECall ("all", [])] in
+    else [Ast.ECall (Ast.noloc, "all", [])] in
 
-  Ast.print_env stdout env;
+  Ast.print_env stderr env;
 
   (* Evaluate the target expressions in turn. *)
   Eval.evaluate_targets env targets
 
-let () = main ()
+let () =
+  try main ()
+  with
+    Failure msg -> prerr_endline msg; exit 1