+(*
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
+ * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
+ * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
+ * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
+ * This file is part of Coccinelle.
+ *
+ * Coccinelle is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, according to version 2 of the License.
+ *
+ * Coccinelle is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Coccinelle. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The authors reserve the right to distribute this or future versions of
+ * Coccinelle under other licenses.
+ *)
+
+
open Common
open Sexplib
let newscore = Common.empty_score () in
let oks =
- Common.cmd_to_list ("find -name \"*.ok\"")
+ Common.cmd_to_list ("find . -name \"*.ok\"")
++
- Common.cmd_to_list ("find -name \"*.spatch_ok\"")
+ Common.cmd_to_list ("find . -name \"*.spatch_ok\"")
in
- let failed = Common.cmd_to_list ("find -name \"*.failed\"") in
+ let failed = Common.cmd_to_list ("find . -name \"*.failed\"") in
if null (oks ++ failed)
then failwith "no ok/failed file, you certainly did a make clean"
if not (file =~ ".*\\.cocci")
then pr2 "warning: seems not a .cocci file";
- let (_,xs,_,_,_,_,grep_tokens,query) =
+ let (_,xs,_,_,_,_,(grep_tokens,query,_)) =
Parse_cocci.process file (Some !Config.std_iso) false in
xs +> List.iter Pretty_print_cocci.unparse;
Format.print_newline();
(* compile ocaml script code *)
(match Prepare_ocamlcocci.prepare file xs with
- None -> ()
- | Some ocaml_script_file ->
- (* compile file *)
- Prepare_ocamlcocci.load_file ocaml_script_file;
- (* remove file *)
- Prepare_ocamlcocci.clean_file ocaml_script_file;
- (* Print the list of registered functions *)
- Prepare_ocamlcocci.test ());
+ None -> ()
+ | Some ocaml_script_file ->
+ (* compile file *)
+ Prepare_ocamlcocci.load_file ocaml_script_file;
+ (* remove file *)
+ (if not !Common.save_tmp_files
+ then Prepare_ocamlcocci.clean_file ocaml_script_file);
+ (* Print the list of registered functions *)
+ Prepare_ocamlcocci.test ());
Printf.printf "grep tokens\n";
(match grep_tokens with
None -> pr "No query"
| Some x -> pr (String.concat " || " x));
match !Flag.scanner with
Flag.NoScanner | Flag.Grep -> ()
- | Flag.Glimpse | Flag.Google _ ->
+ | Flag.Glimpse | Flag.IdUtils | Flag.Google _ ->
Printf.printf "%s tokens\n"
(if !Flag.scanner = Flag.Glimpse then "glimpse" else "google");
(match query with
None -> pr "No query"
- | Some x -> pr (String.concat " ||\n" x))
+ | Some x -> pr (String.concat "\nor on glimpse failure\n" x))