blob: 91ac4b15b4eb84525ea23712d2345660046939c9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
(*
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 ()
|