-(*
- * 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
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 *)
(* ---------------------------------------------------------------------- *)
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
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")
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:
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 =