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) ->
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) ->