(* * Copyright 2010, 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 . * * The authors reserve the right to distribute this or future versions of * Coccinelle under other licenses. *) (* ----------------------------------------------------------------------- *) (* Entry point *) let in_file = ref "" let out_file = ref "" let anonymous s = if !in_file = "" then in_file := s else out_file := s let speclist = [] let usage = Printf.sprintf "Usage: %s [options] \nOptions are:" (Filename.basename Sys.argv.(0)) let main _ = Arg.parse speclist anonymous usage; if !in_file = "" then failwith "in_filename required"; let (ast_lists,ua) = Parse_cocci.process !in_file None false in Ctltotex.totex !out_file ast_lists (List.map2 Asttoctl.asttoctl ast_lists ua) let _ = main ()