37 lines
911 B
OCaml
37 lines
911 B
OCaml
(*
|
|
Cours "Sémantique et Application à la Vérification de programmes"
|
|
|
|
Antoine Miné 2015
|
|
Marc Chevalier 2018
|
|
Josselin Giet 2021
|
|
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 Iterator
|
|
open Cfg
|
|
|
|
(* parse filename *)
|
|
let doit filename = begin
|
|
let prog = File_parser.parse_file filename in
|
|
let cfg = Tree_to_cfg.prog prog in
|
|
if !Options.verbose then
|
|
Format.printf "%a" Cfg_printer.print_cfg cfg;
|
|
Cfg_printer.output_dot !Options.cfg_out cfg;
|
|
let fa = ConstIterator.iterate cfg in
|
|
let fb = SignIterator.iterate cfg in
|
|
Format.printf "@[<v 0>Failed asserts :@ %a@]" pp_asserts (ArcSet.inter fa fb) end
|
|
|
|
|
|
(* parses arguments to get filename *)
|
|
let main () =
|
|
let _ = Options.init () in
|
|
doit !Options.file
|
|
|
|
let _ = main ();
|