3 (* full_engine takes (coccifile, isofile) and cfiles in parameters and
4 * returns a list associating to the input cfiles, and maybe header
5 * files that was also required to be modified, the files containing the
6 * result (in general files in /tmp).
7 * pre_engine does the compilation of the SmPL code and runs any initially
9 * post_engine runs any finally scripts
11 * This function uses memoisation internally, which is useful when
12 * using -dir to not redo twice the same work. So take care!
15 val pre_engine
: (filename
* filename
) -> cocci_info
17 cocci_info
-> filename list
-> (filename
* filename
option) list
18 val post_engine
: cocci_info
-> unit
20 (* because of the #include "toto.c" and also because we may associate the
21 * same C file to multiple drivers because they share code, we can
22 * modify multiple times the same file when use -dir. This check
23 * remove duplicates and check that the modification are consistent
24 * among the different drivers.
26 val check_duplicate_modif
:
27 (filename
* filename
option) list
-> (filename
* filename
option) list
29 (* provides memoization *)
31 filename
(* coccifile *) -> filename
option (* isofile *) ->
32 Ast_cocci.metavar list list
* Ast_cocci.rule list
*
33 Ast_cocci.meta_name list list list
*
34 Ast_cocci.meta_name list list list
*
35 (Ast_cocci.meta_name list list list
(*used after list*) *
36 (*fresh used after list*)
37 Ast_cocci.meta_name list list list
*
38 (*fresh used after list seeds*)
39 Ast_cocci.meta_name list list list
) *
40 Ast_cocci.meta_name list list list
*