Release coccinelle-0.2.5-rc2
[bpt/coccinelle.git] / parsing_cocci / visitor_ast0.ml
index e64ff94..1b9ccbd 100644 (file)
@@ -311,8 +311,14 @@ let visitor mode bind option_default
        | Ast0.Array(ty,lb,size,rb) -> array_type (ty,lb,size,rb) []
        | Ast0.EnumName(kind,name) ->
            let (kind_n,kind) = string_mcode kind in
-           let (name_n,name) = ident name in
+           let (name_n,name) = get_option ident name in
            (bind kind_n name_n, Ast0.EnumName(kind,name))
+       | Ast0.EnumDef(ty,lb,ids,rb) ->
+           let (ty_n,ty) = typeC ty in
+           let (lb_n,lb) = string_mcode lb in
+           let (ids_n,ids) = expression_dots ids in
+           let (rb_n,rb) = string_mcode rb in
+           (multibind [ty_n;lb_n;ids_n;rb_n], Ast0.EnumDef(ty,lb,ids,rb))
        | Ast0.StructUnionName(kind,name) ->
            let (kind_n,kind) = struct_mcode kind in
            let (name_n,name) = get_option ident name in
@@ -392,7 +398,13 @@ let visitor mode bind option_default
     let k d =
       rewrap d
        (match Ast0.unwrap d with
-         Ast0.Init(stg,ty,id,eq,ini,sem) ->
+         Ast0.MetaDecl(name,pure) ->
+           let (n,name) = meta_mcode name in
+           (n,Ast0.MetaDecl(name,pure))
+       | Ast0.MetaField(name,pure) ->
+           let (n,name) = meta_mcode name in
+           (n,Ast0.MetaField(name,pure))
+       | Ast0.Init(stg,ty,id,eq,ini,sem) ->
            let (stg_n,stg) = get_option storage_mcode stg in
            let ((ty_id_n,ty),id) = named_type ty id in
            let (eq_n,eq) = string_mcode eq in
@@ -453,11 +465,12 @@ let visitor mode bind option_default
        | Ast0.InitExpr(exp) ->
            let (exp_n,exp) = expression exp in
            (exp_n,Ast0.InitExpr(exp))
-       | Ast0.InitList(lb,initlist,rb) ->
+       | Ast0.InitList(lb,initlist,rb,ordered) ->
            let (lb_n,lb) = string_mcode lb in
            let (initlist_n,initlist) = initialiser_list initlist in
            let (rb_n,rb) = string_mcode rb in
-           (multibind [lb_n;initlist_n;rb_n], Ast0.InitList(lb,initlist,rb))
+           (multibind [lb_n;initlist_n;rb_n],
+            Ast0.InitList(lb,initlist,rb,ordered))
        | Ast0.InitGccExt(designators,eq,ini) ->
            let (dn,designators) = map_split_bind designator designators in
            let (eq_n,eq) = string_mcode eq in
@@ -722,6 +735,10 @@ let visitor mode bind option_default
            let (inc_n,inc) = string_mcode inc in
            let (name_n,name) = inc_mcode name in
            (bind inc_n name_n, Ast0.Include(inc,name))
+       | Ast0.Undef(def,id) ->
+           let (def_n,def) = string_mcode def in
+           let (id_n,id) = ident id in
+           (multibind [def_n;id_n],Ast0.Undef(def,id))
        | Ast0.Define(def,id,params,body) ->
            let (def_n,def) = string_mcode def in
            let (id_n,id) = ident id in