Coccinelle release 0.2.5-rc9
[bpt/coccinelle.git] / parsing_cocci / data.ml
index e549e6a..5c9df51 100644 (file)
@@ -1,25 +1,3 @@
-(*
- * 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.
- *)
-
-
 module Ast0 = Ast0_cocci
 module Ast = Ast_cocci
 
@@ -34,8 +12,8 @@ type incl_iso =
 
 type clt =
     line_type * int * int * int * int (* starting spaces *) *
-      (string * Ast0.position_info) list (* code before *) *
-      (string * Ast0.position_info) list (* code after *) *
+      (Ast_cocci.added_string * Ast0.position_info) list (* code before *) *
+      (Ast_cocci.added_string * Ast0.position_info) list (* code after *) *
       Ast0.meta_pos (* position variable, minus only *)
 
 (* ---------------------------------------------------------------------- *)
@@ -55,6 +33,7 @@ let in_rule_name = ref false
 let in_meta = ref false
 let in_iso = ref false
 let in_generating = ref false
+let ignore_patch_or_match = ref false
 let in_prolog = ref false
 (* state machine for lexer..., allows smpl keywords as type names *)
 let saw_struct = ref false
@@ -73,10 +52,20 @@ let all_metadecls =
 let clear_meta: (unit -> unit) ref =
   ref (fun _ -> failwith "uninitialized add_meta")
 
+let add_meta_meta: (Ast.meta_name -> Ast0.pure -> unit) ref =
+  ref (fun _ -> failwith "uninitialized add_meta")
+
 let add_id_meta:
     (Ast.meta_name -> iconstraints -> Ast0.pure -> unit) ref =
   ref (fun _ -> failwith "uninitialized add_meta")
 
+let add_virt_id_meta_found: (string -> string -> unit) ref =
+  ref (fun _ -> failwith "uninitialized add_meta")
+
+let add_virt_id_meta_not_found:
+    (Ast_cocci.meta_name -> Ast0_cocci.pure -> unit) ref =
+  ref (fun _ -> failwith "uninitialized add_meta")
+
 let add_fresh_id_meta: (Ast.meta_name -> unit) ref =
   ref (fun _ -> failwith "uninitialized add_meta")
 
@@ -90,7 +79,7 @@ let add_param_meta: (Ast.meta_name -> Ast0.pure -> unit) ref =
   ref (fun _ -> failwith "uninitialized add_meta")
 
 let add_paramlist_meta:
-    (Ast.meta_name -> Ast.meta_name option -> Ast0.pure -> unit) ref =
+    (Ast.meta_name -> Ast.list_len -> Ast0.pure -> unit) ref =
   ref (fun _ -> failwith "uninitialized add_meta")
 
 let add_const_meta:
@@ -122,7 +111,17 @@ let add_local_idexp_meta:
   ref (fun _ -> failwith "uninitialized add_meta")
 
 let add_explist_meta:
-    (Ast.meta_name -> Ast.meta_name option -> Ast0.pure -> unit) ref =
+    (Ast.meta_name -> Ast.list_len -> Ast0.pure -> unit) ref =
+  ref (fun _ -> failwith "uninitialized add_meta")
+
+let add_decl_meta: (Ast.meta_name -> Ast0.pure -> unit) ref =
+  ref (fun _ -> failwith "uninitialized add_meta")
+
+let add_field_meta: (Ast.meta_name -> Ast0.pure -> unit) ref =
+  ref (fun _ -> failwith "uninitialized add_meta")
+
+let add_field_list_meta:
+    (Ast.meta_name -> Ast.list_len -> Ast0.pure -> unit) ref =
   ref (fun _ -> failwith "uninitialized add_meta")
 
 let add_stm_meta: (Ast.meta_name -> Ast0.pure -> unit) ref =