(*
+ * 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.
let rec right_decl d =
match Ast0.unwrap d with
- Ast0.Init(Some stg,ty,id,eq,ini,sem) ->
+ Ast0.MetaDecl(name,pure) ->
+ call_right right_mcode name d
+ (function name -> Ast0.MetaDecl(name,pure))
+ | Ast0.MetaField(name,pure) ->
+ call_right right_mcode name d
+ (function name -> Ast0.MetaField(name,pure))
+ | Ast0.Init(Some stg,ty,id,eq,ini,sem) ->
call_right right_mcode sem d
(function sem -> Ast0.Init(Some stg,ty,id,eq,ini,sem))
| Ast0.Init(None,ty,id,eq,ini,sem) ->
| Ast0.Include(inc,name) ->
call_right right_mcode name s
(function name -> Ast0.Include(inc,name))
+ | Ast0.Undef(def,id) ->
+ (* nothing available for ident, and not sure code can appear
+ here anyway *)
+ None
| Ast0.Define(def,id,params,body) ->
call_right right_statement_dots body s
(function body -> Ast0.Define(def,id,params,body))
call_right left_ty ty t (function ty -> Ast0.Array(ty,lb,size,rb))
| Ast0.EnumName(kind,name) ->
call_right left_mcode kind t (function kind -> Ast0.EnumName(kind,name))
+ | Ast0.EnumDef(ty,lb,ids,rb) ->
+ call_right left_ty ty t
+ (function ty -> Ast0.EnumDef(ty,lb,ids,rb))
| Ast0.StructUnionName(kind,name) ->
call_right left_mcode kind t
(function kind -> Ast0.StructUnionName(kind,name))
let rec left_decl decl =
match Ast0.unwrap decl with
- Ast0.Init(Some stg,ty,id,eq,ini,sem) ->
+ Ast0.MetaDecl(name,pure) ->
+ call_right right_mcode name decl
+ (function name -> Ast0.MetaDecl(name,pure))
+ | Ast0.MetaField(name,pure) ->
+ call_right right_mcode name decl
+ (function name -> Ast0.MetaField(name,pure))
+ | Ast0.Init(Some stg,ty,id,eq,ini,sem) ->
call_right left_mcode stg decl
(function stg -> Ast0.Init(Some stg,ty,id,eq,ini,sem))
| Ast0.Init(None,ty,id,eq,ini,sem) ->