X-Git-Url: https://git.hcoop.net/bpt/coccinelle.git/blobdiff_plain/faf9a90c4f9e1e85931cb6b01de660587416eb97..c3e37e979447bade993c7c600dc0b22ca64a571d:/parsing_cocci/data.mli diff --git a/parsing_cocci/data.mli b/parsing_cocci/data.mli index 3bd3998..84dd031 100644 --- a/parsing_cocci/data.mli +++ b/parsing_cocci/data.mli @@ -1,31 +1,62 @@ +(* + * Copyright 2005-2010, 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. + *) + + (* types that clutter the .mly file *) (* for iso metavariables, true if they can only match nonmodified, unitary metavariables *) type fresh = bool +type incl_iso = + Include of string | Iso of (string,string) Common.either + | Virt of string list (* virtual rules *) + type clt = line_type * int * int * int * int (* starting spaces *) * - string list (* code before *) * string list (* code after *) * + (Ast_cocci.added_string * Ast0_cocci.position_info) list (*code before*) * + (Ast_cocci.added_string * Ast0_cocci.position_info) list (*code after *) * Ast0_cocci.meta_pos (* position variable, minus only *) (* ---------------------------------------------------------------------- *) and line_type = MINUS | OPTMINUS | UNIQUEMINUS - | PLUS + | PLUS | PLUSPLUS | CONTEXT | UNIQUE | OPT -type iconstraints = Ast0_cocci.ident list -type econstraints = Ast0_cocci.expression list +type iconstraints = Ast_cocci.idconstraint +type econstraints = Ast0_cocci.constraints type pconstraints = Ast_cocci.meta_name list val in_rule_name : bool ref (* true if parsing the rule name *) val in_meta : bool ref (* true if parsing the metavariable decls *) val in_iso : bool ref (* true if parsing the isomorphisms *) val in_generating : bool ref(* true if generating a rule *) +val ignore_patch_or_match : bool ref (* skip rules not satisfying virt *) val in_prolog : bool ref (* true if parsing the beginning of an SP *) +val saw_struct : bool ref (* true if saw struct/union *) val inheritable_positions : string list ref +val call_in_meta : (unit -> 'a) -> 'a + val all_metadecls : (string, Ast_cocci.metavar list) Hashtbl.t val clear_meta: (unit -> unit) ref @@ -33,8 +64,17 @@ val clear_meta: (unit -> unit) ref val add_id_meta: (Ast_cocci.meta_name -> iconstraints -> Ast0_cocci.pure -> unit) ref +val add_virt_id_meta_found: (string -> string -> unit) ref + +val add_virt_id_meta_not_found: + (Ast_cocci.meta_name -> Ast0_cocci.pure -> unit) ref + +val add_fresh_id_meta: (Ast_cocci.meta_name -> unit) ref + val add_type_meta: (Ast_cocci.meta_name -> Ast0_cocci.pure -> unit) ref +val add_init_meta: (Ast_cocci.meta_name -> Ast0_cocci.pure -> unit) ref + val add_param_meta: (Ast_cocci.meta_name -> Ast0_cocci.pure -> unit) ref val add_paramlist_meta: