(* Cours "Sémantique et Application à la Vérification de programmes" Antoine Miné 2014 Ecole normale supérieure, Paris, France / CNRS / INRIA *) (* Simple driver: parses the file given as argument and prints it back. You should modify this file to call your functions instead! *) open Abstract_syntax_tree open Constant_domain (* parse and print filename *) let doit filename = let prog = File_parser.parse_file filename in Abstract_syntax_printer.print_prog Format.std_formatter prog; List.fold_left (fun s x -> match x with | AST_stat(stat, _) -> CD.interp_abs(stat) s | _ -> s) CD.top_ts (fst prog) (* parses arguments to get filename *) let main () = match Array.to_list Sys.argv with | _::filename::_ -> doit filename | _ -> invalid_arg "no source file specified" let _ = main ()