- (* If no target was set on the command line, find
- * the first goal in the file.
- *)
- if !targets = [] then (
- try
- let first_goal =
- List.find (function Ast.Goal _ -> true | _ -> false) file in
- match first_goal with
- | Ast.Goal (name, [], _, _, _) ->
- targets := [Ast.ECall (name, [])]
- | Ast.Goal (name, _, _, _, _) ->
- failwithf "%s: first target ā%sā has parameters and so cannot be used as the default target"
- filename name
- | _ -> assert false
- with
- (* Actually this is fine. If there are no goals we'll do nothing. *)
- Not_found -> ()
- );
-
- let targets = List.rev !targets in
-
- (* Assignments are simply treated as statements added to the end of
- * the file (so they override earlier assignments to the same variable,
- * if any).
- *)
- let file = file @ List.rev !assignments in
+ (* If no target was set on the command line, use "all ()". *)
+ let targets =
+ if targets <> [] then targets
+ else [Ast.ECall ("all", [])] in